/**
 * Institute listing cards — loaded LAST after all other CSS.
 * Structural helpers: .bc-transport-icon-list + .bc-book-course-row (see showinstitute_new.php).
 */
html {
  box-sizing: border-box;
  overflow-x: hidden;
}
*, *::before, *::after {
  box-sizing: inherit;
}

body#main-homepage {
  overflow-x: hidden;
  max-width: 100%;
  width: 100%;
}

/* Prevent right-edge clipping: Bootstrap .row negative margins + overflow:hidden ancestors */
#main-homepage .innerpage-wrapper,
#main-homepage #page,
#main-homepage #main,
#main-homepage .cruise-details-content,
#main-homepage .outline,
#main-homepage .middle,
#main-homepage .column1,
#main-homepage #content.contents,
#main-homepage .available-blocks {
  overflow-x: visible !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

@media (max-width: 767px) {
  #main-homepage .container {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
    box-sizing: border-box !important;
  }
  /* Bootstrap .row { margin: 0 -15px } extends past the viewport — reset inside listing */
  #main-homepage .outline .row,
  #main-homepage .available-blocks .row,
  #main-homepage .list-block .row,
  #main-homepage .cruise-details-content .row {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  #main-homepage .outline [class*="col-"],
  #main-homepage .available-blocks [class*="col-"],
  #main-homepage .list-block [class*="col-"] {
    padding-left: 10px !important;
    padding-right: 10px !important;
    max-width: 100% !important;
  }
}

#main-homepage .list-block .list-content {
  max-width: 100%;
  box-sizing: border-box;
}

#main-homepage .list-block .row,
#main-homepage .crs-list-block .row {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

#main-homepage .list-block [class*="col-"] {
  box-sizing: border-box;
}

#main-homepage .si-default-institute-photo {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: 280px !important;
  object-fit: contain !important;
  object-position: center !important;
  display: block !important;
  background: #f8f9fa !important;
}

/* Medium/narrow desktop: prevent the fee panel from covering the gallery/details when the browser is narrowed or zoomed. */
@media (min-width: 992px) and (max-width: 1499px) {
  #main-homepage .column1,
  #main-homepage #content.contents,
  #main-homepage .content-side,
  #main-homepage .available-blocks {
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
  }

  #main-homepage .crs-list-block .row {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: flex-start !important;
    width: 100% !important;
  }

  #main-homepage .crs-list-block .col-md-3.col-lg-3.col-xs-12.col-sm-6 {
    flex: 0 0 34% !important;
    width: 34% !important;
    max-width: 34% !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
  }

  #main-homepage .crs-list-block .col-md-6.col-lg-6.col-sm-7.col-xs-7.hidden-xs.hidden-sm {
    display: block !important;
    flex: 0 0 66% !important;
    width: 66% !important;
    max-width: 66% !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
  }

  #main-homepage .crs-list-block .rate.hidden-sm.hidden-xs {
    display: block !important;
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    clear: both !important;
    padding: 12px 8px 4px !important;
    margin-top: 10px !important;
    border-top: 1px solid rgba(178, 0, 0, 0.14);
    text-align: center !important;
  }

  #main-homepage .crs-list-block .rate.hidden-sm.hidden-xs > div {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 10px 20px;
  }

  #main-homepage .crs-list-block .si-desktop-rate-transport,
  #main-homepage .crs-list-block .si-map-in-rate-wrap {
    width: auto !important;
    max-width: 100% !important;
    float: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  #main-homepage .crs-list-block .rate .harshstyle,
  #main-homepage .crs-list-block .rate h3,
  #main-homepage .crs-list-block .rate h4 {
    text-align: center !important;
  }
}

/* Mobile typography: sans-serif, beats global Lato / serif from style.css */
@media (max-width: 767px) {
  body#main-homepage,
  body#main-homepage p,
  body#main-homepage .harshstyle,
  body#main-homepage .rate,
  body#main-homepage .rate1,
  body#main-homepage .list-block,
  body#main-homepage .list-content,
  body#main-homepage .block-minor,
  body#main-homepage .cbutton,
  body#main-homepage .font12,
  body#main-homepage .btn,
  body#main-homepage .btn-orange,
  body#main-homepage a.si-book-course-mobile {
    font-family: 'Roboto', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
    font-size: 15px !important;
    line-height: 1.55 !important;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }
  body#main-homepage h3.block-title,
  body#main-homepage h3.block-title a {
    font-family: 'Poppins', 'Roboto', sans-serif !important;
    font-weight: 600 !important;
  }
}

/* ---- Transport icons: flex row (no float width fights) ---- */
#main-homepage .bc-transport-icons {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

#main-homepage .bc-transport-icon-list {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  justify-content: space-around !important;
  align-items: flex-start !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 8px 4px !important;
  list-style: none !important;
}

#main-homepage .bc-transport-icon-list li {
  float: none !important;
  flex: 1 1 28% !important;
  max-width: 33.33% !important;
  box-sizing: border-box !important;
  text-align: center !important;
  padding: 4px 2px !important;
  margin: 0 !important;
}

#main-homepage .bc-transport-icon-list img {
  max-width: 100%;
  height: auto;
}

/* ---- Book Course: full-width row BELOW icons (no longer inside a narrow <li>) ---- */
#main-homepage .bc-book-course-row {
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
  clear: both !important;
  box-sizing: border-box !important;
  padding: 12px 4px 16px !important;
  margin: 0 !important;
}

#main-homepage .bc-book-course-row .si-book-course-mobile,
#main-homepage .bc-book-course-row .btn-orange,
#main-homepage .bc-book-course-row .bc-transport-book-wrap a {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  white-space: normal !important;
  word-break: break-word !important;
}

/* Desktop-only Book row (right column, md+). Bootstrap hidden-* was unreliable on some builds. */
#main-homepage .si-book-course-desktop-wrap {
  display: none !important;
}
@media (min-width: 992px) {
  #main-homepage .si-book-course-desktop-wrap {
    display: block !important;
  }
  #main-homepage .si-book-course-desktop-wrap a.si-institute-action-btn {
    display: inline-block !important;
    width: auto !important;
    min-width: 120px !important;
    max-width: 100% !important;
  }
}

/* ---- Gallery: avoid hard crop on small viewports (overrides showinstitute_head_inner mobile 150px) ---- */
@media (max-width: 767px) {
  #main-homepage .gallery-main-image {
    overflow: visible !important;
  }
  #main-homepage .gallery-main-image img {
    height: auto !important;
    min-height: 0 !important;
    max-height: min(58vh, 340px) !important;
    object-fit: contain !important;
    width: 100% !important;
  }
}

/* ---- Mobile listing card (showinstitute_new.php): course row → fees row → distance + Book same row ---- */
#main-homepage .si-mobile-institute-meta .si-mcard-row {
  width: 100%;
  box-sizing: border-box;
}

#main-homepage .si-mcard-course {
  padding-bottom: 8px;
  margin-bottom: 4px;
  border-bottom: 1px solid rgba(178, 0, 0, 0.12);
}

#main-homepage .si-mcard-fees {
  padding-bottom: 10px;
  margin-bottom: 6px;
  border-bottom: 1px solid rgba(178, 0, 0, 0.12);
}

/* Location + Book — shared button style (listing cards, mobile + desktop) */
#main-homepage a.si-institute-action-btn {
  display: inline-block !important;
  box-sizing: border-box;
  padding: 8px 14px !important;
  margin: 0 !important;
  font-size: 13px !important;
  line-height: 1.25 !important;
  font-weight: 700 !important;
  text-align: center !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  writing-mode: horizontal-tb !important;
  letter-spacing: normal !important;
  color: #fff !important;
  background: linear-gradient(180deg, #e76f00 0%, #c45a00 100%) !important;
  border: 2px solid rgba(255, 255, 255, 0.95) !important;
  border-radius: 8px !important;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}

#main-homepage a.si-institute-action-btn:hover,
#main-homepage a.si-institute-action-btn:focus {
  color: #fff !important;
  text-decoration: none !important;
  opacity: 0.95;
}

@media (min-width: 992px) {
  #main-homepage a.si-institute-action-btn {
    padding: 10px 18px !important;
    font-size: 14px !important;
  }
}

@media (max-width: 991px) {
  #main-homepage .si-mcard-fees {
    padding-bottom: 4px !important;
    margin-bottom: 2px !important;
  }

  #main-homepage .si-mcard-fees .si-course-fees-row,
  #main-homepage .si-mcard-fees p {
    margin-bottom: 0 !important;
  }

  #main-homepage .si-mcard-distance-book {
    display: flex !important;
    flex-direction: row !important;
    align-items: center;
    justify-content: space-between;
    gap: 8px 10px;
    flex-wrap: nowrap;
    width: 100%;
    max-width: 100%;
    padding-top: 0 !important;
    margin-top: 0 !important;
    box-sizing: border-box;
  }

  #main-homepage .si-mcard-distance-col {
    flex: 1 1 auto;
    min-width: 0;
  }

  #main-homepage .si-mcard-book-col {
    flex: 0 0 auto;
    align-self: center;
  }

  #main-homepage .si-mcard-icons-map-row {
    display: flex !important;
    flex-direction: row !important;
    align-items: center;
    justify-content: flex-start;
    gap: 6px 8px;
    flex-wrap: nowrap;
    width: 100%;
    box-sizing: border-box;
  }

  #main-homepage .si-mcard-icons-map-row .bc-transport-icons {
    flex: 0 1 auto;
    min-width: 0;
    max-width: 58%;
    margin-bottom: 0 !important;
  }

  #main-homepage .si-mcard-icons-map-row .bc-transport-icon-list {
    justify-content: flex-start !important;
    padding-left: 0 !important;
    padding-right: 2px !important;
  }

  #main-homepage .si-map-inline-with-icons {
    flex: 0 0 auto;
    min-width: min-content;
    max-width: none;
    padding: 0 !important;
    margin: 0 !important;
    margin-left: auto !important;
    text-align: center;
    align-self: center;
  }

  #main-homepage a.si-institute-action-btn {
    font-size: 11px !important;
    padding: 7px 10px !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    min-width: 0;
  }

  #main-homepage .si-mcard-distance-book .bc-transport-icons {
    margin-bottom: 0;
  }

  #main-homepage .si-mcard-distance-book .bc-book-course-row {
    padding: 0 !important;
    margin: 0 !important;
    width: auto !important;
    max-width: none !important;
    clear: none !important;
  }

  #main-homepage .si-mcard-distance-book a.si-book-course-mobile.si-institute-action-btn {
    display: inline-block !important;
    width: auto !important;
    min-width: 72px;
    max-width: 42vw !important;
    margin: 0 !important;
  }
}

@media (max-width: 400px) {
  #main-homepage .si-mcard-distance-book {
    flex-wrap: wrap;
  }

  #main-homepage .si-mcard-icons-map-row {
    flex-wrap: wrap;
    align-items: flex-start;
  }

  #main-homepage .si-map-inline-with-icons {
    flex: 1 1 auto;
    min-width: 0;
    max-width: 100%;
    margin-left: 0 !important;
    text-align: center;
  }

  #main-homepage a.si-institute-action-btn {
    white-space: normal !important;
    max-width: 100%;
  }

  #main-homepage .si-mcard-book-col {
    flex: 1 1 100%;
    text-align: center;
    margin-top: 6px;
  }

  #main-homepage .si-mcard-distance-book a.si-book-course-mobile {
    max-width: 100% !important;
  }
}
