/* ============================================================
   Responsive hardening — loaded last, on top of the template's
   existing Bootstrap grid + media queries. Additive only.
   ============================================================ */

/* Never allow a stray element to create a horizontal scrollbar */
html, body { overflow-x: hidden; }

/* Images always scale down to their container and keep aspect ratio */
img { max-width: 100%; height: auto; }

/* Embedded maps / iframes stay within the viewport */
iframe { max-width: 100%; }

/* Tablets (portrait) and below: ease oversized type a little */
@media (max-width: 991px) {
  .font_70 { font-size: 44px !important; }
  .font_60 { font-size: 38px !important; }
  .font_50 { font-size: 34px !important; }
}

/* Phones */
@media (max-width: 575px) {
  .p_3 { padding-top: 42px; padding-bottom: 42px; }
  .font_70 { font-size: 32px !important; }
  .font_60 { font-size: 28px !important; }
  .font_50 { font-size: 26px !important; line-height: 1.2; }

  /* Hero caption: keep the heading inside the slide on small screens */
  #center .carousel-caption h1 { font-size: 28px !important; line-height: 1.18 !important; }
  #center .carousel-caption h3 { font-size: 16px !important; }
  #center .carousel-caption p  { font-size: 14px !important; }
  #center .carousel-caption    { padding-left: 14px; padding-right: 14px; }
}

/* Very small phones */
@media (max-width: 360px) {
  #center .carousel-caption h1 { font-size: 24px !important; }
}

/* Admin / member data tables: scroll horizontally instead of overflowing */
@media (max-width: 767px) {
  .table { display: block; width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; white-space: nowrap; }
}
