/* ASR public journey polish | 2026-10-18
   Public-facing pages only. White/violet, readable, restrained.
   Never themes Admin, member/team workspaces or dark terminals. */
:root {
  --asr-journey-ink: #271d2d;
  --asr-journey-copy: #51475a;
  --asr-journey-accent: #663683;
  --asr-journey-border: #e9e1ec;
  --asr-journey-soft: #faf8fb;
}

/* One smooth anchor/navigation rhythm with appropriate sticky-header clearance. */
@media (prefers-reduced-motion: no-preference) {
  html:has(body > header.asr-unified-header) { scroll-behavior: smooth; }
}
html:has(body > header.asr-unified-header) main [id] {
  scroll-margin-top: clamp(85px, 8vw, 120px);
}
html:has(body > header.asr-unified-header) main :is(img,video,svg) {
  max-width: 100%;
}
html:has(body > header.asr-unified-header) main :is(pre,code) {
  overflow-wrap: anywhere;
}
html:has(body > header.asr-unified-header) main pre {
  overflow-x: auto;
  max-width: 100%;
  scrollbar-width: thin;
}
/* Visible keyboard interaction on all marketing-facing sections. */
html:has(body > header.asr-unified-header) :is(
  main a,main button,main input,main select,main textarea,
  footer.asr-footer-refined a,footer.asr-footer-refined button
):focus-visible {
  outline: 3px solid #8146a5 !important;
  outline-offset: 3px !important;
}
html:has(body > header.asr-unified-header) main :is(button,a) {
  -webkit-tap-highlight-color: rgba(105,56,137,.14);
}

/* Consistent editorial rhythm for the React marketing journeys. */
html body .public-site:is(
  [data-page="home"],[data-page="about"],[data-page="research"],
  [data-page="faq"],[data-page="support"],[data-page="careers"],
  [data-page="meetings"],[data-page="apply"]
) main :is(.page-hero h1,.hp-section-head h2,.about-page h1) {
  text-wrap: balance;
  overflow-wrap: anywhere;
}
html body .public-site:is(
  [data-page="research"],[data-page="faq"],[data-page="support"],[data-page="meetings"]
) main .page-hero :is(p,small) {
  font-size: clamp(16px,1.12vw,18px) !important;
  line-height: 1.7 !important;
  color: var(--asr-journey-copy) !important;
  -webkit-text-fill-color: var(--asr-journey-copy) !important;
}
html body .public-site:is(
  [data-page="research"],[data-page="faq"],[data-page="support"],[data-page="meetings"]
) main .page-hero .eyebrow {
  color: var(--asr-journey-accent) !important;
  -webkit-text-fill-color: var(--asr-journey-accent) !important;
  font-size: 12px !important;
  font-weight: 760 !important;
  line-height: 1.55 !important;
  letter-spacing: .1em !important;
}
html body .public-site:is(
  [data-page="faq"],[data-page="support"],[data-page="meetings"]
) main :is(.support-cards,.session-grid,.meeting-summary) {
  gap: clamp(14px,2vw,24px);
}
html body .public-site:is(
  [data-page="faq"],[data-page="support"]
) main .support-cards > :is(article,a,div) {
  min-width: 0;
  border-radius: 14px;
}
html body .public-site[data-page="home"] main .hp-section-head > div > p {
  max-width: 66ch;
  line-height: 1.65 !important;
  text-wrap: pretty;
}

/* Standalone Services and FIIDQ: larger readable descriptive copy,
   no pale text on pale cards. */
html body.asr-services-light main.asr-services-page :is(
  .asr-svc-hero-copy-v3 > p,.asr-svc-offer-copy,.asr-svc-section-head p,
  .asr-svc-capability > p,.asr-svc-contact-box p
) {
  color: #51445a !important;
  -webkit-text-fill-color: #51445a !important;
  font-size: clamp(16px,1.15vw,17.5px) !important;
  line-height: 1.72 !important;
}
html body.asr-services-light main.asr-services-page :is(
  .asr-svc-offer-top > span,.asr-svc-eyebrow-v3,
  .asr-svc-receive > b,.asr-svc-capability-phase
) {
  color: #653484 !important;
  -webkit-text-fill-color: #653484 !important;
  opacity: 1 !important;
  font-size: 12.5px !important;
  line-height: 1.55 !important;
  font-weight: 750 !important;
}
html body.fiidq-document main.fiidq-main :is(
  .fiidq-module > p,.fiidq-feature > p,.fiidq-section-head > p
) {
  font-size: clamp(16px,1.13vw,17px) !important;
  line-height: 1.7 !important;
  color: #52465c !important;
  -webkit-text-fill-color: #52465c !important;
  opacity: 1 !important;
}
html body.fiidq-document main.fiidq-main :is(
  .fiidq-module-number span,.fiidq-module-outcome
) {
  color: #643682 !important;
  -webkit-text-fill-color: #643682 !important;
  opacity: 1 !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
}

/* Publications, CPD credentials and public document pages:
   comfortable reading with crisp outlines, without changing factual copy. */
html body :is(
  main.asr-research-perspectives-page,main.asr-cpd-provider-page,
  main.asr-publications-page,main.asr-certification-page
) :is(h1,h2,h3) {
  text-wrap: balance !important;
  overflow-wrap: anywhere;
}
html body :is(
  main.asr-research-perspectives-page,main.asr-cpd-provider-page,
  main.asr-publications-page,main.asr-certification-page
) :is(p,li) {
  line-height: 1.7;
}
html body:has(> header.asr-unified-header) main :is(p,li) > a:not([class]):not([role]) {
  text-underline-offset: .17em;
  text-decoration-thickness: 1px;
}
/* Honor user motion preferences. No scroll-hiding tricks. */
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  html body .public-site:is(
    [data-page="faq"],[data-page="support"],[data-page="meetings"]
  ) main :is(.support-cards > article,.session-grid > article,.research-card) {
    transition: transform .24s cubic-bezier(.2,.8,.2,1),
                box-shadow .24s ease,border-color .24s ease;
  }
  html body .public-site:is(
    [data-page="faq"],[data-page="support"],[data-page="meetings"]
  ) main :is(.support-cards > article,.session-grid > article,.research-card):hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 33px rgba(53,27,73,.08);
    border-color: #c9b1d7;
  }
}
/* Quiet contextual return-to-top control for long marketing pages. */
html body .asr-journey-top {
  position: fixed !important;
  inset: auto 22px 24px auto !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 45px !important;
  height: 45px !important;
  padding: 0 !important;
  border-radius: 12px !important;
  border: 1px solid #d8c9e0 !important;
  background: #fff !important;
  background-image: none !important;
  color: #5c307b !important;
  -webkit-text-fill-color: #5c307b !important;
  box-shadow: 0 5px 24px rgba(44,29,55,.12) !important;
  z-index: 70 !important;
  cursor: pointer !important;
  opacity: 1;
  pointer-events: auto;
  transition: background-color .2s ease,box-shadow .2s ease,transform .2s ease;
}
html body .asr-journey-top[hidden] { display:none !important; }
html body .asr-journey-top > svg {
  width: 20px !important;
  height: 20px !important;
  stroke: currentColor !important;
  fill:none !important;
  stroke-width:2 !important;
}
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  html body .asr-journey-top:hover {
    background: #f8f2fb !important;
    box-shadow:0 7px 28px rgba(44,29,55,.16) !important;
    transform:translateY(-2px);
  }
}
html body .asr-journey-top:focus-visible {
  outline:3px solid #783ba0 !important;
  outline-offset:3px !important;
}
@media (max-width:700px) {
  html body .asr-journey-top { right:14px !important; bottom:16px !important; }
  html body.asr-services-light main.asr-services-page .asr-svc-hero-copy-v3 > p {
    font-size: 16px !important;
  }
}
@media (prefers-reduced-motion:reduce) {
  html body .asr-journey-top { animation:none !important;transition:none !important;transform:none !important; }
  html:has(body > header.asr-unified-header) { scroll-behavior:auto !important; }
}
