/* ---- Progressive enhancement: content must render without JS ---- */
.no-js .reveal { opacity: 1; transform: none; }
.no-js .js-only { display: none !important; }
.no-js-note { margin: 0; padding: 14px 18px; border: 1px solid var(--line); border-radius: 14px; background: var(--white); color: var(--ink-soft); font-size: 15px; }

/* ---- Header brand lockup ---- */
.wordmark .brand-logo { display: block; width: auto; height: 30px; max-width: 42vw; }

/* ---- Touch target sizing ---- */
@media (pointer: coarse) {
  .primary-nav > a { min-height: 44px; display: inline-flex; align-items: center; }
  .footer-bottom a { min-height: 44px; display: inline-flex; align-items: center; }
  .hero-actions .text-link { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
}

/* ---- Engagements: mirrors the .method-list editorial row pattern ---- */
.engagement-section { padding-block: 150px; }
.engagement-list { margin: 76px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.engagement-list li { min-height: 148px; display: grid; grid-template-columns: 230px 1fr 150px; gap: 24px; align-items: center; border-bottom: 1px solid var(--line); }
.engagement-list h3 { margin: 0 0 6px; font-size: 30px; font-weight: 610; letter-spacing: -.04em; }
.engagement-price { margin: 0; color: var(--clay); font-size: 17px; font-weight: 650; letter-spacing: -.01em; }
.engagement-price span { color: var(--ink-soft); font-size: 14px; font-weight: 500; }
.engagement-list > li > p { max-width: 570px; margin: 0; color: var(--ink-soft); font-size: 15px; line-height: 1.6; }
.engagement-label { justify-self: end; color: var(--forest); font-size: 10px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.engagement-note { max-width: 620px; margin: 34px 0 0; color: var(--ink-soft); font-size: 15px; line-height: 1.6; }

@media (max-width: 1020px) {
  .engagement-section { padding-block: 95px; }
  .engagement-list { margin-top: 55px; }
  .engagement-list li { min-height: auto; padding-block: 30px; grid-template-columns: 1fr; gap: 12px; align-items: start; }
  .engagement-label { justify-self: start; }
  .engagement-list h3 { font-size: 26px; }
}

/* ---- Secondary booking route (sits alongside the diagnostic, never replaces it) ---- */
.nav-book { color: var(--forest); font-weight: 700; white-space: nowrap; }
@media (max-width: 1180px) and (min-width: 861px) {
  .primary-nav { gap: 20px; }
  .nav-book { font-size: 13px; }
}
