/* Inner pages drawn by the Sentosa plugin (About and the pages after it). Loads after home.css on those pages only
   and uses its tokens, so the homepage never sees these rules. */

/* ---------- Shared ---------- */
.sh-body .sh-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.sh-nav-list a[aria-current="page"], .sh-nav-list .sh-nav-in-section > a, .sh-mobile-menu a[aria-current="page"] { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }
.sh-closing-eyebrow { color: rgba(255, 255, 255, 0.6); margin-bottom: 16px; }
/* The theme's scroll-to-top button prints its markup even though its styles are removed on these pages. */
.sh-inner #ast-scroll-top { display: none; }

/* Tokens from the Next.js site: the cream band and a monospace face for numbers and small labels (system fonts,
   so no extra download). */
.sh-inner { --sh-cream: #f5f2eb; --sh-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }

/* Links in running text */
.sh-inner .sh-textlink { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; transition: opacity 0.2s; }
.sh-inner .sh-textlink:hover { opacity: 0.7; }

/* Section heading block, and the two-column split most sections use: heading on the left, content on the right.
   On desktop the left column stays in view while the right column scrolls past it. */
.sh-sec-head { max-width: 680px; margin-bottom: 56px; }
.sh-sec-eyebrow { color: var(--sh-text-2); margin-bottom: 16px; }
.sh-inner .sh-sec-intro { margin-top: 16px; font-size: 16px; line-height: 1.55; }
.sh-split { display: grid; gap: 40px; }
.sh-split .sh-sec-head { margin-bottom: 0; }
@media (min-width: 900px) {
  .sh-split { grid-template-columns: minmax(0, 400px) minmax(0, 1fr); gap: 96px; }
  .sh-split > :first-child { position: sticky; top: calc(var(--sh-header-h) + 32px); align-self: start; }
}
@media (max-width: 809px) { .sh-inner .sh-section { padding-block: 72px; } .sh-sec-head { margin-bottom: 40px; } }

/* Dark bands */
.sh-inner .sh-dark { background: #0f0f0f; color: #fff; }
.sh-inner .sh-dark .sh-sec-eyebrow, .sh-inner .sh-dark .sh-muted { color: rgba(255, 255, 255, 0.72); }

/* ---------- Page hero: light and centred, like the company page of the Next.js site ---------- */
.sh-phero { background: #fff; color: var(--sh-ink); padding-top: calc(var(--sh-header-h) + 104px); }
.sh-phero-copy { max-width: 760px; margin-inline: auto; text-align: center; }
.sh-phero-eyebrow { color: var(--sh-text-2); margin-bottom: 18px; }
.sh-phero .sh-t-hero { font-size: 64px; max-width: 720px; margin-inline: auto; }
.sh-inner .sh-phero-lead { margin: 24px auto 0; max-width: 520px; font-size: 15px; line-height: 1.5; color: var(--sh-text-2); text-wrap: pretty; }
.sh-phero-actions { margin-top: 32px; display: flex; justify-content: center; }
.sh-phero-media { margin-top: 64px; }
.sh-phero-media img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; object-position: center 60%; border-radius: 8px; }
.sh-phero-logos { padding-top: 56px; }
.sh-phero .sh-logos-label { color: var(--sh-text-2); }
.sh-phero .sh-marquee-track img { filter: brightness(0); opacity: 0.55; }
@media (max-width: 809px) {
  .sh-phero { padding-top: calc(var(--sh-header-h) + 48px); }
  .sh-phero .sh-t-hero { font-size: 44px; }
  .sh-phero-media { margin-top: 40px; }
  .sh-phero-media img { aspect-ratio: 4 / 3; }
  .sh-phero-logos { padding-top: 40px; }
}
.sh-inner .sh-btn-dark { background: var(--sh-ink); color: #fff; }
.sh-inner .sh-btn-dark:hover { background: #333; }

/* Header over the light hero: dark text, dark logo and a dark button until the page scrolls (or the menu opens),
   when it becomes the same dark bar as on the homepage. */
.sh-logo-on-light { display: none; }
.sh-inner:not(.sh-page-dark):not(.sh-page-darkhero) .sh-header:not(.sh-header-scrolled):not(.sh-header-open) { color: var(--sh-ink); }
.sh-inner:not(.sh-page-dark):not(.sh-page-darkhero) .sh-header:not(.sh-header-scrolled):not(.sh-header-open) .sh-logo img { display: none; }
.sh-inner:not(.sh-page-dark):not(.sh-page-darkhero) .sh-header:not(.sh-header-scrolled):not(.sh-header-open) .sh-logo .sh-logo-on-light { display: block; }
.sh-inner:not(.sh-page-dark):not(.sh-page-darkhero) .sh-header:not(.sh-header-scrolled):not(.sh-header-open) .sh-nav-cta { background: var(--sh-ink); color: #fff; }
.sh-inner:not(.sh-page-dark):not(.sh-page-darkhero) .sh-header:not(.sh-header-scrolled):not(.sh-header-open) :focus-visible { outline-color: var(--sh-ink); }

/* ---------- Two brands, one group: labelled facts and a paragraph ---------- */
.sh-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; max-width: 440px; }
.sh-fact-label { font-family: var(--sh-mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--sh-text-2); }
.sh-fact-values { display: grid; gap: 4px; margin-top: 12px; font-size: 14px; }
.sh-inner .sh-mission-body { margin-top: 32px; max-width: 720px; font-size: 15px; line-height: 1.6; color: #3a3a3a; }

/* ---------- Brand cards: white cards on the cream band ---------- */
.sh-bcards { background: var(--sh-cream); }
.sh-bcards-title { max-width: 520px; }
.sh-bcards-grid { display: grid; gap: 16px; margin-top: 48px; }
@media (min-width: 810px) { .sh-bcards-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.sh-bcard { padding: 32px; background: #fff; border: 1px solid rgba(0, 0, 0, 0.06); }
.sh-bcard-name { font-family: var(--sh-serif); font-weight: 400; font-size: 32px; line-height: 1.1; letter-spacing: -0.03em; }
.sh-bcard-tagline { margin-top: 6px; font-size: 14px; color: var(--sh-text-2); }
.sh-bcard-label { margin-top: 24px; font-family: var(--sh-mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; }
.sh-bcard-label + .sh-bcard-list { margin-top: 8px; }
.sh-bcard-list + .sh-bcard-label { margin-top: 20px; }
.sh-bcard-yes { color: #137a52; }
.sh-bcard-no { color: #c23a2c; }
.sh-bcard-list { display: grid; gap: 4px; font-size: 14px; }
.sh-bcard-list li::before { content: "\00B7\00A0"; }

/* ---------- How the team is built: numbered rows ---------- */
.sh-rows-list { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--sh-line); }
.sh-row { display: grid; gap: 8px; padding-block: 24px; border-bottom: 1px solid var(--sh-line); }
@media (min-width: 810px) { .sh-row { grid-template-columns: 80px 200px minmax(0, 1fr); gap: 32px; align-items: baseline; } }
.sh-row-num { font-family: var(--sh-mono); font-size: 12px; color: var(--sh-text-2); }
.sh-row-label { font-family: var(--sh-sans); font-weight: 500; font-size: 16px; line-height: 1.4; letter-spacing: -0.02em; }
.sh-row-text { font-size: 14px; line-height: 1.6; color: #5f5f5f; }

/* ---------- Join: two-tone heading, paragraph and button, wide photo ---------- */
.sh-join { padding-top: 32px; }
.sh-join-grid { display: grid; gap: 32px; }
@media (min-width: 900px) { .sh-join-grid { grid-template-columns: minmax(0, 480px) minmax(0, 1fr); gap: 96px; } }
.sh-join-muted { display: block; color: var(--sh-muted); }
.sh-inner .sh-join-body { max-width: 520px; font-size: 15px; line-height: 1.6; color: #3a3a3a; }
.sh-join-actions { margin-top: 24px; display: flex; flex-wrap: wrap; gap: 12px; }
.sh-join-media { margin-top: 80px; }
.sh-join-media img { width: 100%; height: auto; aspect-ratio: 3024 / 1192; object-fit: cover; border-radius: 8px; }
@media (max-width: 809px) { .sh-join-media { margin-top: 48px; } .sh-join-media img { aspect-ratio: 16 / 9; } }

/* ---------- Dark pages (Board and its profiles): the colours of the Next.js /board page ---------- */
.sh-page-dark { background: #1b1f1e; color: #fff; }
.sh-page-dark :focus-visible { outline-color: #fff; }
.sh-page-dark .sh-phero { background: transparent; color: #fff; padding-bottom: 64px; }
.sh-page-dark .sh-phero .sh-t-hero { font-size: 80px; max-width: 640px; }
.sh-inner.sh-page-dark .sh-phero-lead { font-size: 16px; color: rgba(255, 255, 255, 0.7); }
.sh-page-dark .sh-sec-eyebrow, .sh-page-dark .sh-muted { color: rgba(255, 255, 255, 0.62); }
@media (max-width: 809px) { .sh-page-dark .sh-phero .sh-t-hero { font-size: 48px; } }

/* Board and its profiles: a dark hero over a white page (Chris, 2 Oct) */
.sh-page-darkhero .sh-phero { background: var(--sh-ink); color: #fff; padding-bottom: 96px; }
.sh-page-darkhero .sh-phero .sh-t-hero { font-size: 80px; max-width: 640px; }
.sh-inner.sh-page-darkhero .sh-phero-lead { font-size: 16px; color: rgba(255, 255, 255, 0.75); }
.sh-body .sh-page-darkhero .sh-phero :focus-visible, .sh-page-darkhero .sh-phero :focus-visible { outline-color: #fff; }
@media (max-width: 809px) { .sh-page-darkhero .sh-phero { padding-bottom: 64px; } .sh-page-darkhero .sh-phero .sh-t-hero { font-size: 48px; } }
.sh-page-darkhero .sh-phero .sh-btn-dark { background: #fff; color: var(--sh-ink); }
.sh-page-darkhero .sh-phero .sh-btn-dark:hover { background: #ededed; }
.sh-page-darkhero .sh-phero .sh-logos-label { color: rgba(255, 255, 255, 0.6); }
.sh-page-darkhero .sh-phero .sh-marquee-track img { filter: brightness(0) invert(1); opacity: 0.8; }

/* Hero second link, and the side-by-side hero: the text on the left, a square photo on the right (Who we serve) */
.sh-phero-actions { gap: 12px; flex-wrap: wrap; }
.sh-phero .sh-btn-ghost { color: var(--sh-ink); border-color: rgba(0, 0, 0, 0.15); }
.sh-phero .sh-btn-ghost:hover { background: rgba(0, 0, 0, 0.05); }
.sh-page-darkhero .sh-phero .sh-btn-ghost { color: #fff; border-color: rgba(255, 255, 255, 0.3); }
.sh-page-darkhero .sh-phero .sh-btn-ghost:hover { background: rgba(255, 255, 255, 0.1); }
@media (min-width: 900px) {
  .sh-phero-split > .sh-container { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 80px; align-items: center; }
  .sh-phero-split .sh-phero-copy { margin: 0; text-align: left; }
  .sh-phero-split .sh-t-hero, .sh-inner .sh-phero-split .sh-phero-lead { margin-inline: 0; }
  .sh-phero-split .sh-phero-actions { justify-content: flex-start; }
  .sh-phero-split .sh-phero-media { margin-top: 0; }
  .sh-phero-split .sh-phero-media img { aspect-ratio: 1; object-position: center; }
}

/* Members, in the style of the previous Board page: Board members / Meet the board, then cards with a square
   portrait, the short role in capitals, the name, the tenure line, and Read bio with LinkedIn. */
.sh-inner .sh-members { padding-block: 96px; }
.sh-members-head { margin-bottom: 48px; }
.sh-members-eyebrow { margin-bottom: 16px; color: var(--sh-text-2); }
.sh-members-title { letter-spacing: -0.035em; }
.sh-mgrid { list-style: none; padding: 0; margin: 0; display: grid; gap: 48px 32px; }
@media (min-width: 810px) { .sh-mgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.sh-mcard { display: flex; flex-direction: column; }
.sh-mcard-photo { position: relative; display: flex; align-items: center; justify-content: center; aspect-ratio: 1; overflow: hidden; border-radius: 4px; background: var(--sh-warm); }
.sh-mcard-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s cubic-bezier(0.23, 1, 0.32, 1); }
@media (hover: hover) and (pointer: fine) { a.sh-mcard-photo:hover img { transform: scale(1.03); } }
.sh-mcard-initials { font-family: var(--sh-serif); font-size: 72px; color: rgba(0, 0, 0, 0.3); }
.sh-mcard-role { margin-top: 24px; font-size: 12px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: var(--sh-text-2); }
.sh-mcard-name { margin-top: 8px; font-family: var(--sh-serif); font-weight: 400; font-size: 32px; line-height: 1.1; letter-spacing: -0.03em; }
.sh-mcard-name a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.sh-mcard-tenure { margin-top: 8px; font-size: 15px; line-height: 1.5; color: var(--sh-text-2); }
.sh-mcard-foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: auto; padding-top: 16px; border-top: 1px solid var(--sh-line); }
.sh-mcard-tenure + .sh-mcard-foot, .sh-mcard-name + .sh-mcard-foot { margin-top: 20px; }
.sh-mcard-bio { display: inline-flex; align-items: center; gap: 6px; font-size: 15px; font-weight: 500; color: var(--sh-ink); }
.sh-mcard-bio:hover { text-decoration: underline; text-underline-offset: 4px; }
.sh-mcard-li { display: inline-flex; color: var(--sh-text-2); transition: color 0.2s; }
.sh-mcard-li:hover { color: var(--sh-ink); }
@media (max-width: 809px) { .sh-inner .sh-members { padding-block: 64px; } .sh-mcard-name { font-size: 28px; } }

/* A small line above the heading of a call to action */
.sh-cta-eyebrow { margin-bottom: 16px; color: var(--sh-text-2); }

/* Centred paragraphs */
.sh-prose { padding-block: 40px; }
.sh-prose-inner { max-width: 580px; margin-inline: auto; }
.sh-prose-p { font-size: 16px; line-height: 1.5; color: var(--sh-text-2); }
.sh-prose-p + .sh-prose-p { margin-top: 24px; }

/* Numbered squares (also the credential numbers on a profile) */
.sh-squares-section { padding-block: 64px 128px; }
.sh-squares-section .sh-split { padding-top: 64px; border-top: 1px dashed rgba(0, 0, 0, 0.15); }
.sh-squares { list-style: none; padding: 0; margin: 0; display: grid; gap: 48px 32px; }
@media (min-width: 600px) { .sh-squares { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .sh-squares { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.sh-square-num { display: flex; width: 36px; height: 36px; align-items: center; justify-content: center; border: 1px dashed rgba(0, 0, 0, 0.2); font-family: var(--sh-mono); font-size: 11px; color: var(--sh-text-2); }
.sh-square p { margin-top: 20px; font-size: 15px; line-height: 1.5; color: var(--sh-text-2); }
.sh-square strong { display: block; margin-bottom: 6px; font-weight: 500; color: var(--sh-ink); }
.sh-squares-actions { margin-top: 64px; }

/* Profile page: the name, role and portrait on a dark band, the biography and the rest of the board on white */
.sh-profile { padding-top: calc(var(--sh-header-h) + 96px); padding-bottom: 72px; background: var(--sh-ink); color: #fff; }
.sh-profile :focus-visible { outline-color: #fff; }
.sh-profile-grid { display: grid; gap: 40px; align-items: end; }
@media (min-width: 900px) { .sh-profile-grid { grid-template-columns: minmax(0, 1fr) 360px; gap: 96px; } }
.sh-profile-label { margin-bottom: 18px; color: rgba(255, 255, 255, 0.7); }
.sh-profile-role { margin-top: 20px; font-size: 18px; color: rgba(255, 255, 255, 0.85); }
.sh-profile-appointed { margin-top: 8px; font-family: var(--sh-mono); font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; color: rgba(255, 255, 255, 0.65); }
.sh-profile-photo { margin-top: 0; background: #2a2f2d; }
.sh-inner .sh-profile-bio { padding-block: 96px 64px; }
.sh-profile-p { font-size: 16px; line-height: 1.65; color: var(--sh-text-2); }
.sh-profile-p + .sh-profile-p { margin-top: 20px; }
.sh-cred-title { margin-top: 48px; font-family: var(--sh-serif); font-weight: 400; font-size: 26px; letter-spacing: -0.03em; }
.sh-creds { list-style: none; padding: 0; margin: 24px 0 0; display: grid; gap: 20px; }
.sh-cred-item { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 16px; align-items: center; }
.sh-cred-item p { font-size: 14px; line-height: 1.5; color: var(--sh-ink); }
.sh-inner .sh-profile-others { padding-block: 64px 128px; border-top: 1px solid var(--sh-line); }
.sh-profile-others > .sh-container > .sh-t-h3 { margin-bottom: 40px; }
.sh-profile-all { margin-top: 32px; font-size: 14px; font-weight: 500; }
@media (max-width: 809px) { .sh-profile { padding-top: calc(var(--sh-header-h) + 48px); } .sh-inner .sh-profile-bio { padding-block: 64px 48px; } }


/* Service pages (AI SEO): the sizes of the Next.js /ai-search page */
.sh-phero .sh-t-hero:has(.sh-rotate) { font-size: 92px; line-height: 0.95; letter-spacing: -0.05em; max-width: none; }
.sh-rotate { display: grid; justify-items: center; }
.sh-phero-copy:has(.sh-rotate) .sh-phero-lead { max-width: 560px; font-size: 20px; line-height: 1.4; letter-spacing: -0.02em; }
@media (max-width: 809px) { .sh-phero-copy:has(.sh-rotate) .sh-phero-lead { font-size: 18px; } }
.sh-page-surface { --sh-forest-deep: #1a2a25; }
.sh-page-surface .sh-phero .sh-t-hero, .sh-page-surface .sh-cta .sh-t-display { color: var(--sh-forest-deep); }
.sh-page-surface, .sh-page-surface .sh-phero { background: var(--sh-surface); }
.sh-rotate-word { grid-area: 1 / 1; opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity 0.3s, transform 0.3s, visibility 0s 0.3s; }
.sh-rotate-word.is-active { opacity: 1; visibility: visible; transform: none; transition: opacity 0.3s, transform 0.3s; }
.sh-rotate-word.is-active.is-leaving { opacity: 0; transform: translateY(8px); }
@media (prefers-reduced-motion: reduce) { .sh-rotate-word { transition: none; } }
@media (max-width: 809px) { .sh-phero .sh-t-hero:has(.sh-rotate) { font-size: 56px; } }

.sh-lgrid { padding-block: 80px 160px; }
.sh-lgrid-label { text-align: center; font-size: 14px; line-height: 1.5; letter-spacing: -0.02em; color: var(--sh-muted); }
.sh-lgrid-tiles { list-style: none; padding: 0; margin: 32px 0 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
@media (min-width: 810px) { .sh-lgrid-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.sh-lgrid-tile { display: flex; height: 140px; align-items: center; justify-content: center; padding: 16px; border-radius: 6px; background: var(--sh-warm); }
.sh-lgrid-tile[hidden] { display: none; }
.sh-lgrid-tile img { --sh-s: 1; height: calc(30px * var(--sh-s)); width: auto; max-width: 180px; object-fit: contain; filter: brightness(0); opacity: 0.42; }
.sh-lgrid-actions { margin-top: 24px; display: flex; justify-content: center; }
.sh-lgrid-more { padding: 10px 18px; border: 1px solid rgba(0, 0, 0, 0.1); border-radius: 6px; background: #fff; color: var(--sh-ink); font-family: var(--sh-sans); font-size: 14px; font-weight: 500; letter-spacing: -0.02em; cursor: pointer; transition: background-color 0.2s; }
.sh-lgrid-more:hover { background: var(--sh-warm); }
@media (max-width: 809px) { .sh-lgrid { padding-block: 64px 96px; } .sh-lgrid-tile { height: 100px; } .sh-lgrid-tile img { height: calc(22px * var(--sh-s)); max-width: 124px; } }

.sh-inner .sh-manifesto { padding-block: 0 128px; }
.sh-manifesto .sh-t-h3 { font-size: 36px; letter-spacing: -0.04em; }
.sh-manifesto .sh-split-body { max-width: 640px; }
.sh-manifesto-p { font-family: var(--sh-serif); font-size: 24px; line-height: 1.3; letter-spacing: -0.02em; color: var(--sh-ink); }
.sh-manifesto-p + .sh-manifesto-p { margin-top: 24px; }

.sh-inner .sh-igrid { padding-block: 0 128px; }
.sh-igrid-heading { max-width: 520px; text-wrap: balance; letter-spacing: -0.05em; }
.sh-igrid-list { list-style: none; padding: 0; margin: 48px 0 0; display: grid; gap: 48px 32px; }
@media (min-width: 810px) { .sh-igrid-list { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.sh-igrid-item { padding-top: 24px; border-top: 1px solid var(--sh-line); }
.sh-igrid-num { font-family: var(--sh-mono); font-size: 12px; color: var(--sh-text-2); }
.sh-igrid-title { margin-top: 16px; font-family: var(--sh-sans); font-weight: 500; font-size: 22px; line-height: 1.1; letter-spacing: -0.02em; }
.sh-igrid-body { margin-top: 12px; font-size: 14px; line-height: 1.5; letter-spacing: -0.02em; color: var(--sh-text-2); }

.sh-inner .sh-markets { padding-block: 0 128px; }
.sh-markets-label { font-family: var(--sh-serif); font-size: 24px; letter-spacing: -0.02em; color: var(--sh-ink); }
.sh-markets-line { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 8px 24px; font-family: var(--sh-serif); font-size: 56px; line-height: 1; letter-spacing: -0.04em; }
.sh-market-muted { color: #b3b3b3; }
.sh-mkrows { list-style: none; padding: 0; margin: 40px 0 0; border-top: 1px solid var(--sh-line); }
.sh-mkrow { display: grid; gap: 32px; padding-block: 40px; border-bottom: 1px solid var(--sh-line); }
@media (min-width: 810px) { .sh-mkrow { grid-template-columns: minmax(0, 768px) minmax(0, 1fr); gap: 64px; } .sh-mkrow.sh-mkrow-textonly { grid-template-columns: minmax(0, 1fr); } }
.sh-mkrow-media { margin: 0; aspect-ratio: 768 / 500; overflow: hidden; border-radius: 4px; background: #1d2230; }
.sh-mkrow-media img { width: 100%; height: 100%; object-fit: cover; }
.sh-mkrow-text { display: flex; flex-direction: column; justify-content: center; }
.sh-mkrow-kind { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--sh-text-2); }
.sh-mkrow-lines { margin-top: 16px; font-family: var(--sh-serif); font-size: 32px; line-height: 1.25; letter-spacing: -0.03em; color: var(--sh-ink); }
.sh-mkrow-lines span { display: block; }
/* Without any pictures, the rows sit side by side as three text columns. */
@media (min-width: 810px) { .sh-mkrows:not(:has(.sh-mkrow-media)) { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 32px; } }
@media (max-width: 809px) { .sh-markets-line { font-size: 40px; } .sh-mkrow-lines { font-size: 28px; } }

.sh-inner .sh-quotes { padding-block: 0 128px; }
.sh-quotes-title { max-width: 560px; margin-inline: auto; text-align: center; text-wrap: balance; font-family: var(--sh-serif); font-weight: 400; font-size: 48px; line-height: 1.05; letter-spacing: -0.05em; }
.sh-quotes-grid { list-style: none; padding: 0; margin: 64px 0 0; display: grid; gap: 16px; }
@media (min-width: 810px) { .sh-quotes-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.sh-qcard { display: flex; min-height: 300px; }
.sh-quote { display: flex; width: 100%; flex-direction: column; justify-content: space-between; gap: 32px; margin: 0; padding: 24px; border: 1px solid rgba(0, 0, 0, 0.06); border-radius: 4px; background: #fff; }
.sh-quote-text { margin: 0; font-family: var(--sh-serif); font-size: 22px; line-height: 1.25; letter-spacing: -0.02em; color: var(--sh-ink); }
.sh-quote-by { display: grid; gap: 2px; font-size: 12px; }
.sh-quote-name { font-weight: 500; color: var(--sh-ink); }
.sh-quote-role { color: var(--sh-text-2); }
@media (max-width: 809px) { .sh-quotes-title { font-size: 36px; } .sh-quotes-grid { margin-top: 40px; } .sh-qcard { min-height: 0; } }

.sh-inner .sh-cta { padding-block: 0 128px; text-align: center; }
/* After the white FAQ the band starts fresh, so the heading needs the same room above it (Chris, 15 Oct). */
.sh-inner .sh-faq + .sh-cta { padding-top: 128px; }
.sh-cta .sh-t-display { font-size: 64px; line-height: 1; letter-spacing: -0.05em; text-wrap: balance; }
.sh-cta-actions { margin-top: 32px; display: flex; justify-content: center; }
@media (max-width: 809px) { .sh-cta .sh-t-display { font-size: 44px; } }

/* Services overview: the sizes of the Next.js /services page */
.sh-prhero { padding-top: calc(var(--sh-header-h) + 128px); }
.sh-prhero .sh-t-hero { max-width: 760px; letter-spacing: -0.05em; text-wrap: balance; }
.sh-prhero-lead { margin: 20px auto 0; max-width: 520px; font-size: 14px; line-height: 1.5; letter-spacing: -0.02em; color: var(--sh-text-2); }
.sh-prhero-actions { margin-top: 32px; display: flex; justify-content: center; }
.sh-bracket { position: relative; }
.sh-bracket::before, .sh-bracket::after { content: ""; position: absolute; width: 10px; height: 10px; border: 0 solid var(--sh-ink); transition: transform 0.2s; }
.sh-bracket::before { top: -12px; left: -18px; border-top-width: 1.5px; border-left-width: 1.5px; }
.sh-bracket::after { bottom: -12px; right: -18px; border-bottom-width: 1.5px; border-right-width: 1.5px; }
.sh-bracket:hover::before { transform: translate(4px, 4px); }
.sh-bracket:hover::after { transform: translate(-4px, -4px); }
.sh-prhero-media { position: relative; margin-top: 64px; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 6px; background: var(--sh-ink); }
@media (min-width: 810px) { .sh-prhero-media { aspect-ratio: 1280 / 440; } }
.sh-prhero-media > img, .sh-prhero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.sh-prhero-grid { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(4, 1fr); }
.sh-prhero-grid span { border-right: 1px solid rgba(255, 255, 255, 0.2); }
.sh-prhero-grid::after { content: ""; position: absolute; inset: 50% 0 auto; height: 1px; background: rgba(255, 255, 255, 0.2); }
.sh-prhero-prompt { position: absolute; top: 50%; left: 50%; width: min(540px, 88%); transform: translate(-50%, -50%); padding: 12px; border-radius: 8px; background: rgba(255, 255, 255, 0.95); box-shadow: 0 8px 40px rgba(0, 0, 0, 0.18); text-align: left; }
.sh-prhero-text { min-height: 24px; padding-inline: 4px; font-size: 13px; line-height: 24px; color: var(--sh-ink); }
.sh-prhero-prompt.is-typing .sh-prhero-text::after { content: ""; display: inline-block; width: 1px; height: 1em; margin-left: 2px; vertical-align: -0.15em; background: currentColor; animation: sh-caret 1s steps(1) infinite; }
@keyframes sh-caret { 50% { opacity: 0; } }
.sh-prhero-bar { margin-top: 24px; display: flex; align-items: center; justify-content: space-between; }
.sh-prhero-clip { color: var(--sh-muted); }
.sh-prhero-send { display: flex; width: 28px; height: 28px; align-items: center; justify-content: center; border-radius: 6px; background: #0f2822; color: #fff; }

.sh-inner .sh-statement { padding-block: 96px 80px; }
.sh-statement-text { max-width: 1000px; font-family: var(--sh-serif); font-size: 44px; line-height: 1.05; letter-spacing: -0.05em; }
.sh-statement-muted { color: var(--sh-muted); }
@media (max-width: 809px) { .sh-statement-text { font-size: 34px; } }

.sh-inner .sh-scards { padding-block: 0 112px; }
.sh-scards-title { max-width: 560px; letter-spacing: -0.05em; text-wrap: balance; }
.sh-scards-list { list-style: none; padding: 0; margin: 56px 0 0; display: grid; gap: 32px; }
@media (min-width: 810px) { .sh-scards-list { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
/* Four cards (the SEO page): two across, then four across on wide screens, like /services. */
@media (min-width: 810px) { .sh-scards-list:has(> li:nth-child(4)) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .sh-scards-list:has(> li:nth-child(4)) { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.sh-scard { position: relative; }
.sh-scard-media { display: flex; aspect-ratio: 922 / 1040; align-items: center; justify-content: center; overflow: hidden; border-radius: 4px; background: #0f2822; color: rgba(255, 255, 255, 0.72); }
.sh-scard-media img { width: 100%; height: 100%; object-fit: cover; }
.sh-scard-title { margin-top: 32px; font-family: var(--sh-serif); font-weight: 400; font-size: 26px; line-height: 1.15; letter-spacing: -0.03em; }
.sh-scard-title a::after { content: ""; position: absolute; inset: 0; }
.sh-scard:hover .sh-scard-title a { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.sh-scard-body { margin-top: 12px; font-size: 14px; line-height: 1.5; letter-spacing: -0.02em; color: var(--sh-text-2); }

.sh-inner .sh-ptabs { padding-block: 0 128px; }
.sh-ptabs-grid { display: grid; gap: 40px; }
@media (min-width: 810px) { .sh-ptabs-grid { grid-template-columns: minmax(0, 768px) minmax(0, 1fr); gap: 48px; } }
.sh-ptabs-panels { position: relative; aspect-ratio: 768 / 470; overflow: hidden; border-radius: 6px; background: var(--sh-ink); }
.sh-ptabs-panel { position: absolute; inset: 0; display: flex; align-items: center; animation: sh-fade-up 0.6s cubic-bezier(0.2, 0.7, 0.2, 1) both; }
.sh-ptabs-panel[hidden] { display: none; }
.sh-ptabs-panel img { width: 100%; height: 100%; object-fit: cover; }
@keyframes sh-fade-up { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
.sh-ptabs-chips { list-style: none; padding: 32px; margin: 0; display: flex; flex-wrap: wrap; align-content: center; gap: 8px; }
.sh-ptabs-chips li { display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: 4px; background: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06); font-size: 12px; color: var(--sh-ink); }
.sh-ptabs-chips li::before { content: ""; width: 6px; height: 6px; border-radius: 1px; background: #0f2822; }
.sh-ptabs-side { display: flex; flex-direction: column; justify-content: space-between; }
.sh-ptabs-title { font-family: var(--sh-serif); font-weight: 400; font-size: 28px; line-height: 1.15; letter-spacing: -0.03em; }
.sh-ptabs-list { margin-top: 40px; display: flex; flex-direction: column; gap: 8px; }
.sh-ptab { display: flex; width: 100%; align-items: center; gap: 16px; padding: 8px 12px; border: 0; border-radius: 6px; background: transparent; color: var(--sh-text-2); font-family: var(--sh-sans); font-size: 16px; text-align: left; cursor: pointer; transition: background-color 0.2s, color 0.2s; }
.sh-ptab:hover { color: var(--sh-ink); }
.sh-ptab[aria-selected="true"] { background: var(--sh-surface); color: var(--sh-ink); }
.sh-ptab-num { display: flex; width: 36px; height: 36px; flex-shrink: 0; align-items: center; justify-content: center; border: 1px solid var(--sh-line); border-radius: 50%; font-size: 12px; }
.sh-ptab[aria-selected="true"] .sh-ptab-num { border-color: var(--sh-ink); }
@media (max-width: 809px) { .sh-ptabs-title { font-size: 26px; } .sh-ptabs-chips { padding: 20px; } }
@media (prefers-reduced-motion: reduce) { .sh-ptabs-panel { animation: none; } }

.sh-inner .sh-capgrid { padding-block: 0 128px; }
.sh-capgrid .sh-t-h3 { letter-spacing: -0.05em; }
.sh-capgrid-body { margin-top: 16px; max-width: 680px; font-size: 14px; line-height: 1.5; letter-spacing: -0.02em; color: var(--sh-text-2); }
.sh-capgrid-list { list-style: none; padding: 0; margin: 48px 0 0; display: grid; gap: 16px; }
@media (min-width: 810px) { .sh-capgrid-list { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.sh-cap { display: flex; height: 80px; align-items: center; gap: 16px; padding-inline: 16px; border: 1px solid rgba(0, 0, 0, 0.06); background: #fafafa; }
.sh-cap-icon { display: flex; width: 48px; height: 48px; flex-shrink: 0; align-items: center; justify-content: center; border-radius: 4px; background: #ececec; color: #3a3a3a; }
.sh-cap-name { font-family: var(--sh-serif); font-size: 20px; letter-spacing: -0.01em; color: #171717; }

.sh-inner .sh-fcards { padding-block: 0 128px; }
.sh-fcards .sh-t-h3 { letter-spacing: -0.05em; }
.sh-fcards-muted { display: block; color: var(--sh-muted); }
.sh-fcards-list { list-style: none; padding: 0; margin: 56px 0 0; display: grid; gap: 16px; }
.sh-fcards-list + .sh-fcards-list { margin-top: 16px; }
/* Photo cards side by side 50/50, then the icon cards in a row of their own (Chris, 2 Oct). */
@media (min-width: 810px) { .sh-fcards-photos, .sh-fcards-icons { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .sh-fcards-icons { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
/* Icon cards: a small icon above the title and cards as tall as their text (Chris, 9 Oct: the big icon boxes looked
   clunky and took a lot of space, above all on a phone). */
.sh-fcards-icons .sh-fcard { min-height: 0; justify-content: flex-start; gap: 12px; padding: 24px; }
.sh-fcards-icons .sh-fcard-title { font-size: 20px; }
.sh-fcards-icons .sh-fcard-art { order: -1; flex: none; justify-content: flex-start; padding: 0 0 8px; }
.sh-fcards-icons .sh-fcard-icon { width: 44px; height: 44px; border-radius: 10px; }
.sh-fcards-icons .sh-fcard-icon svg { width: 22px; height: 22px; }
.sh-fcard { display: flex; min-height: 420px; flex-direction: column; justify-content: space-between; padding: 16px; background: var(--sh-surface); }
.sh-fcard-title { font-family: var(--sh-sans); font-weight: 500; font-size: 24px; line-height: 1.1; letter-spacing: -0.02em; }
.sh-fcard-art { display: flex; flex: 1; align-items: center; justify-content: center; padding-block: 32px; }
.sh-fcard-art img { max-width: 80%; max-height: 220px; width: auto; height: auto; border-radius: 4px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); }
.sh-fcard-art img[src*="board/"] { width: 180px; height: 180px; object-fit: cover; border-radius: 50%; }
.sh-fcard-icon { display: flex; width: 88px; height: 88px; align-items: center; justify-content: center; border: 1px solid var(--sh-line); border-radius: 16px; background: #fff; color: #0f2822; }
.sh-fcard-body { font-size: 14px; line-height: 1.5; letter-spacing: -0.02em; color: var(--sh-text-2); }

.sh-inner .sh-procure { padding-block: 0 96px; }
.sh-procure-box { display: grid; gap: 48px; padding: 32px; background: var(--sh-ink); color: #fff; }
@media (min-width: 810px) { .sh-procure-box { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 48px; } }
.sh-procure-main { display: flex; flex-direction: column; justify-content: space-between; }
.sh-procure-label { display: flex; align-items: center; gap: 12px; font-size: 14px; }
.sh-procure-badge, .sh-procure-arrow { display: flex; width: 32px; height: 32px; align-items: center; justify-content: center; border-radius: 4px; background: rgba(255, 255, 255, 0.1); }
.sh-procure-body { margin-top: 96px; }
.sh-procure .sh-t-h3 { letter-spacing: -0.05em; }
.sh-procure-muted { color: #8b8b8b; }
.sh-procure-strong { display: block; }
.sh-procure-items { list-style: none; padding: 0; margin: 32px 0 0; display: flex; flex-direction: column; gap: 12px; }
.sh-procure-items li { display: flex; align-items: center; gap: 16px; font-size: 16px; }
.sh-procure-items svg { flex-shrink: 0; color: rgba(255, 255, 255, 0.8); }
.sh-procure-link { margin-top: 32px; display: inline-flex; align-items: center; gap: 12px; font-size: 14px; transition: opacity 0.2s; }
.sh-procure-link:hover { opacity: 0.7; }
.sh-procure-box :focus-visible { outline-color: #fff; }
.sh-procure-phases { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px dashed rgba(255, 255, 255, 0.2); border-left: 1px dashed rgba(255, 255, 255, 0.2); }
.sh-procure-phases li { display: flex; min-height: 200px; flex-direction: column; justify-content: space-between; padding: 20px; border-right: 1px dashed rgba(255, 255, 255, 0.2); border-bottom: 1px dashed rgba(255, 255, 255, 0.2); }
.sh-procure-num { font-family: var(--sh-mono); font-size: 12px; color: rgba(255, 255, 255, 0.5); }
.sh-procure-phase { font-family: var(--sh-serif); font-weight: 400; font-size: 24px; letter-spacing: -0.02em; }
.sh-procure-phases p { margin-top: 8px; font-size: 14px; line-height: 1.5; color: rgba(255, 255, 255, 0.72); }
@media (max-width: 809px) { .sh-procure-body { margin-top: 48px; } .sh-procure-phases li { min-height: 160px; } }

.sh-inner .sh-slides { padding-block: 0 128px; }
.sh-slides-nav { display: flex; justify-content: flex-end; gap: 8px; }
.sh-slides-btn { display: flex; width: 40px; height: 40px; align-items: center; justify-content: center; border: 0; border-radius: 50%; background: #efefef; color: var(--sh-ink); cursor: pointer; transition: opacity 0.2s; }
.sh-slides-btn:hover { opacity: 0.7; }
.sh-slides-stage { margin-top: 24px; }
.sh-slide { display: grid; gap: 16px; animation: sh-fade-up 0.6s cubic-bezier(0.2, 0.7, 0.2, 1) both; }
.sh-slide[hidden] { display: none; }
@media (min-width: 810px) { .sh-slide-has-media { grid-template-columns: minmax(0, 1fr) 360px; } }
.sh-slide-card { display: flex; min-height: 520px; flex-direction: column; justify-content: space-between; margin: 0; padding: 48px; background: var(--sh-cream); }
@media (min-width: 810px) { .sh-slide-card { min-height: 694px; } }
.sh-slide-logo { --sh-s: 1; height: calc(22px * var(--sh-s)); width: auto; max-width: calc(160px * var(--sh-s)); object-fit: contain; filter: brightness(0); opacity: 0.63; -webkit-user-drag: none; }
/* Drag or swipe sideways to change slides (Chris, 2 Oct); the slide follows the pointer, then settles. */
.sh-slides-stage[data-sh-drag] { touch-action: pan-y; cursor: grab; }
.sh-slides-stage.is-dragging { cursor: grabbing; user-select: none; }
.sh-slides-stage .sh-slide { transition: translate 0.3s cubic-bezier(0.23, 1, 0.32, 1); }
.sh-slides-stage.is-dragging .sh-slide { transition: none; }
.sh-slide-quote { margin: 40px 0 0; max-width: 800px; font-family: var(--sh-sans); font-size: 36px; line-height: 1.25; letter-spacing: -0.01em; color: var(--sh-ink); }
.sh-slide-card figcaption { margin-top: 48px; }
.sh-slide-name { font-size: 16px; color: var(--sh-ink); }
.sh-slide-role { margin-top: 4px; font-family: var(--sh-mono); font-size: 13px; letter-spacing: 0.02em; text-transform: uppercase; color: var(--sh-text-2); }
.sh-slide-media { position: relative; display: none; min-height: 520px; overflow: hidden; }
@media (min-width: 810px) { .sh-slide-media { display: block; } }
.sh-slide-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 809px) { .sh-slide-card { padding: 28px; } .sh-slide-quote { font-size: 26px; } }
@media (prefers-reduced-motion: reduce) { .sh-slide { animation: none; } .sh-prhero-prompt.is-typing .sh-prhero-text::after { animation: none; } }

/* Digital PR: the Next.js /approach page with a dark hero and light sections below (Chris, 2 Oct) */
.sh-ahero { padding: calc(var(--sh-header-h) + 160px) 0 112px; background: var(--sh-ink); text-align: center; color: #fff; }
.sh-ahero .sh-t-hero { max-width: 620px; margin-inline: auto; font-size: 80px; letter-spacing: -0.05em; text-wrap: balance; }
.sh-ahero-lead { margin: 24px auto 0; max-width: 560px; font-size: 16px; line-height: 1.5; letter-spacing: -0.02em; color: rgba(255, 255, 255, 0.8); }
.sh-ahero-actions { margin-top: 40px; display: flex; justify-content: center; }
.sh-ahero .sh-bracket::before, .sh-ahero .sh-bracket::after { border-color: #fff; }
.sh-body .sh-ahero :focus-visible { outline-color: #fff; }
@media (max-width: 809px) { .sh-ahero { padding: calc(var(--sh-header-h) + 112px) 0 80px; } .sh-ahero .sh-t-hero { font-size: 44px; } }

.sh-inner .sh-icongrid { padding-block: 112px 128px; }
.sh-icongrid-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 64px 32px; }
@media (min-width: 810px) { .sh-icongrid-list { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.sh-icongrid-item svg { color: var(--sh-ink); }
.sh-icongrid-title { margin-top: 48px; font-family: var(--sh-sans); font-weight: 500; font-size: 16px; line-height: 1.3; letter-spacing: -0.02em; }
.sh-icongrid-body { margin-top: 8px; max-width: 400px; font-size: 14px; line-height: 1.5; letter-spacing: -0.02em; color: var(--sh-text-2); }
@media (max-width: 809px) { .sh-inner .sh-icongrid { padding-block: 72px 96px; } .sh-icongrid-title { margin-top: 24px; } }

.sh-inner .sh-phases { padding-block: 0 96px; }
.sh-phases-title { text-align: center; font-family: var(--sh-serif); font-weight: 400; font-size: 48px; line-height: 1.05; letter-spacing: -0.05em; }
.sh-phases-muted { display: block; color: var(--sh-muted); }
.sh-phases-frame { position: relative; margin-top: 64px; }
.sh-phases-corner { position: absolute; width: 12px; height: 12px; border: 0 solid var(--sh-ink); }
.sh-phases-corner-tl { top: -12px; left: -12px; border-top-width: 1.5px; border-left-width: 1.5px; }
.sh-phases-corner-br { bottom: -12px; right: -12px; border-bottom-width: 1.5px; border-right-width: 1.5px; }
.sh-phases-list { list-style: none; padding: 0; margin: 0; display: grid; border-top: 1px dashed rgba(0, 0, 0, 0.18); border-left: 1px dashed rgba(0, 0, 0, 0.18); }
@media (min-width: 640px) { .sh-phases-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.sh-phases-list li { display: flex; min-height: 280px; flex-direction: column; justify-content: space-between; padding: 24px; border-right: 1px dashed rgba(0, 0, 0, 0.18); border-bottom: 1px dashed rgba(0, 0, 0, 0.18); }
.sh-phases-top { display: flex; align-items: center; justify-content: space-between; }
.sh-phases-num { font-family: var(--sh-mono); font-size: 12px; color: var(--sh-text-2); }
.sh-phases-when { font-size: 12px; font-weight: 500; letter-spacing: -0.02em; color: var(--sh-text-2); }
.sh-phases-name { font-family: var(--sh-serif); font-weight: 400; font-size: 28px; letter-spacing: -0.03em; }
.sh-phases-body { margin-top: 12px; font-size: 14px; line-height: 1.5; letter-spacing: -0.02em; color: var(--sh-text-2); }
@media (max-width: 809px) { .sh-phases-title { font-size: 36px; } .sh-phases-list li { min-height: 220px; } }

.sh-inner .sh-splittext { padding-block: 0 96px; }
.sh-splittext-grid { display: grid; gap: 40px; }
@media (min-width: 810px) { .sh-splittext-grid { grid-template-columns: minmax(0, 480px) minmax(0, 1fr); gap: 64px; } }
.sh-splittext .sh-t-h3 { letter-spacing: -0.05em; }
.sh-splittext-body { max-width: 760px; }
.sh-splittext-body p { font-size: 16px; line-height: 1.5; letter-spacing: -0.02em; color: var(--sh-text-2); }
.sh-splittext-body p + p { margin-top: 24px; }
.sh-splittext-link { margin-top: 32px; display: inline-flex; align-items: center; gap: 12px; font-size: 14px; color: var(--sh-ink); transition: opacity 0.2s; }
.sh-splittext-link:hover { opacity: 0.7; }
.sh-splittext-arrow { display: flex; width: 32px; height: 32px; align-items: center; justify-content: center; border-radius: 6px; background: #efefef; }

.sh-inner .sh-factgrid { padding-block: 0 160px; }
.sh-factgrid .sh-t-h3 { letter-spacing: -0.05em; }
.sh-factgrid-muted { display: block; color: var(--sh-muted); }
.sh-factgrid-list { margin: 40px 0 0; display: grid; gap: 1px; border: 1px solid var(--sh-line); background: var(--sh-line); }
@media (min-width: 640px) { .sh-factgrid-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.sh-factgrid-item { padding: 24px; background: #fff; }
.sh-factgrid-item dt { font-size: 14px; font-weight: 500; letter-spacing: -0.02em; color: var(--sh-ink); }
.sh-factgrid-item dd { margin: 8px 0 0; font-size: 14px; line-height: 1.5; letter-spacing: -0.02em; color: var(--sh-text-2); }
.sh-factgrid-note { margin-top: 32px; font-size: 14px; letter-spacing: -0.02em; color: var(--sh-text-2); }

/* The "page not found" page. */
.sh-inner .sh-notfound { padding-top: calc(var(--sh-header-h) + 104px); padding-bottom: 160px; background: #fff; color: var(--sh-ink); }
.sh-notfound-eyebrow { color: var(--sh-text-2); }
.sh-notfound .sh-t-hero { margin-top: 16px; max-width: 760px; }
.sh-notfound-lead { margin-top: 24px; max-width: 620px; color: var(--sh-text-2); }
.sh-notfound-links { list-style: none; padding: 0; margin: 56px 0 0; display: grid; gap: 1px; border: 1px solid var(--sh-line); background: var(--sh-line); }
@media (min-width: 640px) { .sh-notfound-links { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .sh-notfound-links { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.sh-notfound-links a { display: flex; height: 100%; flex-direction: column; gap: 8px; padding: 24px; background: #fff; color: var(--sh-ink); transition: background-color 0.2s; }
.sh-notfound-links a:hover { background: #f6f6f6; }
.sh-notfound-links a:focus-visible { outline: 2px solid var(--sh-ink); outline-offset: -2px; }
.sh-notfound-name { font-family: var(--sh-serif); font-size: 24px; letter-spacing: -0.03em; }
.sh-notfound-body { font-size: 14px; line-height: 1.5; letter-spacing: -0.02em; color: var(--sh-text-2); }
.sh-notfound-home { margin-top: 48px; }
@media (max-width: 809px) { .sh-inner .sh-notfound { padding-top: calc(var(--sh-header-h) + 48px); padding-bottom: 96px; } .sh-notfound .sh-t-hero { font-size: 44px; } }

/* WordPress's screen-reader-only text, printed by plugins such as Complianz's cookie list ("Consent to service ...").
   Themes hide it, but theme styles are dropped on these pages, so it is hidden here the WordPress way. */
.sh-body .screen-reader-text { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); border: 0; word-wrap: normal !important; }

/* Request free audit link beside Get in touch (SEO and AI SEO pages). */
.sh-prhero-actions { gap: 32px; flex-wrap: wrap; align-items: center; }
@media (min-width: 810px) { .sh-closing-actions:has(> .sh-btn + .sh-btn) { flex-direction: row; align-items: center; } }
.sh-lrows-action { margin-top: 32px; }
.sh-lrows-action .sh-btn-ghost { color: var(--sh-ink); border-color: rgba(0, 0, 0, 0.15); }
.sh-lrows-action .sh-btn-ghost:hover { background: rgba(0, 0, 0, 0.05); }
