/* Recallify site chrome and templates (Release 1).
   Everything is scoped under .rc-* so it coexists with Astra and Elementor on
   the pages that still render Elementor content. Values come from tokens.css.
   Breakpoints follow the site's Elementor settings: mobile up to 767px, tablet
   up to 1024px, desktop above. */

/* ---------- base --------------------------------------------------------- */
.rc-theme .rc-header, .rc-theme .rc-footer, .rc-theme .rc-home, .rc-theme .rc-page {
  font-family: var(--rc-font-sans);
  color: var(--rc-color-text);
  line-height: var(--rc-leading-body);
  -webkit-font-smoothing: antialiased;
}
.rc-theme .rc-header *, .rc-theme .rc-footer *, .rc-theme .rc-home *, .rc-theme .rc-page * { box-sizing: border-box; }
.rc-theme .rc-header :where(ul), .rc-theme .rc-footer :where(ul), .rc-theme .rc-home :where(ul, ol), .rc-theme .rc-page :where(ul, ol) { list-style: none; margin: 0; padding: 0; }
.rc-theme .rc-header :where(a), .rc-theme .rc-footer :where(a), .rc-theme .rc-home :where(a), .rc-theme .rc-page :where(a) { color: inherit; text-decoration: none; }
/* The Elementor kit styles every <a> as 16px Poppins regular (.elementor-kit-47 a), which
   turned linked headings, inline links and the footer's link lists into a different face and
   size from their surroundings. Links inherit their parent's font everywhere in the chrome and
   the templates; component rules (.rc-btn, .rc-menu__list strong, ...) still set their own. */
.rc-theme .rc-header :where(a), .rc-theme .rc-footer :where(a), .rc-theme .rc-home :where(a), .rc-theme .rc-page :where(a) { font: inherit; }
.rc-theme .rc-home :where(p), .rc-theme .rc-page :where(p) { margin: 0 0 var(--rc-space-4); }
.rc-theme .rc-home :where(h1, h2, h3), .rc-theme .rc-page :where(h1, h2, h3), .rc-theme .rc-footer :where(h2) {
  font-family: var(--rc-font-sans);
  color: var(--rc-color-text);
  text-transform: none;
  letter-spacing: -0.01em;
  margin: 0;
}
.rc-theme .rc-header :where(img), .rc-theme .rc-footer :where(img), .rc-theme .rc-home :where(img), .rc-theme .rc-page :where(img) { max-width: 100%; height: auto; display: block; }
.rc-theme .rc-header :where(button), .rc-theme .rc-footer :where(button), .rc-theme .rc-home :where(button), .rc-theme .rc-page :where(button) {
  font: inherit; color: inherit; background: none; border: 0; padding: 0; margin: 0; cursor: pointer; text-transform: none; letter-spacing: 0; line-height: inherit; box-shadow: none;
}
.rc-theme .rc-header :focus-visible, .rc-theme .rc-footer :focus-visible, .rc-theme .rc-home :focus-visible, .rc-theme .rc-page :focus-visible {
  outline: 3px solid var(--rc-color-focus); outline-offset: 2px; border-radius: var(--rc-radius-sm);
}
.rc-theme .rc-container { width: 100%; max-width: var(--rc-container); margin: 0 auto; padding: 0 var(--rc-gutter); }
.rc-theme .rc-visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.rc-theme .rc-chevron { margin-left: 0.35em; transition: transform var(--rc-dur) var(--rc-ease); flex: none; }
.rc-theme [aria-expanded="true"] > .rc-chevron { transform: rotate(180deg); }

/* Astra wrapper: full-bleed sections on our templates */
body.rc-full .site-content .ast-container { max-width: 100%; padding: 0; }
body.rc-full #content { padding: 0; }
/* Belt and braces for the taken-over pages: whatever sidebar layout Astra has for them, the
   partial takes the full width and no sidebar column is drawn. */
body.rc-full .site-content .ast-container { display: block; grid-template-columns: none; }
body.rc-full #primary, body.rc-full .site-main, body.rc-full .ast-article-single { width: 100%; max-width: 100%; float: none; margin: 0; padding: 0; }
body.rc-full #secondary { display: none; }

/* buttons */
.rc-theme .rc-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5em;
  min-height: 44px; padding: 0.6em 1.15em; border-radius: var(--rc-radius);
  font-weight: 600; font-size: var(--rc-text-sm); line-height: 1.2; white-space: nowrap;
  border: 2px solid transparent; transition: background-color var(--rc-dur) var(--rc-ease), color var(--rc-dur) var(--rc-ease), border-color var(--rc-dur) var(--rc-ease);
}
.rc-theme .rc-btn--lg { min-height: 52px; padding: 0.8em 1.5em; font-size: var(--rc-text-md); }
.rc-theme .rc-btn--primary { background: var(--rc-color-primary); color: #fff; }
.rc-theme .rc-btn--primary:hover, .rc-theme .rc-btn--primary:focus-visible { background: var(--rc-color-primary-hover); color: #fff; }
.rc-theme .rc-btn--ghost { background: transparent; color: var(--rc-color-secondary); border-color: var(--rc-color-secondary); }
.rc-theme .rc-btn--ghost:hover, .rc-theme .rc-btn--ghost:focus-visible { background: var(--rc-color-primary-soft); color: var(--rc-color-secondary); }
.rc-theme .rc-btn--on-ink { background: #fff; color: var(--rc-color-secondary); }
.rc-theme .rc-btn--on-ink:hover, .rc-theme .rc-btn--on-ink:focus-visible { background: var(--rc-color-on-ink-muted); color: var(--rc-color-secondary); }

/* ---------- header ------------------------------------------------------- */
.rc-theme .rc-header { background: var(--rc-color-bg); border-bottom: 1px solid var(--rc-color-line); position: relative; z-index: 60; }
/* Utility strip in the footer's ink (decided 17 Sep): the page opens and closes in the same
   dark band. Kept to 36px so it reads as a utility row, not a second header; hidden on phones
   (see the mobile block), so the bookend is a desktop and tablet effect. */
.rc-theme .rc-utility { background: var(--rc-color-ink); color: var(--rc-color-on-ink-muted); font-size: var(--rc-text-xs); }
.rc-theme .rc-utility__inner { display: flex; align-items: center; justify-content: space-between; min-height: 36px; gap: var(--rc-space-4); }
.rc-theme .rc-utility__tagline { margin: 0; color: var(--rc-color-on-ink-muted); }
.rc-theme .rc-utility__links { display: flex; align-items: center; gap: var(--rc-space-4); }
.rc-theme .rc-utility__links > li { position: relative; }
.rc-theme .rc-utility__button, .rc-theme .rc-utility__link { display: inline-flex; align-items: center; min-height: 36px; font: inherit; font-weight: 600; color: var(--rc-color-on-ink); }
.rc-theme .rc-utility__button:hover, .rc-theme .rc-utility__link:hover, .rc-theme .rc-utility__button[aria-expanded="true"] { color: var(--rc-color-on-ink); text-decoration: underline; text-underline-offset: 0.2em; }

.rc-theme .rc-primary__inner { display: flex; align-items: center; gap: var(--rc-space-4); min-height: 76px; }
/* The lockup is the SVG from brand/logo (icon + wordmark as outlines), so the header,
   footer, LinkedIn, Instagram and the app all show the same pairing. Height sets it;
   width follows the file's aspect ratio (about 4.51:1). The files are the rounded wordmark set (decision 16 Sep). */
.rc-theme .rc-logo { display: inline-flex; align-items: center; flex: none; }
.rc-theme .rc-logo__lockup { height: 48px; width: auto; }
.rc-theme .rc-logo--footer .rc-logo__lockup { height: 40px; }

.rc-theme .rc-nav { display: flex; align-items: center; gap: var(--rc-space-5); flex: 1 1 auto; }
.rc-theme .rc-nav__list { display: flex; align-items: center; gap: 0; flex: 1 1 auto; justify-content: center; }
.rc-theme .rc-nav__item { position: relative; }
.rc-theme .rc-nav__link {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 0.8rem; border-radius: var(--rc-radius-sm);
  font-size: var(--rc-text-sm); font-weight: 600; color: var(--rc-color-text); white-space: nowrap; flex: none;
}
.rc-theme .rc-nav__link:hover, .rc-theme .rc-nav__link[aria-expanded="true"] { color: var(--rc-color-secondary); background: var(--rc-color-tint); }
.rc-theme .rc-nav__link[aria-current="page"] { color: var(--rc-color-secondary); box-shadow: inset 0 -3px 0 var(--rc-color-primary); border-radius: 0; }
.rc-theme .rc-nav__actions { display: flex; align-items: center; gap: var(--rc-space-2); flex: none; }
.rc-theme .rc-nav__utility { display: none; }

/* dropdown panels */
.rc-theme .rc-menu {
  position: absolute; top: calc(100% + 6px); left: 0; z-index: 70; min-width: 21rem;
  background: var(--rc-color-bg); border: 1px solid var(--rc-color-line); border-radius: var(--rc-radius);
  box-shadow: var(--rc-shadow-menu); padding: var(--rc-space-2);
}
.rc-theme .rc-menu--right { left: auto; right: 0; }
.rc-theme .rc-menu--compact { min-width: 12rem; }
.rc-theme .rc-menu__list li + li { margin-top: 2px; }
.rc-theme .rc-menu__list a { display: flex; flex-direction: column; gap: 2px; padding: 0.6rem 0.75rem; border-radius: var(--rc-radius-sm); }
.rc-theme .rc-menu__list a:hover, .rc-theme .rc-menu__list a:focus-visible { background: var(--rc-color-tint); }
.rc-theme .rc-menu__list a[aria-current="page"] { background: var(--rc-color-primary-soft); }
.rc-theme .rc-menu__list strong { font-size: var(--rc-text-sm); font-weight: 600; color: var(--rc-color-secondary); }
.rc-theme .rc-menu__list span { font-size: var(--rc-text-xs); color: var(--rc-color-text-muted); line-height: 1.4; }
.rc-theme .rc-menu--compact .rc-menu__list a { font-size: var(--rc-text-sm); font-weight: 600; color: var(--rc-color-secondary); }

/* mobile toggle */
.rc-theme .rc-nav-toggle { display: none; margin-left: auto; align-items: center; gap: 0.5rem; min-height: 44px; padding: 0 0.5rem; font-weight: 600; font-size: var(--rc-text-sm); color: var(--rc-color-secondary); border-radius: var(--rc-radius-sm); }
.rc-theme .rc-nav-toggle__bars { display: inline-flex; flex-direction: column; justify-content: center; gap: 4px; width: 22px; height: 22px; }
.rc-theme .rc-nav-toggle__bars span { display: block; height: 2px; background: currentColor; border-radius: 2px; transition: transform var(--rc-dur) var(--rc-ease), opacity var(--rc-dur) var(--rc-ease); }
.rc-theme .rc-nav-toggle[aria-expanded="true"] .rc-nav-toggle__bars span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.rc-theme .rc-nav-toggle[aria-expanded="true"] .rc-nav-toggle__bars span:nth-child(2) { opacity: 0; }
.rc-theme .rc-nav-toggle[aria-expanded="true"] .rc-nav-toggle__bars span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

@media (max-width: 1024px) {
  .rc-theme .rc-utility { display: none; }
  .rc-theme .rc-primary__inner { flex-wrap: wrap; min-height: 64px; }
  .rc-theme .rc-logo__lockup { height: 38px; }
  .rc-theme .rc-nav-toggle { display: inline-flex; }
  .rc-theme .rc-nav { display: none; flex-direction: column; align-items: stretch; width: 100%; gap: 0; padding: var(--rc-space-2) 0 var(--rc-space-5); border-top: 1px solid var(--rc-color-line); }
  .rc-theme .rc-header.rc-nav--open .rc-nav { display: flex; }
  .rc-theme .rc-nav__list { flex-direction: column; align-items: stretch; gap: 0; }
  .rc-theme .rc-nav__link { width: 100%; justify-content: space-between; min-height: 48px; padding: 0 0.5rem; font-size: var(--rc-text-md); border-radius: 0; }
  .rc-theme .rc-nav__link[aria-current="page"] { box-shadow: inset 3px 0 0 var(--rc-color-primary); }
  .rc-theme .rc-menu { position: static; min-width: 0; border: 0; box-shadow: none; padding: 0 0 var(--rc-space-2) var(--rc-space-3); background: transparent; }
  .rc-theme .rc-nav__actions { flex-direction: column; align-items: stretch; margin-top: var(--rc-space-4); }
  .rc-theme .rc-nav__actions .rc-btn { width: 100%; }
  .rc-theme .rc-nav__utility { display: flex; flex-wrap: wrap; gap: var(--rc-space-2) var(--rc-space-4); margin-top: var(--rc-space-4); padding-top: var(--rc-space-4); border-top: 1px solid var(--rc-color-line); font-size: var(--rc-text-sm); font-weight: 600; }
  .rc-theme .rc-nav__utility a { display: inline-flex; min-height: 44px; align-items: center; color: var(--rc-color-secondary); }
}

/* ---------- sections ----------------------------------------------------- */
.rc-theme .rc-section { padding: var(--rc-space-8) 0; }
.rc-theme .rc-section__title { font-size: var(--rc-text-2xl); line-height: var(--rc-leading-tight); font-weight: 700; margin-bottom: var(--rc-space-3); }
.rc-theme .rc-section__title--on-ink { color: #fff; }
.rc-theme .rc-section__lead { font-size: var(--rc-text-md); color: var(--rc-color-text-muted); max-width: 44rem; margin-bottom: var(--rc-space-6); }
.rc-theme .rc-eyebrow { display: inline-block; font-size: var(--rc-text-xs); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--rc-color-primary); margin-bottom: var(--rc-space-3); }

/* hero: one full-bleed composition, Genio-style. Near white on the headline side, colour
   building to the right, large translucent shapes behind the illustration, a soft lilac
   wave along the bottom. All static (no motion), all in the brand purples and lilac. */
.rc-theme .rc-hero {
  position: relative; overflow: hidden; padding: var(--rc-space-8) 0 calc(var(--rc-space-8) + 3rem);
  background:
    url("../img/hero-wave.svg") bottom center / 100% 160px no-repeat,
    url("../img/hero-shapes.svg") right center / auto 100% no-repeat,
    linear-gradient(90deg, #FFFFFF 0%, #FFFFFF 36%, #F8F5FC 52%, #F0E7F9 72%, #E8DBF6 100%);
}
.rc-theme .rc-hero__inner { display: grid; grid-template-columns: minmax(0, 6.5fr) minmax(0, 5.5fr); gap: var(--rc-space-6); align-items: center; position: relative; }
.rc-theme .rc-hero__title { font-size: var(--rc-text-3xl); line-height: var(--rc-leading-tight); font-weight: 800; letter-spacing: -0.02em; margin-bottom: var(--rc-space-4); max-width: 24ch; }
.rc-theme .rc-hero__lead { font-size: var(--rc-text-lg); color: var(--rc-color-text-muted); max-width: 34rem; margin-bottom: var(--rc-space-5); }
.rc-theme .rc-hero__actions { display: flex; flex-wrap: wrap; gap: var(--rc-space-3); margin-bottom: var(--rc-space-4); }
.rc-theme .rc-hero__note { font-size: var(--rc-text-sm); color: var(--rc-color-text-muted); max-width: 34rem; margin: 0; }
/* The illustration floats on the composition: no card, no border, and it may run a little
   past the container's right edge so it feels part of the page rather than placed on it. */
.rc-theme .rc-hero__visual { position: relative; margin-right: -8%; }
.rc-theme .rc-hero__visual img { width: 124%; max-width: none; height: auto; margin-left: -12%; filter: drop-shadow(0 24px 40px rgba(78, 19, 127, 0.18)); }

/* testimonial tiles */
.rc-theme .rc-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--rc-space-4); }
.rc-theme .rc-tile { background: var(--rc-color-bg); border: 1px solid var(--rc-color-line); border-radius: var(--rc-radius); padding: var(--rc-space-5); box-shadow: var(--rc-shadow-sm); }
.rc-theme .rc-tile blockquote { margin: 0; padding: 0; border: 0; font-style: normal; display: flex; flex-direction: column; gap: var(--rc-space-3); height: 100%; }
.rc-theme .rc-tile blockquote::before { content: "\201C"; font-size: 2.5rem; line-height: 1; color: var(--rc-color-primary); font-weight: 700; }
.rc-theme .rc-tile p { margin: 0; font-size: var(--rc-text-sm); flex: 1 1 auto; }
.rc-theme .rc-tile footer { font-size: var(--rc-text-xs); color: var(--rc-color-text-muted); }
.rc-theme .rc-tile cite { font-style: normal; font-weight: 600; color: var(--rc-color-text); }

/* trust bar */
.rc-theme .rc-trust { padding: var(--rc-space-6) 0; border-bottom: 1px solid var(--rc-color-line); }
.rc-theme .rc-trust__label { text-align: center; font-size: var(--rc-text-xs); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--rc-color-text-muted); margin-bottom: var(--rc-space-4); }
.rc-theme .rc-trust__logos { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: var(--rc-space-5) var(--rc-space-7); }
.rc-theme .rc-trust__logos img { height: 44px; width: auto; }
.rc-theme .rc-trust__text { display: inline-block; font-weight: 700; font-size: var(--rc-text-md); color: var(--rc-color-secondary); line-height: 1.2; text-align: center; }
.rc-theme .rc-trust__text small { display: block; font-weight: 500; font-size: var(--rc-text-xs); color: var(--rc-color-text-muted); }

/* proof points */
.rc-theme .rc-proof { padding: var(--rc-space-7) 0; }
.rc-theme .rc-proof__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--rc-space-5); }
.rc-theme .rc-proof__item { display: flex; flex-direction: column; gap: var(--rc-space-2); padding-left: var(--rc-space-4); border-left: 4px solid var(--rc-color-primary); }
.rc-theme .rc-proof__item strong { font-size: var(--rc-text-xl); font-weight: 800; color: var(--rc-color-secondary); line-height: 1.1; }
.rc-theme .rc-proof__item span { color: var(--rc-color-text-muted); font-size: var(--rc-text-sm); }
.rc-theme .rc-proof__item a { font-size: var(--rc-text-sm); font-weight: 600; color: var(--rc-color-link); text-decoration: underline; text-underline-offset: 0.15em; }

/* routing cards */
.rc-theme .rc-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--rc-space-4); }
.rc-theme .rc-card { position: relative; background: var(--rc-color-bg); border: 1px solid var(--rc-color-line); border-radius: var(--rc-radius); padding: var(--rc-space-5); box-shadow: var(--rc-shadow-sm); transition: box-shadow var(--rc-dur) var(--rc-ease), border-color var(--rc-dur) var(--rc-ease); }
.rc-theme .rc-card:hover, .rc-theme .rc-card:focus-within { box-shadow: var(--rc-shadow-md); border-color: var(--rc-color-primary); }
.rc-theme .rc-card h3 { font-size: var(--rc-text-lg); font-weight: 700; margin-bottom: var(--rc-space-2); }
.rc-theme .rc-card h3 a::after { content: ""; position: absolute; inset: 0; }
.rc-theme .rc-card p { font-size: var(--rc-text-sm); color: var(--rc-color-text-muted); margin-bottom: var(--rc-space-3); }
.rc-theme .rc-card__more { font-size: var(--rc-text-sm); font-weight: 600; color: var(--rc-color-link); }
.rc-theme .rc-card__more::after { content: " \2192"; }
.rc-theme .rc-where__assessors { margin: var(--rc-space-5) 0 0; font-size: var(--rc-text-sm); color: var(--rc-color-text-muted); }
.rc-theme .rc-where__assessors a { color: var(--rc-color-link); text-decoration: underline; text-underline-offset: 0.15em; font-weight: 600; }

/* how it works */
.rc-theme .rc-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--rc-space-5); counter-reset: rc-step; }
.rc-theme .rc-step { position: relative; padding-top: var(--rc-space-2); }
.rc-theme .rc-step__number { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--rc-color-primary-soft); color: var(--rc-color-secondary); font-weight: 700; margin-bottom: var(--rc-space-3); }
.rc-theme .rc-step h3 { font-size: var(--rc-text-lg); font-weight: 700; margin-bottom: var(--rc-space-2); }
.rc-theme .rc-step p { font-size: var(--rc-text-sm); color: var(--rc-color-text-muted); margin: 0; }
.rc-theme .rc-how__links { margin: var(--rc-space-6) 0 0; font-size: var(--rc-text-sm); font-weight: 600; color: var(--rc-color-text-muted); }
.rc-theme .rc-how__links a { color: var(--rc-color-link); text-decoration: underline; text-underline-offset: 0.15em; }

/* evidence */
.rc-theme .rc-evidence { background: var(--rc-color-tint); }
.rc-theme .rc-evidence__inner { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--rc-space-7); align-items: center; }
.rc-theme .rc-evidence__copy p { color: var(--rc-color-text-muted); }
.rc-theme .rc-evidence__list li { margin-top: var(--rc-space-2); }
.rc-theme .rc-evidence__list a { font-weight: 600; color: var(--rc-color-link); text-decoration: underline; text-underline-offset: 0.15em; }
.rc-theme .rc-evidence__figure { margin: 0; border-radius: var(--rc-radius-lg); overflow: hidden; }

/* CTA band */
/* The CTA band is brand purple, not ink (decided 17 Sep): the dark colour is kept for the
   utility strip at the top and the footer only. Deep purple on the left, where the text sits
   (white 12:1, the muted lilac 9:1), to the brand purple on the right (white 5.9:1). */
.rc-theme .rc-cta { background: linear-gradient(105deg, var(--rc-color-secondary) 0%, #7A1BB0 55%, var(--rc-color-primary) 100%); color: var(--rc-color-on-ink); }
.rc-theme .rc-cta__inner { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--rc-space-6); align-items: center; }
.rc-theme .rc-cta__lead { color: var(--rc-color-on-ink-muted); font-size: var(--rc-text-md); margin: 0; max-width: 36rem; }
.rc-theme .rc-cta__actions { display: flex; flex-direction: column; align-items: flex-start; gap: var(--rc-space-3); }
.rc-theme .rc-cta__quiet { color: #fff; font-size: var(--rc-text-sm); text-decoration: underline; text-underline-offset: 0.15em; }
.rc-theme .rc-cta__quiet:hover { color: var(--rc-color-on-ink-muted); }

/* FAQ accordion */
.rc-theme .rc-faq__inner { max-width: 48rem; }
.rc-theme .rc-accordion__item { border-top: 1px solid var(--rc-color-line); }
.rc-theme .rc-accordion__item:last-child { border-bottom: 1px solid var(--rc-color-line); }
.rc-theme .rc-accordion__item summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: var(--rc-space-4); padding: var(--rc-space-4) 0; font-weight: 600; font-size: var(--rc-text-md); color: var(--rc-color-text); }
.rc-theme .rc-accordion__item summary::-webkit-details-marker { display: none; }
.rc-theme .rc-accordion__item summary::after { content: "+"; flex: none; width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--rc-color-primary-soft); color: var(--rc-color-secondary); font-weight: 700; }
.rc-theme .rc-accordion__item[open] summary::after { content: "\2212"; }
.rc-theme .rc-accordion__body { padding: 0 0 var(--rc-space-4); color: var(--rc-color-text-muted); }
.rc-theme .rc-accordion__body p:last-child { margin-bottom: 0; }
.rc-theme .rc-accordion__body a { color: var(--rc-color-link); text-decoration: underline; text-underline-offset: 0.15em; }

/* ---------- footer ------------------------------------------------------- */
.rc-theme .rc-footer { background: var(--rc-color-ink); color: var(--rc-color-on-ink-muted); padding: var(--rc-space-8) 0 var(--rc-space-6); font-size: var(--rc-text-sm); }
.rc-theme .rc-footer__top { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--rc-space-7); }
.rc-theme .rc-footer__description { margin: var(--rc-space-4) 0 var(--rc-space-5); max-width: 22rem; }
.rc-theme .rc-store-badges { display: flex; flex-wrap: wrap; align-items: center; gap: var(--rc-space-3); }
.rc-theme .rc-store-badges img { width: 150px; height: 45px; }
.rc-theme .rc-store-badges__web { display: inline-flex; align-items: center; min-height: 45px; padding: 0 0.9rem; border: 1px solid var(--rc-color-on-ink-accent); border-radius: var(--rc-radius-sm); color: #fff; font-weight: 600; font-size: var(--rc-text-xs); }
.rc-theme .rc-store-badges__web:hover { background: var(--rc-color-ink-soft); }
.rc-theme .rc-footer__columns { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--rc-space-5); }
.rc-theme .rc-footer__heading { font-size: var(--rc-text-xs); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--rc-color-on-ink-accent); margin-bottom: var(--rc-space-3); }
.rc-theme .rc-footer__col li { margin-bottom: 0.4rem; }
.rc-theme .rc-footer__col a { color: #fff; display: inline-block; padding: 0.15rem 0; }
.rc-theme .rc-footer__col a:hover { text-decoration: underline; text-underline-offset: 0.15em; }
.rc-theme .rc-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--rc-space-4); margin-top: var(--rc-space-7); padding-top: var(--rc-space-5); border-top: 1px solid var(--rc-color-ink-soft); font-size: var(--rc-text-xs); }
.rc-theme .rc-footer__copy { margin: 0; max-width: 44rem; }
.rc-theme .rc-social { display: flex; gap: var(--rc-space-3); }
.rc-theme .rc-social a { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; color: #fff; background: var(--rc-color-ink-soft); }
.rc-theme .rc-social a:hover { background: var(--rc-color-secondary); }

/* ---------- responsive --------------------------------------------------- */
@media (max-width: 1024px) {
  .rc-theme .rc-section { padding: var(--rc-space-7) 0; }
  .rc-theme .rc-hero {
    padding: var(--rc-space-6) 0 calc(var(--rc-space-6) + 2rem);
    /* stacked: shapes only behind the illustration at the bottom; colour runs top to bottom */
    background:
      url("../img/hero-wave.svg") bottom center / 100% 110px no-repeat,
      url("../img/hero-shapes.svg") right bottom / auto 40% no-repeat,
      linear-gradient(180deg, #FFFFFF 0%, #FFFFFF 48%, #F5F0FA 62%, #EBDFF7 100%);
  }
  .rc-theme .rc-hero__inner { grid-template-columns: 1fr; gap: var(--rc-space-5); }
  .rc-theme .rc-hero__title { max-width: none; }
  .rc-theme .rc-hero__visual { margin: 0 auto; max-width: 34rem; }
  .rc-theme .rc-hero__visual img { width: 100%; }
  .rc-theme .rc-tiles, .rc-theme .rc-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rc-theme .rc-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rc-theme .rc-evidence__inner, .rc-theme .rc-cta__inner { grid-template-columns: 1fr; }
  .rc-theme .rc-footer__top { grid-template-columns: 1fr; gap: var(--rc-space-6); }
  .rc-theme .rc-footer__columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .rc-theme .rc-hero__actions .rc-btn { width: 100%; }
  .rc-theme .rc-tiles, .rc-theme .rc-cards, .rc-theme .rc-steps, .rc-theme .rc-proof__list { grid-template-columns: 1fr; }
  .rc-theme .rc-trust__logos { gap: var(--rc-space-4) var(--rc-space-5); }
  .rc-theme .rc-trust__logos img { height: 36px; }
  .rc-theme .rc-footer__columns { grid-template-columns: 1fr; }
}

/* ---------- audience pages (education, workplace) ------------------------ */
.rc-theme .rc-narrow { max-width: 48rem; }
.rc-theme .rc-narrow p { color: var(--rc-color-text-muted); font-size: var(--rc-text-md); }
.rc-theme .rc-link { color: var(--rc-color-link); font-weight: 600; text-decoration: underline; text-underline-offset: 0.15em; }
.rc-theme .rc-hero--image .rc-hero__visual { aspect-ratio: 3 / 2; }
.rc-theme .rc-steps--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rc-theme .rc-tiles--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rc-theme .rc-story { background: var(--rc-color-tint); }
.rc-theme .rc-story__inner { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--rc-space-6); align-items: start; }
.rc-theme .rc-story__inner p { color: var(--rc-color-text-muted); }
.rc-theme .rc-linklist li { margin-top: var(--rc-space-2); }
.rc-theme .rc-linklist a { color: var(--rc-color-link); font-weight: 600; text-decoration: underline; text-underline-offset: 0.15em; }
.rc-theme .rc-page--fallback { padding: var(--rc-space-7) 0; }

/* Recallify AT pricing: a term table (education) or two cards (workplace). Prices in
   data/pricing_at.yaml. */
.rc-theme .rc-pricing { background: var(--rc-color-bg); }
.rc-theme .rc-price-table { display: table; width: 100%; max-width: 48rem; border-collapse: collapse; background: var(--rc-color-bg); border: 1px solid var(--rc-color-line); border-radius: var(--rc-radius); overflow: hidden; box-shadow: var(--rc-shadow-sm); }
.rc-theme .rc-price-table caption { caption-side: bottom; text-align: left; font-size: var(--rc-text-xs); color: var(--rc-color-text-muted); padding: var(--rc-space-3) 0 0; }
.rc-theme .rc-price-table th, .rc-theme .rc-price-table td { padding: var(--rc-space-3) var(--rc-space-4); text-align: left; border-bottom: 1px solid var(--rc-color-line); vertical-align: top; }
.rc-theme .rc-price-table thead th { background: var(--rc-color-primary-soft); color: var(--rc-color-secondary); font-size: var(--rc-text-sm); font-weight: 700; }
.rc-theme .rc-price-table thead th span { display: block; font-size: var(--rc-text-xs); font-weight: 500; color: var(--rc-color-text-muted); }
.rc-theme .rc-price-table tbody th { font-weight: 600; color: var(--rc-color-text); font-size: var(--rc-text-sm); }
.rc-theme .rc-price-table td { font-weight: 700; font-size: var(--rc-text-lg); font-variant-numeric: tabular-nums; color: var(--rc-color-text); }
.rc-theme .rc-price-table tbody tr:last-child th, .rc-theme .rc-price-table tbody tr:last-child td { border-bottom: 0; }
.rc-theme .rc-pricing__cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--rc-space-6); margin-top: var(--rc-space-7); }
.rc-theme .rc-pricing__cols h3 { font-size: var(--rc-text-lg); font-weight: 700; margin-bottom: var(--rc-space-3); }
.rc-theme .rc-pricing__cols p { color: var(--rc-color-text-muted); font-size: var(--rc-text-sm); }
.rc-theme .rc-pricing__list { list-style: disc; padding-left: 1.2em; margin-bottom: var(--rc-space-4); }
.rc-theme .rc-pricing__list li { margin-top: var(--rc-space-2); color: var(--rc-color-text-muted); font-size: var(--rc-text-sm); }
.rc-theme .rc-pricing__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--rc-space-4); margin-top: var(--rc-space-5); }
.rc-theme .rc-pricing__note { font-size: var(--rc-text-xs); color: var(--rc-color-text-muted); margin: var(--rc-space-4) 0 0; max-width: 48rem; }
.rc-theme .rc-price-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--rc-space-4); max-width: 56rem; }
.rc-theme .rc-price-card { display: flex; flex-direction: column; background: var(--rc-color-bg); border: 1px solid var(--rc-color-line); border-radius: var(--rc-radius); padding: var(--rc-space-5); box-shadow: var(--rc-shadow-sm); }
.rc-theme .rc-price-card--featured { border-color: var(--rc-color-primary); box-shadow: var(--rc-shadow-md); }
.rc-theme .rc-price-card h3 { font-size: var(--rc-text-lg); font-weight: 700; }
.rc-theme .rc-price-card__sub { font-size: var(--rc-text-sm); color: var(--rc-color-text-muted); margin-bottom: var(--rc-space-3); }
.rc-theme .rc-price-card__price { font-size: var(--rc-text-2xl); font-weight: 700; line-height: 1; margin-bottom: var(--rc-space-4); font-variant-numeric: tabular-nums; }
.rc-theme .rc-price-card__price span { font-size: var(--rc-text-sm); font-weight: 500; color: var(--rc-color-text-muted); }
.rc-theme .rc-price-card .rc-pricing__list { flex: 1 1 auto; }
.rc-theme .rc-price-card .rc-btn { align-self: flex-start; }
@media (max-width: 1024px) {
  .rc-theme .rc-steps--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rc-theme .rc-story__inner { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
  .rc-theme .rc-steps--3, .rc-theme .rc-tiles--2, .rc-theme .rc-pricing__cols, .rc-theme .rc-price-cards { grid-template-columns: 1fr; }
  .rc-theme .rc-price-table th, .rc-theme .rc-price-table td { padding: var(--rc-space-2) var(--rc-space-3); }
  .rc-theme .rc-price-table td { font-size: var(--rc-text-md); }
}

/* ---------- press page (/press/, GENERATED partial from data/press.yaml) ------- */
/* Plain hero: no illustration, so the copy takes the whole width and the composition's
   colour still builds to the right behind it. */
.rc-theme .rc-hero--plain .rc-hero__inner { grid-template-columns: minmax(0, 1fr); }
.rc-theme .rc-hero--plain .rc-hero__title { max-width: 20ch; }
.rc-theme .rc-hero--plain .rc-hero__lead { max-width: 40rem; }
.rc-theme .rc-hero--plain .rc-hero__note a { color: var(--rc-color-link); }
.rc-theme .rc-press-section--tint { background: var(--rc-color-tint); }
/* One card for coverage, podcasts and awards: the source's logo and the date on the first
   row, then outlet, title, summary, links. Reuses .rc-card (border, radius, hover) but not
   its stretched link, because the card carries several links. */
.rc-theme .rc-press-card { display: flex; flex-direction: column; gap: var(--rc-space-2); }
.rc-theme .rc-press-card h3 a::after { content: none; }
.rc-theme .rc-press-card__top { display: flex; align-items: center; justify-content: space-between; gap: var(--rc-space-3); min-height: 56px; margin-bottom: var(--rc-space-2); }
.rc-theme .rc-press-card__logo { max-height: 56px; max-width: 58%; width: auto; height: auto; object-fit: contain; object-position: left center; }
.rc-theme .rc-press-card__date { margin: 0; font-size: var(--rc-text-xs); color: var(--rc-color-text-muted); white-space: nowrap; }
.rc-theme .rc-press-card__outlet { margin: 0; font-size: var(--rc-text-xs); font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--rc-color-primary); }
.rc-theme .rc-press-card h3 { font-size: var(--rc-text-md); line-height: var(--rc-leading-snug); margin: 0; }
.rc-theme .rc-press-card h3 a { color: var(--rc-color-text); }
.rc-theme .rc-press-card h3 a:hover, .rc-theme .rc-press-card h3 a:focus-visible { color: var(--rc-color-link); text-decoration: underline; text-underline-offset: 0.15em; }
.rc-theme .rc-press-card .rc-press-card__summary { flex: 1 1 auto; margin: 0; }
.rc-theme .rc-press-card .rc-press-card__links { margin: var(--rc-space-2) 0 0; font-size: var(--rc-text-xs); font-weight: 600; color: var(--rc-color-text-muted); }
.rc-theme .rc-press-card__links a { color: var(--rc-color-link); text-decoration: underline; text-underline-offset: 0.15em; }
/* talks: one compact row each */
.rc-theme .rc-press-talk-list { list-style: none; margin: 0; padding: 0; max-width: 60rem; }
.rc-theme .rc-press-talk { display: grid; grid-template-columns: 8.5rem minmax(0, 1fr); gap: var(--rc-space-1) var(--rc-space-5); padding: var(--rc-space-3) 0; border-top: 1px solid var(--rc-color-line); font-size: var(--rc-text-sm); }
.rc-theme .rc-press-talk:last-child { border-bottom: 1px solid var(--rc-color-line); }
.rc-theme .rc-press-talk time { color: var(--rc-color-text-muted); font-weight: 600; }
.rc-theme .rc-press-talk__event { font-weight: 700; }
.rc-theme .rc-press-talk__event a { color: var(--rc-color-text); }
.rc-theme .rc-press-talk__event a:hover, .rc-theme .rc-press-talk__event a:focus-visible { color: var(--rc-color-link); }
.rc-theme .rc-press-talk__detail { grid-column: 2; color: var(--rc-color-text-muted); }
.rc-theme .rc-press-talk__detail a { color: var(--rc-color-link); font-weight: 600; text-decoration: underline; text-underline-offset: 0.15em; }
/* for journalists: description and contact | logo files */
.rc-theme .rc-press-kit__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--rc-space-7); }
.rc-theme .rc-press-kit__col h3 { font-size: var(--rc-text-lg); font-weight: 700; margin: var(--rc-space-5) 0 var(--rc-space-3); }
.rc-theme .rc-press-kit__col h3:first-child { margin-top: 0; }
.rc-theme .rc-press-kit__col p { color: var(--rc-color-text-muted); font-size: var(--rc-text-sm); }
.rc-theme .rc-press-kit__col .rc-press-kit__boilerplate { font-size: var(--rc-text-md); color: var(--rc-color-text); padding: var(--rc-space-4) var(--rc-space-5); border-left: 4px solid var(--rc-color-primary); background: var(--rc-color-primary-soft); border-radius: 0 var(--rc-radius-sm) var(--rc-radius-sm) 0; }
.rc-theme .rc-press-kit__col .rc-press-kit__note { font-size: var(--rc-text-xs); }
.rc-theme .rc-press-kit__files { list-style: none; margin: 0 0 var(--rc-space-3); padding: 0; }
.rc-theme .rc-press-kit__files li { padding: var(--rc-space-2) 0; border-top: 1px solid var(--rc-color-line); font-size: var(--rc-text-sm); }
.rc-theme .rc-press-kit__files li:last-child { border-bottom: 1px solid var(--rc-color-line); }
.rc-theme .rc-press-kit__files a { color: var(--rc-color-link); font-weight: 600; text-decoration: underline; text-underline-offset: 0.15em; }
@media (max-width: 1024px) {
  .rc-theme .rc-press-kit__grid { grid-template-columns: 1fr; gap: var(--rc-space-6); }
}
@media (max-width: 767px) {
  .rc-theme .rc-press-talk { grid-template-columns: 1fr; gap: var(--rc-space-1); }
  .rc-theme .rc-press-talk__detail { grid-column: 1; }
}

/* ---------- about page (/cognitive_support_app/, Who we are: Our story and team) ------- */
/* The team block is GENERATED from data/team.yaml (scripts/build_team_section.py); the rest
   of the partial is hand-written. One card format for everyone, team and advisors alike:
   photo on the left, name, role and bio on the right, two cards per row, so four people make
   two full rows and two advisors one, with no orphan card. The photo is a circle because every
   headshot is a different crop and the circle hides the mismatch. */
.rc-theme .rc-section--tint { background: var(--rc-color-tint); }
.rc-theme .rc-cards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 56rem; }
.rc-theme .rc-card .rc-card__label { margin: 0 0 var(--rc-space-2); font-size: var(--rc-text-xs); font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--rc-color-primary); }
/* Editorial pass, 19 Sep 2026: the audience pages carry the home page's rhythm (a kicker
   chip, a title with a drawn underline, an icon on every card in a set). The screening
   questionnaires on /education/ became cards with an icon each, and the prose that follows
   a card set keeps the reading measure. */
.rc-theme .rc-tools { margin-bottom: var(--rc-space-4); }
.rc-theme .rc-tool p { margin-bottom: 0; }
.rc-theme .rc-tools__all { margin: 0; font-size: var(--rc-text-sm); }
.rc-theme .rc-problem__after { margin-top: var(--rc-space-6); }
.rc-theme .rc-problem__after p { color: var(--rc-color-text-muted); }
.rc-theme .rc-about__story p { color: var(--rc-color-text-muted); }
.rc-theme .rc-about__note { max-width: 48rem; margin: var(--rc-space-5) 0 0; font-size: var(--rc-text-sm); color: var(--rc-color-text-muted); }
.rc-theme .rc-about .rc-cta__lead a { color: #fff; text-decoration: underline; text-underline-offset: 0.15em; }
.rc-theme .rc-team { scroll-margin-top: var(--rc-space-6); }
.rc-theme .rc-team__group { margin-top: var(--rc-space-6); }
.rc-theme .rc-team__group-title { font-size: var(--rc-text-lg); font-weight: 700; margin-bottom: var(--rc-space-3); }
.rc-theme .rc-team__group .rc-section__lead { margin-bottom: var(--rc-space-5); }
.rc-theme .rc-team__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--rc-space-4); }
.rc-theme .rc-person { display: flex; gap: var(--rc-space-5); align-items: flex-start; background: var(--rc-color-bg); border: 1px solid var(--rc-color-line); border-radius: var(--rc-radius); padding: var(--rc-space-5); box-shadow: var(--rc-shadow-sm); }
.rc-theme .rc-person__photo { flex: none; width: 112px; height: 112px; border-radius: 50%; object-fit: cover; background: var(--rc-color-primary-soft); }
/* h4 is outside the page's heading reset (h1 to h3), so the Elementor kit's h4 rule would
   colour and size it; set the face, colour and case here. */
.rc-theme .rc-person__body { flex: 1 1 auto; min-width: 0; }
.rc-theme .rc-person__name { font-family: var(--rc-font-sans); color: var(--rc-color-text); text-transform: none; letter-spacing: -0.01em; font-size: var(--rc-text-lg); font-weight: 700; line-height: var(--rc-leading-snug); margin: 0; }
.rc-theme .rc-person__role { margin: 0; font-size: var(--rc-text-xs); font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--rc-color-primary); }
.rc-theme .rc-person__bio { margin: var(--rc-space-1) 0 0; font-size: var(--rc-text-sm); color: var(--rc-color-text-muted); }
.rc-theme .rc-person__links { margin: var(--rc-space-1) 0 0; font-size: var(--rc-text-xs); font-weight: 600; color: var(--rc-color-text-muted); }
.rc-theme .rc-person__links a { color: var(--rc-color-link); text-decoration: underline; text-underline-offset: 0.15em; }
@media (max-width: 1024px) {
  .rc-theme .rc-person { gap: var(--rc-space-4); }
  .rc-theme .rc-person__photo { width: 96px; height: 96px; }
}
@media (max-width: 767px) {
  .rc-theme .rc-cards--2, .rc-theme .rc-team__grid { grid-template-columns: 1fr; }
  /* stacked: a bio beside a photo is a narrow column at phone width */
  .rc-theme .rc-person { flex-direction: column; gap: var(--rc-space-3); padding: var(--rc-space-4); }
  .rc-theme .rc-person__photo { width: 80px; height: 80px; }
}

/* ---------- home: editorial layout below the video (decided 17 Sep, "version B") ------- */
/* Background rhythm: white (reviews, numbers, routing), a soft gradient with the hero shapes
   (symptoms), white (how it works), tint (research), white (security), purple (CTA). Titles
   on the home page are one size up, with a kicker chip above and a drawn underline on one
   word; the other pages keep the plain title until they get the same pass. */
.rc-theme .rc-home .rc-section__title { font-size: var(--rc-text-3xl); letter-spacing: -0.02em; max-width: 26ch; }
.rc-theme .rc-home .rc-video__title { max-width: none; }
.rc-theme .rc-kicker { display: inline-block; margin: 0 0 var(--rc-space-2); padding: 0.2em 0.7em; border-radius: 999px; background: var(--rc-color-primary-soft); color: var(--rc-color-secondary); font-size: var(--rc-text-xs); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.rc-theme .rc-swash { position: relative; isolation: isolate; white-space: nowrap; }
.rc-theme .rc-swash::after { content: ""; position: absolute; left: -0.05em; right: -0.05em; bottom: 0.02em; height: 0.32em; z-index: -1; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 24' preserveAspectRatio='none'%3E%3Cpath d='M3 16 C 40 4, 90 22, 130 10 S 190 6, 197 14' fill='none' stroke='%239F21CB' stroke-width='7' stroke-linecap='round' opacity='0.55'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }
/* icon wells (inline Lucide SVGs, stroke = currentColor) */
.rc-theme .rc-icon { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 16px; background: var(--rc-color-primary-soft); color: var(--rc-color-secondary); margin-bottom: var(--rc-space-3); }
.rc-theme .rc-icon svg { width: 26px; height: 26px; stroke: currentColor; }
.rc-theme .rc-icon--xl { position: relative; z-index: 1; width: 120px; height: 120px; border-radius: 36px; margin: 0; }
.rc-theme .rc-icon--xl svg { width: 56px; height: 56px; }
/* reviews: staggered, two tilted, one purple, one lilac; a soft glow top right */
.rc-theme .rc-testimonials { position: relative; overflow: hidden; }
.rc-theme .rc-testimonials::after { content: ""; position: absolute; width: 520px; height: 520px; right: -180px; top: -120px; border-radius: 50%; background: radial-gradient(circle at 40% 40%, rgba(159, 33, 203, 0.18), rgba(159, 33, 203, 0) 70%); pointer-events: none; }
.rc-theme .rc-testimonials .rc-container { position: relative; }
.rc-theme .rc-tiles--stagger { align-items: start; gap: var(--rc-space-5); }
.rc-theme .rc-tiles--stagger .rc-tile { border-radius: var(--rc-radius-lg); box-shadow: var(--rc-shadow-md); }
.rc-theme .rc-tiles--stagger .rc-tile:nth-child(2), .rc-theme .rc-tiles--stagger .rc-tile:nth-child(5) { transform: translateY(28px); }
.rc-theme .rc-tiles--stagger .rc-tile:nth-child(1) { transform: rotate(-1.2deg); }
.rc-theme .rc-tiles--stagger .rc-tile:nth-child(6) { transform: rotate(1.1deg); }
.rc-theme .rc-tile--accent { background: linear-gradient(135deg, var(--rc-color-secondary), var(--rc-color-primary)); border-color: transparent; color: #fff; }
.rc-theme .rc-tile--accent p, .rc-theme .rc-tile--accent footer, .rc-theme .rc-tile--accent cite { color: #fff; }
.rc-theme .rc-tile--accent blockquote::before { color: rgba(255, 255, 255, 0.7); }
.rc-theme .rc-tile--soft { background: var(--rc-color-primary-soft); border-color: transparent; }
/* numbers: no bars, the count in a gradient */
.rc-theme .rc-proof { padding: var(--rc-space-8) 0 var(--rc-space-7); border-top: 1px solid var(--rc-color-line); }
.rc-theme .rc-proof__item { border-left: 0; padding-left: 0; }
.rc-theme .rc-proof__item strong { font-size: var(--rc-text-2xl); letter-spacing: -0.02em; }
.rc-theme .rc-proof__item:first-child strong { font-size: clamp(2.5rem, 2rem + 2.5vw, 3.75rem); letter-spacing: -0.03em; background: linear-gradient(90deg, var(--rc-color-secondary), var(--rc-color-primary)); -webkit-background-clip: text; background-clip: text; color: transparent; }
/* The three figures share rows (number, sentence, source), so the larger first number sits on
   the same baseline as the others and the sentences start on one line (Berkan, 18 Sep). */
@media (min-width: 768px) {
  .rc-theme .rc-proof__list { grid-template-rows: auto auto auto; grid-auto-flow: column; row-gap: var(--rc-space-2); align-items: start; }
  .rc-theme .rc-proof__item { display: contents; }
  .rc-theme .rc-proof__item strong { align-self: end; }
}
/* routing cards: a gradient header each, the icon floating over its edge */
.rc-theme .rc-route { padding-top: 0; overflow: hidden; border-radius: var(--rc-radius-lg); }
.rc-theme .rc-route::before { content: ""; display: block; height: 96px; margin: 0 calc(-1 * var(--rc-space-5)) var(--rc-space-4); background: linear-gradient(120deg, var(--rc-color-secondary), var(--rc-color-primary) 70%, #C9B8E8); }
.rc-theme .rc-route:nth-child(2)::before { background: linear-gradient(200deg, var(--rc-color-primary), var(--rc-color-secondary)); }
.rc-theme .rc-route:nth-child(3)::before { background: linear-gradient(60deg, #C9B8E8, var(--rc-color-primary)); }
.rc-theme .rc-route .rc-icon { position: relative; margin-top: -58px; width: 64px; height: 64px; border-radius: 20px; background: #fff; box-shadow: var(--rc-shadow-md); }
/* the five shared symptoms: copy left, a diamond of five right, on the hero's gradient */
.rc-theme .rc-struggle { position: relative; overflow: hidden; background: linear-gradient(180deg, #FFFFFF 0%, #F6F3FB 40%, #EBDFF7 100%); }
.rc-theme .rc-struggle::before { content: ""; position: absolute; inset: 0; background: url("../img/hero-shapes.svg") right bottom / auto 120% no-repeat; opacity: 0.45; pointer-events: none; }
.rc-theme .rc-struggle__inner { position: relative; display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: var(--rc-space-7); align-items: center; }
.rc-theme .rc-pull { margin: var(--rc-space-6) 0 0; padding: var(--rc-space-3) 0 var(--rc-space-3) var(--rc-space-5); border-left: 5px solid var(--rc-color-primary); max-width: 40rem; }
.rc-theme .rc-pull p { margin: 0; font-style: normal; font-size: var(--rc-text-lg); font-weight: 600; line-height: var(--rc-leading-snug); color: var(--rc-color-text); }
.rc-theme .rc-pull footer { margin-top: var(--rc-space-2); font-style: normal; font-size: var(--rc-text-sm); color: var(--rc-color-text-muted); }
.rc-theme .rc-diamond { display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(3, 1fr); gap: var(--rc-space-3); aspect-ratio: 1; max-width: 34rem; margin: 0 auto; }
.rc-theme .rc-sym { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; background: #fff; border: 1px solid var(--rc-color-line); border-radius: 22px; padding: var(--rc-space-3); box-shadow: var(--rc-shadow-sm); }
.rc-theme .rc-sym .rc-icon { margin-bottom: var(--rc-space-2); }
.rc-theme .rc-sym h3 { font-size: var(--rc-text-md); font-weight: 700; margin: 0 0 2px; color: inherit; }
.rc-theme .rc-sym p { margin: 0; font-size: var(--rc-text-sm); color: var(--rc-color-text-muted); }
.rc-theme .rc-sym--0 { grid-column: 2; grid-row: 1; }
.rc-theme .rc-sym--1 { grid-column: 1; grid-row: 2; }
.rc-theme .rc-sym--2 { grid-column: 2; grid-row: 2; background: linear-gradient(135deg, var(--rc-color-secondary), var(--rc-color-primary)); color: #fff; border-color: transparent; transform: scale(1.08); box-shadow: var(--rc-shadow-md); }
.rc-theme .rc-sym--2 p { color: rgba(255, 255, 255, 0.85); }
.rc-theme .rc-sym--2 .rc-icon { background: rgba(255, 255, 255, 0.18); color: #fff; }
.rc-theme .rc-sym--3 { grid-column: 3; grid-row: 2; }
.rc-theme .rc-sym--4 { grid-column: 2; grid-row: 3; }
/* how it works: zig-zag, dashed spine, an art slot per step */
.rc-theme .rc-zigzag { list-style: none; margin: 0; padding: 0; position: relative; }
.rc-theme .rc-zigzag::before { content: ""; position: absolute; left: 50%; top: 40px; bottom: 40px; border-left: 2px dashed var(--rc-color-primary); opacity: 0.45; }
.rc-theme .rc-zz { display: grid; grid-template-columns: 1fr 1fr; gap: var(--rc-space-7); align-items: center; padding: var(--rc-space-5) 0; }
.rc-theme .rc-zz__art { position: relative; display: flex; align-items: center; justify-content: center; min-height: 220px; }
.rc-theme .rc-zz--flip .rc-zz__art { order: 2; }
.rc-theme .rc-blob { position: absolute; width: 240px; height: 200px; background: linear-gradient(135deg, #F3E6FA, #E9DDF7); border-radius: 58% 42% 57% 43% / 45% 57% 43% 55%; transform: rotate(-8deg); }
.rc-theme .rc-zz:nth-child(2) .rc-blob { border-radius: 42% 58% 43% 57% / 57% 43% 55% 45%; transform: rotate(9deg); }
.rc-theme .rc-zz:nth-child(3) .rc-blob { border-radius: 50% 50% 40% 60% / 60% 40% 60% 40%; transform: rotate(-3deg); }
.rc-theme .rc-zz:nth-child(4) .rc-blob { border-radius: 60% 40% 55% 45% / 40% 60% 45% 55%; transform: rotate(6deg); }
.rc-theme .rc-zz__img { position: relative; z-index: 1; width: 270px; max-width: 80%; height: auto; filter: drop-shadow(0 16px 28px rgba(78, 19, 127, 0.16)); }
.rc-theme .rc-zz__num { position: absolute; right: 8%; top: 4%; font-size: 4.5rem; font-weight: 800; letter-spacing: -0.04em; line-height: 1; color: var(--rc-color-primary); opacity: 0.14; }
.rc-theme .rc-zz__copy { background: #fff; border: 1px solid var(--rc-color-line); border-radius: var(--rc-radius-lg); padding: var(--rc-space-5); box-shadow: var(--rc-shadow-sm); }
.rc-theme .rc-zz__copy h3 { font-size: var(--rc-text-xl); font-weight: 700; margin-bottom: var(--rc-space-2); }
.rc-theme .rc-zz__copy p { margin: 0; font-size: var(--rc-text-md); color: var(--rc-color-text-muted); }
/* research: a bento; NIHR as the big purple tile, the whitepaper with a small cover */
.rc-theme .rc-research { background: var(--rc-color-tint); }
.rc-theme .rc-studies { grid-auto-rows: auto; }
.rc-theme .rc-study { display: flex; flex-direction: column; border-radius: var(--rc-radius-lg); }
.rc-theme .rc-study__status { display: inline-block; align-self: flex-start; margin: 0 0 var(--rc-space-3); padding: 0.15em 0.6em; border-radius: 999px; background: var(--rc-color-primary-soft); color: var(--rc-color-secondary); font-size: var(--rc-text-xs); font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; }
.rc-theme .rc-study h3 { font-size: var(--rc-text-md); line-height: var(--rc-leading-snug); }
.rc-theme .rc-study > p:not(.rc-study__status):not(.rc-study__asset) { flex: 1 1 auto; }
.rc-theme .rc-study__asset { flex: 0 0 auto; margin: 0 0 var(--rc-space-3); font-size: var(--rc-text-xs); font-weight: 600; }
.rc-theme .rc-study__asset a { position: relative; z-index: 1; color: var(--rc-color-link); text-decoration: underline; text-underline-offset: 0.15em; }
.rc-theme .rc-study--lead { grid-column: span 2; grid-row: span 2; background: linear-gradient(135deg, var(--rc-color-secondary), var(--rc-color-primary)); color: #fff; border-color: transparent; }
.rc-theme .rc-study--lead h3 { font-size: var(--rc-text-xl); max-width: 22ch; }
.rc-theme .rc-study--lead h3 a, .rc-theme .rc-study--lead p, .rc-theme .rc-study--lead .rc-card__more { color: #fff; }
.rc-theme .rc-study--lead > p:not(.rc-study__status) { flex: 0 0 auto; }
.rc-theme .rc-study--lead .rc-study__status { background: rgba(255, 255, 255, 0.18); color: #fff; }
.rc-theme .rc-study__facts { list-style: none; margin: auto 0 var(--rc-space-4); padding: var(--rc-space-4) 0 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--rc-space-4); border-top: 1px solid rgba(255, 255, 255, 0.25); }
.rc-theme .rc-study__facts li { display: flex; flex-direction: column; gap: 2px; }
.rc-theme .rc-study__facts strong { font-size: var(--rc-text-xl); font-weight: 800; line-height: 1.1; color: #fff; }
.rc-theme .rc-study__facts span { font-size: var(--rc-text-xs); color: rgba(255, 255, 255, 0.85); }
.rc-theme .rc-study--report { position: relative; padding-left: 132px; }
.rc-theme .rc-cover { position: absolute; left: var(--rc-space-4); top: var(--rc-space-4); width: 92px; height: 124px; border-radius: 6px; overflow: hidden; background: #fff; border: 1px solid var(--rc-color-line); box-shadow: var(--rc-shadow-md); }
.rc-theme .rc-cover::before { content: ""; display: block; height: 30px; background: linear-gradient(90deg, var(--rc-color-secondary), var(--rc-color-primary)); }
.rc-theme .rc-cover span { display: block; height: 5px; margin: 10px 12px 0; border-radius: 3px; background: #E9DDF7; }
.rc-theme .rc-cover span:nth-child(2) { width: 60%; }
.rc-theme .rc-cover span:nth-child(3) { width: 75%; }
.rc-theme .rc-research .rc-how__links { margin-top: var(--rc-space-5); }
.rc-theme .rc-trust--security { border-bottom: 0; border-top: 1px solid var(--rc-color-line); }
/* The GDPR badge is a wide lockup and the ICO mark is square, so a single height makes one
   tiny and the other huge: the widths are set per mark, as on /personal-use/. */
.rc-theme .rc-trust--security .rc-trust__logos { gap: var(--rc-space-5) var(--rc-space-7); }
.rc-theme .rc-trust--security .rc-trust__logos img { height: auto; width: 170px; }
.rc-theme .rc-trust--security .rc-trust__logos li:nth-child(2) img { width: 72px; }
.rc-theme .rc-trust--security .rc-trust__logos li:nth-child(3) img { width: 150px; }
.rc-theme .rc-trust__note { margin: var(--rc-space-4) 0 0; text-align: center; font-size: var(--rc-text-sm); color: var(--rc-color-text-muted); }
.rc-theme .rc-trust__note a { color: var(--rc-color-link); text-decoration: underline; text-underline-offset: 0.15em; font-weight: 600; }
/* the CTA band gets a soft highlight top right */
.rc-theme .rc-cta { position: relative; overflow: hidden; }
.rc-theme .rc-cta::after { content: ""; position: absolute; right: -120px; top: -160px; width: 420px; height: 420px; border-radius: 50%; background: radial-gradient(circle, rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0) 70%); pointer-events: none; }
.rc-theme .rc-cta .rc-container { position: relative; }
@media (max-width: 1024px) {
  .rc-theme .rc-struggle__inner { grid-template-columns: 1fr; }
  .rc-theme .rc-diamond { max-width: 30rem; }
  .rc-theme .rc-zz { gap: var(--rc-space-5); }
  .rc-theme .rc-zz__art { min-height: 180px; }
  .rc-theme .rc-blob { width: 200px; height: 170px; }
  .rc-theme .rc-study--report { padding-left: var(--rc-space-5); }
  .rc-theme .rc-cover { display: none; }
}
@media (max-width: 767px) {
  .rc-theme .rc-tiles--stagger .rc-tile { transform: none; }
  .rc-theme .rc-proof__item:first-child strong { font-size: var(--rc-text-2xl); }
  /* the diamond becomes two columns with the centre item full width */
  .rc-theme .rc-diamond { grid-template-columns: 1fr 1fr; grid-template-rows: auto; aspect-ratio: auto; }
  .rc-theme .rc-sym--0 { grid-column: 1; grid-row: 1; }
  .rc-theme .rc-sym--1 { grid-column: 2; grid-row: 1; }
  .rc-theme .rc-sym--2 { grid-column: 1 / -1; grid-row: 2; transform: none; }
  .rc-theme .rc-sym--3 { grid-column: 1; grid-row: 3; }
  .rc-theme .rc-sym--4 { grid-column: 2; grid-row: 3; }
  .rc-theme .rc-zigzag::before { display: none; }
  .rc-theme .rc-zz { grid-template-columns: 1fr; gap: var(--rc-space-3); padding: var(--rc-space-4) 0; }
  .rc-theme .rc-zz--flip .rc-zz__art { order: 0; }
  .rc-theme .rc-zz__art { min-height: 150px; }
  .rc-theme .rc-blob { width: 170px; height: 140px; }
  .rc-theme .rc-zz__img { width: 200px; }
  .rc-theme .rc-icon--xl { width: 88px; height: 88px; border-radius: 26px; }
  .rc-theme .rc-icon--xl svg { width: 40px; height: 40px; }
  .rc-theme .rc-zz__num { font-size: 3rem; }
  .rc-theme .rc-study--lead { grid-column: auto; grid-row: auto; }
  .rc-theme .rc-study__facts { grid-template-columns: 1fr; gap: var(--rc-space-2); }
}

/* resources: the three newest guides, then the self-assessments as a bordered strip (19 Sep) */
.rc-theme .rc-resources__all { margin: var(--rc-space-4) 0 0; font-size: var(--rc-text-sm); }
.rc-theme .rc-resources__tools { margin-top: var(--rc-space-6); padding: var(--rc-space-5) var(--rc-space-6); border: 1px solid var(--rc-color-line); border-radius: var(--rc-radius); background: var(--rc-color-tint); }
.rc-theme .rc-resources__tools h3 { font-size: var(--rc-text-lg); font-weight: 700; margin-bottom: var(--rc-space-2); }
.rc-theme .rc-resources__tools > p { font-size: var(--rc-text-sm); color: var(--rc-color-text-muted); max-width: 46rem; margin-bottom: var(--rc-space-4); }
.rc-theme .rc-resources__tools .rc-chip { background: var(--rc-color-bg); }

/* ---------- home: the video under the hero (17 Sep) ------------------------------ */
.rc-theme .rc-video { padding-top: var(--rc-space-7); }
.rc-theme .rc-video__title { text-align: center; margin-bottom: var(--rc-space-5); }
.rc-theme .rc-video__frame { position: relative; max-width: 56rem; margin: 0 auto; aspect-ratio: 16 / 9; border-radius: var(--rc-radius); overflow: hidden; background: var(--rc-color-ink); box-shadow: var(--rc-shadow-md); }
.rc-theme .rc-video__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.rc-theme .rc-video__play { position: absolute; inset: 0; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; margin: 0; padding: 0; border: 0; background: transparent; cursor: pointer; }
.rc-theme .rc-video__play img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rc-theme .rc-video__play span { position: relative; display: flex; align-items: center; justify-content: center; width: 84px; height: 84px; border-radius: 50%; background: var(--rc-color-primary); box-shadow: 0 12px 30px rgba(78, 19, 127, 0.35); transition: transform var(--rc-dur) var(--rc-ease), background var(--rc-dur) var(--rc-ease); }
.rc-theme .rc-video__play span::after { content: ""; margin-left: 7px; border-style: solid; border-width: 15px 0 15px 26px; border-color: transparent transparent transparent #fff; }
.rc-theme .rc-video__play:hover span, .rc-theme .rc-video__play:focus-visible span { transform: scale(1.06); background: var(--rc-color-secondary); }
.rc-theme .rc-video__play:focus-visible { outline: 3px solid var(--rc-color-primary); outline-offset: -3px; }
.rc-theme .rc-video__frame noscript a { position: absolute; left: 50%; bottom: var(--rc-space-3); transform: translateX(-50%); color: #fff; }
.rc-theme .rc-video__caption { text-align: center; max-width: 44rem; margin: var(--rc-space-4) auto 0; font-size: var(--rc-text-sm); color: var(--rc-color-text-muted); }
@media (max-width: 767px) {
  .rc-theme .rc-video__play span { width: 64px; height: 64px; }
  .rc-theme .rc-video__play span::after { border-width: 11px 0 11px 19px; margin-left: 5px; }
}

/* ---------- product pages (memory support, task management, learning; 17 Sep) --------- */
/* GENERATED partials from data/product_pages.yaml (scripts/build_product_pages.py). Brain in
   Hand's "features at a glance": tabs, a phone per tab with a still, UI pieces cut out of the
   screen beside it, and the recording playing inside the phone for the open tab (site.js). */
.rc-theme .rc-product .rc-section__title { font-size: var(--rc-text-3xl); letter-spacing: -0.02em; max-width: 26ch; }
.rc-theme .rc-hero--product .rc-hero__inner { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
.rc-theme .rc-hero__visual--phone { display: flex; justify-content: center; }
.rc-theme .rc-hero__visual--phone img { width: 100%; max-width: 100%; margin-left: 0; filter: none; }
.rc-theme .rc-prose p { color: var(--rc-color-text-muted); font-size: var(--rc-text-md); }
.rc-theme .rc-prose p:last-child { margin-bottom: 0; }
.rc-theme .rc-prose a { color: var(--rc-color-link); font-weight: 600; text-decoration: underline; text-underline-offset: 0.15em; }
.rc-theme .rc-prose h2 { margin-top: var(--rc-space-6); }
.rc-theme .rc-prose h2:first-child { margin-top: 0; }
.rc-theme .rc-prose .rc-linklist { margin: 0 0 var(--rc-space-4); padding-left: 1.2em; color: var(--rc-color-text-muted); }
.rc-theme .rc-product__intro { padding-bottom: var(--rc-space-6); }
/* the screen: the box takes the still's own proportions. A modern screenshot (narrower than
   1:2) gets the dark phone shell; the 9:16 recordings get a flat screen card, because a shell
   around them reads as a squat, old handset. The still is rows 40 to 900 of the 960-row
   recording, so the video is laid over it with the same crop. */
.rc-theme .rc-phone { position: relative; width: min(300px, 78%); }
.rc-theme .rc-phone__inner { position: relative; overflow: hidden; background: #fff; }
.rc-theme .rc-phone__screen { display: block; width: 100%; height: auto; }
.rc-theme .rc-phone__video { position: absolute; left: 0; top: -4.65%; width: 100%; height: 111.63%; object-fit: cover; opacity: 0; transition: opacity 0.35s var(--rc-ease); }
.rc-theme .rc-phone--playing .rc-phone__video { opacity: 1; }
.rc-theme .rc-phone--shell { padding: 10px; border-radius: 15% / 7%; background: var(--rc-color-ink); box-shadow: 0 24px 48px rgba(28, 18, 51, 0.22); }
.rc-theme .rc-phone--shell .rc-phone__inner { border-radius: 12% / 5.6%; }
.rc-theme .rc-phone--card .rc-phone__inner { border-radius: 22px; border: 1px solid var(--rc-color-line); box-shadow: 0 24px 48px rgba(28, 18, 51, 0.16); }
/* tabs */
.rc-theme .rc-glance { background: var(--rc-color-tint); }
.rc-theme .rc-tabs__list { display: flex; flex-wrap: wrap; gap: var(--rc-space-2); margin: var(--rc-space-2) 0 var(--rc-space-6); padding: var(--rc-space-2); border: 1px solid var(--rc-color-line); border-radius: var(--rc-radius-lg); background: #fff; }
.rc-theme .rc-tabs__tab { flex: 1 1 auto; margin: 0; padding: 0.7em 1.1em; border: 0; border-radius: var(--rc-radius); background: transparent; color: var(--rc-color-text-muted); font: inherit; font-size: var(--rc-text-sm); font-weight: 600; cursor: pointer; transition: background var(--rc-dur) var(--rc-ease), color var(--rc-dur) var(--rc-ease); }
.rc-theme .rc-tabs__tab:hover { background: var(--rc-color-primary-soft); color: var(--rc-color-secondary); }
.rc-theme .rc-tabs__tab[aria-selected="true"] { background: var(--rc-color-secondary); color: #fff; }
.rc-theme .rc-tabs__tab:focus-visible { outline: 3px solid var(--rc-color-primary); outline-offset: 2px; }
.rc-theme .rc-tabs__panel { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--rc-space-7); align-items: center; }
.rc-theme .rc-tabs__panel[hidden] { display: none; }
.rc-theme .rc-glance__copy h3 { font-size: var(--rc-text-xl); font-weight: 700; margin-bottom: var(--rc-space-2); }
.rc-theme .rc-glance__copy p { margin: 0; font-size: var(--rc-text-md); color: var(--rc-color-text-muted); }
.rc-theme .rc-glance__visual { position: relative; display: flex; justify-content: flex-start; padding: var(--rc-space-4) 0; min-height: 520px; }
.rc-theme .rc-glance__visual .rc-phone { margin-left: 4%; }
/* callouts: UI pieces sitting over the phone's right edge */
.rc-theme .rc-callout { position: absolute; left: 42%; width: min(360px, 56%); margin: 0; z-index: 3; }
.rc-theme .rc-callout img { display: block; width: 100%; height: auto; border-radius: 12px; border: 1px solid var(--rc-color-line); box-shadow: var(--rc-shadow-menu); background: #fff; }
.rc-theme .rc-callout figcaption { display: inline-block; margin-top: var(--rc-space-2); padding: 0.25em 0.7em; border-radius: 999px; background: var(--rc-color-secondary); color: #fff; font-size: var(--rc-text-xs); font-weight: 600; }
.rc-theme .rc-callout--right-high { top: 12%; }
.rc-theme .rc-callout--right-mid { top: 38%; }
.rc-theme .rc-callout--right-low { top: 60%; }
/* the app CTA band: badges on the purple */
.rc-theme .rc-cta--app .rc-store-badges__web { color: #fff; border-color: rgba(255, 255, 255, 0.55); }
.rc-theme .rc-cta--app .rc-store-badges__web:hover { background: rgba(255, 255, 255, 0.12); }
@media (max-width: 1024px) {
  .rc-theme .rc-hero--product .rc-hero__inner { grid-template-columns: 1fr; }
  .rc-theme .rc-hero__visual--phone .rc-phone { width: 260px; }
  .rc-theme .rc-tabs__panel { grid-template-columns: 1fr; gap: var(--rc-space-5); }
  .rc-theme .rc-glance__visual { min-height: 0; justify-content: center; }
  .rc-theme .rc-glance__visual .rc-phone { width: 280px; margin-left: -18%; }
  .rc-theme .rc-callout { left: 50%; width: min(320px, 50%); }
}
@media (max-width: 767px) {
  .rc-theme .rc-glance__visual .rc-phone { width: 62%; margin-left: -22%; }
  .rc-theme .rc-callout { left: 48%; width: 52%; }
  /* phones: one scrolling row of tabs rather than a stack */
  .rc-theme .rc-tabs__list { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .rc-theme .rc-tabs__list::-webkit-scrollbar { display: none; }
  .rc-theme .rc-tabs__tab { flex: 0 0 auto; white-space: nowrap; }
}

/* ---------- book a demo (/book-demo/, partials/page-book-demo.html) ---------------------- */
/* The hero carries the form: copy on the left, the WPForms card on the right (one column on
   a tablet and below, form after the copy). The form is WPForms 2237 in its "modern" markup,
   which reads its colours and sizes from --wpforms-* custom properties that the plugin sets
   on :root; redefining them on the card gives the fields and button the theme's look with
   no fight over the plugin's selectors, and the plugin's validation and AJAX are untouched. */
.rc-theme .rc-hero--demo .rc-hero__inner { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); align-items: start; gap: var(--rc-space-7); }
.rc-theme .rc-hero--demo .rc-hero__title { max-width: 16ch; }
.rc-theme .rc-hero--demo .rc-hero__lead { max-width: 36rem; }
.rc-theme .rc-demo__points { list-style: none; margin: var(--rc-space-5) 0 0; padding: 0; display: grid; gap: var(--rc-space-3); max-width: 36rem; }
.rc-theme .rc-demo__points li { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: var(--rc-space-3); align-items: start; font-size: var(--rc-text-md); color: var(--rc-color-text); }
.rc-theme .rc-demo__points .rc-icon { width: 44px; height: 44px; border-radius: 14px; margin: 0; }
.rc-theme .rc-demo__points .rc-icon svg { width: 22px; height: 22px; }
/* the "other audience" switch line under a hero (book a demo -> personal use; AT pricing -> personal pricing) */
.rc-theme .rc-switch { margin: var(--rc-space-5) 0 0; padding: var(--rc-space-3) var(--rc-space-4); border-left: 4px solid var(--rc-color-primary); background: rgba(255, 255, 255, 0.7); border-radius: 0 var(--rc-radius-sm) var(--rc-radius-sm) 0; font-size: var(--rc-text-sm); color: var(--rc-color-text-muted); max-width: 36rem; }
.rc-theme .rc-switch a { color: var(--rc-color-link); font-weight: 600; text-decoration: underline; text-underline-offset: 0.15em; }
.rc-theme .rc-demo__form { position: relative; z-index: 1; background: var(--rc-color-bg); border: 1px solid var(--rc-color-line); border-radius: var(--rc-radius-lg); padding: var(--rc-space-6); box-shadow: var(--rc-shadow-md); scroll-margin-top: var(--rc-space-6); }
.rc-theme .rc-demo__form-title { font-size: var(--rc-text-xl); font-weight: 800; line-height: var(--rc-leading-tight); margin: 0 0 var(--rc-space-2); }
.rc-theme .rc-demo__form-lead { margin: 0 0 var(--rc-space-5); color: var(--rc-color-text-muted); font-size: var(--rc-text-sm); }
.rc-theme .rc-demo__privacy { margin: var(--rc-space-4) 0 0; font-size: var(--rc-text-xs); color: var(--rc-color-text-muted); }
.rc-theme .rc-demo__privacy a { color: var(--rc-color-link); text-decoration: underline; text-underline-offset: 0.15em; }
/* the form's look: the plugin's variables, our values */
.rc-theme .rc-demo__form .wpforms-container-full {
  --wpforms-field-border-radius: var(--rc-radius-sm);
  --wpforms-field-border-size: 1.5px;
  --wpforms-field-border-color: var(--rc-color-line-strong, #C9BFDA);
  --wpforms-field-border-color-spare: var(--rc-color-line-strong, #C9BFDA);
  --wpforms-field-background-color: #fff;
  --wpforms-field-text-color: var(--rc-color-text);
  --wpforms-field-menu-color: #fff;
  --wpforms-field-size-input-height: 48px;
  --wpforms-field-size-input-spacing: 18px;
  --wpforms-field-size-font-size: 16px;
  --wpforms-field-size-line-height: 22px;
  --wpforms-field-size-padding-h: 14px;
  --wpforms-field-size-sublabel-spacing: 6px;
  --wpforms-label-color: var(--rc-color-text);
  --wpforms-label-sublabel-color: var(--rc-color-text-muted);
  --wpforms-label-error-color: #B42318;
  --wpforms-label-size-font-size: 15px;
  --wpforms-label-size-line-height: 20px;
  --wpforms-label-size-sublabel-font-size: 13px;
  --wpforms-label-size-sublabel-line-height: 18px;
  --wpforms-button-background-color: var(--rc-color-primary);
  --wpforms-button-border-color: var(--rc-color-primary);
  --wpforms-button-border-radius: 999px;
  --wpforms-button-border-style: none;
  --wpforms-button-text-color: #fff;
  --wpforms-button-size-font-size: 16px;
  --wpforms-button-size-height: 52px;
  --wpforms-button-size-padding-h: 28px;
  --wpforms-button-size-margin-top: 8px;
  --wpforms-container-padding: 0px;
  --wpforms-container-border-style: none;
  --wpforms-container-shadow-size-box-shadow: none;
  --wpforms-background-color: transparent;
  --wpforms-page-break-color: var(--rc-color-primary);
  margin: 0;
}
.rc-theme .rc-demo__form .wpforms-form .wpforms-field-label { font-weight: 700; }
.rc-theme .rc-demo__form .wpforms-form .wpforms-required-label { color: var(--rc-color-secondary); }
.rc-theme .rc-demo__form .wpforms-form .wpforms-field input:focus, .rc-theme .rc-demo__form .wpforms-form .wpforms-field select:focus, .rc-theme .rc-demo__form .wpforms-form .wpforms-field textarea:focus { outline: 3px solid var(--rc-color-primary); outline-offset: 1px; border-color: var(--rc-color-primary); }
.rc-theme .rc-demo__form .wpforms-form .wpforms-field textarea { min-height: 7.5rem; }
.rc-theme .rc-demo__form .wpforms-form button[type=submit] { width: 100%; font-weight: 700; letter-spacing: 0.01em; box-shadow: var(--rc-shadow-sm); }
.rc-theme .rc-demo__form .wpforms-form button[type=submit]:hover, .rc-theme .rc-demo__form .wpforms-form button[type=submit]:focus-visible { background: var(--rc-color-secondary); }
.rc-theme .rc-demo__form .wpforms-form button[type=submit]:focus-visible { outline: 3px solid var(--rc-color-primary); outline-offset: 3px; }
.rc-theme .rc-demo__form .wpforms-confirmation-container-full { background: var(--rc-color-primary-soft); border-left: 4px solid var(--rc-color-primary); border-radius: var(--rc-radius-sm); color: var(--rc-color-text); padding: var(--rc-space-4); }
.rc-theme .rc-demo__form .wpforms-confirmation-container-full p { margin: 0 0 var(--rc-space-2); }
.rc-theme .rc-demo__form .wpforms-error-container, .rc-theme .rc-demo__form .wpforms-error-noscript { color: #B42318; }
/* the preview's stand-in for the form (scripts/theme_preview.py, when the live snapshot cannot be fetched) */
.rc-theme .rc-demo__form-missing { padding: var(--rc-space-5); border: 2px dashed var(--rc-color-line); border-radius: var(--rc-radius-sm); color: var(--rc-color-text-muted); font-size: var(--rc-text-sm); text-align: center; }
.rc-theme .rc-demo__covers { margin-top: var(--rc-space-7); }
.rc-theme .rc-demo__covers .rc-card p { color: var(--rc-color-text-muted); }
.rc-theme .rc-demo__covers .rc-link { font-size: var(--rc-text-sm); }
@media (max-width: 1024px) {
  .rc-theme .rc-hero--demo .rc-hero__inner { grid-template-columns: 1fr; gap: var(--rc-space-6); }
  .rc-theme .rc-hero--demo .rc-hero__title { max-width: none; }
  .rc-theme .rc-demo__form { max-width: 36rem; }
}
@media (max-width: 767px) {
  .rc-theme .rc-demo__form { padding: var(--rc-space-5); }
}

/* ---------- Recallify AT pricing (/at-pricing/) --------------------------------------------- */
/* the price table and columns are the education page's components; this adds the band for
   service and cohort licences under the funding routes */
.rc-theme .rc-pricing__band { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--rc-space-4); margin-top: var(--rc-space-6); padding: var(--rc-space-5) var(--rc-space-6); background: var(--rc-color-primary-soft); border-radius: var(--rc-radius-lg); }
.rc-theme .rc-pricing__band h3 { font-size: var(--rc-text-lg); font-weight: 700; margin: 0 0 var(--rc-space-1); }
.rc-theme .rc-pricing__band p { margin: 0; color: var(--rc-color-text-muted); font-size: var(--rc-text-sm); max-width: 40rem; }
/* The one-to-five-year table: the box is a wrapper div (a table with border-radius and overflow
   paints its border around the caption too, which left the columns floating in a wider box);
   three equal columns filling the width, the numbers large, the VAT note below. */
.rc-theme .rc-at-pricing .rc-price-table__wrap { margin-top: var(--rc-space-5); max-width: 52rem; border: 1px solid var(--rc-color-line); border-radius: var(--rc-radius); overflow: hidden; box-shadow: var(--rc-shadow-sm); background: var(--rc-color-bg); }
.rc-theme .rc-at-pricing .rc-price-table--full { display: table; width: 100%; max-width: none; border: 0; border-radius: 0; box-shadow: none; table-layout: fixed; border-collapse: collapse; }
.rc-theme .rc-at-pricing .rc-price-table--full th, .rc-theme .rc-at-pricing .rc-price-table--full td { padding: var(--rc-space-4) var(--rc-space-5); vertical-align: middle; }
.rc-theme .rc-at-pricing .rc-price-table--full thead th { font-size: var(--rc-text-md); }
.rc-theme .rc-at-pricing .rc-price-table--full tbody th { font-size: var(--rc-text-md); }
.rc-theme .rc-at-pricing .rc-price-table--full td { font-size: var(--rc-text-2xl); font-weight: 800; color: var(--rc-color-secondary); }
.rc-theme .rc-at-pricing .rc-price-table__note { max-width: 52rem; margin: var(--rc-space-3) 0 0; font-size: var(--rc-text-xs); color: var(--rc-color-text-muted); }
@media (max-width: 767px) {
  .rc-theme .rc-at-pricing .rc-price-table--full th, .rc-theme .rc-at-pricing .rc-price-table--full td { padding: var(--rc-space-3) var(--rc-space-3); }
  .rc-theme .rc-at-pricing .rc-price-table--full td { font-size: var(--rc-text-lg); }
  .rc-theme .rc-at-pricing .rc-price-table--full thead th span { display: none; }
}

/* ---------- user stories (/users/, GENERATED partial from data/testimonials.yaml) ----- */
/* The testimonial grid after constanttherapyhealth.com/testimonials (18 Sep): equal cards,
   three per row, one per row on a phone; an opening quote mark, the quote, a short rule, then
   NAME and the relationship. Plain cards sit on the tint with no border so the grid reads as
   one surface; purple (brand gradient) and lilac cards break the rhythm where the YAML says. */
.rc-theme .rc-quotes__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--rc-space-5); }
.rc-theme .rc-quote { position: relative; display: flex; background: var(--rc-color-tint); border-radius: var(--rc-radius-lg); padding: var(--rc-space-6); min-height: 20rem; }
.rc-theme .rc-quote figure { display: flex; flex-direction: column; flex: 1 1 auto; margin: 0; }
.rc-theme .rc-quote blockquote { margin: 0; padding: 0; border: 0; font-style: normal; flex: 1 1 auto; }
/* the opening mark is the heavy serif "66" of the reference, not Inter's thin glyph */
.rc-theme .rc-quote blockquote::before { content: "\201C"; display: block; font-family: Georgia, "Times New Roman", serif; font-size: 4.5rem; line-height: 0.6; font-weight: 700; color: var(--rc-color-primary); margin-bottom: var(--rc-space-4); }
.rc-theme .rc-quote blockquote p { margin: 0; font-size: var(--rc-text-md); line-height: 1.55; color: var(--rc-color-text); }
.rc-theme .rc-quote__who { margin: var(--rc-space-5) 0 0; padding-top: var(--rc-space-3); border-top: 2px solid var(--rc-color-line); font-size: var(--rc-text-sm); color: var(--rc-color-text-muted); }
.rc-theme .rc-quote__who strong { color: var(--rc-color-text); font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; margin-right: 0.5em; }
.rc-theme .rc-quote--lilac { background: var(--rc-color-primary-soft); }
.rc-theme .rc-quote--purple { background: linear-gradient(135deg, var(--rc-color-secondary), var(--rc-color-primary)); }
.rc-theme .rc-quote--purple blockquote::before { color: rgba(255, 255, 255, 0.75); }
.rc-theme .rc-quote--purple blockquote p, .rc-theme .rc-quote--purple .rc-quote__who, .rc-theme .rc-quote--purple .rc-quote__who strong { color: #fff; }
.rc-theme .rc-quote--purple .rc-quote__who { border-top-color: rgba(255, 255, 255, 0.35); }
/* review mode: the card number top right and a dashed placeholder where the name goes;
   both disappear from the render once every card in the YAML is named */
.rc-theme .rc-quote__num { position: absolute; top: var(--rc-space-4); right: var(--rc-space-4); min-width: 2rem; height: 2rem; padding: 0 0.6em; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; background: #fff; color: var(--rc-color-secondary); border: 2px solid var(--rc-color-secondary); font-size: var(--rc-text-xs); font-weight: 800; }
.rc-theme .rc-quote--purple .rc-quote__num { background: transparent; color: #fff; border-color: rgba(255, 255, 255, 0.7); }
.rc-theme .rc-quote__who--todo { border-top-style: dashed; }
.rc-theme .rc-quote__who--todo em { display: block; margin-top: 0.2em; font-style: italic; font-size: var(--rc-text-xs); opacity: 0.85; }
.rc-theme .rc-quotes__mode { margin: calc(-1 * var(--rc-space-4)) 0 var(--rc-space-5); font-size: var(--rc-text-sm); color: var(--rc-color-secondary); background: var(--rc-color-primary-soft); border-left: 4px solid var(--rc-color-secondary); padding: var(--rc-space-2) var(--rc-space-3); max-width: 44rem; }
/* filmed stories: the reference's top row. A square poster tile, a play ring, NAME and the
   relationship over a scrim, "Watch"; the tile is a link to the video (works with no JS) that
   site.js turns into a <dialog> lightbox, so a portrait phone clip never stretches the grid */
.rc-theme .rc-films { padding-bottom: 0; }
.rc-theme .rc-films__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--rc-space-5); list-style: none; margin: 0; padding: 0; }
.rc-theme .rc-film { position: relative; }
.rc-theme .rc-film__open { position: relative; display: block; aspect-ratio: 1 / 1; border-radius: var(--rc-radius-lg); overflow: hidden; background: var(--rc-color-ink); color: #fff; text-decoration: none; box-shadow: var(--rc-shadow-md); isolation: isolate; }
.rc-theme .rc-film__poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform var(--rc-dur) var(--rc-ease); }
.rc-theme .rc-film__open::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(20, 10, 40, 0.88) 0%, rgba(20, 10, 40, 0.35) 38%, rgba(20, 10, 40, 0) 62%); }
.rc-theme .rc-film__play { position: absolute; top: 50%; left: 50%; z-index: 1; width: 72px; height: 72px; margin: -36px 0 0 -36px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--rc-color-primary); box-shadow: 0 12px 30px rgba(78, 19, 127, 0.35); transition: transform var(--rc-dur) var(--rc-ease), background var(--rc-dur) var(--rc-ease); }
.rc-theme .rc-film__play::after { content: ""; margin-left: 6px; border-style: solid; border-width: 12px 0 12px 21px; border-color: transparent transparent transparent #fff; }
.rc-theme .rc-film__who, .rc-theme .rc-film__cta { position: absolute; left: var(--rc-space-5); right: var(--rc-space-5); z-index: 1; color: #fff; }
.rc-theme .rc-film__who { bottom: calc(var(--rc-space-5) + 1.7em); font-size: var(--rc-text-sm); line-height: 1.3; }
.rc-theme .rc-film__who strong { font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; margin-right: 0.5em; }
.rc-theme .rc-film__cta { bottom: var(--rc-space-5); font-size: var(--rc-text-xs); font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.rc-theme .rc-film__cta::before { content: "\25B6"; font-size: 0.7em; margin-right: 0.5em; vertical-align: 0.1em; }
.rc-theme .rc-film__open:hover .rc-film__poster, .rc-theme .rc-film__open:focus-visible .rc-film__poster { transform: scale(1.04); }
.rc-theme .rc-film__open:hover .rc-film__play, .rc-theme .rc-film__open:focus-visible .rc-film__play { transform: scale(1.06); background: var(--rc-color-secondary); }
.rc-theme .rc-film__open:focus-visible { outline: 3px solid var(--rc-color-primary); outline-offset: 3px; }
/* --mock-videos render only: a held video's tile carries its reason and does not open */
.rc-theme .rc-film--mock .rc-film__open { outline: 3px dashed var(--rc-color-secondary); outline-offset: 3px; }
.rc-theme .rc-film__mock { position: absolute; top: var(--rc-space-3); left: var(--rc-space-3); right: var(--rc-space-3); z-index: 2; padding: 0.35em 0.6em; border-radius: var(--rc-radius-sm); background: #FFF4D6; color: #4A3A00; font-size: var(--rc-text-xs); font-weight: 700; line-height: 1.3; }
/* the lightbox: a 16:9 box, or a 9:16 one for a phone recording, on a dark backdrop;
   the player is created on open and removed on close (site.js) */
.rc-theme .rc-film-dialog { padding: 0; border: 0; border-radius: var(--rc-radius); background: #000; color: #fff; max-width: none; max-height: none; overflow: visible; box-shadow: var(--rc-shadow-lg); }
.rc-theme .rc-film-dialog::backdrop { background: rgba(10, 6, 24, 0.82); }
.rc-theme .rc-film-dialog__frame { width: min(92vw, 56rem); aspect-ratio: 16 / 9; border-radius: inherit; overflow: hidden; }
.rc-theme .rc-film-dialog--portrait .rc-film-dialog__frame { width: min(92vw, calc(min(85vh, 48rem) * 9 / 16)); aspect-ratio: 9 / 16; }
.rc-theme .rc-film-dialog__frame iframe, .rc-theme .rc-film-dialog__frame video { display: block; width: 100%; height: 100%; border: 0; background: #000; }
.rc-theme .rc-film-dialog__close { position: absolute; top: -2.9rem; right: 0; width: 2.4rem; height: 2.4rem; padding: 0; border: 0; border-radius: 50%; background: #fff; color: var(--rc-color-ink); font: 700 1.1rem/1 Inter, system-ui, sans-serif; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.rc-theme .rc-film-dialog__close:hover, .rc-theme .rc-film-dialog__close:focus-visible { background: var(--rc-color-primary-soft); color: var(--rc-color-primary); }
.rc-theme .rc-film-dialog__close:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
/* the three case studies: photo bleeding to the card's edges, condition label, title, summary */
.rc-theme .rc-stories { background: var(--rc-color-tint); }
.rc-theme .rc-story-card { display: flex; flex-direction: column; overflow: hidden; }
.rc-theme .rc-story-card__img { width: calc(100% + 2 * var(--rc-space-5)); max-width: none; margin: calc(-1 * var(--rc-space-5)) calc(-1 * var(--rc-space-5)) var(--rc-space-4); aspect-ratio: 3 / 2; object-fit: cover; }
.rc-theme .rc-story-card h3 { font-size: var(--rc-text-md); line-height: var(--rc-leading-snug); }
.rc-theme .rc-story-card p:not(.rc-card__label) { flex: 1 1 auto; }
@media (max-width: 1024px) {
  .rc-theme .rc-quotes__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--rc-space-4); }
  .rc-theme .rc-films__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--rc-space-4); }
  .rc-theme .rc-quote { padding: var(--rc-space-5); min-height: 0; }
}
@media (max-width: 767px) {
  .rc-theme .rc-quotes__grid { grid-template-columns: 1fr; }
  .rc-theme .rc-films__grid { grid-template-columns: 1fr; }
  .rc-theme .rc-film__play { width: 60px; height: 60px; margin: -30px 0 0 -30px; }
}

/* ---------- personal use (/personal-use/, the consumer landing; 18 Sep) ------------------ */
/* Hero badge trio: the App Store and Google Play images at their 200x60 size and the web app
   as a badge of the same footprint (the store-badge indigo, a purple globe), so the three
   read as one set, as the old hero's row did. */
/* A tall hero (copy plus the reel): the decorative shapes are sized to the copy, not to the
   whole section, so they stay a corner motif as on the other pages. */
.rc-theme .rc-hero--store {
  background:
    url("../img/hero-wave.svg") bottom center / 100% 160px no-repeat,
    url("../img/hero-shapes.svg") right top / auto 560px no-repeat,
    linear-gradient(90deg, #FFFFFF 0%, #FFFFFF 36%, #F8F5FC 52%, #F0E7F9 72%, #E8DBF6 100%);
}
.rc-theme .rc-hero--store .rc-hero__inner { align-items: start; }
.rc-theme .rc-video__caption a { color: var(--rc-color-link); text-decoration: underline; text-underline-offset: 0.15em; }
.rc-theme .rc-store-badges--hero { gap: var(--rc-space-4); margin-bottom: var(--rc-space-4); }
.rc-theme .rc-store-badges--hero img { width: 200px; height: 60px; display: block; }
.rc-theme .rc-store-badges--hero .rc-store-badges__web { width: 200px; height: 60px; min-height: 0; justify-content: flex-start; gap: 11px; padding: 0 14px; background: #0A082B; border: 1px solid #0A082B; border-radius: 9px; color: #fff; }
.rc-theme .rc-store-badges--hero .rc-store-badges__web:hover { background: #1A1640; }
.rc-theme .rc-store-badges--hero .rc-store-badges__web svg { width: 36px; height: 36px; fill: #B14DE0; flex: none; }
.rc-theme .rc-store-badges--hero .rc-store-badges__web span { display: flex; flex-direction: column; justify-content: center; line-height: 1.05; text-align: left; }
.rc-theme .rc-store-badges--hero .rc-store-badges__web small { font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; font-weight: 500; opacity: 0.92; }
.rc-theme .rc-store-badges--hero .rc-store-badges__web strong { font-size: 22px; font-weight: 600; letter-spacing: 0.01em; }
.rc-theme .rc-hero--store .rc-hero__note { margin-bottom: 0; }
.rc-theme .rc-hero--store .rc-hero__note a, .rc-theme .rc-hero--store .rc-hero__lead a { color: var(--rc-color-link); text-decoration: underline; text-underline-offset: 0.15em; }
/* The three data-protection marks as badges, the old page's size: a row of three, 200px wide,
   no label, no rule above. */
.rc-theme .rc-trust--badges { border: 0; padding: var(--rc-space-7) 0 var(--rc-space-5); }
.rc-theme .rc-trust--badges .rc-trust__logos { gap: var(--rc-space-6) var(--rc-space-8); }
.rc-theme .rc-trust--badges .rc-trust__logos img { height: auto; width: 200px; max-height: none; }
.rc-theme .rc-trust--badges .rc-trust__logos li:nth-child(2) img { width: 120px; }
@media (max-width: 767px) {
  .rc-theme .rc-trust--badges .rc-trust__logos img { width: 140px; }
  .rc-theme .rc-trust--badges .rc-trust__logos li:nth-child(2) img { width: 84px; }
}
.rc-theme .rc-cta__lead a { color: #fff; text-decoration: underline; text-underline-offset: 0.15em; }
/* The screenshot reel: the six store tiles in a row that scrolls and snaps; no script. */
/* The reel starts on the copy's left edge and runs off the right edge of the viewport, so the
   row reads as a strip to scroll rather than a grid clipped at the container. */
.rc-theme .rc-reel { display: flex; gap: var(--rc-space-4); list-style: none; margin: var(--rc-space-7) calc(50% - 50vw) 0 0; padding: var(--rc-space-2) var(--rc-gutter) var(--rc-space-4) 0; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-left: 0; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.rc-theme .rc-reel::-webkit-scrollbar { display: none; }
.rc-theme .rc-reel li { flex: 0 0 auto; width: clamp(180px, 17vw, 236px); scroll-snap-align: start; }
.rc-theme .rc-reel img { display: block; width: 100%; height: auto; border-radius: var(--rc-radius); box-shadow: var(--rc-shadow-md); }
/* Review marquee: three rows of store-review cards, each row's set duplicated once so the
   track loops seamlessly at -50%; paused on hover and focus; a static, scrollable row when
   the visitor prefers reduced motion. */
.rc-theme .rc-reviews__rows { display: grid; gap: var(--rc-space-4); -webkit-mask-image: linear-gradient(to right, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(to right, transparent, #000 6%, #000 94%, transparent); }
.rc-theme .rc-reviews__row { overflow: hidden; }
.rc-theme .rc-reviews__track { display: flex; width: max-content; animation: rc-marquee-left 90s linear infinite; }
.rc-theme .rc-reviews__row--right .rc-reviews__track { animation-name: rc-marquee-right; animation-duration: 100s; }
.rc-theme .rc-reviews__row:nth-child(3) .rc-reviews__track { animation-duration: 110s; }
.rc-theme .rc-reviews__row:hover .rc-reviews__track, .rc-theme .rc-reviews__row:focus-within .rc-reviews__track { animation-play-state: paused; }
.rc-theme .rc-reviews__set { display: flex; gap: var(--rc-space-4); list-style: none; margin: 0; padding: 0 var(--rc-space-4) 0 0; }
.rc-theme .rc-review { flex: 0 0 330px; display: flex; flex-direction: column; gap: var(--rc-space-2); background: var(--rc-color-bg); border: 1px solid var(--rc-color-line); border-radius: var(--rc-radius); padding: var(--rc-space-4) var(--rc-space-5); box-shadow: var(--rc-shadow-sm); }
.rc-theme .rc-review__store { display: inline-flex; align-items: center; gap: 0.4rem; margin: 0; font-size: var(--rc-text-xs); color: var(--rc-color-text-muted); }
.rc-theme .rc-review__stars { margin: 0; color: #F5A623; font-size: var(--rc-text-sm); letter-spacing: 0.1em; line-height: 1; }
.rc-theme .rc-review__title { font-size: var(--rc-text-md); font-weight: 700; margin: 0; }
.rc-theme .rc-review__text { margin: 0; font-size: var(--rc-text-sm); color: var(--rc-color-text); flex: 1 1 auto; display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }
.rc-theme .rc-review:hover .rc-review__text, .rc-theme .rc-review:focus-within .rc-review__text { -webkit-line-clamp: unset; }
.rc-theme .rc-review__meta { display: flex; justify-content: space-between; gap: var(--rc-space-3); margin-top: var(--rc-space-2); padding-top: var(--rc-space-2); border-top: 1px solid var(--rc-color-line); font-size: var(--rc-text-xs); color: var(--rc-color-text-muted); }
.rc-theme .rc-review__meta cite { font-style: normal; font-weight: 600; color: var(--rc-color-text); }
@keyframes rc-marquee-left { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes rc-marquee-right { from { transform: translateX(-50%); } to { transform: translateX(0); } }
@media (prefers-reduced-motion: reduce) {
  .rc-theme .rc-reviews__rows { mask-image: none; -webkit-mask-image: none; }
  .rc-theme .rc-reviews__row { overflow-x: auto; scrollbar-width: thin; }
  .rc-theme .rc-reviews__track { animation: none; }
  .rc-theme .rc-reviews__set[aria-hidden="true"] { display: none; }
}
/* Two phones side by side in a zig-zag art slot. */
.rc-theme .rc-zz__pair { position: relative; z-index: 1; display: flex; align-items: flex-end; justify-content: center; }
.rc-theme .rc-zz__pair img { width: 210px; max-width: 46%; height: auto; filter: drop-shadow(0 16px 28px rgba(78, 19, 127, 0.16)); }
.rc-theme .rc-zz__pair img + img { margin-left: -8%; transform: translateY(10%); }
.rc-theme .rc-uses .rc-zz__copy .rc-kicker { margin-bottom: var(--rc-space-3); }
.rc-theme .rc-uses .rc-zz__copy a { color: var(--rc-color-link); text-decoration: underline; text-underline-offset: 0.15em; }
.rc-theme .rc-features .rc-card h3 { font-size: var(--rc-text-md); }
@media (max-width: 767px) {
  .rc-theme .rc-store-badges--hero img, .rc-theme .rc-store-badges--hero .rc-store-badges__web { width: 160px; height: 48px; }
  .rc-theme .rc-store-badges--hero .rc-store-badges__web svg { width: 28px; height: 28px; }
  .rc-theme .rc-store-badges--hero .rc-store-badges__web strong { font-size: 18px; }
  .rc-theme .rc-reel { margin-top: var(--rc-space-5); }
  .rc-theme .rc-reel li { width: 62vw; }
  .rc-theme .rc-review { flex-basis: 280px; }
  .rc-theme .rc-zz__pair img { width: 150px; }
}

/* ---------- Elementor content on the old templates ------------------------------- */
/* The 46 posts and the frozen pages keep their Elementor widgets until the article wrapper
   is rebuilt (Phase 2). Until then the child theme restyles the widget that carries the most
   weight on every post: the nested accordion (each post's FAQ; the FAQPage JSON-LD beside it
   is a separate widget and is untouched). Elementor drives the accordion through its own CSS
   variables, so setting them here, at higher specificity than the per-post rules in
   post-<id>.css (.elementor-<id> .elementor-element.elementor-element-<hash>, three classes),
   gives every post the rc-accordion look without editing a single post. */
.rc-theme .elementor-widget-n-accordion.elementor-widget.elementor-element {
  --n-accordion-title-font-size: var(--rc-text-md);
  --n-accordion-title-flex-grow: 1;
  --n-accordion-item-title-flex-grow: 1;
  --n-accordion-title-justify-content: space-between;
  --n-accordion-title-icon-order: 1;
  --n-accordion-border-width: 0;
  --n-accordion-border-radius: 0;
  --n-accordion-item-title-space-between: 0px;
  --n-accordion-item-title-distance-from-content: 0px;
  --n-accordion-padding: var(--rc-space-4) 0;
  --n-accordion-icon-size: 12px;
  --n-accordion-icon-gap: 0 var(--rc-space-4);
  --n-accordion-title-normal-color: var(--rc-color-text);
  --n-accordion-title-hover-color: var(--rc-color-link);
  --n-accordion-title-active-color: var(--rc-color-text);
  --n-accordion-icon-normal-color: var(--rc-color-secondary);
  --n-accordion-icon-hover-color: var(--rc-color-secondary);
  --n-accordion-icon-active-color: var(--rc-color-secondary);
  font-family: var(--rc-font-sans);
}
.rc-theme .elementor-widget-n-accordion .e-n-accordion-item { border-top: 1px solid var(--rc-color-line); }
.rc-theme .elementor-widget-n-accordion .e-n-accordion-item:last-child { border-bottom: 1px solid var(--rc-color-line); }
.rc-theme .elementor-widget-n-accordion .e-n-accordion-item-title { font-family: var(--rc-font-sans); font-weight: 600; line-height: var(--rc-leading-snug); text-transform: none; letter-spacing: -0.01em; }
.rc-theme .elementor-widget-n-accordion .e-n-accordion-item-title-text { font-weight: 600; color: inherit; }
.rc-theme .elementor-widget-n-accordion .e-n-accordion-item-title-icon { flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--rc-color-primary-soft); justify-content: center; }
.rc-theme .elementor-widget-n-accordion .e-n-accordion-item-title-icon span { display: flex; align-items: center; justify-content: center; }
.rc-theme .elementor-widget-n-accordion .e-n-accordion-item > .e-con { --padding-block-start: 0; --padding-block-end: var(--rc-space-4); --padding-inline-start: 0; --padding-inline-end: 0; border: 0; }
.rc-theme .elementor-widget-n-accordion .e-n-accordion-item > .e-con .elementor-widget-text-editor { font-family: var(--rc-font-sans); color: var(--rc-color-text-muted); font-size: var(--rc-text-sm); line-height: var(--rc-leading-body); }
.rc-theme .elementor-widget-n-accordion .e-n-accordion-item > .e-con .elementor-widget-text-editor a { color: var(--rc-color-link); text-decoration: underline; text-underline-offset: 0.15em; }
.rc-theme .elementor-widget-n-accordion .e-n-accordion-item > .e-con > .elementor-widget:last-child { margin-bottom: 0; }
.rc-theme .elementor-widget-n-accordion .e-n-accordion-item > .e-con .elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* ---------- Elementor content on the old templates: type (18 Sep, after go-live) ------- */
/* The first half of the Phase 2 article wrapper: the kit's Helvetica-style purple headings and
   grey body text on every post and frozen page (FAQ, privacy, terms, accessibility, the
   assessments) take the theme's face and ink, sizes by heading level, theme links. Type and
   colour only, no layout; hand-built HTML widgets keep their own inner styles. The html
   prefix puts these one step above the per-page rules in post-<id>.css (four classes). */
html .rc-theme .elementor .elementor-widget-heading .elementor-heading-title,
html .rc-theme .elementor .elementor-widget-theme-post-title .elementor-heading-title { font-family: var(--rc-font-sans); color: var(--rc-color-text); font-weight: 700; letter-spacing: -0.01em; line-height: var(--rc-leading-tight); }
html .rc-theme .elementor .elementor-widget-heading h1.elementor-heading-title,
html .rc-theme .elementor .elementor-widget-theme-post-title h1.elementor-heading-title { font-size: var(--rc-text-3xl); font-weight: 800; letter-spacing: -0.02em; }
html .rc-theme .elementor .elementor-widget-heading h2.elementor-heading-title { font-size: var(--rc-text-2xl); }
html .rc-theme .elementor .elementor-widget-heading h3.elementor-heading-title { font-size: var(--rc-text-xl); }
html .rc-theme .elementor .elementor-widget-heading h4.elementor-heading-title,
html .rc-theme .elementor .elementor-widget-heading h5.elementor-heading-title,
html .rc-theme .elementor .elementor-widget-heading h6.elementor-heading-title { font-size: var(--rc-text-lg); }
html .rc-theme .elementor .elementor-widget-heading .elementor-heading-title a { color: inherit; }
html .rc-theme .elementor .elementor-widget-text-editor,
html .rc-theme .elementor .elementor-widget-text-editor p,
html .rc-theme .elementor .elementor-widget-text-editor li { font-family: var(--rc-font-sans); color: var(--rc-color-text); font-size: var(--rc-text-md); line-height: var(--rc-leading-body); }
html .rc-theme .elementor .elementor-widget-text-editor h2,
html .rc-theme .elementor .elementor-widget-text-editor h3,
html .rc-theme .elementor .elementor-widget-text-editor h4 { font-family: var(--rc-font-sans); color: var(--rc-color-text); font-weight: 700; line-height: var(--rc-leading-tight); }
html .rc-theme .elementor .elementor-widget-text-editor h2 { font-size: var(--rc-text-2xl); }
html .rc-theme .elementor .elementor-widget-text-editor h3 { font-size: var(--rc-text-xl); }
/* font: inherit, because the kit's `.elementor-kit-47 a` sets its own family, size and line-height
   on every link, which made in-body links render smaller than the sentence around them. */
html .rc-theme .elementor .elementor-widget-text-editor a { color: var(--rc-color-link); text-decoration: underline; text-underline-offset: 0.15em; font: inherit; }
html .rc-theme .elementor .elementor-widget-html { font-family: var(--rc-font-sans); }
/* Plain markup inside hand-built HTML widgets (the FAQ, privacy and terms pages): only elements
   without a class, so an assessment's own styled UI is left alone. */
html .rc-theme .elementor .elementor-widget-html h1:not([class]),
html .rc-theme .elementor .elementor-widget-html h2:not([class]),
html .rc-theme .elementor .elementor-widget-html h3:not([class]),
html .rc-theme .elementor .elementor-widget-html h4:not([class]) { font-family: var(--rc-font-sans); color: var(--rc-color-text); font-weight: 700; line-height: var(--rc-leading-tight); letter-spacing: -0.01em; }
html .rc-theme .elementor .elementor-widget-html h2:not([class]) { font-size: var(--rc-text-xl); }
html .rc-theme .elementor .elementor-widget-html h3:not([class]) { font-size: var(--rc-text-lg); }
html .rc-theme .elementor .elementor-widget-html p:not([class]),
html .rc-theme .elementor .elementor-widget-html li:not([class]) { font-family: var(--rc-font-sans); color: var(--rc-color-text); font-size: var(--rc-text-md); line-height: var(--rc-leading-body); }
html .rc-theme .elementor .elementor-widget-html p:not([class]) a:not([class]),
html .rc-theme .elementor .elementor-widget-html li:not([class]) a:not([class]) { color: var(--rc-color-link); text-decoration: underline; text-underline-offset: 0.15em; font: inherit; }
/* Room between the header and the first heading on the old templates. */
html .rc-theme:not(.rc-full) .site-content .ast-container { padding-top: var(--rc-space-6); }
/* The Elementor kit capitalises Every Word Of Every Heading (h1 to h6, site-wide). The markup
   is sentence case; show it as written (Berkan, 18 Sep). */
html .rc-theme .elementor h1, html .rc-theme .elementor h2, html .rc-theme .elementor h3,
html .rc-theme .elementor h4, html .rc-theme .elementor h5, html .rc-theme .elementor h6,
html .rc-theme .elementor .elementor-heading-title { text-transform: none; }

/* The old Customizer "Additional CSS" made every table display:block (a mobile fix for one
   post's comparison table) and forced 20px body text and 56/44/32px headings with !important
   on the Elementor widgets. That CSS is retired with the theme (delete it in Customize >
   Additional CSS); the one thing worth keeping, a wide table scrolling sideways on a phone,
   lives here scoped to Elementor content. */
html .rc-theme:not(.rc-full) .elementor .elementor-widget-text-editor table,
html .rc-theme:not(.rc-full) .elementor .elementor-widget-html table:not([class]) { display: block; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* Security and compliance (/security-and-compliance/, 18 Sep 2026): two-column facts on the
   pricing-cols grid, a retention table in the pricing table's frame with plain cells. */
.rc-theme .rc-security .rc-security__cols { margin-top: 0; align-items: start; }
.rc-theme .rc-security .rc-security__cols p { font-size: var(--rc-text-md); }
.rc-theme .rc-security .rc-security__cols .rc-section__title { margin-bottom: var(--rc-space-3); }
.rc-theme .rc-security .rc-security__list { margin: var(--rc-space-3) 0 var(--rc-space-4); padding-left: 1.2em; color: var(--rc-color-text-muted); font-size: var(--rc-text-md); }
.rc-theme .rc-security .rc-security__list li { margin-top: var(--rc-space-2); }
.rc-theme .rc-security .rc-security__list strong { color: var(--rc-color-text); font-weight: 700; }
.rc-theme .rc-security .rc-security__table { max-width: none; margin-top: var(--rc-space-2); }
.rc-theme .rc-security .rc-security__table td { font-size: var(--rc-text-sm); font-weight: 500; color: var(--rc-color-text-muted); }
.rc-theme .rc-security .rc-security__table tbody th { width: 42%; }
.rc-theme .rc-security .rc-security__note { margin-top: var(--rc-space-4); font-size: var(--rc-text-sm); color: var(--rc-color-text-muted); }
.rc-theme .rc-security .rc-features .rc-card h3 { font-size: var(--rc-text-lg); }
@media (max-width: 767px) {
  .rc-theme .rc-security .rc-security__cols { grid-template-columns: minmax(0, 1fr); gap: var(--rc-space-6); }
}

/* The "Get the app" funnel cards (scripts/components/app_download_cards.html; a copy sits in every
   post's and the FAQ's _elementor_data, with its own scoped <style>). Restyled from here in the
   theme's card look, at a specificity above the widget's own rules, so no post is edited: the same
   approach as the FAQ accordion. The badges are left as they are (the store PNGs and the web badge
   are the shared 200x60 set). */
html .rc-theme .recallify-app-cards { gap: var(--rc-space-4); padding: var(--rc-space-2) 0 var(--rc-space-6); }
html .rc-theme .recallify-app-cards .rac-card { background: var(--rc-color-bg); border: 1px solid var(--rc-color-line); border-radius: var(--rc-radius); padding: var(--rc-space-5); box-shadow: var(--rc-shadow-sm); }
html .rc-theme .recallify-app-cards .rac-title { font-family: var(--rc-font-sans); font-size: var(--rc-text-lg); font-weight: 700; line-height: var(--rc-leading-tight); letter-spacing: -0.01em; color: var(--rc-color-text); margin: 0 0 var(--rc-space-2); }
html .rc-theme .recallify-app-cards .rac-body,
html .rc-theme .elementor .elementor-widget-html .recallify-app-cards .rac-body p { font-family: var(--rc-font-sans); color: var(--rc-color-text-muted); font-size: var(--rc-text-sm); line-height: var(--rc-leading-body); }
html .rc-theme .recallify-app-cards .rac-body { margin-bottom: var(--rc-space-4); }

/* Article measure (Phase 2 article wrapper, first step, 18 Sep 2026). Posts are full-width
   Elementor canvases, so body text ran to about 130 characters a line. On single posts the
   prose widgets (text, headings, the FAQ accordion, plain HTML) sit in a 46rem column; images,
   the funnel cards and any HTML widget with its own layout keep the container width. */
html .rc-theme.single-post .elementor .elementor-widget-text-editor,
html .rc-theme.single-post .elementor .elementor-widget-heading,
html .rc-theme.single-post .elementor .elementor-widget-n-accordion,
html .rc-theme.single-post .elementor .elementor-widget-html:not(:has([class])) { max-width: 46rem; margin-left: auto; margin-right: auto; }
html .rc-theme.single-post .elementor .elementor-widget-text-editor h2 { font-size: var(--rc-text-xl); margin-top: var(--rc-space-5); }
html .rc-theme.single-post .elementor .elementor-widget-text-editor h3 { font-size: var(--rc-text-lg); }

/* Single posts: the meta strip above the canvas and the related row after it (inc/posts.php).
   The strip sits on the same 46rem column as the prose; the row takes the canvas width. */
.rc-theme .rc-post__head { max-width: 1140px; margin: 0 auto; padding: var(--rc-space-3) var(--rc-gutter) 0; }
.rc-theme .rc-post__meta { max-width: 46rem; margin: 0 auto; display: flex; flex-wrap: wrap; align-items: center; gap: var(--rc-space-2) var(--rc-space-3); font-size: var(--rc-text-sm); color: var(--rc-color-text-muted); }
.rc-theme .rc-post__kicker { font-size: var(--rc-text-xs); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--rc-color-secondary); text-decoration: none; }
.rc-theme .rc-post__kicker:hover { text-decoration: underline; }
.rc-theme .rc-post__cat { display: inline-block; padding: 0.2em 0.7em; border-radius: 999px; background: var(--rc-color-primary-soft); color: var(--rc-color-secondary); font-size: var(--rc-text-xs); font-weight: 700; text-decoration: none; }
.rc-theme .rc-post__cat:hover { background: var(--rc-color-primary); color: #fff; }
.rc-theme .rc-post__meta time, .rc-theme .rc-post__read, .rc-theme .rc-post__updated { white-space: nowrap; }
.rc-theme .rc-post__meta > :not(:first-child):not(.rc-post__cat)::before { content: "\00b7"; margin-right: var(--rc-space-3); color: var(--rc-color-line-strong, var(--rc-color-line)); }
.rc-theme .rc-post__related { max-width: 1140px; margin: var(--rc-space-8) auto var(--rc-space-6); padding: var(--rc-space-7) var(--rc-gutter) 0; border-top: 1px solid var(--rc-color-line); }
html .rc-theme .rc-post__cards { margin: 0; padding: 0; list-style: none; }
.rc-theme .rc-post__related-head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--rc-space-4); margin-bottom: var(--rc-space-5); }
html .rc-theme .rc-post__related-head h2 { font-family: var(--rc-font-sans); color: var(--rc-color-text); font-size: var(--rc-text-xl); font-weight: 700; line-height: var(--rc-leading-tight); letter-spacing: -0.01em; margin: 0; text-transform: none; }
.rc-theme .rc-post__card { display: flex; flex-direction: column; overflow: hidden; }
.rc-theme .rc-post__card-img { display: block; width: calc(100% + 2 * var(--rc-space-5)); max-width: none; height: auto; margin: calc(-1 * var(--rc-space-5)) calc(-1 * var(--rc-space-5)) var(--rc-space-4); aspect-ratio: 3 / 2; object-fit: cover; }
.rc-theme .rc-post__card-img--none { background: var(--rc-color-primary-soft); }
html .rc-theme .rc-post__card h3 { font-family: var(--rc-font-sans); color: var(--rc-color-text); font-size: var(--rc-text-md); font-weight: 700; line-height: var(--rc-leading-snug); text-transform: none; margin: 0; flex: 1 1 auto; }
html .rc-theme .rc-post__card h3 a { color: var(--rc-color-text); text-decoration: none; font: inherit; }
html .rc-theme .rc-post__related .rc-link { font: inherit; font-weight: 600; color: var(--rc-color-link); }
.rc-theme .rc-post__card time { font-size: var(--rc-text-xs); color: var(--rc-color-text-muted); margin-top: var(--rc-space-3); }
@media (max-width: 767px) {
  .rc-theme .rc-post__cards { grid-template-columns: minmax(0, 1fr); }
  .rc-theme .rc-post__meta > ::before { display: none; }
}

/* ---------- guides and news (/news/ and /category/<slug>/, 19 Sep 2026) ---------------- */
/* The hub and the category archives are one set of components rendered by inc/news.php:
   the category chips, a lead card for the newest post and a grid of the same card the
   related row on a post uses (.rc-post__card). Until 19 Sep /news/ was Elementor's Posts
   widget, restyled from here; it is no longer rendered while the mode is on, and no other
   page carries that widget, so its rules went with the rebuild. */
/* White, because a category archive keeps whatever background Astra gives its blog. */
.rc-theme .rc-news { background: var(--rc-color-bg); }
.rc-theme .rc-news__filters { padding: var(--rc-space-5) 0; border-bottom: 1px solid var(--rc-color-line); }
.rc-theme .rc-chips { display: flex; flex-wrap: wrap; gap: var(--rc-space-2); list-style: none; margin: 0; padding: 0; }
.rc-theme .rc-chip {
  display: inline-flex; align-items: center; gap: 0.5em; min-height: 40px; padding: 0.35em 0.95em;
  border: 1px solid var(--rc-color-line); border-radius: 999px; background: var(--rc-color-bg);
  color: var(--rc-color-text); font-size: var(--rc-text-sm); font-weight: 600; text-decoration: none;
  transition: background-color var(--rc-dur) var(--rc-ease), border-color var(--rc-dur) var(--rc-ease), color var(--rc-dur) var(--rc-ease);
}
.rc-theme .rc-chip:hover, .rc-theme .rc-chip:focus-visible { border-color: var(--rc-color-primary); background: var(--rc-color-primary-soft); color: var(--rc-color-secondary); }
.rc-theme .rc-chip.is-active { background: var(--rc-color-secondary); border-color: var(--rc-color-secondary); color: #fff; }
.rc-theme .rc-chip__count { font-size: var(--rc-text-xs); font-weight: 600; color: var(--rc-color-text-muted); }
.rc-theme .rc-chip:hover .rc-chip__count, .rc-theme .rc-chip:focus-visible .rc-chip__count { color: var(--rc-color-secondary); }
.rc-theme .rc-chip.is-active .rc-chip__count { color: var(--rc-color-on-ink-accent); }
.rc-theme .rc-eyebrow a { color: inherit; text-decoration: none; }
.rc-theme .rc-eyebrow a:hover, .rc-theme .rc-eyebrow a:focus-visible { text-decoration: underline; }

/* the newest post across the page: image beside the summary, the whole card clickable */
.rc-theme .rc-news__latest { padding: var(--rc-space-7) 0 0; }
.rc-theme .rc-news__latest-title,
.rc-theme .rc-news__list-title { font-size: var(--rc-text-xs); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--rc-color-text-muted); margin: 0 0 var(--rc-space-4); }
.rc-theme .rc-news__lead { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 0; padding: 0; overflow: hidden; }
.rc-theme .rc-news__lead-media { display: block; height: 100%; }
.rc-theme .rc-news__lead-img { display: block; width: 100%; height: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.rc-theme .rc-news__lead-body { display: flex; flex-direction: column; justify-content: center; padding: var(--rc-space-6); }
html .rc-theme .rc-news__lead h3 { font-family: var(--rc-font-sans); font-size: var(--rc-text-xl); font-weight: 700; line-height: var(--rc-leading-snug); letter-spacing: -0.01em; color: var(--rc-color-text); margin: 0 0 var(--rc-space-3); }
html .rc-theme .rc-news__lead h3 a { color: inherit; font: inherit; text-decoration: none; }
.rc-theme .rc-news__lead-summary { font-size: var(--rc-text-md); color: var(--rc-color-text-muted); margin: 0 0 var(--rc-space-4); }
.rc-theme .rc-news__lead-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--rc-space-3); font-size: var(--rc-text-sm); color: var(--rc-color-text-muted); margin: 0; }

/* the grid: the related row's card, in rows of three */
.rc-theme .rc-news__list { padding-top: var(--rc-space-6); }
html .rc-theme .rc-news__grid { margin: 0; padding: 0; list-style: none; gap: var(--rc-space-5); }
.rc-theme .rc-news__empty { font-size: var(--rc-text-md); color: var(--rc-color-text-muted); }

/* pagination: archives only (the hub lists everything) */
.rc-theme .rc-pagination { padding: 0 0 var(--rc-space-8); }
html .rc-theme .rc-pagination ul { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--rc-space-2); list-style: none; margin: 0; padding: 0; }
.rc-theme .rc-pagination .page-numbers {
  display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px;
  padding: 0 0.75em; border: 1px solid var(--rc-color-line); border-radius: var(--rc-radius-sm);
  font-size: var(--rc-text-sm); font-weight: 600; color: var(--rc-color-text); text-decoration: none;
}
.rc-theme .rc-pagination a.page-numbers:hover, .rc-theme .rc-pagination a.page-numbers:focus-visible { border-color: var(--rc-color-primary); background: var(--rc-color-primary-soft); color: var(--rc-color-secondary); }
.rc-theme .rc-pagination .page-numbers.current { background: var(--rc-color-secondary); border-color: var(--rc-color-secondary); color: #fff; }
.rc-theme .rc-pagination .page-numbers.dots { border-color: transparent; }

@media (max-width: 767px) {
  .rc-theme .rc-news__lead { grid-template-columns: minmax(0, 1fr); }
  .rc-theme .rc-news__lead-body { padding: var(--rc-space-5); }
}
