/* === Mobile Improvements === */
@media (max-width: 767px) {

  /* --- Page titles: fix the giant 71px breaking titles --- */
  h1, .entry-title, .page-title,
  .ast-banner-title {
    font-size: 32px !important;
    line-height: 1.25 !important;
    word-break: break-word !important;
  }

  /* --- Section headings --- */
  .elementor-widget-heading h2 {
    font-size: 20px !important;
    line-height: 1.3 !important;
    margin-bottom: 8px !important;
  }

  .elementor-widget-heading h3 {
    font-size: 16px !important;
    line-height: 1.3 !important;
  }

  /* --- Reduce excessive section padding/spacing --- */
  .elementor-section {
    padding-top: 30px !important;
    padding-bottom: 30px !important;
  }

  .elementor-section.elementor-section-height-full {
    min-height: 55vh !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  /* --- Tighten up inner container padding --- */
  .elementor-container {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  /* --- Reduce spacing between widgets --- */
  .elementor-widget-wrap > .elementor-element {
    margin-bottom: 12px !important;
  }

  /* --- Full-width buttons with good tap size --- */
  .elementor-button {
    width: 100% !important;
    text-align: center !important;
    display: block !important;
    box-sizing: border-box !important;
    padding: 12px 20px !important;
    font-size: 14px !important;
  }

  .elementor-button-wrapper {
    width: 100% !important;
  }

  /* --- Icon box (Date/Time/Location) — tighter --- */
  .elementor-icon-box-wrapper {
    text-align: center !important;
  }

  .elementor-icon-box-content .elementor-icon-box-title {
    font-size: 15px !important;
    margin-top: 6px !important;
    margin-bottom: 0 !important;
  }

  .elementor-icon {
    font-size: 28px !important;
  }

  /* --- Body text --- */
  p, .elementor-widget-text-editor {
    font-size: 14px !important;
    line-height: 1.6 !important;
  }

  /* --- Photo columns: stack cleanly --- */
  .elementor-column.elementor-col-50,
  .elementor-column.elementor-col-33 {
    width: 100% !important;
  }

  /* --- Background image overlay sections: darken slightly for readability --- */
  .elementor-section.elementor-section-background-overlay {
    background-color: rgba(0,0,0,0.3) !important;
  }

  /* --- Footer: tighter and more readable --- */
  .site-footer, footer {
    padding: 16px !important;
    font-size: 13px !important;
    line-height: 1.6 !important;
    text-align: center !important;
  }

  /* --- Page title banner area: reduce its height --- */
  .ast-archive-description,
  .ast-page-title-bar,
  .ast-breadcrumbs-content {
    padding: 12px 16px !important;
    font-size: 14px !important;
  }
}

/* --- Extra small screens (under 480px) --- */
@media (max-width: 480px) {

  h1, .entry-title, .page-title {
    font-size: 28px !important;
  }

  .elementor-widget-heading h2 {
    font-size: 18px !important;
  }

  .elementor-section {
    padding-top: 20px !important;
    padding-bottom: 20px !important;
  }

  .elementor-button {
    font-size: 13px !important;
    padding: 10px 16px !important;
  }
}