/* Shared readable colours and interaction states. Keep layout and URLs intact. */
.skip-link {
  position: fixed;
  top: 8px;
  left: 8px;
  z-index: 2147483647;
  padding: 14px 20px;
  color: #081b3a;
  background: #fff;
  transform: translateY(-180%);
  clip-path: inset(50%);
}
.skip-link:focus { transform: none; clip-path: none; }
#main-content, [id] { scroll-margin-top: 110px; }
.nav-toggle { display: none; }
.legal-layout > * { min-width: 0; }
.legal-article { overflow-wrap: anywhere; }
.entry-content img, .page-content img { max-width: 100%; height: auto; }
.kit-digital-caption { font-size: 12px; line-height: 1.6; text-align: center; margin: 0 auto 16px; max-width: 840px; }
.field label { font-size: 14px; }
/* Reveal effects must never hide keyboard focus. */
.reveal:focus-within { opacity: 1; filter: none; transform: none; }
.service-card-stack.keyboard-flow .service-stack-card-grid {
  position: relative;
  top: auto;
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .reveal, .pain-item { opacity: 1 !important; transform: none !important; filter: none !important; }
}
@media (max-width: 980px) {
  #nav.has-accessible-menu, #nav.has-accessible-menu > .wrap {
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
  }
  #nav .nav-toggle {
    display: block;
    margin-left: auto;
    min-height: 44px;
    padding: 8px 14px;
    border: 1px solid #64748b;
    border-radius: 8px;
    background: #fff;
    color: #081b3a;
    font: inherit;
    cursor: pointer;
  }
  #nav.has-accessible-menu .nav-links { display: none; }
  #nav.has-accessible-menu.menu-open .nav-links {
    display: flex;
    flex: 0 0 100%;
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
    max-height: 65vh;
    overflow: auto;
    margin: 0;
    padding: 8px;
    background: #fff;
    color: #081b3a;
  }
  #nav.has-accessible-menu.menu-open .nav-links > a {
    display: block !important;
    min-height: 44px;
    padding: 12px;
    white-space: normal;
  }
}
:root {
  --ink-50: #536078;
  --ink-52: #536078;
  --ink-30: #59677b;
  --ink-32: #59677b;
  --purple: #6740d7;
  --a11y-link: #5931bf;
  --a11y-success: #15703b;
  --a11y-error: #b42318;
}
.service-page {
  --svc-ink-50: #536078;
  --svc-purple: #6740d7;
}

/* Home-specific final review; leave interior colour choices unchanged. */
body.home { --a11y-success: #15803d; --a11y-link: #6440e6; }
body.home .cta-final .btn:hover,
body.home .cta-final .btn:focus-visible { color: var(--ink); }
body.home p a,
body.home p a:hover,
body.home p a:focus-visible { text-decoration-line: underline; }
body.home .field input,
body.home .field select,
body.home .field textarea,
body.home .field input:focus,
body.home .field select:focus,
body.home .field textarea:focus {
  border: 1px solid #64748b;
}
body.home .field input:focus-visible,
body.home .field select:focus-visible,
body.home .field textarea:focus-visible {
  outline: 3px solid #081b3a;
  outline-offset: 4px;
  box-shadow: 0 0 0 4px #fff;
}

/* Inline links remain recognisable without colour, including rich-text blocks. */
:is(p, li, dd, figcaption, blockquote, .help, .form-note, .consent-check,
    .legal-panel, .article-body, .entry-content, .wp-block-paragraph) a:not(.btn):not(.button):not(.wp-element-button) {
  text-decoration-line: underline;
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.18em;
  text-decoration-skip-ink: auto;
}
:is(p, li, dd, figcaption, blockquote, .help, .form-note, .consent-check,
    .legal-panel, .article-body, .entry-content) a:hover {
  text-decoration-thickness: 0.14em;
}
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, summary:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid #081b3a;
  outline-offset: 4px;
  box-shadow: 0 0 0 4px #fff;
}
:is(nav, footer) a:hover, :is(nav, footer) a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.post-link, .back-link, .bridge-link, .cmplz-link {
  text-decoration: underline;
  text-underline-offset: 0.18em;
}
.category-pill.is-active, .sidebar-link.is-active {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

/* Secondary text must stay readable, also on tinted form/card surfaces. */
.field label, .form-header, .help, .form-note { color: #536078; }
.hero-card .delta, .form-header .status, .form-note.is-ok { color: var(--a11y-success); }
.form-note.is-error { color: var(--a11y-error); }
.consent-check a { color: var(--a11y-link); }
.pain-item { opacity: 1; }
.pain-item .idx { color: #536078; }
.form-card .form-header .status { color: var(--a11y-success); }
footer .brand-wordmark > span:nth-child(2) { color: #c5cfdf; }
.topic-cluster-card.is-current { opacity: 1; }
.topic-cluster-card > span, .topic-cluster-card > em,
.raznar-breadcrumbs { color: #536078; }
.newsletter-card .newsletter-form .help { color: #536078; }
.subscribe-shell .newsletter-form .help { color: #e6ecf5; }
.subscribe-shell .form-note.is-error { color: #ffbbb3; }
.avatar, .testi .avatar {
  background: linear-gradient(135deg, #6740d7, #a43d00);
  color: #fff;
}
.hero .hero-copy h1 span.grad {
  background-image: linear-gradient(135deg, #6740d7, #a43d00);
}
.focal-chip { z-index: 1; }
.hero-card .bar-row .bar:nth-child(2),
.hero-card .bar-row .bar:nth-child(5) { background: #8060ce; }
.hero-card .bar-row .bar:nth-child(4),
.hero-card .bar-row .bar:nth-child(6) { background: #a43d00; }
.result .mini-viz { opacity: 1; }
.result .mini-viz text { fill: #536078; opacity: 1; }
.result .mini-viz rect[fill="#081B3A"] { fill: #536078; opacity: 1; }
.result .mini-viz path[stroke="#FF7A30"] { stroke: #a43d00; }
.result .mini-viz circle[fill="#FF7A30"] { fill: #a43d00; }

/* A visible boundary and readable placeholder for every editable field. */
input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=range]),
select, textarea {
  color: #081b3a;
  background-color: #fff;
  border-color: #64748b;
}
input::placeholder, textarea::placeholder { color: #536078; opacity: 1; }
input[type=checkbox], input[type=radio] { accent-color: #6740d7; }
button:disabled, input:disabled, select:disabled, textarea:disabled {
  opacity: 1;
  color: #536078;
  background: #e7ebf2;
}

/* The cookie component is shared across all templates. */
.cmplz-cookiebanner .cmplz-message { color: #34425b !important; }
.cmplz-cookiebanner .cmplz-link { text-decoration: underline !important; }
.cmplz-cookiebanner .cmplz-btn:focus-visible {
  outline: 3px solid #081b3a !important;
  outline-offset: 4px !important;
}
