/* All 5 dynamic themes — shared responsive fixes (mobile / tablet) */

/* Hero — all themes */
@media (max-width: 991px) {
  .gn-navy-hero-fullwidth,
  .gt-hero-fullwidth,
  .es-hero-fullwidth,
  .eod-hero-fullwidth,
  .eg-hero-video-carousel.ft-hero-bleed {
    min-height: min(560px, 78vh);
  }
  .gn-navy-hero-content-wrap { padding-top: 1.75rem; }
  .es-hero-fullwidth .es-hero-content,
  .gt-hero-fullwidth .gt-hero-content-wrap,
  .eod-hero-fullwidth .eod-hero-inner,
  .eg-hero-video-carousel .eg-hero-content {
    padding: 1.75rem 0 2.5rem;
  }
  .gn-navy-hero-actions,
  .gt-hero-ctas,
  .es-hero-ctas,
  .eod-hero-actions,
  .eg-hero-content .eg-btn-gold {
    flex-wrap: wrap;
  }
  .ft-hero-welcome-below > section { padding: 1.75rem 0 2rem; }
  .ft-hero-video-slider-controls { bottom: .85rem !important; }
}

@media (max-width: 767px) {
  .gn-navy-hero-fullwidth,
  .gt-hero-fullwidth,
  .es-hero-fullwidth,
  .eod-hero-fullwidth,
  .eg-hero-video-carousel.ft-hero-bleed {
    min-height: min(480px, 72vh);
  }
  .gn-navy-hero-content h1,
  .gt-hero-content h1,
  .es-hero-text h1,
  .eod-hero-text h1,
  .eg-hero-content h1 {
    font-size: clamp(1.45rem, 6vw, 1.85rem) !important;
    line-height: 1.2;
  }
  .gn-navy-hero-content p,
  .gt-hero-content p,
  .es-hero-text p,
  .eod-hero-text p,
  .eg-hero-content p {
    font-size: .92rem;
  }
  .ft-hero-video-phone { width: min(200px, 88vw); }
  .ft-hero-video-btn { font-size: .82rem; padding: .5rem .85rem; }
  .ft-hero-video-slider-arrow { width: 30px; height: 30px; }
}

@media (max-width: 575px) {
  .gn-navy-hero-fullwidth,
  .gt-hero-fullwidth,
  .es-hero-fullwidth,
  .eod-hero-fullwidth,
  .eg-hero-video-carousel.ft-hero-bleed {
    min-height: min(420px, 68vh);
  }
  .gn-navy-hero-actions,
  .gt-hero-ctas,
  .es-hero-ctas,
  .eod-hero-actions {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }
  .gn-navy-btn-primary,
  .gn-navy-btn-outline,
  .gt-btn-solid,
  .gt-btn-outline,
  .es-btn-gradient,
  .eod-btn-glow,
  .eg-btn-gold,
  .ft-hero-video-btn {
    width: 100%;
    justify-content: center;
  }
  .ft-pro-logo-text strong {
    font-size: .82rem;
    line-height: 1.2;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .ft-pro-logo img { height: 40px !important; max-width: 88px !important; }
}

/* Card grids — all themes */
@media (max-width: 991px) {
  .gt-glass-row,
  .gt-programs-grid,
  .gn-navy-values-row,
  .gn-navy-programs-grid,
  .eod-glass-grid,
  .eod-modules-grid,
  .eg-enterprise-grid,
  .eg-values-row,
  .es-modules-grid,
  .es-programs-grid,
  .es-features-split {
    grid-template-columns: 1fr !important;
    gap: 1rem;
  }
}

/* CTA bands — all themes */
@media (max-width: 575px) {
  .gt-cta,
  .gn-navy-cta,
  .eod-cta,
  .eg-cta,
  .es-cta {
    padding: 2.25rem 0;
  }
  .gt-cta-inner,
  .gn-navy-cta-inner,
  .eod-cta-inner,
  .eg-cta-inner,
  .es-cta-inner {
    gap: 1.25rem;
  }
  .es-cta-content h2,
  .gt-cta h2,
  .gn-navy-cta h2,
  .eod-cta h2,
  .eg-cta h2 {
    font-size: 1.35rem;
  }
}

/* Inner pages — all themes */
@media (max-width: 767px) {
  .ft-inner-page { padding: 1.75rem 0 2.5rem; }
  .ft-pro-page-head { flex-direction: column; align-items: flex-start; gap: .75rem; }
  .ft-pro-page-title { font-size: clamp(1.35rem, 5vw, 1.65rem); }
  .ft-glass-content-card { padding: 1.15rem !important; }
  .ft-inner-body .table-responsive,
  .ft-inner-body .table {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .ft-rich img,
  .ft-rich iframe,
  .ft-rich video,
  .ft-rich table {
    max-width: 100%;
    height: auto;
  }
  .ft-rich table { display: block; overflow-x: auto; }
}

/* Generic CMS sections */
@media (max-width: 575px) {
  .ft-card { padding: 1.15rem; }
  .ft-icon-card { text-align: center; }
  .ft-stat-item { padding: 1.15rem; }
  .ft-campus-item img { height: 150px; }
  .ft-news-card img { height: 150px; }
}

/* Prevent horizontal overflow on small screens */
@media (max-width: 575px) {
  .ft-body, .ft-main { overflow-x: hidden; max-width: 100%; }
  .ft-hero-bleed {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
  }
}
