/* Public CMS foundation. Page styles stay inside #public-content. */
.cms-public-site {
  --radius-pill: 999px;
  --public-header-height: 130px;
  --public-space: clamp(1rem, 3vw, 2rem);
}
.cms-public-site #public-content { min-width: 0; min-height: 50vh; }
.cms-public-site #public-content :is(h1,h2,h3,h4,h5,h6) { overflow-wrap: anywhere; }
.cms-public-site #public-content h1:not(.hero-title) { font-size: clamp(2rem, 3.4vw, 3.25rem) !important; line-height: 1.2 !important; }
.cms-public-site #public-content :is(.card,.card-body,.row > *, .download-item-content,.detail-grid > *, .downloads-container > *) { min-width: 0; }
.cms-public-site #public-content :is(.card-title,.card-text,.download-item-title,.breadcrumb-item,.policy-content,.terms-content) { overflow-wrap: anywhere; }
.cms-public-site #public-content :is(img,video,iframe) { max-width: 100%; }
.cms-public-site #public-content :is(.breadcrumb,.pagination) { flex-wrap: wrap; row-gap: .5rem; }
.cms-public-site #public-content .breadcrumb { line-height: 1.6; }
.cms-public-site #public-content .page-link { min-width: 40px; min-height: 40px; display: inline-flex; align-items: center; justify-content: center; }
.cms-public-site #public-content .btn { white-space: normal; line-height: 1.5; }
.cms-public-site #public-content .btn:not(.btn-sm) { min-height: 44px; }
.cms-public-site #public-content :is(input,select,textarea) { max-width: 100%; }
.cms-public-site #public-content :is(input,select,textarea):focus-visible { outline: 2px solid #355cde; outline-offset: 2px; }
.cms-public-site #public-content a:focus-visible, .cms-public-site #public-content button:focus-visible { outline: 3px solid #7594ff; outline-offset: 3px; }
.cms-public-site #public-content :is(.filter-sidebar,.program-sidebar,.info-card.position-sticky) { top: calc(var(--public-header-height) + 20px) !important; }
.cms-public-site #public-content :is([id],h2,h3) { scroll-margin-top: calc(var(--public-header-height) + 24px); }
.cms-public-site #public-content .filter-sidebar .form-check { gap: 10px; }
.cms-public-site #public-content .filter-sidebar .form-check-input { display: inline-block; flex-shrink: 0; position: static; float: none; margin: 0; }
.cms-public-site #public-content .filter-sidebar .form-check-label { min-width: 0; }
.cms-public-site #public-content :is(.download-item-actions,.sort-options) { flex-wrap: wrap; }
.cms-public-site #public-content :is(.download-btn-list,.view-details-btn-list) { min-height: 44px; }
.cms-public-site #public-content .detail-grid { grid-template-columns: minmax(0,2fr) minmax(0,1fr); }
.cms-public-site #public-content .downloads-container { grid-template-columns: minmax(200px,250px) minmax(0,1fr); }
.cms-public-site #public-content .search-bar-container .d-flex { flex-wrap: wrap; }
.cms-public-site #public-content .search-bar-container .flex-grow-1 { min-width: min(100%,220px); }
.cms-public-site #public-content .table-responsive { max-width: 100%; overscroll-behavior-x: contain; }
@media (max-width: 991.98px) {
  .cms-public-site #public-content :is(.filter-sidebar,.program-sidebar,.info-card.position-sticky) { position: static !important; top: auto !important; }
}
@media (max-width: 767.98px) {
  .cms-public-site #public-content :is(.detail-grid,.downloads-container) { grid-template-columns: minmax(0,1fr); }
  .cms-public-site #public-content :is(.form-control,.form-select,input[type=search],input[type=email],input[type=tel],textarea) { font-size: 16px !important; }
  .cms-public-site #public-content .page-link { min-width: 44px; min-height: 44px; }
  .cms-public-site #public-content .search-bar-container .d-flex { gap: .65rem !important; }
  .cms-public-site #public-content :is(.policy-hero,.about-hero) { padding: 3rem 0; }
  .cms-public-site #public-content :is(.policy-content,.terms-content) { padding: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
  .cms-public-site { scroll-behavior: auto; }
  .cms-public-site #public-content *, .cms-public-site #public-content *::before, .cms-public-site #public-content *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
