/**
 * CodeSquadz Responsive Stylesheet
 *
 * Full Device Parity: Desktop (1200px+), Laptop (992px-1199px), Tablet (768px-991px), Mobile (<=767px)
 *
 * @package CodeSquadz
 * @version 2.4
 */

/* ==========================================================================
   Global Overflow Fix (Prevent horizontal scrolling on all viewports)
   ========================================================================== */
html {
  overflow-x: hidden;
}

body {
  overflow-x: clip;
  max-width: 100vw;
}

/* ==========================================================================
   1. Large & Ultra-Wide Screens (min-width: 1920px)
   ========================================================================== */
@media screen and (min-width: 1920px) {
  .bannerInnerWrapper {
    margin-top: -6rem;
  }
}

/* ==========================================================================
   2. Desktop (min-width: 992px) - Authentic Header Layout
   ========================================================================== */
@media (min-width: 992px) {
  header.stw-1.bg-navbar {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    height: 70px !important;
    min-height: 70px !important;
    background: #ffffff !important;
    color: #0d2b45 !important;
    padding: 0 25px !important;
    border-bottom: 1px solid #e2e8f0 !important;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06) !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 9999 !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  header.stw-1.bg-navbar .header-inset.avs {
    display: flex !important;
    align-items: center !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  header.stw-1.bg-navbar .header-inset .logo {
    display: flex !important;
    align-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  header.stw-1.bg-navbar .header-inset .logo img {
    width: 190px !important;
    max-width: 220px !important;
    max-height: 48px !important;
    height: auto !important;
    display: block !important;
    margin: 0 !important;
  }

  .live_header {
    display: flex !important;
    align-items: center !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .second-navbar-new {
    margin: 0 !important;
    padding: 0 !important;
    min-height: auto !important;
    background: transparent !important;
    border: none !important;
    display: flex !important;
    align-items: center !important;
  }

  .second-navbar-new .navigation,
  .second-navbar-new .navigation.collapse {
    display: flex !important;
    align-items: center !important;
    height: auto !important;
    visibility: visible !important;
  }

  .second-navbar-new .navbar-header,
  .second-navbar-new .navbar-toggle,
  .navbar-toggle.toggle-1-new {
    display: none !important;
  }

  ul.second-nav-new {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-end !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 0 !important;
  }

  ul.second-nav-new > li {
    display: inline-flex !important;
    align-items: center !important;
    position: relative !important;
    list-style: none !important;
    margin: 0 2px !important;
    padding: 0 !important;
    line-height: normal !important;
  }

  ul.second-nav-new > li > a {
    font-size: 15px !important;
    font-weight: 500 !important;
    color: #0d2b45 !important;
    text-decoration: none !important;
    padding: 8px 12px !important;
    display: inline-flex !important;
    align-items: center !important;
    line-height: 20px !important;
    font-family: 'Poppins', sans-serif !important;
    transition: color 0.2s ease !important;
  }

  ul.second-nav-new > li > a:hover {
    color: #ff6364 !important;
    text-decoration: none !important;
  }

  ul.second-nav-new > li.dropdown > a .caret {
    margin-left: 6px !important;
    vertical-align: middle !important;
  }

  /* Dropdown Menus on Desktop */
  .dropdown-submenu {
    position: relative;
  }

  .dropdown-submenu > .dropdown-menu {
    top: 0;
    left: 100%;
    margin-top: -1px;
    display: none;
  }

  .dropdown:hover > .dropdown-menu,
  .dropdown-submenu:hover > .dropdown-menu {
    display: block;
  }

  #transition_dt {
    display: none !important;
  }
}

/* ==========================================================================
   3. Medium Laptops & Desktops (992px to 1199.98px)
   ========================================================================== */
@media (min-width: 992px) and (max-width: 1199.98px) {
  header.stw-1.bg-navbar {
    padding: 0 15px !important;
  }

  header.stw-1.bg-navbar .header-inset .logo img {
    width: 160px !important;
    max-height: 42px !important;
  }

  ul.second-nav-new > li > a {
    font-size: 13.5px !important;
    padding: 6px 7px !important;
  }

  .login-btn {
    padding: 6px 12px !important;
    font-size: 13px !important;
  }

  .login-btn-dts {
    padding: 6px 12px !important;
    font-size: 13px !important;
  }
}

/* ==========================================================================
   4. Tablets & Mobile Screens (max-width: 991.98px)
   ========================================================================== */
@media (max-width: 991.98px) {
  /* --- Sticky Mobile Header --- */
  header.stw-1.bg-navbar {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    height: 65px !important;
    min-height: 65px !important;
    padding: 0 15px !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 9999 !important;
    background: #ffffff !important;
    border-bottom: 1px solid #e2e8f0 !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06) !important;
    box-sizing: border-box !important;
  }

  header.stw-1.bg-navbar .header-inset.avs {
    display: flex !important;
    align-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  header.stw-1.bg-navbar .header-inset .logo img {
    width: 150px !important;
    max-width: 170px !important;
    max-height: 38px !important;
    height: auto !important;
    display: block !important;
    margin: 0 !important;
  }

  .live_header {
    display: flex !important;
    align-items: center !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .second-navbar-new {
    display: flex !important;
    align-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
    position: static !important;
  }

  .second-navbar-new .navbar-header {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* Hamburger Toggle Button */
  .second-navbar-new .navbar-toggle,
  .navbar-toggle.toggle-1-new {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 4.5px !important;
    width: 42px !important;
    height: 38px !important;
    padding: 0 !important;
    margin: 0 !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    position: relative !important;
    float: none !important;
    border: 1.5px solid #0d2b45 !important;
    border-radius: 6px !important;
    background: transparent !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    z-index: 10000 !important;
    box-sizing: border-box !important;
  }

  .second-navbar-new .navbar-toggle .icon-bar,
  .navbar-toggle.toggle-1-new .icon-bar {
    display: block !important;
    width: 22px !important;
    height: 2px !important;
    background-color: #0d2b45 !important;
    border-radius: 2px !important;
    margin: 0 !important;
    transition: all 0.2s ease !important;
  }

  .second-navbar-new .navbar-toggle:hover,
  .navbar-toggle.toggle-1-new:hover,
  .second-navbar-new .navbar-toggle:focus,
  .navbar-toggle.toggle-1-new:focus {
    background-color: #f1f5f9 !important;
    border-color: #ff6364 !important;
    outline: none !important;
  }

  .second-navbar-new .navbar-toggle:hover .icon-bar,
  .navbar-toggle.toggle-1-new:hover .icon-bar,
  .second-navbar-new .navbar-toggle:focus .icon-bar,
  .navbar-toggle.toggle-1-new:focus .icon-bar {
    background-color: #ff6364 !important;
  }

  /* Toggle button expanded active state */
  .second-navbar-new .navbar-toggle[aria-expanded="true"],
  .navbar-toggle.toggle-1-new[aria-expanded="true"] {
    background-color: #fff1f2 !important;
    border-color: #ff6364 !important;
  }

  .second-navbar-new .navbar-toggle[aria-expanded="true"] .icon-bar,
  .navbar-toggle.toggle-1-new[aria-expanded="true"] .icon-bar {
    background-color: #ff6364 !important;
  }

  /* Full Width Mobile Dropdown Menu */
  .second-navbar-new .navigation.collapse,
  div#navbar-scd {
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    background-color: #ffffff !important;
    border-top: 1px solid #e2e8f0 !important;
    border-bottom: 3px solid #ff6364 !important;
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.12) !important;
    max-height: calc(100vh - 65px) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    padding: 10px 0 20px 0 !important;
    margin: 0 !important;
    z-index: 99999 !important;
    box-sizing: border-box !important;
  }

  .second-navbar-new .navigation.collapse:not(.in):not(.show),
  div#navbar-scd:not(.in):not(.show) {
    display: none !important;
  }

  .second-navbar-new .navigation.collapse.in,
  .second-navbar-new .navigation.collapse.show,
  div#navbar-scd.in,
  div#navbar-scd.show {
    display: block !important;
  }

  ul.second-nav-new {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    list-style: none !important;
    gap: 0 !important;
  }

  ul.second-nav-new > li {
    width: 100% !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
  }

  ul.second-nav-new > li > a {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 12px 20px !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    color: #0d2b45 !important;
    border-bottom: 1px solid #f1f5f9 !important;
    text-decoration: none !important;
    width: 100% !important;
    box-sizing: border-box !important;
    transition: background-color 0.2s ease, color 0.2s ease !important;
  }

  ul.second-nav-new > li > a:hover {
    background-color: #f8fafc !important;
    color: #ff6364 !important;
  }

  ul.second-nav-new > li.dropdown > a .caret {
    transition: transform 0.25s ease !important;
  }

  ul.second-nav-new > li.dropdown.open > a .caret,
  ul.second-nav-new > li.dropdown.show > a .caret {
    transform: rotate(180deg) !important;
  }

  /* --- Mobile Navigation Cleanup --- */
  .custom-navbar-menu {
    border: none !important;
    box-shadow: none !important;
  }

  /* --- Featured Card on Tablet --- */
  .featured-card-inner {
    flex-direction: column !important;
  }

  .featured-card-img-col,
  .featured-card-content-col {
    width: 100% !important;
  }

  .featured-card-img-col {
    height: 240px !important;
    min-height: 240px !important;
  }

  .featured-card-img-col img.mainImg {
    border-bottom-left-radius: 0 !important;
    border-top-right-radius: 11px !important;
  }
}

/* ==========================================================================
   5. Mobile Phones (max-width: 767.98px)
   ========================================================================== */
@media screen and (max-width: 767.98px) {
  /* --- Banner Section --- */
  .bg-wrapper {
    padding: 25px 15px !important;
  }

  .banner {
    padding: 10px 0 !important;
  }

  .banner h1,
  .banner .wp-block-heading {
    font-size: 20px !important;
    line-height: 1.35 !important;
    margin-bottom: 10px !important;
  }

  .banner p,
  .banner .wp-block-paragraph {
    font-size: 13.5px !important;
    line-height: 1.6 !important;
    margin-bottom: 18px !important;
  }

  .banner .input-group {
    max-width: 100% !important;
  }

  .banner .input-group .form-control {
    height: 44px !important;
    font-size: 14px !important;
  }

  .banner .input-group .btn-primary {
    height: 44px !important;
    padding: 0 16px !important;
    font-size: 14px !important;
  }

  .banner .wp-block-categories-list,
  .banner .wp-block-categories {
    gap: 6px !important;
    margin-top: 15px !important;
  }

  .banner .cat-item a {
    padding: 4px 10px !important;
    font-size: 12px !important;
  }

  .bannerInnerWrapper {
    margin-top: 25px !important;
    margin-bottom: 0 !important;
  }

  /* --- Floating CTA Stack --- */
  .cta-container {
    z-index: 990 !important;
    right: 0 !important;
    top: auto !important;
    bottom: 75px !important;
    transform: none !important;
  }

  .cta-container .cta-box {
    width: 36px !important;
    height: 36px !important;
    font-size: 15px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  /* --- Blog Cards on Mobile --- */
  .blog-card-col {
    margin-bottom: 20px !important;
  }

  .blogCard {
    margin-bottom: 0 !important;
  }

  .postTitle {
    font-size: 15px !important;
    line-height: 1.4 !important;
  }

  .ThumbPostPara,
  .thumbPostBtn,
  .blogPostDate {
    font-size: 12px !important;
  }

  /* --- Single Post Page on Mobile --- */
  .cs-single-post-page h1.single-post-heading,
  .cs-single-post-page h1 {
    font-size: 20px !important;
    line-height: 1.35 !important;
    margin-bottom: 15px !important;
  }

  .post-content {
    font-size: 14.5px !important;
    line-height: 1.75 !important;
  }

  .post-content h2 {
    font-size: 18px !important;
    margin-top: 22px !important;
    margin-bottom: 10px !important;
  }

  .post-content h3 {
    font-size: 16px !important;
    margin-top: 18px !important;
    margin-bottom: 8px !important;
  }

  #toc-container {
    padding: 15px 18px !important;
    margin: 20px 0 !important;
  }

  #toc-container p,
  #toc-container h4.toc-title {
    font-size: 15px !important;
  }

  #toc-container a {
    font-size: 13px !important;
  }

  /* --- Footer Responsiveness --- */
  .footer-section {
    padding: 35px 0 15px 0 !important;
  }

  .footer-part1 .col-sm-3,
  .footer-section .col-md-3,
  .footer-section .col-sm-3 {
    width: 100% !important;
    margin-bottom: 22px !important;
    text-align: left !important;
  }

  .footerTitle {
    font-size: 16px !important;
    font-weight: 700 !important;
    margin-bottom: 12px !important;
    border-bottom: 2px solid #ff6364 !important;
    display: inline-block !important;
    padding-bottom: 4px !important;
    color: #0d2b45 !important;
  }

  .footer-part1 a.email-link {
    display: block !important;
    padding: 5px 0 !important;
    font-size: 13.5px !important;
  }

  .footer_address li {
    margin-bottom: 10px !important;
    font-size: 13.5px !important;
  }

  /* Training City Tabs on Mobile */
  .training-tabs-wrapper {
    margin-top: 20px !important;
  }

  .training-tabs {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    border-bottom: 2px solid #e2e8f0 !important;
  }

  .training-tabs > li {
    flex: 1 1 47% !important;
    margin-bottom: 4px !important;
  }

  .training-tabs > li > a {
    text-align: center !important;
    padding: 8px 10px !important;
    font-size: 12px !important;
    border-radius: 4px !important;
    background: #f1f5f9 !important;
    color: #0d2b45 !important;
  }

  .training-tabs > li.active > a {
    background: #0d2b45 !important;
    color: #ffffff !important;
  }

  .training-tab-content {
    padding: 15px 12px !important;
    font-size: 13px !important;
    line-height: 1.7 !important;
  }

  /* Social Icons & Bottom Links */
  .rounded-social-buttons {
    display: flex !important;
    justify-content: center !important;
    gap: 10px !important;
    margin: 20px 0 10px 0 !important;
  }

  .footer_bottom_links ul {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 8px !important;
    text-align: center !important;
    padding: 0 !important;
  }

  .row.row-2 {
    text-align: center !important;
    padding-top: 15px !important;
  }

  /* --- Enquiry Modal Popup on Mobile --- */
  .enquery_modal_popup,
  .enquiry-1 .modal-dialog {
    width: 94% !important;
    margin: 20px auto !important;
    max-width: 500px !important;
  }

  .enquiry-1 .modal-body {
    padding: 20px 15px !important;
  }

  /* --- Subscriber Section on Mobile --- */
  .subscriber-section {
    padding: 30px 15px !important;
    text-align: center !important;
  }

  .subscriber-section h2 {
    font-size: 18px !important;
  }

  .subscriber-form .input-group {
    flex-direction: column !important;
    gap: 10px !important;
  }

  .subscriber-form .form-control {
    border-radius: 4px !important;
    height: 42px !important;
  }

  .subscriber-form .btn {
    border-radius: 4px !important;
    height: 42px !important;
    width: 100% !important;
  }
}

/* ==========================================================================
   6. Smallest Mobile Phones (max-width: 480px)
   ========================================================================== */
@media (max-width: 480px) {
  header.stw-1.bg-navbar .header-inset .logo img {
    width: 145px !important;
    max-height: 34px !important;
  }

  .training-tabs > li {
    flex: 1 1 100% !important;
  }

  .footer_bottom_links ul {
    font-size: 12px !important;
  }
}