/* ─── Form submission response messages ──────────────────────────────────── */
.form-message {
  margin-top: 16px;
  padding: 14px 20px;
  font-size: 15px;
  font-weight: 500;
  border-left: 4px solid transparent;
}

.form-message--success {
  background-color: #edfaf1;
  border-color: #28a745;
  color: #1a6930;
}

.form-message--error {
  background-color: #fff4f4;
  border-color: #dc3545;
  color: #8b1a1a;
}

.form-error {
  color: #dc3545;
  font-size: 14px;
  margin-top: 8px;
}

/* ─────────────────────────────────────────────────────────────────────────── */

body.no-scroll {
  overflow: hidden;
}

/*
 * ─── Z-Index Scale ───────────────────────────────────────────────────────────
 *  Layer             Var                   Value   Used by
 *  below             --z-below              -1     pseudo-element fill/stroke bgs
 *  base              --z-base                1     local stacking (buttons, cards)
 *  float             --z-float             100     fixed floating UI (whatsapp, chatbot, marquee bar)
 *  mobile-nav        --z-mobile-nav        200     mobile bottom tab bar
 *  mobile-overlay    --z-mobile-overlay    210     mobile slide-menu backdrop
 *  mobile-menu       --z-mobile-menu       220     mobile slide-up panel
 *  header            --z-header           9990     site header (matches theme cursor layer)
 *  sidebar           --z-sidebar         10000     sidebar group wrapper (stacking context)
 *  sidebar-overlay   --z-sidebar-overlay     1     backdrop *within* sidebar stacking context
 *  sidebar-panel     --z-sidebar-panel       2     panel *within* sidebar stacking context
 * ─────────────────────────────────────────────────────────────────────────── */
:root {
  --z-below: -1;
  --z-base: 1;
  --z-float: 100;
  --z-mobile-overlay: 190;
  --z-mobile-menu: 195;
  --z-mobile-nav: 200;
  --z-header: 9990;
  --z-sidebar: 10000;
  --header-height: 130px;
  --top-bar-height: 32px;
}

/* CLS Reservations */
.main-slider-one {
  min-height: 100vh !important;
  background-color: var(--cleanin-black);
  /* Placeholder color to avoid white flash */
}

/* Hero slide: ensure bg image fills correctly before Owl initialises */
.main-slider__carousel:not(.owl-loaded)>div:first-child {
  min-height: 100vh;
  position: relative;
}

@media (min-width: 992px) {
  /* No change needed as 100vh covers it */
}

.header {
  min-height: 90px;
}

.tj-maquee-section.style-6 .maquee-wrapper {
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
}

.tj-maquee-section.style-9 {
  padding: 0px 0px 0px;
  position: relative;
  z-index: 1;
}

@media only screen and (min-width: 768px) and (max-width: 991px),
only screen and (min-width: 576px) and (max-width: 767px),
(max-width: 575px) {
  .tj-maquee-section.style-9 {
    padding: 50px 0px;
  }
}

.tj-maquee-section.style-9 .maquee-wrapper {
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
}

.tj-maquee-section.style-9 .marquee-item {
  background: white;

  /* background: var(--tj-black); */
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  border-radius: 10px;
  -webkit-transition: 0.4s;
  transition: 0.4s;
  position: relative;
  z-index: 1;
  cursor: pointer;
  width: 150px;
  height: 64px;
}

.tj-maquee-section.style-9 .marquee-item .marquee-logo img {
  -webkit-transition: 0.4s;
  transition: 0.4s;
  max-width: 100%;
}

.tj-maquee-section.style-9 .marquee-item::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background: -webkit-gradient(linear,
      left top,
      right top,
      from(#8750f7),
      color-stop(110.61%, #2a1454));
  background: linear-gradient(90deg, #004a94 0%, #052944 110.61%);
  border-radius: 10px;
  z-index: -1;
  opacity: 0;
  visibility: hidden;
  -webkit-transition: 0.4s;
  transition: 0.4s;
}

.tj-maquee-section.style-9 .marquee-item:hover::before {
  opacity: 1;
  visibility: visible;
}

/* Recruiter carousels — Owl replaces Swiper */
.tj-maquee-section .owl-carousel {
  margin-bottom: 16px;
  overflow: hidden;
}

.tj-maquee-section .owl-carousel .owl-stage-outer {
  overflow: hidden;
}

/* Logo card inside each Owl item */
.tj-maquee-section .marquee-logo {
  display: flex;
  justify-content: center;
  align-items: center;
  background: white;
  border-radius: 10px;
  padding: 8px 12px;
  height: 64px;
  transition: 0.4s;
}

.tj-maquee-section .marquee-logo img {
  width: 100px;
  height: auto;
  max-width: 100%;
  display: block;
  transition: 0.4s;
}


.seo-text {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.outline-icon {
  -webkit-text-stroke: 1.1px white !important;
  color: transparent !important;
}

/* Legacy standalone positioning — z-index is owned by the .whatsapp-wrap parent */
.whatsapp-button {
  position: fixed;
  bottom: 7%;
  right: 1%;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
}

.whatsapp-button img {
  width: 75px;
  height: 75px;
}

/* marquee */
.marquee-section {
  padding: 0;
  background: rgba(0, 22, 43, 0.8);
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  color: #6d6d6d;

  /* Full-width fixed bottom */
  position: fixed !important;
  bottom: 0;
  left: 0;
  width: 100% !important;
  margin: 0 !important;
  z-index: var(--z-float);
  background: white;
}

.marquee-btn {
  position: relative;
  display: inline-block;
  color: var(--cleanin-white);
  font-size: 14px;
  line-height: 55px;
  font-weight: 600;
  background: var(--cleanin-base);
  border-radius: 0px;
  padding: 0px 35px 0px;
  overflow: hidden;
  font-family: var(--cleanin-font);
  text-transform: uppercase;
  -webkit-transition: all 0.3s linear;
  -o-transition: all 0.3s linear;
  transition: all 0.3s linear;
  z-index: 1;
  line-height: 45px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.marquee {
  white-space: nowrap;
  overflow: hidden;
  box-sizing: border-box;
  width: 100%;
}

.marquee span {
  display: inline-block;
  padding-left: 100%;
  animation: marquee 50s linear infinite;
  font-size: 1rem;
  font-weight: 600;
}

@keyframes marquee {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(-100%);
  }
}

/* ================= MOBILE BOTTOM NAVBAR & MENU ================= */

/* Hide on Desktop */
@media (min-width: 768px) {

  .mobile-bottom-nav,
  .mobile-menu,
  .menu-overlay {
    display: none !important;
  }
}

/* === Bottom Navbar Container === */
.mobile-bottom-nav {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  height: calc(64px + env(safe-area-inset-bottom, 0px));
  background: var(--cleanin-base);
  /* Dark Blue */
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  justify-content: space-around;
  align-items: center;
  z-index: var(--z-mobile-nav);
  padding-bottom: env(safe-area-inset-bottom, 0);
  padding-bottom: constant(safe-area-inset-bottom, 0);
  /* Force GPU layer on iOS Safari */
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.mobile-bottom-nav .nav-item {
  flex: 1;
  text-align: center;
  font-size: 0.85rem;
  /* Slightly smaller for better fit */
  color: #fff;
  /* White text */
  text-decoration: none;
  display: flex;
  flex-direction: row;
  /* Horizontal layout */
  align-items: center;
  justify-content: center;
  gap: 5px;
  /* Tighter gap */
}

.mobile-bottom-nav i {
  font-size: 1rem;
  /* Balanced icon size */
}

/* Active Tab Highlight */
.bottom-nav-active {
  color: #fff !important;
  background: rgba(255, 255, 255, 0.2) !important;
  padding: 6px 10px !important;
  border-radius: 0 !important;
  margin-left: 0 !important;
}

/* More Button Wrapper */
.more-wrapper {
  position: relative;
}

/* === Slide-up Menu === */
.mobile-menu {
  position: fixed;
  bottom: 0;
  transform: translateY(100%);
  left: 0;
  right: 0;
  height: auto;
  max-height: 70vh;
  /* Allow it to shrink if content is small, cap at 70% view height */
  background: #fff;
  border-radius: 0;
  z-index: var(--z-mobile-menu);
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  /* Flexbox Layout */
  display: flex;
  flex-direction: column;
  /* Scroll Behavior */
  overscroll-behavior: contain;
  /* iOS safe-area positioning */
  bottom: calc(64px + env(safe-area-inset-bottom, 0px));
  /* Force GPU layer on iOS Safari */
  -webkit-transform: translateY(100%) translateZ(0);
  transform: translateY(100%) translateZ(0);
  will-change: transform;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  -webkit-overflow-scrolling: touch;
}

.mobile-menu.active {
  transform: translateY(0) translateZ(0);
  -webkit-transform: translateY(0) translateZ(0);
}

.menu-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 18px;
  font-weight: 600;
  padding: 15px;
  flex-shrink: 0;
}

#closeMobileMenu {
  background: none;
  border: none;
  font-size: 2.5rem;
  /* Make it large */
  line-height: .7;
  padding: 5px 10px;
  color: #333;
  /* Dark color */
  cursor: pointer;
  transition: color 0.2s;
}

#closeMobileMenu:hover {
  color: var(--cleanin-base);
  /* Hover effect */
}

.menu-links {
  list-style: none;
  padding: 0 15px 20px 15px;
  /* Side padding + bottom spacer */
  margin: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  flex: 1;
  /* Grow to fill available space */
  min-height: 0;
  /* Crucial for nested flex scrolling */
  overscroll-behavior: contain;
}

.menu-links li a {
  display: block;
  padding: 12px 0;
  border-bottom: 1px solid #eee;
  color: var(--cleanin-black);
  font-weight: 600;
  text-decoration: none;
}

.menu-links .divider {
  height: 10px;
}

/* CTA area */
.menu-actions {
  position: relative;
  /* Changed from absolute */
  bottom: auto;
  left: auto;
  right: auto;
  padding: 15px;
  flex-shrink: 0;
  background: #fff;
  box-shadow: 0 -5px 15px rgba(0, 0, 0, 0.03);
  /* Subtle separation */
  /* iOS safe-area padding */
  padding-bottom: calc(15px + env(safe-area-inset-bottom, 0px));
}

/* Overlay — must sit above the bottom nav bar so it can block it when the menu opens */
.menu-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  display: none;
  z-index: var(--z-mobile-overlay);
  /* Force GPU layer on iOS Safari */
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}

.menu-overlay.active {
  display: block;
}

/* =============================================================== */

.test-des {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  /* change to 3 if you want */
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: all 0.3s ease;
}

/* ================= SIDEBARS & DRAWERS ================= */

/* --- Extracted from header.php --- */
.sidebar-phone-link {
  font-size: 19px !important;
}

.sidebar-admission-title {
  text-transform: none !important;
  position: relative;
  display: block;
  font-size: 20px;
  line-height: 30px;
  color: var(--cleanin-black);
  font-weight: 600;
  margin-bottom: 5px;
}

.sidebar-admission-bg {
  background: var(--cleanin-gray-bg);
}

/* --- Base Sidebar Styles (Migrated from style.css) --- */
.xs-sidebar-group .xs-overlay {
  left: 0%;
  top: 0;
  position: fixed;
  height: 100%;
  opacity: 0;
  width: 100%;
  visibility: hidden;
  -webkit-transition: all 0.4s ease-in 0.8s;
  -o-transition: all 0.4s ease-in 0.8s;
  transition: all 0.4s ease-in 0.8s;
  cursor: pointer;
  z-index: 999;
  background-color: rgba(0, 0, 0, 0.8);
  /* Added explicit bg color for overlay */
}

.xs-sidebar-group.isActive .xs-overlay {
  opacity: 0.8;
  visibility: visible;
  -webkit-transition: all 0.8s ease-out 0s;
  -o-transition: all 0.8s ease-out 0s;
  transition: all 0.8s ease-out 0s;
  right: 100%;
}

.xs-sidebar-group .widget-heading {
  position: absolute;
  top: 0;
  right: 0;
  padding: 25px;
}

.xs-sidebar-group .widget-heading a {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  line-height: 30px;
  text-align: center;
  border: 2px solid var(--cleanin-black);
  border-radius: 50%;
  color: var(--cleanin-black);
  font-size: 16px;
  font-weight: 400;
  -webkit-transition: all 500ms ease;
  transition: all 500ms ease;
}

.xs-sidebar-group .widget-heading a:hover {
  color: var(--cleanin-base);
  border-color: var(--cleanin-base);
}

.xs-sidebar-widget {
  position: fixed;
  right: 0;
  top: 0;
  bottom: 0;
  width: 100%;
  max-width: 860px;
  z-index: 5000;
  overflow: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  -webkit-transform: translateX(100%);
  transform: translateX(100%);
  -webkit-transition: transform 0.5s cubic-bezier(0.9, 0.03, 0, 0.96) 0s, opacity 0.5s ease 0s, visibility 0.5s ease 0s;
  transition: transform 0.5s cubic-bezier(0.9, 0.03, 0, 0.96) 0s, opacity 0.5s ease 0s, visibility 0.5s ease 0s;
  visibility: hidden;
  opacity: 0;
  border-right: 5px solid rgba(var(--cleanin-white-rgb), 0.5);
  background-color: whitesmoke;
  will-change: transform;
}

.xs-sidebar-group.isActive .xs-sidebar-widget {
  opacity: 1;
  visibility: visible;
  -webkit-transform: translateX(0%);
  transform: translateX(0%);
  -webkit-transition: transform 0.7s cubic-bezier(0.9, 0.03, 0, 0.96) 0.4s, opacity 0.5s ease 0.4s, visibility 0.5s ease 0.4s;
  transition: transform 0.7s cubic-bezier(0.9, 0.03, 0, 0.96) 0.4s, opacity 0.5s ease 0.4s, visibility 0.5s ease 0.4s;
}

.sidebar-textwidget {
  padding: 70px 30px;
}

.sidebar-widget-container {
  position: relative;
  top: 0;
  transform: translateY(150px);
  opacity: 0;
  visibility: hidden;
  -webkit-transition: opacity 0.3s ease-in 0.3s, visibility 0.3s ease-in 0.3s, transform 0.3s ease-in 0.3s;
  transition: opacity 0.3s ease-in 0.3s, visibility 0.3s ease-in 0.3s, transform 0.3s ease-in 0.3s;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  will-change: transform, opacity;
}

.xs-sidebar-group.isActive .sidebar-widget-container {
  transform: translateY(0);
  opacity: 1;
  visibility: visible;
  -webkit-transition: opacity 1s ease-out 1.2s, visibility 1s ease-out 1.2s, transform 1s ease-out 1.2s;
  transition: opacity 1s ease-out 1.2s, visibility 1s ease-out 1.2s, transform 1s ease-out 1.2s;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.xs-bg-black {
  background-color: #000000;
}

.xs-sidebar-group .content-inner .logo {
  position: relative;
  max-width: 172px;
  width: 100%;
  margin-bottom: 30px;
}

.xs-sidebar-group .content-inner h4 {
  position: relative;
  display: block;
  font-size: 20px;
  line-height: 30px;
  color: var(--cleanin-black);
  font-weight: 600;
  margin-bottom: 5px;
}

.xs-sidebar-group .content-inner .content-box {
  margin-bottom: 30px;
  padding-right: 15px;
}

.xs-sidebar-group .content-inner .content-box p {
  color: #ffffff;
}

.xs-sidebar-group .content-inner .form-inner .form-group {
  position: relative;
  margin-bottom: 15px;
}

.xs-sidebar-group .content-inner .form-inner .form-group:last-child {
  margin-bottom: 0px;
}

.xs-sidebar-group .content-inner .form-inner .form-group input[type="text"],
.xs-sidebar-group .content-inner .form-inner .form-group input[type="email"],
.xs-sidebar-group .content-inner .form-inner .form-group textarea {
  position: relative;
  display: block;
  width: 100%;
  height: 45px;
  font-size: 13px;
  padding: 10px 20px;
  color: #848484;
  border: none;
  outline: none;
  transition: all 500ms ease;
  background-color: var(--cleanin-white);
  border: 1px solid rgba(var(--cleanin-black-rgb), .12);
}

.xs-sidebar-group .content-inner .form-inner .form-group .form-inner__btn {
  border: none;
  outline: none;
  background-color: var(--cleanin-white);
  color: var(--cleanin-black);
  display: inline-block;
  font-size: 16px;
  font-weight: 600;
  padding: 13px 45px;
  -webkit-transition: all 500ms ease;
  transition: all 500ms ease;
}

.xs-sidebar-group .content-inner .form-inner .form-group .form-inner__btn:hover {
  color: var(--cleanin-white);
}

.xs-sidebar-group .content-inner .form-inner .form-group .form-inner__btn:before {
  background-color: var(--cleanin-base);
}

.xs-sidebar-group .content-inner .form-inner .form-group textarea {
  resize: none;
  height: 120px;
}

.xs-sidebar-group .content-inner .form-inner .form-group input:focus,
.xs-sidebar-group .content-inner .form-inner .form-group textarea:focus {
  border-color: #00224f;
}

.xs-sidebar-group .content-inner .form-inner .form-group button {
  position: relative;
  display: block;
}

.xs-sidebar-group .content-inner .form-inner .form-group button.thm-btn .hover-btn {
  background: var(--cleanin-white);
}

.xs-sidebar-group .content-inner .form-inner .form-group button.thm-btn:hover {
  color: var(--cleanin-base);
}

.sidebar-contact-info {
  position: relative;
  display: block;
  padding-top: 43px;
}

.sidebar-contact-info ul {
  position: relative;
  display: block;
  padding-bottom: 22px;
}

.sidebar-contact-info ul li {
  position: relative;
  display: block;
  color: var(--cleanin-white);
  line-height: 30px;
}

.sidebar-contact-info ul li span {
  position: relative;
  display: inline-block;
  width: 25px;
}

.sidebar-contact-info ul li span:before {
  position: relative;
  display: inline-block;
  color: #ffffff;
}

.sidebar-contact-info ul li a {
  color: var(--cleanin-white);
}

/* Sidebar Form Styles */
.sidebar-form-label {
  color: black;
  opacity: .8;
  font-size: 14px;
  margin-bottom: 0.5rem;
  /* derived from mb-2 */
}

.sidebar-form-input {
  border: 1px solid #d9d9d9;
  background-color: transparent;
}

.sidebar-contact-info ul li a:hover {
  color: var(--cleanin-base);
}

.xs-sidebar-group .content-inner .thm-social-link1 {
  overflow: hidden;
}

.thm-social-link1 ul li a {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: rgba(var(--cleanin-white-rgb), 0.1);
  border-radius: 50%;
  color: var(--cleanin-white);
  font-size: 15px;
  text-align: center;
  z-index: 1;
  transition: all 500ms ease;
}

.thm-social-link1 ul li a:before {
  position: absolute;
  top: 0px;
  left: 0px;
  bottom: 0px;
  right: 0px;
  background: var(--cleanin-base);
  border-radius: 50%;
  transition: 0.5s;
  transform: scale(0.5);
  opacity: 0;
  content: "";
  z-index: -1;
}

.thm-social-link1 ul li a:hover:before {
  transform: scale(1);
  opacity: 1;
}

.thm-social-link1 ul li a:hover {
  color: var(--cleanin-white);
}

/* --- Extended Sidebar Styles --- */
/* Container */
.sidebar-widget-container {
  width: 100%;
  padding: 80px 20px 80px 40px;
}

/* LEFT SIDE (menu) */
.content-box h4 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 26px;
  font-weight: 400;
  letter-spacing: 2px;
  color: #fff;
  padding: 20px 0;
}

/* RIGHT SIDE */
.sidebar-contact-info h4 {
  font-size: 22px;

  margin-bottom: 20px;

  color: var(--cleanin-black);
}

.sidebar-contact-info ul {
  list-style: none;
  padding: 0;
  margin: 0 0 40px 0;
}

.sidebar-contact-info li {
  margin-bottom: 14px;
  color: #fff;
  font-size: 15px;
}

.sidebar-contact-info a {
  color: #fff;
  text-decoration: none;
  border-bottom: 1px solid rgba(255, 255, 255, 0.4);
}

.social-box li a:hover {
  opacity: 1;
  color: var(--cleanin-base) !important;
  background-color: transparent !important;
}

/* SOCIAL */
.thm-social-link1 {
  margin-top: 40px;
}

.thm-social-link1 ul li a::before {
  position: absolute;
  top: 0px;
  left: 0px;
  bottom: 0px;
  right: 0px;
  background: var(--cleanin-base);
  border-radius: 50%;
  transition: 0.5s;
  transform: scale(0.5);
  opacity: 0;
  content: "";
  z-index: -1;
  display: none;
}

.social-box {
  list-style: none;
  padding: 0;
}

.social-box li a {
  color: #fff;
  font-size: 16px;
  opacity: 0.8;
  transition: 0.3s;
}

.social-box li a:hover {
  opacity: 1;
}

/* MENU ITEM */
.menu-item {
  border-bottom: 1px solid rgba(var(--cleanin-bdr-color-rgb), 0.8);
}

/* TITLE */
.menu-item h4 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 24px;
  letter-spacing: 1px;
  font-weight: 600;
  color: var(--cleanin-black);
  cursor: pointer;
  transition: 0.3s ease;
}

/* HOVER EFFECT ON TEXT */
.menu-item:hover h4 {
  color: var(--cleanin-base);
  letter-spacing: 3px;
  font-size: 600;
}

/* PLUS ICON */
.menu-item .toggle {
  font-size: 28px;
  opacity: 0.7;
  transition: 0.4s ease;
}

/* ROTATE + TO X/– */
.menu-item:hover .toggle {
  transform: rotate(45deg);
  opacity: 1;
}

.menu-item .icon-next {
  position: relative;
  display: inline-block;
  font-size: 14px;
  font-weight: 700;
  top: 1px;
  margin-left: 5px;
}

/* SUBMENU */
.submenu {
  max-height: 0;
  overflow: hidden;
  transition:
    max-height 0.4s ease,
    opacity 0.3s ease;
  opacity: 0;
  padding-left: 10px;
}

/* SUBMENU LINKS */
.submenu li {
  margin: 10px 0;
}

.submenu a {
  text-decoration: none;
  letter-spacing: 1px;
  transition: 0.3s;
  font-size: 16px;
  line-height: 16px;
  color: var(--cleanin-gray);
  font-weight: 600;
}

.submenu a:hover {
  color: var(--cleanin-base);
  padding-left: 6px;
}

/* SHOW DROPDOWN ON HOVER */
.menu-item:hover .submenu {
  max-height: 200px;
  opacity: 1;
}

.sidebar-contact-info ul li {
  font-size: 16px;
  line-height: 25px;
  color: var(--cleanin-gray);
  font-weight: 600;
  text-decoration: underline;
}

.sidebar-contact-info ul li a {
  font-size: 16px;
  text-decoration: underline;
  color: var(--cleanin-gray);
  font-weight: 600;
}

.thm-social-link1 ul {
  padding: 0;
  margin: 0;
  list-style: none;
}

.thm-social-link1 ul li {
  display: inline-block;
  margin-right: 10px;
}

.thm-social-link1 ul li a {
  display: flex !important;
  width: 40px !important;
  height: 40px !important;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.05) !important;
  /* Slight dark bg for contrast */
  color: var(--cleanin-black) !important;
  /* Dark icon */
  align-items: center;
  justify-content: center;
  text-decoration: none !important;
  transition: all 0.3s ease;
  font-size: 16px;
}

.thm-social-link1 ul li a:hover {
  background: var(--cleanin-base) !important;
  color: #fff !important;
}

/* push social icons to bottom */
.right-social {
  margin-top: auto;
  padding-top: 40px;
}

/* --- Mobile Nav Wrapper Base Styles --- */
.mobile-nav__wrapper {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 5000;
  -webkit-transform: translateX(-100%);
  transform: translateX(-100%);
  -webkit-transform-origin: left center;
  transform-origin: left center;
  -webkit-transition: visibility 500ms ease 500ms, -webkit-transform 500ms ease 500ms;
  transition: visibility 500ms ease 500ms, transform 500ms ease 500ms;
  visibility: hidden;
  will-change: transform;
}

.mobile-nav__wrapper.expanded {
  opacity: 1;
  -webkit-transform: translateX(0%);
  transform: translateX(0%);
  visibility: visible;
  -webkit-transition: visibility 500ms ease 0ms, -webkit-transform 500ms ease 0ms;
  transition: visibility 500ms ease 0ms, -webkit-transform 500ms ease 0ms;
}

.mobile-nav__overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #000000;
  opacity: 0.5;
  cursor: pointer;
}

.mobile-nav__content {
  width: 300px;
  background-color: var(--cleanin-black);
  z-index: 10;
  position: relative;
  height: 100%;
  overflow-y: auto;
  padding-top: 30px;
  padding-bottom: 30px;
  padding-left: 15px;
  padding-right: 15px;
  border-right: 3px solid rgba(var(--cleanin-white-rgb), 0.4);
  opacity: 0;
  visibility: hidden;
  -webkit-transform: translateX(-100%);
  transform: translateX(-100%);
  -webkit-transition: opacity 500ms ease 0ms, visibility 500ms ease 0ms, -webkit-transform 500ms ease 0ms;
  transition: opacity 500ms ease 0ms, visibility 500ms ease 0ms, transform 500ms ease 0ms;
}

.mobile-nav__wrapper.expanded .mobile-nav__content {
  opacity: 1;
  visibility: visible;
  -webkit-transform: translateX(0);
  transform: translateX(0);
  -webkit-transition: opacity 500ms ease 500ms, visibility 500ms ease 500ms, -webkit-transform 500ms ease 500ms;
  transition: opacity 500ms ease 500ms, visibility 500ms ease 500ms, transform 500ms ease 500ms;
}

.mobile-nav__content .logo-box {
  margin-bottom: 40px;
  display: flex;
}

.mobile-nav__close {
  position: absolute;
  top: 20px;
  right: 15px;
  font-size: 18px;
  color: var(--cleanin-white);
  cursor: pointer;
}

.mobile-nav__content .main-menu__list,
.mobile-nav__content .main-menu__list>li>ul,
.mobile-nav__content .main-menu__list>li>ul>li>ul {
  margin: 0;
  padding: 0;
  list-style-type: none;
}

.mobile-nav__content .main-menu__list>li>ul,
.mobile-nav__content .main-menu__list>li>ul>li>ul {
  display: none;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  margin-left: 0.5em;
}

.mobile-nav__content .main-menu__list>li:not(:last-child),
.mobile-nav__content .main-menu__list>li>ul>li:not(:last-child),
.mobile-nav__content .main-menu__list>li>ul>li>ul>li:not(:last-child) {
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.mobile-nav__content .main-menu__list>li>a>.main-menu-border {
  display: none !important;
}

.mobile-nav__content .main-menu__list>li>a,
.mobile-nav__content .main-menu__list>li>ul>li>a,
.mobile-nav__content .main-menu__list>li>ul>li>ul>li>a {
  display: flex;
  justify-content: space-between;
  line-height: 30px;
  color: #ffffff;
  font-size: 14px;
  font-family: var(--cleanin-font, "Rubik", sans-serif);
  font-weight: 500;
  height: 46px;
  align-items: center;
  transition: 500ms;
}

.mobile-nav__content .main-menu__list>li>a.expanded .mobile-nav__content .main-menu__list>li>ul>li>a.expanded .mobile-nav__content .main-menu__list>li>ul>li>ul>li>a.expanded {
  color: var(--cleanin-base);
}

.mobile-nav__content .main-menu__list li a.expanded {
  color: var(--cleanin-white);
}

/* Sidebar Widget 2 (Info Sidebar) */
.xs-sidebar-widget-2 {
  max-width: 500px;
}

.xs-sidebar-widget-2 .sidebar-textwidget {
  padding: 20px 30px 30px;
}

.xs-sidebar-group.isActive .xs-sidebar-widget-2 {
  background-color: white;
}

.xs-sidebar-widget-2 .sidebar-widget-container {
  width: 100%;
  padding: 40px 20px 0px 20px;
}

.xs-sidebar-widget-2 .sec-title__title {
  font-size: 25px;
  font-weight: 500;
  line-height: 20px;
}

.xs-sidebar-widget-2 .sec-title {
  padding-bottom: 37px;
}

/* Sidebar Stacking Context */
.xs-sidebar-group.isActive {
  position: fixed;
  inset: 0;
  z-index: var(--z-sidebar);
}

/* Overlay Behavior Overrides */
.xs-sidebar-group .xs-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  z-index: 1;
  /* draws above sibling content; panel at z-index 2 slides in on top */
  -webkit-transition: opacity 0.25s ease, visibility 0.25s ease;
  transition: opacity 0.25s ease, visibility 0.25s ease;
}

.xs-sidebar-group.isActive .xs-overlay {
  opacity: 0.8;
  visibility: visible;
  pointer-events: auto;
  -webkit-transition-delay: 0s;
  transition-delay: 0s;
}

/* Sidebar Panel Z-Index */
.xs-sidebar-widget,
.xs-sidebar-widget-2 {
  z-index: 2;
}

/* Stop Sidebar Blocking Clicks & Enable Scroll */
.xs-sidebar-group,
.xs-sidebar-widget,
.xs-sidebar-widget-2,
.sidebar-widget-container {
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}

/* Allow Form Interactions */
.form-inner,
.form-group,
.form-group select {
  pointer-events: auto !important;
}

/* Local Dropdown in Sidebar */
#countrySelect {
  width: 100%;
  height: 48px;
  border: 1px solid #d9d9d9;
  background: #fff;
  color: #000;
  position: relative;
  z-index: 10;
}

/* ====================================================== */

.test-des.expanded {
  -webkit-line-clamp: unset;
}

.read-more-btn {
  display: inline-block;
  margin-top: 8px;
  font-size: 14px;
  font-weight: 600;
  color: var(--cleanin-black);
  cursor: pointer;
}

.brochure-card {
  display: flex;
  gap: 12px;
  background: #fff;
  border-radius: 10px;
  padding: 12px;
  margin-top: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.brochure-icon {
  font-size: 26px;
}

.brochure-title {
  font-weight: 600;
  margin-bottom: 6px;
  color: #222;
}

.brochure-btn {
  display: inline-block;
  padding: 6px 14px;
  background: #25d366;
  color: #fff;
  border-radius: 6px;
  font-size: 13px;
  text-decoration: none;
}

.brochure-btn:hover {
  background: #1ebc59;
}

/* ================= FLOATING ELEMENTS ================= */
.whatsapp-wrap {
  position: fixed;
  bottom: 25px;
  right: 25px;
  z-index: var(--z-float);
}

/* Teaser bubble */
.chat-teaser {
  position: absolute;
  bottom: 130px;
  right: 50px;
  background: #fff;
  color: #333;
  padding: 5px 8px;
  border-radius: 14px;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.25);
  display: none;
  align-items: center;
  font-size: 11px;
  width: 130px;
  justify-content: space-between;
}

.chat-teaser.show {
  display: flex;
  animation: teaserIn 0.4s ease forwards;
}

@keyframes teaserIn {
  from {
    opacity: 0;
    transform: translateY(12px) scale(0.9);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* Bubble arrow */
.chat-teaser::after {
  content: "";
  position: absolute;
  bottom: -8px;
  right: 18px;
  border-width: 8px 8px 0 8px;
  border-style: solid;
  border-color: #fff transparent transparent transparent;
}

/* Close button */
.chat-teaser button {
  background: none;
  border: none;
  font-size: 10px;
  cursor: pointer;
  color: #888;
}

.chat-teaser button:hover {
  color: #000;
}

/* WhatsApp button */
.whatsapp-button {
  width: 120px;
  height: 120px;
  cursor: pointer;
  background: transparent;
  transition: transform 0.3s ease;
}

.whatsapp-button:hover {
  transform: translateY(-4px);
}

.whatsapp-button img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* Animation */
@keyframes teaserIn {
  from {
    opacity: 0;
    transform: translateY(10px) scale(0.95);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/*  */
.chatbot-wrapper {
  position: fixed;
  bottom: 90px;
  right: 25px;
  z-index: var(--z-float);
  width: 360px;
  height: 520px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  font-family: Arial, sans-serif;
  background: var(--cleanin-gray-bg);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.22);

  opacity: 0;
  transform: translateY(40px) scale(0.95);
  pointer-events: none;
  transition: all 0.35s ease;
}

/* OPEN STATE */
.chatbot-wrapper.open {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

/* HEADER */
.chatbot-header {
  background: var(--cleanin-base);
  color: #fff;
  padding: 12px 16px;
  font-weight: 600;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
}

.chatbot-header-icon {
  width: 40px !important;
  height: 40px !important;
  min-width: 40px;
  border-radius: 50%;
  background: white;
  object-fit: cover;
  object-position: top center;
  flex-shrink: 0;
  border: 2px solid rgba(255, 255, 255, 0.35);
  display: block;
}

/* MESSAGES */
.chatbot-messages {
  flex: 1;
  padding: 16px;
  overflow-y: auto;
  overflow-x: hidden;
  font-size: 14px;
  background: #f5f4f2;

  scrollbar-width: thin;
  scrollbar-color: rgba(0, 0, 0, 0.15) transparent;
}

/* MESSAGE BUBBLES */
.bot-msg,
.user-msg {
  max-width: 80%;
  padding: 10px 12px;
  margin-bottom: 12px;
  border-radius: 6px;
  line-height: 1.4;
  clear: both;

  /* message animation */
  animation: popIn 0.25s ease forwards;
}

@keyframes popIn {
  from {
    opacity: 0;
    transform: scale(0.9) translateY(6px);
  }

  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

.bot-msg {
  background: #fff;
  float: left;
  color: var(--cleanin-black);
}

.user-msg {
  background: var(--cleanin-base);
  float: right;
  color: white;
}

/* INPUT AREA */
.chatbot-input {
  display: flex;
  padding: 10px 12px;
  background: #fff;
  flex-shrink: 0;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  gap: 0;
}

.chatbot-messages::-webkit-scrollbar {
  width: 4px;
}

.chatbot-messages::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.15);
  border-radius: 10px;
}

.chatbot-input input {
  flex: 1;
  border: 1px solid #d8d8d8;
  border-right: none;
  padding: 0 12px;
  border-radius: 0;
  outline: none;
  color: #444;
  font-size: 13px;
  background: #fff;
  height: 42px;
  line-height: 42px;
  transition: border-color 0.2s ease;
}

.chatbot-input input:focus {
  border-color: var(--cleanin-base);
  background: #fff;
}

.chatbot-input button {
  background: var(--cleanin-base);
  border: none;
  color: #fff;
  padding: 0 16px;
  border-radius: 0;
  font-size: 15px;
  cursor: pointer;
  transition: background 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 42px;
  flex-shrink: 0;
}

.chatbot-input button:hover {
  background: var(--cleanin-black);
}

.chatbot-input button:active {
  opacity: 0.85;
}

.chat-close {
  background: rgba(255, 255, 255, 0.25);
  border: none;
  color: #fff;
  font-size: 16px;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
}

.chat-close:hover {
  background: rgba(255, 255, 255, 0.4);
  transform: rotate(90deg) scale(1.05);
}

.chat-close:active {
  transform: scale(0.9);
}

/* Typing indicator dots */
.typing-indicator {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 12px 14px;
  min-height: 38px;
}

.typing-indicator span {
  display: inline-block;
  width: 7px;
  height: 7px;
  background: #aaa;
  border-radius: 50%;
  animation: typingBounce 1.2s infinite ease-in-out;
}

.typing-indicator span:nth-child(2) {
  animation-delay: 0.2s;
}

.typing-indicator span:nth-child(3) {
  animation-delay: 0.4s;
}

@keyframes typingBounce {

  0%,
  60%,
  100% {
    transform: translateY(0);
    opacity: 0.5;
  }

  30% {
    transform: translateY(-6px);
    opacity: 1;
  }
}

/* Markdown body reset inside bot messages */
.bot-msg .markdown-body p {
  margin: 0 0 6px;
}

.bot-msg .markdown-body p:last-child {
  margin-bottom: 0;
}

.bot-msg .markdown-body ul,
.bot-msg .markdown-body ol {
  padding-left: 18px;
  margin: 4px 0;
}

.bot-msg .markdown-body a {
  color: var(--cleanin-base);
  word-break: break-word;
}

/* Chatbot Mobile Responsiveness */
@media (max-width: 576px) {
  .chatbot-wrapper {
    width: calc(100% - 30px);
    right: 15px;
    bottom: 80px;
    height: 65vh;
    min-height: 400px;
    max-height: 540px;
  }
}

/* Header */

/* ================= HEADER ================= */
.header {
  background: transparent;
  padding: 0px 0;
  position: relative;
  width: 100%;
  top: 0;
  z-index: var(--z-header);
  /* Only animate visual properties — never animate transform here,
     as position: relative → fixed is instantaneous and animating
     transform at the same time causes a visible jump. */
  transition:
    background-color 0.4s ease,
    box-shadow 0.4s ease;
  /* Force GPU layer on iOS Safari to fix z-index stacking */
  will-change: background-color;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

/* when sticky */
.header.sticky {
  position: fixed;
  top: 0;
  left: 0;
  z-index: var(--z-header);
  background: #fff;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  opacity: 1;
  visibility: visible;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.top-bar {
  transition: all 0.1s ease;
}

.header.sticky .logo-section {
  padding: 5px 0px;
}

.header.sticky .top-bar {
  opacity: 0;
  height: 0;
  overflow: hidden;
  pointer-events: none;
  display: none !important;
}

.header .nav-link,
.header .header-style1__contact>li.dropdown>a,
.header .header-style1__contact>li.dropdown>a::after,
.header .nav-sidebar-menu-1,
.header .nav-sidebar-menu-2,
.header .nav-sidebar-menu-3 {
  transition:
    color 0.3s ease,
    background-color 0.3s ease;
}

.header.sticky .header-style1__contact>li.dropdown>a {
  color: var(--cleanin-black);
  font-weight: 400;
}

.header.sticky .header-style1__contact>li.dropdown>a::after {
  color: var(--cleanin-black);
  font-weight: 400;
}

.header.sticky .navbar-nav .nav-link {
  color: var(--cleanin-black);
}

.header.sticky .main-header-two__bottom-right .sidebar-icon a .nav-sidebar-menu-1 {
  background-color: var(--cleanin-base);
}

.header.sticky .main-header-two__bottom-right .sidebar-icon a .nav-sidebar-menu-2 {
  background-color: var(--cleanin-base);
}

.header.sticky .main-header-two__bottom-right .sidebar-icon a .nav-sidebar-menu-3 {
  background-color: var(--cleanin-base);
}

/* Logo Section */
.logo-section {
  flex: 0 0 auto;
  padding-right: 13px;
}

.navbar-brand img {
  height: 95px;
  transition: opacity 0.3s ease;
}

.navbar-brand img:hover {
  opacity: 0.9;
}

/* Right Section (Top Bar + Navbar) */
.right-section {
  flex: 1;
  display: flex;
  flex-direction: column;
}

/* Top Bar */
.top-bar {
  background: transparent;
  padding: 0px 0;
  font-size: 12px;
  /* border-bottom: 1px solid rgba(var(--cleanin-white-rgb), 0.12); */
  padding: 10px 0px 0px 0px;
}

.top-bar .nav-link {
  color: white;
  letter-spacing: 1px;
  border-right: 1px solid white;
  font-size: 13px;
  padding: 0px 15px;
  line-height: 12px;
  font-weight: 500;
  font-family: var(--title-font);
}

.top-bar .nav-link:first-child {
  padding-left: 0;
}

.top-bar .nav-link:last-child {
  border-right: none;
}

.top-bar .nav-link:hover {
  /* color: var(--primary-color); */
}

.top-bar .btn {
  background-color: var(--primary-color);
  font-size: 13px;
  width: 197px;
  height: 43px;
  color: #fff;
  text-transform: uppercase;
  letter-spacing: 1px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 500;
  padding: 0;
  border-radius: 0px;
  margin: 0;
  text-align: center;
}

.top-bar .btn:hover {
  background-color: var(--secondary-color);
  color: var(--primary-color);
}

/* Main Navbar */
.navbar {
  background: transparent;
  padding: 0px 0;
}

.navbar-nav {
  gap: 10px;
}

.navbar-nav .nav-link {
  color: white;
  font-weight: 400;
  letter-spacing: 1.2px;
  transition: color 0.3s ease;
  padding: 10px 11px;
  /* Adjusted padding for better spacing */
  font-size: 16px;
  padding: 24px 5px !important;
  line-height: 35px;
  font-family: var(--title-font);
}

/* Responsive Adjustments */
@media (max-width: 992px) {
  .logo-section {
    margin-bottom: 10px;
  }

  .right-section {
    width: 100%;
  }

  .top-bar .d-flex {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }

  .top-bar .d-flex .d-flex {
    flex-direction: row;
  }

  .navbar-nav {
    flex-direction: column;
    gap: 10px;
  }

  .navbar-brand img {
    height: 80px;
    /* Adjusted for smaller screens */
  }

  .xs-sidebar-widget {
    max-width: 560px;
  }

  .sidebar-info-contents {
    align-items: end;
    flex-direction: column-reverse !important;
  }
}

@media (max-width: 768px) {
  .top-bar {
    font-size: 10px;
  }

  .top-bar .nav-link {
    font-size: 10px;
    padding: 0 10px;
  }

  .top-bar .btn {
    width: 150px;
    height: 35px;
    font-size: 10px;
  }

  .navbar-brand img {
    height: 80px;
    width: auto;
    padding-top: .5rem;
  }

  .navbar-nav .nav-link {
    font-size: 14px;
    padding: 8px 0;
  }

  .xs-sidebar-widget {
    max-width: 560px;
  }

  .sidebar-info-contents {
    align-items: end;
    flex-direction: column-reverse !important;
  }
}

/* <!-- header --> */

.header-style1__contact>li.dropdown>a::after {
  color: white;
  font-weight: 400;
}

.header-style1__contact>li.dropdown>a {
  color: white;
  font-weight: 400;
}

.main-header-one__top-1 .header-style1__contact li+li {
  margin-left: 0;
}

.main-header-one__top-1 .header-style1__contact li::before {
  display: none;
}

.header-style1__contact>li>a {
  font-size: 16px;
}

.header-style1__contact>li+li {
  padding: 24px 5px !important;
}

@media (min-width: 999px) and (max-width: 1200px) {

  .header-style1__contact>li+li {
    padding: 0px 3px !important;
  }

  .header-style1__contact>li.dropdown>a {
    padding-right: 10px !important;
  }

  .header-style1__contact>li>a {
    font-size: 14px !important;
  }
}

.page-header {
  position: relative;
  display: block;
  padding: 203px 0px 61px;
  overflow: hidden;
  z-index: 1;
  margin-top: -130px;
}

.top-bar .nav-btn {
  border: none;
  position: relative;
  display: inline-block;
  color: var(--cleanin-white);
  font-weight: 500;
  background: var(--cleanin-base);
  border-radius: 0px;
  padding: 0px 25px 0px;
  overflow: hidden;
  font-family: var(--cleanin-font);
  transition: all 0.3s linear;
  z-index: 1;
  line-height: 35px;
}

.top-bar .nav-btn i {
  position: relative;
  display: inline-block;
  font-size: 13px;
  font-weight: 600;
  top: 1px;
  margin-left: 2px;
}

@media (max-width: 767px) {
  .sidebar-widget-container {
    width: 100%;
    padding: 20px;
  }

  .sidebar-textwidget {
    padding: 30px 15px;
  }

  .sidebar-info-contents {
    flex-direction: column-reverse;
  }

  .menu-item h4 {
    font-size: 15px;
    padding: 10px 0px;
  }

  .sidebar-contact-info h4 {
    font-size: 17px;
    margin-bottom: 20px;
    color: var(--cleanin-black);
  }

  .right-social {
    margin-top: auto;
    padding-top: 0px;
  }

  .xs-sidebar-widget {
    max-width: 300px;
  }
}



/* Optimize parallax performance */
.jarallax {
  will-change: transform;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}

.jarallax>.jarallax-img {
  will-change: transform;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}

/* Keep Jarallax container untransformed for home video section only.
   Parent transforms can break parallax positioning in WebKit. */
.video-one__bg.jarallax.home-video-parallax {
  -webkit-transform: none !important;
  transform: none !important;
  will-change: auto;
}

/* Home parallax counter icon: remove decorative vertical box */
.video-one .counter-one__single-icon::before {
  display: none;
}

/* Home placements cards: keep profile image perfectly centered */
#team .team-one__carousel .team-four__single-img {
  width: 100%;
  display: flex;
  justify-content: center;
  margin-top: -150px;
}

#team .team-one__carousel .team-four__single-img-inner {
  margin: 0 auto;
}

@media (max-width: 767.98px) {
  #team .team-one__carousel .owl-dots {
    display: none !important;
  }
}

/* Index testimonial quote icon should not be clipped by Owl viewport */
.testimonial-one.pt-0 .testimonial-one__carousel.owl-carousel .owl-stage-outer {
  padding-bottom: 42px;
}

/* Optimize Owl Carousel Performance */
.owl-carousel .owl-stage,
.owl-carousel .owl-item {
  will-change: transform;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

/* KBS News & Highlights — equal-height cards + standardised images */
.blog-three.pt-0 .row {
  display: flex;
  flex-wrap: wrap;
}

.blog-three.pt-0 .blog-three__single {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.blog-three.pt-0 .blog-three__single-content {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.blog-three.pt-0 .blog-three__single-content .btn-box {
  margin-top: auto;
}

.blog-three.pt-0 .blog-three__single-img {
  flex-shrink: 0;
}

.blog-three.pt-0 .blog-three__single-img img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  display: block;
}



@media (min-width: 1000px) and (max-width: 1300px) {
  .main-header-two__bottom-right .sidebar-icon {
    padding-left: 10px;
    margin-left: 0px;
  }

  .navbar-brand img {
    height: 80px;
    transition: opacity 0.3s ease;
  }
}

.date-box p {
  font-size: 13px;
  font-weight: 600;
  margin: 0;
}

/* Placement Year Tabs - Using theme's tab styles */
.team-four .about-two__content {
  margin-bottom: 30px;
}

.team-four .about-two__tab {
  display: flex;
  justify-content: center;
}

.team-four .tabs-button-box {
  justify-content: center;
  width: 100%;
}

/* Placements Grid - Consistent spacing */
#placements-grid {
  row-gap: 30px;
}

#placements-grid .filter-item {
  margin-bottom: 0;
  display: flex;
}

/* Placement Student Cards - Clean single card design */
.placement-card {
  background: #fff;
  border: 1px solid #e0e6ed;
  border-radius: 0;
  overflow: visible;
  box-shadow: none;
  transition: all 0.3s ease;
  height: 100%;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 20px 15px;
}

.placement-card:hover {
  transform: translateY(-5px);
  box-shadow: none;
}

/* Image section - Fully circular */
.placement-card__img-wrapper {
  width: 120px;
  height: 120px;
  overflow: hidden;
  border-radius: 50%;
  margin: 0 auto;
  flex-shrink: 0;
}

.placement-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 50% !important;
}

/* Content section */
.placement-card__content {
  padding: 15px 0 0 0;
  text-align: center;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
}

.placement-card__name {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--cleanin-black);
  margin: 0;
  line-height: 1.3;
}

.placement-card__position {
  color: var(--cleanin-base);
  font-size: 0.8rem;
  font-weight: 600;
  margin: 0;
  line-height: 1.3;
}

.placement-card__company {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  margin: 6px 0;
  flex-wrap: wrap;
}

.placement-card__company p {
  margin: 0;
  font-size: 0.75rem;
  color: #666;
  font-weight: 500;
}

.placement-card__company img {
  max-height: 30px;
  max-width: 90px;
  object-fit: contain;
}

.placement-card__company .company-text {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--cleanin-base);
}

.placement-card__lpa {
  background: linear-gradient(135deg, var(--cleanin-base) 0%, #0056b3 100%);
  color: #fff;
  padding: 8px 16px;
  border-radius: 20px;
  font-weight: 700;
  font-size: 0.85rem;
  margin-top: auto;
  display: inline-block;
  align-self: center;
}

/* Responsive adjustments - Tablet */
@media (max-width: 1199px) {
  .placement-card {
    padding: 22px 18px;
  }

  .placement-card__img-wrapper {
    width: 160px;
    height: 160px;
  }

  .placement-card__content {
    padding-top: 18px;
  }
}

/* Responsive adjustments - Small Tablet */
@media (max-width: 991px) {
  #placements-grid {
    row-gap: 25px;
  }

  .placement-card {
    padding: 20px 15px;
  }

  .placement-card__img-wrapper {
    width: 150px;
    height: 150px;
  }

  .placement-card__content {
    padding-top: 15px;
    gap: 8px;
  }
}

/* Responsive adjustments - Mobile */
@media (max-width: 767px) {
  #placements-grid {
    row-gap: 20px;
  }

  .placement-card {
    padding: 20px 15px;
  }

  .placement-card__img-wrapper {
    width: 140px;
    height: 140px;
  }

  .placement-card__content {
    padding-top: 15px;
    gap: 8px;
  }

  .placement-card__name {
    font-size: 1rem;
  }

  .placement-card__position {
    font-size: 0.9rem;
  }

  .placement-card__lpa {
    font-size: 0.9rem;
    padding: 8px 16px;
  }
}

/* Responsive adjustments - Small Mobile */
@media (max-width: 575px) {
  #placements-grid {
    row-gap: 20px;
  }

  .placement-card {
    padding: 20px;
  }

  .placement-card__img-wrapper {
    width: 130px;
    height: 130px;
  }

  .placement-card__content {
    padding-top: 15px;
  }

  .placement-card__company img {
    max-height: 35px;
  }
}

/* ==============================================
   Sidebar - Mobile Responsive Styles
=============================================== */

/* Base sidebar improvements */
.sidebar {
  width: 100%;
}

.sidebar__single {
  width: 100%;
  box-sizing: border-box;
}

/* Sidebar categories list responsive */
.sidebar__categories-list li a {
  word-break: break-word;
  white-space: normal;
  line-height: 1.4;
  padding: 15px 20px;
  min-height: auto;
}

/* Sidebar contact card responsive */
.sidebar__contact {
  padding: 40px 25px;
}

.sidebar__contact-text h2 {
  word-break: break-word;
}

.sidebar__contact-text h2 a {
  font-size: inherit;
}

/* Tablet Responsive - max 1199px */
@media (max-width: 1199px) {
  .sidebar__single {
    padding: 40px 25px;
  }

  .sidebar__single .title-box h2 {
    font-size: 22px;
    line-height: 30px;
  }

  .sidebar__categories-list li a {
    font-size: 16px;
    padding: 12px 18px;
  }

  .sidebar__contact {
    padding: 35px 20px;
  }

  .sidebar__contact-text h2 {
    font-size: 20px;
    line-height: 28px;
  }
}

/* Blog details section - sidebar column spacing */
@media (max-width: 1199px) {
  .blog-details .col-xl-4 {
    margin-top: 40px;
  }
}

/* Small Tablet Responsive - max 991px */
@media (max-width: 991px) {
  .sidebar__single {
    padding: 35px 20px;
  }

  .sidebar__single .title-box {
    margin-bottom: 25px;
  }

  .sidebar__single .title-box h2 {
    font-size: 20px;
    line-height: 28px;
  }

  .sidebar__categories-list li a {
    font-size: 15px;
    padding: 12px 15px;
  }

  .sidebar__contact {
    padding: 30px 18px;
  }

  .sidebar__contact-icon {
    width: 50px;
    height: 50px;
    margin-bottom: 18px;
  }

  .sidebar__contact-icon span::before {
    font-size: 22px;
  }

  .sidebar__contact-text h2 {
    font-size: 18px;
    line-height: 26px;
  }

  .sidebar__contact-btn {
    margin-top: 30px;
  }
}

/* Mobile Responsive - max 767px */
@media (max-width: 767px) {

  /* Blog details layout - stack sidebar below content */
  .blog-details .row {
    flex-direction: column;
  }

  .blog-details .col-xl-8,
  .blog-details .col-xl-4 {
    width: 100%;
    max-width: 100%;
    flex: 0 0 100%;
  }

  .blog-details .col-xl-4 {
    margin-top: 30px;
  }

  /* Sidebar full width */
  .sidebar {
    width: 100%;
  }

  .sidebar__single {
    padding: 30px 20px;
    margin-bottom: 20px;
  }

  .sidebar__single+.sidebar__single {
    margin-top: 20px;
  }

  .sidebar__single .title-box {
    margin-bottom: 20px;
  }

  .sidebar__single .title-box h2 {
    font-size: 18px;
    line-height: 26px;
  }

  .sidebar__categories-list li a {
    font-size: 14px;
    padding: 12px 15px;
    line-height: 1.5;
  }

  .sidebar__categories-list li+li {
    margin-top: 8px;
  }

  /* Contact card mobile */
  .sidebar__contact {
    padding: 25px 15px;
  }

  .sidebar__contact-icon {
    width: 45px;
    height: 45px;
    margin-bottom: 15px;
  }

  .sidebar__contact-icon span::before {
    font-size: 20px;
    line-height: 20px;
  }

  .sidebar__contact-text p {
    font-size: 14px;
  }

  .sidebar__contact-text h2 {
    font-size: 16px;
    line-height: 24px;
  }

  .sidebar__contact-btn {
    margin-top: 20px;
  }

  .sidebar__contact-btn .thm-btn {
    padding: 0 20px;
    font-size: 13px;
    line-height: 45px;
  }
}

/* Small Mobile Responsive - max 575px */
@media (max-width: 575px) {
  .sidebar__single {
    padding: 25px 15px;
  }

  .sidebar__single .title-box h2 {
    font-size: 16px;
    line-height: 24px;
  }

  .sidebar__categories-list li a {
    font-size: 13px;
    padding: 10px 12px;
  }

  .sidebar__contact {
    padding: 20px 15px;
  }

  .sidebar__contact-icon {
    width: 40px;
    height: 40px;
    margin-bottom: 12px;
  }

  .sidebar__contact-icon span::before {
    font-size: 18px;
  }

  .sidebar__contact-text h2 {
    font-size: 15px;
    line-height: 22px;
  }

  .sidebar__contact-btn .thm-btn {
    padding: 0 15px;
    font-size: 12px;
    line-height: 40px;
  }
}

/* ==============================================
   Laurels / Affiliations Section Styles
=============================================== */

.laurels-section {
  padding: 80px 0;
  background: #fff;
}

/* Section Header - Two column layout */
.laurels-section .section-header {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 40px;
  margin-bottom: 60px;
}

.laurels-section .section-header>div {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.laurels-section .section-header h2 {
  font-size: 42px;
  font-weight: 700;
  color: var(--cleanin-black);
  margin: 0;
  line-height: 1.25;
}

.laurels-section .section-header p {
  font-size: 18px;
  color: var(--cleanin-gray);
  margin: 0;
  max-width: 500px;
  line-height: 1.6;
}

/* Partner Logo - Right side, larger size */
.laurels-section .partner-logo {
  max-width: 300px;
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* Logo Grid - CSS Grid for reliable responsive layout */
.laurels-section .logo-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 30px 20px;
  align-items: center;
}

/* Logo Cards - Clean, no card UI */
.laurels-section .logo-card {
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 5px;
  box-shadow: none;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100px;
  transition: transform 0.3s ease;
}

.laurels-section .logo-card:hover {
  transform: translateY(-5px);
}

/* Logo Images - Increased size */
.laurels-section .logo-card img {
  max-width: 100%;
  max-height: 120px;
  width: auto;
  height: auto;
  object-fit: contain;
  transition: opacity 0.3s ease;
}

/* ========== RESPONSIVE BREAKPOINTS ========== */

/* Large Desktop - max 1399px */
@media (max-width: 1399px) {
  .laurels-section .logo-grid {
    grid-template-columns: repeat(5, 1fr);
    gap: 35px 25px;
  }

  .laurels-section .partner-logo {
    max-width: 250px;
  }
}

/* Tablet - max 1199px */
@media (max-width: 1199px) {
  .laurels-section {
    padding: 70px 0;
  }

  .laurels-section .section-header h2 {
    font-size: 36px;
  }

  .laurels-section .partner-logo {
    max-width: 220px;
  }

  .laurels-section .logo-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 30px 20px;
  }

  .laurels-section .logo-card img {
    max-height: 90px;
  }
}

/* Small Tablet - max 991px */
@media (max-width: 991px) {
  .laurels-section {
    padding: 60px 0;
  }

  /* Stack header on tablet */
  .laurels-section .section-header {
    grid-template-columns: 1fr;
    gap: 30px;
    text-align: center;
  }

  .laurels-section .section-header>div {
    align-items: center;
  }

  .laurels-section .section-header h2 {
    font-size: 32px;
  }

  .laurels-section .section-header p {
    max-width: 100%;
  }

  .laurels-section .partner-logo {
    max-width: 200px;
    margin: 0 auto;
  }

  .laurels-section .logo-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 25px 20px;
  }

  .laurels-section .logo-card {
    min-height: 80px;
  }

  .laurels-section .logo-card img {
    max-height: 80px;
  }
}

/* Mobile - max 767px */
@media (max-width: 767px) {
  .laurels-section {
    padding: 50px 0;
  }

  .laurels-section .section-header {
    margin-bottom: 40px;
    gap: 20px;
  }

  .laurels-section .section-header h2 {
    font-size: 28px;
  }

  .laurels-section .section-header p {
    font-size: 16px;
  }

  .laurels-section .partner-logo {
    max-width: 180px;
  }

  .laurels-section .logo-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px 15px;
  }

  .laurels-section .logo-card {
    min-height: 70px;
    padding: 8px;
  }

  .laurels-section .logo-card img {
    max-height: 70px;
  }
}

/* Small Mobile - max 480px */
@media (max-width: 480px) {
  .laurels-section {
    padding: 40px 0;
  }

  .laurels-section .section-header h2 {
    font-size: 24px;
  }

  .laurels-section .section-header p {
    font-size: 14px;
  }

  .laurels-section .partner-logo {
    max-width: 150px;
  }

  .laurels-section .logo-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 15px 12px;
  }

  .laurels-section .logo-card {
    min-height: 60px;
    padding: 5px;
  }

  .laurels-section .logo-card img {
    max-height: 60px;
  }
}

/* ==============================================
   Timeline / Milestones Styles
=============================================== */

.timeline-section {
  position: relative;
  padding: 20px 0;
  max-width: 800px;
  margin: 0 auto;
}

/* The vertical line */
.timeline-section::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 20px;
  /* Adjust based on dot size */
  width: 4px;
  background: #e9ecef;
  border-radius: 2px;
}

.timeline-item {
  position: relative;
  margin-bottom: 30px;
  padding-left: 60px;
  /* Space for the line and dot */
}

.timeline-item:last-child {
  margin-bottom: 0;
}

/* The dot */
.timeline-dot {
  position: absolute;
  left: 11px;
  /* Center on the line (20px line center is at ~22px? No. Line left 20px, width 4px. Center is 22px.) 
                 Dot width 22px. Left should be 22 - (22/2) = 11px. */
  top: 0;
  width: 22px;
  height: 22px;
  background: var(--cleanin-base);
  border: 4px solid #fff;
  border-radius: 50%;
  box-shadow: 0 0 0 2px var(--cleanin-base);
  /* Outer ring effect */
  z-index: 1;
  transition: all 0.3s ease;
}

.timeline-item:hover .timeline-dot {
  background: #fff;
  box-shadow: 0 0 0 4px var(--cleanin-base);
  transform: scale(1.1);
}

.timeline-content {
  background: #fff;
  padding: 20px 25px;
  border-radius: 10px;
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.05);
  border: 1px solid #f0f0f0;
  position: relative;
  transition: transform 0.3s ease;
}

.timeline-item:hover .timeline-content {
  transform: translateX(5px);
  border-color: rgba(var(--cleanin-base-rgb), 0.3);
}

/* Arrow/Triangle pointing to the dot */
.timeline-content::before {
  content: "";
  position: absolute;
  top: 10px;
  /* Align with dot */
  left: -10px;
  width: 0;
  height: 0;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-right: 10px solid #fff;
  /* Match background */
  z-index: 2;
  /* On top of border */
}

/* Border Arrow */
.timeline-content::after {
  content: "";
  position: absolute;
  top: 9px;
  left: -11px;
  width: 0;
  height: 0;
  border-top: 11px solid transparent;
  border-bottom: 11px solid transparent;
  border-right: 11px solid #f0f0f0;
  /* Match border/shadow */
  z-index: 1;
}

.timeline-year {
  display: inline-block;
  background: rgba(var(--cleanin-base-rgb), 0.1);
  color: var(--cleanin-base);
  font-weight: 700;
  font-size: 14px;
  padding: 4px 12px;
  border-radius: 20px;
  margin-bottom: 8px;
}

.timeline-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--cleanin-black);
  margin-bottom: 5px;
  line-height: 1.3;
}

.timeline-text {
  color: var(--cleanin-gray);
  font-size: 15px;
  line-height: 1.6;
  margin: 0;
}

/* Animations */
.timeline-item {
  opacity: 1;
  transform: translateY(0);
  /* You may add animation classes here if using wow.js or similar */
}

@media (max-width: 575px) {
  .timeline-section {
    padding-left: 0;
    padding-right: 0;
  }
}

/* 15 Years of Excellence Badge */
.years-badge {
  position: absolute;
  top: 0;
  right: 0;
  background: rgba(0, 74, 148, 0.9);
  color: #fff;
  width: 140px;
  height: 140px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  z-index: 10;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

.years-badge .years-count {
  font-size: 60px;
  font-weight: 700;
  line-height: 0.8;
  margin-bottom: 5px;
  font-family: var(--cleanin-font);
}

.years-badge .years-text {
  font-size: 18px;
  font-weight: 700;
  line-height: 1;
  margin-bottom: 2px;
  font-family: var(--cleanin-font);
  text-transform: uppercase;
}

.years-badge .years-subtext {
  font-size: 11px;
  font-weight: 400;
  text-transform: capitalize;
  font-family: var(--cleanin-font);
}

@media (max-width: 575px) {
  .years-badge {
    width: 100px;
    height: 100px;
  }

  .years-badge .years-count {
    font-size: 36px;
  }

  .years-badge .years-text {
    font-size: 14px;
  }

  .years-badge .years-subtext {
    font-size: 10px;
  }
}

/* =============================================
   iOS Mobile Navbar & Dropdown Fixes
   ============================================= */

/* Ensure Bootstrap navbar collapse stays above page content on mobile */
@media (max-width: 991px) {
  .navbar-collapse {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff;
    z-index: 5000;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
    padding: 15px;
    max-height: 80vh;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    /* Force GPU layer on iOS Safari */
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
  }

  /* Fix dropdown items text color in collapsed mobile navbar */
  .navbar-collapse .navbar-nav .nav-link,
  .navbar-collapse .header-style1__contact>li>a,
  .navbar-collapse .header-style1__contact>li.dropdown>a {
    color: var(--cleanin-black) !important;
  }

  .navbar-collapse .header-style1__contact>li.dropdown>a::after {
    color: var(--cleanin-black) !important;
  }

  /* Dropdown sub-menus in collapsed navbar */
  .navbar-collapse .header-style1__contact>li>ul,
  .navbar-collapse .shadow-box {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    width: 100% !important;
    box-shadow: none !important;
    background: var(--cleanin-gray-bg, #f5f5f5) !important;
    padding: 10px 15px !important;
    display: none;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
  }

  /* Show dropdown when parent is hovered/active */
  .navbar-collapse .header-style1__contact>li.dropdown:hover>ul,
  .navbar-collapse .header-style1__contact>li.dropdown:focus-within>ul {
    display: block;
  }

  /* Fix header-style1 contact list separators on mobile */
  .navbar-collapse .header-style1__contact {
    flex-direction: column;
    align-items: flex-start !important;
  }

  .navbar-collapse .header-style1__contact li::before {
    display: none !important;
  }
}

/* Ensure dropdown sub-menus have proper z-index on desktop too */
.header-style1__contact>li>ul.shadow-box {
  z-index: 1001;
}

/* Sub-dropdown menus */
.header-style1__contact>li>ul.shadow-box ul {
  z-index: 1002;
}

/* Fix footer overlap with fixed bottom elements */
@media (min-width: 992px) {
  .site-footer-two {
    padding-bottom: 55px;
    /* Space for Marquee section */
  }
}

@media (max-width: 767px) {
  .site-footer-two {
    padding-bottom: 80px;
    /* Space for Mobile Bottom Nav */
  }
}