/* =============================================================================
   lib/styles/sections/services_grid.css
   ============================================================================= */

.services-section {
  padding: var(--spacing-xxl, 80px) 0;
  background-color: var(--color-trust-navy-light, #F0F4FA);
}

.services-section__header {
  text-align: center;
  margin-bottom: var(--spacing-xl, 48px);
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}

.services-section__title {
  font-family: var(--font-heading, 'Inter', sans-serif);
  font-size: 36px;
  font-weight: 700;
  color: var(--color-trust-navy, #0F294A);
  margin-top: 0;
  margin-bottom: var(--spacing-sm, 16px);
  letter-spacing: -0.02em;
}

.services-section__subtitle {
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 18px;
  line-height: 1.6;
  color: var(--color-text-secondary, #4A4D55);
  margin: 0;
}

.services-section__content {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-xl, 56px);
}

.services-section__category-group {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-6, 1.5rem);
  padding: var(--spacing-xl, 40px);
  background: var(--color-surface, #FFFFFF);
  border: 1px solid var(--color-border, #E2E4E8);
  border-radius: var(--radius-xl, 16px);
  box-shadow: var(--shadow-sm, 0 1px 2px rgba(0, 0, 0, 0.06));
  align-items: start;
}

.services-section__category-content {
  display: grid;
  gap: var(--spacing-md, 24px);
  min-width: 0;
}

.services-section__category-head {
  display: grid;
  gap: var(--spacing-xs, 8px);
  justify-items: start;
}

.services-section__category-title {
  font-family: var(--font-heading, 'Inter', sans-serif);
  font-size: 24px;
  font-weight: 600;
  color: var(--color-slate-blue, #2A4B7C);
  margin: 0;
}

.services-section__category-summary {
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 16px;
  line-height: 1.6;
  color: var(--color-text-secondary, #4A4D55);
  margin: 0;
  max-width: 60ch;
}

.services-section__category-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-xs, 8px);
  align-items: center;
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 13px;
  color: var(--color-slate-blue, #2A4B7C);
}

.services-section__category-count,
.services-section__category-note {
  padding: 6px 10px;
  border-radius: var(--radius-full, 9999px);
  background: var(--color-slate-blue-light, #E8EDF5);
}

.services-section__category-divider {
  color: var(--color-text-secondary, #4A4D55);
}

.services-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--spacing-md, 24px);
  width: 100%;
}

.services-grid > .service-card {
  width: 100%;
  max-width: 42rem;
}

.services-section__category-image-panel {
  position: relative;
  min-width: 0;
  min-height: 360px;
  border-radius: var(--radius-xl, 16px);
  overflow: hidden;
  background: var(--color-surface-subtle, #f8f9fb);
  border: 1px solid var(--color-border, #E2E4E8);
}

.services-section__category-image {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 360px;
  object-fit: cover;
}

@media (min-width: 768px) {
  .services-section {
    padding: var(--spacing-xl, 64px) 0;
  }
}

@media (min-width: 1024px) {
  .services-section__category-group {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: var(--space-10, 2.5rem);
    padding: var(--space-10, 2.5rem);
  }

  .services-grid {
    grid-template-columns: 1fr;
  }

  .services-section__category-image-panel {
    min-height: 100%;
  }

  .services-section__category-image {
    min-height: 100%;
  }
}

/* =========================================================================
   Choreographed Load Sequence (ScrollReveal Integration)
   ========================================================================= */

@media (prefers-reduced-motion: no-preference) {
  .services-section__header,
  .services-section__category-content,
  .services-grid > *,
  .services-section__category-image-panel {
    opacity: 0;
    transform: translateY(24px);
    transition:
      opacity var(--motion-duration-medium, 400ms) var(--motion-ease-out, ease-out),
      transform var(--motion-duration-medium, 400ms) var(--motion-ease-out, ease-out);
  }

  .is-visible .services-section__header {
    opacity: 1;
    transform: translateY(0);
    transition-delay: 0.1s;
  }

  .is-visible .services-section__category-content {
    opacity: 1;
    transform: translateY(0);
  }

  .is-visible .services-grid > * {
    opacity: 1;
    transform: translateY(0);
  }

  .is-visible .services-section__category-image-panel {
    opacity: 1;
    transform: translateY(0);
    transition-delay: 0.2s;
  }

  .is-visible .services-grid > :nth-child(1) { transition-delay: 0.15s; }
  .is-visible .services-grid > :nth-child(2) { transition-delay: 0.25s; }
  .is-visible .services-grid > :nth-child(3) { transition-delay: 0.35s; }
  .is-visible .services-grid > :nth-child(4) { transition-delay: 0.45s; }
  .is-visible .services-grid > :nth-child(n+5) { transition-delay: 0.55s; }
}