/* ==========================================================================
   Brand palette layer — blue #1E73BE (main) · ink #0F4C86 · green #28A745 · red #DC3545 · yellow #FFC107
   Contains styles for the content-driven widgets (checklist, statements, passport, action cards, CTA band, case cards).
   ========================================================================== */
.kd-btn--yellow { background: var(--kd-yellow); border-color: var(--kd-yellow); color: var(--kd-ink); }
.kd-btn--yellow:hover { background: #fff; border-color: #fff; color: var(--kd-ink); }
.kd-btn--yellow .kd-btn__icon { background: var(--kd-ink); color: #fff; }
.kd-btn--yellow:hover .kd-btn__icon { background: var(--kd-primary); }
.kd-btn--green { background: var(--kd-green); border-color: var(--kd-green); color: var(--kd-ink); }
.kd-btn--green:hover { background: var(--kd-ink); border-color: var(--kd-ink); color: #fff; }
.kd-btn--light:hover { background: var(--kd-yellow); border-color: var(--kd-yellow); color: var(--kd-ink); }
.kd-btn--outline:hover { background: #fff; border-color: #fff; color: var(--kd-primary); }
.kd-btn--dark:hover { background: var(--kd-primary); border-color: var(--kd-primary); }
.kd-btn .kd-cta__ico { flex: none; }
body.kd-theme .kd-btn--yellow, body.kd-theme .kd-btn--green { color: var(--kd-ink); }
body.kd-theme .kd-btn--yellow:hover { color: var(--kd-ink); }
.kd-badge svg { color: var(--kd-yellow); }
.kd-subtitle { color: var(--kd-primary); }
.kd-st--light .kd-subtitle { color: var(--kd-yellow); }
.kd-st--light .kd-dot { background: var(--kd-yellow); }

/* Hero */
.kd-hero__actions { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; }
.kd-hero__strip { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 14px; margin: 34px 0 0; padding: 0; }
.kd-hero__strip li { padding: 9px 16px; border: 1px solid rgba(255, 255, 255, .35); border-radius: 40px; background: rgba(15, 76, 134, .35); font-size: 14px; font-weight: 600; color: #fff; backdrop-filter: blur(6px); }
.kd-hero__strip li:first-child::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 8px; border-radius: 50%; background: var(--kd-green); }
.kd-hero__tag { margin: 18px 0 0; font-size: 15px; color: rgba(255, 255, 255, .85); }
body.kd-theme .kd-hero__title { font-size: clamp(38px, 5.2vw, 76px); }
.kd-hero__bg--default { background-image: url("../images/hero-bg.jpg"); background-color: #0F4C86; }
.kd-hero__bg::before { background: linear-gradient(180deg, rgba(15,76,134, .15), rgba(15,76,134, .4)); }

/* Checklist */
.kd-checklist { list-style: none; margin: 0; padding: 0; display: grid; }
.kd-checklist__item { display: flex; align-items: center; gap: 14px; font-weight: 600; color: var(--kd-ink); line-height: 1.35; }
.kd-checklist__tick { flex: none; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--kd-green); color: var(--kd-ink); }
.kd-checklist--tiles .kd-checklist__item { padding: 18px 22px; border-radius: 14px; background: #fff; border: 1px solid rgba(15,76,134, .1); transition: transform .3s var(--kd-ease), box-shadow .3s, border-color .3s; }
.kd-checklist--tiles .kd-checklist__item:hover { transform: translateY(-3px); box-shadow: var(--kd-shadow); border-color: var(--kd-primary); }
.kd-checklist--dark .kd-checklist__item { color: #fff; }
.kd-checklist--dark.kd-checklist--tiles .kd-checklist__item { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .18); }

/* Display statements */
.kd-statements { display: grid; gap: 6px; }
.kd-statement { margin: 0; font-family: var(--kd-font-head); font-size: clamp(30px, 4.4vw, 62px); line-height: 1.12; letter-spacing: -.015em; color: var(--kd-ink); }
.kd-statement mark { background: none; color: var(--kd-primary); }
.kd-statements--dark .kd-statement { color: #fff; }
.kd-statements--dark .kd-statement mark { color: var(--kd-yellow); }
.kd-statements--rows { gap: 0; }
.kd-statements--rows .kd-statement { padding: 18px 0; border-top: 1px solid rgba(15,76,134, .14); font-size: clamp(24px, 2.8vw, 40px); }
.kd-statements--rows .kd-statement:last-child { border-bottom: 1px solid rgba(15,76,134, .14); }
.kd-statements--dark.kd-statements--rows .kd-statement { border-color: rgba(255, 255, 255, .22); }
.kd-statements--grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 40px; }
.kd-statements--grid .kd-statement { font-size: clamp(22px, 2.4vw, 34px); padding: 18px 0; border-top: 1px solid rgba(15,76,134, .14); }

/* Passport cards */
.kd-passport { display: grid; }
.kd-stamp { --stamp: var(--kd-primary); position: relative; display: flex; gap: 18px; align-items: flex-start; padding: 26px; border-radius: 18px; background: #fff; border: 2px dashed color-mix(in srgb, var(--stamp) 55%, #fff); color: var(--kd-ink); transition: transform .3s var(--kd-ease), box-shadow .3s; }
.kd-stamp--blue { --stamp: var(--kd-primary); }
.kd-stamp--green { --stamp: var(--kd-green); }
.kd-stamp--red { --stamp: var(--kd-red); }
.kd-stamp--yellow { --stamp: #d99f00; }
.kd-stamp:hover { box-shadow: var(--kd-shadow); color: var(--kd-ink); }
.is-tilted .kd-stamp:nth-child(3n+1) { transform: rotate(-1.2deg); }
.is-tilted .kd-stamp:nth-child(3n+2) { transform: rotate(.8deg); }
.is-tilted .kd-stamp:nth-child(3n) { transform: rotate(-.5deg); }
.kd-stamp:hover, .is-tilted .kd-stamp:hover { transform: translateY(-4px) rotate(0); }
.kd-stamp__seal { flex: none; display: grid; place-items: center; width: 68px; height: 68px; border-radius: 50%; border: 3px double var(--stamp); color: var(--stamp); transform: rotate(-12deg); }
.kd-stamp__seal b { font-family: var(--kd-font-head); font-weight: 400; font-size: 22px; letter-spacing: .04em; }
.kd-stamp__body { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.kd-stamp__country { font-family: var(--kd-font-head); font-weight: 400; font-size: 22px; color: var(--kd-ink); }
.kd-stamp__text { font-size: 15px; line-height: 1.5; color: var(--kd-text); }
.kd-passport--compact .kd-stamp { align-items: center; padding: 18px 22px; }
.kd-passport--compact .kd-stamp__seal { width: 52px; height: 52px; }
.kd-passport--compact .kd-stamp__seal b { font-size: 17px; }

/* Action cards */
.kd-acards { display: grid; }
.kd-acard { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; padding: 46px; border-radius: 24px; background: var(--kd-primary); color: #fff; overflow: hidden; position: relative; }
.kd-acard--green { background: var(--kd-green); color: var(--kd-ink); }
.kd-acard--ink { background: var(--kd-ink); }
.kd-acard--light { background: var(--kd-surface); color: var(--kd-ink); }
.kd-acard__eyebrow { font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--kd-yellow); }
.kd-acard--green .kd-acard__eyebrow { color: var(--kd-ink); }
body.kd-theme .kd-acard__title { font-size: clamp(28px, 2.8vw, 40px); margin: 0; color: #fff; }
body.kd-theme .kd-acard--green .kd-acard__title, body.kd-theme .kd-acard--light .kd-acard__title { color: var(--kd-ink); }
.kd-acard__text p { margin: 0 0 8px; font-size: 17px; }
.kd-acard__text p:first-child { font-family: var(--kd-font-head); font-size: 22px; }
.kd-acard__note { margin: 0; padding: 8px 14px; border-radius: 8px; background: var(--kd-yellow); color: var(--kd-ink); font-weight: 700; font-size: 15px; }
.kd-acard .kd-btn { margin-top: auto; }
.kd-acard--green .kd-btn--yellow { background: var(--kd-ink); border-color: var(--kd-ink); color: #fff; }
body.kd-theme .kd-acard--green .kd-btn--yellow { color: #fff; }
.kd-acard--green .kd-btn--yellow .kd-btn__icon { background: var(--kd-yellow); color: var(--kd-ink); }

/* CTA band */
.kd-cta { padding: 80px 40px; border-radius: 40px; background: linear-gradient(135deg, #0F4C86 0%, #1E73BE 100%); color: #fff; text-align: center; position: relative; overflow: hidden; }
.kd-cta--left { text-align: left; }
body.kd-theme .kd-cta__title { color: #fff; font-size: clamp(34px, 4.4vw, 62px); margin: 0 auto 16px; max-width: 900px; }
.kd-cta--left .kd-cta__title { margin-left: 0; }
.kd-cta__text { max-width: 640px; margin: 0 auto 32px; font-size: 18px; color: rgba(255, 255, 255, .92); }
.kd-cta--left .kd-cta__text { margin-left: 0; }
.kd-cta__buttons { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; }
.kd-cta--left .kd-cta__buttons { justify-content: flex-start; }
.kd-cta__buttons .kd-btn { padding: 0 28px; gap: 10px; }
.kd-cta__strap { margin: 28px 0 0; font-family: var(--kd-font-head); font-size: clamp(20px, 2vw, 28px); color: var(--kd-yellow); }

/* Case-study visual cards */
.kd-projects--cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.kd-project--card { position: relative; border-radius: 24px; overflow: hidden; min-height: 460px; background: var(--kd-ink); isolation: isolate; }
.kd-project--card .kd-project__img { position: absolute; inset: 0; z-index: -1; display: block; }
.kd-project--card .kd-project__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--kd-ease); }
.kd-project--card:hover .kd-project__img img { transform: scale(1.06); }
.kd-project--card::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(15,76,134, 0) 25%, rgba(15,76,134, .88) 100%); }
.kd-project__overlay { position: absolute; left: 0; right: 0; bottom: 0; padding: 34px; }
body.kd-theme .kd-project--card .kd-project__title, body.kd-theme .kd-project--card .kd-project__title a { color: #fff; font-size: clamp(30px, 3vw, 42px); margin: 0 0 8px; }
body.kd-theme .kd-project--card .kd-project__text { color: var(--kd-yellow); font-weight: 600; font-size: 18px; margin: 0; }

/* Logos / steps */
.kd-logos img { height: 30px; }
.kd-logos__row { gap: 28px 56px; justify-content: center; }
.kd-steps--inline { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.kd-steps--inline .kd-step { display: inline-flex; align-items: center; gap: 10px; padding: 12px 20px; border-radius: 40px; background: #fff; color: var(--kd-ink); font-weight: 700; }
.kd-steps--inline .kd-step__num { color: var(--kd-green); font-size: 14px; }

/* Section helpers (used by the demo layouts; all editable in Elementor) */
.kd-bg-ink { background: var(--kd-ink); }
.kd-on-ink, body.kd-theme .kd-on-ink h1, body.kd-theme .kd-on-ink h2, body.kd-theme .kd-on-ink h3, body.kd-theme .kd-on-ink p { color: #fff; }
.kd-bg-soft { background: var(--kd-surface); }
.kd-strap, .kd-strap .elementor-heading-title { font-family: var(--kd-font-head); font-size: clamp(22px, 2.4vw, 34px); color: var(--kd-primary); margin: 0; }
.kd-on-dark .kd-strap .elementor-heading-title, .kd-on-ink .kd-strap .elementor-heading-title { color: var(--kd-yellow); }
.kd-lead p { font-size: 19px; line-height: 1.6; color: var(--kd-ink); }
.kd-on-dark .kd-lead p, .kd-on-ink .kd-lead p { color: rgba(255, 255, 255, .92); }
.kd-event { display: inline-flex; flex-direction: column; gap: 4px; padding: 16px 24px; border-radius: 16px; background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .35); font-weight: 700; font-size: 18px; color: #fff; }

@media (max-width: 1024px) {
	.kd-projects--cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.kd-statements--grid { grid-template-columns: 1fr; }
	.kd-acard { padding: 34px; }
	.kd-cta { padding: 60px 28px; border-radius: 30px; }
}
@media (max-width: 767px) {
	.kd-projects--cards { grid-template-columns: 1fr; }
	.kd-project--card { min-height: 360px; }
	.kd-cta { padding: 44px 20px; border-radius: 24px; }
	.kd-cta__buttons .kd-btn { width: 100%; }
	.kd-stamp { padding: 20px; }
	.kd-hero__actions .kd-btn { width: 100%; }
}

/* Menu-only widget: mobile panel hangs below the header */
.kd-nav--menu { width: 100%; }
@media (max-width: 1024px) {
	.kd-nav--menu[data-breakpoint="1024"] .kd-nav__menu-wrap { position: fixed; top: 84px; left: 16px; right: 16px; z-index: 60; background: var(--kd-mobile-menu-bg, rgba(15, 76, 134, .98)); }
	.kd-nav--menu[data-breakpoint="1024"] { justify-content: flex-end; }
}
@media (max-width: 767px) {
	.kd-nav--menu[data-breakpoint="767"] .kd-nav__menu-wrap { position: fixed; top: 84px; left: 16px; right: 16px; z-index: 60; background: var(--kd-mobile-menu-bg, rgba(15, 76, 134, .98)); }
}

/* Native-widget design hooks (every visual value is also an Elementor setting) */
.kd-eyebrow .elementor-heading-title::before { content: ""; display: inline-block; width: 7px; height: 7px; margin-right: 8px; border-radius: 50%; background: currentColor; vertical-align: middle; position: relative; top: -1px; }
.kd-statement-n p { margin: 0; }
.kd-tile, .kd-stamp-n, .kd-acard-n, .kd-case { transition: transform .3s var(--kd-ease), box-shadow .3s var(--kd-ease); }
.kd-tile:hover, .kd-stamp-n:hover { transform: translateY(-3px); box-shadow: 0 12px 40px rgba(15,76,134, .12); }
.kd-case { transition: transform .5s var(--kd-ease); }
.kd-case:hover { transform: translateY(-6px); }
.kd-tilt-1 { transform: rotate(-1.2deg); }
.kd-tilt-2 { transform: rotate(.8deg); }
.kd-tilt-3 { transform: rotate(-.5deg); }
.kd-tilt-1:hover, .kd-tilt-2:hover, .kd-tilt-3:hover { transform: rotate(0) translateY(-3px); }
.kd-seal { transform: rotate(-12deg); }
.kd-stamp-n { border-style: dashed; }
.kd-hero-n .elementor-widget-button .elementor-button { box-shadow: 0 10px 30px rgba(15,76,134, .25); }
.kd-footer-n a:hover { color: var(--kd-yellow); }
.elementor-widget-button .elementor-button { transition: background-color .3s, color .3s, transform .3s; }

/* ========== Compositions (all content stays native Elementor elements) ========== */
.kd-rel { position: relative; }
.kd-float { position: absolute; z-index: 4; box-shadow: 0 18px 50px rgba(15,76,134, .22); animation: kd-float 7s ease-in-out infinite; }
.kd-float--bl { left: 18px; bottom: 18px; }
.kd-float--br { right: 18px; bottom: 18px; }
.kd-float--tr { right: -16px; top: 36px; }
@media (max-width: 1024px) { .kd-float--bl { left: 12px; bottom: 12px; } .kd-float--br { right: 12px; bottom: 12px; } .kd-float--tr { right: 12px; top: 12px; } }
.kd-band-wrap { overflow: hidden; padding: 30px 0; }
.kd-band { transform: rotate(-2deg); width: 106%; margin-left: -3%; overflow: hidden; white-space: nowrap; }
.kd-band--b { transform: rotate(2deg); margin-top: -24px; }
.kd-band .elementor-heading-title { display: inline-block; white-space: nowrap; animation: kd-marquee 45s linear infinite; padding: 18px 0; }
.kd-band--b .elementor-heading-title { animation-direction: reverse; }
.kd-timeline { position: relative; }
.kd-timeline::before { content: ""; position: absolute; left: 24px; top: 24px; bottom: 24px; width: 2px; background: rgba(30, 115, 190, .25); }
.kd-timeline > .e-con-inner > .e-con, .kd-timeline > .e-con { position: relative; z-index: 1; }
.kd-ring-badge { box-shadow: 0 0 0 6px rgba(30, 115, 190, .12); }
.kd-card-hover { transition: transform .35s var(--kd-ease), box-shadow .35s var(--kd-ease); }
.kd-card-hover:hover { transform: translateY(-6px); box-shadow: 0 20px 50px rgba(15,76,134, .14); }
.kd-yes-row { transition: background-color .3s; }
.kd-yes-row:hover { background-color: rgba(30, 115, 190, .05); }
.kd-case-row .elementor-widget-image img { width: 100%; }
@media (max-width: 767px) { .kd-band .elementor-heading-title { font-size: 26px; } .kd-timeline::before { left: 20px; } }

/* Visual storytelling: product compositions, gentle motion (respects reduced motion) */
.kd-bob img { filter: drop-shadow(0 28px 40px rgba(15,76,134, .28)); }
.kd-bob.kd-bob--on img, .kd-bob img { animation: kd-bob 9s ease-in-out infinite; }
@keyframes kd-bob { 50% { transform: translateY(-14px); } }
.kd-zoom .elementor-widget-image img { transition: transform .8s var(--kd-ease); }
.kd-zoom:hover .elementor-widget-image img, .elementor-widget-image.kd-zoom:hover img { transform: scale(1.04); }
.kd-zoom { overflow: hidden; border-radius: 28px; }
.kd-card-hover { will-change: transform; }
.kd-parallax { will-change: transform; }
@media (prefers-reduced-motion: reduce) { .kd-bob img { animation: none; } .kd-parallax { transform: none !important; } }

/* Header menu: single line, compact on laptops */
.kd-menu > li > a { white-space: nowrap; }
@media (min-width: 1025px) and (max-width: 1360px) { .kd-menu > li > a { padding: 12px 12px; font-size: 13px; } }

/* White cards inside dark/blue sections keep dark text */
body.kd-theme .kd-on-dark .kd-light-card .elementor-widget-text-editor,
body.kd-theme .kd-on-dark .kd-light-card .elementor-widget-text-editor p,
body.kd-theme .kd-on-dark .kd-float .elementor-widget-text-editor,
body.kd-theme .kd-on-dark .kd-float .elementor-widget-text-editor p { color: #355F8C; }
body.kd-theme .kd-on-dark .kd-float .elementor-heading-title, body.kd-theme .kd-on-dark .kd-light-card .elementor-heading-title { color: #0F4C86; }

/* Floating glossy 3D accents */
.kd-deco { position: absolute !important; z-index: 1; pointer-events: none; width: auto !important; }
.kd-deco img { filter: drop-shadow(0 24px 34px rgba(15,76,134, .35)); }
.kd-deco--tr { top: 120px; right: 2%; }
.kd-deco--br { bottom: 40px; right: 1%; }
.kd-deco--tl { top: 110px; left: 1%; }
.kd-deco--bl { bottom: 30px; left: 1%; }
@media (max-width: 1024px) { .kd-deco--tr { top: 100px; right: 0; } .kd-deco--br { display: none; } }
@media (max-width: 767px) { .kd-deco { display: none !important; } }

/* Footer: gradient with large translucent chevrons (no photo) */
.kd-footer-art { position: relative; isolation: isolate; }
.kd-footer-art::before, .kd-footer-art::after { content: ""; position: absolute; z-index: -1; pointer-events: none; background: rgba(255, 255, 255, .05); clip-path: polygon(50% 0, 100% 100%, 0 100%); }
.kd-footer-art::before { width: 520px; height: 640px; left: -90px; bottom: -120px; }
.kd-footer-art::after { width: 420px; height: 520px; left: 330px; bottom: -150px; background: rgba(255, 255, 255, .035); }
@media (max-width: 767px) { .kd-footer-art::before, .kd-footer-art::after { display: none; } }

/* Child container fills its column (equal-height layouts) */
.kd-fill { display: flex; flex-direction: column; }
.kd-fill > .e-con, .kd-fill > .e-con-inner > .e-con { flex: 1 1 auto; }
.kd-fill > .e-con { flex: 1 1 auto; }

.kd-fill > .elementor-element { flex: 1 1 auto !important; }

/* Closing call-to-action band: plain gradient with soft rings (no objects) */
.kd-cta-art { position: relative; isolation: isolate; }
.kd-cta-art::before, .kd-cta-art::after { content: ""; position: absolute; z-index: -1; pointer-events: none; border-radius: 50%; border: 2px solid rgba(255, 255, 255, .12); }
.kd-cta-art::before { width: 460px; height: 460px; right: -140px; top: -170px; box-shadow: 0 0 0 46px rgba(255, 255, 255, .04); }
.kd-cta-art::after { width: 340px; height: 340px; left: -120px; bottom: -150px; box-shadow: 0 0 0 38px rgba(255, 255, 255, .035); }
@media (max-width: 767px) { .kd-cta-art::before, .kd-cta-art::after { display: none; } }

@media (max-width: 1024px) { .kd-hide-md { display: none !important; } }

/* Syllabus cards: title takes the free space so the icon sits at the right edge */
.kd-topic > .elementor-element:nth-child(2) { flex: 1 1 auto !important; width: auto !important; }

/* Process timeline: a line runs behind the numbered badges */
.kd-timeline { position: relative; }
.kd-timeline::before { content: ""; position: absolute; left: 6%; right: 6%; top: 29px; height: 0; border-top: 3px dashed rgba(30, 115, 190, .35); z-index: 0; }
.kd-timeline > .kd-step { position: relative; z-index: 1; }
@media (max-width: 1024px) { .kd-timeline::before { display: none; } }

.kd-step-row > .elementor-element:nth-child(2) { flex: 1 1 auto !important; width: auto !important; }
.kd-step-row > .elementor-element:nth-child(2) .elementor-heading-title { text-align: left; }

/* Header: on tablet and phone the menu button sits at the right edge */
@media (max-width: 1024px) { .e-con:has(> .elementor-widget-kd-menu) { margin-left: auto; } }

/* Brand tokens and the highlighted-word box live in design-system.css */

/* ---- Moving client-logo carousel (white logos on corporate blue) ---- */
.kd-marquee { overflow: hidden; }
.kd-marquee__track { width: max-content !important; max-width: none !important; flex-wrap: nowrap !important; animation: kd-marq 34s linear infinite; }
.kd-marquee__track .elementor-widget-image { flex: 0 0 auto; }
.kd-marquee img { filter: brightness(0) invert(1); opacity: .92; max-width: none; }
.kd-marquee:hover .kd-marquee__track { animation-play-state: paused; }
@keyframes kd-marq { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .kd-marquee__track { animation: none; } .kd-marquee { overflow-x: auto; } }

/* Only clickable cards lift on hover */
.kd-card-hover:not(.kd-route):hover { transform: none; box-shadow: none; }
.kd-route { position: relative; }
.kd-route .elementor-element, .kd-route .elementor-widget-container { position: static !important; }
.kd-route .elementor-button { position: static; }
.kd-route .elementor-button::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.kd-route:focus-within { outline: 3px solid var(--wp-blue); outline-offset: 3px; }

/* Process flow on phones: one compact horizontally scrolling row */
@media (max-width: 767px) {
	.kd-timeline { flex-wrap: nowrap !important; overflow-x: auto !important; overflow-y: hidden !important; justify-content: flex-start !important; gap: 12px !important; padding: 4px 4px 14px; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; }
	.kd-timeline > .kd-step { flex: 0 0 42% !important; width: 42% !important; scroll-snap-align: start; }
	.kd-timeline > .kd-step:not(:last-child)::after { content: "\203A"; position: absolute; right: -11px; top: 14px; z-index: 3; font-size: 26px; line-height: 1; color: var(--wp-blue); font-weight: 800; }
}

/* Phones: smaller hero artwork and tighter footer */
@media (max-width: 767px) {
	.kd-hero-n .kd-bob, .kd-hero-n .elementor-widget-image { max-width: 80%; margin-inline: auto; }
	.kd-footer-art .elementor-widget-text-editor p { font-size: 15px; }
}

/* Phones: text blocks inside non-wrapping rows may shrink */
@media (max-width: 767px) { .kd-topic > .elementor-element:nth-child(2), .kd-step-row > .elementor-element:nth-child(2) { flex: 1 1 0 !important; min-width: 0; } }

/* ========== Header v2: one centred bar (logo, navigation, CTA) in corporate blue ========== */
.kd-site-header { padding-top: 14px; }
.kd-site-header.is-stuck { background: transparent; backdrop-filter: none; box-shadow: none; }
.kd-site-header .kd-hbar {
	width: 100%; max-width: 1200px; margin-inline: auto; box-sizing: border-box; padding: 10px 12px 10px 28px;
	border-radius: 999px; border: 1px solid rgba(255, 255, 255, .22);
	background: linear-gradient(135deg, #0F4C86, #1E73BE); box-shadow: 0 12px 34px rgba(15, 76, 134, .30);
}
.kd-site-header .kd-hbar .kd-nav__menu-wrap { padding: 0; border: 0; background: transparent; backdrop-filter: none; border-radius: 0; }
.kd-site-header .kd-hbar .kd-menu { gap: 6px; }
.kd-site-header .kd-hbar .kd-menu > li > a { padding: 11px 17px; border-radius: 999px; font-size: 15px; font-weight: 600; letter-spacing: .01em; color: #fff; transition: background .25s, color .25s; }
.kd-site-header .kd-hbar .kd-menu > li > a:hover { background: rgba(255, 255, 255, .14); color: #fff; }
.kd-site-header .kd-hbar .kd-menu > li.current-menu-item > a,
.kd-site-header .kd-hbar .kd-menu > li.current_page_item > a { background: #fff; color: #0F4C86; }
.kd-site-header .kd-hbar .elementor-widget-button .elementor-button { min-height: 46px; padding: 0 26px; font-size: 15px; background: #FFC107; color: #0F4C86; border: 0; border-radius: 999px; box-shadow: 0 6px 18px rgba(15,76,134, .18); }
.kd-site-header .kd-hbar .elementor-widget-button .elementor-button:hover { background: #fff; color: #0F4C86; }
@media (min-width: 1025px) and (max-width: 1280px) {
	.kd-site-header .kd-hbar { padding-left: 22px; }
	.kd-site-header .kd-hbar .kd-menu > li > a { padding: 10px 12px; font-size: 14px; }
}
@media (max-width: 1024px) {
	.kd-site-header .kd-hbar { padding: 8px 8px 8px 20px; gap: 10px; border-radius: 22px; flex-wrap: nowrap; }
	.kd-site-header .kd-hbar > .e-con:nth-child(3) { order: 2; margin-left: auto; width: auto; flex: 0 0 auto; }
	.kd-site-header .kd-hbar > .e-con:nth-child(2) { order: 3; width: auto; flex: 0 0 auto; }
	.kd-site-header .kd-hbar .kd-nav--menu { width: auto; }
	.kd-site-header .kd-hbar .elementor-widget-button .elementor-button { min-height: 42px; padding: 0 18px; font-size: 14px; }
	.kd-site-header .kd-hbar .kd-nav__burger { width: 44px; height: 44px; border-radius: 50%; background: rgba(255, 255, 255, .16); color: #fff; }
	.kd-site-header .kd-hbar .kd-nav__burger span { width: 20px; }
	.kd-nav--menu .kd-nav__menu-wrap { top: 92px; padding: 10px; border-radius: 24px; background: #0F4C86; border: 1px solid rgba(255, 255, 255, .2); box-shadow: 0 24px 50px rgba(15, 76, 134, .4); max-height: calc(100vh - 110px); overflow-y: auto; }
	.kd-site-header .kd-nav--menu .kd-menu > li > a { padding: 16px 18px; font-size: 17px; border-radius: 14px; }
	.kd-site-header .kd-nav--menu .kd-menu > li + li { border-top: 1px solid rgba(255, 255, 255, .12); }
}
@media (max-width: 767px) {
	.kd-site-header { padding-inline: 12px; }
	.kd-site-header .kd-hbar { padding: 7px 7px 7px 16px; }
	.kd-site-header .kd-hbar .elementor-widget-image img { width: 124px; }
	.kd-site-header .kd-hbar .elementor-widget-button .elementor-button { padding: 0 14px; }
}

/* Highlighted words keep their own colour on the blue hero */
.kd-on-dark .kd-hl--green { background: var(--wp-green); color: #fff; }
.kd-on-dark .kd-hl--red { background: var(--wp-red); color: #fff; }
.kd-on-dark .kd-hl--blue { background: var(--wp-blue); color: #fff; }
.kd-on-dark .kd-hl--yellow { background: var(--wp-yellow); color: var(--wp-dark); }
.kd-hero-n .kd-hl { padding: .02em .2em .08em; box-shadow: 0 8px 22px rgba(15,76,134, .18); }
@media (max-width: 1024px) {
	body.kd-theme .kd-site-header .kd-hbar .elementor-widget-button .elementor-button { min-height: 42px !important; padding: 0 18px !important; font-size: 13px !important; letter-spacing: .04em; }
}
@media (max-width: 767px) {
	.kd-site-header .kd-hbar .elementor-widget-image img { width: 118px !important; }
	body.kd-theme .kd-site-header .kd-hbar .elementor-widget-button .elementor-button { min-height: 40px !important; padding: 0 14px !important; }
}
@media (max-width: 1024px) {
	body.kd-theme .kd-site-header .kd-nav--menu .kd-nav__menu-wrap { background: #0F4C86 !important; top: 92px !important; }
	body.kd-theme .kd-site-header .kd-hbar .elementor-widget-button .elementor-button { display: inline-flex; align-items: center; justify-content: center; line-height: 1 !important; padding-block: 0 !important; }
}
@media (max-width: 1024px) {
	body.kd-theme .kd-site-header .kd-nav--menu .kd-nav__menu-wrap { border-radius: 24px !important; padding: 10px !important; border: 1px solid rgba(255, 255, 255, .2) !important; box-shadow: 0 24px 50px rgba(15, 76, 134, .4); overflow: hidden auto; }
}

/* Seamless loops: the distance of one loop equals half the track including its trailing gap */
.kd-marquee__track { gap: 0 !important; }
.kd-marquee__track .elementor-widget-image { margin-right: 70px; }
@media (max-width: 767px) { .kd-marquee__track .elementor-widget-image { margin-right: 44px; } }
.kd-band .elementor-heading-title { animation-duration: 60s; }
@media (max-width: 767px) { .kd-band .elementor-heading-title { animation-duration: 48s; padding: 14px 0; } }
@media (prefers-reduced-motion: reduce) { .kd-band .elementor-heading-title { animation: none; } .kd-band { overflow-x: auto; } }
@media (max-width: 767px) { .kd-svc-cap { align-items: flex-start !important; } .kd-svc-cap > .e-con { align-self: flex-start; } }

/* Process flow: compact connected steps (not interactive) */
.kd-flow { display: flex; flex-wrap: nowrap; align-items: flex-start; justify-content: space-between; gap: 6px; }
.kd-flow > .kd-flow-step { flex: 1 1 0 !important; min-width: 0; width: auto !important; max-width: none !important; }
.kd-flow > .kd-flow-arrow { flex: 0 0 auto; margin-top: 24px; opacity: .55; }
.kd-flow .elementor-heading-title { text-align: center; }
@media (max-width: 1024px) { .kd-flow-step .elementor-heading-title { font-size: 16px; } .kd-flow > .kd-flow-arrow { margin-top: 20px; } .kd-flow-step .elementor-icon { padding: 15px !important; } }
@media (max-width: 767px) {
	.kd-flow { flex-direction: column !important; align-items: stretch; gap: 0; }
	.kd-flow > .kd-flow-step { flex: 0 0 auto !important; flex-direction: row !important; align-items: center; justify-content: flex-start; gap: 14px; padding: 2px 0; }
	.kd-flow-step .elementor-icon { padding: 12px !important; font-size: 18px !important; }
	.kd-flow-step .elementor-icon svg { width: 18px; height: 18px; }
	.kd-flow-step .elementor-heading-title { text-align: left; font-size: 17px; }
	.kd-flow-step > .e-con { justify-content: flex-start !important; width: auto; }
	.kd-flow > .kd-flow-arrow { margin: 0 0 0 20px; align-self: flex-start; transform: rotate(90deg); opacity: .5; line-height: 1; }
	.kd-flow > .kd-flow-arrow .elementor-icon { font-size: 12px !important; padding: 0 !important; }
}
.kd-tick-ic .elementor-icon { font-size: 44px !important; line-height: 1; }
.kd-tick-ic .elementor-icon svg, .kd-tick-ic .elementor-icon i { width: 44px; height: 44px; font-size: 44px; }
.kd-hero-n .elementor-widget-text-editor .kd-hl { font-weight: 800; padding: .04em .26em .08em; }
@media (max-width: 767px) {
	.kd-flow-step .elementor-icon { width: 40px; height: 40px; padding: 0 !important; display: inline-flex !important; align-items: center; justify-content: center; border-radius: 50%; font-size: 17px !important; }
	.kd-flow-step .elementor-widget-icon { flex: 0 0 40px; width: 40px; }
	.kd-flow > .kd-flow-step { padding: 0; }
	.kd-flow > .kd-flow-arrow { height: 14px; margin: 0 0 0 14px; display: flex; align-items: center; }
	.kd-flow > .kd-flow-arrow .elementor-icon { width: auto; height: auto; font-size: 11px !important; }
}
.e-con > .elementor-widget-icon { flex-shrink: 0; }
@media (max-width: 767px) { .kd-flow > .kd-flow-arrow { height: 8px; margin-top: 2px; margin-bottom: 2px; overflow: visible; } }

/* Training: large, even topic icons */
.kd-topic-ic .elementor-icon { width: 56px; height: 56px; padding: 0 !important; display: inline-flex !important; align-items: center; justify-content: center; border-radius: 50%; font-size: 24px !important; }
.kd-topic-ic .elementor-icon svg { width: 24px; height: 24px; }
.kd-topic > .elementor-widget-icon { flex: 0 0 56px; }
@media (max-width: 767px) { .kd-topic-ic .elementor-icon { width: 46px; height: 46px; font-size: 20px !important; } .kd-topic > .elementor-widget-icon { flex-basis: 46px; } }

/* ========== Responsive pass (1.9.6) ========== */
@media (max-width: 1024px) {
	.kd-site-header .kd-hbar { justify-content: flex-start; }
	.kd-site-header .kd-hbar > .e-con:nth-child(1) { flex: 0 0 auto; }
	.kd-site-header .kd-hbar > .e-con:nth-child(3) { margin-left: auto; }
	.kd-site-header .kd-hbar > .e-con:nth-child(2) { margin-left: 0; }
	/* hero picture: sensible size on tablet, never full-bleed */
	.kd-hero-n .elementor-widget-image { max-width: 460px; margin-inline: auto; }
	.kd-hero-n .e-con > .elementor-widget-image img { width: 100%; height: auto; }
	/* touch targets in links lists */
	.kd-footer-n a, footer a, .elementor-location-footer a { display: inline-flex; align-items: center; min-height: 40px; }
	.elementor-location-footer .elementor-widget-text-editor a, .elementor-location-footer p a { min-height: 0; display: inline; }
}
@media (max-width: 767px) {
	.kd-hero-n .elementor-widget-image { max-width: 320px; }
	/* headings never touch the screen edge; wrap evenly */
	h1.elementor-heading-title, h2.elementor-heading-title { text-wrap: balance; overflow-wrap: break-word; hyphens: manual; }
	.kd-hl { padding-inline: .16em; }
}
@media (max-width: 360px) {
	.kd-site-header { padding-inline: 8px; }
	.kd-site-header .kd-hbar { padding: 6px 6px 6px 12px; gap: 6px; }
	.kd-site-header .kd-hbar .elementor-widget-image img { width: 104px !important; }
	body.kd-theme .kd-site-header .kd-hbar .elementor-widget-button .elementor-button { padding: 0 11px !important; font-size: 12px !important; letter-spacing: .02em; }
	.kd-site-header .kd-hbar .kd-nav__burger { width: 40px; height: 40px; }
}
/* fluid headings between breakpoints (theme-rendered content) */
body.kd-theme .elementor-widget-heading h2.elementor-heading-title { text-wrap: balance; }
@media (max-width: 1024px) { .kd-hero-n .kd-rel .elementor-widget-image { max-width: 440px !important; width: 100% !important; margin-inline: auto !important; } }
@media (max-width: 767px) { .kd-hero-n .kd-rel .elementor-widget-image { max-width: 300px !important; } }
@media (max-width: 360px) { body.kd-theme h1.elementor-heading-title { font-size: 31px !important; } body.kd-theme h2.elementor-heading-title { font-size: min(1em, 28px) !important; } }
@media (min-width: 1025px) and (max-width: 1280px) {
	.kd-site-header { padding-inline: 16px; }
}
@media (min-width: 1025px) and (max-width: 1180px) {
	.kd-site-header .kd-hbar { padding: 8px 8px 8px 18px; gap: 10px; }
	.kd-site-header .kd-hbar .elementor-widget-image img { width: 138px !important; }
	.kd-site-header .kd-hbar .kd-menu { gap: 2px; }
	.kd-site-header .kd-hbar .kd-menu > li > a { padding: 9px 9px; font-size: 13px; }
	.kd-site-header .kd-hbar .elementor-widget-button .elementor-button { padding: 0 16px; font-size: 13px; min-height: 42px; }
}
/* round icon badges stay round inside flex rows */
.elementor-widget-icon { flex-shrink: 0; }
.elementor-widget-icon .elementor-icon { aspect-ratio: 1 / 1; display: inline-flex; align-items: center; justify-content: center; }
.elementor-widget-icon .elementor-icon { line-height: 1 !important; }
.elementor-widget-icon .elementor-icon i, .elementor-widget-icon .elementor-icon svg { display: block; }
.elementor-widget-icon.elementor-view-stacked { flex: 0 0 auto !important; min-width: max-content !important; align-self: center; }
.elementor-widget-icon.elementor-view-stacked .elementor-icon { width: auto; height: auto; }
@media (max-width: 767px) {
	.kd-tick-ic .elementor-icon { font-size: 34px !important; padding: 20px !important; }
	.kd-tick-ic .elementor-icon svg, .kd-tick-ic .elementor-icon i { width: 34px; height: 34px; font-size: 34px; }
}

/* No black anywhere: placeholders, selection and form text use the brand blues */
::placeholder { color: #4A6F96; opacity: 1; }
body.kd-theme :is(input, textarea, select) { color: #0F4C86; }
::selection { background: #1E73BE; color: #fff; }

/* Two-tone titles: brand accents instead of one flat colour */
body.kd-theme .elementor-heading-title .kd-ac--green { color: #1E7E34; }
body.kd-theme .elementor-heading-title .kd-ac--red { color: #DC3545; }
body.kd-theme .elementor-heading-title .kd-ac--blue { color: #1E73BE; }
body.kd-theme .kd-ac--yellow { color: #FFC107; }
body.kd-theme .kd-light-card .kd-ac--green { color: #1E7E34; }
body.kd-theme .kd-light-card .kd-ac--red { color: #DC3545; }
body.kd-theme .kd-light-card .kd-ac--blue { color: #1E73BE; }
body.kd-theme .kd-on-dark .kd-pass-head .elementor-heading-title { color: #fff !important; }
body.kd-theme .kd-on-dark .kd-pass-head .elementor-icon { color: #FFC107 !important; }

/* Contact form: every field on its own full-width row; the message box grows to fill the card */
.kd-contact-form__row { grid-template-columns: 1fr !important; gap: 14px; }
.kd-contact-form { flex: 1 1 auto; gap: 14px; }
.elementor-widget:has(> .elementor-widget-container > .kd-contact-form) { flex: 1 1 auto; display: flex; flex-direction: column; }
.elementor-widget:has(> .elementor-widget-container > .kd-contact-form) > .elementor-widget-container { flex: 1 1 auto; display: flex; flex-direction: column; }
.kd-contact-form textarea { flex: 1 1 auto; min-height: 170px; resize: vertical; }
.kd-contact-form .kd-btn { align-self: stretch; justify-content: center; }
.e-con:has(> .elementor-widget > .elementor-widget-container > .kd-contact-form) { flex: 1 1 auto; }
