/*
Theme Name: Avada Child
Description: Child theme for Avada theme — Kishmish design system (2026 redesign)
Author: ThemeFusion
Author URI: https://theme-fusion.com
Template: Avada
Version: 2.0.0
Text Domain:  Avada
*/

/* ==========================================================================
   Kishmish design system
   Pages are built with Avada's own containers, columns, text, button, icon,
   image and form elements. Each container/column gets a kc- class; this file
   styles those classes. Colours come from Avada's global palette
   (--awb-color1…8, --awb-custom_color_1…4) so Theme Options stay the source
   of truth for brand colours.
   ========================================================================== */

:root {
  --kc-white:      var(--awb-color1);
  --kc-paper-2:    var(--awb-color2);
  --kc-line:       var(--awb-color3);
  --kc-blue:       var(--awb-color4);
  --kc-orange:     var(--awb-color5);
  --kc-navy:       var(--awb-color6);
  --kc-slate:      var(--awb-color7);
  --kc-ink:        var(--awb-color8);
  --kc-blue-strong: var(--awb-custom_color_1);
  --kc-blue-deep:  var(--awb-custom_color_2);
  --kc-blue-wash:  var(--awb-custom_color_3);
  --kc-navy-deep:  var(--awb-custom_color_4);

  --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-section:    clamp(3rem, 3vw + 1.5rem, 4.75rem);
  --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:  clamp(2.375rem, 3.2vw + 1.3rem, 4rem);
  --kc-text-h1:    clamp(2.25rem, 2.6vw + 1.2rem, 3.5rem);
  --kc-text-h2:    clamp(1.875rem, 1.8vw + 1.2rem, 2.75rem);
  --kc-text-h3:    clamp(1.25rem, 0.5vw + 1.1rem, 1.5rem);
  --kc-text-lead:  1.1875rem;
  --kc-text-sm:    0.9375rem;
  --kc-text-xs:    0.8125rem;
}

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); }
:where(.kc-section, .kc-header, .kc-footer, .kc-topbar) :focus-visible { outline: 2px solid var(--kc-blue); outline-offset: 3px; }

/* ── Sections (Avada containers) ───────────────────────────────────────── */
.fusion-fullwidth.kc-section {
  --awb-padding-top: var(--kc-section);
  --awb-padding-bottom: calc(var(--kc-section) - 24px);
  --awb-background-color: var(--kc-white);
  background-color: var(--awb-background-color);
}
.fusion-fullwidth.kc-section--grey { --awb-background-color: var(--kc-paper-2); }
.fusion-fullwidth.kc-section--dark { --awb-background-color: var(--kc-navy); color: var(--kc-on-dark-2); }
.fusion-fullwidth.kc-section--tight { --awb-padding-top: clamp(2.25rem, 2vw + 1.25rem, 3.25rem); --awb-padding-bottom: calc(clamp(2.25rem, 2vw + 1.25rem, 3.25rem) - 24px); }
.fusion-fullwidth.kc-section--flush-top { --awb-padding-top: 0px; }
.fusion-fullwidth.kc-section--flush-bottom { --awb-padding-bottom: 0px; }
:is(.kc-section, .kc-topbar, .kc-header, .kc-footer).fusion-fullwidth {
  --kc-gutter: clamp(1rem, 3vw, 1.5rem);
  --awb-padding-left: var(--kc-gutter); --awb-padding-right: var(--kc-gutter);
  --awb-padding-left-medium: var(--kc-gutter); --awb-padding-right-medium: var(--kc-gutter);
  --awb-padding-left-small: var(--kc-gutter); --awb-padding-right-small: var(--kc-gutter);
}

/* Column content flows as a wrapping row so buttons sit side by side; everything else is full width. */
.kc-section .fusion-column-wrapper.fusion-content-layout-row { align-content: flex-start; gap: 0.75rem; }
.kc-section .fusion-content-layout-row > * { flex: 0 0 100% !important; max-width: 100%; min-width: 0; margin-bottom: 0; }
.kc-section .fusion-content-layout-row > :has(> .fusion-button) { flex: 0 0 auto !important; }
.kc-section .fusion-text { margin-bottom: 0; }
.kc-section .fusion-text > :last-child { margin-bottom: 0; }

/* Headings inside kc sections use the design scale */
.kc-section :is(h1, h2, h3, h4) { color: var(--kc-ink); overflow-wrap: anywhere; }
.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); }
.kc-section p { margin: 0 0 1em; }
.kc-section a:not(.fusion-button) { text-decoration: none; }

/* ── Section heading ─────────────────────────────────────────────────────── */
.kc-head { max-width: 44rem; margin: 0 auto clamp(1.5rem, 2vw, 2.25rem); }
.kc-head--center { text-align: center; }
.kc-head--left { margin-left: 0; }
.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 (Avada button element + kc-btn class) ───────────────────────── */
.fusion-button.kc-btn {
  --button_gradient_top_color: var(--kc-blue-strong);
  --button_gradient_bottom_color: var(--kc-blue-strong);
  --button_gradient_top_color_hover: var(--kc-blue-deep);
  --button_gradient_bottom_color_hover: var(--kc-blue-deep);
  --button_accent_color: var(--kc-white);
  --button_accent_hover_color: var(--kc-white);
  --button_border_color: transparent;
  --button_border_hover_color: transparent;
  --awb-padding-top: 0.8rem; --awb-padding-bottom: 0.8rem; --awb-padding-left: 1.3rem; --awb-padding-right: 1.3rem;
  display: inline-flex; align-items: center; gap: 0.5rem;
  min-height: 2.875rem;
  border: 1.5px solid var(--button_border_color);
  border-radius: var(--kc-radius-sm);
  font-weight: 600; 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);
}
.fusion-button.kc-btn:hover { border-color: var(--button_border_hover_color); }
.fusion-button.kc-btn:active { transform: translateY(1px); }
.fusion-button.kc-btn--lg { --awb-padding-top: 0.95rem; --awb-padding-bottom: 0.95rem; --awb-padding-left: 1.5rem; --awb-padding-right: 1.5rem; min-height: 3.25rem; font-size: 1rem; }
.fusion-button.kc-btn--outline-light {
  --button_gradient_top_color: transparent; --button_gradient_bottom_color: transparent;
  --button_gradient_top_color_hover: rgb(255 255 255 / 0.06); --button_gradient_bottom_color_hover: rgb(255 255 255 / 0.06);
  --button_accent_color: var(--kc-on-dark); --button_accent_hover_color: var(--kc-white);
  --button_border_color: rgb(255 255 255 / 0.35); --button_border_hover_color: var(--kc-on-dark);
}
.fusion-button.kc-btn--outline {
  --button_gradient_top_color: transparent; --button_gradient_bottom_color: transparent;
  --button_gradient_top_color_hover: var(--kc-blue-wash); --button_gradient_bottom_color_hover: var(--kc-blue-wash);
  --button_accent_color: var(--kc-blue-strong); --button_accent_hover_color: var(--kc-blue-deep);
  --button_border_color: var(--kc-blue-wash-2); --button_border_hover_color: var(--kc-blue-strong);
}
.fusion-button.kc-btn--white {
  --button_gradient_top_color: var(--kc-white); --button_gradient_bottom_color: var(--kc-white);
  --button_gradient_top_color_hover: var(--kc-blue-wash); --button_gradient_bottom_color_hover: var(--kc-blue-wash);
  --button_accent_color: var(--kc-blue-deep); --button_accent_hover_color: var(--kc-blue-deep);
}
.fusion-button.kc-btn--light {
  --button_gradient_top_color: var(--kc-white); --button_gradient_bottom_color: var(--kc-white);
  --button_gradient_top_color_hover: var(--kc-blue-wash); --button_gradient_bottom_color_hover: var(--kc-blue-wash);
  --button_accent_color: var(--kc-ink); --button_accent_hover_color: var(--kc-ink);
}

/* 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 ─────────────────────────────────────────────────────────────────── */
.fusion-fullwidth.kc-hero {
  --awb-padding-top: clamp(1.75rem, 1.5vw + 1rem, 2.75rem);
  --awb-padding-bottom: calc(clamp(2.5rem, 2.5vw + 1.25rem, 3.75rem) - 24px);
  --awb-background-color: var(--kc-navy);
  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-hero .fusion-builder-row { align-items: flex-start; }
.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 / 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; 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 .fusion-column-wrapper > :has(> .fusion-button) { margin-top: 1rem; }

/* Breadcrumbs */
.kc-crumbs { margin-bottom: 0.875rem; font-size: var(--kc-text-xs); }
.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; color: var(--kc-on-dark-3); }
.kc-crumbs li + li::before { content: "/"; color: rgb(255 255 255 / 0.3); }
.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-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(--body_typography-font-family, sans-serif); 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(--body_typography-font-family, sans-serif); 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(--body_typography-font-family, sans-serif); 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(--body_typography-font-family, sans-serif); letter-spacing: -0.01em; text-anchor: middle; }

/* Hero strip (industries under the home hero) */
.kc-strip { margin-top: clamp(1.5rem, 3vw, 2.5rem); 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 (Avada columns with kc-card) ──────────────────────────────────── */
.kc-card > .fusion-column-wrapper {
  position: relative; height: 100%; gap: 0.75rem;
  padding: clamp(1.5rem, 2vw, 2rem); 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 > .fusion-column-wrapper > * { flex: 0 0 auto !important; }
.kc-card--link > .fusion-column-wrapper: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 > .fusion-column-wrapper > .fusion-text:last-child { display: flex; flex-direction: column; flex: 1 1 auto !important; }
.kc-card__img { margin: calc(-1 * clamp(1.5rem, 2vw, 2rem)) calc(-1 * clamp(1.5rem, 2vw, 2rem)) 0.5rem !important; }
.kc-card__img img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--kc-radius-lg) var(--kc-radius-lg) 0 0; }

.kc-card--feature > .fusion-column-wrapper { 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--feature .kc-icon.fontawesome-icon { background: var(--kc-blue-strong); color: var(--kc-white); }

.kc-card--ask > .fusion-column-wrapper { background: var(--kc-blue-wash); border-color: var(--kc-blue-wash-2); box-shadow: none; }
.kc-card--dark > .fusion-column-wrapper { 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 > .fusion-column-wrapper { box-shadow: none; background: var(--kc-paper-2); border-color: transparent; }

/* Avada swaps a column's background/border to --awb-bg-color-hover on hover; pin them per card style. */
.fusion-layout-column:is(.kc-card, .kc-form-card) { --awb-bg-color: var(--kc-white); --awb-bg-color-hover: var(--kc-white); --awb-border-color-hover: var(--kc-line); }
.fusion-layout-column.kc-card--link { --awb-border-color-hover: var(--kc-blue-wash-2); }
.fusion-layout-column.kc-card--feature { --awb-bg-color: var(--kc-navy); --awb-bg-color-hover: var(--kc-navy); --awb-border-color-hover: var(--kc-navy); }
.fusion-layout-column.kc-card--ask { --awb-bg-color: var(--kc-blue-wash); --awb-bg-color-hover: var(--kc-blue-wash); --awb-border-color-hover: var(--kc-blue-wash-2); }
.fusion-layout-column.kc-card--dark { --awb-bg-color: var(--kc-navy-800); --awb-bg-color-hover: var(--kc-navy-800); --awb-border-color-hover: var(--kc-line-dark); }
.fusion-layout-column:is(.kc-card--flat, .kc-form-card) { --awb-bg-color: var(--kc-paper-2); --awb-bg-color-hover: var(--kc-paper-2); --awb-border-color-hover: transparent; }
.fusion-layout-column:is(.kc-founder, .kc-web) { --awb-bg-color-hover: transparent; }

/* Icon tile (Avada Font Awesome element) */
.kc-section .fontawesome-icon.kc-icon {
  display: inline-flex !important; align-items: center; justify-content: center;
  width: 2.75rem !important; height: 2.75rem !important; margin: 0 !important;
  border-radius: var(--kc-radius); background: var(--kc-blue-wash); color: var(--kc-blue-strong);
  font-size: 1.2rem !important; line-height: 1 !important;
}
.kc-section--dark .fontawesome-icon.kc-icon, .kc-card--dark .fontawesome-icon.kc-icon { background: rgb(21 165 215 / 0.16); color: var(--kc-blue-light); }
.kc-card--ask .fontawesome-icon.kc-icon { background: var(--kc-white); }
.kc-section .fontawesome-icon.kc-icon--quote { width: auto !important; height: auto !important; background: none; color: var(--kc-blue); font-size: 1.6rem !important; }

/* 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 { max-width: 46rem; margin-inline: auto; font-size: 1.0625rem; }
.kc-prose--left, .kc-prose--left .kc-prose { margin-inline: 0; }
.kc-prose :is(h2, h3) { margin: 2.25rem 0 0.75rem; }
.kc-prose h2 { font-size: var(--kc-text-h2); font-weight: 800; letter-spacing: -0.03em; }
.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. */
.kc-section .fusion-builder-row:has(> .kc-split__a) { align-items: flex-start; }
@media (min-width: 1025px) {
  .kc-section .kc-split__a > .fusion-column-wrapper { padding-right: clamp(0px, 2vw, 2rem); }
  .kc-section .kc-split__b > .fusion-column-wrapper { 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); }

/* ── 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; list-style: none !important; }
.kc-features li { margin: 0 !important; padding: 0 !important; }
.kc-features i { display: inline-flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; border-radius: var(--kc-radius); background: var(--kc-blue-wash); color: var(--kc-blue-strong); font-size: 1.1rem; }
.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 i { 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 ──────────────────────────────────────────────────────────── */
.fusion-fullwidth.kc-band-facts { --awb-padding-top: 2.5rem; --awb-padding-bottom: calc(2.5rem - 24px); --awb-background-color: var(--kc-navy); position: relative; }
.fusion-fullwidth.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; list-style: none !important; text-align: center; }
.kc-facts li { margin: 0 !important; }
.kc-facts__num { display: block; 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-top: 0.25rem; color: var(--kc-on-dark-3); font-size: var(--kc-text-sm); }

/* ── Web services block (home) ───────────────────────────────────────────── */
.kc-web > .fusion-column-wrapper { 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 > .fusion-column-wrapper { flex-flow: row wrap !important; align-items: flex-start; gap: 1.25rem 1.5rem !important; }
.kc-card--wide > .fusion-column-wrapper > .fusion-text { flex: 1 1 0 !important; min-width: 0; }
.kc-wide { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 1.5rem 2rem; align-items: start; }
.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-pillar { padding: 1.5rem; border: 1px solid var(--kc-line-dark); border-radius: var(--kc-radius-lg); background: var(--kc-navy-800); }
.kc-pillar i { display: inline-flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; border-radius: var(--kc-radius); background: rgb(21 165 215 / 0.16); color: var(--kc-blue-light); font-size: 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 .fusion-text { height: 100%; }

/* ── 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; list-style: none !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 br { display: none; }
.kc-step__num { position: relative; display: inline-flex; vertical-align: top; align-items: center; justify-content: center; width: 3rem; height: 3rem; 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(--awb-background-color, #fff); }
.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); }

/* ── Timeline ────────────────────────────────────────────────────────────── */
.kc-timeline { max-width: 52rem; margin: 0 auto !important; padding: 0 !important; list-style: none !important; }
.kc-timeline li { 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 li:last-child { border-bottom: 1px solid var(--kc-line); }
.kc-timeline__year { 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 blockquote { 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 blockquote p { margin: 0 !important; }
.kc-quote figcaption { display: grid; justify-items: start; gap: 0.25rem; margin-top: 1.5rem; }
.kc-quote-card .fusion-text:last-child { flex: 1 1 auto !important; }
.kc-quote-card .kc-quote { display: flex; flex-direction: column; height: 100%; }
.kc-quote-card .kc-quote figcaption { margin-top: auto; 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; 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 blockquote { font-size: clamp(1.25rem, 1vw + 1rem, 1.6rem); font-weight: 600; letter-spacing: -0.01em; }

/* Partner story (single testimonial) */
/* Centre the column itself (Avada uses the wrapper's side margins for the gutter, so leave those alone). */
.fusion-layout-column.kc-story-card { max-width: 58rem; margin-inline: auto !important; }
.kc-story-card > .fusion-column-wrapper { 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 blockquote { 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 blockquote p { margin: 0 !important; }
.kc-story figcaption { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1rem; margin-top: 1.75rem; 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 > .fusion-column-wrapper { 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 blockquote { 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 blockquote p { margin: 0 !important; }
.kc-founder figcaption { display: grid; gap: 0.25rem; margin-top: 2rem; }
.kc-founder .kc-quote__name { color: var(--kc-on-dark); }
.kc-founder .kc-quote__role { color: var(--kc-on-dark-3); }
.kc-founder .fontawesome-icon.kc-icon--quote { color: var(--kc-orange); }

/* ── CTA band ────────────────────────────────────────────────────────────── */
.fusion-fullwidth.kc-cta {
  --awb-padding-top: clamp(2.5rem, 2.5vw + 1.25rem, 3.75rem); --awb-padding-bottom: calc(clamp(2.5rem, 2.5vw + 1.25rem, 3.75rem) - 24px);
  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 .fusion-builder-row { align-items: center; }
.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 > .fusion-column-wrapper { justify-content: flex-end; }
.kc-cta :focus-visible { outline-color: var(--kc-white); }

/* ── Industries ──────────────────────────────────────────────────────────── */
.kc-industry { display: flex; flex-direction: column; 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 img { width: 3rem; height: 3rem; margin-bottom: 0.5rem; }
.kc-industry__name { color: var(--kc-ink); font-weight: 700; }
.kc-industry:hover .kc-industry__name { color: var(--kc-blue-strong); }
.kc-industry__text { color: var(--kc-muted); font-size: var(--kc-text-sm); }
.kc-industry-col .fusion-text, .kc-industry-col .fusion-text > a { height: 100%; }

/* Client logos */
.kc-logos { display: grid; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); gap: 1rem; margin: 0 !important; padding: 0 !important; list-style: none !important; }
.kc-logos li { display: flex; align-items: center; justify-content: center; min-height: 6rem; margin: 0 !important; padding: 1rem; 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 li: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 li { min-height: 0; padding: 0.75rem; }
.kc-logos .kc-logo--square { 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 > .fusion-column-wrapper { text-align: center; }
.kc-person img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--kc-radius-lg); }
.kc-person__name { margin: 1rem 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-info { display: flex; gap: 1rem; margin-bottom: 1rem; padding: 1.25rem 1.5rem; border-radius: var(--kc-radius-lg); background: var(--kc-paper-2); }
.kc-info:last-child { margin-bottom: 0; }
.kc-info p { margin: 0 !important; font-size: var(--kc-text-sm); }
.kc-info__icon { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 2.75rem; height: 2.75rem; border-radius: var(--kc-radius); background: var(--kc-blue-wash-2); color: var(--kc-blue-strong); }
.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-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-form-card > .fusion-column-wrapper { 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); }
.kc-form-card .fusion-form-field { margin-bottom: 1rem; }
.kc-form-card :is(input[type="text"], input[type="email"], input[type="tel"], select, textarea) {
  min-height: 3rem; padding: 0.75rem 0.875rem !important; border: 1px solid var(--kc-line) !important; border-radius: var(--kc-radius-sm) !important;
  background: var(--kc-white) !important; color: var(--kc-ink) !important; font: inherit !important; font-size: 1rem !important;
}
.kc-form-card :is(input, select, textarea):focus { outline: none; border-color: var(--kc-blue-strong) !important; box-shadow: 0 0 0 3px rgb(21 165 215 / 0.3); }
.kc-form-card .fusion-button { border-radius: var(--kc-radius-sm) !important; }

/* ── Header (Avada layout section "Global Header") ───────────────────────── */
.fusion-fullwidth.kc-topbar { --awb-padding-top: 0px; --awb-padding-bottom: 0px; --awb-background-color: var(--kc-navy-deep); background: var(--kc-navy-deep); color: var(--kc-on-dark-2); font-size: var(--kc-text-xs); }
.kc-topbar .fusion-layout-column { margin-bottom: 0 !important; }
.kc-topbar .fusion-text { flex: 1 1 100%; margin: 0; }
.kc-topbar__inner { display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: 2.5rem; }
.kc-topbar ul { display: flex; align-items: center; gap: 1.5rem; margin: 0; padding: 0; list-style: none; }
.kc-topbar li { display: inline-flex; align-items: center; gap: 0.4rem; margin: 0; white-space: nowrap; }
.kc-topbar i { 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); }

.fusion-fullwidth.kc-header { --awb-padding-top: 0px; --awb-padding-bottom: 0px; --awb-background-color: var(--kc-white); background: var(--kc-white); border-bottom: 1px solid var(--kc-line); }
.kc-header .fusion-builder-row { align-items: center; min-height: 4.5rem; }
.kc-header .fusion-layout-column { margin-bottom: 0 !important; }
.kc-header .fusion-imageframe img { width: auto; max-height: 2.75rem; }
.kc-header .awb-menu__main-a { font-weight: 500; }
.kc-header .fusion-button.kc-btn { min-height: 2.75rem; }

/* Mega menus (Avada library elements shown in the main menu) */
.awb-menu__mega-wrap:has(.kc-mega) { border-radius: var(--kc-radius-lg) !important; overflow: hidden; box-shadow: 0 24px 48px -24px rgb(17 27 40 / 0.35) !important; border: 1px solid var(--kc-line) !important; background: var(--kc-white) !important; }
.fusion-fullwidth.kc-mega-wrap { --awb-padding-top: 0px; --awb-padding-bottom: 0px; --awb-padding-left: 0px; --awb-padding-right: 0px; --awb-background-color: var(--kc-white); background: var(--kc-white); }
.kc-mega-wrap .fusion-layout-column { margin-bottom: 0 !important; }
.kc-mega { display: grid; grid-template-columns: 16rem minmax(0, 1fr); text-align: left; }
.kc-mega__intro { padding: 1.75rem; background: var(--kc-paper-2); border-right: 1px solid var(--kc-line); }
.kc-mega__title { margin: 0 0 0.5rem !important; color: var(--kc-ink); font-size: 1.125rem; font-weight: 800; }
.kc-mega__sub { margin: 0 0 1rem !important; color: var(--kc-muted); font-size: var(--kc-text-sm); line-height: 1.5; }
.kc-mega__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.25rem; margin: 0 !important; padding: 1rem !important; list-style: none !important; }
.kc-mega--2 .kc-mega__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kc-mega--4 .kc-mega__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.kc-mega__grid li { margin: 0 !important; padding: 0 !important; border: 0 !important; }
.kc-mega__grid a { display: flex; align-items: flex-start; gap: 0.75rem; padding: 0.75rem; border-radius: var(--kc-radius); color: var(--kc-muted) !important; font-size: var(--kc-text-xs); line-height: 1.4; text-decoration: none; transition: background-color var(--kc-dur) var(--kc-ease); }
.kc-mega__grid a > span:last-child { display: grid; gap: 0.15rem; }
.kc-mega__grid strong { color: var(--kc-ink); font-size: 0.9375rem; font-weight: 700; }
.kc-mega__grid a:hover, .kc-mega__grid a:focus-visible { background: var(--kc-blue-wash); }
.kc-mega__grid a:hover strong { color: var(--kc-blue-strong); }
.kc-mega__icon { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; border-radius: var(--kc-radius-sm); background: var(--kc-blue-wash); color: var(--kc-blue-strong); font-size: 0.95rem; }
.kc-mega__icon img { width: 1.6rem; height: 1.6rem; }

/* ── Footer (Avada layout section "Global Footer") ───────────────────────── */
.fusion-fullwidth.kc-footer { --awb-padding-top: clamp(3.5rem, 5vw, 5rem); --awb-padding-bottom: 0px; --awb-background-color: var(--kc-navy-deep); background: var(--kc-navy-deep); color: var(--kc-on-dark-3); font-size: var(--kc-text-sm); }
.kc-footer p { margin: 0 0 0.75rem; color: var(--kc-on-dark-3); }
.kc-footer__brand img { width: 11rem; height: auto; margin-bottom: 1rem; }
.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; }
.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__social { display: flex !important; gap: 0.75rem !important; margin-top: 1rem !important; }
.kc-footer__social a { display: inline-flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; border-radius: var(--kc-radius-sm); background: rgb(255 255 255 / 0.08); color: var(--kc-on-dark-2); }
.kc-footer__social a:hover { background: var(--kc-blue-strong); color: var(--kc-white); text-decoration: none; }
.kc-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.5rem 1rem; margin-top: 2.5rem; padding-block: 1.5rem; border-top: 1px solid var(--kc-line-dark); font-size: var(--kc-text-xs); }
.kc-footer__bottom p { margin: 0; }


/* 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, .kc-mega) a:not(.fusion-button):is(:hover, :focus-visible),
:is(.kc-section, .kc-header, .kc-topbar, .kc-footer, .kc-mega) a:not(.fusion-button):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 > .fusion-column-wrapper { justify-content: flex-start; }
  .kc-hub { max-width: 34rem; margin-inline: auto; }
}

@media (max-width: 640px) {
  .kc-links, .kc-pillars, .kc-features { grid-template-columns: minmax(0, 1fr); }
  .kc-card--wide > .fusion-column-wrapper { flex-flow: column nowrap !important; }
  .kc-topbar__hide-sm { display: none !important; }
  .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 > .fusion-column-wrapper { padding: 1.25rem; gap: 0.5rem; }
  .kc-section .fontawesome-icon.kc-icon { width: 2.25rem !important; height: 2.25rem !important; font-size: 1rem !important; }
  .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 img { width: 2.25rem; height: 2.25rem; margin-bottom: 0.25rem; }
  .kc-industry__text { display: none; }
  .kc-industry__name { font-size: 0.9375rem; }
  .kc-features { gap: 1.25rem; }
  .kc-features li, .kc-pillar { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 0.875rem; align-items: start; }
  .kc-features i, .kc-pillar i { grid-column: 1; grid-row: 1 / span 2; width: 2.25rem; height: 2.25rem; font-size: 0.95rem; }
  :is(.kc-features li, .kc-pillar) > :not(i) { 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 blockquote { font-size: 1.0625rem; }
  .kc-hub { display: none; }
  .kc-hero .fusion-column-wrapper > :has(> .fusion-button), .kc-hero .fusion-button.kc-btn { width: 100%; justify-content: center; }
  .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 li { 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); }
  .kc-cta .fusion-column-wrapper > :has(> .fusion-button), .kc-cta .fusion-button.kc-btn { width: 100%; justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
  .kc-section *, .kc-header *, .kc-footer * { transition-duration: 0.01ms !important; }
  .kc-card--link > .fusion-column-wrapper:hover, .kc-industry:hover { transform: none; }
}
