/* Standalone confirmation and error pages */
.status-page { margin:0; min-height:100vh; display:flex; flex-direction:column; background:#f7f4fa; color:#302d75; font-family:Roboto,Arial,sans-serif; }
.status-header { display:flex; justify-content:space-between; gap:20px; padding:24px clamp(20px,6vw,80px); background:#fff; }
.status-header a { color:#302d75; text-decoration:none; font-weight:600; }
.status-card { width:min(680px,calc(100% - 40px)); box-sizing:border-box; margin:64px auto; padding:clamp(24px,5vw,56px); text-align:center; background:#fff; border-radius:16px; box-shadow:0 12px 40px #302d7512; }
.status-eyebrow { color:#9a2686; font-size:12px; letter-spacing:2px; font-weight:700; }
.status-symbol { color:#9a2686; font-size:56px; margin:20px 0; }
.status-card h1 { font-family:Hind,Arial,sans-serif; font-size:clamp(32px,6vw,44px); line-height:1.2; margin:16px 0; }
.status-card p { line-height:1.7; }
.status-actions { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:24px; margin-top:32px; }
.status-actions a { color:#302d75; }
.status-actions .status-button { padding:14px 24px; border-radius:6px; background:#9a2686; color:#fff; text-decoration:none; font-weight:600; }
.status-page a:focus-visible { outline:3px solid #9a2686; outline-offset:4px; }
.status-footer { margin-top:auto; padding:24px; text-align:center; font-size:14px; }
@media (max-width:480px) { .status-header { flex-direction:column; } .status-card { margin:32px auto; }}

/* Footer: "Our Presence" and "Useful Links" share one row, with their content below each heading */
@media (min-width: 768px) {
  .elementor-61 .elementor-element.elementor-element-d7ebc18 > .e-con-inner {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 60px;
    align-items: start;
  }
  .elementor-61 .elementor-element.elementor-element-6817fc2,
  .elementor-61 .elementor-element.elementor-element-98b2e4e {
    display: contents;
  }
  .elementor-61 .elementor-element.elementor-element-b003a41 { grid-column: 1; grid-row: 1; }
  .elementor-61 .elementor-element.elementor-element-f339c78 { grid-column: 1; grid-row: 2; }
  .elementor-61 .elementor-element.elementor-element-da70559 { grid-column: 1; grid-row: 3; }
  .elementor-61 .elementor-element.elementor-element-366dbbf { grid-column: 2; grid-row: 1; }
  .elementor-61 .elementor-element.elementor-element-75b8e25 { grid-column: 2; grid-row: 2; }
  .elementor-61 .elementor-element.elementor-element-fc1cb80 { grid-column: 2; grid-row: 3; }
  .elementor-61 .elementor-element.elementor-element-1a8e0ab {
    grid-column: 2;
    grid-row: 4;
    justify-self: start;
    margin-top: 28px;
  }}

/* Navbar: Locations now lists one campus, so show it as a compact dropdown instead of a full-width mega menu */
@media (min-width: 1025px) {
  .premium-nav-hor .premium-nav-menu-item.premium-mega-nav-item {
    position: relative !important;
  }
  .premium-mega-nav-item > .premium-mega-content-container {
    width: 300px !important;
    min-width: 0 !important;
    max-width: min(300px, 90vw) !important;
    top: 100% !important;
    left: 0 !important;
    right: auto !important;
    transform: none !important;
    max-height: calc(100dvh - 140px);
    overflow-y: auto;
    overflow-x: hidden;
  }
  .premium-mega-nav-item > .premium-mega-content-container .elementor,
  .premium-mega-nav-item > .premium-mega-content-container .e-con {
    --content-width: 100%;
    --width: 100%;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }
  .premium-mega-nav-item > .premium-mega-content-container .e-parent {
    --padding-top: 0px;
    --padding-bottom: 0px;
    --padding-left: 0px;
    --padding-right: 0px;
  }
  .premium-mega-nav-item > .premium-mega-content-container .e-con-inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 0;
    padding: 12px 16px;
  }
  .premium-mega-nav-item > .premium-mega-content-container .e-con-full {
    width: 100%;
  }}

/* In the collapsed navigation, keep Locations inside the mobile menu width. */
@media (max-width: 1024px) {
  .premium-mobile-menu-container .premium-mega-nav-item > .premium-mega-content-container {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    left: 0 !important;
    right: auto !important;
    transform: none !important;
    box-sizing: border-box;
  }
  .premium-mobile-menu-container .premium-mega-content-container .e-con,
  .premium-mobile-menu-container .premium-mega-content-container .e-con-inner {
    --content-width: 100%;
    --width: 100%;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }}

/* Footer: extra space above the presence block so the rainbow circle background is not cropped at the top */
@media (min-width: 768px) {
  .elementor-61 .elementor-element.elementor-element-d7ebc18 {
    padding-top: calc(var(--padding-top, 0px) + 60px);
    background-position: 90% 85% !important;
  }}

/* Partner logos: hide the two grey divider lines under them */
.elementor-element.elementor-element-b178e85,
.elementor-element.elementor-element-7ea0a04 {
  display: none !important;
}

/* Dropdown arrow for form selects that do not already render one */
.elementor-form select,
.local-visit-form select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: #fff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%232e3272' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 12px 8px;
  padding-right: 40px;
  cursor: pointer;
}
.elementor-field-group:has(.select-caret-down-wrapper) select {
  background-image: none;
  padding-right: revert;
}

/* Admissions Open: let the hero grow with the taller single-column enquiry form instead of overflowing its fixed height */
html[data-css-page="admissions-open"] .elementor-element.elementor-element-82d90a1 {
  --min-height: auto !important;
  min-height: 0 !important;
  padding-top: 0;
  padding-bottom: 40px;
}

/* Admissions Open: hide the red required-field asterisks on the enquiry forms */
html[data-css-page="admissions-open"] .elementor-mark-required > .elementor-field-label::after,
html[data-css-page="admissions-open"] .elementor-mark-required > .elementor-field-label::before {
  content: none !important;
  display: none !important;
}

html[data-css-page="admissions-open"] .elementor-element.elementor-element-82d90a1,
html[data-css-page="admissions-open"] .elementor-element.elementor-element-82d90a1 > .e-con-inner {
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}

/* Admissions Open: the hero wrapper had a -550px bottom margin that pulled the photo strip up over the form */
html[data-css-page="admissions-open"] .elementor-element.elementor-element-0d24706 {
  margin-bottom: 0 !important;
}

/* Keep the shared admissions toggle beside the page, clear of the bottom CTA. */
html body .admissions-popup-trigger {
  position: fixed;
  top: 50%;
  right: 0;
  bottom: auto;
  left: auto;
  transform: translateY(-50%);
  writing-mode: vertical-rl;
  white-space: nowrap;
  width: auto;
  height: auto;
  padding: 16px 10px;
  border-radius: 6px 0 0 6px;
}
@media (max-width: 767px) {
  html body .admissions-popup-trigger {
    padding: 12px 7px;
    font-size: 14px;
  }}

/* Compact the admission form while preserving its fields and single column. */
html[data-css-page="admissions-open"] .elementor-590 .elementor-element.elementor-element-a6f5b6c {
  --padding-top: 12px;
  --padding-bottom: 12px;
  --padding-left: 20px;
  --padding-right: 20px;
}
html[data-css-page="admissions-open"] .elementor-590 .elementor-element.elementor-global-735 .elementor-field-group {
  margin-bottom: 7px;
}
html[data-css-page="admissions-open"] .elementor-590 .elementor-element.elementor-global-735 .elementor-form-fields-wrapper {
  margin-bottom: -7px;
}
html[data-css-page="admissions-open"] .elementor-590 .elementor-element.elementor-global-735 .elementor-field-group > label {
  line-height: 18px;
}
html[data-css-page="admissions-open"] .elementor-590 .elementor-element.elementor-global-735 input.elementor-field-textual,
html[data-css-page="admissions-open"] .elementor-590 .elementor-element.elementor-global-735 select.elementor-field-textual {
  min-height: 30px;
  height: 30px;
  padding-top: 3px;
  padding-bottom: 3px;
  line-height: 22px;
}
html[data-css-page="admissions-open"] .elementor-590 .elementor-element.elementor-global-735 .elementor-button[type="submit"] {
  min-height: 32px;
  padding-top: 6px;
  padding-bottom: 6px;
}
@media (max-width: 767px) {
  html[data-css-page="admissions-open"] .elementor-590 .elementor-element.elementor-global-735 input.elementor-field-textual,
  html[data-css-page="admissions-open"] .elementor-590 .elementor-element.elementor-global-735 select.elementor-field-textual {
    min-height: 40px;
    height: 40px;
  }}

/* The artwork includes the photo strip. Render its two portions separately so
   the strip follows the complete form, even when fields or messages add height. */
html[data-css-page="admissions-open"] .elementor-590 .elementor-element.elementor-element-82d90a1 {
  container-type: inline-size;
  position: relative;
  isolation: isolate;
  --flex-direction: column;
  --padding-bottom: 0px;
  padding-bottom: 0;
  background-image: none !important;
}
html[data-css-page="admissions-open"] .elementor-element.elementor-element-82d90a1::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 36.888889cqw;
  background: url("../../img/cresmonde-landing-page-2027-28.png") top center / 100% auto no-repeat;
  pointer-events: none;
  z-index: -1;
}
html[data-css-page="admissions-open"] .elementor-element.elementor-element-82d90a1 > .e-con-inner {
  flex-direction: row;
  min-height: 36.888889cqw;
  padding-bottom: 32px;
}
html[data-css-page="admissions-open"] .elementor-element.elementor-element-82d90a1::after {
  content: "";
  display: block;
  position: static;
  width: 100%;
  aspect-ratio: 1800 / 198;
  flex: none;
  background: url("../../img/cresmonde-landing-page-2027-28.png") bottom center / 100% auto no-repeat;
}
html[data-css-page="admissions-open"] .elementor-element.elementor-element-0d24706 {
  position: relative;
  --margin-bottom: 0px;
  min-width: 0;
  flex-shrink: 0;
}
@media (max-width: 767px) {
  html[data-css-page="admissions-open"] .elementor-element.elementor-element-82d90a1 > .e-con-inner {
    flex-direction: column;
    padding-top: 36.888889cqw;
    padding-bottom: 24px;
  }
  html[data-css-page="admissions-open"] .elementor-590 .elementor-element.elementor-element-0d24706 {
    --width: 100%;
    --margin-top: 24px;
    margin-top: 24px;
  }}

/* Home welcome card: centre the intro text and reduce the bottom padding of the card */
.elementor-element.elementor-element-43a3267,
.elementor-element.elementor-element-713f0b9 {
  text-align: center;
}
.elementor-element.elementor-element-cab043b {
  padding-bottom: 20px !important;
}

/* Home welcome card: tighter spacing between the two intro paragraphs */
.elementor-element.elementor-element-43a3267 p,
.elementor-element.elementor-element-713f0b9 p {
  margin: 0 !important;
}
.elementor-element.elementor-element-43a3267 {
  margin-bottom: 0 !important;
}
.elementor-element.elementor-element-713f0b9 {
  margin-top: -13px !important;
}

/* Home: "Academics at Cresmonde" intro above the Mini Marvels / Primary / Secondary cards */
.cr-academics-intro {
  box-sizing: border-box;
  max-width: 1200px;
  margin: 90px auto -60px;
  padding: 0 24px;
}
.cr-academics-title {
  font-family: "Hind", sans-serif;
  font-size: 34px;
  font-weight: 500;
  line-height: 1.2em;
  text-transform: uppercase;
  color: #9A2686;
  margin: 0;
}
.cr-academics-text {
  color: #4a4a4a;
  font-size: 17px;
  line-height: 1.7;
  margin: 12px 0 0;
  padding-bottom: 40px;
}
@media (max-width: 767px) {
  .cr-academics-intro { margin: 60px auto 20px; padding: 0 16px; }
  .cr-academics-title { font-size: 26px; }
  .cr-academics-text { font-size: 15px; }}

/* Admissions Open: space above the "Welcome to Cresmonde World School" section below the photo strip */
html[data-css-page="admissions-open"] .elementor-element.elementor-element-82bb792 {
  padding-top: 60px !important;
}

/* Mobile layout for every enquiry form (form[data-local-form]): full-width fields, 16px side gutters, no sideways scroll. */
@media (max-width: 767px) {
  html, body { max-width: 100%; overflow-x: hidden; }
  html[data-css-page] form[data-local-form] {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  html[data-css-page] form[data-local-form] .elementor-column,
  html[data-css-page] form[data-local-form] .elementor-field-group {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    box-sizing: border-box !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  html[data-css-page] form[data-local-form] input:not([type="checkbox"]):not([type="radio"]),
  html[data-css-page] form[data-local-form] select,
  html[data-css-page] form[data-local-form] textarea {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    font-size: 16px;
  }
  html[data-css-page] form[data-local-form] .elementor-button,
  html[data-css-page] form[data-local-form] button[type="submit"] {
    width: 100% !important;
    box-sizing: border-box !important;
  }
  html[data-css-page] form[data-local-form] .local-form-message {
    overflow-wrap: anywhere;
    box-sizing: border-box;
  }
  html[data-css-page] .elementor-widget-form,
  html[data-css-page] .elementor-widget-form .elementor-widget-container {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }}

/* Site-wide mobile layer (max-width 767px): every page. Fixes overflow, wide tables, oversized headings and the floating Admissions tab. */
@media (max-width: 767px) {
  img, video, canvas, svg, iframe, embed, object { max-width: 100% !important; height: auto; }
  table { display: block !important; max-width: 100% !important; overflow-x: auto !important; -webkit-overflow-scrolling: touch; }
  pre { max-width: 100%; overflow-x: auto; white-space: pre-wrap; }
  .elementor-section, .elementor-container, .e-con, .e-con-inner, .elementor-widget-wrap, .elementor-column, .elementor-widget, .elementor-widget-container {
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box;
  }
  .elementor-column { width: 100% !important; }
  .elementor-form-fields-wrapper { margin-left: 0 !important; margin-right: 0 !important; width: 100% !important; }
  .elementor-widget-heading .elementor-heading-title {
    font-size: clamp(24px, 6.5vw, 40px) !important;
    line-height: 1.2 !important;
    overflow-wrap: anywhere;
  }
  h1, h2, h3, p, li, a, span { overflow-wrap: anywhere; }
  .admissions-popup-trigger {
    position: fixed !important;
    right: 12px !important;
    bottom: 12px !important;
    padding: 10px 16px !important;
    font-size: 14px !important;
    z-index: 999;
  }}

/* Admissions Open tab on phones: a small horizontal button in the bottom-right corner instead of a tall vertical strip. */
@media (max-width: 767px) {
  html body .admissions-popup-trigger {
    writing-mode: horizontal-tb !important;
    transform: none !important;
    top: auto !important;
    left: auto !important;
    bottom: 12px !important;
    right: 12px !important;
    width: auto !important;
    height: auto !important;
    max-height: none !important;
    padding: 10px 16px !important;
    border-radius: 999px !important;
    font-size: 14px !important;
    line-height: 1.2 !important;
    white-space: nowrap;
  }}

/* Mobile header (max-width 767px): logo on the left, menu icon on the right, on one row. */
@media (max-width: 767px) {
  header.elementor-location-header .elementor-element-5ec7eaa > .e-con-inner {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px;
    padding: 12px 16px !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  header.elementor-location-header .elementor-element-87a7045,
  header.elementor-location-header .elementor-element-ccccc71,
  header.elementor-location-header .elementor-element-c5aefdf {
    width: auto !important;
    max-width: none !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
  }
  header.elementor-location-header .elementor-element-87a7045 img {
    width: 150px !important;
    max-width: 55vw !important;
    height: auto !important;
  }
  header.elementor-location-header .premium-hamburger-toggle {
    font-size: 26px;
    padding: 6px;
    cursor: pointer;
  }}

/* Footer on phones (max-width 767px): stacked blocks, the rainbow circle sits in its own band below the links instead of behind them. */
@media (max-width: 767px) {
  .elementor-61 .elementor-element.elementor-element-d7ebc18 {
    padding-top: 28px !important;
    padding-bottom: 0 !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    background-size: 54vw auto !important;
    background-position: 50% 100% !important;
  }
  .elementor-61 .elementor-element.elementor-element-d7ebc18 > .e-con-inner {
    padding-bottom: calc(54vw * 0.95 + 8px) !important;
    gap: 28px;
  }
  .elementor-61 .elementor-element .elementor-heading-title {
    font-size: 22px !important;
    line-height: 1.25 !important;
  }
  .elementor-61 .elementor-element .elementor-icon-list-text,
  .elementor-61 .elementor-element .elementor-text-editor,
  .elementor-61 .elementor-element .elementor-text-editor p {
    font-size: 15px;
    line-height: 1.55;
  }
  .elementor-61 .elementor-element .elementor-social-icons-wrapper {
    justify-content: flex-start;
    gap: 14px;
  }}

/* FAQ sections: extra space below the accordion (home, Andheri, Admissions Open). */
.elementor-element.elementor-element-1ac8bc3,
.elementor-element.elementor-element-40c9259,
.elementor-element.elementor-element-798ebd2 {
  padding-bottom: 60px !important;
}
@media (max-width: 767px) {
  .elementor-element.elementor-element-1ac8bc3,
  .elementor-element.elementor-element-40c9259,
  .elementor-element.elementor-element-798ebd2 {
    padding-bottom: 40px !important;
  }}
/* "Why choose Cresmonde" cards on phones: one card on screen at a time, swiped or auto-advanced by js/site.js. */
@media (max-width: 767px) {
  .elementor-element.elementor-element-4522aa6 {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    gap: 0 !important;
    width: 100% !important;
  }
  .elementor-element.elementor-element-4522aa6::-webkit-scrollbar { display: none; }
  .elementor-element.elementor-element-4522aa6 > .e-con-full {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    scroll-snap-align: start;
    box-sizing: border-box;
    padding: 0 16px;
  }
}

/* Home banner has a single slide now: hide its previous/next arrows and dots. */
html[data-css-page="home"] .elementor-element.elementor-element-4129f54 .swiper-button-prev,
html[data-css-page="home"] .elementor-element.elementor-element-4129f54 .swiper-button-next,
html[data-css-page="home"] .elementor-element.elementor-element-4129f54 .swiper-pagination {
  display: none !important;
}

/* Elementor's own arrow buttons on the single-slide home banner. */
html[data-css-page="home"] .elementor-element.elementor-element-4129f54 .elementor-swiper-button {
  display: none !important;
}
