@media (max-width: 1180px) {
  :root { --s4-shell: min(100% - 48px, 1040px); }
  .s4-project-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .s4-filter-bar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .s4-filter-bar__search { grid-column: span 1; }
}

@media (max-width: 900px) {
  :root { --s4-shell: calc(100% - 40px); }
  .s4-carousel { min-height: 0; }
  .s4-carousel__slide,
  .s4-detail-hero {
    grid-template-columns: 1fr;
  }
  .s4-carousel__copy { min-height: 500px; padding: 70px 32px 110px; }
  .s4-carousel__page-title { left: 32px; }
  .s4-carousel__media { min-height: 420px; }
  .s4-carousel__media::after { background: linear-gradient(0deg, rgba(3, 30, 23, 0.55), transparent 40%); }
  .s4-carousel__controls { right: 20px; left: 20px; justify-content: center; }
  .s4-featured-grid { grid-template-columns: 1fr; }
  .s4-featured-card > a { grid-template-columns: minmax(220px, 0.8fr) minmax(0, 1.2fr); }
  .s4-featured-card__media { aspect-ratio: auto; min-height: 300px; }
  .s4-card-number { top: 20px; }
  .s4-project-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .s4-how__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .s4-relationship-note { grid-template-columns: 1fr; gap: 28px; }
  .s4-detail-hero__copy { padding: 64px 32px; }
  .s4-detail-hero__media { min-height: 520px; }
  .s4-snapshot dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .s4-content-section,
  .s4-content-section--text {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .s4-content-section--media-left .s4-content-media,
  .s4-content-section--media-right .s4-content-media,
  .s4-content-section--media-left .s4-content-section__copy,
  .s4-content-section--media-right .s4-content-section__copy {
    grid-column: 1;
  }
  .s4-content-section--media-left .s4-content-media,
  .s4-content-section--media-right .s4-content-media { grid-row: 2; }
  .s4-content-section--media-left .s4-content-section__copy,
  .s4-content-section--media-right .s4-content-section__copy { grid-row: 1; }
  .s4-related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .s4-contact-methods { grid-template-columns: 1fr; }
  .s4-contact-methods a { min-height: 130px; }
}

@media (max-width: 640px) {
  :root { --s4-shell: calc(100% - 28px); }
  .s4-breadcrumb { padding-top: 18px; }
  .s4-section { padding: 64px 0; }
  .s4-carousel__copy { min-height: 520px; padding: 56px 20px 116px; }
  .s4-carousel__page-title { top: 22px; left: 20px; }
  .s4-carousel__page-title h1 { font-size: 2.3rem; }
  .s4-carousel__copy h2 { font-size: 1.45rem; }
  .s4-carousel__actions { align-items: stretch; }
  .s4-carousel__actions .s4-button { width: 100%; }
  .s4-carousel__media { min-height: 300px; }
  .s4-carousel__controls { gap: 2px; padding: 5px; }
  .s4-carousel__pause { padding: 0 8px; font-size: 0.72rem; }
  .s4-featured-card > a { grid-template-columns: 1fr; }
  .s4-featured-card__media { min-height: 250px; }
  .s4-card-number { top: -42px; }
  .s4-filter-bar { grid-template-columns: 1fr; padding: 14px; }
  .s4-project-grid { grid-template-columns: 1fr; }
  .s4-project-card > a { grid-template-columns: 140px minmax(0, 1fr); grid-template-rows: auto; }
  .s4-project-card__media { height: 100%; min-height: 230px; aspect-ratio: auto; }
  .s4-project-card p { -webkit-line-clamp: 3; }
  .s4-how { padding: 58px 20px; }
  .s4-how__grid { grid-template-columns: 1fr; }
  .s4-how__grid article { min-height: 130px; }
  .s4-relationship-note { padding: 60px 0; }
  .s4-final-cta { flex-direction: column; align-items: flex-start; padding: 54px 20px; }
  .s4-final-cta__actions { width: 100%; }
  .s4-final-cta__actions .s4-button { width: 100%; }
  .s4-detail-hero__copy { padding: 54px 20px; }
  .s4-detail-hero h1 { font-size: clamp(2.5rem, 12vw, 4.2rem); }
  .s4-detail-hero__media { min-height: 330px; }
  .s4-detail-shell { padding: 44px 0 70px; }
  .s4-snapshot { margin-bottom: 48px; padding: 18px; }
  .s4-snapshot dl { grid-template-columns: 1fr; }
  .s4-snapshot dl > div { padding: 16px 4px; }
  .s4-content-section { padding: 44px 0; }
  .s4-content-media img, .s4-content-media .s4-media-fallback { min-height: 250px; }
  .s4-relationship, .s4-resources, .s4-references, .s4-related, .s4-contact-cta {
    margin-top: 44px;
    padding: 22px;
  }
  .s4-resource-list, .s4-related-grid { grid-template-columns: 1fr; }
  .s4-contact-cta { align-items: flex-start; flex-direction: column; }
  .s4-child-hero, .s4-contact-hero { padding: 48px 20px; }
  .s4-contact-methods, .s4-contact-note, .s4-contact-back { width: calc(100% - 28px); }
  .s4-contact-methods { margin-top: 48px; }
  .s4-table-wrap table,
  .s4-table-wrap tbody,
  .s4-table-wrap tr,
  .s4-table-wrap th,
  .s4-table-wrap td { display: block; width: 100%; }
  .s4-table-wrap tr { margin-bottom: 12px; border: 1px solid var(--s4-line); }
  .s4-table-wrap th, .s4-table-wrap td { border: 0; border-bottom: 1px solid var(--s4-line); }
}

@media (max-width: 390px) {
  .s4-project-card > a { grid-template-columns: 112px minmax(0, 1fr); }
  .s4-project-card__copy { padding: 14px; }
  .s4-project-card__media { min-height: 250px; }
  .s4-project-card h3 { font-size: 0.95rem; }
  .s4-carousel__dots { display: none; }
}

@media (min-width: 1280px) {
  .s4-project-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (forced-colors: active) {
  .s4-button, .s4-project-card, .s4-featured-card, .s4-filter-bar { border: 1px solid CanvasText; }
}
