/* Readable supporting typography at every breakpoint. */
.disciplines { font-size: 14px; line-height: 1.6; gap: 20px; flex-wrap: wrap; }
.disciplines > span { white-space: nowrap; }
.disciplines a { font-size: 14px; }
.disciplines b { margin-left: 10px; }
.hero .eyebrow, .eyebrow, .section-label { font-size: 13px; line-height: 1.6; letter-spacing: .065em; }
.hero .eyebrow { color: #555565; }
.section-label { color: #60606e; }
.nav a, .text-link { font-size: 14px; }
.button { font-size: 14px!important; }
.body-copy, .section-description, .section-head > p:last-child,
.service-grid p, .steps p, .proof > p, .cta .wrap > p:not(.eyebrow) { font-size: 16px; line-height: 1.8; }
.client-mark figcaption { font-size: 13px; line-height: 1.55; font-family: Manrope, Arial, sans-serif; }
.service-grid article > span, .steps > li > span { font-size: 13px; color: #686879; }
.testimonial figcaption { font-size: 13px; line-height: 1.6; letter-spacing: .015em; }
.testimonial figcaption span { font-size: 13px; color: #666675; }
.testimonial-featured figcaption span { color: #bcb9d3; }
.package-grid .tag { font-size: 11px; }
.package-grid .for, .package-grid ul { font-size: 15px; line-height: 1.8; }
.package-grid h3 span { font-size: 14px; }
.package-grid button { font-size: 14px; min-height: 48px; }
.package-grid article { padding: 36px 26px; }
.package-grid h3 { font-size: clamp(32px, 3.2vw, 43px); }
.package-grid .for { min-height: 58px; }
.package-grid ul { line-height: 1.9; }
.cta-actions > a:not(.button) { font-size: 15px; }
footer { grid-template-columns: 130px 1fr auto; }
footer p { font-size: 13px; }
.dialog-intro { font-size: 15px; }
.form-grid label { font-size: 14px; }
.form-grid label small, .form-note { font-size: 13px; }
.form-grid input, .form-grid select, .form-grid textarea { font-size: 16px; }
.dialog-top .section-label { font-size: 11px; }
.dialog-close { flex-shrink: 0; margin-left: 12px; }
/* Persistent orientation, with a quiet reading-progress indicator. */
.nav { position: sticky; top: 0; z-index: 20; background: #fafaf7f5; backdrop-filter: blur(16px); transition: box-shadow .3s ease, border-color .3s ease; }
.nav.is-scrolled { box-shadow: 0 12px 22px -22px #15152665; border-color: #d2d1df; }
.nav nav a.is-current { color: var(--blue); }
.nav nav a.is-current::after { width: 100%; }
.reading-line { position: fixed; inset: 0 0 auto; height: 2px; background: var(--blue); transform: scaleX(0); transform-origin: left; z-index: 30; pointer-events: none; }
section[id] { scroll-margin-top: 140px; }
#top { scroll-margin-top: 112px; }
.disciplines a b { display: inline-block; transition: transform .3s cubic-bezier(.22,1,.36,1); }
.disciplines a:hover b { transform: translate(3px, 3px); }
.package-grid article { transition: border-color .3s, box-shadow .3s; }
.package-grid article:hover { border-color: #9c97da; box-shadow: 0 12px 32px #25224708; }
.service-grid article { transition: background .3s, border-color .3s; }
.service-grid article:hover { border-top-color: var(--blue); }
.steps li { transition: border-color .3s; }
.steps li:hover { border-bottom-color: #8a85c7; }
@keyframes form-enter { from { opacity: 0; transform: translateY(16px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes veil-enter { from { opacity: 0; } to { opacity: 1; } }
.discovery-dialog[open] { animation: form-enter .35s cubic-bezier(.22,1,.36,1); }
.discovery-dialog[open]::backdrop { animation: veil-enter .25s ease; }
@media (max-width: 1050px) {
  .disciplines { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 26px; }
  .disciplines a { margin-left: 0; }
  .package-grid article { padding-inline: 20px; }
  .package-grid h3 span { display: block; margin: 8px 0 0; }
  .steps div { gap: 22px; }
  .steps h3 { flex-shrink: 0; }
}
@media (max-width: 760px) {
  .nav { height: 88px; }
  .hero .eyebrow { font-size: 11px; letter-spacing: .04em; }
  .hero .lede { font-size: 17px; }
  .disciplines { grid-template-columns: 1fr; gap: 18px; font-size: 14px; padding-block: 26px; }
  .disciplines a { width: auto; padding-top: 9px; }
  .hero-actions .button { max-width: 100%; gap: 18px; padding-inline: 19px; text-align: left; line-height: 1.5; }
  .client-marks { gap: 28px 18px; }
  .package-grid article { padding: 32px 26px; }
  .package-grid h3 { font-size: 43px; }
  .package-grid h3 span { display: inline; margin-left: 5px; }
  .package-grid .for { min-height: 0; }
  .steps div { display: block; }
  .steps p { margin-top: 12px; }
  footer { grid-template-columns: 1fr; }
  section[id] { scroll-margin-top: 108px; }
  #top { scroll-margin-top: 88px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none!important; transition: none!important; }
}
