/* Direct-host performance and responsive refinements. */
img { content-visibility: auto; }

/* Application form rules are repeated here because the direct-host build uses
   the published CSS bundle, while this page is assembled on the FTP host. */
.application-form .application-form__intro { margin: 0 0 24px; color: #657783; font-size: .86rem; line-height: 1.55; }
.application-form .application-section { margin: 0 0 28px; padding: 0 0 26px; border: 0; border-bottom: 1px solid #dce5e6; }
.application-form .application-section legend { display: flex; align-items: center; gap: 11px; width: 100%; margin: 0 0 18px; padding: 0; color: #102f49; font-size: 1.12rem; font-weight: 800; }
.application-form .application-section legend span { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: #3978c9; color: #fff; font-size: .68rem; letter-spacing: .04em; }
.application-form .field-label { display: block; margin-bottom: 10px; color: #344d63; font-size: .72rem; font-weight: 800; }
.application-form .check-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.application-form .check-grid--programmes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.application-form .check-option { display: flex !important; flex-direction: row !important; align-items: flex-start; gap: 8px !important; min-height: 42px; padding: 10px; border: 1px solid #d6e0e1; border-radius: 8px; background: #fbfcfb; cursor: pointer; }
.application-form .check-option input[type="checkbox"] { flex: 0 0 18px !important; width: 18px !important; height: 18px !important; min-width: 18px; margin: 2px 0 0 !important; padding: 0 !important; accent-color: #3978c9; }
.application-form .check-option > span { display: block !important; margin: 0 !important; color: #506579; font-size: .72rem; font-weight: 600; line-height: 1.25; }
.application-form .form-wide { grid-column: 1 / -1; }

@media (max-width: 820px) {
  .opening-bar {
    min-height: 44px;
    gap: 10px;
    padding: 7px 4vw;
  }

  .opening-bar b {
    flex: none;
    font-size: 0;
    line-height: 1;
    white-space: nowrap;
  }

  .opening-bar b::after {
    content: "2027 ADMISSIONS OPEN";
    font-size: .64rem;
    letter-spacing: .09em;
  }

  .opening-bar .network-link {
    min-height: 29px;
    padding: 4px 10px;
    white-space: nowrap;
  }

  .mobile-nav nav {
    max-height: calc(100svh - 114px);
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  body:has(.mobile-nav[open]) {
    overflow: hidden;
  }
}

@media (max-width: 560px) {
  :root { --shell: 90vw; }

  .section-pad,
  .content-section {
    padding-block: 68px;
  }

  .lead-form {
    padding: 22px 18px;
    border-radius: 16px;
  }

  .form-grid {
    gap: 16px;
  }

  .consent {
    gap: 12px;
    padding: 14px 12px;
  }

  .consent input {
    width: 20px;
    height: 20px;
    margin-top: 1px;
  }

  .consent span,
  .lead-form > small {
    font-size: .72rem;
    line-height: 1.5;
  }

  .lead-form .button {
    min-height: 54px;
    font-size: .84rem;
  }

  .whatsapp-float {
    right: 14px;
    bottom: calc(14px + env(safe-area-inset-bottom));
  }
}

@media (max-width: 560px) {
  .application-section { margin-bottom: 24px; padding-bottom: 22px; }
  .application-section legend { font-size: 1rem; }
  .application-form .check-grid,
  .application-form .check-grid--programmes { grid-template-columns: 1fr; gap: 8px; }
}
