/* ============================================================
   K-Designs Web Builder — kd-sections.css  v2.0
   TGD Connection Services design system
   All widget CSS lives here.
   :where() wraps every default so Elementor controls always win.
   ============================================================ */

/* ── Global reset inside KD widgets ── */
[class*="elementor-widget-kd_"] *, [class*="elementor-widget-kd_"] *::before, [class*="elementor-widget-kd_"] *::after { box-sizing: border-box; }
[class*="elementor-widget-kd_"] h1,[class*="elementor-widget-kd_"] h2,[class*="elementor-widget-kd_"] h3,[class*="elementor-widget-kd_"] h4,[class*="elementor-widget-kd_"] h5,[class*="elementor-widget-kd_"] h6,[class*="elementor-widget-kd_"] p { margin: 0; }
[class*="elementor-widget-kd_"] { overflow: visible !important; box-sizing: border-box !important; }

/* ══════════════════════════════════════════
   1. HERO BANNER — .kd-hero
   ══════════════════════════════════════════ */

/* Force Elementor wrapper to stretch so image column resolves height */
.elementor-widget-kd_stats_bar,
.elementor-widget-kd_stats_bar > .elementor-widget-container,
.elementor-widget-kd_cta_form,
.elementor-widget-kd_cta_form > .elementor-widget-container {
    width: 100%;
    max-width: 100%;
}

.elementor-widget-kd_hero_banner,
.elementor-widget-kd_hero_banner > .elementor-widget-container {
    display: flex;
    flex-direction: column;
    align-self: stretch;
    height: 100%;
}

.kd-hero {
    display: grid;
    grid-template-columns: 45% 55%;
    min-height: 100vh;
    background-color: #ffffff;
    overflow: hidden;
    width: 100%;
    flex: 1;
    align-items: stretch;
}

/* Content column */
.kd-hero__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 80px 60px 80px 80px;
    position: relative;
    z-index: 2;
}

:where(.kd-hero__eyebrow) {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #317EFE;
    margin-bottom: 20px;
    display: block;
}

:where(.kd-hero__heading) {
    font-size: clamp(2.8rem, 5.5vw, 5rem);
    font-weight: 800;
    line-height: 1.0;
    color: #0D1B4B;
    text-transform: uppercase;
    letter-spacing: -0.02em;
    margin: 0;
}

:where(.kd-hero__italic) {
    font-family: Georgia, 'Times New Roman', serif;
    font-style: italic;
    font-size: 68px;
    font-weight: 700;
    line-height: 1.1;
    color: #0D1B4B;
    display: block;
    margin: 4px 0 28px;
    letter-spacing: -0.01em;
    text-transform: none;
}

/* Fade overlay — left edge of image column blends into content background */
.kd-hero__image-fade {
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 80px;
    background: linear-gradient(to right, var(--kd-fade-start, #ffffff), transparent);
    z-index: 2;
    pointer-events: none;
}

:where(.kd-hero__desc) {
    font-size: 16px;
    line-height: 1.8;
    color: #374151;
    margin: 0 0 40px;
    max-width: 420px;
}

.kd-hero__actions {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.kd-hero__btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    cursor: pointer;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    border: 2px solid transparent;
    transition: background-color .3s, color .3s, border-color .3s, transform .3s;
}

:where(.kd-hero__btn--primary) {
    padding: 14px 32px;
    background-color: #317EFE;
    color: #ffffff;
    border-color: #317EFE;
    border-radius: 50px;
    white-space: nowrap;
}
:where(.kd-hero__btn--primary:hover) {
    background-color: #0D1B4B;
    border-color: #0D1B4B;
    transform: translateY(-2px);
}

:where(.kd-hero__btn--outline) {
    padding: 14px 32px;
    background-color: transparent;
    color: #0D1B4B;
    border-color: #0D1B4B;
    border-radius: 50px;
    white-space: nowrap;
}
:where(.kd-hero__btn--outline:hover) {
    background-color: #0D1B4B;
    color: #ffffff;
}

/* Image column */
.kd-hero__image-col {
    position: relative;
    min-height: 100vh;
    background-color: #c8d8ef;
    overflow: hidden;
    align-self: stretch;
}
.kd-hero__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    display: block;
}

/* Hero responsive */
@media (max-width: 1024px) {
    .kd-hero { grid-template-columns: 1fr; }
    .kd-hero__image-col { min-height: 420px !important; order: -1; }
    .kd-hero__content { padding: 60px 40px; }
}
@media (max-width: 767px) {
    :where(.kd-hero__italic) { font-size: 36px; }
    .kd-hero__content { padding: 48px 24px; }
    .kd-hero__image-col { min-height: 300px !important; }
    .kd-hero__actions { flex-direction: column; align-items: flex-start; gap: 12px; }
    .kd-hero__btn--primary, .kd-hero__btn--outline { width: 100%; justify-content: center; }
}


/* ══════════════════════════════════════════
   2. STATS BAR — .kd-stats-bar
   ══════════════════════════════════════════ */

.kd-stats-bar {
    background-color: #0D1B4B;
    width: 100%;
}

.kd-stats-bar__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}

.kd-stats-bar__item {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 36px 40px;
    border-right: 1px solid rgba(255,255,255,0.08);
}
.kd-stats-bar__item:last-child { border-right: none; }

.kd-stats-bar__icon {
    width: 52px;
    height: 52px;
    border-radius: 12px;
    background-color: rgba(49,126,254,0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    color: #317EFE;
    flex-shrink: 0;
}
.kd-stats-bar__icon svg { width: 22px; height: 22px; fill: #317EFE; }

.kd-stats-bar__text { display: flex; flex-direction: column; }

:where(.kd-stats-bar__number) {
    font-size: 28px;
    font-weight: 700;
    color: #ffffff;
    line-height: 1;
}

:where(.kd-stats-bar__label) {
    font-size: 13px;
    color: rgba(255,255,255,0.55);
    margin-top: 4px;
    line-height: 1.4;
}

@media (max-width: 1024px) {
    .kd-stats-bar__grid { grid-template-columns: repeat(2, 1fr); }
    .kd-stats-bar__item:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,0.08); }
    .kd-stats-bar__item:nth-child(2) { border-right: none; }
}
@media (max-width: 767px) {
    .kd-stats-bar__grid { grid-template-columns: 1fr; }
    .kd-stats-bar__item { border-right: none !important; border-bottom: 1px solid rgba(255,255,255,0.08); }
    .kd-stats-bar__item:last-child { border-bottom: none; }
}


/* ══════════════════════════════════════════
   3. SERVICES GRID — .kd-services-grid
   ══════════════════════════════════════════ */

.kd-services-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.kd-services-grid__card {
    background-color: #ffffff;
    border-radius: 12px;
    padding: 36px 32px;
    border: 1px solid rgba(49,126,254,0.15);
    transition: transform .3s ease, box-shadow .3s ease, border-color .3s;
    position: relative;
    overflow: hidden;
}
.kd-services-grid__card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: #317EFE;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .3s;
}
.kd-services-grid__card:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 48px rgba(13,27,75,0.14);
    border-color: transparent;
}
.kd-services-grid__card:hover::before { transform: scaleX(1); }

.kd-services-grid__icon {
    width: 60px;
    height: 60px;
    border-radius: 14px;
    background-color: rgba(49,126,254,0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 26px;
    color: #317EFE;
    margin-bottom: 20px;
}
.kd-services-grid__icon svg { width: 26px; height: 26px; fill: #317EFE; }

:where(.kd-services-grid__title) {
    font-size: 18px;
    font-weight: 700;
    color: #0D1B4B;
    line-height: 1.3;
    margin: 0 0 10px;
}

:where(.kd-services-grid__desc) {
    font-size: 14px;
    line-height: 1.7;
    color: #374151;
    margin: 0 0 20px;
}

.kd-services-grid__link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #317EFE;
    text-decoration: none;
    transition: gap .2s;
}
.kd-services-grid__link:hover { gap: 12px; }

@media (max-width: 1024px) { .kd-services-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 767px)  { .kd-services-grid { grid-template-columns: 1fr; } }


/* ══════════════════════════════════════════
   4. ABOUT SPLIT — .kd-about-split
   ══════════════════════════════════════════ */

.kd-about-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: center;
}

.kd-about-split__image-wrap { position: relative; }

.kd-about-split__img {
    width: 100%;
    display: block;
    border-radius: 12px;
    object-fit: cover;
    aspect-ratio: 4/5;
    box-shadow: 0 12px 48px rgba(13,27,75,0.14);
}

.kd-about-split__badge {
    position: absolute;
    bottom: -20px; right: -20px;
    width: 110px; height: 110px;
    border-radius: 50%;
    background-color: #317EFE;
    border: 4px solid #ffffff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    box-shadow: 0 4px 24px rgba(13,27,75,0.10);
}

:where(.kd-about-split__badge-num) {
    font-size: 30px;
    font-weight: 800;
    color: #ffffff;
    line-height: 1;
    display: block;
}

:where(.kd-about-split__badge-lbl) {
    font-size: 11px;
    font-weight: 600;
    color: rgba(255,255,255,0.9);
    line-height: 1.3;
    display: block;
    margin-top: 2px;
}

.kd-about-split__quote {
    position: absolute;
    bottom: 80px; left: -30px;
    background-color: #0D1B4B;
    border-radius: 12px;
    padding: 20px 24px;
    max-width: 260px;
    box-shadow: 0 12px 48px rgba(13,27,75,0.14);
}
.kd-about-split__quote p {
    font-size: 13px;
    line-height: 1.6;
    font-style: italic;
    color: rgba(255,255,255,0.85);
    margin: 0;
}
.kd-about-split__quote span {
    display: block;
    margin-top: 8px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #317EFE;
}

:where(.kd-about-split__eyebrow) {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: #317EFE;
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}
:where(.kd-about-split__eyebrow::before) {
    content: '';
    display: block;
    width: 24px;
    height: 2px;
    background: #317EFE;
    flex-shrink: 0;
}

:where(.kd-about-split__heading) {
    font-size: clamp(1.8rem, 3vw, 2.6rem);
    font-weight: 700;
    line-height: 1.2;
    color: #0D1B4B;
    letter-spacing: -0.02em;
    margin: 0 0 20px;
}

:where(.kd-about-split__desc) {
    font-size: 16px;
    line-height: 1.75;
    color: #374151;
    margin: 0 0 28px;
}

.kd-about-split__check-list {
    list-style: none;
    margin: 0 0 36px;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.kd-about-split__check-list li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    font-size: 15px;
    color: #374151;
    line-height: 1.5;
}

.kd-about-split__check-icon {
    width: 22px;
    height: 22px;
    min-width: 22px;
    border-radius: 50%;
    background-color: rgba(49,126,254,0.1);
    color: #317EFE;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    flex-shrink: 0;
    margin-top: 2px;
}
.kd-about-split__check-icon svg { width: 10px; height: 10px; fill: #317EFE; }

.kd-about-split__btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background-color: #317EFE;
    color: #ffffff;
    border: 2px solid #317EFE;
    padding: 14px 32px;
    border-radius: 50px;
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    transition: all .3s;
    white-space: nowrap;
}
.kd-about-split__btn:hover { background-color: #0D1B4B; border-color: #0D1B4B; }

@media (max-width: 1024px) {
    .kd-about-split { grid-template-columns: 1fr; gap: 40px; }
    .kd-about-split__quote { left: 0; bottom: 20px; }
}
@media (max-width: 480px) {
    .kd-about-split__badge {
        right: 10px;
        bottom: 10px;
        width: 90px;
        height: 90px;
    }
    :where(.kd-about-split__badge-num) {
        font-size: 22px;
    }
    .kd-about-split__quote {
        left: 10px;
        bottom: 10px;
        right: 115px;       /* stops before the badge */
        max-width: unset;
    }
}


/* ══════════════════════════════════════════
   5. WORK PROCESS — .kd-work-process
   ══════════════════════════════════════════ */

.kd-work-process {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    position: relative;
}

.kd-work-process::before {
    content: '';
    position: absolute;
    top: 44px;
    left: 16.7%; right: 16.7%;
    height: 2px;
    background: linear-gradient(90deg, #317EFE, #5BA4F5);
    opacity: 0.2;
    pointer-events: none;
}

.kd-work-process__step {
    text-align: center;
    padding: 0 32px;
    position: relative;
}

.kd-work-process__connector-dot {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 3px solid #317EFE;
    background-color: var(--bg-section, #F8FAFF);
    margin: 32px auto 24px;
    position: relative;
    z-index: 2;
    transition: background-color .3s;
}
.kd-work-process__step:hover .kd-work-process__connector-dot {
    background-color: #317EFE;
    box-shadow: 0 0 0 6px rgba(49,126,254,0.15);
}

:where(.kd-work-process__step-label) {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #317EFE;
    display: block;
    margin-bottom: 14px;
}

.kd-work-process__icon-box {
    width: 64px;
    height: 64px;
    border-radius: 16px;
    background-color: #ffffff;
    margin: 0 auto 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 26px;
    color: #317EFE;
    box-shadow: 0 4px 24px rgba(13,27,75,0.10);
}
.kd-work-process__icon-box svg { width: 26px; height: 26px; fill: #317EFE; }

:where(.kd-work-process__title) {
    font-size: 18px;
    font-weight: 700;
    color: #0D1B4B;
    margin: 0 0 10px;
    line-height: 1.3;
}

:where(.kd-work-process__desc) {
    font-size: 14px;
    line-height: 1.7;
    color: #374151;
    margin: 0;
}

@media (max-width: 1024px) {
    .kd-work-process { grid-template-columns: 1fr; gap: 36px; }
    .kd-work-process::before { display: none; }
    .kd-work-process__step { text-align: left; display: flex; flex-direction: column; align-items: flex-start; padding: 0 0 0 80px; position: relative; }
    .kd-work-process__connector-dot { position: absolute; left: 20px; top: 4px; margin: 0; }
    .kd-work-process__icon-box { margin: 0 0 16px; }
}


/* ══════════════════════════════════════════
   6. SERVICE DETAIL — .kd-service-detail
   ══════════════════════════════════════════ */

.kd-service-detail {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.kd-service-detail__cat {
    background-color: #F8FAFF;
    border-radius: 12px;
    padding: 40px;
    border: 1px solid rgba(49,126,254,0.15);
}

.kd-service-detail__cat-header {
    display: flex;
    align-items: center;
    gap: 18px;
    margin-bottom: 28px;
}

.kd-service-detail__cat-icon {
    width: 54px;
    height: 54px;
    border-radius: 14px;
    background-color: #0D1B4B;
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    flex-shrink: 0;
}
.kd-service-detail__cat-icon svg { width: 22px; height: 22px; fill: #ffffff; }

:where(.kd-service-detail__cat-title) {
    font-size: 20px;
    font-weight: 700;
    color: #0D1B4B;
    margin: 0;
}

.kd-service-detail__items {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
}

.kd-service-detail__item {
    display: flex;
    flex-direction: column;
    gap: 6px;
    background-color: #ffffff;
    border-radius: 10px;
    padding: 18px 20px;
    border: 1px solid rgba(49,126,254,0.1);
}

:where(.kd-service-detail__item-name) {
    font-size: 14px;
    font-weight: 700;
    color: #0D1B4B;
    display: block;
}

:where(.kd-service-detail__item-desc) {
    font-size: 13px;
    line-height: 1.6;
    color: #6B7280;
    display: block;
}

@media (max-width: 767px) {
    .kd-service-detail__cat { padding: 28px 20px; }
    .kd-service-detail__items { grid-template-columns: 1fr; }
}


/* ══════════════════════════════════════════
   7. CTA FORM — .kd-cta-form
   ══════════════════════════════════════════ */

.kd-cta-form {
    background-color: #0D1B4B;
    padding: 100px 0;
    position: relative;
    overflow: hidden;
    width: 100%;
}

.kd-cta-form::before {
    content: '';
    position: absolute; inset: 0;
    background-image:
        linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
    background-size: 60px 60px;
    pointer-events: none;
}

.kd-cta-form__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: center;
    position: relative;
    z-index: 2;
}

.kd-cta-form__left { }

:where(.kd-cta-form__eyebrow) {
    display: block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: #5BA4F5;
    margin-bottom: 16px;
}

:where(.kd-cta-form__heading) {
    font-size: clamp(2rem, 3vw, 2.8rem);
    font-weight: 700;
    line-height: 1.15;
    color: #ffffff;
    margin: 0 0 16px;
    letter-spacing: -0.02em;
}

:where(.kd-cta-form__desc) {
    font-size: 16px;
    line-height: 1.75;
    color: rgba(255,255,255,0.65);
    margin: 0 0 32px;
}

.kd-cta-form__check-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.kd-cta-form__check-list li {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 15px;
    color: rgba(255,255,255,0.85);
    line-height: 1.5;
}
.kd-cta-form__check-list li { gap: 14px; }
.kd-cta-form__check-list .kd-cta-icon { color: #5BA4F5; font-size: 16px; flex-shrink: 0; display: inline-flex; align-items: center; }
.kd-cta-form__check-list .kd-cta-icon svg { width: 16px; height: 16px; fill: #5BA4F5; }

/* Form card */
.kd-cta-form__card {
    background-color: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 12px;
    padding: 40px;
}

:where(.kd-cta-form__card-title) {
    font-size: 20px;
    font-weight: 700;
    color: #ffffff;
    margin-bottom: 6px;
}

:where(.kd-cta-form__card-sub) {
    font-size: 14px;
    color: rgba(255,255,255,0.45);
    margin-bottom: 28px;
}

.kd-cta-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }

.kd-cta-form__group { margin-bottom: 16px; }

.kd-cta-form__group label {
    display: block;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.55);
    margin-bottom: 8px;
}

.kd-cta-form__group input,
.kd-cta-form__group select,
.kd-cta-form__group textarea {
    width: 100%;
    padding: 13px 16px;
    background-color: rgba(255,255,255,0.07);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 8px;
    color: #ffffff;
    font-family: inherit;
    font-size: 14px;
    outline: none;
    transition: border-color .2s;
    -webkit-appearance: none;
}
.kd-cta-form__group input::placeholder,
.kd-cta-form__group textarea::placeholder { color: rgba(255,255,255,0.3); }
.kd-cta-form__group input:focus,
.kd-cta-form__group select:focus,
.kd-cta-form__group textarea:focus { border-color: #317EFE; }
.kd-cta-form__group select option { background-color: #0D1B4B; color: #ffffff; }

.kd-cta-form__submit {
    width: 100%;
    padding: 15px;
    background-color: #317EFE;
    color: #ffffff;
    border: none;
    border-radius: 8px;
    font-family: inherit;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    transition: background-color .3s, transform .2s;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-top: 8px;
}
.kd-cta-form__submit:hover { background-color: #1a6aee; transform: translateY(-1px); }

@media (max-width: 1024px) {
    .kd-cta-form__inner { grid-template-columns: 1fr; gap: 48px; padding: 0 32px; }
    .kd-cta-form { padding: 70px 0; }
}
@media (max-width: 767px) {
    .kd-cta-form__inner { padding: 0 20px; }
    .kd-cta-form__row { grid-template-columns: 1fr; }
    .kd-cta-form__card { padding: 28px 20px; }
}


/* ══════════════════════════════════════════
   8. FOOTER — .kd-footer
   ══════════════════════════════════════════ */

.kd-footer {
    background-color: #080f2a;
    color: rgba(255,255,255,0.6);
    width: 100%;
}

.kd-footer__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
}

/* Top bar */
.kd-footer__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 32px 0;
    border-bottom: 1px solid rgba(255,255,255,0.08);
    flex-wrap: wrap;
    gap: 16px;
}

.kd-footer__logo {
    display: flex;
    align-items: center;
    gap: 14px;
    text-decoration: none;
}

.kd-footer__logo-badge {
    width: 40px;
    height: 40px;
    background-color: #317EFE;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 900;
    color: #ffffff;
    flex-shrink: 0;
}
.kd-footer__logo-img {
    width: 140px;
    height: auto;
    display: block;
    max-height: 60px;
    object-fit: contain;
    object-position: left center;
}

:where(.kd-footer__logo-name) {
    font-size: 16px;
    font-weight: 700;
    color: #ffffff;
    display: block;
    line-height: 1.1;
}

:where(.kd-footer__logo-sub) {
    font-size: 10px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #5BA4F5;
    display: block;
    margin-top: 2px;
}

.kd-footer__social {
    display: flex;
    align-items: center;
    gap: 8px;
}
.kd-footer__social > span {
    font-size: 13px;
    color: rgba(255,255,255,0.4);
    margin-right: 8px;
}

.kd-footer__social-link {
    width: 36px;
    height: 36px;
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgba(255,255,255,0.5);
    text-decoration: none;
    font-size: 14px;
    transition: all .2s;
}
.kd-footer__social-link:hover {
    background-color: #317EFE;
    border-color: #317EFE;
    color: #ffffff;
}
.kd-footer__social-link svg { width: 14px; height: 14px; fill: rgba(255,255,255,0.5); }
.kd-footer__social-link:hover svg { fill: #ffffff; }

/* Main columns */
.kd-footer__main {
    display: grid;
    grid-template-columns: 1.8fr 1fr 1fr 1.4fr;
    gap: 48px;
    padding: 56px 0;
    border-bottom: 1px solid rgba(255,255,255,0.08);
}

:where(.kd-footer__col-title) {
    font-size: 13px;
    font-weight: 700;
    color: #ffffff;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: 20px;
    display: block;
}

:where(.kd-footer__tagline) {
    font-size: 14px;
    line-height: 1.75;
    color: rgba(255,255,255,0.45);
    margin: 0 0 12px;
}

:where(.kd-footer__credentials) {
    font-size: 12px;
    color: rgba(255,255,255,0.3);
    line-height: 1.5;
    margin: 0;
}

.kd-footer__links {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.kd-footer__links a {
    font-size: 14px;
    color: rgba(255,255,255,0.5);
    text-decoration: none;
    transition: color .2s;
    display: flex;
    align-items: center;
    gap: 8px;
}
.kd-footer__links a::before { content: '>'; font-size: 11px; color: #317EFE; flex-shrink: 0; }
.kd-footer__links a:hover { color: #ffffff; }

/* Newsletter */
.kd-footer__newsletter-form { margin-top: 4px; }

.kd-footer__newsletter-wrap {
    display: flex;
    border-radius: 50px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,0.15);
}

.kd-footer__newsletter-wrap input {
    flex: 1;
    padding: 12px 20px;
    background-color: rgba(255,255,255,0.07);
    border: none;
    color: #ffffff;
    font-family: inherit;
    font-size: 14px;
    outline: none;
    min-width: 0;
}
.kd-footer__newsletter-wrap input::placeholder { color: rgba(255,255,255,0.3); }

.kd-footer__newsletter-btn {
    width: 44px;
    height: 44px;
    background-color: #F0C419;
    border: none;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #000000;
    font-size: 16px;
    cursor: pointer;
    transition: transform .2s, background-color .2s;
    margin: 2px 3px 2px 0;
    flex-shrink: 0;
}
.kd-footer__newsletter-btn:hover { background-color: #ffffff; transform: scale(1.05); }

/* Bottom bar */
.kd-footer__bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 24px 0;
    flex-wrap: wrap;
    gap: 12px;
}

:where(.kd-footer__copyright) {
    font-size: 13px;
    color: rgba(255,255,255,0.3);
}

.kd-footer__bottom-links {
    display: flex;
    gap: 24px;
    flex-wrap: wrap;
}
.kd-footer__bottom-links a {
    font-size: 13px;
    color: rgba(255,255,255,0.3);
    text-decoration: none;
    transition: color .2s;
}
.kd-footer__bottom-links a:hover { color: rgba(255,255,255,0.7); }

/* Footer responsive */
@media (max-width: 1024px) {
    .kd-footer__main { grid-template-columns: 1fr 1fr; gap: 36px; }
}
@media (max-width: 767px) {
    .kd-footer__inner { padding: 0 20px; }
    .kd-footer__main { grid-template-columns: 1fr; }
    .kd-footer__top { flex-direction: column; align-items: flex-start; }
    .kd-footer__bottom { flex-direction: column; align-items: flex-start; }
    .kd-footer__bottom-links { gap: 16px; }
}

/* CTA Form shortcode wrapper */
.kd-cta-form__shortcode-wrap {
    margin-top: 8px;
}
.kd-cta-form__placeholder {
    text-align: center;
    padding: 40px 20px;
    color: rgba(255,255,255,0.4);
}
.kd-cta-form__placeholder i { font-size: 40px; margin-bottom: 12px; display: block; }
.kd-cta-form__placeholder p { font-size: 14px; line-height: 1.6; }


/* ══════════════════════════════════════════
   9. BOOKS GRID — .kd-books-grid
   ══════════════════════════════════════════ */

/* Full-bleed: escapes any Elementor boxed container */
.elementor-widget-kd_books_grid,
.elementor-widget-kd_books_grid > .elementor-widget-container {
    width: 100%;
    max-width: 100%;
}

.kd-books-grid {
    background-color: #EEF2FF;
    padding: 100px 0 120px;
    width: 100%;
    box-sizing: border-box;
}

.kd-books-grid__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
}

.kd-books-grid__header {
    margin-bottom: 72px;
}

:where(.kd-books-grid__eyebrow) {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #317EFE;
    display: block;
    margin-bottom: 16px;
    text-align: center;
}

:where(.kd-books-grid__heading) {
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 800;
    color: #0D1B4B;
    line-height: 1.15;
    letter-spacing: -0.02em;
    margin: 0 auto 16px;
    max-width: 700px;
    text-align: center;
}

:where(.kd-books-grid__desc) {
    font-size: 16px;
    line-height: 1.75;
    color: #6B7280;
    max-width: 580px;
    margin: 0 auto;
    text-align: center;
}

.kd-books-grid__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
    align-items: end;
}

.kd-books-grid__card {
    background-color: #ffffff;
    border-radius: 16px;
    overflow: visible;
    display: flex;
    flex-direction: column;
    position: relative;
}

.kd-books-grid__card--shadow {
    box-shadow: 0 4px 32px rgba(13,27,75,0.10);
}

.kd-books-grid__cover-wrap {
    display: flex;
    justify-content: center;
    margin-top: -60px;
    padding: 0 24px;
    pointer-events: none;
}

.kd-books-grid__cover {
    width: 200px;
    height: 260px;
    object-fit: cover;
    border-radius: 6px;
    box-shadow: 0 8px 40px rgba(13,27,75,0.22);
    display: block;
    transition: transform .3s;
}

.kd-books-grid__card:hover .kd-books-grid__cover {
    transform: translateY(-6px);
}

.kd-books-grid__card-body {
    padding: 24px 28px 32px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

:where(.kd-books-grid__title) {
    font-size: 18px;
    font-weight: 700;
    color: #0D1B4B;
    margin: 0 0 8px;
    text-align: center;
    line-height: 1.3;
}

:where(.kd-books-grid__card-desc) {
    font-size: 14px;
    line-height: 1.65;
    color: #6B7280;
    margin: 0 0 20px;
    text-align: center;
    flex: 1;
}

.kd-books-grid__pricing {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
    flex-wrap: wrap;
}

:where(.kd-books-grid__sale-price) {
    font-size: 28px;
    font-weight: 800;
    color: #317EFE;
    line-height: 1;
}

:where(.kd-books-grid__original-price) {
    font-size: 16px;
    color: #9CA3AF;
    text-decoration: line-through;
}

:where(.kd-books-grid__save-badge) {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: #317EFE;
    border: 1.5px solid #317EFE;
    border-radius: 50px;
    padding: 3px 10px;
    white-space: nowrap;
}

.kd-books-grid__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    padding: 14px 24px;
    background-color: #317EFE;
    color: #ffffff;
    border-radius: 50px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-decoration: none;
    transition: background-color .3s, transform .2s;
    border: none;
    cursor: pointer;
}
.kd-books-grid__btn svg { width: 16px; height: 16px; fill: #fff; }
.kd-books-grid__btn:hover { background-color: #0D1B4B; transform: translateY(-1px); }

@media (max-width: 1024px) { .kd-books-grid__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 767px)  {
    .kd-books-grid__inner { padding: 0 20px; }
    .kd-books-grid__grid { grid-template-columns: 1fr; max-width: 380px; margin: 0 auto; }
}



/* WooCommerce integration — price formatting */
.kd-books-grid__sale-price .woocommerce-Price-amount,
.kd-books-grid__sale-price ins .woocommerce-Price-amount {
    color: inherit;
    font-weight: inherit;
    font-size: inherit;
}
.kd-books-grid__sale-price ins { text-decoration: none; }
.kd-books-grid__original-price del,
.kd-books-grid__original-price del .woocommerce-Price-amount {
    color: #9CA3AF;
    font-size: 16px;
    opacity: 1;
}

/* Cover link — no underline */
.kd-books-grid__cover-link { display: block; text-decoration: none; }
.kd-books-grid__title-link { text-decoration: none; }
.kd-books-grid__title-link:hover .kd-books-grid__title { color: #317EFE; }

/* WC AJAX add-to-cart loading state */
.kd-books-grid__btn.loading {
    opacity: 0.65;
    pointer-events: none;
    position: relative;
}
.kd-books-grid__btn.loading::after {
    content: '';
    display: inline-block;
    width: 14px; height: 14px;
    border: 2px solid rgba(255,255,255,0.4);
    border-top-color: #fff;
    border-radius: 50%;
    animation: kd-spin .7s linear infinite;
    margin-left: 8px;
    vertical-align: middle;
}
.kd-books-grid__btn.added {
    background-color: #10b981 !important;
}
@keyframes kd-spin { to { transform: rotate(360deg); } }

/* Empty state */
.kd-books-grid__empty {
    text-align: center;
    padding: 60px 20px;
    color: #9CA3AF;
    font-size: 15px;
    border: 2px dashed rgba(49,126,254,0.2);
    border-radius: 12px;
}

/* ══════════════════════════════════════════
   10. TESTIMONIALS — .kd-testimonials
   ══════════════════════════════════════════ */

.elementor-widget-kd_testimonials,
.elementor-widget-kd_testimonials > .elementor-widget-container {
    width: 100%;
    max-width: 100%;
}

.kd-testimonials {
    background-color: #EEF2FF;
    padding: 100px 0;
    width: 100%;
    box-sizing: border-box;
}

.kd-testimonials__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
}

/* Header */
.kd-testimonials__header {
    margin-bottom: 60px;
}

:where(.kd-testimonials__eyebrow) {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #317EFE;
    display: block;
    margin-bottom: 16px;
    text-align: center;
}

:where(.kd-testimonials__heading) {
    font-size: clamp(2rem, 3.5vw, 2.8rem);
    font-weight: 800;
    color: #0D1B4B;
    line-height: 1.15;
    letter-spacing: -0.02em;
    margin: 0 0 16px;
    text-align: center;
}

:where(.kd-testimonials__header-desc) {
    font-size: 16px;
    line-height: 1.75;
    color: #6B7280;
    max-width: 580px;
    margin: 0 auto;
    text-align: center;
}

/* Slider */
.kd-testimonials__slider-wrap {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0;
}

.kd-testimonials__arrow {
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    border: 2px solid #317EFE;
    background-color: transparent;
    color: #317EFE;
    font-size: 16px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color .2s, color .2s;
    z-index: 2;
    flex-shrink: 0;
}
.kd-testimonials__arrow:hover { background-color: #317EFE; color: #ffffff; }

.kd-testimonials__track {
    flex: 1;
    overflow: hidden;
    position: relative;
    min-height: 300px;
}

.kd-testimonials__slide {
    display: none;
    animation: kd-fade-in .4s ease;
}
.kd-testimonials__slide--active { display: block; }

@keyframes kd-fade-in { from { opacity: 0; transform: translateX(16px); } to { opacity: 1; transform: translateX(0); } }

/* Card */
.kd-testimonials__card {
    display: grid;
    grid-template-columns: 220px 1fr auto;
    background-color: #ffffff;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 32px rgba(13,27,75,0.10);
    min-height: 320px;
    margin: 0 24px;
}

/* Photo panel */
.kd-testimonials__photo-panel {
    background-color: #0D1B4B;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px 24px;
    overflow: hidden;
}

.kd-testimonials__big-mark {
    position: absolute;
    top: 20px;
    left: 20px;
    font-size: 80px;
    line-height: 1;
    font-family: Georgia, serif;
    color: #317EFE;
    opacity: 0.3;
    pointer-events: none;
    font-weight: 900;
}

.kd-testimonials__photo-circle {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    border: 4px solid rgba(255,255,255,0.2);
    overflow: hidden;
    flex-shrink: 0;
    position: relative;
    z-index: 1;
}
.kd-testimonials__photo-circle img {
    width: 100%; height: 100%;
    object-fit: cover;
    object-position: center top;
    display: block;
}

/* Quote body */
.kd-testimonials__body {
    padding: 40px 40px 40px 36px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 16px;
    border-right: 1px solid rgba(13,27,75,0.06);
}

:where(.kd-testimonials__quote) {
    font-size: 16px;
    line-height: 1.75;
    color: #374151;
    margin: 0;
    font-style: normal;
}

.kd-testimonials__quote-mark {
    font-size: 22px;
    line-height: 0;
    vertical-align: -6px;
    color: #317EFE;
    font-family: Georgia, serif;
    font-weight: 700;
}

.kd-testimonials__divider {
    width: 120px;
    height: 1px;
    background-color: rgba(13,27,75,0.10);
}

.kd-testimonials__author {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

:where(.kd-testimonials__name) {
    font-size: 16px;
    font-weight: 700;
    color: #0D1B4B;
}

:where(.kd-testimonials__person-title) {
    font-size: 14px;
    color: #6B7280;
}

/* Rating box */
.kd-testimonials__rating-box {
    padding: 40px 32px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-width: 160px;
    position: relative;
}

.kd-testimonials__rating-divider {
    display: none;
}

.kd-testimonials__stars-row { display: flex; gap: 3px; }
.kd-testimonials__star { color: #F0C419; font-size: 18px; }
.kd-testimonials__star--empty { color: #D1D5DB; }

:where(.kd-testimonials__score) {
    font-size: 36px;
    font-weight: 800;
    color: #0D1B4B;
    line-height: 1;
}

:where(.kd-testimonials__score-label) {
    font-size: 13px;
    color: #6B7280;
}

/* Indicators */
.kd-testimonials__indicators {
    display: flex;
    align-items: center;
    gap: 16px;
    justify-content: center;
    margin-top: 36px;
    padding: 0 72px;
}

.kd-testimonials__progress-num {
    font-size: 13px;
    font-weight: 600;
    color: #9CA3AF;
    width: 24px;
    text-align: center;
    flex-shrink: 0;
}

.kd-testimonials__progress-track {
    flex: 1;
    height: 3px;
    background-color: rgba(49,126,254,0.15);
    border-radius: 2px;
    overflow: hidden;
}

.kd-testimonials__progress-fill {
    height: 100%;
    background-color: #317EFE;
    border-radius: 2px;
    transition: width .4s ease;
}

.kd-testimonials__dots {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 16px;
}

.kd-testimonials__dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: rgba(49,126,254,0.2);
    border: none;
    cursor: pointer;
    padding: 0;
    transition: background-color .2s, transform .2s;
}
.kd-testimonials__dot--active {
    background-color: #317EFE;
    transform: scale(1.3);
}

/* Responsive */
@media (max-width: 1024px) {
    .kd-testimonials__card { grid-template-columns: 1fr; }
    .kd-testimonials__photo-panel { flex-direction: row; gap: 20px; padding: 28px; min-height: unset; }
    .kd-testimonials__big-mark { display: none; }
    .kd-testimonials__body { padding: 28px; border-right: none; border-bottom: 1px solid rgba(13,27,75,0.06); }
    .kd-testimonials__rating-box { flex-direction: row; flex-wrap: wrap; padding: 24px 28px; gap: 12px; justify-content: flex-start; min-width: unset; }
    .kd-testimonials__score { font-size: 28px; }
}

@media (max-width: 767px) {
    .kd-testimonials__inner { padding: 0 20px; }
    .kd-testimonials__card { margin: 0 0; }
    .kd-testimonials__arrow { width: 40px; height: 40px; font-size: 14px; }
    .kd-testimonials__indicators { padding: 0 50px; }
    .kd-testimonials__body { padding: 24px 20px; }
    :where(.kd-testimonials__quote) { font-size: 14px; }
}


/* ══════════════════════════════════════════
   11. ABOUT HERO — .kd-about-hero
   ══════════════════════════════════════════ */
.elementor-widget-kd_about_hero,
.elementor-widget-kd_about_hero > .elementor-widget-container { width:100%; max-width:100%; }

.kd-about-hero {
    display: grid;
    grid-template-columns: 50% 1fr;
    min-height: 70vh;
    background: #ffffff;
    overflow: hidden;
    width: 100%;
}

.kd-about-hero__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 80px 60px 80px 80px;
}

:where(.kd-about-hero__eyebrow) {
    font-size: 12px; font-weight: 700; letter-spacing: 0.15em;
    text-transform: uppercase; color: #317EFE;
    display: block; margin-bottom: 14px;
}

:where(.kd-about-hero__heading) {
    font-size: clamp(2rem, 4vw, 3.2rem);
    font-weight: 800; line-height: 1.15;
    color: #0D1B4B; letter-spacing: -0.02em;
    margin: 0 0 24px;
}

:where(.kd-about-hero__heading-italic) {
    font-style: italic;
    color: #317EFE;
    display: block;
}

:where(.kd-about-hero__para) {
    font-size: 15px; line-height: 1.75;
    color: #374151; margin: 0 0 16px;
}
:where(.kd-about-hero__para:last-of-type) { margin-bottom: 32px; }

.kd-about-hero__btn {
    display: inline-flex; align-items: center; gap: 10px;
    background-color: #317EFE; color: #ffffff;
    border: 2px solid #317EFE;
    padding: 13px 28px; border-radius: 50px;
    font-size: 14px; font-weight: 700;
    text-decoration: none; width: fit-content;
    transition: background-color .3s, border-color .3s, transform .2s;
}
.kd-about-hero__btn svg { width: 14px; height: 14px; fill: currentColor; }
.kd-about-hero__btn:hover { background-color: #0D1B4B; border-color: #0D1B4B; transform: translateY(-2px); }

.kd-about-hero__image-col {
    position: relative; overflow: hidden;
    background-color: #e8edf5; min-height: 60vh;
}
.kd-about-hero__img {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover; object-position: center top;
    display: block;
}

@media (max-width:1024px) {
    .kd-about-hero { grid-template-columns: 1fr; }
    .kd-about-hero__image-col { min-height: 400px; order: -1; }
    .kd-about-hero__content { padding: 60px 40px; }
}
@media (max-width:767px) {
    .kd-about-hero__content { padding: 48px 24px; }
    .kd-about-hero__image-col { min-height: 280px; }
}


/* ══════════════════════════════════════════
   12. ICON FEATURES — .kd-icon-features
   ══════════════════════════════════════════ */
.elementor-widget-kd_icon_features,
.elementor-widget-kd_icon_features > .elementor-widget-container { width:100%; max-width:100%; }

.kd-icon-features {
    background-color: #F8FAFF;
    padding: 90px 0; width: 100%;
}
.kd-icon-features__inner {
    max-width: 1200px; margin: 0 auto; padding: 0 40px;
}
.kd-icon-features__header {
    text-align: center; margin-bottom: 64px;
}
:where(.kd-icon-features__eyebrow) {
    font-size: 12px; font-weight: 700; letter-spacing: 0.15em;
    text-transform: uppercase; color: #317EFE;
    display: block; margin-bottom: 12px; text-align: center;
}
:where(.kd-icon-features__heading) {
    font-size: clamp(1.8rem, 3vw, 2.6rem);
    font-weight: 800; color: #0D1B4B;
    line-height: 1.2; letter-spacing: -0.02em;
    margin: 0 0 20px; text-align: center;
}
.kd-icon-features__divider {
    width: 48px; height: 3px; background-color: #317EFE;
    border-radius: 2px; margin: 0 auto 20px;
}
:where(.kd-icon-features__desc) {
    font-size: 15px; line-height: 1.75;
    color: #6B7280; max-width: 680px;
    margin: 0 auto; text-align: center;
}

.kd-icon-features__grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 32px;
}
.kd-icon-features__item { text-align: center; }

.kd-icon-features__icon {
    width: 72px; height: 72px; border-radius: 50%;
    background-color: rgba(49,126,254,0.08);
    display: flex; align-items: center; justify-content: center;
    font-size: 28px; color: #317EFE;
    margin: 0 auto 16px;
}
.kd-icon-features__icon svg { width: 28px; height: 28px; fill: #317EFE; }

:where(.kd-icon-features__title) {
    font-size: 15px; font-weight: 700; color: #0D1B4B;
    margin: 0 0 8px; line-height: 1.3;
}
:where(.kd-icon-features__feat-desc) {
    font-size: 13px; line-height: 1.65; color: #6B7280; margin: 0;
}

@media (max-width:1024px) { .kd-icon-features__grid { grid-template-columns: repeat(3,1fr); } }
@media (max-width:767px) {
    .kd-icon-features__inner { padding: 0 20px; }
    .kd-icon-features__grid { grid-template-columns: repeat(2,1fr); gap: 24px; }
}


/* ══════════════════════════════════════════
   13. EXPERIENCE SPLIT — .kd-exp-split
   ══════════════════════════════════════════ */
.elementor-widget-kd_experience_split,
.elementor-widget-kd_experience_split > .elementor-widget-container { width:100%; max-width:100%; }

.kd-exp-split { background: #ffffff; padding: 90px 0; width: 100%; }
.kd-exp-split__inner {
    max-width: 1200px; margin: 0 auto; padding: 0 40px;
    display: grid; grid-template-columns: 1fr 460px;
    gap: 80px; align-items: center;
}

:where(.kd-exp-split__eyebrow) {
    font-size: 12px; font-weight: 700; letter-spacing: 0.15em;
    text-transform: uppercase; color: #317EFE;
    display: block; margin-bottom: 12px;
}
:where(.kd-exp-split__heading) {
    font-size: clamp(1.8rem, 3vw, 2.6rem);
    font-weight: 800; color: #0D1B4B;
    line-height: 1.2; letter-spacing: -0.02em;
    margin: 0 0 20px;
}
:where(.kd-exp-split__desc) {
    font-size: 15px; line-height: 1.75; color: #374151; margin: 0 0 28px;
}

:where(.kd-exp-split__cred-heading) {
    font-size: 14px; font-weight: 700; color: #317EFE;
    margin-bottom: 12px; text-transform: uppercase; letter-spacing: 0.06em;
}
.kd-exp-split__cred-list {
    list-style: none; padding: 0; margin: 0 0 28px;
    display: flex; flex-direction: column; gap: 10px;
}
.kd-exp-split__cred-list li {
    display: flex; align-items: center; gap: 10px;
    font-size: 14px; color: #374151;
}
.kd-exp-split__cred-list li .kd-exp-icon {
    color: #317EFE; font-size: 13px; flex-shrink: 0;
    width: 20px; display: inline-flex; align-items: center; justify-content: center;
}

:where(.kd-exp-split__svc-heading) {
    font-size: 14px; font-weight: 700; color: #0D1B4B;
    margin-bottom: 12px;
}
.kd-exp-split__svc-list {
    list-style: none; padding: 0; margin: 0;
    display: grid; grid-template-columns: 1fr 1fr; gap: 8px 20px;
}
.kd-exp-split__svc-list li {
    display: flex; align-items: center; gap: 8px;
    font-size: 13px; color: #374151;
}
.kd-exp-split__svc-list li .kd-exp-icon {
    color: #317EFE; font-size: 8px; flex-shrink: 0;
}

/* Image */
.kd-exp-split__image-wrap { position: relative; }
.kd-exp-split__img {
    width: 100%; display: block; border-radius: 12px;
    object-fit: cover; aspect-ratio: 4/5;
    box-shadow: 0 8px 48px rgba(13,27,75,0.12);
}
.kd-exp-split__badge {
    position: absolute; bottom: 24px; right: -20px;
    background-color: #317EFE;
    border-radius: 12px; padding: 20px 24px;
    text-align: center; min-width: 140px;
    box-shadow: 0 4px 24px rgba(13,27,75,0.18);
}
:where(.kd-exp-split__badge-num) {
    display: block; font-size: 36px; font-weight: 900; color: #ffffff; line-height: 1;
}
:where(.kd-exp-split__badge-text) {
    display: block; font-size: 12px; line-height: 1.5;
    color: rgba(255,255,255,0.9); margin-top: 6px;
}

@media (max-width:1024px) {
    .kd-exp-split__inner { grid-template-columns: 1fr; gap: 48px; padding: 0 40px; }
    .kd-exp-split__badge { right: 0; }
}
@media (max-width:767px) {
    .kd-exp-split__inner { padding: 0 20px; }
    .kd-exp-split__svc-list { grid-template-columns: 1fr; }
}


/* ══════════════════════════════════════════
   14. WHO WE SERVE — .kd-wws
   ══════════════════════════════════════════ */
.elementor-widget-kd_who_we_serve,
.elementor-widget-kd_who_we_serve > .elementor-widget-container { width:100%; max-width:100%; }

.kd-wws { background: #F8FAFF; padding: 90px 0; width: 100%; }
.kd-wws__inner {
    max-width: 1200px; margin: 0 auto; padding: 0 40px;
}
.kd-wws__header { text-align: center; margin-bottom: 56px; }

:where(.kd-wws__eyebrow) {
    font-size: 12px; font-weight: 700; letter-spacing: 0.15em;
    text-transform: uppercase; color: #317EFE;
    display: block; margin-bottom: 12px; text-align: center;
}
:where(.kd-wws__heading) {
    font-size: clamp(1.8rem, 3vw, 2.6rem);
    font-weight: 800; color: #0D1B4B;
    line-height: 1.2; letter-spacing: -0.02em;
    margin: 0 0 20px; text-align: center;
}
.kd-wws__divider {
    width: 48px; height: 3px; background-color: #317EFE;
    border-radius: 2px; margin: 0 auto;
}

.kd-wws__grid {
    display: grid; grid-template-columns: repeat(5,1fr);
    gap: 32px; margin-bottom: 48px;
}
.kd-wws__item { text-align: center; }

.kd-wws__icon {
    width: 80px; height: 80px; border-radius: 50%;
    background-color: rgba(49,126,254,0.08);
    display: flex; align-items: center; justify-content: center;
    font-size: 32px; color: #317EFE;
    margin: 0 auto 16px;
}
.kd-wws__icon svg { width: 32px; height: 32px; fill: #317EFE; }

:where(.kd-wws__item-title) {
    font-size: 14px; font-weight: 700; color: #0D1B4B;
    margin: 0 0 6px; line-height: 1.4;
}
:where(.kd-wws__item-desc) {
    font-size: 13px; color: #6B7280; margin: 0; line-height: 1.5;
}
:where(.kd-wws__tagline) {
    font-size: 15px; line-height: 1.75; color: #374151;
    text-align: center; max-width: 800px; margin: 0 auto;
}

@media (max-width:1024px) { .kd-wws__grid { grid-template-columns: repeat(3,1fr); } }
@media (max-width:767px) {
    .kd-wws__inner { padding: 0 20px; }
    .kd-wws__grid { grid-template-columns: repeat(2,1fr); gap: 24px; }
}


/* ══════════════════════════════════════════
   15. MISSION BANNER — .kd-mission
   ══════════════════════════════════════════ */
.elementor-widget-kd_mission_banner,
.elementor-widget-kd_mission_banner > .elementor-widget-container { width:100%; max-width:100%; }

.kd-mission {
    background-color: #0D1B4B; padding: 72px 0; width: 100%;
    position: relative; overflow: hidden;
}
.kd-mission::before {
    content:''; position:absolute; inset:0;
    background-image: linear-gradient(rgba(255,255,255,0.03) 1px,transparent 1px),
                      linear-gradient(90deg,rgba(255,255,255,0.03) 1px,transparent 1px);
    background-size: 60px 60px; pointer-events:none;
}
.kd-mission__inner {
    max-width: 1200px; margin: 0 auto; padding: 0 40px;
    display: grid; grid-template-columns: 120px 1fr 1fr;
    gap: 48px; align-items: center;
    position: relative; z-index: 2;
}

.kd-mission__icon-col { display: flex; align-items: center; justify-content: center; }
.kd-mission__icon-wrap {
    width: 100px; height: 100px; border-radius: 50%;
    background-color: rgba(255,255,255,0.08);
    display: flex; align-items: center; justify-content: center;
    font-size: 48px; color: #5BA4F5;
}
.kd-mission__icon-wrap svg { width: 48px; height: 48px; fill: #5BA4F5; }

:where(.kd-mission__eyebrow) {
    font-size: 11px; font-weight: 700; letter-spacing: 0.18em;
    text-transform: uppercase; color: #5BA4F5;
    display: block; margin-bottom: 10px;
}
:where(.kd-mission__heading) {
    font-size: clamp(1.5rem, 2.5vw, 2.2rem);
    font-weight: 800; color: #ffffff; line-height: 1.2;
    letter-spacing: -0.02em; margin: 0 0 16px;
}
:where(.kd-mission__para) {
    font-size: 14px; line-height: 1.75;
    color: rgba(255,255,255,0.6); margin: 0 0 10px;
}
:where(.kd-mission__para:last-child) { margin-bottom: 0; }

.kd-mission__right {
    display: flex; flex-direction: column; gap: 20px;
    align-items: flex-start;
}
.kd-mission__btn {
    display: inline-flex; align-items: center; gap: 10px;
    background-color: #317EFE; color: #ffffff;
    border: 2px solid #317EFE;
    padding: 13px 28px; border-radius: 50px;
    font-size: 14px; font-weight: 700;
    text-decoration: none; white-space: nowrap;
    transition: all .3s;
}
.kd-mission__btn svg { width: 14px; height: 14px; fill: currentColor; }
.kd-mission__btn:hover { background-color: #ffffff; border-color: #ffffff; color: #0D1B4B; }
:where(.kd-mission__right-text) {
    font-size: 14px; line-height: 1.75;
    color: rgba(255,255,255,0.6); margin: 0;
}

@media (max-width:1024px) {
    .kd-mission__inner { grid-template-columns: 80px 1fr; }
    .kd-mission__right { grid-column: 1/-1; flex-direction: row; flex-wrap: wrap; align-items: center; }
}
@media (max-width:767px) {
    .kd-mission__inner { grid-template-columns: 1fr; padding: 0 24px; }
    .kd-mission__icon-col { justify-content: flex-start; }
    .kd-mission__right { flex-direction: column; align-items: flex-start; }
}


/* ══════════════════════════════════════════
   16. BLOG HERO — .kd-blog-hero
   ══════════════════════════════════════════ */
.elementor-widget-kd_blog_hero,
.elementor-widget-kd_blog_hero > .elementor-widget-container { width:100%; max-width:100%; }

.kd-blog-hero {
    display: grid; grid-template-columns: 50% 1fr;
    min-height: 60vh; background: #F8FAFF;
    overflow: hidden; width: 100%;
    position: relative;
}
/* subtle dot pattern on left side */
.kd-blog-hero::before {
    content:''; position:absolute; top:0; left:0; bottom:0; width:50%;
    background-image: radial-gradient(rgba(49,126,254,0.07) 1.5px, transparent 1.5px);
    background-size: 22px 22px; pointer-events:none;
}
.kd-blog-hero__content {
    display:flex; flex-direction:column; justify-content:center;
    padding: 80px 60px 80px 80px; position:relative; z-index:2;
}
:where(.kd-blog-hero__eyebrow) {
    font-size:12px; font-weight:700; letter-spacing:0.15em;
    text-transform:uppercase; color:#317EFE;
    display:block; margin-bottom:14px;
}
:where(.kd-blog-hero__heading) {
    font-size: clamp(2rem,4vw,3.2rem);
    font-weight:800; line-height:1.15;
    color:#0D1B4B; letter-spacing:-0.02em;
    margin:0 0 24px;
}
:where(.kd-blog-hero__heading-italic) {
    font-style:italic; color:#317EFE; display:block;
}
:where(.kd-blog-hero__desc) {
    font-size:15px; line-height:1.75; color:#374151; margin:0 0 32px;
}
.kd-blog-hero__btn {
    display:inline-flex; align-items:center; gap:10px;
    background-color:transparent; color:#0D1B4B;
    border:2px solid #0D1B4B;
    padding:12px 28px; border-radius:50px;
    font-size:13px; font-weight:700; letter-spacing:0.05em; text-transform:uppercase;
    text-decoration:none; width:fit-content;
    transition: all .3s;
}
.kd-blog-hero__btn svg { width:14px; height:14px; fill:currentColor; }
.kd-blog-hero__btn:hover { background-color:#0D1B4B; color:#fff; }

.kd-blog-hero__image-col {
    position:relative; overflow:hidden;
    background-color:#d8e4f5; min-height:60vh;
}
.kd-blog-hero__img {
    position:absolute; inset:0; width:100%; height:100%;
    object-fit:cover; object-position:center top; display:block;
}
@media(max-width:1024px) {
    .kd-blog-hero { grid-template-columns:1fr; }
    .kd-blog-hero__image-col { min-height:380px; order:-1; }
    .kd-blog-hero__content { padding:60px 40px; }
    .kd-blog-hero::before { width:100%; }
}
@media(max-width:767px) {
    .kd-blog-hero__content { padding:48px 24px; }
    .kd-blog-hero__image-col { min-height:260px; }
}


/* ══════════════════════════════════════════
   17. BLOG POSTS GRID — .kd-blog-posts
   ══════════════════════════════════════════ */
.elementor-widget-kd_blog_posts,
.elementor-widget-kd_blog_posts > .elementor-widget-container { width:100%; max-width:100%; }

.kd-blog-posts { background:#ffffff; padding:72px 0 80px; width:100%; }
.kd-blog-posts__inner { max-width:1280px; margin:0 auto; padding:0 40px; }

.kd-blog-posts__layout { display:grid; grid-template-columns:1fr; gap:48px; }
.kd-blog-posts__layout--with-sidebar { grid-template-columns:1fr 300px; gap:48px; }

/* Top bar */
.kd-blog-posts__top-bar {
    display:flex; align-items:center; justify-content:space-between;
    margin-bottom:32px; flex-wrap:wrap; gap:12px;
}
:where(.kd-blog-posts__heading) {
    font-size:clamp(1.4rem,2.5vw,2rem); font-weight:800; color:#0D1B4B;
    margin:0; letter-spacing:-0.01em;
}
.kd-blog-posts__view-all {
    display:inline-flex; align-items:center; gap:6px;
    font-size:14px; font-weight:600; color:#317EFE;
    text-decoration:none; transition:gap .2s;
}
.kd-blog-posts__view-all:hover { gap:10px; }

/* Grid */
.kd-blog-posts__grid {
    display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
}

/* Card */
.kd-blog-posts__card {
    background:#ffffff; border:1px solid rgba(13,27,75,0.08);
    border-radius:12px; overflow:hidden;
    display:flex; flex-direction:column;
    transition:transform .3s, box-shadow .3s;
}
.kd-blog-posts__card:hover { transform:translateY(-4px); box-shadow:0 8px 32px rgba(13,27,75,0.12); }

.kd-blog-posts__thumb-link { display:block; text-decoration:none; }
.kd-blog-posts__thumb-wrap { height:200px; overflow:hidden; }
.kd-blog-posts__thumb {
    width:100%; height:100%; object-fit:cover;
    display:block; transition:transform .4s;
}
.kd-blog-posts__card:hover .kd-blog-posts__thumb { transform:scale(1.04); }

.kd-blog-posts__card-body {
    padding:20px 24px 24px; display:flex; flex-direction:column; flex:1;
}
:where(.kd-blog-posts__cat) {
    display:inline-block; font-size:11px; font-weight:700;
    letter-spacing:0.08em; text-transform:uppercase;
    color:#317EFE; background:rgba(49,126,254,0.1);
    padding:3px 10px; border-radius:50px; margin-bottom:10px;
    text-decoration:none; width:fit-content;
}
.kd-blog-posts__cat:hover { background:rgba(49,126,254,0.18); }
:where(.kd-blog-posts__title) {
    font-size:16px; font-weight:700; color:#0D1B4B;
    line-height:1.4; margin:0 0 10px;
}
.kd-blog-posts__title a { color:inherit; text-decoration:none; }
.kd-blog-posts__title a:hover { color:#317EFE; }
:where(.kd-blog-posts__excerpt) {
    font-size:13px; line-height:1.65; color:#6B7280; margin:0 0 16px; flex:1;
}
.kd-blog-posts__footer {
    display:flex; align-items:center; justify-content:space-between;
    margin-top:auto; padding-top:12px;
    border-top:1px solid rgba(13,27,75,0.06);
}
:where(.kd-blog-posts__meta) {
    font-size:12px; color:#9CA3AF; display:flex; align-items:center; gap:6px;
}
.kd-blog-posts__meta-dot { opacity:0.5; }
.kd-blog-posts__arrow-btn {
    width:32px; height:32px; border-radius:50%;
    border:1.5px solid #317EFE; color:#317EFE;
    display:flex; align-items:center; justify-content:center;
    font-size:12px; text-decoration:none; flex-shrink:0;
    transition:background-color .2s, color .2s;
}
.kd-blog-posts__arrow-btn:hover { background-color:#317EFE; color:#fff; }

/* No posts */
.kd-blog-posts__no-posts {
    padding:60px 20px; text-align:center; color:#9CA3AF;
    border:2px dashed rgba(49,126,254,0.15); border-radius:12px;
}

/* ── Sidebar ── */
.kd-blog-posts__sidebar { display:flex; flex-direction:column; gap:24px; }

.kd-blog-posts__sidebar-card {
    background:#ffffff; border:1px solid rgba(13,27,75,0.08);
    border-radius:12px; padding:24px;
}
:where(.kd-blog-posts__sidebar-heading) {
    font-size:16px; font-weight:700; color:#0D1B4B; margin-bottom:16px; display:block;
}
.kd-blog-posts__cat-list { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:2px; }
.kd-blog-posts__cat-item { display:flex; align-items:center; justify-content:space-between; }
.kd-blog-posts__cat-link {
    font-size:14px; color:#374151; text-decoration:none;
    padding:8px 4px; flex:1; transition:color .2s;
}
.kd-blog-posts__cat-link:hover, .kd-blog-posts__cat-link--active { color:#317EFE; font-weight:600; }
:where(.kd-blog-posts__cat-count) {
    font-size:12px; font-weight:600; color:#317EFE;
    background:#EEF2FF; padding:2px 8px; border-radius:50px; flex-shrink:0;
}

/* Newsletter card */
.kd-blog-posts__newsletter-card {
    background:#0D1B4B; border-radius:12px; padding:28px 24px;
    display:flex; flex-direction:column; gap:12px;
}
.kd-blog-posts__newsletter-icon {
    width:44px; height:44px; border-radius:10px;
    background:rgba(255,255,255,0.1);
    display:flex; align-items:center; justify-content:center;
    color:#5BA4F5; font-size:20px;
}
.kd-blog-posts__newsletter-icon svg { width:20px; height:20px; fill:#5BA4F5; }
:where(.kd-blog-posts__newsletter-heading) {
    font-size:18px; font-weight:700; color:#ffffff;
}
:where(.kd-blog-posts__newsletter-desc) {
    font-size:13px; line-height:1.65; color:rgba(255,255,255,0.65); margin:0;
}
.kd-blog-posts__newsletter-card input[type="email"] {
    width:100%; padding:11px 14px;
    background:rgba(255,255,255,0.08);
    border:1px solid rgba(255,255,255,0.15);
    border-radius:8px; color:#ffffff; font-size:13px; font-family:inherit;
    outline:none;
}
.kd-blog-posts__newsletter-card input[type="email"]::placeholder { color:rgba(255,255,255,0.35); }
.kd-blog-posts__newsletter-card input[type="email"]:focus { border-color:#317EFE; }
.kd-blog-posts__newsletter-card input[type="submit"],
.kd-blog-posts__newsletter-card button[type="submit"] {
    width:100%; padding:12px; border:none; border-radius:8px;
    background:#317EFE; color:#ffffff; font-weight:700; font-size:14px;
    cursor:pointer; font-family:inherit; transition:background-color .2s;
    display:flex; align-items:center; justify-content:center; gap:8px;
}
.kd-blog-posts__newsletter-card input[type="submit"]:hover,
.kd-blog-posts__newsletter-card button[type="submit"]:hover { background:#0D1B4B; }
:where(.kd-blog-posts__newsletter-privacy) {
    font-size:11px; color:rgba(255,255,255,0.35); margin:0; text-align:center;
}

/* ── Pagination ── */
.kd-blog-posts__pagination {
    display:flex; align-items:center; gap:6px;
    justify-content:flex-start; margin-top:48px; flex-wrap:wrap;
}
.kd-blog-posts__page-btn {
    min-width:36px; height:36px; border-radius:8px;
    border:1px solid rgba(13,27,75,0.15);
    background:#ffffff; color:#0D1B4B;
    display:inline-flex; align-items:center; justify-content:center;
    font-size:14px; font-weight:500; text-decoration:none;
    padding:0 10px; cursor:pointer; transition:all .2s;
}
.kd-blog-posts__page-btn:hover { border-color:#317EFE; color:#317EFE; }
.kd-blog-posts__page-btn--active {
    background:#317EFE; border-color:#317EFE; color:#ffffff; font-weight:700;
}
.kd-blog-posts__page-dots { color:#9CA3AF; font-size:14px; padding:0 4px; }

/* Responsive */
@media(max-width:1024px) {
    .kd-blog-posts__layout--with-sidebar { grid-template-columns:1fr; }
    .kd-blog-posts__sidebar { flex-direction:row; flex-wrap:wrap; }
    .kd-blog-posts__sidebar-card, .kd-blog-posts__newsletter-card { flex:1; min-width:260px; }
}
@media(max-width:767px) {
    .kd-blog-posts__inner { padding:0 20px; }
    .kd-blog-posts__grid { grid-template-columns:1fr; }
    .kd-blog-posts__sidebar { flex-direction:column; }
}


/* ══════════════════════════════════════════
   18. CTA BANNER CENTERED — .kd-cta-banner
   ══════════════════════════════════════════ */
.elementor-widget-kd_cta_banner,
.elementor-widget-kd_cta_banner > .elementor-widget-container { width:100%; max-width:100%; }

.kd-cta-banner {
    background-color:#0D1B4B; padding:80px 0;
    width:100%; position:relative; overflow:hidden; text-align:center;
}
.kd-cta-banner--pattern::before {
    content:''; position:absolute; inset:0;
    background-image: radial-gradient(rgba(255,255,255,0.04) 1px, transparent 1px);
    background-size:24px 24px; pointer-events:none;
}
.kd-cta-banner__inner {
    max-width:680px; margin:0 auto; padding:0 40px;
    display:flex; flex-direction:column; align-items:center; gap:20px;
    position:relative; z-index:2;
}
.kd-cta-banner__icon-wrap {
    width:72px; height:72px; border-radius:50%;
    background:rgba(255,255,255,0.1);
    display:flex; align-items:center; justify-content:center;
    font-size:36px; color:#5BA4F5; flex-shrink:0;
}
.kd-cta-banner__icon-wrap svg { width:36px; height:36px; fill:#5BA4F5; }
:where(.kd-cta-banner__heading) {
    font-size:clamp(1.6rem,3vw,2.4rem); font-weight:800;
    color:#ffffff; line-height:1.2; letter-spacing:-0.02em; margin:0;
}
:where(.kd-cta-banner__desc) {
    font-size:15px; line-height:1.75; color:rgba(255,255,255,0.65); margin:0;
}
.kd-cta-banner__btn {
    display:inline-flex; align-items:center; gap:10px;
    background-color:#317EFE; color:#ffffff;
    border:2px solid #317EFE;
    padding:16px 40px; border-radius:50px;
    font-size:15px; font-weight:700; text-decoration:none;
    transition:all .3s; margin-top:8px;
}
.kd-cta-banner__btn svg { width:14px; height:14px; fill:currentColor; }
.kd-cta-banner__btn:hover { background-color:#ffffff; border-color:#ffffff; color:#0D1B4B; }
@media(max-width:767px) { .kd-cta-banner__inner { padding:0 24px; } }


/* ══════════════════════════════════════════
   19. CONTACT HERO — .kd-contact-hero
   ══════════════════════════════════════════ */
.elementor-widget-kd_contact_hero,
.elementor-widget-kd_contact_hero > .elementor-widget-container { width:100%; max-width:100%; }

.kd-contact-hero {
    display:grid; grid-template-columns:50% 1fr;
    min-height:65vh; background:#F8FAFF;
    overflow:hidden; width:100%; position:relative;
}
.kd-contact-hero::before {
    content:''; position:absolute; top:0; left:0; bottom:0; width:50%;
    background-image: radial-gradient(rgba(49,126,254,0.06) 1.5px,transparent 1.5px);
    background-size:22px 22px; pointer-events:none;
}
.kd-contact-hero__content {
    display:flex; flex-direction:column; justify-content:center;
    padding:72px 60px 72px 80px; position:relative; z-index:2;
}
:where(.kd-contact-hero__eyebrow) {
    font-size:12px; font-weight:700; letter-spacing:0.15em;
    text-transform:uppercase; color:#317EFE;
    display:block; margin-bottom:14px;
}
:where(.kd-contact-hero__heading) {
    font-size:clamp(2rem,4vw,3.2rem); font-weight:800;
    line-height:1.15; color:#0D1B4B; letter-spacing:-0.02em; margin:0;
}
:where(.kd-contact-hero__heading-italic) {
    font-style:italic; color:#317EFE; display:block;
}
.kd-contact-hero__divider {
    width:40px; height:3px; background:#317EFE;
    border-radius:2px; margin:20px 0;
}
:where(.kd-contact-hero__desc) {
    font-size:15px; line-height:1.75; color:#374151;
    margin:0 0 32px; max-width:420px;
}
.kd-contact-hero__info-list { display:flex; flex-direction:column; gap:20px; }
.kd-contact-hero__info-item { display:flex; align-items:flex-start; gap:16px; }
.kd-contact-hero__info-icon {
    width:44px; height:44px; border-radius:10px; flex-shrink:0;
    background:rgba(49,126,254,0.1);
    display:flex; align-items:center; justify-content:center;
    font-size:18px; color:#317EFE;
}
.kd-contact-hero__info-icon svg { width:18px; height:18px; fill:#317EFE; }
.kd-contact-hero__info-text { display:flex; flex-direction:column; gap:2px; }
:where(.kd-contact-hero__info-label) {
    font-size:14px; font-weight:700; color:#0D1B4B; display:block;
}
:where(.kd-contact-hero__info-value) {
    font-size:14px; color:#374151; text-decoration:none;
    display:block; transition:color .2s;
}
a.kd-contact-hero__info-value:hover { color:#317EFE; }

.kd-contact-hero__image-col {
    position:relative; overflow:hidden;
    background:#d8e4f5; min-height:65vh;
}
.kd-contact-hero__img {
    position:absolute; inset:0; width:100%; height:100%;
    object-fit:cover; object-position:center top; display:block;
}
@media(max-width:1024px) {
    .kd-contact-hero { grid-template-columns:1fr; }
    .kd-contact-hero__image-col { min-height:380px; order:-1; }
    .kd-contact-hero__content { padding:60px 40px; }
    .kd-contact-hero::before { width:100%; }
}
@media(max-width:767px) {
    .kd-contact-hero__content { padding:48px 24px; }
    .kd-contact-hero__image-col { min-height:260px; }
}


/* ══════════════════════════════════════════
   20. CONTACT SPLIT — .kd-contact-split
   ══════════════════════════════════════════ */
.elementor-widget-kd_contact_split,
.elementor-widget-kd_contact_split > .elementor-widget-container { width:100%; max-width:100%; }

.kd-contact-split { background:#F8FAFF; padding:80px 0; width:100%; }
.kd-contact-split__inner {
    max-width:1200px; margin:0 auto; padding:0 40px;
    display:grid; grid-template-columns:55% 1fr; gap:56px; align-items:start;
}

/* Form card */
.kd-contact-split__form-card {
    background:#ffffff;
    border:1px solid rgba(13,27,75,0.08);
    border-radius:16px; padding:40px;
    box-shadow: 0 4px 32px rgba(13,27,75,0.07);
}
:where(.kd-contact-split__form-heading) {
    font-size:clamp(1.4rem,2vw,1.8rem); font-weight:800; color:#0D1B4B; margin:0;
}
.kd-contact-split__form-divider {
    width:40px; height:3px; background:#317EFE;
    border-radius:2px; margin:16px 0;
}
:where(.kd-contact-split__form-subtitle) {
    font-size:14px; color:#6B7280; margin:0 0 24px; line-height:1.65;
}
.kd-contact-split__form-body { margin-bottom:20px; }

/* form plugin overrides */
.kd-contact-split__form-card .wpcf7-form,
.kd-contact-split__form-card form {
    display:flex; flex-direction:column; gap:14px;
}
/* Side-by-side name row — works with CF7 and most form plugins */
.kd-contact-split__form-card .kd-row-2col {
    display:grid; grid-template-columns:1fr 1fr; gap:14px;
}
.kd-contact-split__form-card .wpcf7-form-control-wrap,
.kd-contact-split__form-card input:not([type=submit]):not([type=checkbox]):not([type=radio]),
.kd-contact-split__form-card select,
.kd-contact-split__form-card textarea {
    width:100%; padding:13px 16px;
    border:1px solid rgba(13,27,75,0.12); border-radius:8px;
    font-size:14px; color:#374151; font-family:inherit;
    background:#ffffff; outline:none; transition:border-color .2s;
    display:block; box-sizing:border-box;
}
.kd-contact-split__form-card textarea { min-height:120px; resize:vertical; }
.kd-contact-split__form-card input:focus,
.kd-contact-split__form-card select:focus,
.kd-contact-split__form-card textarea:focus { border-color:#317EFE; }
.kd-contact-split__form-card input[type=submit],
.kd-contact-split__form-card button[type=submit] {
    width:100%; padding:15px; background:#317EFE; color:#ffffff;
    border:none; border-radius:50px; font-size:14px; font-weight:700;
    letter-spacing:0.06em; text-transform:uppercase;
    cursor:pointer; font-family:inherit; transition:background-color .2s;
    display:flex; align-items:center; justify-content:center; gap:10px;
    margin-top:4px;
}
.kd-contact-split__form-card input[type=submit]:hover,
.kd-contact-split__form-card button[type=submit]:hover { background:#0D1B4B; }

/* Placeholder */
.kd-contact-split__form-placeholder {
    text-align:center; padding:40px 20px; color:#9CA3AF;
    border:2px dashed rgba(49,126,254,0.15); border-radius:8px;
}
.kd-contact-split__form-placeholder i { font-size:36px; margin-bottom:10px; display:block; }
.kd-contact-split__form-placeholder p { font-size:14px; }

/* Privacy */
.kd-contact-split__privacy {
    display:flex; align-items:center; gap:6px;
    font-size:12px; color:#9CA3AF; justify-content:center;
}
.kd-contact-split__privacy i { font-size:12px; }
.kd-contact-split__privacy svg { width:12px; height:12px; }

/* Help panel */
.kd-contact-split__help { padding: 12px 0 0; }
:where(.kd-contact-split__help-heading) {
    font-size:clamp(1.4rem,2vw,1.8rem); font-weight:800; color:#0D1B4B; margin:0;
}
.kd-contact-split__help-divider {
    width:40px; height:3px; background:#317EFE;
    border-radius:2px; margin:16px 0;
}
:where(.kd-contact-split__help-desc) {
    font-size:14px; line-height:1.7; color:#374151; margin:0 0 28px;
}
.kd-contact-split__help-items { display:flex; flex-direction:column; gap:24px; }
.kd-contact-split__help-item { display:flex; gap:16px; align-items:flex-start; }
.kd-contact-split__help-icon {
    width:52px; height:52px; border-radius:12px; flex-shrink:0;
    background:rgba(49,126,254,0.08);
    display:flex; align-items:center; justify-content:center;
    font-size:22px; color:#317EFE;
}
.kd-contact-split__help-icon svg { width:22px; height:22px; fill:#317EFE; }
.kd-contact-split__help-item-text { display:flex; flex-direction:column; gap:4px; }
:where(.kd-contact-split__help-item-title) {
    font-size:15px; font-weight:700; color:#0D1B4B; display:block;
}
:where(.kd-contact-split__help-item-desc) {
    font-size:14px; line-height:1.6; color:#6B7280; margin:0;
}

@media(max-width:1024px) {
    .kd-contact-split__inner { grid-template-columns:1fr; }
}
@media(max-width:767px) {
    .kd-contact-split__inner { padding:0 20px; }
    .kd-contact-split__form-card { padding:28px 20px; }
}


/* ══════════════════════════════════════════
   21. CONTACT INFO BANNER — .kd-cib
   ══════════════════════════════════════════ */
.elementor-widget-kd_contact_info_banner,
.elementor-widget-kd_contact_info_banner > .elementor-widget-container { width:100%; max-width:100%; }

.kd-cib { background:#F8FAFF; padding:0 0 40px; width:100%; }
.kd-cib__inner { max-width:1100px; margin:0 auto; padding:0 40px; }
.kd-cib__card {
    background:#0D1B4B; border-radius:16px; padding:56px;
    display:grid; grid-template-columns:1fr auto 1fr; gap:48px; align-items:center;
    position:relative; overflow:hidden;
}
.kd-cib__card--pattern::before {
    content:''; position:absolute; inset:0;
    background-image: radial-gradient(rgba(255,255,255,0.04) 1px,transparent 1px);
    background-size:24px 24px; pointer-events:none;
}
.kd-cib__left { position:relative; z-index:2; }
:where(.kd-cib__eyebrow) {
    font-size:11px; font-weight:700; letter-spacing:0.18em;
    text-transform:uppercase; color:#5BA4F5;
    display:block; margin-bottom:10px;
}
:where(.kd-cib__heading) {
    font-size:clamp(1.4rem,2.5vw,2rem); font-weight:800;
    color:#ffffff; line-height:1.2; letter-spacing:-0.02em; margin:0;
}
.kd-cib__divider {
    width:40px; height:3px; background:#317EFE;
    border-radius:2px; margin:18px 0;
}
:where(.kd-cib__para) {
    font-size:14px; line-height:1.75; color:rgba(255,255,255,0.65); margin:0;
}

/* Center */
.kd-cib__center {
    display:flex; flex-direction:column; align-items:center; gap:16px;
    position:relative; z-index:2;
}
.kd-cib__sep { width:1px; height:60px; background:rgba(255,255,255,0.1); }
.kd-cib__icon-wrap {
    width:72px; height:72px; border-radius:50%;
    background:rgba(255,255,255,0.1);
    display:flex; align-items:center; justify-content:center;
    font-size:30px; color:#5BA4F5; flex-shrink:0;
}
.kd-cib__icon-wrap svg { width:30px; height:30px; fill:#5BA4F5; }

/* Right */
.kd-cib__right { position:relative; z-index:2; }
:where(.kd-cib__resp-label) {
    font-size:12px; font-weight:600; letter-spacing:0.08em;
    text-transform:uppercase; color:rgba(255,255,255,0.55);
    display:block; margin-bottom:8px;
}
:where(.kd-cib__resp-value) {
    font-size:clamp(1.6rem,3vw,2.4rem); font-weight:800;
    color:#ffffff; line-height:1; display:block; margin-bottom:12px;
}
:where(.kd-cib__resp-desc) {
    font-size:14px; line-height:1.65; color:rgba(255,255,255,0.55); margin:0;
}

@media(max-width:1024px) {
    .kd-cib__card { grid-template-columns:1fr; gap:32px; }
    .kd-cib__center { flex-direction:row; }
    .kd-cib__sep { width:40px; height:1px; }
}
@media(max-width:767px) {
    .kd-cib__inner { padding:0 20px; }
    .kd-cib__card { padding:36px 24px; }
}


/* ══════════════════════════════════════════
   22. CONTACT FOOTER STRIP — .kd-cfs
   ══════════════════════════════════════════ */
.elementor-widget-kd_contact_footer_strip,
.elementor-widget-kd_contact_footer_strip > .elementor-widget-container { width:100%; max-width:100%; }

.kd-cfs {
    background:#ffffff; border-top:1px solid rgba(13,27,75,0.08);
    padding:28px 0; width:100%;
}
.kd-cfs__inner {
    max-width:1200px; margin:0 auto; padding:0 40px;
    display:flex; align-items:center; justify-content:space-between;
    gap:32px; flex-wrap:wrap;
}
/* Vertical separator */
.kd-cfs__inner::after {
    display:none; /* separator is controlled via PHP element */
}
.kd-cfs__left { display:flex; align-items:center; gap:16px; }
.kd-cfs__icon-wrap {
    width:48px; height:48px; border-radius:50%; flex-shrink:0;
    background:rgba(49,126,254,0.08);
    display:flex; align-items:center; justify-content:center;
    font-size:18px; color:#317EFE;
}
.kd-cfs__icon-wrap svg { width:18px; height:18px; fill:#317EFE; }
:where(.kd-cfs__left-text) { font-size:15px; color:#374151; margin:0; line-height:1.5; }
:where(.kd-cfs__tagline) {
    font-family: 'Dancing Script', 'Pinyon Script', 'Great Vibes', cursive;
    font-style:normal; font-weight:600;
    font-size:clamp(1.2rem,2vw,1.7rem);
    color:#317EFE; margin:0; white-space:nowrap;
    letter-spacing:0.01em;
}
.kd-cfs__separator {
    width:1px; height:40px;
    background:rgba(13,27,75,0.12);
    flex-shrink:0; align-self:center;
}
@media(max-width:767px) {
    .kd-cfs__inner { padding:0 20px; flex-direction:column; align-items:flex-start; gap:16px; }
    :where(.kd-cfs__tagline) { white-space:normal; }
    .kd-cfs__separator { display:none; }
}