/*
 * Kybervega — SIGNAL SHEET (v2 visual system)
 * Loaded after kybervega.css. Every rule is scoped to pages whose hero group carries `.kv-v2`,
 * so the system can be rolled out page by page (add `kv-v2` to a page's hero group to opt in).
 *
 * Idea: each page is an engineered decision sheet. Cool paper with a faint drafting grid, ink linework,
 * flat colour planes (no outlines), crop marks and a title block on heroes, and ONE orange signal route
 * that runs from need to decision. All components are ordinary Gutenberg blocks plus these classes.
 *
 *   Hero ........ .kv-sheet (+ --home --hub --solution --hosting)   title block = .kv-meta
 *   Route ....... ol.kv-route (+ --at-1..5)
 *   Lines ....... .kv-line (+ --infra --growth --ops) > ul.kv-stations (+ --3)
 *   Tiles ....... .kv-tiles > .kv-tile (+ --slug for emblem)
 *   Planes ...... .kv-planes > .kv-plane (--guides --solutions)
 *   Statement ... .kv-statement
 *   Bands ....... .kv-section--ink  .kv-section--indigo  .kv-section--alt (paper + dot grid)
 *   Choosers .... .kv-choose--route (rail)  .kv-choose--panels (masonry)
 *   Shortlist ... .kv-shortlist (future provider module, empty state today)
 *   Title block . .kv-titleblock
 */

/* ------------------------------------------------------------------ tokens */
:root{
  --kv-paper:#f4f5fb;
  --kv-paper-2:#eceefa;
  --kv-grid:rgba(16,33,54,.075);
  --kv-hair:rgba(16,33,54,.16);
  --kv-signal:var(--kv-orange);
  --kv-ease:cubic-bezier(.22,1,.36,1);
}

/* ------------------------------------------------------------------ base type, links, focus (scoped) */
body:has(.kv-v2){--kv-measure:66ch}
body:has(.kv-v2) h1{font-size:clamp(2.5rem,1.35rem + 4vw,4.75rem);line-height:1.02;letter-spacing:-.032em}
body:has(.kv-v2) h2{font-size:clamp(1.875rem,1.25rem + 2vw,3.125rem);line-height:1.08;letter-spacing:-.026em;font-weight:600}
body:has(.kv-v2) h3{letter-spacing:-.012em}
/* link colours: see 'LINK AUTHORITY' at the end of this file */
body:has(.kv-v2) :focus-visible{outline:3px solid var(--kv-indigo);outline-offset:3px;border-radius:2px}
body:has(.kv-v2) .kv-section--ink :focus-visible,body:has(.kv-v2) .kv-section--indigo :focus-visible{outline-color:var(--kv-yellow)}

/* buttons: primary fills with a small directional cue, secondary is a hairline ink outline */
body:has(.kv-v2) .wp-block-button:not(.is-style-outline) .wp-block-button__link{background:var(--kv-indigo);color:#fff;border:2px solid var(--kv-indigo);border-radius:6px;font-weight:600;letter-spacing:0;display:inline-flex;align-items:center;gap:.6em;transition:background .18s var(--kv-ease),border-color .18s var(--kv-ease),transform .18s var(--kv-ease)}
body:has(.kv-v2) .wp-block-button:not(.is-style-outline) .wp-block-button__link::after{content:"";width:1.05em;height:.7em;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 12'%3E%3Cpath d='M0 6h17M12 1l5 5-5 5' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 12'%3E%3Cpath d='M0 6h17M12 1l5 5-5 5' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform .18s var(--kv-ease)}
body:has(.kv-v2) .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover{background:var(--kv-indigo-600);border-color:var(--kv-indigo-600);color:#fff}
body:has(.kv-v2) .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover::after{transform:translateX(4px)}
body:has(.kv-v2) .wp-block-button.is-style-outline .wp-block-button__link{background:transparent;color:var(--kv-ink);border:2px solid var(--kv-ink);border-radius:6px;font-weight:600}
body:has(.kv-v2) .wp-block-button.is-style-outline .wp-block-button__link:hover{background:var(--kv-ink);color:#fff}
body:has(.kv-v2) .kv-section--ink .wp-block-button:not(.is-style-outline) .wp-block-button__link,body:has(.kv-v2) .kv-section--indigo .wp-block-button:not(.is-style-outline) .wp-block-button__link{background:var(--kv-yellow);border-color:var(--kv-yellow);color:var(--kv-ink)}
body:has(.kv-v2) .kv-section--ink .wp-block-button.is-style-outline .wp-block-button__link,body:has(.kv-v2) .kv-section--indigo .wp-block-button.is-style-outline .wp-block-button__link{color:#fff;border-color:rgba(255,255,255,.7)}
body:has(.kv-v2) .kv-section--ink .wp-block-button.is-style-outline .wp-block-button__link:hover,body:has(.kv-v2) .kv-section--indigo .wp-block-button.is-style-outline .wp-block-button__link:hover{background:#fff;color:var(--kv-ink);border-color:#fff}

/* ------------------------------------------------------------------ section surfaces */
body:has(.kv-v2) .kv-section--alt{background-color:var(--kv-paper);background-image:radial-gradient(rgba(16,33,54,.11) 1px,transparent 1.2px);background-size:22px 22px}
body:has(.kv-v2) .kv-section--ink{background-color:var(--kv-ink);color:#cfd8e4;background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);background-size:56px 56px}
body:has(.kv-v2) .kv-section--indigo{background-color:var(--kv-indigo);color:#ece7ff;background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);background-size:56px 56px}
body:has(.kv-v2) .kv-section--indigo h2,body:has(.kv-v2) .kv-section--indigo h3,body:has(.kv-v2) .kv-section--indigo strong,body:has(.kv-v2) .kv-section--indigo .kv-lead{color:#fff}
body:has(.kv-v2) .kv-section--indigo :where(p,li)>a:not(.wp-block-button__link){color:#fff;text-decoration-color:var(--kv-yellow)}
body:has(.kv-v2) .kv-section--ink .kv-lead,body:has(.kv-v2) .kv-section--ink p{color:#cfd8e4}
body:has(.kv-v2) .kv-section--ink :where(p,li)>a:not(.wp-block-button__link){color:#fff;text-decoration-color:var(--kv-yellow)}
body:has(.kv-v2) .kv-section--ink li::marker,body:has(.kv-v2) .kv-section--indigo li::marker{color:var(--kv-yellow)}
body:has(.kv-v2) .kv-section--indigo .kv-callout{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.35)}
body:has(.kv-v2) .kv-section--indigo .kv-callout p,body:has(.kv-v2) .kv-section--indigo .kv-callout .kv-callout__title{color:#fff}
body:has(.kv-v2) .kv-section--indigo .kv-matrix{border-color:transparent;box-shadow:0 1px 0 rgba(0,0,0,.2)}
body:has(.kv-v2) .kv-section--indigo .kv-matrix figcaption{color:var(--kv-text)}
body:has(.kv-v2) :is(.kv-section--indigo,.kv-section--ink) .kv-matrix tbody :is(td,td p){color:var(--kv-text)}
body:has(.kv-v2) :is(.kv-section--indigo,.kv-section--ink) .kv-matrix tbody td:first-child,body:has(.kv-v2) :is(.kv-section--indigo,.kv-section--ink) .kv-matrix td strong{color:var(--kv-ink)}
body:has(.kv-v2) :is(.kv-section--indigo,.kv-section--ink) .kv-matrix td strong{color:var(--kv-indigo-700)}
body:has(.kv-v2) :is(.kv-section--indigo,.kv-section--ink) .kv-matrix thead th{color:#fff}
body:has(.kv-v2) .kv-section--ink .kv-split__head h2,body:has(.kv-v2) .kv-section--indigo .kv-split__head h2{color:#fff}

/* ------------------------------------------------------------------ HERO: the sheet */
body:has(.kv-v2) .kv-sheet{position:relative;overflow:hidden;background-color:#fff;border-bottom:1px solid var(--kv-hair);padding-block:clamp(3rem,6vw,5.5rem) clamp(2.5rem,5vw,4.25rem);
  /* crop marks at the four corners of the sheet */
  background-image:
    linear-gradient(var(--kv-ink),var(--kv-ink)),linear-gradient(var(--kv-ink),var(--kv-ink)),
    linear-gradient(var(--kv-ink),var(--kv-ink)),linear-gradient(var(--kv-ink),var(--kv-ink)),
    linear-gradient(var(--kv-ink),var(--kv-ink)),linear-gradient(var(--kv-ink),var(--kv-ink)),
    linear-gradient(var(--kv-ink),var(--kv-ink)),linear-gradient(var(--kv-ink),var(--kv-ink));
  background-repeat:no-repeat;
  background-size:14px 1px,1px 14px,14px 1px,1px 14px,14px 1px,1px 14px,14px 1px,1px 14px;
  background-position:12px 12px,12px 12px,calc(100% - 12px) 12px,calc(100% - 12px) 12px,12px calc(100% - 12px),12px calc(100% - 12px),calc(100% - 12px) calc(100% - 12px),calc(100% - 12px) calc(100% - 12px)}
body:has(.kv-v2) .kv-sheet::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(var(--kv-grid) 1px,transparent 1px),linear-gradient(90deg,var(--kv-grid) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:linear-gradient(90deg,transparent 30%,#000 78%);mask-image:linear-gradient(90deg,transparent 30%,#000 78%)}
html body:has(.kv-v2) .kv-hero.kv-sheet::after{content:"";position:absolute;right:max(1.25rem,calc((100% - 75rem) / 2 - 2rem));top:50%;width:min(44vw,600px);aspect-ratio:640/520;transform:translateY(-50%);background:center/contain no-repeat;pointer-events:none;opacity:1}
html body:has(.kv-v2) .kv-hero.kv-sheet--home::after{background-image:url(../img/sheet/hero-home.svg);width:min(46vw,640px)}
html body:has(.kv-v2) .kv-hero.kv-sheet--hub::after{background-image:url(../img/sheet/hero-hub.svg)}
html body:has(.kv-v2) .kv-hero.kv-sheet--solution::after{background-image:url(../img/sheet/hero-solution.svg)}
html body:has(.kv-v2) .kv-hero.kv-sheet--hosting::after{background-image:url(../img/sheet/hero-hosting.svg)}
body:has(.kv-v2) .kv-sheet .kv-container{position:relative;z-index:1}
body:has(.kv-v2) .kv-sheet .kv-container>*{max-width:min(100%,37rem)}
body:has(.kv-v2) .kv-sheet h1{max-width:13ch;font-weight:700;text-wrap:balance}
body:has(.kv-v2) .kv-sheet--home h1{max-width:11ch;font-size:clamp(2.75rem,1.3rem + 5vw,5.5rem)}
body:has(.kv-v2) .kv-sheet .kv-lead{font-size:clamp(1.125rem,1rem + .5vw,1.4375rem);color:var(--kv-text)}
body:has(.kv-v2) .kv-sheet .wp-block-buttons{margin-top:2rem;gap:.85rem}
/* title block: review date, page label, disclosure, drawn like a drawing's title block */
body:has(.kv-v2) .kv-sheet .kv-meta{display:inline-flex;flex-wrap:wrap;margin-top:2.25rem;border:1.5px solid var(--kv-ink);background:#fff;max-width:100%;font-size:.8125rem;line-height:1.3;color:var(--kv-ink)}
body:has(.kv-v2) .kv-sheet .kv-meta span{padding:.6rem 1rem;border-left:1.5px solid var(--kv-ink)}
body:has(.kv-v2) .kv-sheet .kv-meta span:first-child{border-left:0}
body:has(.kv-v2) .kv-sheet .kv-meta span::after{content:none;display:none}
body:has(.kv-v2) .kv-sheet .kv-meta a{color:var(--kv-ink)}
body:has(.kv-v2) .kv-sheet .kv-crumb{color:var(--kv-ink);font-weight:500}
@media (max-width:999px){
  body:has(.kv-v2) .kv-sheet::before{-webkit-mask-image:none;mask-image:none;opacity:.6}
  body:has(.kv-v2) .kv-sheet .kv-container>*{max-width:100%}
  body:has(.kv-v2) .kv-sheet{padding-bottom:0}
  html body:has(.kv-v2) .kv-hero.kv-sheet::after{position:relative;display:block;right:auto;top:auto;transform:none;width:min(88vw,460px);margin:2rem auto 0;left:auto}
  body:has(.kv-v2) .kv-sheet .kv-meta{margin-top:1.75rem}
}
@media (max-width:520px){body:has(.kv-v2) .kv-sheet .kv-meta span{flex:1 1 100%;border-left:0;border-top:1.5px solid var(--kv-ink)}body:has(.kv-v2) .kv-sheet .kv-meta span:first-child{border-top:0}}

/* ------------------------------------------------------------------ ROUTE: need -> class -> providers -> why -> action */
body:has(.kv-v2) ol.kv-route{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));max-width:none}
body:has(.kv-v2) .kv-route li{position:relative;margin:0;padding:2.25rem 1.25rem 0 0;max-width:none}
body:has(.kv-v2) .kv-route li::before{content:"";position:absolute;left:0;top:.25rem;width:1.25rem;height:1.25rem;border-radius:50%;background:#fff;border:4px solid var(--kv-signal);z-index:1;transition:background .2s var(--kv-ease)}
body:has(.kv-v2) .kv-route li::after{content:"";position:absolute;left:1.25rem;right:0;top:.5rem;height:4px;background:var(--kv-signal);transform-origin:left;animation:kv-route-draw .7s var(--kv-ease) both}
body:has(.kv-v2) .kv-route li:last-child::after{display:none}
body:has(.kv-v2) .kv-route li:nth-child(2)::after{animation-delay:.12s}body:has(.kv-v2) .kv-route li:nth-child(3)::after{animation-delay:.24s}body:has(.kv-v2) .kv-route li:nth-child(4)::after{animation-delay:.36s}
body:has(.kv-v2) .kv-route a{display:block;color:var(--kv-ink);text-decoration:none!important}
body:has(.kv-v2) .kv-route strong{display:block;font-family:var(--kv-font-head);font-weight:600;font-size:1.125rem;line-height:1.25;color:var(--kv-ink)}
body:has(.kv-v2) .kv-route span{display:block;margin-top:.35rem;font-size:.9375rem;line-height:1.45;color:var(--kv-text)}
body:has(.kv-v2) .kv-route a:hover strong{color:var(--kv-indigo-700)}
body:has(.kv-v2) .kv-route li:hover::before,body:has(.kv-v2) .kv-route li:focus-within::before{background:var(--kv-signal)}
body:has(.kv-v2) .kv-route li:last-child::before{background:var(--kv-yellow);border-color:var(--kv-ink)}
@keyframes kv-route-draw{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media (max-width:899px){
  body:has(.kv-v2) ol.kv-route{grid-template-columns:minmax(0,1fr)}
  body:has(.kv-v2) .kv-route li{padding:0 0 1.6rem 2.5rem}
  body:has(.kv-v2) .kv-route li::before{top:.15rem}
  body:has(.kv-v2) .kv-route li::after{left:.5rem;top:1.5rem;bottom:-.1rem;right:auto;width:4px;height:auto;transform-origin:top;animation-name:kv-route-draw-y}
  @keyframes kv-route-draw-y{from{transform:scaleY(0)}to{transform:scaleY(1)}}
}
body:has(.kv-v2) .kv-route-band{padding-block:2.25rem 2.5rem;border-bottom:1px solid var(--kv-hair);background:#fff}

/* ------------------------------------------------------------------ TOPIC LINES (Home): ten topics as stations on three lines */
body:has(.kv-v2) .kv-lines{margin-top:2.5rem}
body:has(.kv-v2) .kv-line{--lc:var(--kv-indigo);display:grid;grid-template-columns:minmax(0,3fr) minmax(0,9fr);gap:1rem clamp(1.5rem,4vw,4rem);padding-block:2.25rem 2.5rem;border-top:1.5px solid var(--kv-ink)}
body:has(.kv-v2) .kv-line--growth{--lc:var(--kv-orange)}
body:has(.kv-v2) .kv-line--ops{--lc:var(--kv-ink)}
body:has(.kv-v2) .kv-line>*{margin:0}
body:has(.kv-v2) .kv-line__head h3{font-size:clamp(1.375rem,1.1rem + .9vw,1.875rem);line-height:1.1;display:flex;align-items:center;gap:.7rem}
body:has(.kv-v2) .kv-line__head h3::before{content:"";flex:none;width:2.75rem;height:.7rem;border-radius:.35rem;background:var(--lc)}
body:has(.kv-v2) .kv-line__head p{margin-top:.7rem;font-size:1rem;max-width:26ch}
body:has(.kv-v2) ul.kv-stations{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));position:relative;max-width:none}
body:has(.kv-v2) .kv-stations::before{content:"";position:absolute;left:.65rem;top:.5rem;height:6px;width:calc(75% - .65rem);border-radius:3px;background:var(--lc)}
body:has(.kv-v2) .kv-stations--3::before{width:calc(50% - .65rem)}
body:has(.kv-v2) .kv-stations li{position:relative;margin:0;padding:2.1rem 1.25rem 0 0;max-width:none}
body:has(.kv-v2) .kv-stations li::before{content:"";position:absolute;left:0;top:-.1rem;width:1.5rem;height:1.5rem;border-radius:50%;background:#fff;border:5px solid var(--lc);z-index:1}
body:has(.kv-v2) .kv-stations strong{display:block;font-family:var(--kv-font-head);font-weight:600;font-size:1.1875rem;line-height:1.25;color:var(--kv-ink)}
body:has(.kv-v2) .kv-stations strong a{color:var(--kv-ink)!important;text-decoration:none!important}
body:has(.kv-v2) .kv-stations strong a:hover{color:var(--kv-indigo-700)!important;text-decoration:underline!important;text-decoration-color:var(--lc)!important;text-decoration-thickness:3px!important}
body:has(.kv-v2) .kv-stations span{display:block;margin-top:.4rem;font-size:.9375rem;line-height:1.45;color:var(--kv-text)}
body:has(.kv-v2) .kv-stations small{display:flex;gap:1rem;margin-top:.7rem;font-size:.875rem;font-weight:500}
body:has(.kv-v2) .kv-stations small a{color:var(--kv-ink)!important;text-decoration:underline!important;text-decoration-color:var(--lc)!important;text-decoration-thickness:2px!important;text-underline-offset:.22em}
@media (max-width:999px){body:has(.kv-v2) .kv-line{grid-template-columns:minmax(0,1fr)}body:has(.kv-v2) .kv-line__head p{max-width:none}}
@media (max-width:699px){
  body:has(.kv-v2) ul.kv-stations{grid-template-columns:minmax(0,1fr)}
  body:has(.kv-v2) .kv-stations::before,body:has(.kv-v2) .kv-stations--3::before{left:.6rem;top:.5rem;width:6px;height:calc(100% - 1.5rem)}
  body:has(.kv-v2) .kv-stations li{padding:0 0 1.6rem 2.6rem}
  body:has(.kv-v2) .kv-stations li:last-child{padding-bottom:0}
  body:has(.kv-v2) .kv-stations li::before{top:0}
}

/* ------------------------------------------------------------------ TILES (Solutions hub): topics with flat-plane emblems */
body:has(.kv-v2) .kv-tiles{align-items:stretch;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:1.25rem;margin-top:1.5rem}
body:has(.kv-v2) .kv-tile{height:100%;position:relative;display:flex;flex-direction:column;gap:.55rem;padding:1.35rem 1.4rem 1.2rem;background:#fff;border:1.5px solid var(--kv-ink);border-radius:4px;transition:border-color .18s var(--kv-ease),transform .18s var(--kv-ease),box-shadow .18s var(--kv-ease)}
body:has(.kv-v2) .kv-tile>*{margin:0}
body:has(.kv-v2) .kv-tile::before{content:"";width:3.25rem;height:3.25rem;margin-bottom:.6rem;background:center/contain no-repeat;transition:transform .25s var(--kv-ease)}
body:has(.kv-v2) .kv-tile h3{font-size:1.3125rem;line-height:1.2}
body:has(.kv-v2) .kv-tile h3 a{color:var(--kv-ink)!important;text-decoration:none!important}
body:has(.kv-v2) .kv-tile h3 a::after{content:"";position:absolute;inset:0;z-index:0}
body:has(.kv-v2) .kv-tile p{font-size:1rem;line-height:1.5}
body:has(.kv-v2) .kv-tile .kv-tile__meta{margin-top:auto;padding-top:.9rem;border-top:1px solid var(--kv-hair);display:flex;flex-wrap:wrap;gap:.25rem 1rem;font-size:.875rem;color:var(--kv-text);position:relative;z-index:1}
body:has(.kv-v2) .kv-tile .kv-tile__meta a{color:var(--kv-ink)!important;font-weight:600;text-decoration:underline!important;text-decoration-color:var(--kv-indigo)!important;text-decoration-thickness:2px!important;text-underline-offset:.2em}
body:has(.kv-v2) .kv-tile:hover{transform:translateY(-3px);box-shadow:0 10px 24px -14px rgba(16,33,54,.45);border-color:var(--kv-indigo)}
body:has(.kv-v2) .kv-tile:hover::before{transform:translateX(4px) rotate(-3deg)}
@media (prefers-reduced-motion:reduce){body:has(.kv-v2) .kv-tile:hover,body:has(.kv-v2) .kv-tile:hover::before{transform:none}}
/* emblems: also used beside related-topic links */
body:has(.kv-v2) .kv-tile--hosting::before,body:has(.kv-v2) .kv-related li:has(a[href$="/hosting/"])::before{background-image:url(../img/sheet/emblem-hosting.svg)}
body:has(.kv-v2) .kv-tile--cms::before,body:has(.kv-v2) .kv-related li:has(a[href$="/cms/"])::before{background-image:url(../img/sheet/emblem-cms.svg)}
body:has(.kv-v2) .kv-tile--ecommerce::before,body:has(.kv-v2) .kv-related li:has(a[href$="/ecommerce/"])::before{background-image:url(../img/sheet/emblem-ecommerce.svg)}
body:has(.kv-v2) .kv-tile--marketing::before,body:has(.kv-v2) .kv-related li:has(a[href$="/marketing/"])::before{background-image:url(../img/sheet/emblem-marketing.svg)}
body:has(.kv-v2) .kv-tile--crm::before,body:has(.kv-v2) .kv-related li:has(a[href$="/crm/"])::before{background-image:url(../img/sheet/emblem-crm.svg)}
body:has(.kv-v2) .kv-tile--analytics::before,body:has(.kv-v2) .kv-related li:has(a[href$="/analytics/"])::before{background-image:url(../img/sheet/emblem-analytics.svg)}
body:has(.kv-v2) .kv-tile--security-backup::before,body:has(.kv-v2) .kv-related li:has(a[href$="/security-backup/"])::before{background-image:url(../img/sheet/emblem-security-backup.svg)}
body:has(.kv-v2) .kv-tile--productivity::before,body:has(.kv-v2) .kv-related li:has(a[href$="/productivity/"])::before{background-image:url(../img/sheet/emblem-productivity.svg)}
body:has(.kv-v2) .kv-tile--ai-automation::before,body:has(.kv-v2) .kv-related li:has(a[href$="/ai-automation/"])::before{background-image:url(../img/sheet/emblem-ai-automation.svg)}
body:has(.kv-v2) .kv-tile--payments-finance::before,body:has(.kv-v2) .kv-related li:has(a[href$="/payments-finance/"])::before{background-image:url(../img/sheet/emblem-payments-finance.svg)}
body:has(.kv-v2) .kv-related li:has(a[href*="/guides/"],a[href*="/solutions/"])::before{content:"";width:2.75rem;height:2.75rem;background-repeat:no-repeat;background-size:contain;background-position:center}
body:has(.kv-v2) .kv-section .kv-related li{grid-template-columns:3.25rem minmax(0,5fr) minmax(0,7fr);align-items:center;column-gap:1.25rem}
@media (max-width:781px){body:has(.kv-v2) .kv-section .kv-related li{grid-template-columns:3.25rem minmax(0,1fr);row-gap:.35rem}body:has(.kv-v2) .kv-related li>a{grid-column:2}}
body:has(.kv-v2) .kv-line-title{font-size:clamp(1.375rem,1.1rem + .9vw,1.875rem);margin-top:3rem;display:flex;align-items:center;gap:.7rem}
body:has(.kv-v2) .kv-line-title::before{content:"";flex:none;width:2.75rem;height:.7rem;border-radius:.35rem;background:var(--lc,var(--kv-indigo))}
body:has(.kv-v2) .kv-line-title--growth{--lc:var(--kv-orange)}body:has(.kv-v2) .kv-line-title--ops{--lc:var(--kv-ink)}
body:has(.kv-v2) .kv-line-note{margin-top:.5rem;font-size:1rem;max-width:60ch}

/* ------------------------------------------------------------------ STATEMENT + PLANES (Home) */
body:has(.kv-v2) .kv-statement{margin:0 0 clamp(2rem,4vw,3.25rem)}
body:has(.kv-v2) .kv-statement p{font-family:var(--kv-font-head);font-weight:600;font-size:clamp(2rem,1rem + 3.6vw,4.25rem);line-height:1.04;letter-spacing:-.03em;color:var(--kv-ink);max-width:18ch;text-wrap:balance}
body:has(.kv-v2) .kv-statement strong{color:var(--kv-ink);font-weight:700;box-shadow:inset 0 -.34em 0 var(--kv-yellow)}
body:has(.kv-v2) .kv-planes{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;gap:0}
body:has(.kv-v2) .kv-plane{padding:clamp(1.5rem,3vw,2.5rem);min-width:0}
body:has(.kv-v2) .kv-plane>*+*{margin-top:1rem}
body:has(.kv-v2) .kv-plane :is(h2,h3){font-size:clamp(1.75rem,1.2rem + 1.6vw,2.75rem);letter-spacing:-.025em;line-height:1.05}
body:has(.kv-v2) .kv-plane p{font-size:1.0625rem;max-width:44ch}
body:has(.kv-v2) .kv-plane--guides{grid-column:1 / span 7;background:var(--kv-indigo);color:#ece7ff;position:relative;z-index:1}
body:has(.kv-v2) .kv-plane--guides :is(h2,h3),body:has(.kv-v2) .kv-plane--guides strong{color:#fff}
body:has(.kv-v2) .kv-plane--guides p{color:#ece7ff}
body:has(.kv-v2) .kv-plane--solutions{grid-column:7 / span 6;margin-top:clamp(2rem,5vw,4rem);background:var(--kv-yellow);color:var(--kv-ink);position:relative;z-index:2}
body:has(.kv-v2) .kv-plane--solutions :is(h2,h3),body:has(.kv-v2) .kv-plane--solutions p,body:has(.kv-v2) .kv-plane--solutions strong{color:var(--kv-ink)}
body:has(.kv-v2) .kv-plane .wp-block-button:not(.is-style-outline) .wp-block-button__link{background:var(--kv-ink);border-color:var(--kv-ink);color:#fff}
body:has(.kv-v2) .kv-plane--guides .wp-block-button:not(.is-style-outline) .wp-block-button__link{background:var(--kv-yellow);border-color:var(--kv-yellow);color:var(--kv-ink)}
@media (max-width:899px){body:has(.kv-v2) .kv-planes{grid-template-columns:minmax(0,1fr)}body:has(.kv-v2) .kv-plane--guides,body:has(.kv-v2) .kv-plane--solutions{grid-column:1;margin-top:0}body:has(.kv-v2) .kv-plane--solutions{margin-top:-.0rem}}

/* three ruled commitments on an ink band */
body:has(.kv-v2) .kv-cols3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem clamp(1.5rem,4vw,3.5rem);margin-top:2.5rem}
body:has(.kv-v2) .kv-col{border-top:3px solid var(--kv-yellow);padding-top:1.1rem}
body:has(.kv-v2) .kv-col:nth-child(2){border-top-color:var(--kv-orange)}
body:has(.kv-v2) .kv-col:nth-child(3){border-top-color:#fff}
body:has(.kv-v2) .kv-col>*{margin:0}
body:has(.kv-v2) .kv-col>*+*{margin-top:.6rem}
body:has(.kv-v2) .kv-col h3{font-size:1.3125rem;color:#fff}
@media (max-width:899px){body:has(.kv-v2) .kv-cols3{grid-template-columns:minmax(0,1fr)}}

/* title block strip (operator, audience, contact) */
body:has(.kv-v2) .kv-titleblock{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1.5px solid var(--kv-ink);background:#fff}
body:has(.kv-v2) .kv-titleblock>*{margin:0;padding:1rem 1.25rem;border-left:1.5px solid var(--kv-ink);min-width:0}
body:has(.kv-v2) .kv-titleblock>*:first-child{border-left:0}
body:has(.kv-v2) .kv-titleblock h3{font-size:.875rem;font-weight:600;color:var(--kv-text);margin:0 0 .35rem;letter-spacing:.01em}
body:has(.kv-v2) .kv-titleblock p{font-size:1.0625rem;color:var(--kv-ink);font-weight:500;max-width:none}
@media (max-width:899px){body:has(.kv-v2) .kv-titleblock{grid-template-columns:minmax(0,1fr)}body:has(.kv-v2) .kv-titleblock>*{border-left:0;border-top:1.5px solid var(--kv-ink)}body:has(.kv-v2) .kv-titleblock>*:first-child{border-top:0}}

/* ------------------------------------------------------------------ CHOOSERS */
/* rail: a continuous signal line links each answer (Guide short answer) */
body:has(.kv-v2) .kv-choose--route{border-top:0;position:relative;margin-top:2.5rem}
body:has(.kv-v2) .kv-choose--route .kv-choose__row{position:relative;border-bottom:0;padding:0 0 2.25rem 3.25rem;grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
body:has(.kv-v2) .kv-choose--route .kv-choose__row::before{content:"";position:absolute;left:0;top:.2rem;width:1.5rem;height:1.5rem;border-radius:50%;background:#fff;border:5px solid var(--kv-signal);z-index:1}
body:has(.kv-v2) .kv-choose--route .kv-choose__row::after{content:"";position:absolute;left:.6875rem;top:1.7rem;bottom:-.1rem;width:4px;background:var(--kv-signal)}
body:has(.kv-v2) .kv-choose--route .kv-choose__row:last-child{padding-bottom:0}
body:has(.kv-v2) .kv-choose--route .kv-choose__row:last-child::after{display:none}
body:has(.kv-v2) .kv-choose--route .kv-choose__row:last-child::before{background:var(--kv-yellow);border-color:var(--kv-ink)}
body:has(.kv-v2) .kv-choose--route .kv-choose__row h3{font-size:clamp(1.25rem,1.1rem + .6vw,1.625rem);line-height:1.2}
@media (max-width:781px){body:has(.kv-v2) .kv-choose--route .kv-choose__row{grid-template-columns:minmax(0,1fr)}}
/* panels: staggered masonry of situations, each marked with one flat plane */
body:has(.kv-v2) .kv-choose--panels{border-top:0;column-count:2;column-gap:1.5rem;margin-top:2.25rem;display:block}
body:has(.kv-v2) .kv-choose--panels .kv-choose__row{display:block;break-inside:avoid;margin:0 0 1.5rem;padding:1.6rem 1.6rem 1.5rem;background:#fff;border:1.5px solid var(--kv-ink);border-radius:4px;position:relative;transition:border-color .18s var(--kv-ease),box-shadow .18s var(--kv-ease)}
body:has(.kv-v2) .kv-choose--panels .kv-choose__row::before{content:"";display:block;width:2rem;height:2rem;margin-bottom:1rem;background:var(--pl,var(--kv-indigo))}
body:has(.kv-v2) .kv-choose--panels .kv-choose__row:nth-child(1){--pl:var(--kv-indigo)}
body:has(.kv-v2) .kv-choose--panels .kv-choose__row:nth-child(2){--pl:var(--kv-orange)}
body:has(.kv-v2) .kv-choose--panels .kv-choose__row:nth-child(3){--pl:var(--kv-yellow)}
body:has(.kv-v2) .kv-choose--panels .kv-choose__row:nth-child(4){--pl:var(--kv-ink)}
body:has(.kv-v2) .kv-choose--panels .kv-choose__row:nth-child(5){--pl:var(--kv-indigo)}
body:has(.kv-v2) .kv-choose--panels .kv-choose__row:nth-child(6){--pl:var(--kv-orange)}
body:has(.kv-v2) .kv-choose--panels .kv-choose__row:nth-child(4n+1)::before{border-radius:50%}
body:has(.kv-v2) .kv-choose--panels .kv-choose__row:nth-child(4n+2)::before{border-radius:0}
body:has(.kv-v2) .kv-choose--panels .kv-choose__row:nth-child(4n+3)::before{border-radius:2rem 2rem 0 0;height:1rem;width:2rem}
body:has(.kv-v2) .kv-choose--panels .kv-choose__row:nth-child(4n)::before{border-radius:0 2rem 0 0}
body:has(.kv-v2) .kv-choose--panels .kv-choose__row h3{font-size:clamp(1.25rem,1.1rem + .5vw,1.5rem);margin-bottom:.55rem}
/* hover/pointer affordance only where the card is a real link (see Navigation, 1.14.0) */
@media (max-width:781px){body:has(.kv-v2) .kv-choose--panels{column-count:1}}

/* ------------------------------------------------------------------ SHORTLIST module (future provider comparison, empty state now) */
body:has(.kv-v2) .kv-shortlist{align-items:stretch;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);border:1.5px solid var(--kv-ink);background:#fff}
body:has(.kv-v2) .kv-shortlist__intro{padding:clamp(1.5rem,3vw,2.5rem);background:var(--kv-ink);color:#cfd8e4;background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:40px 40px}
body:has(.kv-v2) .kv-shortlist__intro>*{margin:0}
body:has(.kv-v2) .kv-shortlist__intro>*+*{margin-top:1rem}
body:has(.kv-v2) .kv-shortlist__intro h2{color:#fff;font-size:clamp(1.75rem,1.2rem + 1.5vw,2.5rem)}
body:has(.kv-v2) .kv-shortlist__intro p{color:#cfd8e4;font-size:1.0625rem}
body:has(.kv-v2) .kv-shortlist__intro a{color:#fff!important;text-decoration-color:var(--kv-yellow)!important}
body:has(.kv-v2) .kv-shortlist__chip{display:inline-block;padding:.3rem .75rem;background:var(--kv-yellow);color:var(--kv-ink)!important;font-family:var(--kv-font-head);font-weight:600;font-size:.8125rem;border-radius:2px}
body:has(.kv-v2) .kv-shortlist__slots{padding:clamp(1.25rem,2.5vw,2rem);display:grid;gap:1rem;align-content:start;background:var(--kv-paper)}
body:has(.kv-v2) .kv-shortlist__slots>*{margin:0}
body:has(.kv-v2) .kv-shortlist__cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;padding:0 1.25rem;font-family:var(--kv-font-head);font-size:.8125rem;font-weight:600;color:var(--kv-text)}
body:has(.kv-v2) .kv-shortlist__cols span{display:block}
body:has(.kv-v2) .kv-slot{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;align-items:center;min-height:4.75rem;padding:1rem 1.25rem;border:2px dashed var(--kv-ink);background:#fff;border-radius:4px}
body:has(.kv-v2) .kv-slot>*{margin:0}
body:has(.kv-v2) .kv-slot p:first-child{grid-column:1 / span 2;font-family:var(--kv-font-head);font-weight:600;font-size:1rem;color:var(--kv-ink);display:flex;align-items:center;gap:.75rem}
body:has(.kv-v2) .kv-slot .kv-slot__fields{grid-column:3 / -1;font-size:.875rem;line-height:1.4;color:var(--kv-text)}
body:has(.kv-v2) .kv-slot p:first-child::before{content:"";flex:none;width:.9rem;height:.9rem;background:var(--kv-yellow);border:2px solid var(--kv-ink)}
@media (max-width:999px){body:has(.kv-v2) .kv-shortlist{grid-template-columns:minmax(0,1fr)}body:has(.kv-v2) .kv-shortlist__cols{display:none}}
@media (max-width:640px){body:has(.kv-v2) .kv-slot{grid-template-columns:minmax(0,1fr)}body:has(.kv-v2) .kv-slot p:first-child,body:has(.kv-v2) .kv-slot .kv-slot__fields{grid-column:1}}
body:has(.kv-v2) .kv-shortlist-wrap{padding-block:clamp(2.5rem,5vw,4.5rem)}

/* ------------------------------------------------------------------ GUIDE devices */
/* sticky in-page navigation: ink bar with a live "you are here" marker */
body:has(.kv-v2) .kv-jump{background:var(--kv-ink);border-bottom:0}
body:has(.kv-v2) .kv-jump__label{color:var(--kv-yellow)}
body:has(.kv-v2) .entry-content .kv-jump__list a{color:#cfd8e4;padding:1rem 0;border-bottom-width:3px}
body:has(.kv-v2) .entry-content .kv-jump__list a:hover,body:has(.kv-v2) .entry-content .kv-jump__list a:focus-visible{color:#fff;border-bottom-color:var(--kv-yellow)}
body:has(.kv-v2) .entry-content .kv-jump__list a[aria-current="true"]{color:#fff;border-bottom-color:var(--kv-orange)}
body:has(.kv-v2) .kv-jump :focus-visible{outline-color:var(--kv-yellow)}
/* stacked two-column split: heading across the top, body in a two-column reading flow */
body:has(.kv-v2) .kv-split--stack{grid-template-columns:minmax(0,1fr)}
body:has(.kv-v2) .kv-split--stack .kv-split__head{position:static}
body:has(.kv-v2) .kv-split--stack .kv-split__body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.25rem clamp(2rem,5vw,5rem);align-items:start}
body:has(.kv-v2) .kv-split--stack .kv-split__body>*+*{margin-top:0}
body:has(.kv-v2) .kv-split--stack .kv-split__body ul{padding-left:0;list-style:none;display:grid;gap:.6rem}
body:has(.kv-v2) .kv-split--stack .kv-split__body ul li{position:relative;padding-left:1.6rem;margin:0}
body:has(.kv-v2) .kv-split--stack .kv-split__body ul li::before{content:"";position:absolute;left:0;top:.6em;width:.7rem;height:.7rem;background:var(--kv-orange)}
body:has(.kv-v2) .kv-split--stack .kv-split__body ul li:nth-child(3n+2)::before{background:var(--kv-indigo);border-radius:50%}
body:has(.kv-v2) .kv-split--stack .kv-split__body ul li:nth-child(3n)::before{background:var(--kv-yellow);box-shadow:0 0 0 1.5px var(--kv-ink)}
@media (max-width:899px){body:has(.kv-v2) .kv-split--stack .kv-split__body{grid-template-columns:minmax(0,1fr)}}
/* model columns: each one keyed by a colour rule */
body:has(.kv-v2) .kv-model{border-top-width:6px}
body:has(.kv-v2) .kv-model:nth-child(4n+1){border-top-color:var(--kv-indigo)}body:has(.kv-v2) .kv-model:nth-child(4n+2){border-top-color:var(--kv-orange)}
body:has(.kv-v2) .kv-model:nth-child(4n+3){border-top-color:var(--kv-yellow)}body:has(.kv-v2) .kv-model:nth-child(4n){border-top-color:var(--kv-ink)}
body:has(.kv-v2) .kv-model h3{font-size:clamp(1.3125rem,1.1rem + .6vw,1.625rem)}
body:has(.kv-v2) .kv-model .kv-pair{padding:1rem 1.1rem;background:var(--kv-paper);border-radius:3px}
body:has(.kv-v2) .kv-section--alt .kv-model .kv-pair{background:#fff}
/* criteria: plane bullet instead of a plain rule */
body:has(.kv-v2) .kv-criteria .kv-item{border-top:1.5px solid var(--kv-ink);position:relative;padding-top:1.4rem}
body:has(.kv-v2) .kv-criteria .kv-item::before{content:"";position:absolute;left:0;top:-.5rem;width:.95rem;height:.95rem;background:var(--kv-orange)}
body:has(.kv-v2) .kv-criteria .kv-item:nth-child(3n+2)::before{background:var(--kv-indigo);border-radius:50%}
body:has(.kv-v2) .kv-criteria .kv-item:nth-child(3n)::before{background:var(--kv-yellow);box-shadow:0 0 0 1.5px var(--kv-ink)}
/* migration steps and other ordered steps: nodes on a vertical route */
body:has(.kv-v2) ol.kv-steps{list-style:none;padding:0!important;margin-left:0;counter-reset:kvs;position:relative}
body:has(.kv-v2) ol.kv-steps>li{position:relative;counter-increment:kvs;padding:0 0 1.5rem 3.25rem;margin:0}
body:has(.kv-v2) ol.kv-steps>li::before{content:counter(kvs);position:absolute;left:0;top:0;width:2.1rem;height:2.1rem;border-radius:50%;background:var(--kv-ink);color:#fff;display:grid;place-items:center;font-family:var(--kv-font-head);font-weight:600;font-size:.9375rem;z-index:1}
body:has(.kv-v2) ol.kv-steps>li::after{content:"";position:absolute;left:1rem;top:2.2rem;bottom:.1rem;width:3px;background:var(--kv-orange)}
body:has(.kv-v2) ol.kv-steps>li:last-child::after{display:none}
/* ink band: the warning list reads as a checklist */
body:has(.kv-v2) .kv-section--ink .kv-split__body ul{list-style:none;padding-left:0}
body:has(.kv-v2) .kv-section--ink .kv-split__body li{position:relative;padding-left:1.75rem}
body:has(.kv-v2) .kv-section--ink .kv-split__body li::before{content:"";position:absolute;left:0;top:.55em;width:.8rem;height:.8rem;border:2.5px solid var(--kv-yellow);transform:rotate(45deg)}
body:has(.kv-v2) .kv-section--ink .kv-split__body li strong{color:#fff}
/* matrices: comparison highlighting + clearer numerals */
body:has(.kv-v2) .kv-matrix thead th{font-size:.875rem;letter-spacing:.01em}
body:has(.kv-v2) .kv-matrix tbody tr{transition:background .12s ease}
body:has(.kv-v2) .kv-matrix tbody tr:hover td{background:#fff7d6}
body:has(.kv-v2) .kv-matrix tbody tr:hover td:first-child{background:#fff2b8}
/* FAQ: plus/minus marker, ruled */
body:has(.kv-v2) .kv-faq{border-top-color:var(--kv-ink)}
body:has(.kv-v2) .kv-faq .wp-block-details summary{position:relative;list-style:none;cursor:pointer;font-family:var(--kv-font-head);font-weight:500;font-size:1.25rem;padding:1.35rem 3.25rem 1.35rem 0}
body:has(.kv-v2) .kv-faq .wp-block-details summary::-webkit-details-marker{display:none}
body:has(.kv-v2) .kv-faq .wp-block-details summary::marker{content:""}
body:has(.kv-v2) .kv-faq .wp-block-details summary::before,body:has(.kv-v2) .kv-faq .wp-block-details summary::after{content:"";position:absolute;right:.35rem;top:50%;width:1.1rem;height:3px;background:var(--kv-ink);transition:transform .22s var(--kv-ease)}
body:has(.kv-v2) .kv-faq .wp-block-details summary::after{transform:rotate(90deg)}
body:has(.kv-v2) .kv-faq .wp-block-details[open] summary::after{transform:rotate(0)}
body:has(.kv-v2) .kv-faq .wp-block-details[open] summary{color:var(--kv-indigo-700)}
body:has(.kv-v2) .kv-faq .wp-block-details[open] summary::before,body:has(.kv-v2) .kv-faq .wp-block-details[open] summary::after{background:var(--kv-indigo)}
/* sources: quiet reference typography */
body:has(.kv-v2) .kv-sources a{color:var(--kv-ink)!important}

/* related lists (guides + solutions) rule colour */
body:has(.kv-v2) .kv-related{border-top-color:var(--kv-ink)}

/* ------------------------------------------------------------------ motion: respect the user */
@media (prefers-reduced-motion:reduce){
  body:has(.kv-v2) .kv-route li::after{animation:none}
  body:has(.kv-v2) *{scroll-behavior:auto!important}
}

/* ------------------------------------------------------------------ LINK AUTHORITY
   The base theme styles every content link with (0,3,2) specificity; these rules match that weight
   so v2 pages own their link colours in each context. */
html body:has(.kv-v2) .entry-content a:not(.wp-block-button__link):not(.kv-plain){color:var(--kv-ink);text-decoration-line:underline;text-decoration-color:var(--kv-indigo);text-decoration-thickness:2px;text-underline-offset:.2em;transition:color .15s var(--kv-ease),text-decoration-color .15s var(--kv-ease)}
html body:has(.kv-v2) .entry-content a:not(.wp-block-button__link):not(.kv-plain):hover{color:var(--kv-indigo-700);text-decoration-color:var(--kv-orange);text-decoration-thickness:2px}
html body:has(.kv-v2) .entry-content :is(.kv-section--ink,.kv-section--indigo,.kv-shortlist__intro) a:not(.wp-block-button__link):not(.kv-plain){color:#fff;text-decoration-color:var(--kv-yellow)}
html body:has(.kv-v2) .entry-content :is(.kv-section--ink,.kv-section--indigo,.kv-shortlist__intro) a:not(.wp-block-button__link):not(.kv-plain):hover{color:var(--kv-yellow)}
html body:has(.kv-v2) .entry-content :is(.kv-crumb,.kv-route,.kv-related,.kv-jump__list) a:not(.wp-block-button__link):not(.kv-plain){text-decoration-line:none}
html body:has(.kv-v2) .entry-content .kv-crumb a:not(.wp-block-button__link):not(.kv-plain){color:var(--kv-ink);border-bottom:1.5px solid var(--kv-indigo)}
html body:has(.kv-v2) .entry-content .kv-jump__list a:not(.wp-block-button__link):not(.kv-plain){color:#cfd8e4}
html body:has(.kv-v2) .entry-content .kv-jump__list a:not(.wp-block-button__link):not(.kv-plain):hover,html body:has(.kv-v2) .entry-content .kv-jump__list a[aria-current="true"]:not(.wp-block-button__link){color:#fff}
html body:has(.kv-v2) .entry-content .kv-route a:not(.wp-block-button__link):not(.kv-plain){color:var(--kv-ink)}
html body:has(.kv-v2) .entry-content .kv-related a:not(.wp-block-button__link):not(.kv-plain){color:var(--kv-ink)}
html body:has(.kv-v2) .entry-content .kv-related a:not(.wp-block-button__link):not(.kv-plain):hover strong{color:var(--kv-indigo-700);text-decoration:underline;text-decoration-color:var(--kv-orange);text-decoration-thickness:2px;text-underline-offset:.2em}
html body:has(.kv-v2) .entry-content .kv-sources a:not(.wp-block-button__link):not(.kv-plain){text-decoration-thickness:1.5px}

/* ------------------------------------------------------------------ fixes from QA */
body:has(.kv-v2) .kv-shortlist>*,body:has(.kv-v2) .kv-shortlist__intro,body:has(.kv-v2) .kv-shortlist__slots{margin-block:0!important}
body:has(.kv-v2) .kv-shortlist__intro>*+*{margin-top:1rem!important}
/* mobile: tables scroll inside their frame; a soft edge shadow signals there is more to the right */
@media (max-width:899px){
  body:has(.kv-v2) .wp-block-table.kv-matrix{background:linear-gradient(90deg,#fff 30%,rgba(255,255,255,0)) 0 0/2.5rem 100% no-repeat local,linear-gradient(270deg,#fff 30%,rgba(255,255,255,0)) 100% 0/2.5rem 100% no-repeat local,radial-gradient(farthest-side at 100% 50%,rgba(16,33,54,.22),rgba(16,33,54,0)) 100% 0/.9rem 100% no-repeat scroll,#fff}
}

/* ------------------------------------------------------------------ TOPIC HERO ART (one diagram per topic) */
html body:has(.kv-v2) .kv-hero.kv-sheet--cms::after{background-image:url(../img/sheet/hero-cms.svg)}
html body:has(.kv-v2) .kv-hero.kv-sheet--ecommerce::after{background-image:url(../img/sheet/hero-ecommerce.svg)}
html body:has(.kv-v2) .kv-hero.kv-sheet--marketing::after{background-image:url(../img/sheet/hero-marketing.svg)}
html body:has(.kv-v2) .kv-hero.kv-sheet--crm::after{background-image:url(../img/sheet/hero-crm.svg)}
html body:has(.kv-v2) .kv-hero.kv-sheet--analytics::after{background-image:url(../img/sheet/hero-analytics.svg)}
html body:has(.kv-v2) .kv-hero.kv-sheet--security-backup::after{background-image:url(../img/sheet/hero-security-backup.svg)}
html body:has(.kv-v2) .kv-hero.kv-sheet--productivity::after{background-image:url(../img/sheet/hero-productivity.svg)}
html body:has(.kv-v2) .kv-hero.kv-sheet--ai-automation::after{background-image:url(../img/sheet/hero-ai-automation.svg)}
html body:has(.kv-v2) .kv-hero.kv-sheet--payments-finance::after{background-image:url(../img/sheet/hero-payments-finance.svg)}

/* ------------------------------------------------------------------ anchors, tables, focus, dark-band devices */
html:has(.kv-v2){scroll-padding-top:5.25rem}
html:has(body.admin-bar .kv-v2){scroll-padding-top:7.25rem}
body:has(.kv-v2) main [id]{scroll-margin-top:0!important}
/* wide tables: a visible cue that more columns exist, kept in view while the table scrolls */
body:has(.kv-v2) .wp-block-table.kv-matrix.is-scrollable::before{content:"Scroll sideways for more columns";display:block;position:sticky;left:0;width:100%;box-sizing:border-box;padding:.55rem 1.1rem;font-family:var(--kv-font-head);font-size:.8125rem;font-weight:600;color:var(--kv-ink);background:var(--kv-paper);border-bottom:1px solid var(--kv-line-strong)}
body:has(.kv-v2) .wp-block-table.kv-matrix.is-scrollable.is-scrolled::before{content:"More columns to the left and right"}
/* focus: one visible ring language across the new components */
body:has(.kv-v2) .kv-tile:focus-within{outline:3px solid var(--kv-indigo);outline-offset:3px}
body:has(.kv-v2) .kv-tile a:focus-visible{outline:none}
body:has(.kv-v2) .kv-route a:focus-visible,body:has(.kv-v2) .kv-stations a:focus-visible,body:has(.kv-v2) .kv-faq summary:focus-visible,body:has(.kv-v2) .kv-related a:focus-visible{outline:3px solid var(--kv-indigo);outline-offset:4px}
body:has(.kv-v2) .kv-shortlist__intro :focus-visible,body:has(.kv-v2) .kv-plane--guides :focus-visible{outline-color:var(--kv-yellow)}
body:has(.kv-v2) .kv-plane--solutions :focus-visible{outline-color:var(--kv-ink)}
/* pathway devices (CRM, AI) inside a dark band */
body:has(.kv-v2) .kv-section--indigo .kv-q__title,body:has(.kv-v2) .kv-section--indigo .kv-q p{color:#fff}
body:has(.kv-v2) .kv-section--indigo .kv-q::before{background:#fff;color:var(--kv-indigo-700)}
body:has(.kv-v2) .kv-section--indigo .kv-step::before,body:has(.kv-v2) .kv-section--indigo .kv-a::before{background:rgba(255,255,255,.55)}
body:has(.kv-v2) .kv-section--indigo .kv-a{background:#fff;border-color:#fff}
body:has(.kv-v2) .kv-section--indigo .kv-a :where(h3,p,strong){color:var(--kv-ink)}
body:has(.kv-v2) .kv-section--indigo .kv-a .kv-a__label{color:var(--kv-indigo-700)}
body:has(.kv-v2) .kv-section--indigo .kv-a a:not(.wp-block-button__link){color:var(--kv-ink)}
body:has(.kv-v2) .kv-section--indigo .kv-models .kv-model{border-top-color:var(--kv-yellow)}
body:has(.kv-v2) .kv-section--indigo .kv-model .kv-pair{background:#fff}
body:has(.kv-v2) .kv-section--indigo .kv-model .kv-pair p,body:has(.kv-v2) .kv-section--indigo .kv-model .kv-pair strong{color:var(--kv-ink)}

/* ------------------------------------------------------------------ MOBILE TABLES (tested at 390 and 360) */
@media (max-width:899px){
  /* the sticky first column ate 50–100% of a phone screen: keep it un-pinned and compact, scroll the rest */
  body:has(.kv-v2) .kv-matrix tbody td:first-child,body:has(.kv-v2) .kv-matrix thead th:first-child{position:static;min-width:7.5rem;box-shadow:none}
  body:has(.kv-v2) .kv-matrix table{min-width:34rem}
  body:has(.kv-v2) .kv-matrix--wide table{min-width:50rem}
  body:has(.kv-v2) .kv-matrix table:not(:has(thead th:nth-child(4))){min-width:0}
  body:has(.kv-v2) .kv-matrix th,body:has(.kv-v2) .kv-matrix td{padding:.85rem .9rem;font-size:.9375rem}
}
/* solution comparison tables become stacked rows on phones: every value keeps its label */
@media (max-width:781px){
  body:has(.kv-v2) .kv-matrix--stack{overflow:visible;border:0;background:transparent}
  body:has(.kv-v2) .kv-matrix--stack table{display:block;min-width:0!important}
  body:has(.kv-v2) .kv-matrix--stack thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  body:has(.kv-v2) .kv-matrix--stack tbody,body:has(.kv-v2) .kv-matrix--stack tr{display:block}
  body:has(.kv-v2) .kv-matrix--stack tr{margin:0 0 1rem;background:#fff;border:1.5px solid var(--kv-ink);border-radius:4px;overflow:hidden}
  body:has(.kv-v2) .kv-matrix--stack td{display:block;border:0;padding:.75rem 1rem;background:transparent!important}
  body:has(.kv-v2) .kv-matrix--stack td:first-child{background:var(--kv-ink)!important;color:#fff!important;font-size:1.0625rem}
  body:has(.kv-v2) .kv-matrix--stack td:nth-child(2)::before,body:has(.kv-v2) .kv-matrix--stack td:nth-child(3)::before{display:block;margin-bottom:.2rem;font-family:var(--kv-font-head);font-size:.75rem;font-weight:600;color:var(--kv-indigo-700)}
  body:has(.kv-v2) .kv-matrix--stack td:nth-child(2)::before{content:"Why it matters"}
  body:has(.kv-v2) .kv-matrix--stack td:nth-child(3)::before{content:"What we will check"}
  body:has(.kv-v2) .kv-matrix--stack figcaption{position:static;background:transparent;border:0;padding:.25rem 0 0}
  body:has(.kv-v2) .kv-matrix--stack.is-scrollable::before{content:none!important}
}

/* statement section: sits directly above the next section without a gap of its own */
body:has(.kv-v2) .kv-section--statement{padding-bottom:0}
body:has(.kv-v2) .kv-section--statement+.kv-section{padding-top:clamp(2rem,4vw,3rem)}
/* ordered steps inside dark bands */
body:has(.kv-v2) :is(.kv-section--ink,.kv-section--indigo) ol.kv-steps>li::before{background:var(--kv-yellow);color:var(--kv-ink)}
body:has(.kv-v2) :is(.kv-section--ink,.kv-section--indigo) ol.kv-steps>li::after{background:rgba(255,255,255,.55)}
body:has(.kv-v2) :is(.kv-section--ink,.kv-section--indigo) ol.kv-steps>li{color:inherit}
body:has(.kv-v2) :is(.kv-section--ink,.kv-section--indigo) .kv-criteria .kv-item{border-top-color:rgba(255,255,255,.6)}
body:has(.kv-v2) :is(.kv-section--ink,.kv-section--indigo) .kv-criteria .kv-item h3,body:has(.kv-v2) :is(.kv-section--ink,.kv-section--indigo) .kv-criteria .kv-item p{color:#fff}

/* links inside white tables and answer cards that sit on a dark band keep dark link colours (found by the contrast test) */
html body:has(.kv-v2) .entry-content :is(.kv-section--ink,.kv-section--indigo) :is(.kv-matrix,.kv-a,.kv-pair) a:not(.wp-block-button__link):not(.kv-plain){color:var(--kv-ink);text-decoration-color:var(--kv-indigo)}
html body:has(.kv-v2) .entry-content :is(.kv-section--ink,.kv-section--indigo) :is(.kv-matrix,.kv-a,.kv-pair) a:not(.wp-block-button__link):not(.kv-plain):hover{color:var(--kv-indigo-700)}

/* ------------------------------------------------------------------ PAGE-TYPE ART + FOUNDATION PAGES */
html body:has(.kv-v2) .kv-hero.kv-sheet--method::after{background-image:url(../img/sheet/hero-method.svg)}
html body:has(.kv-v2) .kv-hero.kv-sheet--about::after{background-image:url(../img/sheet/hero-about.svg)}
html body:has(.kv-v2) .kv-hero.kv-sheet--contact::after{background-image:url(../img/sheet/hero-contact.svg);width:min(38vw,500px)}
/* plain sheet: crop marks and grid, no illustration (legal and utility pages) */
html body:has(.kv-v2) .kv-hero.kv-sheet--plain::after{display:none}
body:has(.kv-v2) .kv-sheet--plain{padding-block:clamp(2.25rem,4vw,3.5rem)}
body:has(.kv-v2) .kv-sheet--plain h1{font-size:clamp(2.25rem,1.4rem + 2.6vw,3.5rem);max-width:none}
body:has(.kv-v2) .kv-sheet--plain .kv-container>*{max-width:44rem}
body:has(.kv-v2) .kv-sheet--plain::before{-webkit-mask-image:linear-gradient(90deg,transparent 45%,#000 95%);mask-image:linear-gradient(90deg,transparent 45%,#000 95%)}
/* legal reading pages: keep them readable, with the same type, links and spacing as the rest of the site */
body:has(.kv-legal) .kv-prose,body:has(.kv-legal) .kv-container>ul,body:has(.kv-legal) .kv-container>ol{max-width:46rem}
body:has(.kv-legal) main h2{font-size:clamp(1.375rem,1.15rem + .8vw,1.75rem);letter-spacing:-.015em;line-height:1.25;margin-top:2.5rem}
body:has(.kv-legal) main h2:first-child{margin-top:0}
body:has(.kv-legal) main h3{font-size:1.1875rem}
body:has(.kv-legal) .kv-section{padding-block:clamp(2.5rem,5vw,4rem)}
body:has(.kv-legal) .kv-section--alt{background-image:none}
body:has(.kv-legal) main table{font-size:.9375rem}

/* ---- PIPELINE (How We Evaluate): research -> evaluation -> comparison -> disclosed commercial link */
body:has(.kv-v2) ol.kv-pipeline{list-style:none;margin:2.5rem 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;max-width:none;counter-reset:pl}
body:has(.kv-v2) .kv-pipeline>li{position:relative;margin:0;padding:3.25rem 1.5rem 1.75rem 0;max-width:none;counter-increment:pl}
body:has(.kv-v2) .kv-pipeline>li::before{content:counter(pl);position:absolute;left:0;top:0;width:2.25rem;height:2.25rem;border-radius:50%;background:var(--kv-ink);color:#fff;display:grid;place-items:center;font-family:var(--kv-font-head);font-weight:600;font-size:1rem;z-index:1}
body:has(.kv-v2) .kv-pipeline>li::after{content:"";position:absolute;left:2.25rem;right:0;top:1rem;height:5px;background:var(--kv-signal);transform-origin:left;animation:kv-route-draw .8s var(--kv-ease) both}
body:has(.kv-v2) .kv-pipeline>li:nth-child(2)::after{animation-delay:.15s}body:has(.kv-v2) .kv-pipeline>li:nth-child(3)::after{animation-delay:.3s}
body:has(.kv-v2) .kv-pipeline>li:nth-child(3)::after{right:-0.25rem}
body:has(.kv-v2) .kv-pipeline>li:last-child{background:var(--kv-yellow);padding:3.25rem 1.5rem 1.75rem 1.5rem}
body:has(.kv-v2) .kv-pipeline>li:last-child::before{left:1.5rem;background:#fff;color:var(--kv-ink);border:3px solid var(--kv-ink)}
body:has(.kv-v2) .kv-pipeline strong.kv-pl-title{display:block;font-family:var(--kv-font-head);font-weight:600;font-size:clamp(1.375rem,1.1rem + .8vw,1.75rem);line-height:1.15;color:var(--kv-ink);letter-spacing:-.02em}
body:has(.kv-v2) .kv-pipeline span.kv-pl-tag{display:inline-block;margin-top:.55rem;padding:.2rem .6rem;border:1.5px solid var(--kv-ink);font-family:var(--kv-font-head);font-weight:600;font-size:.75rem;color:var(--kv-ink)}
body:has(.kv-v2) .kv-pipeline span.kv-pl-text{display:block;margin-top:.8rem;font-size:1rem;line-height:1.55;color:var(--kv-text)}
body:has(.kv-v2) .kv-pipeline>li:last-child span.kv-pl-text{color:var(--kv-ink)}
/* the wall: commercial relationships stop before stage 1-3 (drawn between stages 3 and 4) */
body:has(.kv-v2) .kv-pipeline>li:last-child::marker{content:none}
body:has(.kv-v2) .kv-pipeline>li:nth-child(3){padding-right:2.25rem}
body:has(.kv-v2) .kv-pipeline>li:nth-child(3)>a::after{content:none}
body:has(.kv-v2) .kv-pipeline-wall{display:none}
@media (max-width:999px){
  body:has(.kv-v2) ol.kv-pipeline{grid-template-columns:minmax(0,1fr)}
  body:has(.kv-v2) .kv-pipeline>li{padding:0 0 2rem 3.25rem}
  body:has(.kv-v2) .kv-pipeline>li::before{top:0}
  body:has(.kv-v2) .kv-pipeline>li::after{left:1.0625rem;right:auto;top:2.4rem;bottom:.1rem;width:5px;height:auto;transform-origin:top;animation-name:kv-route-draw-y}
  body:has(.kv-v2) .kv-pipeline>li:nth-child(3){padding-right:0}
  body:has(.kv-v2) .kv-pipeline>li:nth-child(3)::after{right:auto;bottom:-.9rem}
  body:has(.kv-v2) .kv-pipeline>li:last-child{padding:1.5rem 1.25rem 1.5rem 4.25rem;margin-top:1rem}
  body:has(.kv-v2) .kv-pipeline>li:last-child::before{left:1rem;top:1.5rem}
}
/* ---- FIREWALL (About, How We Evaluate): editorial layer | wall | commercial layer */
body:has(.kv-v2) .kv-firewall{display:grid;grid-template-columns:minmax(0,1fr) 4.5rem minmax(0,1fr);align-items:stretch;margin-top:2.5rem}
body:has(.kv-v2) .kv-firewall>*{margin:0}
body:has(.kv-v2) .kv-firewall__side{padding:clamp(1.5rem,3vw,2.25rem)}
body:has(.kv-v2) .kv-firewall__side>*+*{margin-top:1rem}
body:has(.kv-v2) .kv-firewall__side h3{font-size:clamp(1.5rem,1.2rem + 1vw,2rem);letter-spacing:-.02em}
body:has(.kv-v2) .kv-firewall__side ul{list-style:none;padding:0;display:grid;gap:.85rem}
body:has(.kv-v2) .kv-firewall__side li{position:relative;padding-left:1.6rem;margin:0}
body:has(.kv-v2) .kv-firewall__side li::before{content:"";position:absolute;left:0;top:.5em;width:.75rem;height:.75rem;background:var(--kv-indigo)}
body:has(.kv-v2) .kv-firewall__editorial{background:#fff;border:1.5px solid var(--kv-ink)}
body:has(.kv-v2) .kv-firewall__commercial{background:var(--kv-yellow);border:1.5px solid var(--kv-ink)}
body:has(.kv-v2) .kv-firewall__commercial li::before{background:var(--kv-ink);border-radius:50%}
body:has(.kv-v2) .kv-firewall__commercial :where(h3,p,li,strong){color:var(--kv-ink)}
body:has(.kv-v2) .kv-firewall__wall{background:var(--kv-ink);background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.22) 0 2px,transparent 2px 10px);display:flex;align-items:center;justify-content:center;padding:1rem .25rem}
body:has(.kv-v2) .kv-firewall__wall p{writing-mode:vertical-rl;transform:rotate(180deg);font-family:var(--kv-font-head);font-weight:600;font-size:.875rem;letter-spacing:.04em;color:#fff;background:var(--kv-ink);padding:.6rem .1rem;text-align:center;max-width:none}
@media (max-width:899px){
  body:has(.kv-v2) .kv-firewall{grid-template-columns:minmax(0,1fr)}
  body:has(.kv-v2) .kv-firewall__wall{padding:.85rem 1rem}
  body:has(.kv-v2) .kv-firewall__wall p{writing-mode:horizontal-tb;transform:none;padding:.15rem .5rem}
}
/* ---- emblem row (About): ten topics as a compact index */
body:has(.kv-v2) ul.kv-emblem-row{list-style:none;margin:2rem 0 0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;max-width:none;border-top:1.5px solid var(--kv-ink);border-left:1.5px solid var(--kv-ink)}
body:has(.kv-v2) .kv-emblem-row li{margin:0;max-width:none;border-right:1.5px solid var(--kv-ink);border-bottom:1.5px solid var(--kv-ink);background:#fff}
body:has(.kv-v2) .kv-emblem-row a{display:flex;align-items:center;gap:.8rem;padding:.9rem 1rem;min-height:4.5rem;font-family:var(--kv-font-head);font-weight:600;font-size:.9375rem;line-height:1.25}
body:has(.kv-v2) .entry-content .kv-emblem-row a:not(.wp-block-button__link):not(.kv-plain){text-decoration-line:none;color:var(--kv-ink)}
body:has(.kv-v2) .entry-content .kv-emblem-row a:not(.wp-block-button__link):not(.kv-plain):hover{background:var(--kv-paper);color:var(--kv-indigo-700)}
body:has(.kv-v2) .kv-emblem-row a::before{content:"";flex:none;width:2.5rem;height:2.5rem;background:center/contain no-repeat}
body:has(.kv-v2) .kv-emblem-row a[href*="/hosting/"]::before{background-image:url(../img/sheet/emblem-hosting.svg)}
body:has(.kv-v2) .kv-emblem-row a[href*="/cms/"]::before{background-image:url(../img/sheet/emblem-cms.svg)}
body:has(.kv-v2) .kv-emblem-row a[href*="/ecommerce/"]::before{background-image:url(../img/sheet/emblem-ecommerce.svg)}
body:has(.kv-v2) .kv-emblem-row a[href*="/marketing/"]::before{background-image:url(../img/sheet/emblem-marketing.svg)}
body:has(.kv-v2) .kv-emblem-row a[href*="/crm/"]::before{background-image:url(../img/sheet/emblem-crm.svg)}
body:has(.kv-v2) .kv-emblem-row a[href*="/analytics/"]::before{background-image:url(../img/sheet/emblem-analytics.svg)}
body:has(.kv-v2) .kv-emblem-row a[href*="/security-backup/"]::before{background-image:url(../img/sheet/emblem-security-backup.svg)}
body:has(.kv-v2) .kv-emblem-row a[href*="/productivity/"]::before{background-image:url(../img/sheet/emblem-productivity.svg)}
body:has(.kv-v2) .kv-emblem-row a[href*="/ai-automation/"]::before{background-image:url(../img/sheet/emblem-ai-automation.svg)}
body:has(.kv-v2) .kv-emblem-row a[href*="/payments-finance/"]::before{background-image:url(../img/sheet/emblem-payments-finance.svg)}
@media (max-width:999px){body:has(.kv-v2) ul.kv-emblem-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* ---- publish / do not publish lists on an ink band */
body:has(.kv-v2) .kv-dodont{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem clamp(1.5rem,4vw,4rem);margin-top:2rem}
body:has(.kv-v2) .kv-dodont>*{margin:0}
body:has(.kv-v2) .kv-dodont h3{color:#fff;font-size:1.5rem;padding-bottom:.75rem;border-bottom:3px solid var(--kv-yellow);margin-bottom:1rem}
body:has(.kv-v2) .kv-dodont__no h3{border-bottom-color:var(--kv-orange)}
body:has(.kv-v2) .kv-dodont ul{list-style:none;padding:0;display:grid;gap:.7rem}
body:has(.kv-v2) .kv-dodont li{position:relative;padding-left:1.75rem;margin:0;color:#fff}
body:has(.kv-v2) .kv-dodont li::before{content:"";position:absolute;left:0;top:.5em;width:.8rem;height:.8rem;background:var(--kv-yellow)}
body:has(.kv-v2) .kv-dodont__no li::before{background:transparent;border:2.5px solid var(--kv-orange);transform:rotate(45deg)}
@media (max-width:781px){body:has(.kv-v2) .kv-dodont{grid-template-columns:minmax(0,1fr)}}
/* ---- contact: the address is the page */
body:has(.kv-v2) .kv-mail{margin:0}
body:has(.kv-v2) .kv-mail p{font-family:var(--kv-font-head);font-weight:600;font-size:clamp(1.375rem,.9rem + 2.2vw,2.5rem);letter-spacing:-.02em;line-height:1.15;max-width:none;overflow-wrap:anywhere}
@media (prefers-reduced-motion:reduce){body:has(.kv-v2) .kv-pipeline>li::after{animation:none}}

/* the wall drawn on the edge of stage 4: commercial relationships enter only here */
body:has(.kv-v2) ol.kv-pipeline>li:last-child::after{content:"";display:block;position:absolute;left:-7px;right:auto;top:0;bottom:0;width:14px;height:auto;transform:none;animation:none;background:var(--kv-ink) repeating-linear-gradient(135deg,rgba(255,255,255,.28) 0 2px,transparent 2px 9px)}
@media (max-width:999px){body:has(.kv-v2) ol.kv-pipeline>li:last-child::after{left:0;right:0;top:-7px;bottom:auto;width:auto;height:14px}}
body:has(.kv-v2) .kv-titleblock:has(>:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:899px){body:has(.kv-v2) .kv-titleblock:has(>:nth-child(2):last-child){grid-template-columns:minmax(0,1fr)}}

/* table hint at the far end */
body:has(.kv-v2) .wp-block-table.kv-matrix.is-scrollable.is-scrolled.is-at-end::before{content:"Scroll back for earlier columns"}
/* mobile header: the menu button and its close button were 18px and 32px targets (found in 360/390px QA) */
html body .ct-header-trigger.ct-toggle{box-sizing:content-box!important;padding:13px!important;margin:-13px -13px -13px -3px!important}
html body .ct-panel .ct-toggle-close{min-width:44px;min-height:44px}
html body .ct-header-trigger:focus-visible,html body .ct-toggle-close:focus-visible{outline:3px solid var(--kv-indigo);outline-offset:2px}

/* ============================================================================================================================
   Navigation (1.14.0): chooser cards are links, one local "On this page" bar under the global header, anchors that land clear of both.
   --kv-stick  = bottom edge of the global sticky header (incl. the admin bar when logged in); measured by signal.js, with fallbacks here.
   --kv-jumph  = height of the local bar (0 on pages without one).
   ============================================================================================================================ */
:root{--kv-stick:80px;--kv-jumph:0px}
@media (max-width:999px){:root{--kv-stick:72px}}
@media (max-width:781px){:root{--kv-stick:68px}}

/* local bar: sticks directly under the global header (it used to stick at top:0, i.e. behind it) */
html body .kv-jump,html body.admin-bar .kv-jump{top:var(--kv-stick)}
html body .kv-jump{z-index:40}
html:has(.kv-jump){--kv-jumph:59px}
html:has(.kv-jump),html:has(.kv-jump):has(.kv-v2),html:has(body.admin-bar .kv-jump){scroll-padding-top:calc(var(--kv-stick) + var(--kv-jumph) + 1rem)!important}
/* no local bar: same clearance as before, measured instead of guessed */
html:not(:has(.kv-jump)):has(.kv-v2){scroll-padding-top:calc(var(--kv-stick) + 1rem)!important}
/* long lists scroll sideways: edge fades say there is more, and the current item is scrolled into view by signal.js */
html body .kv-jump__list{scroll-snap-type:none;-webkit-overflow-scrolling:touch}
html body .kv-jump.has-more-right .kv-jump__list{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 2.5rem),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 2.5rem),transparent)}
html body .kv-jump.has-more-left .kv-jump__list{-webkit-mask-image:linear-gradient(270deg,#000 calc(100% - 2.5rem),transparent);mask-image:linear-gradient(270deg,#000 calc(100% - 2.5rem),transparent)}
html body .kv-jump.has-more-left.has-more-right .kv-jump__list{-webkit-mask-image:linear-gradient(90deg,transparent,#000 2.5rem,#000 calc(100% - 2.5rem),transparent);mask-image:linear-gradient(90deg,transparent,#000 2.5rem,#000 calc(100% - 2.5rem),transparent)}
body:has(.kv-v2) .entry-content .kv-jump__list a{white-space:nowrap}
body:has(.kv-v2) .entry-content .kv-jump__list a:focus-visible{outline:2px solid var(--kv-yellow);outline-offset:-2px;border-radius:2px}
@media (max-width:781px){body:has(.kv-v2) .kv-jump .kv-container{gap:0}body:has(.kv-v2) .entry-content .kv-jump__list{gap:0 1.25rem}body:has(.kv-v2) .entry-content .kv-jump__list a{padding:1rem 0}}

/* situation chooser: a grid in reading order (was CSS columns, which ran down then across and so scrambled the order for a nav) */
body:has(.kv-v2) .kv-choose--panels{column-count:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;align-items:stretch}
body:has(.kv-v2) .kv-choose--panels .kv-choose__row{break-inside:auto;margin:0;height:100%;box-sizing:border-box;position:relative}
body:has(.kv-v2) .kv-choose--panels .kv-choose__row:nth-child(7){--pl:var(--kv-yellow)}
body:has(.kv-v2) .kv-choose--panels .kv-choose__row:nth-child(8){--pl:var(--kv-ink)}
body:has(.kv-v2) .kv-choose--panels .kv-choose__row:nth-child(9){--pl:var(--kv-indigo)}
body:has(.kv-v2) .kv-choose--panels .kv-choose__row:nth-child(10){--pl:var(--kv-orange)}
@media (max-width:781px){body:has(.kv-v2) .kv-choose--panels{grid-template-columns:minmax(0,1fr);gap:1rem}}
/* a card that links: the whole card is the target (stretched link on the heading), with a visible focus ring and a direction cue */
body:has(.kv-v2) .kv-choose--panels .kv-choose__row:has(h3 a[href^="#"]){cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
body:has(.kv-v2) .kv-choose--panels .kv-choose__row h3 a[href^="#"]{color:inherit;text-decoration:none;outline:0}
body:has(.kv-v2) .kv-choose--panels .kv-choose__row h3 a[href^="#"]::after{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit}
body:has(.kv-v2) .kv-choose--panels .kv-choose__row:has(h3 a[href^="#"])::after{content:"\2193";position:absolute;top:1.25rem;right:1.4rem;font-family:var(--kv-font-head);font-weight:600;font-size:1.25rem;line-height:1;color:var(--kv-indigo);transition:transform .15s ease;pointer-events:none}
body:has(.kv-v2) .kv-choose--panels .kv-choose__row:has(h3 a[href^="#"]):hover{border-color:var(--kv-indigo);box-shadow:6px 6px 0 -2px rgba(96,47,247,.14);transform:translateY(-2px)}
body:has(.kv-v2) .kv-choose--panels .kv-choose__row:has(h3 a[href^="#"]):hover::after{transform:translateY(3px)}
body:has(.kv-v2) .kv-choose--panels .kv-choose__row:has(h3 a[href^="#"]):hover h3 a{color:var(--kv-indigo-700)}
body:has(.kv-v2) .kv-choose--panels .kv-choose__row:has(h3 a:focus-visible){outline:3px solid var(--kv-indigo);outline-offset:3px;border-color:var(--kv-indigo)}
body:has(.kv-v2) .kv-choose--panels .kv-choose__row h3{padding-right:2rem}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}body:has(.kv-v2) .kv-choose--panels .kv-choose__row:has(h3 a[href^="#"]),body:has(.kv-v2) .kv-choose--panels .kv-choose__row:has(h3 a[href^="#"])::after{transition:none}body:has(.kv-v2) .kv-choose--panels .kv-choose__row:has(h3 a[href^="#"]):hover,body:has(.kv-v2) .kv-choose--panels .kv-choose__row:has(h3 a[href^="#"]):hover::after{transform:none}}

/* decision sections on a Solutions page: the sections are the destinations, so the stack gets a little more air between them */
body:has(.kv-v2) .kv-shortlist__slots>.kv-usecase{margin:0}

/* Solutions index tiles (1.14.1): the whole tile already opens the Solution page (stretched heading link); the primary action is now stated, the Guide stays a separate,
   independently focusable secondary link. The ring follows the PRIMARY link only, so focusing the Guide link does not light up the whole card. */
body:has(.kv-v2) .kv-tile .kv-tile__meta{justify-content:space-between;align-items:baseline}
body:has(.kv-v2) .kv-tile .kv-tile__go{font-family:var(--kv-font-head);font-weight:600;font-size:.9375rem;color:var(--kv-indigo-700);white-space:nowrap}
body:has(.kv-v2) .kv-tile:hover .kv-tile__go{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.2em}
body:has(.kv-v2) .kv-tile .kv-tile__meta a{font-weight:500;white-space:nowrap}
body:has(.kv-v2) .kv-tile:focus-within{outline:none}
body:has(.kv-v2) .kv-tile:has(h3 a:focus-visible){outline:3px solid var(--kv-indigo);outline-offset:3px}
body:has(.kv-v2) .kv-tile .kv-tile__meta a:focus-visible{outline:2px solid var(--kv-indigo);outline-offset:3px;border-radius:2px}
body:has(.kv-v2) .kv-tile,body:has(.kv-v2) .kv-tile h3 a{cursor:pointer}
