/* Atlantic Image Defense - v451.100.54
   Responsive integrity guard for the public Rights Enforcement Framework.
   Scope is intentionally limited to .aid-framework-page. */

.aid-framework-page .aid-fw-process-grid,
.aid-framework-page .aid-fw-step,
.aid-framework-page .aid-fw-process-note,
.aid-framework-page .aid-fw-scope,
.aid-framework-page .aid-fw-document,
.aid-framework-page .aid-fw-layout,
.aid-framework-page .aid-fw-content,
.aid-framework-page .aid-fw-chapter-grid,
.aid-framework-page .aid-fw-clause,
.aid-framework-page .aid-fw-cta,
.aid-framework-page .aid-fw-sources {
  visibility: visible !important;
  opacity: 1 !important;
  transform: none !important;
  max-height: none !important;
}

.aid-framework-page .aid-fw-process,
.aid-framework-page .aid-fw-document {
  height: auto !important;
  min-height: 0 !important;
  overflow: visible !important;
}

.aid-framework-page .aid-fw-process-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 18px !important;
  width: 100% !important;
  height: auto !important;
  margin-top: 32px !important;
  overflow: visible !important;
  align-items: stretch !important;
}

.aid-framework-page .aid-fw-step {
  display: flex !important;
  position: relative !important;
  flex-direction: column !important;
  width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 220px !important;
  overflow: hidden !important;
}

.aid-framework-page .aid-fw-step__hit {
  position: absolute !important;
  inset: 0 !important;
  z-index: 3 !important;
}

.aid-framework-page .aid-fw-step__top,
.aid-framework-page .aid-fw-step h3,
.aid-framework-page .aid-fw-step p,
.aid-framework-page .aid-fw-step__arrow {
  position: relative !important;
  z-index: 2 !important;
}

.aid-framework-page .aid-fw-process-note {
  display: flex !important;
  width: 100% !important;
  height: auto !important;
  margin-top: 20px !important;
}

.aid-framework-page .aid-fw-layout,
.aid-framework-page .aid-fw-content,
.aid-framework-page .aid-fw-chapter-grid {
  height: auto !important;
  min-height: 0 !important;
  overflow: visible !important;
}

/* Laptop / compact desktop */
@media (min-width: 992px) and (max-width: 1279px) {
  .aid-framework-page .aid-fw-process-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 16px !important;
  }

  .aid-framework-page .aid-fw-step {
    min-height: 210px !important;
  }
}

/* Tablet portrait and landscape */
@media (min-width: 768px) and (max-width: 991px) {
  .aid-framework-page .aid-fw-process {
    padding-top: 56px !important;
    padding-bottom: 64px !important;
  }

  .aid-framework-page .aid-fw-process-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
    margin-top: 26px !important;
  }

  .aid-framework-page .aid-fw-step {
    min-height: 190px !important;
  }

  .aid-framework-page .aid-fw-document {
    padding-bottom: 118px !important;
  }
}

/* Phones - Android and iOS */
@media (max-width: 767px) {
  .aid-framework-page {
    overflow-x: clip !important;
  }

  .aid-framework-page .aid-fw-process {
    display: block !important;
    padding: 42px 0 44px !important;
  }

  .aid-framework-page .aid-fw-process > .container,
  .aid-framework-page .aid-fw-document > .container,
  .aid-framework-page .aid-fw-scope > .container {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: max(18px, env(safe-area-inset-left)) !important;
    padding-right: max(18px, env(safe-area-inset-right)) !important;
  }

  .aid-framework-page .aid-fw-section-intro {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
  }

  .aid-framework-page .aid-fw-section-intro h2 {
    max-width: 100% !important;
  }

  .aid-framework-page .aid-fw-section-intro p {
    max-width: 100% !important;
    margin-bottom: 0 !important;
  }

  .aid-framework-page .aid-fw-process-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 12px !important;
    margin: 24px 0 0 !important;
    padding: 0 !important;
  }

  .aid-framework-page .aid-fw-step {
    display: flex !important;
    width: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 20px 18px !important;
    border-radius: 3px !important;
  }

  .aid-framework-page .aid-fw-step__top {
    width: 100% !important;
  }

  .aid-framework-page .aid-fw-step h3 {
    margin-top: 20px !important;
    margin-bottom: 9px !important;
    font-size: clamp(21px, 6vw, 27px) !important;
    line-height: 1.13 !important;
  }

  .aid-framework-page .aid-fw-step p {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    font-size: 15px !important;
    line-height: 1.58 !important;
  }

  .aid-framework-page .aid-fw-process-note {
    display: grid !important;
    grid-template-columns: 42px minmax(0, 1fr) !important;
    gap: 12px !important;
    align-items: start !important;
    margin-top: 14px !important;
  }

  .aid-framework-page .aid-fw-process-note p {
    margin: 0 !important;
  }

  .aid-framework-page .aid-fw-document {
    display: block !important;
    padding-top: 38px !important;
    padding-bottom: calc(122px + env(safe-area-inset-bottom)) !important;
  }

  .aid-framework-page .aid-fw-layout {
    display: block !important;
    width: 100% !important;
  }

  .aid-framework-page .aid-fw-sidebar {
    display: none !important;
  }

  .aid-framework-page .aid-fw-content,
  .aid-framework-page .aid-fw-chapter-grid {
    display: block !important;
    width: 100% !important;
  }

  .aid-framework-page .aid-fw-clause {
    display: block !important;
    width: 100% !important;
    margin-bottom: 14px !important;
  }

  .aid-framework-page .aid-fw-mobile-nav {
    left: max(14px, env(safe-area-inset-left)) !important;
    right: max(14px, env(safe-area-inset-right)) !important;
    bottom: calc(14px + env(safe-area-inset-bottom)) !important;
    width: auto !important;
    max-width: none !important;
  }
}

@media (max-width: 420px) {
  .aid-framework-page .aid-fw-process > .container,
  .aid-framework-page .aid-fw-document > .container,
  .aid-framework-page .aid-fw-scope > .container {
    padding-left: max(15px, env(safe-area-inset-left)) !important;
    padding-right: max(15px, env(safe-area-inset-right)) !important;
  }

  .aid-framework-page .aid-fw-step {
    padding: 18px 16px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .aid-framework-page .aid-fw-step,
  .aid-framework-page .aid-fw-clause,
  .aid-framework-page .aid-fw-process-note {
    animation: none !important;
    transition: none !important;
  }
}
