/* Shared responsive rules, loaded after the page-specific styles. */
main section > *, main article > *, .form-grid > *, .student-fields-grid > *,
.footer-grid > *, .stall-plan-content, .contact-info, .registration-surface {
  min-width: 0;
}
main :is(h1,h2,h3,h4,p,dd), .company-contact-details strong {
  overflow-wrap: break-word;
}
.button > svg, .text-link > svg { flex-shrink: 0; }
.mobile-nav {
  max-height: calc(100svh - 120px);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.booking-dialog, .scan-dialog {
  max-width: calc(100vw - 28px);
  max-height: calc(100dvh - 28px);
  overflow-y: auto;
  overscroll-behavior: contain;
}
@media (max-width: 900px) {
  .section-heading, .pricing-heading, .resource-heading,
  .company-information-heading, .travel-support-heading, .guidance-heading {
    gap: 24px;
  }
  .footer-top { flex-wrap: wrap; gap: 24px; }
  .footer-top > p { margin: 0; }
  .form-grid, .student-fields-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .section-heading, .pricing-heading, .resource-heading {
    display: flex; flex-direction: column; align-items: flex-start;
  }
  .section-heading > p, .pricing-heading > p { max-width: 100%; margin-top: 0; }
  .contact-layout, .faq-section, .student-meeting, .campus-visit-hero,
  .university-inspiration, .partnership-opening, .partnership-responsibilities,
  .registration-feature, .company-information-heading,
  .travel-support-heading, .guidance-heading {
    grid-template-columns: minmax(0,1fr); gap: 28px;
  }
  .university-inspiration > div { position: static; }
  .story-slide:not([hidden]), .service-showcase-slide:not([hidden]),
  .presentation-panel:not([hidden]) { grid-template-columns: minmax(0,1fr); }
  .stall-plan-grid, .offer-grid, .price-calculator { grid-template-columns: minmax(0,1fr); }
  .stall-plan { display: grid; grid-template-columns: 110px minmax(0,1fr); gap: 24px; }
  .stall-size { width: 100%; margin-bottom: 0; }
  .quote-result { padding: 24px 0 0; border-left: 0; border-top: 1px solid #3c4868; }
  .form-grid, .student-fields-grid { grid-template-columns: minmax(0,1fr); }
  .field.full, .student-field.full { grid-column: 1/-1; }
  main :is(input:not([type=checkbox]):not([type=radio]),select,textarea) {
    min-width: 0; max-width: 100%; font-size: 16px;
  }
  .eyebrow { line-height: 1.65; flex-wrap: wrap; }
  .button { max-width: 100%; white-space: normal; line-height: 1.5; }
  .site-header .button.small { white-space: nowrap; }
  .page-links { flex-wrap: wrap; row-gap: 12px; }
  .page-links a, .company-socials a, .mobile-nav a { min-height: 44px; }
  .footer-bottom { flex-wrap: wrap; gap: 18px; }
  .footer-bottom > div { flex-wrap: wrap; gap: 18px; }
  .company-contact-details a { min-width: 0; }
  .company-contact-details strong { overflow-wrap: anywhere; }
  .student-footer .footer-top { align-items: flex-start; }
}
@media (max-width: 480px) {
  :root { --gutter: 20px; }
  .section { padding-top: 44px; padding-bottom: 44px; }
  .section-heading h2 { font-size: 34px; line-height: 1.18; }
  .stall-plan { grid-template-columns: minmax(0,1fr); padding: 22px; }
  .stall-size { width: 100px; max-width: 100px; }
  .price-calculator { padding: 22px; }
  .quote-city-options { grid-template-columns: minmax(0,1fr); }
  .quote-city-options label { padding: 12px; font-size: 14px; gap: 10px; }
  .footer-top { flex-direction: column; align-items: flex-start; }
  .footer-top > .text-link { align-self: flex-start; }
  .footer-grid { grid-template-columns: minmax(0,1fr); gap: 28px; }
  .footer-grid a { display: flex; align-items: center; min-height: 40px; }
  .booking-dialog { padding: 24px 20px; }
  .booking-service-option { flex-wrap: wrap; }
  .booking-service-option > span { flex: 1; min-width: 150px; }
  .booking-service-option > strong { margin-left: 27px; }
  .booking-dialog .button, .form-actions .button { width: 100%; }
}
@media (max-width: 360px) {
  :root { --gutter: 16px; }
  .site-header .brand > span:last-child, .site-header .brand b { font-size: 9px; }
  .company-socials { grid-template-columns: minmax(0,1fr); }
  .form-card { padding: 22px 18px; }
  .booking-service-option > span { min-width: 120px; }
}
