.wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}

/* =============================================
   SECTION LABEL STYLE
============================================= */
.section-label {
  color: var(--navy);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.75rem;
  margin-bottom: 14px;
  display: block;
}
/* Label variants — break uniform pattern */
.section-label--serif {
  font-family: var(--font-display);
  font-style: italic;
  text-transform: none;
  letter-spacing: 0.01em;
  font-size: 0.9rem;
  font-weight: 400;
}
.section-label--dash::before {
  content: '';
  display: inline-block;
  width: 18px;
  height: 2px;
  background: var(--gold);
  margin-right: 10px;
  vertical-align: middle;
}

.section-title {
  font-family: var(--font-display);
  font-size: clamp(1.9rem, 3.2vw, 2.8rem);
  font-weight: 400;
  line-height: 1.15;
  color: var(--fg);
}

.section-header {
  margin-bottom: 48px;
}

/* =============================================
   ANIMATION CLASSES
============================================= */
.fade-in {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.65s ease, transform 0.65s ease;
}
.fade-in.visible { opacity: 1; transform: none; }

.fade-left {
  opacity: 0;
  transform: translateX(-30px);
  transition: opacity 0.65s ease, transform 0.65s ease;
}
.fade-left.visible { opacity: 1; transform: none; }

.scale-in {
  opacity: 0;
  transform: scale(0.95);
  transition: opacity 0.65s ease, transform 0.65s ease;
}
.scale-in.visible { opacity: 1; transform: none; }

.stagger-in > * {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.55s ease, transform 0.55s ease;
}
.stagger-in.visible > *:nth-child(1) { opacity: 1; transform: none; transition-delay: 0ms; }
.stagger-in.visible > *:nth-child(2) { opacity: 1; transform: none; transition-delay: 100ms; }
.stagger-in.visible > *:nth-child(3) { opacity: 1; transform: none; transition-delay: 200ms; }
.stagger-in.visible > *:nth-child(4) { opacity: 1; transform: none; transition-delay: 300ms; }
.stagger-in.visible > *:nth-child(5) { opacity: 1; transform: none; transition-delay: 400ms; }
.stagger-in.visible > *:nth-child(6) { opacity: 1; transform: none; transition-delay: 500ms; }
.stagger-in.visible > *:nth-child(7) { opacity: 1; transform: none; transition-delay: 600ms; }
.stagger-in.visible > *:nth-child(8) { opacity: 1; transform: none; transition-delay: 700ms; }
.stagger-in.visible > *:nth-child(9) { opacity: 1; transform: none; transition-delay: 800ms; }
