/* Launch polish: measure, rhythm, responsive, a11y */

.obm-measure {
  max-width: 68ch;
}

.obm-measure-narrow {
  max-width: 42ch;
}

.obm-stack-sm {
  display: grid;
  gap: var(--space-3);
}

.obm-stack {
  display: grid;
  gap: var(--space-5);
}

.obm-stack-lg {
  display: grid;
  gap: var(--space-8);
}

.obm-mt-1 {
  margin-top: var(--space-3);
}

.obm-mt-2 {
  margin-top: var(--space-5);
}

.obm-mt-3 {
  margin-top: var(--space-6);
}

.obm-mt-4 {
  margin-top: var(--space-8);
}

.obm-mt-5 {
  margin-top: var(--space-9);
}

.obm-aside {
  padding: var(--space-6);
  background: var(--obm-stone);
  border-left: 2px solid var(--obm-gold-600);
}

.obm-aside p + p {
  margin-top: var(--space-4);
}

.obm-note {
  margin-top: var(--space-5);
  padding: var(--space-4) var(--space-5);
  border-left: 2px solid var(--obm-grey-300);
  color: var(--obm-text-muted);
  font-size: var(--obm-type-body-sm);
}

.obm-profile-meta {
  display: grid;
  gap: var(--space-3);
  margin-top: var(--space-6);
}

.obm-profile-meta a {
  color: var(--obm-navy-950);
  font-weight: 500;
}

.obm-profile-meta a:hover {
  color: var(--obm-gold-600);
}

.obm-expertise-intro {
  max-width: min(28ch, 100%);
  margin-bottom: var(--space-9);
}

.obm-expertise-intro p {
  margin-top: var(--space-5);
  max-width: 42ch;
}

/* Tighter join between hero and next section */
.obm-home-hero + .obm-section {
  border-top: 0;
}

.obm-section--cream {
  background: var(--obm-cream);
}

.obm-header__inner {
  padding-block: 0.35rem;
}

.obm-header__actions {
  gap: var(--space-4);
}

/* Practice rows: calmer hover */
.obm-practice-item a:hover {
  background: rgba(248, 246, 241, 0.06);
}

.obm-practice-list--light .obm-practice-item a:hover {
  background: rgba(7, 29, 51, 0.03);
}

/* People cards */
.obm-person-card img {
  filter: saturate(0.92) contrast(1.02);
}

.obm-person-card:hover img {
  filter: none;
}

/* Footer bottom: single quiet line */
.obm-footer__bottom {
  opacity: 0.85;
}

.obm-display-xl {
  letter-spacing: -0.02em;
}

.obm-h2 {
  letter-spacing: -0.015em;
}

.obm-eyebrow {
  letter-spacing: 0.14em;
}

.obm-form-status {
  margin-bottom: var(--space-5);
  padding: var(--space-4) var(--space-5);
  border-left: 2px solid var(--obm-gold-600);
  background: var(--obm-stone);
}

.obm-form-status--error {
  border-left-color: #8b2e2e;
}

/* Large screens: prevent stretch */
@media (min-width: 1440px) {
  .obm-home-hero__copy {
    max-width: 40rem;
  }

  .obm-body-lg,
  .obm-prose,
  .obm-experience-item__desc {
    max-width: 68ch;
  }
}

@media (min-width: 1920px) {
  :root {
    --pad-x: 6rem;
  }
}

/* Tablet */
@media (min-width: 768px) and (max-width: 1099px) {
  .obm-home-hero {
    min-height: 72vh;
  }

  .obm-home-hero__copy {
    max-width: 34rem;
  }

  .obm-team-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .obm-why-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Mobile */
@media (max-width: 639px) {
  .obm-logo img {
    height: 52px;
  }

  .obm-header.is-scrolled .obm-logo img {
    height: 46px;
  }

  .obm-home-hero {
    min-height: 78vh;
    align-items: flex-end;
  }

  .obm-home-hero__content {
    padding-block: 5.5rem 3rem;
  }

  .obm-home-hero__copy {
    max-width: none;
  }

  .obm-home-hero__title-line {
    white-space: normal;
  }

  .obm-home-hero__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .obm-home-hero__actions .obm-btn {
    width: 100%;
  }

  .obm-display-xl {
    font-size: clamp(2.5rem, 11vw, 3.25rem);
  }

  .obm-section-head {
    align-items: start;
  }

  .obm-footer__grid {
    gap: var(--space-8);
  }
}

/* Focus improvement inside dark surfaces */
.obm-section--navy :focus-visible,
.obm-mobile-nav :focus-visible,
.obm-contact-cta :focus-visible,
.obm-footer :focus-visible {
  outline-color: var(--obm-gold-500);
}

/* Contact links readability */
.obm-contact-details a {
  color: var(--obm-navy-950);
  font-weight: 500;
}

.obm-contact-details a:hover {
  color: var(--obm-gold-600);
}

.obm-contact-details .obm-label {
  margin-bottom: var(--space-2);
  margin-top: var(--space-6);
  font-size: var(--obm-type-caption);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--obm-text-muted);
}

.obm-contact-details .obm-label:first-child {
  margin-top: 0;
}
