/* Service pages (Bookkeeping first, then the rest): built on home-v2.css + v2-pages.css.
   Intro split, numbered pastel cards, question cards, homepage timeline, photo splits,
   check list, linked service cards, FAQ accordion and the deep-blue closing band. */

.sv-hero .pg-visual-photo img { object-position: center; }

/* heading beside its copy */
.sv-intro { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 64px; align-items: start; }
.sv-intro-copy .hv-lead + .hv-lead { margin-top: 18px; }

/* numbered pastel cards: three across, then two */
.sv-incl { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 24px; margin-top: 56px; }
.sv-card { position: relative; grid-column: span 2; display: flex; flex-direction: column; padding: 32px; border-radius: var(--r-lg); }
.sv-card:nth-child(4), .sv-card:nth-child(5) { grid-column: span 3; }
.sv-card-ic { display: inline-flex; align-items: center; justify-content: center; width: 54px; height: 54px; border-radius: 16px; background: #fff; color: var(--brand); flex: none; }
.sv-card-ic svg { width: 24px; height: 24px; }
.sv-card-no { position: absolute; top: 30px; right: 32px; font-size: 15px; font-weight: 700; letter-spacing: .04em; color: var(--brand); opacity: .55; }
.sv-card h3 { margin-top: 22px; font-size: 22px; line-height: 1.25; font-weight: 700; letter-spacing: -0.02em; }
.sv-card p { margin-top: 10px; font-size: 15.5px; line-height: 1.65; color: var(--body); }
.sv-card .hv-incl { margin-top: 12px; }
.sv-card .hv-incl li { background: #fff; }

/* question cards: two, then three */
.sv-qs { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 20px; margin-top: 56px; }
.sv-q { position: relative; grid-column: span 2; overflow: hidden; padding: 30px 30px 32px; border-radius: var(--r-md); background: #fff; box-shadow: 0 0 0 1px var(--line); transition: transform .3s cubic-bezier(.22, .8, .24, 1), box-shadow .3s ease; }
.sv-q--lead { grid-column: span 3; }
.sv-q:hover { transform: translateY(-4px); box-shadow: 0 0 0 1px #cfdaf0, 0 24px 40px -30px rgba(10, 26, 63, .35); }
.sv-q-mark { position: absolute; top: -18px; right: 18px; font-size: 120px; line-height: 1; font-weight: 700; color: var(--p-blue); pointer-events: none; }
.sv-q-no { position: relative; display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 30px; padding: 0 10px; border-radius: 999px; background: var(--p-blue); font-size: 13px; font-weight: 700; color: var(--brand); }
.sv-q h3 { position: relative; margin-top: 18px; font-size: 21px; line-height: 1.25; font-weight: 700; letter-spacing: -0.02em; }
.sv-q p { position: relative; margin-top: 10px; font-size: 15.5px; line-height: 1.65; color: var(--body); }

.sv-closing { max-width: 760px; margin: 44px auto 0; text-align: center; font-size: 18px; line-height: 1.6; font-weight: 600; color: var(--ink); }

/* process: homepage timeline with copy-only cards */
.sv-process-note { margin-top: 20px; }
.sv-step { grid-template-columns: 1fr; padding-bottom: 0; }
.sv-step .hv-step-copy h3 { font-size: 22px; }
.hv-timeline .hv-step-no { font-size: 15px; }

/* photo beside copy */
.sv-split { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 64px; align-items: center; }
.sv-split--reverse { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); }
.sv-split-copy .hv-h2 { margin-bottom: 22px; }
.sv-split-copy .hv-lead + .hv-lead { margin-top: 14px; }
.sv-split-btn { margin-top: 30px; max-width: 100%; white-space: normal; text-align: center; height: auto; min-height: 52px; padding-top: 12px; padding-bottom: 12px; line-height: 1.35; }
.sv-photo { border-radius: var(--r-lg); overflow: hidden; background: #cddcf9; aspect-ratio: 5 / 4; }
.sv-photo img { width: 100%; height: 100%; object-fit: cover; }

/* good-fit check list */
.sv-fit { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 64px; align-items: start; }
.sv-fit-copy { position: sticky; top: 120px; }
.sv-fit-copy .hv-lead { margin-top: 20px; }
.sv-checks { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 0; padding: 0; list-style: none; }
.sv-checks li { display: flex; align-items: flex-start; gap: 12px; padding: 20px 22px; border-radius: var(--r-sm); background: #fff; box-shadow: 0 0 0 1px var(--line); font-size: 15.5px; line-height: 1.5; font-weight: 500; color: var(--ink); }
.sv-checks .hv-tick { margin-top: 1px; flex: none; }

/* linked service cards */
.sv-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 56px; }
.sv-link-card { display: flex; flex-direction: column; padding: 32px; border-radius: var(--r-lg); color: inherit; transition: transform .3s cubic-bezier(.22, .8, .24, 1); }
.sv-link-card:hover { transform: translateY(-5px); }
.sv-link-card h3 { margin-top: 22px; font-size: 22px; line-height: 1.25; font-weight: 700; letter-spacing: -0.02em; }
.sv-link-card p { margin-top: 10px; font-size: 15.5px; line-height: 1.65; color: var(--body); }
.sv-link-card .hv-link { margin-top: auto; padding-top: 22px; white-space: normal; }
.sv-link-card:hover .hv-link svg { transform: translateX(3px); }

/* FAQ */
.sv-faq-grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 64px; align-items: start; }
.sv-faq-head { position: sticky; top: 120px; }
.sv-faq { display: grid; gap: 12px; }
.sv-faq-item { border-radius: var(--r-sm); background: #fff; box-shadow: 0 0 0 1px var(--line); transition: box-shadow .2s ease; }
.sv-faq-item.is-open { box-shadow: 0 0 0 1px #c6d4f1, 0 20px 36px -30px rgba(10, 26, 63, .4); }
.sv-faq-q { display: flex; align-items: center; justify-content: space-between; gap: 18px; width: 100%; padding: 22px 24px; border: 0; background: none; text-align: left; cursor: pointer; color: var(--ink); font: inherit; }
.sv-faq-q h3 { font-size: 17px; line-height: 1.4; font-weight: 600; }
.sv-faq-plus { position: relative; flex: none; width: 34px; height: 34px; border-radius: 50%; background: var(--p-blue); transition: background .2s ease, transform .25s ease; }
.sv-faq-plus::before, .sv-faq-plus::after { content: ""; position: absolute; left: 50%; top: 50%; width: 13px; height: 2px; border-radius: 2px; background: var(--brand); transform: translate(-50%, -50%); }
.sv-faq-plus::after { transform: translate(-50%, -50%) rotate(90deg); transition: transform .25s ease; }
.sv-faq-item.is-open .sv-faq-plus { background: var(--brand); }
.sv-faq-item.is-open .sv-faq-plus::before, .sv-faq-item.is-open .sv-faq-plus::after { background: #fff; }
.sv-faq-item.is-open .sv-faq-plus::after { transform: translate(-50%, -50%) rotate(0deg); }
.sv-faq-answer { display: none; padding: 0 24px 22px; }
.sv-faq-item.is-open .sv-faq-answer { display: block; }
.sv-faq-answer p { font-size: 15.5px; line-height: 1.7; color: var(--body); }
.sv-faq-answer p + p { margin-top: 10px; }

/* closing band: full width and flush with the footer, copy on the left, highlights panel on the right
   (same structure and sizing as the page had before) */
.sv-cta { position: relative; overflow: hidden; isolation: isolate; margin-top: 104px; padding: 64px 80px;
  background: linear-gradient(135deg, #587edb 0%, #1445c2 100%); color: #fff; }
.sv-cta::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: radial-gradient(rgba(255, 255, 255, .14) 1.5px, transparent 1.5px); background-size: 22px 22px; opacity: .5; pointer-events: none; }
.sv-cta-in { display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 40px; max-width: 1180px; margin: 0 auto; }
.sv-cta-main { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; width: 56%; }
.sv-cta .hv-h2 { margin: 0; color: #fff; font-size: 40px; line-height: normal; font-weight: 800; letter-spacing: -1px; }
.sv-cta .hv-h2 span { color: #cfe0ff; }
.sv-cta p { max-width: 520px; margin: 0; font-size: 17px; line-height: normal; letter-spacing: -0.2px; color: rgba(255, 255, 255, .9); }
.sv-cta-actions { display: flex; flex-wrap: wrap; gap: 16px; }
.sv-cta-actions .hv-btn { height: auto; padding: 15px 25px; font-size: 20px; line-height: normal; letter-spacing: -0.4px; }
.sv-cta-actions .hv-btn--white { margin-top: 8px; border: 0; }
.sv-cta-actions .hv-btn--glass { border: 1.5px solid rgba(255, 255, 255, .6); }
.sv-cta .hv-btn--white { color: var(--brand); box-shadow: 0 14px 30px -14px rgba(0, 0, 0, .45); }
.sv-cta .hv-btn--white:hover { background: #fff; transform: translateY(-2px); }
.sv-cta-panel { align-self: stretch; display: flex; flex-direction: column; justify-content: center; gap: 16px; width: 34%; margin: 0; padding: 22px 24px; list-style: none;
  border: 1px solid rgba(255, 255, 255, .22); border-radius: 20px; background: rgba(255, 255, 255, .1); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); }
.sv-cta-panel li { display: flex; align-items: center; gap: 12px; font-size: 13.5px; line-height: 1.4; font-weight: 600; color: #fff; }
.sv-cta-panel li:not(:last-child) { padding-bottom: 16px; border-bottom: 1px solid rgba(255, 255, 255, .16); }
.sv-cta-ic { display: flex; align-items: center; justify-content: center; flex: none; width: 34px; height: 34px; border-radius: 10px; background: rgba(255, 255, 255, .16); }
.sv-cta-ic svg { width: 16px; height: 16px; }
body:has(.sv-cta) .hv-footer { margin-top: 0; }
/* a grey band right before the closing band: no white gap, 80px under its content (as before) */
.hv-band.sv-band-end { padding-bottom: 80px; }
.sv-band-end + .sv-cta { margin-top: 0; }
@media (max-width: 899px) {
  .sv-cta-in { flex-direction: column; align-items: stretch; }
  .sv-cta-main, .sv-cta-panel { width: 100%; }
  .sv-cta-panel { margin-top: 32px; }
}
@media (max-width: 767px) {
  .sv-cta { margin-top: 80px; padding: 48px 24px; }
}
@media (max-width: 639px) {
  .hv-band.sv-band-end { padding-bottom: 52px; }
  .sv-cta .hv-h2 { font-size: 28px; }
  .sv-cta p { font-size: 15px; }
  .sv-cta-actions .hv-btn { padding: 10px 20px; font-size: 16px; letter-spacing: -0.32px; }
}

@media (max-width: 1100px) {
  .sv-intro, .sv-fit, .sv-faq-grid { grid-template-columns: 1fr; gap: 32px; }
  .sv-fit-copy, .sv-faq-head { position: static; }
  .sv-split, .sv-split--reverse { grid-template-columns: 1fr; gap: 40px; }
  .sv-split--reverse .sv-photo { order: 2; }
  .sv-incl, .sv-qs { grid-template-columns: 1fr 1fr; }
  .sv-card, .sv-card:nth-child(4), .sv-q, .sv-q--lead { grid-column: span 1; }
  .sv-card:nth-child(5), .sv-q:last-child { grid-column: 1 / -1; }
  .sv-links { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .sv-incl, .sv-qs, .sv-checks { grid-template-columns: 1fr; }
  .sv-card, .sv-link-card { padding: 26px; }
  .sv-card-no { top: 24px; right: 26px; }
  .sv-q { padding: 26px; }
  .sv-faq-q { padding: 18px 18px; }
  .sv-faq-q h3 { font-size: 16px; }
  .sv-faq-answer { padding: 0 18px 18px; }
  .sv-closing { font-size: 16.5px; margin-top: 32px; }
}

/* ---------- shared extras used across service pages ---------- */
/* small issue chips beside an intro */
.sv-chips { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.sv-chips li { display: flex; align-items: center; gap: 14px; padding: 16px 20px; border-radius: var(--r-sm); background: var(--alt); font-size: 15.5px; font-weight: 600; color: var(--ink); }
.sv-chips .sv-card-ic { width: 42px; height: 42px; border-radius: 12px; }
.sv-chips .sv-card-ic svg { width: 20px; height: 20px; }

/* a section heading with a lead under it, left aligned */
.sv-head { max-width: 820px; }
.sv-head .hv-lead { margin-top: 18px; }
.sv-head + * { margin-top: 48px; }
.sv-note { margin-top: 32px; font-size: 17px; line-height: 1.65; color: var(--body); max-width: 860px; }
.sv-note--center { text-align: center; margin-left: auto; margin-right: auto; }

/* two-column table in a card */
.sv-table-wrap { overflow-x: auto; border-radius: var(--r-md); background: #fff; box-shadow: 0 0 0 1px var(--line); }
.sv-table { width: 100%; border-collapse: collapse; font-size: 15.5px; line-height: 1.55; }
.sv-table th { padding: 18px 26px; background: var(--p-blue); text-align: left; font-size: 14px; font-weight: 700; letter-spacing: .02em; color: var(--brand); }
.sv-table td { padding: 18px 26px; border-top: 1px solid var(--line); color: var(--body); vertical-align: top; }
.sv-table td:first-child { width: 36%; font-weight: 600; color: var(--ink); }
.sv-table--even td:first-child { width: 50%; font-weight: 400; color: var(--body); }
.sv-table--even td + td, .sv-table--even th + th { border-left: 1px solid var(--line); }
.sv-table tbody tr:hover td { background: #fafbfe; }

/* numbered list in two columns */
.sv-ledger { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 20px; margin: 0; padding: 0; list-style: none; counter-reset: none; }
.sv-ledger li { display: flex; align-items: center; gap: 16px; padding: 18px 22px; border-radius: var(--r-sm); background: #fff; box-shadow: 0 0 0 1px var(--line); font-size: 16px; font-weight: 500; color: var(--ink); }
.sv-ledger-no { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 12px; background: var(--p-blue); font-size: 14px; font-weight: 700; color: var(--brand); }

/* without / with comparison */
.sv-compare { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.sv-compare-col { padding: 32px; border-radius: var(--r-lg); background: #fff; box-shadow: 0 0 0 1px var(--line); }
.sv-compare-col--good { background: var(--p-blue); box-shadow: none; }
.sv-compare-col h3 { font-size: 21px; line-height: 1.25; font-weight: 700; letter-spacing: -0.02em; }
.sv-compare-col ul { display: grid; gap: 12px; margin: 20px 0 0; padding: 0; list-style: none; }
.sv-compare-col li { display: flex; align-items: flex-start; gap: 12px; font-size: 16px; line-height: 1.5; color: var(--ink); }
.sv-x { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; margin-top: -1px; border-radius: 50%; background: #fde8e8; color: #c43c3c; }
.sv-x svg { width: 12px; height: 12px; stroke-width: 3; }
.sv-btn-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }

/* compact check list (inside a split) and a 3-across grid */
.sv-mini-checks { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 20px; margin: 22px 0 0; padding: 0; list-style: none; }
.sv-mini-checks li { display: flex; align-items: center; gap: 10px; font-size: 16px; font-weight: 500; color: var(--ink); }
.sv-checks--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* FAQ question number */
.sv-faq-no { flex: none; font-size: 14px; font-weight: 700; color: var(--brand); opacity: .6; min-width: 22px; }
.sv-faq-q h3 { flex: 1; }

/* step label above a timeline card title */
.sv-step .hv-step-label { margin-bottom: 10px; font-size: 12.5px; letter-spacing: .08em; }

@media (max-width: 1100px) {
  .sv-checks--3 { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  .sv-ledger, .sv-compare, .sv-mini-checks, .sv-checks--3 { grid-template-columns: 1fr; }
  .sv-table th, .sv-table td { padding: 14px 16px; }
  .sv-table { font-size: 14.5px; }
  .sv-compare-col { padding: 26px; }
}
/* small spacing helpers */
.pg-hero .hv-lead.sv-lead-2 { margin-top: 14px; }
.sv-intro-p { margin-top: 18px; }
.sv-intro .sv-chips { align-self: center; }
.sv-split-strong { margin-top: 24px; font-size: 17px; line-height: 1.6; font-weight: 600; color: var(--ink); }

/* closing band, variant B (Tax Filing and pages built like it): wider copy, compact one-line buttons */
.sv-cta--b .sv-cta-main { width: 58%; }
.sv-cta--b p { max-width: none; }
.sv-cta--b .sv-cta-actions { margin-top: 8px; flex-wrap: nowrap; }
.sv-cta--b .sv-cta-actions .hv-btn { padding: 14px 22px; font-size: 16px; letter-spacing: -0.4px; white-space: nowrap; }
.sv-cta--b .sv-cta-actions .hv-btn--white { margin-top: 0; }
.sv-cta--b .sv-cta-panel { padding: 24px 26px; gap: 15px; }
.sv-cta--b .sv-cta-panel li:not(:last-child) { padding-bottom: 15px; }
.sv-cta--b .sv-cta-ic { width: 32px; height: 32px; }
.sv-cta--b .sv-cta-ic svg { width: 15px; height: 15px; }
@media (max-width: 899px) {
  .sv-cta--b .sv-cta-main { width: 100%; }
  .sv-cta--b .sv-cta-panel { margin-top: 0; }
}
@media (max-width: 639px) {
  .sv-cta--b .sv-cta-actions .hv-btn { padding: 12px 16px; font-size: 14px; letter-spacing: -0.32px; }
}

/* long in-section buttons wrap on phones instead of running off the screen */
@media (max-width: 640px) {
  .sv-btn-row .hv-btn { max-width: 100%; white-space: normal; text-align: center; height: auto; min-height: 52px; padding-top: 12px; padding-bottom: 12px; line-height: 1.35; }
}
/* variant B keeps both buttons on one row: the second one's label wraps when space is tight */
.sv-cta--b .sv-cta-actions .hv-btn--glass { white-space: normal; text-align: center; min-width: 0; }
.sv-cta--b .sv-cta-actions .hv-btn--white { flex-shrink: 0; }

/* closing band, variant B with the large wrapping buttons (Software Setup and similar) */
.sv-cta--b.sv-cta--big .sv-cta-actions { flex-wrap: wrap; }
.sv-cta--b.sv-cta--big .sv-cta-actions .hv-btn { padding: 15px 25px; font-size: 20px; letter-spacing: -0.4px; white-space: nowrap; }
.sv-cta--b.sv-cta--big .sv-cta-actions .hv-btn--glass { white-space: nowrap; }
@media (max-width: 639px) {
  .sv-cta--b.sv-cta--big .sv-cta-actions .hv-btn { padding: 10px 20px; font-size: 16px; letter-spacing: -0.32px; }
}

/* numbered spec rows: number, title, copy */
.sv-spec { display: grid; gap: 0; border-radius: var(--r-lg); background: #fff; box-shadow: 0 0 0 1px var(--line); overflow: hidden; }
.sv-spec-row { display: grid; grid-template-columns: 64px minmax(0, .8fr) minmax(0, 1.2fr); gap: 28px; align-items: start; padding: 28px 34px; }
.sv-spec-row + .sv-spec-row { border-top: 1px solid var(--line); }
.sv-spec-no { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 14px; background: var(--p-blue); font-size: 14px; font-weight: 700; color: var(--brand); }
.sv-spec-row h3 { padding-top: 9px; font-size: 20px; line-height: 1.3; font-weight: 700; letter-spacing: -0.02em; }
.sv-spec-row p { font-size: 15.5px; line-height: 1.65; color: var(--body); }
.sv-spec-row p + p { margin-top: 8px; }

/* platform cards inside a split */
.sv-platforms { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 28px; }
.sv-platform { position: relative; overflow: hidden; padding: 26px; border-radius: var(--r-md); background: var(--p-blue); }
.sv-platform--alt { background: var(--p-mint); }
.sv-platform-ghost { position: absolute; right: 14px; top: 2px; font-size: 64px; line-height: 1; font-weight: 800; letter-spacing: -0.04em; color: rgba(20, 69, 194, .08); pointer-events: none; }
.sv-platform-name { display: inline-flex; padding: 5px 12px; border-radius: 999px; background: #fff; font-size: 12.5px; font-weight: 700; color: var(--brand); }
.sv-platform h3 { position: relative; margin-top: 14px; font-size: 19px; line-height: 1.3; font-weight: 700; letter-spacing: -0.02em; }
.sv-platform p { position: relative; margin-top: 8px; font-size: 15px; line-height: 1.6; color: var(--body); }

/* step cards three across */
.sv-stepgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; }
.sv-stepgrid li { position: relative; padding: 30px; border-radius: var(--r-md); background: #fff; box-shadow: 0 0 0 1px var(--line); }
.sv-stepgrid-no { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 50%; background: var(--brand); font-size: 15px; font-weight: 700; color: #fff; box-shadow: 0 0 0 6px var(--p-blue); }
.sv-stepgrid h3 { margin-top: 22px; font-size: 20px; line-height: 1.3; font-weight: 700; letter-spacing: -0.02em; }
.sv-stepgrid p { margin-top: 10px; font-size: 15.5px; line-height: 1.65; color: var(--body); }

@media (max-width: 1100px) {
  .sv-stepgrid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  .sv-spec-row { grid-template-columns: 44px minmax(0, 1fr); gap: 8px 18px; padding: 22px; }
  .sv-spec-row > div { grid-column: 2; }
  .sv-platforms, .sv-stepgrid { grid-template-columns: 1fr; }
}

/* three-column comparison table: row label, then two options */
.sv-table--3 td:first-child { width: 24%; }
.sv-table--3 td + td, .sv-table--3 th + th { border-left: 1px solid var(--line); }
.sv-table--3 th:first-child { background: var(--p-blue); }
.sv-checks--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sv-checks--1 { grid-template-columns: 1fr; }
.sv-checks .sv-x { margin-top: 1px; }
.sv-fit .sv-note { margin-top: 24px; }
.sv-fit .sv-btn-row { margin-top: 24px; }
@media (max-width: 1100px) { .sv-checks--4 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .sv-checks--4 { grid-template-columns: 1fr; } }

/* pastel cards two across, with a short tick list */
.sv-incl--2 .sv-card { grid-column: span 3; }
.sv-card-list { display: grid; gap: 9px; margin: 16px 0 0; padding: 0; list-style: none; }
.sv-card-list li { position: relative; padding-left: 22px; font-size: 15px; line-height: 1.55; color: var(--ink); }
.sv-card-list li::before { content: ""; position: absolute; left: 2px; top: 8px; width: 8px; height: 8px; border-radius: 50%; background: var(--brand); opacity: .55; }

/* icon tiles four across */
.sv-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.sv-tile { padding: 26px; border-radius: var(--r-md); background: #fff; box-shadow: 0 0 0 1px var(--line); }
.sv-tile .sv-card-ic { width: 48px; height: 48px; border-radius: 14px; background: var(--p-blue); }
.sv-tile .sv-card-ic svg { width: 22px; height: 22px; }
.sv-tile h3 { margin-top: 18px; font-size: 18px; line-height: 1.3; font-weight: 700; letter-spacing: -0.02em; }
.sv-tile p { margin-top: 8px; font-size: 15px; line-height: 1.6; color: var(--body); }

/* question cards two across (the last one full width) */
.sv-asks { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.sv-ask { display: flex; align-items: center; gap: 16px; padding: 20px 24px; border-radius: var(--r-sm); background: var(--alt); }
.sv-ask:last-child:nth-child(odd) { grid-column: 1 / -1; }
.sv-ask-glyph { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--brand); font-size: 18px; font-weight: 700; color: #fff; }
.sv-ask p { font-size: 16.5px; line-height: 1.5; font-weight: 600; color: var(--ink); }

/* link card title when the old card used a plain label instead of a heading */
.sv-link-title { display: block; margin-top: 22px; font-size: 22px; line-height: 1.25; font-weight: 700; letter-spacing: -0.02em; }
.sv-link-text { display: block; margin-top: 10px; font-size: 15.5px; line-height: 1.65; color: var(--body); }

@media (max-width: 1100px) {
  .sv-tiles { grid-template-columns: 1fr 1fr; }
  .sv-incl--2 .sv-card, .sv-incl--2 .sv-card:nth-child(4), .sv-incl--2 .sv-card:nth-child(5) { grid-column: span 1; }
}
@media (max-width: 640px) {
  .sv-tiles, .sv-asks { grid-template-columns: 1fr; }
  .sv-ask:last-child:nth-child(odd) { grid-column: auto; }
}
/* five link cards: three, then two */
.sv-links--5 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.sv-links--5 .sv-link-card { grid-column: span 2; }
.sv-links--5 .sv-link-card:nth-child(4), .sv-links--5 .sv-link-card:nth-child(5) { grid-column: span 3; }
@media (max-width: 1100px) { .sv-links--5 { grid-template-columns: 1fr; } .sv-links--5 .sv-link-card, .sv-links--5 .sv-link-card:nth-child(4), .sv-links--5 .sv-link-card:nth-child(5) { grid-column: auto; } }
/* long hero buttons wrap on phones */
@media (max-width: 640px) {
  .sv-hero .pg-hero-cta .hv-btn { max-width: 100%; white-space: normal; text-align: center; height: auto; min-height: 52px; padding-top: 12px; padding-bottom: 12px; line-height: 1.35; }
}

/* question cards four across */
.sv-qs--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 0; }
.sv-qs--4 .sv-q { grid-column: auto; }
.sv-qs--4 .sv-q h3 { margin-top: 0; padding-right: 40px; }

/* four-stage flow with icons */
.sv-stepgrid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sv-stepgrid-top { display: flex; align-items: center; justify-content: space-between; }
.sv-stepgrid-ic { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 14px; background: var(--p-blue); color: var(--brand); }
.sv-stepgrid-ic svg { width: 21px; height: 21px; }

/* action cards with icons, three across */
.sv-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.sv-actions li { display: flex; align-items: center; gap: 16px; padding: 22px 24px; border-radius: var(--r-md); background: var(--p-blue); font-size: 16px; line-height: 1.45; font-weight: 600; color: var(--ink); }
.sv-actions li:nth-child(3n+2) { background: var(--p-sky); }
.sv-actions li:nth-child(3n) { background: var(--p-lav); }
.sv-actions .sv-card-ic { width: 46px; height: 46px; border-radius: 14px; }
.sv-actions .sv-card-ic svg { width: 21px; height: 21px; }

/* highlighted rule */
.sv-rule { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; margin-top: 28px; padding: 24px 28px; border-left: 4px solid var(--brand); border-radius: 0 var(--r-sm) var(--r-sm) 0; background: var(--tint); }
.sv-rule p { font-size: 17px; line-height: 1.6; color: var(--ink); }
.sv-rule p:first-child { font-weight: 700; color: var(--brand); }

@media (max-width: 1100px) {
  .sv-qs--4, .sv-stepgrid--4 { grid-template-columns: 1fr 1fr; }
  .sv-actions { grid-template-columns: 1fr 1fr; }
  .sv-qs--4 .sv-q:last-child { grid-column: auto; }
}
@media (max-width: 640px) {
  .sv-qs--4, .sv-stepgrid--4, .sv-actions { grid-template-columns: 1fr; }
}

/* tiles three across */
.sv-tiles--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* tile - tile = result */
.sv-equation { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr); gap: 18px; align-items: stretch; }
.sv-equation-op { align-self: center; display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 1px var(--line); font-size: 26px; font-weight: 700; color: var(--brand); }
.sv-eq-tile { padding: 28px; border-radius: var(--r-md); background: #fff; box-shadow: 0 0 0 1px var(--line); }
.sv-eq-tile h3 { font-size: 21px; line-height: 1.25; font-weight: 700; letter-spacing: -0.02em; }
.sv-eq-tile p { margin-top: 10px; font-size: 15.5px; line-height: 1.6; color: var(--body); }
.sv-eq-tile--result { background: var(--brand); box-shadow: none; }
.sv-eq-tile--result h3 { color: #fff; }
.sv-eq-tile--result p { color: rgba(255, 255, 255, .85); }

/* five stages */
.sv-stepgrid--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.sv-stepgrid--5 li { padding: 26px 22px; }
.sv-stepgrid--5 h3 { font-size: 19px; }

@media (max-width: 1100px) {
  .sv-tiles--3, .sv-stepgrid--5 { grid-template-columns: 1fr 1fr; }
  .sv-equation { grid-template-columns: 1fr; }
  .sv-equation-op { justify-self: center; }
}
@media (max-width: 640px) {
  .sv-tiles--3, .sv-stepgrid--5 { grid-template-columns: 1fr; }
}
/* first column holds a question (wider) */
.sv-table--wide1 td:first-child { width: 38%; font-weight: 500; }
/* action cards on a grey band: white */
.sv-actions--white li, .sv-actions--white li:nth-child(3n+2), .sv-actions--white li:nth-child(3n) { background: #fff; box-shadow: 0 0 0 1px var(--line); font-weight: 500; }
.sv-actions--white .sv-card-ic { background: var(--p-blue); }
.sv-tile-title { margin-top: 18px; font-size: 19px; }
.sv-tile .sv-link-text { font-size: 15px; }
/* closing band heading at 35px (Audit and Assurance and similar) */
@media (min-width: 640px) { .sv-cta--h35 .hv-h2 { font-size: 35px; } }

/* card with a lead line and a dotted list (beside a heading) */
.sv-cx-card { padding: 30px 32px; border-radius: var(--r-lg); background: var(--p-blue); }
.sv-cx-card > p { font-size: 17px; line-height: 1.5; font-weight: 700; color: var(--ink); }
.sv-cx-card .sv-card-list { margin-top: 18px; gap: 12px; }
.sv-cx-card .sv-card-list li { font-size: 15.5px; }

/* "VS" badge on a comparison table */
.sv-vs-wrap { position: relative; }
.sv-vs-badge { position: absolute; left: 50%; top: 14px; z-index: 1; transform: translateX(-50%); display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--brand); font-size: 13px; font-weight: 800; letter-spacing: .04em; color: #fff; box-shadow: 0 0 0 5px #fff; }

/* risk hub: three items, a centre, three items */
.sv-hub { display: grid; grid-template-columns: minmax(0, 1fr) 220px minmax(0, 1fr); gap: 24px; align-items: center; }
.sv-hub-list { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.sv-hub-node { display: flex; align-items: flex-start; gap: 14px; padding: 20px 22px; border-radius: var(--r-md); background: #fff; box-shadow: 0 0 0 1px var(--line); }
.sv-hub-node .sv-card-ic { width: 44px; height: 44px; border-radius: 13px; background: var(--p-blue); }
.sv-hub-node .sv-card-ic svg { width: 20px; height: 20px; }
.sv-hub-node h3 { font-size: 17px; line-height: 1.3; font-weight: 700; }
.sv-hub-node p { margin-top: 5px; font-size: 14.5px; line-height: 1.55; color: var(--body); }
.sv-hub-core { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle at 30% 30%, #587edb, var(--brand)); text-align: center; color: #fff; box-shadow: 0 0 0 12px var(--p-blue), 0 30px 50px -30px rgba(20, 69, 194, .6); padding: 24px; }
.sv-hub-core svg { width: 30px; height: 30px; }
.sv-hub-core span { font-size: 16px; line-height: 1.35; font-weight: 700; }

/* single-column numbered list with a flag icon */
.sv-ledger--1 { grid-template-columns: 1fr; }
.sv-ledger--1 li { justify-content: flex-start; }
.sv-ledger-flag { margin-left: auto; flex: none; display: inline-flex; color: #c98a12; }
.sv-ledger-flag svg { width: 20px; height: 20px; }

/* connection rows: name, then description */
.sv-wire { display: grid; margin: 0; padding: 0; list-style: none; border-radius: var(--r-md); background: #fff; box-shadow: 0 0 0 1px var(--line); overflow: hidden; }
.sv-wire li { display: grid; grid-template-columns: minmax(0, .8fr) 40px minmax(0, 1.6fr); gap: 16px; align-items: center; padding: 20px 26px; }
.sv-wire li + li { border-top: 1px solid var(--line); }
.sv-wire-name { font-size: 16.5px; font-weight: 700; color: var(--ink); }
.sv-wire-line { height: 2px; border-radius: 2px; background: linear-gradient(90deg, var(--brand), rgba(20, 69, 194, .15)); }
.sv-wire-desc { font-size: 15.5px; line-height: 1.6; color: var(--body); }

@media (max-width: 1100px) {
  .sv-hub { grid-template-columns: 1fr; }
  .sv-hub-core { width: 200px; justify-self: center; order: -1; }
}
@media (max-width: 760px) {
  .sv-wire li { grid-template-columns: 1fr; gap: 6px; }
  .sv-wire-line { display: none; }
  .sv-vs-badge { top: 10px; }
}

/* big figures with a caption and source */
.sv-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.sv-stats--2 { grid-template-columns: 1fr 1fr; }
.sv-stat { padding: 28px; border-radius: var(--r-md); background: #fff; box-shadow: 0 0 0 1px var(--line); }
.sv-stat-num { display: block; font-size: clamp(34px, 3.4vw, 46px); line-height: 1; font-weight: 800; letter-spacing: -0.03em; color: var(--brand); }
.sv-stat p { margin-top: 14px; font-size: 15px; line-height: 1.6; color: var(--body); }
.sv-stat-source { display: block; margin-top: 12px; font-size: 12.5px; line-height: 1.5; color: var(--muted); }

/* numbered tiles: number in the corner */
.sv-tile { position: relative; }
.sv-tile-no { position: absolute; top: 22px; right: 24px; font-size: 14px; font-weight: 700; color: var(--brand); opacity: .5; }
.sv-tile--plain h3 { margin-top: 0; padding-right: 36px; }

/* horizon cards */
.sv-horizons { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.sv-horizon { display: flex; flex-direction: column; padding: 30px; border-radius: var(--r-lg); }
.sv-horizon-tag { align-self: flex-start; display: inline-flex; padding: 6px 13px; border-radius: 999px; background: #fff; font-size: 12.5px; font-weight: 700; letter-spacing: .03em; color: var(--brand); }
.sv-horizon h3 { margin-top: 16px; font-size: 26px; line-height: 1.15; font-weight: 800; letter-spacing: -0.02em; }
.sv-horizon > p { margin-top: 10px; font-size: 15.5px; line-height: 1.6; color: var(--body); }

/* metrics grid */
.sv-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.sv-metrics li { padding: 22px 24px; border-radius: var(--r-sm); background: var(--alt); border-top: 3px solid var(--brand); }
.sv-metrics strong { display: block; font-size: 16.5px; font-weight: 700; color: var(--ink); }
.sv-metrics span { display: block; margin-top: 6px; font-size: 15px; line-height: 1.55; color: var(--body); }

/* question rows with a drawn "?" marker */
.sv-asks--plain .sv-ask { background: #fff; box-shadow: 0 0 0 1px var(--line); }
.sv-asks--plain .sv-ask::before { content: "?"; flex: none; display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: var(--p-blue); font-size: 16px; font-weight: 700; color: var(--brand); }
.sv-asks--plain .sv-ask { font-size: 16px; line-height: 1.5; font-weight: 600; color: var(--ink); }

/* scope card with an icon rail */
.sv-scope { display: flex; gap: 24px; align-items: flex-start; padding: 32px; border-radius: var(--r-lg); background: var(--p-blue); }
.sv-scope-rail { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 16px; background: #fff; color: var(--brand); }
.sv-scope-rail svg { width: 26px; height: 26px; }
.sv-scope .hv-lead + .hv-lead { margin-top: 14px; }

/* inline text link inside a paragraph */
.sv-inline-link { font-weight: 600; color: var(--brand); text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 1100px) {
  .sv-stats, .sv-metrics { grid-template-columns: 1fr 1fr; }
  .sv-horizons { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .sv-stats, .sv-stats--2, .sv-metrics { grid-template-columns: 1fr; }
  .sv-scope { flex-direction: column; padding: 26px; }
}
.sv-note--tight { margin-top: 12px; }
@media (min-width: 640px) { .sv-cta--h32 .hv-h2 { font-size: 32px; } }
.sv-compare-p { margin-top: 16px; font-size: 16.5px; line-height: 1.7; color: var(--ink); }
.sv-tag--muted { background: #fde8e8; color: #b23b3b; }
.sv-compare-col:not(.sv-compare-col--good) .sv-tag--muted { background: #fde8e8; }

.sv-stats--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sv-metrics--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sv-head .hv-lead + .hv-lead.sv-lead-2 { margin-top: 14px; }
/* ageing position with a coloured dot (green to red down the table) */
.sv-age { display: inline-flex; align-items: center; gap: 10px; font-weight: 600; color: var(--ink); }
.sv-age-dot { flex: none; width: 10px; height: 10px; border-radius: 50%; background: #2f9e6b; }
.sv-table tr:nth-child(2) .sv-age-dot { background: #8bbf3f; }
.sv-table tr:nth-child(3) .sv-age-dot { background: #e0a526; }
.sv-table tr:nth-child(4) .sv-age-dot { background: #e0742a; }
.sv-table tr:nth-child(5) .sv-age-dot { background: #d24040; }
.sv-compare-col .sv-card-list { margin-top: 18px; }
.sv-compare-col .sv-card-ic + h3 { margin-top: 18px; }
.sv-compare-col .sv-card-ic { background: var(--p-blue); }
.sv-compare-col--good .sv-card-ic { background: #fff; }
@media (max-width: 639px) { .sv-cta--m26 .hv-h2 { font-size: 26px; } }
@media (max-width: 1100px) { .sv-stats--3, .sv-metrics--4 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .sv-stats--3, .sv-metrics--4 { grid-template-columns: 1fr; } }
.sv-tag--client { background: var(--p-lav); color: #4b3fb0; }

/* ---------- industry pages ---------- */
/* a sub-heading that must stay an <h2> in the markup but looks like a card title */
.sv-sub { font-size: 22px; line-height: 1.25; font-weight: 700; letter-spacing: -0.02em; color: var(--ink); }
/* small label above a block of copy */
.sv-eyebrow { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 14px; padding: 5px 13px; border-radius: 999px; background: var(--p-blue); font-size: 12.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--brand); }
.sv-eyebrow::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--brand); }
/* stacked numbered stage cards */
.sv-stages { display: grid; gap: 20px; margin-top: 40px; }
.sv-stage { padding: 32px 34px; border-radius: var(--r-lg); background: #fff; box-shadow: 0 0 0 1px var(--line); }
.sv-stage-head { display: flex; align-items: center; gap: 16px; margin-bottom: 16px; }
.sv-stage-no { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 14px; background: var(--brand); font-size: 17px; font-weight: 700; color: #fff; }
.sv-stage p { font-size: 16px; line-height: 1.7; color: var(--body); }
.sv-stage p + p, .sv-stage ul + p, .sv-stage p + ul { margin-top: 12px; }
.sv-stage .sv-card-list { margin-top: 12px; grid-template-columns: 1fr 1fr; column-gap: 28px; }
.sv-stage-strong { font-weight: 600; color: var(--ink); }
.sv-linknote { margin: 14px 0; padding: 16px 20px; border-left: 4px solid var(--brand); border-radius: 0 var(--r-sm) var(--r-sm) 0; background: var(--tint); }
.sv-linknote p { font-size: 15.5px; line-height: 1.6; color: var(--ink); }
.sv-linknote a, .sv-prose a { color: var(--brand); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
/* head on the left, paragraphs on the right */
.sv-prose p { font-size: 17px; line-height: 1.7; color: var(--body); }
.sv-prose p + p { margin-top: 14px; }
.sv-prose .sv-strong { font-weight: 600; color: var(--ink); }
/* cards that describe a type of operation */
.sv-ops { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.sv-op { padding: 30px; border-radius: var(--r-lg); }
.sv-op:last-child:nth-child(odd) { grid-column: 1 / -1; }
.sv-op .sv-eyebrow { margin-bottom: 14px; background: #fff; }
.sv-op p { margin-top: 10px; font-size: 15.5px; line-height: 1.65; color: var(--body); }
@media (max-width: 1100px) { .sv-stage .sv-card-list { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .sv-ops { grid-template-columns: 1fr; } .sv-stage { padding: 24px; } }
.sv-stepgrid--titles li { padding: 24px 26px; }
.sv-stepgrid--titles h3 { margin-top: 18px; }
.sv-cta--ls9 .hv-h2 { letter-spacing: -0.9px; }
/* numbers drawn by CSS (the list in the page has none) */
.sv-ledger--auto { counter-reset: svn; }
.sv-ledger--auto li { counter-increment: svn; }
.sv-ledger--auto .sv-ledger-no::before { content: counter(svn, decimal-leading-zero); }
.hv-band.sv-band-end--84 { padding-bottom: 84px; }
@media (max-width: 639px) { .hv-band.sv-band-end--84 { padding-bottom: 54px; } }
.sv-links--2x2 { grid-template-columns: 1fr 1fr; }
@media (max-width: 1100px) { .sv-links--2x2 { grid-template-columns: 1fr; } }
/* short callout with a small label */
.sv-principle { margin: 0 0 28px; padding: 26px 30px; border-radius: var(--r-lg); background: var(--brand); color: #fff; }
.sv-principle span { display: inline-block; margin-bottom: 8px; padding: 4px 12px; border-radius: 999px; background: rgba(255, 255, 255, .16); font-size: 12.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.sv-principle p { font-size: 20px; line-height: 1.45; font-weight: 600; letter-spacing: -0.01em; }
.sv-prose .sv-card-list { margin: 14px 0; }
.sv-prose .sv-card-list li { font-size: 16px; }
.sv-prose .sv-linknote { margin: 16px 0 0; }
.sv-prose .sv-lead-q { margin-top: 18px; }
.sv-stage-no svg { width: 22px; height: 22px; }
.sv-stage-head .sv-eyebrow { margin-bottom: 6px; }
.sv-stepgrid--titles p { margin-top: 8px; }
.sv-stepgrid--titles .sv-stepgrid-ic { display: inline-flex; }

/* segment cards: label, title, then labelled rows */
.sv-segs { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.sv-seg { padding: 30px; border-radius: var(--r-lg); background: #fff; box-shadow: 0 0 0 1px var(--line); }
.sv-seg h3 { margin-top: 4px; font-size: 22px; line-height: 1.25; font-weight: 700; letter-spacing: -0.02em; }
.sv-seg-row { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
.sv-seg-label { display: block; margin-bottom: 4px; font-size: 12.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--brand); }
.sv-seg-value { display: block; font-size: 15.5px; line-height: 1.6; color: var(--body); }
@media (max-width: 760px) { .sv-segs { grid-template-columns: 1fr; } }
/* FAQ on a white section right above the closing band */
.pg-sec.sv-white-end { padding-bottom: 80px; }
@media (max-width: 639px) { .pg-sec.sv-white-end { padding-bottom: 52px; } }
.sv-op .sv-card-ic { background: #fff; }
.sv-white-end + .sv-cta { margin-top: 0; }
.sv-sub--block { margin: 0 0 20px; }
/* a single wide text column */
.sv-prose-wide { max-width: 860px; }
.sv-prose-wide .sv-split-copy .hv-lead + .hv-lead { margin-top: 14px; }
/* report mock-up card */
.sv-report { border-radius: var(--r-lg); background: #fff; box-shadow: 0 0 0 1px var(--line); overflow: hidden; }
.sv-report-bar { display: flex; align-items: center; gap: 7px; padding: 14px 20px; background: var(--alt); border-bottom: 1px solid var(--line); }
.sv-report-bar i { width: 11px; height: 11px; border-radius: 50%; background: #cfd8ea; }
.sv-report-bar span { margin-left: 10px; font-size: 13.5px; font-weight: 700; color: var(--ink); }
.sv-report-tags { margin: 0; padding: 24px; }
.sv-h3in { margin-top: 20px; font-size: 18px; line-height: 1.35; font-weight: 700; color: var(--ink); }
.sv-stage .sv-eyebrow { margin-bottom: 12px; }
.sv-stage .sv-ledger--in { margin: 14px 0; grid-template-columns: 1fr; }
.sv-sub-accent { color: var(--brand); }
.sv-incl .sv-sub { display: block; }
.sv-cta--ts .sv-cta-panel li { letter-spacing: -0.12px; }

/* spacing under every section heading, strong enough that no component's own margin can remove it */
main .sv-head + * { margin-top: 48px; }
main .sv-head + .sv-sub--block { margin-top: 44px; margin-bottom: 20px; }
main .sv-head + .sv-note { margin-top: 32px; }
@media (max-width: 760px) {
  main .sv-head + * { margin-top: 32px; }
  main .sv-head + .sv-sub--block { margin-top: 30px; }
}
/* breathing room under in-card titles */
.sv-h3in { margin-bottom: 10px; }
.sv-sub + p, .sv-op .sv-sub + p, .sv-card .sv-sub + p { margin-top: 14px; }
.sv-stage .sv-h3in { margin-top: 24px; }

/* intro text under a section heading runs the full width of the page content */
.sv-head { max-width: none; }
.sv-head .hv-lead, .sv-head .hv-h2 { max-width: none; }
.sv-note { max-width: none; }

/* ---------- stacking stage cards (same behaviour as the Pricing packages) ----------
   Each card slides up over the one before it while scrolling; the card underneath eases
   back and dims (--p is set from the page script). Contents fade in one by one. */
.sv-stack { gap: 40px; padding-bottom: 8px; }
.sv-stack .sv-stage { --p: 0; position: relative; padding: 40px 44px 44px; border-radius: 36px; background: #fff;
  box-shadow: 0 0 0 1px var(--line), 0 -24px 60px -40px rgba(10, 26, 63, .45), 0 40px 70px -50px rgba(10, 26, 63, .4);
  transform-origin: 50% 0; }
.sv-stack .sv-stage::after { content: ""; position: absolute; inset: 0; z-index: 3; border-radius: inherit; background: #0a1a3f; opacity: calc(var(--p) * .22); pointer-events: none; }
.sv-stack .sv-stage .sv-eyebrow { margin-bottom: 14px; }
.sv-stack .sv-stage-head { margin-bottom: 18px; }
.sv-stack .sv-stage-no { width: 52px; height: 52px; border-radius: 16px; background: var(--p-blue); color: var(--brand); }
.sv-stack .sv-stage-no svg { width: 24px; height: 24px; }
.sv-stack .sv-stage .sv-sub { font-size: clamp(24px, 2.4vw, 32px); line-height: 1.2; letter-spacing: -0.03em; }
@media (min-width: 761px) {
  .sv-stack .sv-stage { position: sticky; top: calc(104px + var(--i, 0) * 18px); scale: calc(1 - var(--p) * .06); }
}
/* entrance */
.sv-js .sv-stack .sv-stage { opacity: 0; translate: 0 70px; transition: opacity .8s cubic-bezier(.22, .8, .24, 1), translate 1s cubic-bezier(.22, .8, .24, 1); }
.sv-js .sv-stack .sv-stage.is-in { opacity: 1; translate: 0 0; }
.sv-js .sv-stack .sv-stage .sv-card-list li { opacity: 0; translate: 0 8px; transition: opacity .5s ease, translate .5s cubic-bezier(.22, .8, .24, 1); }
.sv-js .sv-stack .sv-stage.is-in .sv-card-list li { opacity: 1; translate: 0 0; }
.sv-stack .sv-card-list li:nth-child(1) { transition-delay: .35s; } .sv-stack .sv-card-list li:nth-child(2) { transition-delay: .4s; }
.sv-stack .sv-card-list li:nth-child(3) { transition-delay: .45s; } .sv-stack .sv-card-list li:nth-child(4) { transition-delay: .5s; }
.sv-stack .sv-card-list li:nth-child(5) { transition-delay: .55s; } .sv-stack .sv-card-list li:nth-child(6) { transition-delay: .6s; }
.sv-stack .sv-card-list li:nth-child(7) { transition-delay: .65s; } .sv-stack .sv-card-list li:nth-child(8) { transition-delay: .7s; }
@media (prefers-reduced-motion: reduce) {
  .sv-js .sv-stack .sv-stage, .sv-js .sv-stack .sv-stage .sv-card-list li { opacity: 1; translate: none; transition: none; }
  .sv-stack .sv-stage { scale: none; }
  .sv-stack .sv-stage::after { display: none; }
}
/* a single text column that runs the full width */
.sv-prose-wide { max-width: none; }

/* a single text column that runs the full width */
.sv-prose-wide { max-width: none; }
/* lists inside stacking cards stay compact so every card fits on a laptop screen */
.sv-stack .sv-ledger--in { grid-template-columns: 1fr 1fr; gap: 10px 14px; margin: 12px 0; }
.sv-stack .sv-ledger--in li { padding: 12px 16px; gap: 12px; font-size: 15px; line-height: 1.7; }
.sv-stack .sv-ledger--in .sv-ledger-no { width: 34px; height: 34px; border-radius: 10px; }
@media (max-width: 760px) { .sv-stack .sv-ledger--in { grid-template-columns: 1fr; } }

/* Consistent line heights, matching the pre-redesign pages: body 1.7, headings 1.2, FAQ questions 1.5 */
main :is(p, li):not(.sv-cta *, .sv-stat-num, .sv-q-mark) { line-height: 1.7; }
main .sv-hero .hv-h1 { line-height: 1.2; }
main :is(.hv-h2, h2):not(.sv-cta *) { line-height: 1.2; }
main h3:not(.sv-cta *) { line-height: 1.3; }
main .sv-faq-q h3 { line-height: 1.5; }

/* Short service pages (Budget Forecasting, HR Management and Outsourcing): "why" split with four pastel cards, three-step
   process, and the consultation hand-off strip. */
.sh-why { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 64px; align-items: start; }
.sh-why-copy { position: sticky; top: 120px; }
.sh-why-title { margin: 0; font-size: clamp(32px, 3.7vw, 50px); line-height: 1.1; font-weight: 700; letter-spacing: -0.032em; color: var(--ink); }
.sh-why-title span { display: block; color: var(--brand); }
.sh-why-copy .hv-lead { margin-top: 22px; }
.sh-why-copy .hv-btn { margin-top: 30px; }
.sh-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.sh-card { display: flex; flex-direction: column; padding: 30px; border-radius: var(--r-lg); outline: 1.5px solid rgba(20, 69, 194, .12); outline-offset: -1.5px; }
.sh-card-ic { display: inline-flex; align-items: center; justify-content: center; width: 54px; height: 54px; border-radius: 16px; background: #fff; color: var(--brand); }
.sh-card-ic svg { width: 24px; height: 24px; }
.sh-card-t { display: block; margin-top: 22px; font-size: 21px; line-height: 1.25; font-weight: 700; letter-spacing: -0.02em; color: var(--ink); }
.sh-card p { margin-top: 10px; font-size: 15.5px; line-height: 1.65; color: var(--body); }

.sh-how-head { max-width: 640px; margin: 0 auto; text-align: center; }
.sh-how-head p { margin-top: 16px; font-size: 18px; line-height: 1.65; color: var(--body); }
.sh-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 48px 0 0; padding: 0; list-style: none; }
.sh-steps li { position: relative; display: flex; flex-direction: column; padding: 32px 30px; border-radius: var(--r-md); background: #fff; box-shadow: 0 0 0 1px var(--line); }
.sh-step-no { display: inline-flex; align-items: center; justify-content: center; align-self: flex-start; min-width: 52px; height: 52px; padding: 0 14px; border-radius: 16px; background: var(--ink); color: #fff; font-size: 17px; font-weight: 700; letter-spacing: .02em; }
.sh-step-t { display: block; margin-top: 22px; font-size: 20px; line-height: 1.3; font-weight: 700; letter-spacing: -0.02em; color: var(--ink); }
.sh-steps p { margin-top: 10px; font-size: 15.5px; line-height: 1.65; color: var(--body); }
.sh-how-cta { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 44px; }

@media (max-width: 1100px) {
  .sh-why { grid-template-columns: 1fr; gap: 36px; }
  .sh-why-copy { position: static; }
  .sh-steps { grid-template-columns: 1fr; }
}
@media (max-width: 640px) { .sh-cards { grid-template-columns: 1fr; } }

/* "Did you find what you were looking for?" strip, and the consultation band headline (a paragraph here, styled like the Pricing page headline) */
.sh-find { text-align: center; padding-top: 96px; }
.sh-find .hv-btn { margin-top: 22px; }
.pr-consult p.hv-h2 { margin-top: 40px; font-size: clamp(30px, 3.2vw, 44px); color: #fff; }
.pr-consult p.hv-h2 .hv-accent { color: #fff; opacity: .78; }
@media (max-width: 720px) { .sh-find { padding-top: 56px; } }
main p.sh-why-title, main p.hv-h2 { line-height: 1.15; }
main .sh-step-t, main .sh-card-t { line-height: 1.25; }
