/* Kay & Co.: blue and white foundations with the logo's orange accent. */
:root {
  --orange: #FF5C1A;
  --orange-hover: #F04E0D;
  --orange-soft: #FFF1E9;
  --display: var(--font);
  --radius: 12px;
  --radius-sm: 8px;
}

/* Retain the colour of each light or dark section while unifying its type. */
:root body :is(h1, h2, h3, h4) {
  font-family: var(--font);
  font-weight: 700;
  letter-spacing: -.04em;
  line-height: 1.18;
  text-transform: none;
  overflow-wrap: break-word;
}
h1 { font-size: clamp(2.3rem, 5vw, 4.5rem); }
h2 { font-size: clamp(1.8rem, 3vw, 3rem); }
h3 { font-size: clamp(1.25rem, 2vw, 1.7rem); }
:root body :is(h3, h4) { letter-spacing: -.025em; line-height: 1.35; }
:root body :is(h1, h2, h3):has(.gradient-text, .accent-blue) { line-height: 1.3; }
:root body .site-search-result h2 { line-height: 1.4; }
.digital-page h2 { font-size: clamp(1.9rem, 3.6vw, 3.3rem); }
.digital-intro h1, .page-hero h1, .article__header h1, .site-search-hero h1 {
  max-width: 23ch;
  font-size: clamp(2.25rem, 4.8vw, 4.5rem);
}
.hero__title, .digital-hero h1 { font-size: clamp(2.4rem, 4.8vw, 4.6rem); max-width: 20ch; }
.article__body h2, .knowledge-article h2 { font-size: clamp(1.5rem, 2.6vw, 2.15rem); }
.article__body h3, .knowledge-article h3 { font-size: clamp(1.2rem, 2vw, 1.5rem); }
.article__body blockquote { text-transform: none; font-size: clamp(1.2rem, 2vw, 1.6rem); line-height: 1.6; max-width: 38ch; }
.knowledge-toc h2 { font-size: 1rem; }
.post__body h2, .post__body h3 { font-size: clamp(1.4rem, 2.3vw, 2rem); max-width: none; }
.read-next__card h3, .res-item h3 { font-size: clamp(1.2rem, 1.8vw, 1.5rem); }
.card h3, .digital-service h3, .digital-deliverables h3 { font-size: clamp(1.4rem, 2.5vw, 2rem); }
.digital-problems h3, .digital-sector-grid h3 { font-size: clamp(1.3rem, 2.1vw, 1.7rem); }
.digital-steps h3 { font-size: 1.35rem; }
.case-study-card__main h3 { font-size: clamp(2rem, 3.7vw, 3.5rem); }
.cta h2 { font-size: clamp(2rem, 4vw, 4rem); max-width: 23ch; }
.stat__num { font-size: clamp(3.2rem, 6vw, 6rem); font-weight: 700; line-height: 1.05; }
.faq__q { font-size: clamp(1rem, 1.5vw, 1.2rem); font-weight: 600; text-transform: none; line-height: 1.5; }
.planner-heading h2, .checker-intro h2, .checker-promo h2 { font-size: clamp(1.9rem, 3.4vw, 3.3rem); }
.planner-result h3, .checker-shell [data-checker-result] > h3 { font-size: clamp(1.5rem, 2.5vw, 2rem); }
.planner-priorities h4 { font-size: 1.2rem; }
[data-library-page] .library-hero h1 { font-size: clamp(2.15rem, 4.3vw, 4rem); line-height: 1.15; }
.library-section-heading h2, .library-all h2, .site-search-start h2 { font-size: clamp(1.6rem, 2.6vw, 2.5rem); }
.eyebrow { letter-spacing: .12em; }
.eyebrow::before, .docband .eyebrow::before { background: var(--orange); }
.knowledge-cta { border-top-color: var(--orange); }
[data-library-page] .resource-search { border-top-color: var(--orange); }

/* A quiet, solid masthead stays legible above every page colour. */
.nav, .nav.scrolled {
  background: #fff;
  border-bottom: 1px solid var(--blue);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.nav__logo { font-size: 1.1rem; }
.nav .logo-wordmark { color: var(--blue); }
.nav__links a { color: var(--blue); font-size: .88rem; font-weight: 600; }
.nav__links a:hover, .nav__links a.active { color: var(--accent-deep); }
.nav__links a:not(.btn)::after { height: 2px; }
.nav__links a.btn-primary, .nav__links a.btn-primary:visited { color: #0C1622; background: var(--orange); border-color: var(--orange); box-shadow: none; }
.nav__links a.btn-primary:hover { background: var(--orange-hover); border-color: var(--orange-hover); }
.nav__dropdown { border-radius: 8px; box-shadow: 0 12px 32px rgba(12, 22, 34, .1); }
.nav__dropdown a { min-height: 44px; }
.nav__search { color: var(--blue); border-radius: 8px; border-color: var(--line-strong); font-size: .85rem; }
.nav__burger span { background: var(--blue); }
.btn { min-height: 44px; border-radius: 8px; }
.btn-primary, .btn-primary:hover { box-shadow: none; }
.btn:hover { transform: none; }
.btn:active { transform: translateY(1px); }

/* The shared footer is a useful directory with a distinctly Kay & Co. finish. */
.footer {
  background: var(--ink-2);
  color: #fff;
  border-top: 4px solid var(--orange);
  padding-top: clamp(3rem, 6vw, 5rem);
}
.footer__strap { border-bottom-color: rgba(255, 255, 255, .2); gap: .75rem 1.3rem; }
.footer__strap span { color: #fff; font-size: clamp(.85rem, 1.3vw, 1rem); font-weight: 500; text-transform: none; letter-spacing: 0; }
.footer__strap .dot { width: 5px; height: 5px; background: var(--accent); }
.footer__grid { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1.5fr) minmax(0, 1.1fr) minmax(0, 1.1fr) minmax(0, 1.1fr); gap: 2rem; }
.footer .logo-wordmark, .footer .nav__logo { color: #fff; }
.footer .logo-mark { background: #fff; border-radius: 5px; padding: 2px; }
.footer__brand p, .footer ul a, .footer__muted, .footer__bottom p, .footer__email { color: #b9cbdc; }
.footer__brand p { font-size: .9rem; line-height: 1.8; }
.footer .footer__title, .footer h4 { color: #fff; font-size: .8rem; font-weight: 600; line-height: 1.5; letter-spacing: 0; text-transform: none; }
.footer ul { gap: .25rem; }
.footer ul a { display: inline-flex; align-items: center; min-height: 44px; font-size: .86rem; line-height: 1.6; overflow-wrap: anywhere; }
.footer ul a:hover, .footer__email:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.footer__big { color: #fff; text-transform: none; font-weight: 700; font-size: clamp(2.9rem, 12vw, 11rem); line-height: 1.1; letter-spacing: -.075em; }
.footer__big .amp { color: var(--accent); }
.footer__bottom { border-top-color: rgba(255, 255, 255, .2); align-items: baseline; }
.footer__bottom p { font-size: .75rem; line-height: 1.7; }
.footer__email { display: inline-flex; align-items: center; min-height: 44px; }
.footer :focus-visible { outline-color: #fff; box-shadow: 0 0 0 2px var(--ink-2); }

@media (max-width: 980px) {
  .footer__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .nav.menu-open { background: #fff; backdrop-filter: none; -webkit-backdrop-filter: none; }
  .nav__links { background: #fff; backdrop-filter: none; -webkit-backdrop-filter: none; }
  .nav__links a { font-size: 1.35rem; font-weight: 600; text-transform: none; line-height: 1.4; min-height: 44px; display: inline-flex; align-items: center; }
  .nav__dropdown a { display: flex; justify-content: center; font-size: .9rem; letter-spacing: 0; text-transform: none; }
  .nav__links a.btn-primary { font-size: .95rem; }
  .nav__cta { width: min(82vw, 360px); }
  .nav.menu-open .logo-wordmark { color: var(--blue); }
  .nav.menu-open .nav__burger span { background: var(--blue); }
}
@media (max-width: 560px) {
  .footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 1rem; }
  .footer__strap { gap: .6rem; }
  .footer__strap span { font-size: .78rem; }
  .footer__bottom { align-items: flex-start; flex-direction: column; gap: .6rem; }
}
@media (prefers-reduced-motion: reduce) {
  .btn:active { transform: none; }
}
