/* New shared consultation and preparation components; incumbent layouts stay in each original stylesheet. */
body {
  --consult-accent: var(--accent, var(--red));
  --consult-ink: var(--ink);
  --consult-line: var(--line);
  --consult-ground: var(--tint, var(--pale, var(--paper)));
}
.consult-pair {
  display: flex;
  align-items: stretch;
  gap: 10px;
  flex-shrink: 0;
  max-width: 100%;
}
.consult-pair .button {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: 0 18px;
  font-size: 15px;
  line-height: 1.5;
  font-weight: 700;
  white-space: nowrap;
  text-align: center;
  margin: 0;
  flex: 1;
  text-decoration: none;
  box-shadow: none;
}
.consult-pair .button-primary {
  background: var(--consult-accent);
  border: 1px solid var(--consult-accent);
  color: #fff;
}
.consult-pair .consult-secondary {
  background: transparent;
  border: 1px solid var(--consult-line);
  color: var(--consult-ink);
}
.consult-pair a:focus-visible,
.readiness-audiences a:focus-visible {
  outline: 3px solid var(--consult-ink);
  outline-offset: 4px;
}
.hero[data-contact-surface="dark"] .consult-pair .button-primary {
  color: var(--consult-ink);
  background: #fff;
  border-color: #fff;
}
.hero[data-contact-surface="dark"] .consult-pair .consult-secondary {
  color: #fff;
  border-color: #fff;
  background: color-mix(in srgb, var(--deep) 75%, transparent);
}
.hero[data-contact-surface="dark"] .consult-pair a:focus-visible {
  outline-color: #fff;
}
.cta-band .consult-pair .button-primary,
.consult-banner .consult-pair .button-primary {
  background: #fff;
  border-color: #fff;
  color: var(--consult-ink);
}
.cta-band .consult-pair .consult-secondary,
.consult-banner .consult-pair .consult-secondary {
  color: #fff;
  border-color: #fff;
  background: transparent;
}
.cta-band .consult-pair a:focus-visible,
.consult-banner .consult-pair a:focus-visible {
  outline-color: #fff;
}
.aside .consult-pair,
.page-aside .consult-pair,
.faq-aside .consult-pair {
  flex-direction: column;
  margin-top: 20px;
}
.consult-menu {
  display: none;
}
.consult-menu .button {
  width: auto;
}
.hero-guide {
  font-size: 16px;
  text-decoration: underline;
  text-underline-offset: 6px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  color: inherit;
  align-self: center;
  white-space: nowrap;
}
.mobile-contact .consult-pair {
  width: 100%;
}
.mobile-contact .consult-pair .button {
  min-height: 56px;
  padding: 0 8px;
  font-size: 15px;
}
.readiness-section {
  background: var(--consult-ground);
  color: var(--consult-ink);
  border-top: 1px solid var(--consult-line);
  border-bottom: 1px solid var(--consult-line);
}
.readiness-heading {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 36px;
  align-items: end;
  margin-bottom: 28px;
}
.readiness-heading h2 {
  margin: 0;
  font-size: clamp(28px, 3vw, 38px);
  line-height: 1.4;
  letter-spacing: 0;
  text-wrap: balance;
}
.readiness-heading p {
  margin: 0;
  font-size: 17px;
  line-height: 1.85;
}
.readiness-steps {
  display: block;
  padding: 0;
  border-top: 1px solid var(--consult-line);
}
.readiness-steps article {
  display: grid;
  grid-template-columns: 230px 1fr;
  gap: 30px;
  padding: 23px 0;
  border-bottom: 1px solid var(--consult-line);
}
.readiness-steps h3,
.readiness-audiences h3 {
  font-size: 21px;
  line-height: 1.5;
  margin: 0;
  font-weight: 700;
}
.readiness-steps p,
.readiness-audiences p {
  font-size: 17px;
  line-height: 1.85;
  margin: 0;
  max-width: 65ch;
}
.readiness-audiences > div {
  display: grid;
  grid-template-columns: 150px 1fr auto;
  gap: 24px;
  align-items: center;
  padding: 23px 0;
}
.readiness-audiences > div + div {
  border-top: 1px solid var(--consult-line);
}
.readiness-audiences a {
  color: var(--consult-ink);
  font-size: 16px;
  font-weight: 700;
  min-height: 44px;
  display: flex;
  align-items: center;
  text-decoration: underline;
  text-underline-offset: 6px;
}
.archive-context {
  font-size: 16px;
  line-height: 1.85;
  color: inherit;
  margin: 0 0 22px;
  max-width: 72ch;
}
@media (max-width: 1200px) {
  .consult-menu {
    display: flex;
    width: 100%;
    margin-top: 10px;
  }
  .consult-header {
    display: none;
  }
  .readiness-heading {
    grid-template-columns: 1fr;
    gap: 14px;
  }
}
@media (max-width: 640px) {
  .hero .consult-pair,
  .cta-band .consult-pair,
  .consult-banner .consult-pair {
    width: 100%;
  }
  .readiness-heading {
    margin-bottom: 22px;
  }
  .readiness-heading p,
  .readiness-steps p,
  .readiness-audiences p {
    font-size: 16px;
  }
  .readiness-steps article {
    grid-template-columns: 1fr;
    gap: 9px;
    padding: 21px 0;
  }
  .readiness-audiences > div {
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 21px 0;
  }
  .readiness-audiences a {
    justify-self: start;
  }
  .hero-guide {
    align-self: flex-start;
  }
}

/* New components in this existing page family. */
.main-nav .consult-pair a::after { display:none; }
.faq-aside .consult-secondary {color:#fff;border-color:#fff;}
.faq-aside .consult-pair a:focus-visible {outline-color:#fff;}
.site-footer .consult-pair {flex-direction:column;margin-top:16px;}
.site-footer .consult-pair .consult-secondary {color:#fff;border-color:#fff;}
.site-footer .consult-pair a:focus-visible {outline-color:#fff;}
.project-deadline,.fact-strip strong.fact-date {display:block;font-size:28px;font-weight:800;line-height:1.4;}
.project-deadline {margin-top:20px;color:var(--ink);}
.title-mobile-break {display:none;}
@media(max-width:1200px) {.main-nav .consult-pair {margin-top:12px;}}
@media(max-width:640px) {.title-mobile-break {display:block;}}
