/*
Theme Name: Kishmish
Description: Kishmish block theme: core blocks only. Colours, fonts and spacing in theme.json; component styles (kc- classes) here.
Version: 1.0.0
Requires at least: 7.1
Requires PHP: 8.1
Text Domain: kishmish
*/

/* ==========================================================================
   Kishmish design system
   Pages are core blocks: each section is a Group (<section>), rows are Columns or a 12-column Grid group,
   text is Heading / Paragraph / List / Quote / Image / Icon blocks. Blocks carry kc- classes (Additional CSS
   class); this file styles them. Colours and fonts come from theme.json presets.
   Breakpoints: ≤1024px tablet ("md"), ≤640px phone ("sm").
   ========================================================================== */

:root {
  --kc-white:      var(--wp--preset--color--white);
  --kc-paper-2:    var(--wp--preset--color--paper);
  --kc-line:       var(--wp--preset--color--line);
  --kc-blue:       var(--wp--preset--color--blue);
  --kc-orange:     var(--wp--preset--color--orange);
  --kc-navy:       var(--wp--preset--color--navy);
  --kc-slate:      var(--wp--preset--color--slate);
  --kc-ink:        var(--wp--preset--color--ink);
  --kc-blue-strong: var(--wp--preset--color--blue-strong);
  --kc-blue-deep:  var(--wp--preset--color--blue-deep);
  --kc-blue-wash:  var(--wp--preset--color--blue-wash);
  --kc-navy-deep:  var(--wp--preset--color--navy-deep);

  --kc-navy-800:   #0e1f30;
  --kc-line-dark:  #243544;
  --kc-muted:      #5e646c;
  --kc-blue-light: #4ec0ed;
  --kc-blue-wash-2: #c4e8fa;
  --kc-on-dark:    #f3f5f8;
  --kc-on-dark-2:  #bdc5ce;
  --kc-on-dark-3:  #8f9aa4;

  --kc-font:       var(--wp--preset--font-family--body);
  --kc-section:    var(--wp--custom--section);
  --kc-gutter:     var(--wp--custom--gutter);
  --kc-radius-sm:  8px;
  --kc-radius:     12px;
  --kc-radius-lg:  18px;
  --kc-shadow:     0 1px 2px rgb(17 27 40 / 0.05), 0 8px 24px -12px rgb(17 27 40 / 0.14);
  --kc-shadow-lift: 0 2px 4px rgb(17 27 40 / 0.06), 0 18px 40px -18px rgb(17 27 40 / 0.28);
  --kc-ease:       cubic-bezier(0.16, 1, 0.3, 1);
  --kc-dur:        200ms;

  --kc-text-hero:  var(--wp--preset--font-size--hero);
  --kc-text-h1:    var(--wp--preset--font-size--h-1);
  --kc-text-h2:    var(--wp--preset--font-size--h-2);
  --kc-text-h3:    var(--wp--preset--font-size--h-3);
  --kc-text-lead:  var(--wp--preset--font-size--lead);
  --kc-text-sm:    var(--wp--preset--font-size--sm);
  --kc-text-xs:    var(--wp--preset--font-size--xs);
  --kc-header-h:   4.5rem;
  --kc-topbar-h:   2.5rem;
}

html, body { overflow-x: clip; }
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
::selection { background: var(--kc-blue-wash-2); color: var(--kc-ink); }
/* Visually hidden, still read by screen readers (e.g. the Our work page's H1). */
.kc-sr-only { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
:where(.kc-section, .kc-header, .kc-footer, .kc-topbar) :focus-visible { outline: 2px solid var(--kc-blue); outline-offset: 3px; }
:target { scroll-margin-top: calc(var(--kc-header-h) + 1.5rem); }

/* Icons from the theme's icon collection, drawn with CSS where a block can't sit (menu items, top bar, form
   choices): add classes "kc-i kc-i--<icon name>". */
.kc-i:not(li)::before, li.kc-i > a::before {
  content: ""; display: inline-block; flex: none; width: 1em; height: 1em; background: currentColor;
  -webkit-mask: var(--kc-i) no-repeat center / contain; mask: var(--kc-i) no-repeat center / contain;
}

/* ── Sections (Group blocks) ─────────────────────────────────────────────── */
/* A section is a full-width band; its rows sit apart by the old Avada column margin (20px; 24px on tablets). */
.kc-section {
  --kc-row-gap: 20px;
  display: flex; flex-direction: column; gap: var(--kc-row-gap);
  padding: var(--kc-section) var(--kc-gutter) calc(var(--kc-section) - 24px + var(--kc-row-gap));
  background-color: var(--kc-white);
}
.wp-block-post-content > .kc-section, .kc-main > .kc-section { margin-block: 0; }
.kc-section > * { margin-block: 0 !important; }
.kc-section > :not(.alignfull) { width: 100%; margin-inline: auto !important; } /* flex column + centred max-width: keep rows full width */
.kc-section--grey { background-color: var(--kc-paper-2); }
.kc-section--dark { background-color: var(--kc-navy); color: var(--kc-on-dark-2); }
.kc-section--tight { padding-block: clamp(2.25rem, 2vw + 1.25rem, 3.25rem) calc(clamp(2.25rem, 2vw + 1.25rem, 3.25rem) - 24px + var(--kc-row-gap)); }
.kc-section--flush-top { padding-top: 0; }
.kc-section--flush-bottom { padding-bottom: 0; }

/* Rows: Columns (two-column splits) and the 12-column Grid group (cards, tiles, people). */
.kc-section .wp-block-columns.kc-cols { gap: 24px; margin: 0; }
.kc-section .kc-grid { gap: var(--kc-row-gap) 24px; }
@media (min-width: 641px) and (max-width: 1024px) { .kc-section, .kc-footer { --kc-row-gap: 24px; } }
.kc-col { display: flex; flex-direction: column; gap: 0.75rem; min-width: 0; box-sizing: border-box; }
.kc-col > * { margin-block: 0 !important; }
.kc-col > :is(.wp-block-icon, .wp-block-image:not(.kc-card__img)) { align-self: flex-start; }
@media (max-width: 1024px) {
  .wp-block-columns.kc-cols--stack-md { flex-wrap: wrap !important; }
  .wp-block-columns.kc-cols--stack-md > .wp-block-column { flex-basis: 100% !important; }
  .kc-grid > .kc-md-12 { grid-column: span 12; }
  .kc-grid > .kc-md-9 { grid-column: span 9; }
  .kc-grid > .kc-md-8 { grid-column: span 8; }
  .kc-grid > .kc-md-6 { grid-column: span 6; }
  .kc-grid > .kc-md-4 { grid-column: span 4; }
  .kc-grid > .kc-md-3 { grid-column: span 3; }
  .kc-grid > .kc-md-2 { grid-column: span 2; }
}
/* Columns that stay side by side on tablets ("is-not-stacked-on-mobile") stack on phones. */
@media (max-width: 640px) {
  .kc-section .wp-block-columns.kc-cols--stack-sm { flex-wrap: wrap !important; }
  .kc-section .wp-block-columns.kc-cols--stack-sm > .wp-block-column { flex-basis: 100% !important; }
}
@media (max-width: 640px) {
  .kc-section .kc-grid { column-gap: 20px; }
  .kc-section .wp-block-columns.kc-cols { gap: 20px; }
  .kc-grid > .kc-sm-12 { grid-column: span 12; }
  .kc-grid > .kc-sm-6 { grid-column: span 6; }
  .kc-grid > .kc-sm-4 { grid-column: span 4; }
}

/* Text (a "Text" group: the blocks of one piece of copy) */
.kc-section p { margin: 0 0 1em; }
.kc-section p:last-child, .kc-text > :last-child { margin-bottom: 0; }
.kc-text > :first-child { margin-top: 0; }

/* Headings inside kc sections use the design scale */
.kc-section :is(h1, h2, h3, h4) { color: var(--kc-ink); overflow-wrap: anywhere; margin: 0 0 0.5em; }
.kc-section--dark :is(h1, h2, h3, h4), .kc-hero :is(h1, h2, h3, h4), .kc-cta :is(h1, h2, h3, h4) { color: var(--kc-on-dark); }
/* Even out heading line lengths (no lone words or split sentences); tidy paragraph rag. */
:is(.kc-section, .kc-header, .kc-footer) :is(h1, h2, h3) { text-wrap: balance; }
.kc-section p { text-wrap: pretty; }
.kc-line { display: block; }
@media (min-width: 1025px) { .kc-line { white-space: nowrap; } }
.kc-accent { color: var(--kc-blue-strong); }
.kc-section--dark .kc-accent, .kc-hero .kc-accent { color: var(--kc-blue-light); }
.kc-section a:not(.wp-block-button__link) { text-decoration: none; }

/* ── Section heading ─────────────────────────────────────────────────────── */
.kc-head { width: 100%; max-width: 44rem; margin: 0 auto !important; }
.kc-head--center { text-align: center; }
.kc-head--left { margin-left: 0 !important; }
.kc-eyebrow { margin: 0 0 0.75rem !important; color: var(--kc-blue-strong); font-size: var(--kc-text-xs); font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.kc-section--dark .kc-eyebrow, .kc-hero .kc-eyebrow { color: var(--kc-blue-light); }
.kc-h2, .kc-section .kc-h2 { margin: 0; font-size: var(--kc-text-h2); font-weight: 800; letter-spacing: -0.03em; line-height: 1.12; }
.kc-head__sub { margin: 1rem 0 0 !important; color: var(--kc-muted); font-size: var(--kc-text-lead); line-height: 1.6; }
.kc-section--dark .kc-head__sub { color: var(--kc-on-dark-3); }
.kc-lead { font-size: var(--kc-text-lead); line-height: 1.6; }
.kc-h2 + :is(.kc-lead, p) { margin-top: 1.25rem !important; }

/* ── Buttons (Button block + block styles) ───────────────────────────────── */
.wp-block-buttons { gap: 0.75rem; }
.wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  min-height: 2.875rem; box-sizing: border-box;
  border: 1.5px solid transparent; border-radius: var(--kc-radius-sm);
  white-space: nowrap;
  transition: background-color var(--kc-dur) var(--kc-ease), border-color var(--kc-dur) var(--kc-ease), color var(--kc-dur) var(--kc-ease), transform var(--kc-dur) var(--kc-ease);
}
.wp-block-button__link:active { transform: translateY(1px); }
.wp-block-button.kc-btn--lg .wp-block-button__link { min-height: 3.25rem; padding: 0.95rem 1.5rem; font-size: 1rem; }
.wp-block-button.is-style-outline-light .wp-block-button__link { background: transparent; color: var(--kc-on-dark); border-color: rgb(255 255 255 / 0.35); }
.wp-block-button.is-style-outline-light .wp-block-button__link:hover { background: rgb(255 255 255 / 0.06); color: var(--kc-white); border-color: var(--kc-on-dark); }
.wp-block-button.is-style-outline .wp-block-button__link { padding: 0.8rem 1.3rem; background: transparent; color: var(--kc-blue-strong); border: 1.5px solid var(--kc-blue-wash-2); }
.wp-block-button.is-style-outline.kc-btn--lg .wp-block-button__link { padding: 0.95rem 1.5rem; }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--kc-blue-wash); color: var(--kc-blue-deep); border-color: var(--kc-blue-strong); }
.wp-block-button.is-style-white .wp-block-button__link { background: var(--kc-white); color: var(--kc-blue-deep); }
.wp-block-button.is-style-white .wp-block-button__link:hover { background: var(--kc-blue-wash); color: var(--kc-blue-deep); }
.wp-block-button.is-style-light .wp-block-button__link { background: var(--kc-white); color: var(--kc-ink); }
.wp-block-button.is-style-light .wp-block-button__link:hover { background: var(--kc-blue-wash); color: var(--kc-ink); }
.wp-block-button.is-style-link .wp-block-button__link { min-height: 0; padding: 0; background: none; color: var(--kc-blue-strong); border: 0; }

/* Arrow text link */
.kc-arrow-link { display: inline-flex; align-items: center; gap: 0.4rem; color: var(--kc-blue-strong); font-weight: 600; }
.kc-arrow-link::after { content: "\2192"; transition: transform var(--kc-dur) var(--kc-ease); }
.kc-arrow-link:hover { color: var(--kc-blue-deep); }
.kc-arrow-link:hover::after { transform: translateX(3px); }
.kc-section--dark .kc-arrow-link, .kc-card--feature .kc-arrow-link { color: var(--kc-blue-light); }
.kc-section--dark .kc-arrow-link:hover, .kc-card--feature .kc-arrow-link:hover { color: var(--kc-on-dark); }

/* ── Hero ─────────────────────────────────────────────────────────────────── */
.kc-section.kc-hero {
  padding-top: clamp(1.75rem, 1.5vw + 1rem, 2.75rem);
  padding-bottom: calc(clamp(2.5rem, 2.5vw + 1.25rem, 3.75rem) - 24px + var(--kc-row-gap));
  background:
    radial-gradient(60rem 30rem at 85% 30%, rgb(21 165 215 / 0.16), transparent 70%),
    radial-gradient(rgb(255 255 255 / 0.07) 1px, transparent 1.2px) 0 0 / 1.5rem 1.5rem,
    var(--kc-navy);
  color: var(--kc-on-dark-2);
}
.kc-pill {
  display: inline-flex !important; align-items: center; gap: 0.5rem; margin: 0 0 1.5rem !important;
  padding: 0.375rem 0.875rem; border: 1px solid rgb(255 255 255 / 0.14); border-radius: 999px;
  background: rgb(255 255 255 / 0.06); color: var(--kc-on-dark); font-size: var(--kc-text-xs); font-weight: 600;
}
.kc-pill::before { content: ""; width: 0.5rem; height: 0.5rem; border-radius: 50%; background: var(--kc-orange); }
.kc-hero__title, .kc-section .kc-hero__title { margin: 0; color: var(--kc-on-dark); font-size: var(--kc-text-h1); font-weight: 800; letter-spacing: -0.035em; line-height: 1.06; }
.kc-hero--home .kc-hero__title { font-size: var(--kc-text-hero); }
.kc-hero__accent { display: block; color: var(--kc-blue-light); }
/* Home: keep "Your IT, fully managed." on one line from tablet up — size it to the column width. */
.kc-hero--home .kc-hero__copy { container-type: inline-size; }
@media (min-width: 641px) {
  .kc-hero--home .kc-hero__title { font-size: min(4rem, calc((100cqi + 24px) / 10.8)); }
  .kc-hero__line { white-space: nowrap; }
}
.kc-hero__check { display: flex; align-items: flex-start; gap: 0.6rem; margin: 1.25rem 0 0 !important; color: var(--kc-orange); font-size: 1.0625rem; font-weight: 600; line-height: 1.45; }
.kc-hero__check::before { content: ""; flex: none; width: 1.25rem; height: 1.25rem; margin-top: 0.05em; border-radius: 50%; border: 1.75px solid currentColor; box-sizing: border-box; background: no-repeat center / 0.7rem url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath d='M1 5.5 4.3 8.5 11 1.5' fill='none' stroke='%23f5a94e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.kc-hero__lede { max-width: 38rem; margin: 1rem 0 0.75rem !important; color: var(--kc-on-dark-2); font-size: var(--kc-text-lead); line-height: 1.6; }
.kc-hero__copy--narrow .kc-hero__lede { max-width: 46rem; }
.kc-hero__proof { margin: 0.75rem 0 0 !important; color: var(--kc-on-dark-3); font-size: var(--kc-text-sm); }
.kc-hero .kc-col > .wp-block-buttons { margin-top: 1rem !important; }

/* Breadcrumbs (core Breadcrumbs block) */
.kc-crumbs { margin: 0 0 0.875rem; font-size: var(--kc-text-xs); line-height: 1.65; }
.kc-crumbs ol { display: flex; flex-wrap: wrap; gap: 0.25rem 0.5rem; margin: 0; padding: 0; list-style: none; }
.kc-crumbs li { display: inline-flex; align-items: center; gap: 0.5rem; margin: 0; color: var(--kc-on-dark-3); }
.kc-crumbs li + li::before { content: "/"; margin: 0; color: rgb(255 255 255 / 0.3); }
.kc-crumbs.wp-block-breadcrumbs li:not(:last-child)::after { content: none; display: none; }
.kc-crumbs a { color: var(--kc-on-dark-2); }
.kc-crumbs a:hover { color: var(--kc-white); }
.kc-crumbs [aria-current] { color: var(--kc-on-dark); }

/* Home hub map: your business at the centre, the Kishmish ring around it */
.kc-col > .kc-hub { margin: 1em -40px 0 40px !important; } /* as on the Avada site: nudged right into the gutter */
.kc-hub svg { display: block; width: 100%; height: auto; overflow: visible; }
.kc-hub__band { fill: none; stroke: rgb(21 165 215 / 0.12); stroke-width: 34; }
.kc-hub__ring { fill: none; stroke: var(--kc-blue-light); stroke-width: 2; }
.kc-hub__spokes path { fill: none; stroke: rgb(78 192 237 / 0.35); stroke-width: 1.5; stroke-dasharray: 4 6; }
.kc-hub__node rect { fill: var(--kc-navy-800); stroke: rgb(78 192 237 / 0.55); stroke-width: 1.25; transition: fill var(--kc-dur) var(--kc-ease), stroke var(--kc-dur) var(--kc-ease); }
.kc-hub__node text { fill: var(--kc-on-dark); font: 600 15px var(--kc-font); text-anchor: middle; }
.kc-hub__node:hover rect, .kc-hub__node:focus-visible rect { fill: #13324a; stroke: var(--kc-blue-light); }
.kc-hub__node:focus-visible { outline: none; }
.kc-hub__node:focus-visible rect { stroke-width: 2.5; stroke: var(--kc-white); }
.kc-hub__badge rect { fill: var(--kc-blue-strong); stroke: var(--kc-blue-light); stroke-width: 1.25; }
.kc-hub__badge text { fill: var(--kc-white); font: 700 14px var(--kc-font); text-anchor: middle; letter-spacing: 0.01em; }
.kc-hub__center > circle { fill: var(--kc-white); }
.kc-hub__center > .kc-hub__halo { fill: rgb(255 255 255 / 0.08); stroke: rgb(255 255 255 / 0.18); }
.kc-hub__center-name { fill: var(--kc-ink); font: 800 26px var(--kc-font); letter-spacing: -0.02em; text-anchor: middle; }
.kc-hub__person--main { fill: var(--kc-navy); }
.kc-hub__person--side { fill: var(--kc-blue); }
.kc-hub__person--ring { fill: var(--kc-white); }
.kc-hub__center-label { fill: var(--kc-ink); font: 800 16px var(--kc-font); letter-spacing: -0.01em; text-anchor: middle; }

/* Hero strip (industries under the home hero) */
.kc-strip { width: 100%; margin-top: clamp(1.5rem, 3vw, 2.5rem) !important; padding-top: 1.75rem; border-top: 1px solid var(--kc-line-dark); text-align: center; }
.kc-strip__label { margin: 0 !important; color: var(--kc-on-dark-3); font-size: var(--kc-text-xs); }
.kc-strip ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.75rem 2rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.kc-strip li { color: var(--kc-on-dark); font-size: var(--kc-text-lead); font-weight: 700; letter-spacing: -0.01em; opacity: 0.85; white-space: nowrap; }
.kc-strip a { color: inherit; }
.kc-strip a:hover { color: var(--kc-blue-light); }

/* ── Cards (Grid items with kc-card) ─────────────────────────────────────── */
.kc-card {
  --kc-card-pad: clamp(1.5rem, 2vw, 2rem);
  position: relative; height: 100%; gap: 0.75rem;
  padding: var(--kc-card-pad); box-sizing: border-box;
  border: 1px solid var(--kc-line); border-radius: var(--kc-radius-lg);
  background: var(--kc-white); box-shadow: var(--kc-shadow);
  transition: transform var(--kc-dur) var(--kc-ease), box-shadow var(--kc-dur) var(--kc-ease), border-color var(--kc-dur) var(--kc-ease);
}
.kc-card--link:hover { transform: translateY(-3px); box-shadow: var(--kc-shadow-lift); border-color: var(--kc-blue-wash-2); }
.kc-card--link:hover .kc-card__title { color: var(--kc-blue-strong); }
.kc-card__cover { color: inherit !important; }
.kc-card__cover::after { content: ""; position: absolute; inset: 0; border-radius: var(--kc-radius-lg); }
.kc-card__title, .kc-section .kc-card__title { margin: 0.25rem 0 0.5rem; font-size: var(--kc-text-h3); font-weight: 700; line-height: 1.25; transition: color var(--kc-dur) var(--kc-ease); }
.kc-card__text { color: var(--kc-slate); font-size: var(--kc-text-sm); }
.kc-card__more { margin: auto 0 0 !important; padding-top: 1rem; }
.kc-card > .kc-text:last-child { display: flex; flex-direction: column; flex: 1 1 auto; }
.kc-card > .wp-block-image.kc-card__img { margin: calc(-1 * var(--kc-card-pad)) calc(-1 * var(--kc-card-pad)) 0.5rem !important; max-width: none; }
.kc-card__img img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--kc-radius-lg) var(--kc-radius-lg) 0 0; }

.kc-card--feature { background: var(--kc-navy); border-color: var(--kc-navy); color: var(--kc-on-dark-2); }
.kc-card--feature .kc-card__title { color: var(--kc-on-dark); font-size: clamp(1.5rem, 1vw + 1.2rem, 2rem); }
.kc-card--feature .kc-card__text { color: var(--kc-on-dark-2); font-size: 1.0625rem; }
.kc-card--feature .kc-bullets li { color: var(--kc-on-dark); font-size: 1rem; }

.kc-card--ask { background: var(--kc-blue-wash); border-color: var(--kc-blue-wash-2); box-shadow: none; }
.kc-card--dark { background: var(--kc-navy-800); border-color: var(--kc-line-dark); box-shadow: none; }
.kc-card--dark .kc-card__title { color: var(--kc-on-dark); }
.kc-card--dark .kc-card__text, .kc-card--dark p { color: var(--kc-on-dark-3); }
.kc-card--flat { box-shadow: none; background: var(--kc-paper-2); border-color: transparent; }

/* Icon tile (Icon block) */
.kc-icon, .kc-features .wp-block-icon, .kc-pillar .wp-block-icon, .kc-info__icon {
  display: inline-flex; flex: none; align-items: center; justify-content: center; align-self: flex-start;
  width: 2.75rem; height: 2.75rem; margin: 0;
  border-radius: var(--kc-radius); background: var(--kc-blue-wash); color: var(--kc-blue-strong);
}
.kc-icon svg, .kc-features .wp-block-icon svg, .kc-pillar .wp-block-icon svg, .kc-info__icon svg { width: auto; height: 1.2rem; max-width: 1.5rem; }
.kc-section--dark .kc-icon, .kc-card--dark .kc-icon { background: rgb(21 165 215 / 0.16); color: var(--kc-blue-light); }
.kc-section .kc-card--ask .kc-icon { background: var(--kc-white); }
.kc-section .kc-icon.kc-icon--quote { width: auto; height: auto; background: none; color: var(--kc-blue); }
.kc-icon.kc-icon--quote svg { height: 1.6rem; max-width: none; }

/* Lists */
.kc-bullets, .kc-checks { display: grid; gap: 0.5rem; margin: 0.5rem 0 0 !important; padding: 0 !important; list-style: none !important; }
.kc-bullets li, .kc-checks li { position: relative; margin: 0 !important; padding-left: 1.4rem; font-size: var(--kc-text-sm); line-height: 1.5; }
.kc-bullets li::before { content: ""; position: absolute; left: 0.1rem; top: 0.55em; width: 6px; height: 6px; border-radius: 50%; background: var(--kc-orange); }
.kc-checks li { padding-left: 1.85rem; font-size: 1rem; }
.kc-checks li::before { content: ""; position: absolute; left: 0; top: 0.15em; width: 1.25rem; height: 1.25rem; border-radius: 50%; background: var(--kc-blue-wash) no-repeat center / 0.7rem url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath d='M1 5.5 4.3 8.5 11 1.5' fill='none' stroke='%230072a3' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.kc-section--dark .kc-checks li { color: var(--kc-on-dark); }
.kc-section--dark .kc-checks li::before { background-color: rgb(21 165 215 / 0.2); }
.kc-checks--lg li { font-size: 1.0625rem; }
.kc-checks strong, .kc-bullets strong { color: var(--kc-ink); }

/* ── Prose ───────────────────────────────────────────────────────────────── */
.kc-prose { width: 100%; max-width: 46rem; margin-inline: auto; font-size: 1.0625rem; }
.kc-prose--left, .kc-prose--left .kc-prose { margin-inline: 0; }
.kc-prose > * { margin: 0 0 1em; }
.kc-prose :is(h2, h3) { margin: 2.25rem 0 0.75rem; }
.kc-prose h2 { font-size: 1.5rem; font-weight: 700; letter-spacing: -0.02em; line-height: 1.15; }
.kc-prose h3 { font-size: var(--kc-text-h3); }
.kc-prose > :first-child { margin-top: 0; }
.kc-prose ul { margin: 0 0 1em; padding-left: 1.25rem; }
.kc-prose li { margin-bottom: 0.4rem; }
.kc-prose a { color: var(--kc-blue-strong); text-decoration: underline !important; text-underline-offset: 3px; }

/* ── Split ───────────────────────────────────────────────────────────────── */
/* Splits: both columns start at the same top line, with a wider gutter between them. */
@media (min-width: 1025px) {
  .kc-section .kc-split__a { padding-right: clamp(0px, 2vw, 2rem); }
  .kc-section .kc-split__b { padding-left: clamp(0px, 1vw, 1rem); }
}
.kc-split__a .kc-eyebrow:first-child { margin-top: 0.25rem !important; }
.kc-split__a .kc-h2 { text-align: left; }
.kc-panel { padding: clamp(1.5rem, 3vw, 2rem); border-radius: var(--kc-radius-lg); background: var(--kc-paper-2); border: 1px solid var(--kc-line); }
.kc-panel--dark { background: var(--kc-navy); border-color: var(--kc-navy); color: var(--kc-on-dark-2); box-shadow: var(--kc-shadow-lift); }
.kc-panel--dark :is(h3, h4, strong) { color: var(--kc-on-dark); }
.kc-panel__label { margin: 0 0 0.75rem !important; color: var(--kc-muted); font-size: var(--kc-text-xs); font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.kc-panel--dark .kc-panel__label { color: var(--kc-blue-light); }
.kc-panel__big { margin: 0 0 1rem !important; color: var(--kc-on-dark); font-size: clamp(2rem, 3vw + 1rem, 2.75rem); font-weight: 800; letter-spacing: -0.03em; line-height: 1.1; }
.kc-compare { margin: 0 !important; padding: 0 !important; list-style: none !important; }
.kc-compare li { display: flex; justify-content: space-between; gap: 1rem; margin: 0 !important; padding: 0.5rem 0; border-bottom: 1px dashed var(--kc-line); font-size: var(--kc-text-sm); }
.kc-compare li:last-child { border-bottom: 0; }
.kc-compare span:last-child { color: var(--kc-muted); text-align: right; }
.kc-stack { display: grid; gap: 1rem; }
.kc-img img, .kc-media img { border-radius: var(--kc-radius-lg); }
.kc-col > .wp-block-image.kc-img { align-self: stretch; margin: 0; }
.kc-img img { display: block; width: auto; max-width: 100%; height: auto; } /* natural size, never upscaled */

/* ── Feature list (icon + title + text, no card chrome) ───────────────── */
.kc-features { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 2.5rem; margin: 0 !important; padding: 0 !important; }
.kc-features > * { margin: 0 !important; padding: 0 !important; }
.kc-features h3, .kc-section .kc-features h3 { margin: 1rem 0 0.4rem; font-size: 1.1875rem; }
.kc-features p { margin: 0 !important; color: var(--kc-slate); font-size: var(--kc-text-sm); }
.kc-section--dark .kc-features .wp-block-icon { background: rgb(21 165 215 / 0.16); color: var(--kc-blue-light); }
.kc-section--dark .kc-features p { color: var(--kc-on-dark-3); }

/* ── Facts band ──────────────────────────────────────────────────────────── */
.kc-section.kc-band-facts { padding-block: 2.5rem calc(2.5rem - 24px + var(--kc-row-gap)); background-color: var(--kc-navy); position: relative; }
.kc-section.kc-band-facts::before { content: ""; position: absolute; inset: 0 0 auto; height: 3px; background: linear-gradient(90deg, var(--kc-blue), var(--kc-orange)); }
.kc-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem; margin: 0 !important; padding: 0 !important; text-align: center; }
.kc-facts > * { margin: 0 !important; }
.kc-facts__num { display: block; margin: 0 !important; color: var(--kc-on-dark); font-size: clamp(2rem, 2.5vw + 1rem, 2.75rem); font-weight: 800; letter-spacing: -0.03em; line-height: 1.1; }
.kc-facts__label { display: block; margin: 0.25rem 0 0 !important; color: var(--kc-on-dark-3); font-size: var(--kc-text-sm); }

/* ── Web services block (home) ───────────────────────────────────────────── */
.kc-web { padding: clamp(1.5rem, 4vw, 2.5rem); border-radius: var(--kc-radius-lg); background: linear-gradient(125deg, var(--kc-blue-strong), #00507e); color: rgb(255 255 255 / 0.9); box-sizing: border-box; }
.kc-web h3 { margin: 0 0 0.5rem; color: var(--kc-white) !important; font-size: clamp(1.5rem, 1vw + 1.2rem, 2rem); font-weight: 800; }
.kc-web p { color: rgb(255 255 255 / 0.9); }
.kc-web__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin: 1.5rem 0 0.5rem !important; padding: 0 !important; list-style: none !important; }
.kc-web__grid li { margin: 0 !important; }
.kc-web__item { display: flex; flex-direction: column; gap: 0.4rem; height: 100%; padding: 1.25rem; box-sizing: border-box; border: 1px solid rgb(255 255 255 / 0.18); border-radius: var(--kc-radius); background: rgb(255 255 255 / 0.08); color: rgb(255 255 255 / 0.85) !important; font-size: var(--kc-text-sm); transition: background-color var(--kc-dur) var(--kc-ease), border-color var(--kc-dur) var(--kc-ease); }
.kc-web__item strong { color: var(--kc-white); font-size: 1rem; }
.kc-web__item:hover { background: rgb(255 255 255 / 0.15); border-color: rgb(255 255 255 / 0.4); }
.kc-web :focus-visible { outline-color: var(--kc-white); }

/* ── Wide card (home: software & web) ────────────────────────────────── */
.kc-card--wide { gap: 1.25rem; }
.kc-wide { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 1.5rem 2rem; align-items: start; }
.kc-wide > * { margin: 0 !important; }
.kc-wide__copy .kc-card__title { margin-top: 0.4rem; }
.kc-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; margin: 0 !important; padding: 0 !important; list-style: none !important; }
.kc-links li { margin: 0 !important; }
.kc-links a { display: flex; flex-direction: column; gap: 0.15rem; height: 100%; padding: 0.875rem 1rem; box-sizing: border-box; border: 1px solid var(--kc-line); border-radius: var(--kc-radius); background: var(--kc-paper-2); color: var(--kc-muted) !important; font-size: var(--kc-text-sm); transition: border-color var(--kc-dur) var(--kc-ease), background-color var(--kc-dur) var(--kc-ease); }
.kc-links a strong { color: var(--kc-ink); font-size: 1rem; }
.kc-links a:hover { border-color: var(--kc-blue-wash-2); background: var(--kc-blue-wash); }
.kc-links a:hover strong { color: var(--kc-blue-strong); }

/* ── Pillars (dark) ──────────────────────────────────────────────────── */
.kc-pillars { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; height: 100%; }
.kc-pillars > * { margin: 0 !important; }
.kc-pillar { padding: 1.5rem; border: 1px solid var(--kc-line-dark); border-radius: var(--kc-radius-lg); background: var(--kc-navy-800); }
.kc-section .kc-pillar .wp-block-icon { background: rgb(21 165 215 / 0.16); color: var(--kc-blue-light); }
.kc-pillar .wp-block-icon svg { height: 1.15rem; }
.kc-pillar h3, .kc-section .kc-pillar h3 { margin: 1rem 0 0.5rem; color: var(--kc-on-dark); font-size: 1.1875rem; }
.kc-pillar p { margin: 0 !important; color: var(--kc-on-dark-3); font-size: var(--kc-text-sm); }
.kc-pillars-col > .kc-pillars { flex: 1 1 auto; }

/* ── Steps ───────────────────────────────────────────────────────────────── */
.kc-steps { position: relative; display: grid; grid-template-columns: repeat(var(--kc-steps, 4), minmax(0, 1fr)); gap: 2rem; margin: 0 !important; padding: 0 !important; }
.kc-steps::before { content: ""; position: absolute; top: 1.5rem; left: 12.5%; right: 12.5%; height: 2px; background: repeating-linear-gradient(90deg, var(--kc-blue-wash-2) 0 8px, transparent 8px 14px); }
.kc-step { position: relative; margin: 0 !important; text-align: center; }
.kc-step__num { position: relative; display: inline-flex; vertical-align: top; align-items: center; justify-content: center; width: 3rem; height: 3rem; margin: 0 !important; border-radius: 50%; background: var(--kc-blue-strong); color: var(--kc-white); font-size: 1.125rem; font-weight: 800; box-shadow: 0 0 0 8px var(--kc-section-bg, #fff); }
.kc-section--grey .kc-step__num { --kc-section-bg: var(--kc-paper-2); }
.kc-step__title, .kc-section .kc-step__title { margin: 1.25rem 0 0.5rem; font-size: 1.1875rem; }
.kc-step__text { margin: 0 !important; color: var(--kc-muted); font-size: var(--kc-text-sm); }

/* ── Onboarding flow: heading row + four connected step cards ─────────── */
.kc-flow-head .kc-lead { margin-top: 0.75rem !important; }
@media (min-width: 1025px) { .kc-flow-cta { justify-content: flex-end; } .kc-flow-cta .wp-block-buttons { justify-content: flex-end; } }
.kc-flow { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; margin: 0.5rem 0 0 !important; padding: 0 !important; }
.kc-flow > * { position: relative; margin: 0 !important; padding: 1.25rem 1.25rem 1.35rem; border: 1px solid var(--kc-line); border-radius: var(--kc-radius-lg); background: var(--kc-paper-2); }
.kc-flow__top { display: flex; align-items: center; gap: 0.6rem; margin-bottom: 0.6rem; }
.kc-flow__top > * { margin: 0 !important; }
.kc-flow__num { display: flex; flex: none; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; margin: 0 !important; border-radius: 50%; background: var(--kc-blue-strong); color: var(--kc-white); font-weight: 800; }
.kc-flow__title, .kc-section .kc-flow__title { margin: 0; font-size: 1.125rem; line-height: 1.25; }
.kc-flow p:not(.kc-flow__num) { margin: 0 !important; color: var(--kc-slate); font-size: var(--kc-text-sm); }
.kc-flow > :last-child { border-color: var(--kc-navy); background: var(--kc-navy); }
.kc-flow > :last-child .kc-flow__title { color: var(--kc-on-dark); }
.kc-flow > :last-child p:not(.kc-flow__num) { color: var(--kc-on-dark-2); }
.kc-flow > :last-child .kc-flow__num { background: var(--kc-blue); color: var(--kc-navy); }
@media (max-width: 1024px) {
  .kc-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) { .kc-flow { grid-template-columns: minmax(0, 1fr); gap: 0.75rem; } }

/* ── Timeline ────────────────────────────────────────────────────────────── */
.kc-timeline { width: 100%; max-width: 52rem; margin: 0 auto !important; padding: 0 !important; }
.kc-timeline > * { display: grid; grid-template-columns: 7rem minmax(0, 1fr); gap: 2rem; margin: 0 !important; padding: 1.75rem 0; border-top: 1px solid var(--kc-line); }
.kc-timeline > :last-child { border-bottom: 1px solid var(--kc-line); }
.kc-timeline__year { margin: 0 !important; color: var(--kc-blue-strong); font-size: 2rem; font-weight: 800; letter-spacing: -0.03em; line-height: 1.1; }
.kc-timeline__title, .kc-section .kc-timeline__title { margin: 0.25rem 0 0.5rem; font-size: 1.25rem; }
.kc-timeline p { margin: 0 !important; }

/* ── Quotes ──────────────────────────────────────────────────────────────── */
.kc-quote { margin: 0; }
.kc-quote .wp-block-quote { margin: 0.75rem 0 0; padding: 0; border: 0; color: var(--kc-ink); font-size: 1.125rem; font-style: normal; line-height: 1.55; quotes: none; }
.kc-quote .wp-block-quote p { margin: 0 !important; }
.kc-quote .kc-figcaption { display: grid; justify-items: start; gap: 0.25rem; margin: 1.5rem 0 0; }
.kc-quote-card > .kc-quote { display: flex; flex-direction: column; flex: 1 1 auto; }
.kc-quote-card .kc-quote .kc-figcaption { margin-top: auto !important; padding-top: 1.5rem; }
.kc-quote__name { color: var(--kc-ink); font-weight: 700; }
.kc-quote__role { color: var(--kc-muted); font-size: var(--kc-text-sm); }
.kc-tag { display: inline-block; width: fit-content; margin-top: 0.5rem; padding: 0.125rem 0.625rem; border-radius: 999px; background: var(--kc-blue-wash); color: var(--kc-blue-strong); font-size: var(--kc-text-xs); font-weight: 600; }
.kc-quote--feature .wp-block-quote { font-size: clamp(1.25rem, 1vw + 1rem, 1.6rem); font-weight: 600; letter-spacing: -0.01em; }

/* Project pages: a list of the projects (tabs) above a horizontal carousel in the hero. Swipe/scroll snaps one
   project at a time; the tabs and arrow keys move it too (js/kc-site.js). The track is as tall as the tallest
   project, so the hero never changes height. */
.kc-work { width: 100%; }
.kc-work > * { margin: 0 !important; }
.kc-work__tabs { display: flex; gap: 0.75rem; margin: 0.25rem 0 clamp(1.75rem, 3vw, 2.5rem) !important; overflow-x: auto; scrollbar-width: none; }
.kc-work__tabs::-webkit-scrollbar { display: none; }
.kc-work__tab { display: flex; flex: 0 0 auto; align-items: center; gap: 0.75rem; padding: 0.5rem 1rem 0.5rem 0.5rem; border: 1px solid rgb(255 255 255 / 0.16); border-radius: var(--kc-radius); background: rgb(255 255 255 / 0.04); color: var(--kc-on-dark-2); font: inherit; text-align: left; cursor: pointer; transition: background var(--kc-dur) var(--kc-ease), border-color var(--kc-dur) var(--kc-ease); }
.kc-work__thumb { flex: none; width: 4rem; height: 2.25rem; border-radius: 4px; background: rgb(255 255 255 / 0.06); object-fit: contain; }
.kc-work__tab-text { display: grid; gap: 0.1rem; line-height: 1.25; }
.kc-work__tab-text strong { color: var(--kc-on-dark); font-size: 0.9375rem; font-weight: 700; white-space: nowrap; }
.kc-work__tab-text span { color: var(--kc-on-dark-3); font-size: var(--kc-text-xs); }
.kc-work__tab:hover { border-color: rgb(255 255 255 / 0.36); background: rgb(255 255 255 / 0.08); }
.kc-work__tab:active { transform: translateY(1px); }
.kc-work__tab:focus-visible { outline: 2px solid var(--kc-blue-light); outline-offset: 3px; }
.kc-work__tab[aria-selected="true"] { border-color: var(--kc-blue-light); background: rgb(78 192 237 / 0.14); box-shadow: inset 0 -3px 0 var(--kc-blue-light); }
.kc-work__tab[aria-selected="true"] .kc-work__tab-text span { color: var(--kc-blue-light); }
.kc-work__track { position: relative; display: flex; overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; }
.kc-work__track::-webkit-scrollbar { display: none; }
@media (prefers-reduced-motion: reduce) { .kc-work__track { scroll-behavior: auto; } }
.kc-work__slide { display: grid; flex: 0 0 100%; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: center; min-width: 0; margin: 0 !important; scroll-snap-align: start; scroll-snap-stop: always; }
.kc-work__slide > * { margin: 0 !important; }
.kc-work__media { margin: 0; }
.kc-work__media img { display: block; width: 100%; height: auto; }
.kc-work__facts { display: flex; flex-wrap: wrap; gap: 0.75rem 2.25rem; margin: 1.25rem 0 1.75rem; }
.kc-work__facts > div { min-width: 0; }
.kc-work__facts dt { margin: 0 0 0.2rem; color: var(--kc-on-dark-3); font-size: var(--kc-text-xs); font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.kc-work__facts dd { margin: 0; color: var(--kc-on-dark); font-weight: 600; overflow-wrap: anywhere; }
.kc-work__facts a { color: var(--kc-blue-light); }
.kc-work__facts a:hover { color: var(--kc-white); }
@media (max-width: 900px) {
  .kc-work__slide { grid-template-columns: minmax(0, 1fr); align-items: start; }
  .kc-work__media { max-width: 34rem; }
}
@media (max-width: 640px) {
  .kc-work__tabs { margin-inline: calc(-1 * var(--kc-gutter, 1rem)) !important; padding-inline: var(--kc-gutter, 1rem); } /* the list scrolls edge to edge */
  .kc-work__thumb { display: none; }
  .kc-work__tab { padding: 0.55rem 0.9rem; }
}

/* Partner story (single testimonial) */
.kc-story-card { width: 100%; max-width: 58rem !important; margin-inline: auto !important; padding: clamp(1.5rem, 3vw, 2.75rem) clamp(1.25rem, 4vw, 3.25rem); }
.kc-story { position: relative; margin: 0; }
.kc-story::before { content: "\201C"; position: absolute; top: -0.35em; right: 0; color: var(--kc-blue-wash-2); font-size: 7rem; font-weight: 800; line-height: 1; pointer-events: none; }
.kc-story .wp-block-quote { position: relative; margin: 0; padding: 0; border: 0; color: var(--kc-ink); font-size: clamp(1.25rem, 0.8vw + 1rem, 1.5rem); font-style: normal; font-weight: 600; line-height: 1.5; letter-spacing: -0.01em; }
.kc-story .wp-block-quote p { margin: 0 !important; }
.kc-story .kc-figcaption { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1rem; margin: 1.75rem 0 0 !important; padding-top: 1.25rem; border-top: 1px solid var(--kc-line); }
.kc-story__photo { width: 3.5rem; height: 3.5rem; border-radius: 50%; object-fit: cover; }
.kc-story__who { display: grid; gap: 0.1rem; margin-right: auto; }
.kc-story .kc-tag { margin-top: 0; }

/* Founder quote (dark) */
.kc-founder { height: 100%; padding: 2rem; box-sizing: border-box; border-radius: var(--kc-radius-lg); background: linear-gradient(160deg, #13324a, var(--kc-navy-800)); border: 1px solid rgb(21 165 215 / 0.35); }
.kc-founder .wp-block-quote { margin: 1rem 0 0; padding: 0; border: 0; color: var(--kc-on-dark); font-size: 1.375rem; font-style: normal; font-weight: 600; line-height: 1.45; }
.kc-founder .wp-block-quote p { margin: 0 !important; }
.kc-founder .kc-figcaption { display: grid; justify-items: start; gap: 0.25rem; margin: 2rem 0 0 !important; }
.kc-founder .kc-quote__name { color: var(--kc-on-dark); }
.kc-founder .kc-quote__role { color: var(--kc-on-dark-3); }
.kc-section .kc-founder .kc-icon--quote { color: var(--kc-orange); }

/* ── Letter (a note from Matt) ───────────────────────────────────────────── */
.kc-letter__sig { margin: 0 0 0.5rem !important; color: var(--kc-blue-deep); font-family: var(--wp--preset--font-family--signature); font-size: 3rem; font-weight: 600; line-height: 1.1; }

/* Founder portrait + note (About: Partners first) */
.kc-founder-card { max-width: 20rem; margin: 0; }
.kc-founder-card > * { margin: 0 !important; }
.kc-founder-card img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: var(--kc-radius-lg); box-shadow: var(--kc-shadow); }
.kc-founder-card .kc-figcaption { display: grid; gap: 0.15rem; margin-top: 1rem !important; }
.kc-founder-card strong { color: var(--kc-ink); font-size: 1.125rem; }
.kc-founder-card .kc-figcaption span { color: var(--kc-muted); font-size: var(--kc-text-sm); }
@media (min-width: 1025px) { .kc-founder-col { position: sticky; top: 7rem; align-self: flex-start; } }
.kc-note { max-width: 40rem; color: var(--kc-slate); font-size: 1.125rem; line-height: 1.75; }
.kc-note p { margin: 0 0 1.1em !important; }
.kc-note__greeting { color: var(--kc-ink); font-size: 1.25rem; font-weight: 700; }
.kc-note__close { margin: 1.75rem 0 0 !important; }
.kc-note .kc-letter__sig { margin: 0 !important; }
@media (max-width: 1024px) { .kc-founder-card { display: grid; grid-template-columns: 6rem minmax(0, 1fr); align-items: center; gap: 1rem; max-width: none; } .kc-founder-card .kc-figcaption { margin: 0 !important; } }

/* ── CTA band ────────────────────────────────────────────────────────────── */
.kc-section.kc-cta {
  padding-block: clamp(2.5rem, 2.5vw + 1.25rem, 3.75rem) calc(clamp(2.5rem, 2.5vw + 1.25rem, 3.75rem) - 24px + var(--kc-row-gap));
  background: radial-gradient(rgb(255 255 255 / 0.1) 1px, transparent 1.2px) 0 0 / 1.5rem 1.5rem, linear-gradient(120deg, var(--kc-blue-strong), #003f66);
  color: rgb(255 255 255 / 0.88);
}
.kc-cta__title, .kc-section .kc-cta__title { margin: 0 0 0.5rem; color: var(--kc-white); font-size: clamp(1.625rem, 1.2vw + 1.3rem, 2.25rem); font-weight: 800; letter-spacing: -0.02em; }
.kc-cta__text { margin: 0 !important; color: rgb(255 255 255 / 0.88); font-size: var(--kc-text-lead); }
.kc-cta__actions .wp-block-buttons { justify-content: flex-end; }
.kc-cta :focus-visible { outline-color: var(--kc-white); }

/* ── Industries ──────────────────────────────────────────────────────────── */
.kc-industry { position: relative; gap: 0.5rem; height: 100%; padding: 1.5rem; box-sizing: border-box; border: 1px solid var(--kc-line); border-radius: var(--kc-radius-lg); background: var(--kc-white); transition: border-color var(--kc-dur) var(--kc-ease), transform var(--kc-dur) var(--kc-ease), box-shadow var(--kc-dur) var(--kc-ease); }
.kc-industry:hover { transform: translateY(-3px); border-color: var(--kc-blue-wash-2); box-shadow: var(--kc-shadow); }
.kc-industry__icon { margin: 0 0 0.5rem !important; }
.kc-industry__icon img { display: block; width: 3rem; height: 3rem; }
.kc-industry__name, .kc-section .kc-industry__name { margin: 0 !important; color: var(--kc-ink); font-weight: 700; }
.kc-industry__name a { color: inherit; }
.kc-industry:hover .kc-industry__name { color: var(--kc-blue-strong); }
.kc-industry__text, .kc-section .kc-industry__text { margin: 0 !important; color: var(--kc-muted); font-size: var(--kc-text-sm); }

/* Client logos (a Group of Image blocks) */
.kc-logos { display: grid; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); gap: 1rem; margin: 0 !important; padding: 0 !important; }
.kc-logos > .wp-block-image { display: flex; align-items: center; justify-content: center; min-height: 6rem; margin: 0 !important; padding: 1rem; box-sizing: border-box; border: 1px solid var(--kc-line); border-radius: var(--kc-radius); background: var(--kc-white); }
.kc-logos img { max-height: 4rem; width: auto; object-fit: contain; filter: grayscale(1); opacity: 0.8; transition: filter var(--kc-dur) var(--kc-ease), opacity var(--kc-dur) var(--kc-ease); }
.kc-logos > .wp-block-image:hover img { filter: none; opacity: 1; }
.kc-logos--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem; }
.kc-logos--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.75rem; }
/* Logo tiles for square logo files with lots of white space: crop to 3:2 */
.kc-logos--crop > .wp-block-image { min-height: 0; padding: 0.75rem; }
.kc-logos .kc-logo--square img { max-height: 9rem; }
.kc-logos--crop img { display: block; width: 100%; max-width: 9rem; height: auto; max-height: none; aspect-ratio: 3 / 2; object-fit: cover; }

/* People */
.kc-person { text-align: center; }
.kc-team-group, .kc-section .kc-team-group { margin-block: 0.5rem 0.25rem !important; color: var(--kc-ink); font-size: 1.125rem; }
.kc-section[id] { scroll-margin-top: 6rem; }
.kc-person > .wp-block-image { align-self: stretch; margin: 0; }
.kc-person img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: var(--kc-radius-lg); }
.kc-person__name { margin: 0.25rem 0 0.25rem !important; color: var(--kc-ink); font-weight: 700; font-size: 1.125rem; }
.kc-person__role { margin: 0 !important; color: var(--kc-muted); font-size: var(--kc-text-sm); }

/* ── Contact ─────────────────────────────────────────────────────────────── */
.kc-contact__cards { gap: 1rem; }
.kc-info { display: flex; gap: 1rem; margin: 0 !important; padding: 1.25rem 1.5rem; border-radius: var(--kc-radius-lg); background: var(--kc-paper-2); }
.kc-info > * { margin: 0 !important; }
.kc-info p { margin: 0 !important; font-size: var(--kc-text-sm); }
.kc-section .kc-info__icon { background: var(--kc-blue-wash-2); color: var(--kc-blue-strong); }
.kc-info__icon svg { height: 1.1rem; }
.kc-info__title, .kc-info p.kc-info__title { margin-bottom: 0.25rem !important; color: var(--kc-ink); font-weight: 700; font-size: 1rem; }
.kc-info__link { display: block; width: fit-content; margin-top: 0.15rem; color: var(--kc-blue-strong); font-size: var(--kc-text-sm); font-weight: 600; }
.kc-info__link:hover { color: var(--kc-blue-deep); }
.kc-info--dark { background: var(--kc-navy); color: var(--kc-on-dark-2); }
.kc-section .kc-info--dark .kc-info__icon { background: var(--kc-blue-strong); color: var(--kc-white); }
.kc-info--dark .kc-info__title, .kc-info--dark p.kc-info__title { color: var(--kc-on-dark); }
.kc-info--dark .kc-info__link { color: var(--kc-blue-light); }
.kc-info__note { display: block; margin-top: 0.35rem; color: var(--kc-muted); font-size: var(--kc-text-xs); }
.kc-info__note a { color: var(--kc-blue-strong); font-weight: 600; }
.kc-info--dark .kc-info__note { color: var(--kc-on-dark-3); }

.kc-form-card { padding: clamp(1.5rem, 3vw, 2.5rem); box-sizing: border-box; border-radius: var(--kc-radius-lg); background: var(--kc-paper-2); }
.kc-form__title, .kc-section .kc-form__title { margin: 0 0 0.25rem; font-size: 1.375rem; }
.kc-form__sub { margin: 0 0 0.5rem !important; color: var(--kc-muted); font-size: var(--kc-text-sm); }

/* Website inquiry (Gravity Forms, its own CSS turned off): fields in the brand style on a 12-column grid. */
.kc-form-card .gform_wrapper { margin: 0; }
.kc-form-card .gform_fields { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 1rem; }
.kc-form-card .gfield { grid-column: 1 / -1; min-width: 0; margin: 0; padding: 0; border: 0; }
.kc-form-card .gfield--width-half { grid-column: span 6; }
@media (max-width: 640px) { .kc-form-card .gfield--width-half { grid-column: 1 / -1; } }
.kc-form-card :is(.gform_validation_container, .gform_hidden, .gfield_visibility_hidden), .kc-form-card .gform_wrapper .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.kc-form-card .gform_validation_container { display: none !important; }
.kc-form-card .gform_required_legend { display: none; }
.kc-form-card .gfield_label { display: block; margin: 0 0 0.35rem; padding: 0; color: var(--kc-ink); font-size: var(--kc-text-sm); font-weight: 600; line-height: 1.35; }
.kc-form-card .gfield_required { margin-left: 0.15rem; color: var(--kc-ink); }
.kc-form-card :is(input[type="text"], input[type="email"], input[type="tel"], select, textarea) {
  display: block; width: 100%; min-height: 2.875rem; padding: 0.65rem 0.875rem; box-sizing: border-box; border: 1px solid var(--kc-line); border-radius: var(--kc-radius-sm);
  background: var(--kc-white); color: var(--kc-ink); font: inherit; font-size: 1rem; line-height: 1.4;
}
.kc-form-card textarea { height: 8rem; resize: vertical; }
.kc-form-card :is(input, select, textarea):focus { outline: none; border-color: var(--kc-blue-strong); box-shadow: 0 0 0 3px rgb(21 165 215 / 0.3); }
.kc-form-card .gform_footer { margin: 1rem 0 0; padding: 0; }
.kc-form-card .gform_button {
  display: inline-flex; align-items: center; min-height: 2.875rem; padding: 0.8rem 1.3rem; border: 1.5px solid transparent; border-radius: var(--kc-radius-sm);
  background: var(--kc-blue-strong); color: var(--kc-white); font: 600 0.9375rem/1.2 var(--kc-font); cursor: pointer; transition: background-color var(--kc-dur) var(--kc-ease);
}
.kc-form-card .gform_button:hover { background: var(--kc-blue-deep); }
.kc-form-card .gform_ajax_spinner { margin-left: 0.75rem; vertical-align: middle; }
.kc-form-card .validation_message { margin-top: 0.35rem; color: #b3261e; font-size: var(--kc-text-xs); font-weight: 600; }
.kc-form-card .gfield_error :is(input, textarea) { border-color: #c0392b; }
.kc-form-card .gform_validation_errors { margin: 0 0 1rem; padding: 0.75rem 1rem; border-left: 3px solid #c0392b; border-radius: 0 var(--kc-radius-sm) var(--kc-radius-sm) 0; background: #fdecea; }
.kc-form-card .gform_validation_errors h2 { margin: 0; color: #7a1f16; font-size: var(--kc-text-sm); font-weight: 600; }
.kc-form-card .gform_validation_errors ol { margin: 0.35rem 0 0; padding-left: 1.25rem; font-size: var(--kc-text-xs); }
.kc-form-card .gform_validation_errors a { color: #7a1f16; }
.kc-form-card .gform_confirmation_message { padding: 1rem 1.25rem; border-left: 3px solid #1e7b45; border-radius: 0 var(--kc-radius-sm) var(--kc-radius-sm) 0; background: #e6f6ec; color: #14532d; font-weight: 600; }
.kc-form-card .gform_confirmation_message p { margin: 0; }

/* Intent question: two choice cards (icon, title, one line); the selected card gets a blue border and check badge. */
.kc-form-card .kc-form-intent > legend.gfield_label { float: left; width: 100%; margin-bottom: 0.6rem; font-size: 1rem; }
.kc-form-card .kc-form-intent > .ginput_container { clear: both; }
.kc-form-card .kc-form-intent .gfield_radio { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; margin: 0; padding: 0; }
.kc-form-card .kc-form-intent .gchoice { position: relative; margin: 0; }
.kc-form-card .kc-form-intent .gchoice input { position: absolute; opacity: 0; pointer-events: none; }
.kc-form-card .kc-form-intent .gchoice label {
  position: relative; display: flex; align-items: flex-start; gap: 0.875rem; max-width: none; height: 100%; margin: 0; padding: 1.1rem 2.5rem 1.1rem 1.1rem; box-sizing: border-box;
  border: 1.5px solid var(--kc-line); border-radius: var(--kc-radius-lg); background: var(--kc-white); box-shadow: var(--kc-shadow);
  cursor: pointer; transition: border-color var(--kc-dur) var(--kc-ease), background-color var(--kc-dur) var(--kc-ease), transform var(--kc-dur) var(--kc-ease);
}
.kc-form-card .kc-form-intent .gchoice label::after {
  content: ""; position: absolute; top: 0.85rem; right: 0.85rem;
  width: 1.25rem; height: 1.25rem; border: 2px solid var(--kc-line); border-radius: 50%; background: var(--kc-white) no-repeat center / 0.65rem; box-sizing: border-box;
}
.kc-form-card .kc-form-intent .gchoice label:hover { border-color: var(--kc-blue-wash-2); transform: translateY(-2px); }
.kc-form-card .kc-form-intent .gchoice input:checked + label { border-color: var(--kc-blue-strong); background: var(--kc-blue-wash); }
.kc-form-card .kc-form-intent .gchoice input:checked + label::after { border-color: var(--kc-blue-strong); background-color: var(--kc-blue-strong); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath d='M1 5.5 4.3 8.5 11 1.5' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.kc-form-card .kc-form-intent .gchoice input:focus-visible + label { outline: 2px solid var(--kc-blue); outline-offset: 2px; }
.kc-choice__icon { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; border-radius: var(--kc-radius); background: var(--kc-blue-wash); color: var(--kc-blue-strong); font-size: 1.05rem; }
.kc-form-intent input:checked + label .kc-choice__icon { background: var(--kc-blue-strong); color: var(--kc-white); }
.kc-choice__text { display: grid; gap: 0.15rem; }
.kc-choice__text strong { color: var(--kc-ink); font-size: 1rem; font-weight: 700; line-height: 1.3; }
.kc-choice__text span { color: var(--kc-muted); font-size: var(--kc-text-sm); font-weight: 400; line-height: 1.4; }
@media (max-width: 640px) { .kc-form-card .kc-form-intent .gfield_radio { grid-template-columns: minmax(0, 1fr); } }
.kc-form-support { padding: 1.25rem 1.5rem; border: 1px solid var(--kc-blue-wash-2); border-radius: var(--kc-radius-lg); background: var(--kc-white); }
.kc-form-support p { margin: 0 0 0.75rem !important; font-size: var(--kc-text-sm); }
.kc-form-support__title { color: var(--kc-ink); font-size: 1.0625rem !important; font-weight: 700; }
.kc-form-support__actions { display: flex; flex-wrap: wrap; gap: 0.6rem; margin: 0.25rem 0 1rem !important; }
.kc-form-support__btn { display: inline-flex; align-items: center; min-height: 2.75rem; padding: 0 1.1rem; border: 1.5px solid var(--kc-blue-strong); border-radius: var(--kc-radius-sm); background: var(--kc-blue-strong); color: var(--kc-white) !important; font-weight: 600; white-space: nowrap; text-decoration: none; }
.kc-form-support__btn:hover { background: var(--kc-blue-deep); border-color: var(--kc-blue-deep); }
.kc-form-support__btn--ghost { background: transparent; color: var(--kc-blue-strong) !important; }
.kc-form-support__btn--ghost:hover { background: var(--kc-blue-wash); color: var(--kc-blue-deep) !important; }
.kc-form-support__emergency { padding: 0.65rem 0.85rem; border-left: 3px solid var(--kc-orange); border-radius: 0 var(--kc-radius-sm) var(--kc-radius-sm) 0; background: #fff6ea; color: var(--kc-ink); }
.kc-form-support__emergency a, .kc-form-support__email a { color: var(--kc-blue-strong); font-weight: 600; }
.kc-form-support__email { margin: 0 !important; color: var(--kc-muted); }

/* ── Remote support dialog (functions.php + js/kc-site.js) ──────────────── */
.kc-remote { width: min(100% - 2rem, 28rem); padding: 0; border: 0; border-radius: var(--kc-radius-lg); background: transparent; box-shadow: 0 30px 80px -20px rgb(3 12 23 / 0.6); }
.kc-remote::backdrop { background: rgb(3 12 23 / 0.6); backdrop-filter: blur(3px); }
.kc-remote__panel { position: relative; padding: 2rem; border-radius: var(--kc-radius-lg); background: var(--kc-white); color: var(--kc-slate); font-family: var(--kc-font); }
.kc-remote__x { position: absolute; top: 0.75rem; right: 0.75rem; width: 2.25rem; height: 2.25rem; border: 0; border-radius: 50%; background: var(--kc-paper-2); color: var(--kc-ink); font-size: 1.4rem; line-height: 1; cursor: pointer; }
.kc-remote__x:hover { background: var(--kc-line); }
.kc-remote__icon { display: inline-flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; margin: 0 0 1rem; border-radius: var(--kc-radius); background: var(--kc-blue-wash); color: var(--kc-blue-strong); }
.kc-remote__icon svg { width: auto; height: 1.25rem; fill: currentColor; }
.kc-remote__title { margin: 0 0 0.4rem; color: var(--kc-ink); font-size: 1.375rem; font-weight: 800; letter-spacing: -0.02em; line-height: 1.2; }
.kc-remote__text { margin: 0 0 1.25rem; font-size: 1rem; }
.kc-remote__label { display: block; margin: 0 0 0.35rem; color: var(--kc-ink); font-size: var(--kc-text-sm); font-weight: 600; }
.kc-remote .kc-remote__input { width: 100%; height: auto; box-sizing: border-box; padding: 0.75rem 1rem; border: 1.5px solid var(--kc-line); border-radius: var(--kc-radius-sm); background: var(--kc-white); color: var(--kc-ink); font: 700 1.6rem/1.2 var(--kc-font); letter-spacing: 0.2em; text-align: center; }
.kc-remote .kc-remote__input:focus { outline: none; border-color: var(--kc-blue-strong); box-shadow: 0 0 0 3px rgb(21 165 215 / 0.3); }
.kc-remote__actions { display: flex; gap: 0.6rem; margin-top: 1rem; }
.kc-remote__connect, .kc-remote__cancel { flex: 1; min-height: 2.875rem; border-radius: var(--kc-radius-sm); font: 600 1rem var(--kc-font); cursor: pointer; }
.kc-remote__connect { border: 0; background: var(--kc-blue-strong); color: var(--kc-white); }
.kc-remote__connect:hover { background: var(--kc-blue-deep); }
.kc-remote__cancel { border: 1.5px solid var(--kc-line); background: var(--kc-white); color: var(--kc-ink); }
.kc-remote__cancel:hover { background: var(--kc-paper-2); }
.kc-remote :focus-visible { outline: 2px solid var(--kc-blue); outline-offset: 2px; }
.kc-remote__help { margin: 1.25rem 0 0; padding-top: 1rem; border-top: 1px solid var(--kc-line); color: var(--kc-muted); font-size: var(--kc-text-sm); }
.kc-remote__help a { color: var(--kc-blue-strong); font-weight: 600; }
.kc-remote--join { width: min(100% - 2rem, 44rem); }
.kc-remote__frame { overflow: hidden; margin-top: 1rem; border: 1px solid var(--kc-line); border-radius: var(--kc-radius); background: var(--kc-paper-2); }
.kc-remote__frame iframe { display: block; width: 100%; height: min(24rem, 60vh); border: 0; }
.kc-remote__help--row { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.5rem 1rem; }
.kc-remote__alt { margin: 0.75rem 0 0; padding: 0.6rem 0.8rem; border-radius: var(--kc-radius-sm); background: var(--kc-paper-2); color: var(--kc-muted); font-size: var(--kc-text-sm); line-height: 1.5; }
.kc-remote__alt strong { color: var(--kc-ink); }
.kc-remote__alt a { color: var(--kc-blue-strong); font-weight: 600; }
.kc-remote__back { padding: 0; border: 0; background: none; color: var(--kc-blue-strong); font: 600 var(--kc-text-sm) var(--kc-font); cursor: pointer; }
.kc-remote__back:hover { color: var(--kc-blue-deep); }
.kc-remote__error { margin: 0.6rem 0 0; padding: 0.6rem 0.8rem; border-left: 3px solid #c0392b; border-radius: 0 var(--kc-radius-sm) var(--kc-radius-sm) 0; background: #fdecea; color: #7a1f16; font-size: var(--kc-text-sm); }
.kc-remote__connect:disabled { opacity: 0.7; cursor: progress; }
.kc-remote__icon--ok { background: #e6f6ec; color: #1e7b45; }
.kc-remote__steps { margin: 0.75rem 0 0; padding-left: 1.25rem; color: var(--kc-slate); font-size: 1rem; line-height: 1.55; }
.kc-remote__steps li { margin-bottom: 0.4rem; }
.kc-remote__steps strong { color: var(--kc-ink); }
.kc-remote__again { color: var(--kc-blue-strong); font-weight: 600; }

/* ── Header: top bar + sticky bar (template part "header") ───────────────── */
/* The whole header part sticks, pulled up by the top bar's height: the top bar scrolls away, the bar stays. */
.kc-site-header { position: sticky; top: calc(var(--wp-admin--admin-bar--height, 0px) - var(--kc-topbar-h)); z-index: 100; }
.kc-site-header > * { margin-block: 0; }
.kc-topbar { padding-inline: var(--kc-gutter); background: var(--kc-navy-deep); color: var(--kc-on-dark-2); font-size: var(--kc-text-xs); }
.kc-topbar__inner { height: var(--kc-topbar-h); gap: 1rem; }
.kc-topbar__list { gap: 1.5rem; }
.kc-topbar p { display: inline-flex; align-items: center; gap: 0.4rem; margin: 0; white-space: nowrap; line-height: 1.4; }
.kc-topbar .kc-i::before { color: var(--kc-blue-light); font-size: 0.8rem; }
.kc-topbar a { color: var(--kc-on-dark-2); text-decoration: none; }
.kc-topbar a:hover { color: var(--kc-white); }
/* "Remote support": the obvious thing to click when a technician asks */
.kc-topbar .kc-topbar__remote a { --kc-i: url("assets/icons/desktop.svg"); display: inline-flex; align-items: center; gap: 0.4rem; min-height: 1.85rem; padding: 0 0.8rem; border-radius: 999px; background: var(--kc-orange); color: var(--kc-navy-deep); font-weight: 700; transition: background-color var(--kc-dur) var(--kc-ease), transform var(--kc-dur) var(--kc-ease); }
.kc-topbar .kc-topbar__remote a::before { content: ""; width: 0.85rem; height: 0.8rem; background: currentColor; -webkit-mask: var(--kc-i) no-repeat center / contain; mask: var(--kc-i) no-repeat center / contain; }
.kc-topbar .kc-topbar__remote a:hover, .kc-topbar .kc-topbar__remote a:focus-visible { background: #ffc072; color: var(--kc-navy-deep); }
.kc-topbar .kc-topbar__remote a:active { transform: translateY(1px); }
/* Small phones: the phone number doesn't fit beside Partner portal + Remote support, so the bar keeps the two partner links. */
@media (max-width: 400px) { .kc-topbar__inner > .kc-topbar__list:first-child { display: none; } .kc-topbar__inner { justify-content: flex-end; } }
@media (max-width: 640px) { .kc-topbar__hide-sm { display: none !important; } .kc-header__logo img { max-height: 2.625rem; } }

.kc-header { padding-inline: var(--kc-gutter); background: var(--kc-white); border-bottom: 1px solid var(--kc-line); }
.kc-header__inner { position: relative; min-height: var(--kc-header-h); gap: 24px; }
.kc-header__logo { flex: 0 0 auto; margin: 0; line-height: 0; }
.kc-header__logo img { width: auto; height: auto; max-height: 2.75rem; }
.kc-header__cta { flex: 0 0 auto; }
.kc-header__cta .wp-block-button__link { min-height: 2.75rem; }

/* Main menu (Navigation block) */
.kc-nav { font-size: 0.9375rem; font-weight: 500; }
.kc-nav--desktop { position: static !important; flex: 1 1 auto; justify-content: center; } /* panels position against the header bar */
.kc-nav--desktop > .wp-block-navigation__container { gap: 30px; }
.kc-nav .wp-block-navigation-item__content { color: var(--kc-slate); }
.kc-nav--desktop > ul > .wp-block-navigation-item > .wp-block-navigation-item__content { padding-block: 0.25rem; border-bottom: 2px solid transparent; transition: color var(--kc-dur) var(--kc-ease), border-color var(--kc-dur) var(--kc-ease); }
.kc-nav--desktop > ul > .wp-block-navigation-item:is(:hover, :focus-within) > .wp-block-navigation-item__content,
.kc-nav--desktop > ul > .current-menu-item > .wp-block-navigation-item__content { color: var(--kc-blue-strong); border-bottom-color: var(--kc-blue-strong); }
.kc-nav--desktop > ul > .wp-block-navigation-item:is(:hover, :focus-within) > .wp-block-navigation__submenu-icon { color: var(--kc-blue-strong); }
.kc-nav--desktop .wp-block-navigation__submenu-icon { margin-left: 0.4rem; color: var(--kc-slate); }
.kc-nav--desktop .wp-block-navigation__submenu-icon svg { stroke: currentColor; }

/* Mega panels: each submenu is a panel the width of the header content, an intro column on the left
   (its first item) and a grid of icon + label + description items. */
.kc-nav--desktop .wp-block-navigation-item.kc-mega { position: static; }
.kc-nav--desktop .kc-mega > .wp-block-navigation__submenu-container {
  --kc-cols: 3;
  left: 0 !important; right: 0; top: 100% !important;
  display: grid; grid-template-columns: 16rem repeat(var(--kc-cols), minmax(0, 1fr)); grid-auto-rows: min-content; gap: 0.25rem;
  padding: 1rem 1rem 1rem 0; box-sizing: border-box;
  border: 1px solid var(--kc-line) !important; border-radius: var(--kc-radius-lg); background: var(--kc-white) !important;
  box-shadow: 0 24px 48px -24px rgb(17 27 40 / 0.35);
  color: var(--kc-muted); text-align: left;
}
.kc-nav--desktop .kc-mega > .wp-block-navigation__submenu-container::before { content: ""; position: absolute; left: 0; right: 0; bottom: 100%; height: 1.75rem; } /* hover bridge from the menu item */
.kc-nav--desktop .kc-mega--2 > .wp-block-navigation__submenu-container { --kc-cols: 2; }
.kc-nav--desktop .kc-mega--4 > .wp-block-navigation__submenu-container { --kc-cols: 4; }
.kc-nav--desktop .kc-mega > ul .wp-block-navigation-item { display: block; margin: 0; }
.kc-nav--desktop .kc-mega > ul .wp-block-navigation-item__content {
  position: relative; display: grid !important; grid-template-columns: 2.25rem minmax(0, 1fr); column-gap: 0.75rem; align-content: start;
  padding: 0.75rem !important; border-radius: var(--kc-radius); color: var(--kc-muted); font-size: var(--kc-text-xs); line-height: 1.4; text-decoration: none;
  transition: background-color var(--kc-dur) var(--kc-ease);
}
.kc-nav--desktop .kc-mega > ul .wp-block-navigation-item__content:is(:hover, :focus-visible) { background: var(--kc-blue-wash); color: var(--kc-muted); }
.kc-nav--desktop .kc-mega > ul .wp-block-navigation-item__label { grid-column: 2; color: var(--kc-ink); font-size: 0.9375rem; font-weight: 700; }
.kc-nav--desktop .kc-mega > ul .wp-block-navigation-item__content:hover .wp-block-navigation-item__label { color: var(--kc-blue-strong); }
.kc-nav--desktop .kc-mega > ul .wp-block-navigation-item__description { display: block; grid-column: 2; margin-top: 0.15rem; }
/* The icon tile: ::before is the tile, ::after the icon on it. */
.kc-nav--desktop .kc-mega > ul :is(.kc-i, .kc-ind) > a::before { content: ""; grid-column: 1; grid-row: 1 / span 2; width: 2.25rem; height: 2.25rem; border-radius: var(--kc-radius-sm); background: var(--kc-blue-wash); -webkit-mask: none; mask: none; }
.kc-nav--desktop .kc-mega > ul .kc-i > a::after { content: ""; position: absolute; top: 0.75rem; left: 0.75rem; width: 2.25rem; height: 2.25rem; background: var(--kc-blue-strong); -webkit-mask: var(--kc-i) no-repeat center / 0.95rem; mask: var(--kc-i) no-repeat center / 0.95rem; }
.kc-nav--desktop .kc-mega > ul .kc-ind > a::after { content: ""; position: absolute; top: 0.75rem; left: 0.75rem; width: 2.25rem; height: 2.25rem; background: var(--kc-ind) no-repeat center / 1.6rem; }
.kc-nav--desktop .kc-mega > ul :is(.kc-i, .kc-ind) > a:hover::before { background: var(--kc-white); }
.kc-ind--architecture { --kc-ind: url("assets/img/icon_architecture.svg"); }
.kc-ind--education { --kc-ind: url("assets/img/icon_education-01.svg"); }
.kc-ind--engineering { --kc-ind: url("assets/img/icon_engineering-01.svg"); }
.kc-ind--legal { --kc-ind: url("assets/img/icon_legal-01.svg"); }
.kc-ind--manufacturing { --kc-ind: url("assets/img/icon_manufacturing.svg"); }
.kc-ind--nonprofit { --kc-ind: url("assets/img/icon_non-profit-01.svg"); }
.kc-ind--healthcare { --kc-ind: url("assets/img/icon_healthcare-01.svg"); }
.kc-ind--sports-entertainment { --kc-ind: url("assets/img/icon_sports-entertainment-01.svg"); }
/* Intro column: section name, one line, "All …" link. */
.kc-nav--desktop .kc-mega > ul .kc-mega__intro { grid-column: 1; grid-row: 1 / span 3; margin: -1rem 0.75rem -1rem 0; padding: 1.75rem; border-right: 1px solid var(--kc-line); border-radius: var(--kc-radius-lg) 0 0 var(--kc-radius-lg); background: var(--kc-paper-2); }
.kc-nav--desktop .kc-mega--4 > ul .kc-mega__intro { grid-row: 1 / span 2; }
.kc-nav--desktop .kc-mega > ul .kc-mega__intro > a { display: block !important; padding: 0 !important; background: none !important; }
.kc-nav--desktop .kc-mega > ul .kc-mega__intro .wp-block-navigation-item__label { display: block; margin: 0 0 0.5rem; font-size: 1.125rem; font-weight: 800; }
.kc-nav--desktop .kc-mega > ul .kc-mega__intro .wp-block-navigation-item__description { margin: 0 0 1rem; font-size: var(--kc-text-sm); line-height: 1.5; }
.kc-nav--desktop .kc-mega > ul .kc-mega__intro > a::after { content: "All IT services \2192"; display: block; color: var(--kc-blue-strong); font-size: 1rem; font-weight: 600; }
.kc-nav--desktop .kc-mega--2 > ul .kc-mega__intro > a::after { content: "All web services \2192"; }
.kc-nav--desktop .kc-mega--4 > ul .kc-mega__intro > a::after { content: "All industries \2192"; }
.kc-nav--desktop .kc-mega > ul .kc-mega__intro > a:hover::after { color: var(--kc-blue-deep); }
.kc-nav--desktop .kc-mega > ul .kc-mega__intro > a:hover .wp-block-navigation-item__label { color: var(--kc-ink); }
/* A second intro link (Web services: "See our work"), under "All web services". */
.kc-nav--desktop .kc-mega > ul:has(.kc-mega__more) .kc-mega__intro { padding-bottom: 3.75rem; }
.kc-nav--desktop .kc-mega > ul .kc-mega__more { position: absolute; left: 1.75rem; bottom: 1.75rem; background: transparent; } /* core gives menu items the panel's white */
.kc-nav--desktop .kc-mega > ul .kc-mega__more > a { display: inline-flex !important; gap: 0.4rem; padding: 0 !important; background: none !important; }
.kc-nav--desktop .kc-mega > ul .kc-mega__more .wp-block-navigation-item__label { color: var(--kc-blue-strong); font-size: 1rem; font-weight: 600; }
.kc-nav--desktop .kc-mega > ul .kc-mega__more > a::after { content: "\2192"; color: var(--kc-blue-strong); font-size: 1rem; font-weight: 600; }
.kc-nav--desktop .kc-mega > ul .kc-mega__more > a:hover :is(.wp-block-navigation-item__label), .kc-nav--desktop .kc-mega > ul .kc-mega__more > a:hover::after { color: var(--kc-blue-deep); }

/* Phones and tablets (≤1024px): the menu button opens the menu as a panel under the header (Navigation block
   overlay, restyled), the close button in the menu button's place. Submenus fold behind a chevron (js/kc-site.js). */
.kc-header .kc-nav--mobile { display: none; }
@media (max-width: 1024px) {
  .kc-nav--desktop, .kc-header__cta { display: none !important; }
  .kc-header { position: relative; }
  .kc-header .kc-header__inner { position: static; }
  .kc-header .kc-nav--mobile { position: static !important; display: flex; margin-left: auto; }
  .kc-nav--mobile .wp-block-navigation__responsive-container-open { padding: 0.5rem; color: var(--kc-ink); }
  .kc-nav--mobile .wp-block-navigation__responsive-container-open svg { width: 1.75rem; height: 1.75rem; }
  .kc-nav--mobile .wp-block-navigation__responsive-container.is-menu-open {
    position: absolute; inset: 100% 0 auto; z-index: 10; padding: 0 !important; overflow: visible;
    background: var(--kc-white) !important; color: var(--kc-ink) !important;
    border-top: 1px solid var(--kc-line); box-shadow: 0 24px 48px -24px rgb(17 27 40 / 0.35);
    animation: none;
  }
  .kc-nav--mobile .is-menu-open :is(.wp-block-navigation__responsive-close, .wp-block-navigation__responsive-dialog) { position: static; max-width: none; margin: 0; padding: 0 !important; }
  .kc-nav--mobile .is-menu-open .wp-block-navigation__responsive-container-content {
    max-height: calc(100vh - var(--kc-header-h)); max-height: calc(100dvh - var(--kc-header-h)); overflow-y: auto; overscroll-behavior: contain;
    padding: 0 !important; align-items: stretch !important; gap: 0 !important;
  }
  .kc-nav--mobile .is-menu-open .wp-block-navigation__responsive-container-close {
    position: absolute; top: calc(-1 * var(--kc-header-h) / 2 - 1.375rem); right: calc(var(--kc-gutter) - 0.25rem);
    display: flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; border-radius: var(--kc-radius-sm); background: var(--kc-white); color: var(--kc-ink);
  }
  .kc-nav--mobile .is-menu-open .wp-block-navigation__responsive-container-close svg { width: 1.75rem; height: 1.75rem; }
  .kc-nav--mobile .is-menu-open .wp-block-navigation__container { gap: 0 !important; align-items: stretch !important; width: 100%; }
  .kc-nav--mobile .is-menu-open .wp-block-navigation-item { position: relative; display: block !important; width: 100%; border-bottom: 1px solid var(--kc-line); }
  .kc-nav--mobile .is-menu-open .wp-block-navigation-item__content { display: flex !important; align-items: center; min-height: 56px; padding: 0 3.5rem 0 var(--kc-gutter) !important; color: var(--kc-ink) !important; font-size: 1rem; }
  .kc-nav--mobile .is-menu-open .current-menu-item > .wp-block-navigation-item__content { background: var(--kc-blue-wash); color: var(--kc-blue-strong) !important; }
  .kc-nav--mobile .is-menu-open .wp-block-navigation-item__content:hover { background: var(--kc-blue-wash); color: var(--kc-blue-strong) !important; }
  .kc-nav--mobile .is-menu-open .wp-block-navigation-item__description, .kc-nav--mobile .is-menu-open .wp-block-navigation-item.kc-mega__intro { display: none !important; }
  .kc-nav--mobile .is-menu-open :is(.kc-i, .kc-ind) > a::before { content: none; }
  .kc-nav--mobile .is-menu-open .wp-block-navigation__submenu-icon { position: absolute; top: 0; right: 0; display: flex !important; align-items: center; justify-content: center; width: 3.5rem; height: 56px; margin: 0; padding: 0; border: 0; background: none; color: var(--kc-ink); }
  .kc-nav--mobile .is-menu-open .wp-block-navigation__submenu-icon svg { display: block; width: 0.75rem; height: 0.75rem; stroke: currentColor; transition: transform var(--kc-dur) var(--kc-ease); }
  .kc-nav--mobile .is-menu-open .kc-open > .wp-block-navigation__submenu-icon svg { transform: rotate(180deg); }
  .kc-nav--mobile .is-menu-open .wp-block-navigation__submenu-container { position: static !important; width: 100% !important; min-width: 0 !important; height: auto !important; margin: 0 !important; padding: 0 !important; border: 0 !important; border-top: 1px solid var(--kc-line) !important; opacity: 1 !important; visibility: visible !important; background: var(--kc-white) !important; }
  .kc-nav--mobile .is-menu-open .has-child:not(.kc-open) > .wp-block-navigation__submenu-container { display: none !important; }
  .kc-nav--mobile .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item:last-child { border-bottom: 0; }
  .kc-nav--mobile .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding-left: calc(var(--kc-gutter) + 1.25rem) !important; font-size: 0.9375rem; }
}

/* ── Footer (template part "footer") ─────────────────────────────────────── */
.kc-footer { padding: clamp(3.5rem, 5vw, 5rem) var(--kc-gutter) 20px; background: var(--kc-navy-deep); color: var(--kc-on-dark-3); font-size: var(--kc-text-sm); }
.kc-footer > * { margin-block: 0; }
.kc-footer p { margin: 0 0 0.75rem; color: var(--kc-on-dark-3); }
.kc-footer__grid { grid-template-columns: minmax(0, 43fr) repeat(3, minmax(0, 20fr)) !important; gap: var(--kc-row-gap, 20px) 32px !important; }
.kc-footer__col > * { margin-block: 0; }
.kc-footer__brand { margin: 0 0 1rem !important; }
.kc-footer__brand img { width: 11rem !important; height: auto; }
.kc-footer__title { margin: 0 0 0.75rem !important; color: var(--kc-on-dark) !important; font-weight: 700; font-size: 1rem; }
.kc-footer ul { display: grid; gap: 0.5rem; margin: 0; padding: 0; list-style: none; font-size: var(--wp--preset--font-size--base); line-height: 1.65; }
.kc-footer li { margin: 0; }
.kc-footer a { color: var(--kc-on-dark-3); text-decoration: none; }
.kc-footer a:hover { color: var(--kc-white); }
.kc-footer .kc-footer__social { display: flex; gap: 0.75rem; margin: 1rem 0 0 !important; padding: 0; }
.kc-footer__social .wp-social-link { margin: 0; border-radius: var(--kc-radius-sm); background: rgb(255 255 255 / 0.08) !important; color: var(--kc-on-dark-2) !important; font-size: 1rem; transition: background-color var(--kc-dur) var(--kc-ease); }
.kc-footer__social .wp-social-link a { display: inline-flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; padding: 0; color: inherit; }
.kc-footer__social .wp-social-link svg { width: 1rem; height: 1rem; }
.kc-footer__social .wp-social-link:hover { background: var(--kc-blue-strong) !important; color: var(--kc-white) !important; transform: none; }
.kc-footer__bottom { justify-content: space-between; gap: 0.5rem 1rem; margin-top: calc(2.5rem + 20px) !important; padding-block: 1.5rem; border-top: 1px solid var(--kc-line-dark); font-size: var(--kc-text-xs); }
.kc-footer__bottom p { margin: 0; }
@media (max-width: 1024px) {
  .kc-footer__grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .kc-footer__col--brand { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .kc-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .kc-footer__col--company { grid-column: 1 / -1; }
}

/* ── Posts, search and 404 (templates) ───────────────────────────────────── */
.kc-posts { width: 100%; }
.kc-post { padding: 1.5rem 0; border-bottom: 1px solid var(--kc-line); }
.kc-post__title { margin: 0 0 0.25rem; font-size: var(--kc-text-h3); }
.kc-post__title a { color: var(--kc-ink); }
.kc-post__title a:hover { color: var(--kc-blue-strong); }
.kc-post__date { color: var(--kc-muted); font-size: var(--kc-text-sm); }
.kc-search { max-width: 32rem; margin-top: 1.5rem !important; }
.kc-search .wp-block-search__input { min-height: 2.875rem; padding: 0.65rem 0.875rem; border: 1px solid var(--kc-line); border-radius: var(--kc-radius-sm); font: inherit; }
.kc-search .wp-block-search__button { margin-left: 0.5rem; }

/* Component links change colour on hover, never underline (running text in .kc-prose keeps its underline). */
:is(.kc-section, .kc-header, .kc-topbar, .kc-footer) a:not(.wp-block-button__link):is(:hover, :focus-visible),
:is(.kc-section, .kc-header, .kc-topbar, .kc-footer) a:not(.wp-block-button__link):is(:hover, :focus-visible) * { text-decoration: none !important; }
.kc-prose a:hover { text-decoration: underline !important; }

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  .kc-wide { grid-template-columns: minmax(0, 1fr); }
  .kc-web__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kc-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 3rem; }
  .kc-steps::before { display: none; }
  .kc-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 2rem; }
  .kc-cta__actions .wp-block-buttons { justify-content: flex-start; }
  .kc-col > .kc-hub { width: 100%; max-width: 34rem; margin-inline: auto !important; }
}

@media (max-width: 640px) {
  .kc-links, .kc-pillars, .kc-features { grid-template-columns: minmax(0, 1fr); }
  .kc-head { text-align: left; }
  /* Phones: denser cards, tiles and feature lists so pages aren't a long single column of big boxes. */
  .kc-card { --kc-card-pad: 1.25rem; gap: 0.5rem; }
  .kc-section .kc-icon:not(.kc-icon--quote) { width: 2.25rem; height: 2.25rem; }
  .kc-section .kc-icon:not(.kc-icon--quote) svg { height: 1rem; }
  .kc-card__title, .kc-section .kc-card__title { font-size: 1.125rem; margin: 0.1rem 0 0.25rem; }
  .kc-card:not(.kc-card--feature) .kc-bullets { display: none; }
  .kc-card__more { padding-top: 0.5rem; }
  .kc-industry { padding: 1rem; gap: 0.35rem; }
  .kc-industry__icon img { width: 2.25rem; height: 2.25rem; }
  .kc-industry__icon { margin-bottom: 0.25rem !important; }
  .kc-industry__text, .kc-section .kc-industry__text { display: none; }
  .kc-industry__name { font-size: 0.9375rem; }
  .kc-features { gap: 1.25rem; }
  .kc-features > *, .kc-pillar { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 0.875rem; align-items: start; }
  .kc-features .wp-block-icon, .kc-pillar .wp-block-icon { grid-column: 1; grid-row: 1 / span 2; width: 2.25rem; height: 2.25rem; }
  .kc-features .wp-block-icon svg, .kc-pillar .wp-block-icon svg { height: 0.95rem; }
  :is(.kc-features > *, .kc-pillar) > :not(.wp-block-icon) { grid-column: 2; }
  .kc-features h3, .kc-section .kc-features h3, .kc-pillar h3, .kc-section .kc-pillar h3 { margin: 0.1rem 0 0.25rem; font-size: 1.0625rem; }
  .kc-pillar { padding: 1.1rem; }
  .kc-pillars { gap: 0.75rem; }
  .kc-head__sub, .kc-hero__lede, .kc-lead { font-size: 1.0625rem; }
  .kc-quote-card .kc-quote .wp-block-quote { font-size: 1.0625rem; }
  .kc-hub { display: none; }
  .kc-hero .wp-block-buttons, .kc-cta .wp-block-buttons { flex-direction: column; align-items: stretch; }
  .kc-hero .wp-block-buttons { row-gap: 1.75rem; }
  .kc-hero .wp-block-button, .kc-cta .wp-block-button, .kc-hero .wp-block-button__link, .kc-cta .wp-block-button__link { width: 100%; }
  .kc-strip ul { gap: 0.5rem 1.25rem; }
  .kc-strip li { font-size: 1rem; }
  .kc-web__grid, .kc-steps { grid-template-columns: minmax(0, 1fr); }
  .kc-logos, .kc-logos--3, .kc-logos--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kc-step { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 1rem; text-align: left; }
  .kc-step__num { grid-row: span 2; box-shadow: none; }
  .kc-step__title, .kc-section .kc-step__title { margin-top: 0.5rem; }
  .kc-timeline > * { grid-template-columns: minmax(0, 1fr); gap: 0.25rem; }
  .kc-compare li { flex-direction: column; gap: 0; }
  .kc-compare span:last-child { text-align: left; font-size: var(--kc-text-xs); }
}

@media (prefers-reduced-motion: reduce) {
  .kc-section *, .kc-header *, .kc-footer * { transition-duration: 0.01ms !important; }
  .kc-card--link:hover, .kc-industry:hover { transform: none; }
}

/* ── Icon classes (theme icon collection, assets/icons) ──────────────────── */
.kc-i--aws { --kc-i: url("assets/icons/aws.svg"); }
.kc-i--bolt { --kc-i: url("assets/icons/bolt.svg"); }
.kc-i--briefcase { --kc-i: url("assets/icons/briefcase.svg"); }
.kc-i--building { --kc-i: url("assets/icons/building.svg"); }
.kc-i--calendar-check { --kc-i: url("assets/icons/calendar-check.svg"); }
.kc-i--chart-line { --kc-i: url("assets/icons/chart-line.svg"); }
.kc-i--cloud { --kc-i: url("assets/icons/cloud.svg"); }
.kc-i--code { --kc-i: url("assets/icons/code.svg"); }
.kc-i--database { --kc-i: url("assets/icons/database.svg"); }
.kc-i--desktop { --kc-i: url("assets/icons/desktop.svg"); }
.kc-i--download { --kc-i: url("assets/icons/download.svg"); }
.kc-i--edit { --kc-i: url("assets/icons/edit.svg"); }
.kc-i--envelope { --kc-i: url("assets/icons/envelope.svg"); }
.kc-i--ethernet { --kc-i: url("assets/icons/ethernet.svg"); }
.kc-i--exchange-alt { --kc-i: url("assets/icons/exchange-alt.svg"); }
.kc-i--expand-arrows-alt { --kc-i: url("assets/icons/expand-arrows-alt.svg"); }
.kc-i--facebook-f { --kc-i: url("assets/icons/facebook-f.svg"); }
.kc-i--globe { --kc-i: url("assets/icons/globe.svg"); }
.kc-i--handshake { --kc-i: url("assets/icons/handshake.svg"); }
.kc-i--hdd { --kc-i: url("assets/icons/hdd.svg"); }
.kc-i--headset { --kc-i: url("assets/icons/headset.svg"); }
.kc-i--heartbeat { --kc-i: url("assets/icons/heartbeat.svg"); }
.kc-i--laptop-code { --kc-i: url("assets/icons/laptop-code.svg"); }
.kc-i--life-ring { --kc-i: url("assets/icons/life-ring.svg"); }
.kc-i--linkedin-in { --kc-i: url("assets/icons/linkedin-in.svg"); }
.kc-i--lock { --kc-i: url("assets/icons/lock.svg"); }
.kc-i--map-marker-alt { --kc-i: url("assets/icons/map-marker-alt.svg"); }
.kc-i--microsoft { --kc-i: url("assets/icons/microsoft.svg"); }
.kc-i--network-wired { --kc-i: url("assets/icons/network-wired.svg"); }
.kc-i--palette { --kc-i: url("assets/icons/palette.svg"); }
.kc-i--pencil-ruler { --kc-i: url("assets/icons/pencil-ruler.svg"); }
.kc-i--phone-volume { --kc-i: url("assets/icons/phone-volume.svg"); }
.kc-i--phone { --kc-i: url("assets/icons/phone.svg"); }
.kc-i--question-circle { --kc-i: url("assets/icons/question-circle.svg"); }
.kc-i--quote-left { --kc-i: url("assets/icons/quote-left.svg"); }
.kc-i--search { --kc-i: url("assets/icons/search.svg"); }
.kc-i--server { --kc-i: url("assets/icons/server.svg"); }
.kc-i--shield-alt { --kc-i: url("assets/icons/shield-alt.svg"); }
.kc-i--shopping-cart { --kc-i: url("assets/icons/shopping-cart.svg"); }
.kc-i--sync-alt { --kc-i: url("assets/icons/sync-alt.svg"); }
.kc-i--tachometer-alt { --kc-i: url("assets/icons/tachometer-alt.svg"); }
.kc-i--tools { --kc-i: url("assets/icons/tools.svg"); }
.kc-i--universal-access { --kc-i: url("assets/icons/universal-access.svg"); }
.kc-i--user-check { --kc-i: url("assets/icons/user-check.svg"); }
.kc-i--user-lock { --kc-i: url("assets/icons/user-lock.svg"); }
.kc-i--user-shield { --kc-i: url("assets/icons/user-shield.svg"); }
.kc-i--users { --kc-i: url("assets/icons/users.svg"); }
.kc-i--wifi { --kc-i: url("assets/icons/wifi.svg"); }
.kc-i--wordpress { --kc-i: url("assets/icons/wordpress.svg"); }
