/* SDA RESPONSIVE OVERRIDES — load after all existing stylesheets */

/* Global safeguards */
*, *::before, *::after { box-sizing: border-box; }
html { width: 100%; max-width: 100%; overflow-x: hidden; overflow-x: clip; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { width: 100%; min-width: 320px; max-width: 100%; overflow-x: hidden; overflow-x: clip; }
img, picture, video, canvas, svg, iframe { max-width: 100%; }
img { height: auto; }
button, input, select, textarea { max-width: 100%; font: inherit; }
.sda-public-site main, .admin-v2 main, .sda-public-site .container, .admin-v2 .admin-content,
.admin-v2 .admin-card, .admin-v2 .metric-card { min-width: 0; }
.sda-public-site a, .admin-v2 a, .sda-public-site p, .admin-v2 p { overflow-wrap: anywhere; }

/* Public content must be allowed to shrink inside CSS grids */
.sda-public-site .hero-grid > *, .sda-public-site .about-panel > *,
.sda-public-site .gallery-intro-row > *, .sda-public-site .events-grid > *,
.sda-public-site .team-grid > *, .sda-public-site .pillars-grid > *,
.sda-public-site .involve-grid > * { min-width: 0; }
.sda-public-site .event-card-visual img, .sda-public-site .team-photo img,
.sda-public-site .gallery-card-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.sda-public-site .form-card, .sda-public-site .form-aside,
.sda-public-site .newsletter-panel { min-width: 0; max-width: 100%; }
.sda-public-site .form-control, .sda-public-site .form-select,
.sda-public-site textarea { width: 100%; min-width: 0; }

/* Tablets and smaller laptops */
@media (max-width: 991.98px) {
  .sda-public-site .header-inner { position: relative; height: 76px; gap: 10px; min-width: 0; }
  .sda-public-site .brand { min-width: 0; flex: 0 1 auto; }
  .sda-public-site .brand-logo { width: clamp(145px, 25vw, 195px); height: auto; }
  .sda-public-site .mobile-menu-toggle { display: grid; flex: 0 0 42px; place-items: center; margin-left: auto; }
  .sda-public-site .primary-navigation { z-index: 1001; left: 0; right: 0; width: 100%; max-height: calc(100vh - 95px); overflow-y: auto; overscroll-behavior: contain; }
  .sda-public-site .header-actions { flex: 0 0 auto; gap: 5px; }
  .sda-public-site .header-join { display: none !important; }
  .sda-public-site .events-grid, .sda-public-site .team-grid,
  .sda-public-site .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sda-public-site .page-hero, .sda-public-site .gallery-page-hero { padding-top: 65px; padding-bottom: 60px; }

  /* Admin menu becomes a slide-in drawer on tablets */
  .admin-v2 .admin-sidebar { position: fixed; top: 0; bottom: 0; left: 0; z-index: 110; height: 100vh; overflow-y: auto; overscroll-behavior: contain; }
  .admin-v2 .admin-mobile-toggle { display: inline-grid; flex: 0 0 auto; place-items: center; }
  .admin-v2 .admin-sidebar-backdrop.visible { z-index: 100; }
  .admin-v2 .admin-topbar { position: sticky; top: 0; z-index: 80; }
  .admin-v2 .admin-main { width: 100%; min-width: 0; margin-left: 0; }
  .admin-v2 .admin-content { width: 100%; padding: 25px clamp(16px, 3vw, 28px) 38px; }
  .admin-v2 .admin-table { min-width: 650px; }
  .admin-v2 .table-responsive { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .admin-v2 .gallery-admin-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Phones */
@media (max-width: 767.98px) {
  .sda-public-site .announcement-note { display: none; }
  .sda-public-site .hero-grid, .sda-public-site .about-panel,
  .sda-public-site .gallery-intro-row { grid-template-columns: minmax(0, 1fr); }
  .sda-public-site .hero-title { font-size: clamp(38px, 10vw, 58px); line-height: 1.08; }
  .sda-public-site .hero-art { width: 100%; min-height: 280px; }
  .sda-public-site .orbital-art { width: min(82vw, 340px); max-width: 100%; }
  .sda-public-site .section, .sda-public-site .page-content,
  .sda-public-site .gallery-page-content { padding-top: 52px; padding-bottom: 58px; }
  .sda-public-site .section-title { font-size: clamp(29px, 7vw, 42px); }
  .sda-public-site .page-title { font-size: clamp(34px, 9vw, 52px); line-height: 1.1; }
  .sda-public-site .page-intro { font-size: 14px; line-height: 1.75; }
  .sda-public-site .events-grid, .sda-public-site .team-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .sda-public-site .pillars-grid, .sda-public-site .involve-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .sda-public-site .form-card, .sda-public-site .form-aside { padding: clamp(17px, 4vw, 25px); }
  .sda-public-site .btn { min-height: 42px; white-space: normal; }
  .sda-public-site .site-footer { padding-top: 52px; }
  .sda-public-site .footer-brand img { width: min(230px, 80%); }

  .admin-v2 .admin-topbar { min-height: 68px; height: auto; padding: 10px 14px; gap: 10px; }
  .admin-v2 .topbar-left, .admin-v2 .topbar-left > div { min-width: 0; }
  .admin-v2 .topbar-left { gap: 9px; }
  .admin-v2 .topbar-eyebrow { font-size: 7px; letter-spacing: .1em; }
  .admin-v2 .admin-topbar strong { font-size: 19px; }
  .admin-v2 .topbar-actions { gap: 7px; }
  .admin-v2 .admin-content { padding: 20px 14px 30px; }
  .admin-v2 .admin-page-heading { align-items: flex-start; flex-wrap: wrap; gap: 12px; }
  .admin-v2 .admin-page-heading h1 { font-size: clamp(25px, 7vw, 31px); }
  .admin-v2 .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .admin-v2 .dashboard-layout { grid-template-columns: minmax(0, 1fr); }
  .admin-v2 .dashboard-panel, .admin-v2 .admin-card { min-width: 0; padding: 15px; }
  .admin-v2 .admin-form .row > * { min-width: 0; }
  .admin-v2 .admin-actions { flex-wrap: wrap; }
  .admin-v2 .admin-footer { padding: 14px; gap: 8px; flex-direction: column; align-items: flex-start; }
}

/* Small phones */
@media (max-width: 575.98px) {
  .sda-public-site .header-inner { height: 68px; gap: 7px; }
  .sda-public-site .brand-logo { width: clamp(125px, 39vw, 160px); }
  .sda-public-site .mobile-menu-toggle { width: 38px; height: 38px; flex-basis: 38px; font-size: 21px; }
  .sda-public-site .header-actions { gap: 3px; }
  .sda-public-site .language-switch { gap: 1px; padding: 3px; }
  .sda-public-site .language-option { padding: 5px; }
  .sda-public-site .language-option small { display: none; }
  .sda-public-site .events-grid, .sda-public-site .team-grid,
  .sda-public-site .gallery-grid, .sda-public-site .pillars-grid,
  .sda-public-site .involve-grid { grid-template-columns: minmax(0, 1fr); }
  .sda-public-site .gallery-grid { gap: 22px; }
  .sda-public-site .gallery-card-image,
  .sda-public-site .gallery-card:nth-child(5n+2) .gallery-card-image,
  .sda-public-site .gallery-card:nth-child(5n+4) .gallery-card-image { aspect-ratio: 1.2; }
  .sda-public-site .page-hero, .sda-public-site .gallery-page-hero { padding: 48px 0 44px; }
  .sda-public-site .page-content, .sda-public-site .gallery-page-content { padding: 38px 0 48px; }
  .sda-public-site .form-card, .sda-public-site .form-aside { padding: 17px; }
  .sda-public-site .event-card-body { padding: 17px; }
  .sda-public-site .gallery-lightbox .modal-dialog { margin: 8px; }

  .admin-v2 .admin-topbar { padding: 9px 10px; }
  .admin-v2 .topbar-eyebrow, .admin-v2 .admin-live-status,
  .admin-v2 .topbar-avatar { display: none; }
  .admin-v2 .admin-topbar strong { font-size: 17px; }
  .admin-v2 .topbar-site-link { width: 36px; height: 36px; justify-content: center; padding: 0; font-size: 0; }
  .admin-v2 .topbar-site-link i { font-size: 14px; }
  .admin-v2 .admin-content { padding: 17px 11px 25px; }
  .admin-v2 .metric-card { padding: 12px; }
  .admin-v2 .metric-card strong { font-size: 23px; }
  .admin-v2 .gallery-admin-stat { padding: 12px; }
  .admin-v2 .gallery-admin-stat strong { font-size: 21px; }
  .admin-v2 .login-card { width: 100%; max-width: 430px; padding: 25px 19px; }
}

@media (max-width: 360px) {
  .sda-public-site .brand-logo { width: 118px; }
  .sda-public-site .header-inner { gap: 5px; }
  .sda-public-site .orbit-circle { width: 68px; height: 68px; font-size: 8px; }
  .admin-v2 .metric-grid, .admin-v2 .gallery-admin-stats { gap: 7px; }
  .admin-v2 .metric-card strong { font-size: 20px; }
}

/* Touch interaction, keyboard accessibility and reduced motion */
.sda-public-site :focus-visible, .admin-v2 :focus-visible { outline: 3px solid rgba(174, 91, 65, .55); outline-offset: 2px; }
@media (hover: none) {
  .sda-public-site .event-card:hover, .sda-public-site .team-card:hover,
  .sda-public-site .pillar-card:hover, .sda-public-site .involve-card:hover,
  .admin-v2 .metric-card:hover { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
