/* =========================================================
   WATCHKEEPER OPERATIONS — REUSABLE PUBLIC-SITE COMPONENTS
   Clean class-based Elementor system
   ========================================================= */

:root {
    --wk-blue: #1A4D8F;
    --wk-blue-dark: #05264D;
    --wk-blue-light: #A3D2F2;
    --wk-orange: #C75B12;
    --wk-orange-hover: #A9470B;
    --wk-button-secondary: #A4A4A4;
    --wk-button-secondary-hover: #7F7F7F;
    --wk-text: #404040;
    --wk-heading: #111111;
    --wk-border: #D7D7D7;
    --wk-surface: #FFFFFF;
    --wk-muted: #F5F6F8;

    --wk-content-width: 1120px;
    --wk-section-space: 56px;
    --wk-inline-space: 24px;
    --wk-heading-gap: 22px;
    --wk-copy-gap: 28px;

    --wk-section-heading-size: 40px;
    --wk-section-heading-line-height: 1.08;
    --wk-section-heading-weight: 600;

    --wk-divider-space-top: 10px;
    --wk-divider-space-bottom: 16px;
    --wk-divider-width: 72px;

    --wk-callout-width: 920px;
    --wk-callout-padding-block: 18px;
    --wk-callout-padding-inline: 20px;
    --wk-callout-gap: 10px;
    --wk-callout-top-gap: 20px;

    --wk-card-shadow: 0 12px 26px rgba(0, 0, 0, 0.11);
    --wk-panel-shadow: 0 16px 36px rgba(0, 0, 0, 0.28);
}


/* =========================================================
   1. SHARED SECTION RHYTHM
   ========================================================= */

.wk-white-section-container,
.wk-blue-section-container,
.wk-50-50-section {
    height: auto !important;
    min-height: 0 !important;

    margin: 0 !important;

    box-sizing: border-box !important;
}

.wk-white-section-container,
.wk-50-50-section {
    padding-top: var(--wk-section-space) !important;
    padding-bottom: var(--wk-section-space) !important;
}

.wk-blue-section-container {
    position: relative !important;
    isolation: isolate !important;

    padding-top: var(--wk-section-space) !important;
    padding-bottom: var(--wk-section-space) !important;

    overflow: hidden !important;
}

.wk-white-section-container > .e-con-inner,
.wk-blue-section-container > .e-con-inner,
.wk-50-50-section > .e-con-inner {
    width: min(100%, var(--wk-content-width)) !important;
    max-width: var(--wk-content-width) !important;
    min-width: 0 !important;

    height: auto !important;
    min-height: 0 !important;

    margin: 0 auto !important;
    padding: 0 var(--wk-inline-space) !important;

    gap: 0 !important;
    row-gap: 0 !important;
    column-gap: 0 !important;

    box-sizing: border-box !important;
}

/*
 * A full-width blue section has no .e-con-inner. Give its direct
 * heading and content the same horizontal boundary as boxed sections.
 */
.wk-blue-section-container > .wk-blue-section-heading,
.wk-blue-section-container > .wk-glass-panel {
    width: min(
        calc(100% - (var(--wk-inline-space) * 2)),
        var(--wk-content-width)
    ) !important;
}


/* =========================================================
   2. STRAIGHT SECTION EDGES
   Clean editorial bands replace Elementor's angled masks.
   ========================================================= */

/*
 * Hide Elementor shape dividers on all reusable white and blue sections.
 * The alternating backgrounds now create the section boundaries.
 */
.wk-white-section-container > .elementor-shape,
.wk-white-section-container > .e-con-inner > .elementor-shape,
.wk-blue-section-container > .elementor-shape,
.wk-blue-section-container > .e-con-inner > .elementor-shape {
    display: none !important;
}

/*
 * Blue sections use straight light-blue rules and a restrained inset edge.
 */
.wk-blue-section-container {
    border-top: 1px solid rgba(163, 210, 242, 0.72) !important;
    border-bottom: 1px solid rgba(163, 210, 242, 0.72) !important;

    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.08),
        inset 0 -1px 0 rgba(5, 38, 77, 0.28) !important;
}

/*
 * Keep motion backgrounds behind the content.
 */
.wk-blue-section-container > .elementor-motion-effects-container {
    position: absolute !important;
    inset: 0 !important;

    z-index: 0 !important;
}

/*
 * Keep boxed and full-width section content above the background.
 */
.wk-blue-section-container > .e-con-inner,
.wk-blue-section-container > .elementor-widget,
.wk-blue-section-container > .e-con {
    position: relative !important;
    z-index: 2 !important;
}

/*
 * A short light-blue accent above each blue-section heading adds
 * visual character without changing the section boundary.
 */
.wk-blue-section-heading::before,
.wk-blue-section-container > .elementor-widget-heading:first-of-type::before,
.wk-blue-section-container > .e-con-inner
> .elementor-widget-heading:first-of-type::before {
    content: "" !important;

    display: block !important;
    width: 52px !important;
    height: 3px !important;

    margin: 0 auto 14px !important;

    background: var(--wk-blue-light) !important;
}


/* Mobile: keep the heading accent aligned with left-aligned headings. */
@media screen and (max-width: 767px) {

    .wk-blue-section-heading::before,
    .wk-blue-section-container > .elementor-widget-heading:first-of-type::before,
    .wk-blue-section-container > .e-con-inner
    > .elementor-widget-heading:first-of-type::before {
        width: 44px !important;

        margin-left: 0 !important;
        margin-right: auto !important;
        margin-bottom: 12px !important;
    }
}


/* =========================================================
   3. SECTION HEADINGS AND INTRO COPY
   ========================================================= */

/*
 * Every reusable section begins with the same heading block.
 * The selectors cover:
 * - explicitly classed headings;
 * - the first heading in boxed white/blue sections;
 * - the first heading in full-width white/blue sections;
 * - a section heading placed inside a glass panel.
 */
.wk-white-section-heading,
.wk-blue-section-heading,
.wk-white-section-container > .elementor-widget-heading:first-of-type,
.wk-blue-section-container > .elementor-widget-heading:first-of-type,
.wk-white-section-container > .e-con-inner
> .elementor-widget-heading:first-of-type,
.wk-blue-section-container > .e-con-inner
> .elementor-widget-heading:first-of-type {
    width: min(100%, 820px) !important;

    margin-top: 0 !important;
    margin-right: auto !important;
    margin-bottom: var(--wk-heading-gap) !important;
    margin-left: auto !important;

    padding: 0 !important;
}

.wk-white-section-heading .elementor-widget-container,
.wk-blue-section-heading .elementor-widget-container,
.wk-white-section-container > .elementor-widget-heading:first-of-type
.elementor-widget-container,
.wk-blue-section-container > .elementor-widget-heading:first-of-type
.elementor-widget-container,
.wk-white-section-container > .e-con-inner
> .elementor-widget-heading:first-of-type .elementor-widget-container,
.wk-blue-section-container > .e-con-inner
> .elementor-widget-heading:first-of-type .elementor-widget-container {
    margin: 0 !important;
    padding: 0 !important;
}

.wk-white-section-heading .elementor-heading-title,
.wk-blue-section-heading .elementor-heading-title,
.wk-white-section-container > .elementor-widget-heading:first-of-type
.elementor-heading-title,
.wk-blue-section-container > .elementor-widget-heading:first-of-type
.elementor-heading-title,
.wk-white-section-container > .e-con-inner
> .elementor-widget-heading:first-of-type .elementor-heading-title,
.wk-blue-section-container > .e-con-inner
> .elementor-widget-heading:first-of-type .elementor-heading-title {
    margin: 0 !important;

    font-family: "Montserrat", Sans-serif !important;
    font-size: var(--wk-section-heading-size) !important;
    font-weight: var(--wk-section-heading-weight) !important;
    line-height: var(--wk-section-heading-line-height) !important;
    letter-spacing: 0 !important;
    text-align: center !important;
    text-transform: uppercase !important;
}

.wk-white-section-heading .elementor-heading-title,
.wk-white-section-container > .elementor-widget-heading:first-of-type
.elementor-heading-title,
.wk-white-section-container > .e-con-inner
> .elementor-widget-heading:first-of-type .elementor-heading-title {
    color: var(--wk-blue) !important;
}

.wk-blue-section-heading .elementor-heading-title,
.wk-blue-section-container > .elementor-widget-heading:first-of-type
.elementor-heading-title,
.wk-blue-section-container > .e-con-inner
> .elementor-widget-heading:first-of-type .elementor-heading-title {
    color: #FFFFFF !important;
}

.wk-white-section-copy,
.wk-white-section-container > .e-con-inner
> .elementor-widget-heading:first-child
+ .elementor-widget-text-editor {
    width: min(100%, 800px) !important;

    margin-top: 0 !important;
    margin-right: auto !important;
    margin-bottom: var(--wk-copy-gap) !important;
    margin-left: auto !important;
}

.wk-white-section-copy p,
.wk-white-section-container > .e-con-inner
> .elementor-widget-heading:first-child
+ .elementor-widget-text-editor p {
    margin: 0 0 10px !important;

    color: var(--wk-text) !important;

    font-family: "Montserrat", Sans-serif !important;
    font-size: 15px !important;
    line-height: 1.65 !important;
    text-align: center !important;
}

.wk-white-section-copy p:last-child,
.wk-white-section-container > .e-con-inner
> .elementor-widget-heading:first-child
+ .elementor-widget-text-editor p:last-child {
    margin-bottom: 0 !important;
}


/* =========================================================
   4. HERO
   ========================================================= */

.wk-hero-container {
    height: auto !important;
    min-height: 0 !important;

    padding: 22px 24px 28px !important;
}

.wk-hero-container > .e-con-inner {
    display: grid !important;
    grid-template-columns: minmax(0, 1.18fr) minmax(360px, 0.82fr) !important;
    align-items: center !important;
    gap: 42px !important;

    width: min(100%, 1180px) !important;
    max-width: 1180px !important;
    min-width: 0 !important;

    height: auto !important;
    min-height: 0 !important;

    margin: 0 auto !important;
    padding: 0 !important;
}

.wk-hero-copy-container,
.wk-hero-image-container,
.wk-hero-image-top-layer {
    --width: 100% !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
}

.wk-hero-subtitle {
    margin-bottom: 10px !important;
}

.wk-hero-subtitle .elementor-heading-title {
    color: var(--wk-heading) !important;

    font-family: "Montserrat", Sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
    letter-spacing: 0.5px !important;
    text-transform: uppercase !important;
}

.wk-hero-title .elementor-heading-title {
    display: block !important;

    width: 100% !important;
    max-width: 680px !important;

    color: var(--wk-blue) !important;

    font-family: "Montserrat", Sans-serif !important;
    font-size: clamp(46px, 4.8vw, 66px) !important;
    font-weight: 700 !important;
    line-height: 1.02 !important;
    letter-spacing: -1.1px !important;
    text-transform: uppercase !important;

    white-space: normal !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
}

.wk-hero-copy {
    width: 100% !important;
    max-width: 660px !important;

    margin-top: 18px !important;
}

.wk-hero-copy p {
    margin: 0 0 14px !important;

    color: var(--wk-text) !important;

    font-family: "Montserrat", Sans-serif !important;
    font-size: 15px !important;
    line-height: 1.65 !important;
}

.wk-hero-copy p:last-child {
    margin-bottom: 0 !important;
}

.wk-hero-copy-container > .wk-styled-button {
    margin-top: 24px !important;
}

.wk-hero-image-top-layer img {
    display: block !important;

    width: auto !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: min(500px, calc(100svh - 190px)) !important;

    margin: 0 auto !important;

    object-fit: contain !important;
}


/* =========================================================
   5. SHARED BUTTON
   ========================================================= */

.wk-styled-button .elementor-button,
.wk-styled-button-2 .elementor-button,
.wk-call-to-action-card .elementor-button {
    min-height: 44px !important;
    padding: 13px 24px !important;

    color: #FFFFFF !important;
    fill: #FFFFFF !important;

    border-radius: 0 !important;
    box-shadow: none !important;

    font-family: "Oswald", Sans-serif !important;
    font-size: 15px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    letter-spacing: 1px !important;
    text-transform: uppercase !important;
}

/* Primary action */
.wk-styled-button .elementor-button,
.wk-call-to-action-card .elementor-button {
    background: var(--wk-orange) !important;
    border: 1px solid var(--wk-orange) !important;
}

.wk-styled-button .elementor-button:hover,
.wk-styled-button .elementor-button:focus,
.wk-call-to-action-card .elementor-button:hover,
.wk-call-to-action-card .elementor-button:focus {
    background: var(--wk-orange-hover) !important;
    border-color: var(--wk-orange-hover) !important;
    color: #FFFFFF !important;
    fill: #FFFFFF !important;
}

/* Secondary action */
.wk-styled-button-2 .elementor-button {
    background: var(--wk-button-secondary) !important;
    border: 1px solid var(--wk-button-secondary) !important;
}

.wk-styled-button-2 .elementor-button:hover,
.wk-styled-button-2 .elementor-button:focus {
    background: var(--wk-button-secondary-hover) !important;
    border-color: var(--wk-button-secondary-hover) !important;
    color: #FFFFFF !important;
    fill: #FFFFFF !important;
}


/* =========================================================
   6. GLASS PANEL
   ========================================================= */

.wk-glass-panel {
    --width: 100% !important;
    --content-width: 100% !important;

    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 14px !important;

    width: min(100%, 820px) !important;
    max-width: 820px !important;
    min-width: 0 !important;

    margin: 0 auto !important;
    padding: 28px 30px !important;

    background:
        linear-gradient(
            180deg,
            rgba(7, 38, 77, 0.82) 0%,
            rgba(5, 31, 64, 0.92) 100%
        ) !important;

    border: 1px solid rgba(255, 255, 255, 0.34) !important;
    border-left: 4px solid var(--wk-blue-light) !important;
    border-radius: 10px !important;

    box-shadow:
        var(--wk-panel-shadow),
        inset 0 1px 0 rgba(255, 255, 255, 0.08) !important;

    backdrop-filter: blur(14px) saturate(115%);
    -webkit-backdrop-filter: blur(14px) saturate(115%);

    box-sizing: border-box !important;
}

/*
 * Normalise boxed and full-width Elementor containers.
 * The panel owns the padding; its optional boxed wrapper adds none.
 */
.wk-glass-panel > .e-con-inner {
    display: contents !important;
}

.wk-glass-panel > .elementor-widget,
.wk-glass-panel > .e-con-inner > .elementor-widget,
.wk-glass-panel > .e-con,
.wk-glass-panel > .e-con-inner > .e-con {
    --width: 100% !important;

    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.wk-glass-panel .elementor-widget-container {
    width: 100% !important;
    max-width: none !important;

    margin: 0 !important;
    padding: 0 !important;
}

.wk-glass-panel p,
.wk-glass-panel .elementor-icon-list-text {
    margin: 0 !important;

    color: #FFFFFF !important;

    font-family: "Montserrat", Sans-serif !important;
    font-size: 15px !important;
    line-height: 1.65 !important;
    text-align: left !important;
}

/*
 * Headings inside glass panels are intentionally smaller than the
 * main section heading. The panel is a supporting component, not a
 * new top-level section.
 */
.wk-glass-panel .elementor-widget-heading {
    margin: 0 !important;
}

.wk-glass-panel .elementor-widget-heading .elementor-widget-container {
    margin: 0 !important;
    padding: 0 !important;
}

.wk-glass-panel .elementor-widget-heading .elementor-heading-title {
    margin: 0 !important;

    color: #FFFFFF !important;

    font-family: "Montserrat", Sans-serif !important;
    font-size: 30px !important;
    font-weight: 600 !important;
    line-height: 1.15 !important;
    letter-spacing: 0 !important;
    text-align: center !important;
    text-transform: uppercase !important;
}

.wk-glass-panel .elementor-icon-list-items {
    width: 100% !important;

    margin: 0 !important;
    padding-left: 14px !important;
}

.wk-glass-panel .elementor-icon-list-item {
    margin: 0 0 9px !important;
    padding-left: 2px !important;
}

.wk-glass-panel .elementor-icon-list-item:last-child {
    margin-bottom: 0 !important;
}

.wk-glass-panel .elementor-icon-list-icon {
    margin-right: 8px !important;
}

.wk-glass-panel .elementor-icon-list-icon svg {
    width: 7px !important;
    height: 7px !important;

    fill: var(--wk-blue-light) !important;
}


/* =========================================================
   7. SMALL HORIZONTAL CARD GRID
   ========================================================= */

.wk-card-container {
    --width: 100% !important;

    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 22px !important;
    align-items: stretch !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 0 !important;
}

.wk-card-container > .e-con {
    --width: 100% !important;

    display: grid !important;

    /*
     * The image column no longer grows indefinitely with the card.
     * It scales between 220px and 300px, leaving the remaining width
     * available to the text column.
     */
    grid-template-columns:
        clamp(220px, 40%, 300px)
        minmax(0, 1fr) !important;

    grid-template-rows: auto auto auto 1fr !important;
    column-gap: 22px !important;
    row-gap: 0 !important;
    align-items: start !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 360px !important;

    margin: 0 !important;
    padding: 14px 22px 14px 14px !important;

    background: var(--wk-surface) !important;

    border: 1px solid var(--wk-border) !important;
    border-top: 4px solid var(--wk-blue) !important;
    border-radius: 10px !important;

    box-shadow: var(--wk-card-shadow) !important;

    overflow: hidden !important;
    box-sizing: border-box !important;
}

.wk-card-container > .e-con > .elementor-widget-image:first-child {
    grid-column: 1 !important;
    grid-row: 1 / 5 !important;

    align-self: stretch !important;

    width: 100% !important;
    height: 100% !important;
    min-height: 332px !important;

    margin: 0 !important;

    overflow: hidden !important;
}

.wk-card-container > .e-con > .elementor-widget-image:first-child
.elementor-widget-container {
    width: 100% !important;
    height: 100% !important;

    margin: 0 !important;
    padding: 0 !important;
}

.wk-card-container > .e-con > .elementor-widget-image:first-child img {
    display: block !important;

    width: 100% !important;
    height: 100% !important;
    min-height: 332px !important;

    object-fit: cover !important;
    object-position: center center !important;

    border-radius: 6px !important;
}

.wk-card-container > .e-con > :nth-child(n+2):nth-child(-n+5) {
    grid-column: 2 !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    margin-left: 0 !important;
    margin-right: 0 !important;
}

.wk-card-container > .e-con > :nth-child(2) {
    grid-row: 1 !important;
    margin-top: 10px !important;
}

.wk-card-container > .e-con > :nth-child(3) {
    grid-row: 2 !important;
    margin-top: 6px !important;
}

.wk-card-container > .e-con > :nth-child(4) {
    grid-row: 3 !important;
    margin-top: 10px !important;
    margin-bottom: 12px !important;
}

.wk-card-container > .e-con > :nth-child(5) {
    grid-row: 4 !important;
}

.wk-card-container > .e-con > :nth-child(2) .elementor-heading-title {
    color: var(--wk-blue) !important;

    font-family: "Montserrat", Sans-serif !important;
    font-size: clamp(17px, 1.2vw, 20px) !important;
    font-weight: 600 !important;
    line-height: 1.22 !important;
    text-align: left !important;
    text-wrap: balance !important;

    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
}

.wk-card-container > .e-con > :nth-child(3) .elementor-heading-title {
    color: var(--wk-heading) !important;

    font-family: "Montserrat", Sans-serif !important;
    font-size: clamp(11px, 0.8vw, 12px) !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
    text-align: left !important;
    text-transform: uppercase !important;
    text-wrap: balance !important;

    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
}

/*
 * Shared divider rhythm for left-aligned card headings.
 */
.wk-card-divider,
.wk-card-container .elementor-widget-divider {
    margin:
        var(--wk-divider-space-top)
        0
        var(--wk-divider-space-bottom) !important;

    padding: 0 !important;
}

.wk-card-divider .elementor-widget-container,
.wk-card-container .elementor-widget-divider .elementor-widget-container,
.wk-card-divider .elementor-divider,
.wk-card-container .elementor-widget-divider .elementor-divider {
    margin: 0 !important;
    padding: 0 !important;
}

.wk-card-divider .elementor-divider,
.wk-card-container .elementor-widget-divider .elementor-divider {
    display: flex !important;
    justify-content: flex-start !important;
}

.wk-card-divider .elementor-divider-separator,
.wk-card-container .elementor-widget-divider .elementor-divider-separator {
    width: var(--wk-divider-width) !important;

    margin-left: 0 !important;
    margin-right: auto !important;

    border-color: var(--wk-blue-light) !important;
}

.wk-card-container > .e-con > :nth-child(5) p {
    margin: 0 !important;

    color: var(--wk-text) !important;

    font-family: "Montserrat", Sans-serif !important;
    font-size: 13px !important;
    line-height: 1.55 !important;
}


/* =========================================================
   8. 50/50 IMAGE + CONTENT
   ========================================================= */

.wk-50-50-card-container,
.wk-50-50-body {
    --width: 100% !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 0 !important;
}

.wk-50-50-body {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 30px !important;
}

.wk-large-card,
.wk-large-card-image {
    --width: 100% !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
}

.wk-large-card {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;

    padding: 32px !important;

    background: var(--wk-surface) !important;

    border: 1px solid var(--wk-border) !important;
    border-top: 4px solid var(--wk-blue) !important;
    border-radius: 14px !important;

    box-shadow: 10px 12px 28px rgba(0, 0, 0, 0.16) !important;
}

.wk-card-large-heading .elementor-heading-title {
    color: var(--wk-blue) !important;

    font-family: "Montserrat", Sans-serif !important;
    font-size: 30px !important;
    font-weight: 600 !important;
    line-height: 1.15 !important;
    text-transform: uppercase !important;
}

.wk-large-card-copy p {
    margin: 0 0 14px !important;

    color: var(--wk-text) !important;

    font-family: "Montserrat", Sans-serif !important;
    font-size: 15px !important;
    line-height: 1.65 !important;
}

.wk-large-card-copy p:last-child {
    margin-bottom: 0 !important;
}

.wk-large-card-quote-callout {
    margin: 18px 0 !important;
    padding:
        var(--wk-callout-padding-block)
        var(--wk-callout-padding-inline) !important;

    background: var(--wk-muted) !important;
    border-left: 4px solid var(--wk-blue) !important;

    box-sizing: border-box !important;
}

.wk-large-card-quote-callout,
.wk-large-card-quote-callout > .elementor-widget-container {
    width: 100% !important;

    box-sizing: border-box !important;
}

.wk-large-card-quote-callout > .elementor-widget-container {
    margin: 0 !important;
    padding: 0 !important;
}

.wk-large-card-quote-callout p {
    margin: 0 !important;

    color: var(--wk-blue) !important;

    font-family: "Montserrat", Sans-serif !important;
    font-size: 15px !important;
    line-height: 1.55 !important;
}

.wk-large-card-image {
    padding: 0 !important;
}

.wk-large-card-image img {
    display: block !important;

    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;

    margin: 0 !important;

    object-fit: contain !important;
    object-position: center top !important;
}


/* =========================================================
   9. BLUE CARD GRID
   ========================================================= */

.wk-blue-card-container {
    --width: 100% !important;

    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 20px !important;
    align-items: stretch !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 0 !important;
}

.wk-blue-card-container > .e-con {
    --width: 100% !important;

    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;

    width: 100% !important;
    height: 100% !important;
    min-height: 210px !important;

    margin: 0 !important;
    padding: 26px 24px !important;

    background:
        linear-gradient(
            180deg,
            rgba(7, 38, 77, 0.80) 0%,
            rgba(5, 31, 64, 0.90) 100%
        ) !important;

    border: 1px solid rgba(255, 255, 255, 0.34) !important;
    border-top: 4px solid var(--wk-blue-light) !important;
    border-radius: 10px !important;

    box-shadow:
        var(--wk-panel-shadow),
        inset 0 1px 0 rgba(255, 255, 255, 0.10) !important;

    box-sizing: border-box !important;
}

.wk-blue-card-container .elementor-icon-box-wrapper,
.wk-blue-card-container .elementor-icon-box-content {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;

    width: 100% !important;
    height: 100% !important;
}

.wk-blue-card-container .elementor-icon-box-title {
    margin: 0 0 12px !important;
    padding: 0 !important;

    line-height: 1.12 !important;
    text-align: center !important;
}

.wk-blue-card-container .elementor-icon-box-title span {
    display: block !important;

    color: #FFFFFF !important;

    font-family: "Montserrat", Sans-serif !important;
    font-size: 18px !important;
    font-weight: 600 !important;
    line-height: 1.12 !important;
    text-align: center !important;
    text-wrap: balance !important;
}

.wk-blue-card-container .elementor-icon-box-description {
    color: #FFFFFF !important;

    font-family: "Montserrat", Sans-serif !important;
    font-size: 14px !important;
    line-height: 1.6 !important;
}

.wk-blue-section-glass-container {
    --width: 100% !important;

    display: flex !important;
    flex-direction: column !important;
    gap: var(--wk-callout-gap) !important;

    width: min(100%, var(--wk-callout-width)) !important;
    max-width: var(--wk-callout-width) !important;
    min-width: 0 !important;

    margin:
        var(--wk-callout-top-gap)
        auto
        0 !important;

    padding:
        var(--wk-callout-padding-block)
        var(--wk-callout-padding-inline) !important;

    background: rgba(255, 255, 255, 0.12) !important;

    border: 1px solid rgba(255, 255, 255, 0.28) !important;
    border-left: 4px solid var(--wk-blue-light) !important;
    border-radius: 6px !important;

    box-sizing: border-box !important;
}

.wk-blue-section-glass-container > .elementor-widget,
.wk-blue-section-glass-container > .e-con-inner > .elementor-widget {
    width: 100% !important;

    margin: 0 !important;
}

.wk-blue-section-glass-container .elementor-widget-container {
    width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;
}

.wk-blue-section-glass-container p {
    margin: 0 0 var(--wk-callout-gap) !important;

    color: #FFFFFF !important;

    font-family: "Montserrat", Sans-serif !important;
    font-size: 15px !important;
    line-height: 1.65 !important;
}

.wk-blue-section-glass-container p:last-child {
    margin-bottom: 0 !important;
}


/* =========================================================
   10. WHITE CARD GRIDS
   ========================================================= */

.wk-white-card-container {
    --width: 100% !important;

    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 20px !important;
    align-items: stretch !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 0 !important;
}

/*
 * Entry Requirements has no wrapper class, but its first card carries
 * .wk-white-card. :has() lets the same component style the complete row.
 */
.wk-white-section-container .e-con:has(> .wk-white-card):not(.wk-white-card-container) {
    --width: 100% !important;

    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 18px !important;
    align-items: stretch !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 0 !important;
}

.wk-white-card-container > .e-con,
.wk-white-section-container .e-con:has(> .wk-white-card):not(.wk-white-card-container)
> .e-con {
    --width: 100% !important;

    display: flex !important;
    flex-direction: column !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 190px !important;

    margin: 0 !important;
    padding: 24px 22px !important;

    background: var(--wk-surface) !important;

    border: 1px solid var(--wk-border) !important;
    border-top: 4px solid var(--wk-blue) !important;
    border-radius: 8px !important;

    box-shadow: 0 10px 22px rgba(0, 0, 0, 0.10) !important;

    box-sizing: border-box !important;
}

.wk-white-card-container .elementor-widget-heading,
.wk-white-section-container .e-con:has(> .wk-white-card):not(.wk-white-card-container)
.elementor-widget-heading {
    margin: 0 !important;
}

.wk-white-card-container h3.elementor-heading-title,
.wk-white-section-container .e-con:has(> .wk-white-card):not(.wk-white-card-container)
h3.elementor-heading-title {
    min-height: 0 !important;
    margin: 0 !important;

    color: var(--wk-blue) !important;

    font-family: "Montserrat", Sans-serif !important;
    font-size: 17px !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
    text-align: center !important;
}

.wk-white-section-container .e-con:has(> .wk-white-card):not(.wk-white-card-container)
h6.elementor-heading-title {
    color: var(--wk-heading) !important;

    font-family: "Montserrat", Sans-serif !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    line-height: 1.45 !important;
    text-align: center !important;
    text-transform: uppercase !important;
}

.wk-white-card-container .elementor-widget-divider,
.wk-white-section-container .e-con:has(> .wk-white-card):not(.wk-white-card-container)
.elementor-widget-divider {
    margin:
        var(--wk-divider-space-top)
        0
        var(--wk-divider-space-bottom) !important;

    padding: 0 !important;
}

.wk-white-card-container .elementor-widget-divider .elementor-widget-container,
.wk-white-section-container .e-con:has(> .wk-white-card):not(.wk-white-card-container)
.elementor-widget-divider .elementor-widget-container,
.wk-white-card-container .elementor-divider,
.wk-white-section-container .e-con:has(> .wk-white-card):not(.wk-white-card-container)
.elementor-divider {
    margin: 0 !important;
    padding: 0 !important;
}

.wk-white-card-container .elementor-divider,
.wk-white-section-container .e-con:has(> .wk-white-card):not(.wk-white-card-container)
.elementor-divider {
    display: flex !important;
    justify-content: center !important;
}

.wk-white-card-container .elementor-divider-separator,
.wk-white-section-container .e-con:has(> .wk-white-card):not(.wk-white-card-container)
.elementor-divider-separator {
    width: var(--wk-divider-width) !important;

    margin-left: auto !important;
    margin-right: auto !important;

    border-color: var(--wk-blue-light) !important;
}

.wk-white-card-container .e-paragraph-base,
.wk-white-section-container .e-con:has(> .wk-white-card):not(.wk-white-card-container)
p,
.wk-white-section-container .e-con:has(> .wk-white-card):not(.wk-white-card-container)
li {
    color: var(--wk-text) !important;

    font-family: "Montserrat", Sans-serif !important;
    font-size: 13px !important;
    line-height: 1.55 !important;
}

.wk-white-card-container .e-paragraph-base {
    flex: 1 1 auto !important;

    margin: 0 !important;
}


/* =========================================================
   ENTRY REQUIREMENTS — USE CARD WIDTH MORE EFFECTIVELY
   This targets the four-card row identified by its first .wk-white-card.
   Programme Structure cards remain unchanged.
   ========================================================= */

.wk-white-section-container
.e-con:has(> .wk-white-card):not(.wk-white-card-container)
> .e-con {
    align-items: stretch !important;

    padding: 22px 18px !important;
}

.wk-white-section-container
.e-con:has(> .wk-white-card):not(.wk-white-card-container)
> .e-con > .elementor-widget {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    margin-left: 0 !important;
    margin-right: 0 !important;
}

/*
 * Remove manual line breaks from the small subtitle so Elementor can
 * wrap it naturally across the full available width.
 */
.wk-white-section-container
.e-con:has(> .wk-white-card):not(.wk-white-card-container)
h6.elementor-heading-title br {
    display: none !important;
}

.wk-white-section-container
.e-con:has(> .wk-white-card):not(.wk-white-card-container)
h3.elementor-heading-title,
.wk-white-section-container
.e-con:has(> .wk-white-card):not(.wk-white-card-container)
h6.elementor-heading-title {
    width: 100% !important;
    max-width: 100% !important;

    margin-left: 0 !important;
    margin-right: 0 !important;
}

/*
 * Reset the text-editor/list indentation. The bullet marker remains
 * indented, but the list now uses nearly the full card width.
 */
.wk-white-section-container
.e-con:has(> .wk-white-card):not(.wk-white-card-container)
.elementor-widget-text-editor,
.wk-white-section-container
.e-con:has(> .wk-white-card):not(.wk-white-card-container)
.elementor-widget-text-editor > .elementor-widget-container {
    width: 100% !important;
    max-width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;
}

.wk-white-section-container
.e-con:has(> .wk-white-card):not(.wk-white-card-container)
.elementor-widget-text-editor ul {
    width: 100% !important;

    margin: 4px 0 0 !important;
    padding-left: 20px !important;

    box-sizing: border-box !important;
}

.wk-white-section-container
.e-con:has(> .wk-white-card):not(.wk-white-card-container)
.elementor-widget-text-editor li {
    margin: 0 0 10px !important;
    padding-left: 3px !important;

    line-height: 1.42 !important;
    text-align: left !important;
}

.wk-white-section-container
.e-con:has(> .wk-white-card):not(.wk-white-card-container)
.elementor-widget-text-editor li:last-child {
    margin-bottom: 0 !important;
}


/* Mobile */
@media screen and (max-width: 767px) {

    .wk-white-section-container
    .e-con:has(> .wk-white-card):not(.wk-white-card-container)
    > .e-con {
        padding: 18px 16px !important;
    }

    .wk-white-section-container
    .e-con:has(> .wk-white-card):not(.wk-white-card-container)
    .elementor-widget-text-editor ul {
        padding-left: 18px !important;
    }

    .wk-white-section-container
    .e-con:has(> .wk-white-card):not(.wk-white-card-container)
    .elementor-widget-text-editor li {
        margin-bottom: 8px !important;
        line-height: 1.4 !important;
    }
}


/* =========================================================
   11. COURSE CAROUSEL
   Compact single-border cards with correctly positioned controls
   ========================================================= */

.wk-carousel {
    --width: 100% !important;
    --wk-carousel-content-inset: 16px;

    position: relative !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    overflow: visible !important;
}

.wk-carousel .e-n-carousel,
.wk-carousel .swiper {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    overflow: hidden !important;
}

/*
 * Cards no longer stretch to the height of the longest slide.
 * Each card uses only the height required by its own content.
 */
.wk-carousel .swiper-wrapper {
    align-items: stretch !important;
}

.wk-carousel .swiper-slide {
    display: flex !important;
    align-self: stretch !important;

    height: auto !important;
    min-width: 0 !important;
}

/*
 * Remove Elementor's treatment from the outer slide container.
 * The single visible border belongs only to .e-con-inner.
 */
.wk-carousel .swiper-slide > .e-con {
    --width: 100% !important;

    display: flex !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: 100% !important;
    min-height: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    background: transparent !important;

    border: 0 !important;
    border-radius: 0 !important;

    box-shadow: none !important;

    overflow: visible !important;
}

.wk-carousel .swiper-slide > .e-con > .e-con-inner {
    display: flex !important;
    flex-direction: column !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;

    margin: 0 !important;
    padding: 0 0 16px !important;

    background: var(--wk-surface) !important;

    border: 1px solid var(--wk-border) !important;
    border-top: 4px solid var(--wk-blue) !important;
    border-radius: 10px !important;

    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.09) !important;

    overflow: hidden !important;
    box-sizing: border-box !important;
}


/* Slight vertical crop: less severe than a wide landscape crop. */
.wk-carousel .elementor-widget-image {
    width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    aspect-ratio: 5 / 4 !important;

    overflow: hidden !important;
}

.wk-carousel .elementor-widget-image .elementor-widget-container {
    width: 100% !important;
    height: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    overflow: hidden !important;
}

.wk-carousel .elementor-widget-image img {
    display: block !important;

    width: 100% !important;
    height: 100% !important;
    aspect-ratio: auto !important;

    object-fit: cover !important;
    object-position: center 46% !important;
}


/*
 * Every text-bearing widget uses one shared horizontal content axis.
 * This removes Elementor widget padding/margin differences.
 */
.wk-carousel .swiper-slide > .e-con > .e-con-inner
> .elementor-widget:not(.elementor-widget-image) {
    width: 100% !important;
    max-width: 100% !important;

    margin-left: 0 !important;
    margin-right: 0 !important;

    padding-left: var(--wk-carousel-content-inset) !important;
    padding-right: var(--wk-carousel-content-inset) !important;

    box-sizing: border-box !important;
}

.wk-carousel .swiper-slide > .e-con > .e-con-inner
> .elementor-widget:not(.elementor-widget-image)
> .elementor-widget-container {
    width: 100% !important;
    max-width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;
}


/* Compact card typography */
.wk-carousel h3.elementor-heading-title {
    margin: 14px 0 0 !important;
    padding: 0 !important;

    color: var(--wk-blue) !important;

    font-family: "Montserrat", Sans-serif !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    letter-spacing: 0 !important;
    min-height: 42px !important;

    display: flex !important;
    align-items: flex-start !important;

    line-height: 1.18 !important;
    text-align: left !important;
    text-wrap: balance !important;
}

.wk-carousel h6.elementor-heading-title {
    margin: 6px 0 0 !important;
    padding: 0 !important;

    color: var(--wk-heading) !important;

    font-family: "Montserrat", Sans-serif !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: 0.2px !important;
    min-height: 64px !important;

    display: flex !important;
    align-items: flex-start !important;

    line-height: 1.35 !important;
    text-align: left !important;
    text-transform: uppercase !important;
    text-wrap: balance !important;
}

.wk-carousel .elementor-widget-divider {
    margin: 8px 0 10px !important;
}

.wk-carousel .elementor-widget-divider .elementor-widget-container,
.wk-carousel .elementor-divider {
    margin: 0 !important;
    padding: 0 !important;
}

.wk-carousel .elementor-divider {
    display: flex !important;
    justify-content: flex-start !important;
}

.wk-carousel .elementor-divider-separator {
    width: 64px !important;

    margin-left: 0 !important;
    margin-right: auto !important;

    border-color: var(--wk-blue-light) !important;
}

.wk-carousel .elementor-widget-text-editor {
    flex: 1 1 auto !important;

    margin: 0 !important;

    text-align: left !important;
}

.wk-carousel .elementor-widget-text-editor p {
    margin: 0 0 6px !important;

    color: var(--wk-text) !important;

    font-family: "Montserrat", Sans-serif !important;
    font-size: 12.5px !important;
    line-height: 1.4 !important;
    text-align: left !important;
}


/*
 * The short label above the module list is supporting metadata,
 * so it uses a quieter italic treatment rather than body-copy styling.
 */
.wk-carousel .elementor-widget-text-editor p:first-child {
    margin-bottom: 8px !important;

    color: #686868 !important;

    font-size: 12px !important;
    font-weight: 500 !important;
    font-style: italic !important;
    line-height: 1.35 !important;
}

.wk-carousel .elementor-widget-text-editor ul {
    display: block !important;

    margin: 6px 0 0 !important;
    padding: 0 !important;

    list-style: none !important;
    text-align: left !important;
}

.wk-carousel .elementor-widget-text-editor li {
    position: relative !important;

    margin: 0 0 3px !important;
    padding: 0 !important;

    color: var(--wk-text) !important;

    font-family: "Montserrat", Sans-serif !important;
    font-size: 12.5px !important;
    line-height: 1.35 !important;
}

.wk-carousel .elementor-widget-text-editor li::before {
    content: "•" !important;

    position: absolute !important;
    left: -11px !important;
    top: 0 !important;

    color: var(--wk-blue) !important;
}

.wk-carousel .elementor-widget-text-editor li:last-child {
    margin-bottom: 0 !important;
}


/*
 * Controls sit beside the cards and align with the vertical centre
 * of the image area rather than the centre of the complete card.
 */
.wk-carousel .elementor-swiper-button {
    position: absolute !important;
    top: clamp(108px, 8.5vw, 138px) !important;
    bottom: auto !important;

    z-index: 8 !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 36px !important;
    height: 36px !important;

    margin: 0 !important;

    transform: translateY(-50%) !important;

    background: rgba(255, 255, 255, 0.96) !important;
    color: var(--wk-blue) !important;

    border: 1px solid var(--wk-blue) !important;
    border-radius: 50% !important;

    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12) !important;
}

.wk-carousel .elementor-swiper-button-prev {
    left: -18px !important;
    right: auto !important;
}

.wk-carousel .elementor-swiper-button-next {
    right: -18px !important;
    left: auto !important;
}

.wk-carousel .elementor-swiper-button svg {
    width: 14px !important;
    height: 14px !important;

    fill: var(--wk-blue) !important;
}

.wk-carousel .elementor-swiper-button.swiper-button-disabled {
    opacity: 0.35 !important;
}

.wk-carousel .swiper-pagination {
    position: relative !important;
    bottom: auto !important;

    margin-top: 16px !important;
}

.wk-carousel .swiper-pagination-bullet-active {
    background: var(--wk-blue) !important;
}


/* Tablet: two wider cards create a taller image area. */
@media screen and (min-width: 768px) and (max-width: 1024px) {

    .wk-carousel .elementor-swiper-button {
        top: clamp(150px, 19vw, 195px) !important;
    }

    .wk-carousel .elementor-swiper-button-prev {
        left: -14px !important;
    }

    .wk-carousel .elementor-swiper-button-next {
        right: -14px !important;
    }
}


/* Mobile: one card, no arrows, swipe and pagination remain available. */
@media screen and (max-width: 767px) {

    .wk-carousel .elementor-swiper-button {
        display: none !important;
    }

    .wk-carousel .elementor-widget-image {
        aspect-ratio: 5 / 4 !important;
    }

    .wk-carousel h3.elementor-heading-title,
    .wk-carousel h6.elementor-heading-title {
        min-height: 0 !important;
    }

    .wk-carousel h3.elementor-heading-title {
        font-size: 17px !important;
    }
}


/* =========================================================
   12. TESTIMONIAL CAROUSEL
   ========================================================= */

.wk-blue-section-container:has(.elementor-widget-testimonial-carousel) {
    padding-top: var(--wk-section-space) !important;
    padding-bottom: var(--wk-section-space) !important;
}

.wk-blue-section-container .elementor-widget-testimonial-carousel {
    width: min(100%, 900px) !important;

    margin: 0 auto !important;
}

.wk-blue-section-container .elementor-widget-testimonial-carousel
.elementor-main-swiper,
.wk-blue-section-container .elementor-widget-testimonial-carousel
.swiper-wrapper,
.wk-blue-section-container .elementor-widget-testimonial-carousel
.swiper-slide {
    min-height: 0 !important;
    height: auto !important;
}

.wk-blue-section-container .elementor-widget-testimonial-carousel
.elementor-testimonial {
    min-height: 0 !important;

    padding: 24px 28px !important;

    background:
        linear-gradient(
            180deg,
            rgba(7, 38, 77, 0.80) 0%,
            rgba(5, 31, 64, 0.90) 100%
        ) !important;

    border: 1px solid rgba(255, 255, 255, 0.34) !important;
    border-left: 4px solid var(--wk-blue-light) !important;
    border-radius: 10px !important;

    box-shadow: var(--wk-panel-shadow) !important;
}

.wk-blue-section-container .elementor-widget-testimonial-carousel
.elementor-testimonial__text {
    color: #FFFFFF !important;

    font-family: "Montserrat", Sans-serif !important;
    font-size: 17px !important;
    line-height: 1.55 !important;
    text-align: center !important;
}

.wk-blue-section-container .elementor-widget-testimonial-carousel
.elementor-testimonial__footer {
    margin-top: 14px !important;
}

.wk-blue-section-container .elementor-widget-testimonial-carousel
.elementor-testimonial__name {
    color: #FFFFFF !important;
}

.wk-blue-section-container .elementor-widget-testimonial-carousel
.elementor-testimonial__title {
    color: var(--wk-blue-light) !important;
}


/* =========================================================
   13. CTA + SECONDARY RENEWAL NOTE
   ========================================================= */

.wk-call-to-action-container {
    --width: 100% !important;

    width: min(100%, 980px) !important;
    max-width: 980px !important;
    min-width: 0 !important;

    margin: 0 auto !important;
    padding: 0 !important;
}

.wk-call-to-action-card {
    --width: 100% !important;

    display: block !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 28px !important;

    background: var(--wk-surface) !important;

    border: 1px solid var(--wk-border) !important;
    border-top: 4px solid var(--wk-blue) !important;
    border-radius: 10px !important;

    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12) !important;
}

.wk-call-to-action-card > .e-con {
    --width: 100% !important;

    display: grid !important;
    grid-template-columns: minmax(0, 1.45fr) minmax(300px, 0.75fr) !important;
    gap: 28px !important;
    align-items: stretch !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 0 !important;
}

.wk-call-to-action-card > .e-con > .e-con {
    --width: 100% !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
}

.wk-call-to-action-card > .e-con > .e-con:first-child {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;

    padding: 18px 12px 18px 8px !important;
}

.wk-call-to-action-card > .e-con > .e-con:first-child
h2.elementor-heading-title {
    color: var(--wk-blue) !important;

    font-family: "Montserrat", Sans-serif !important;
    font-size: 30px !important;
    font-weight: 600 !important;
    line-height: 1.15 !important;
    text-transform: uppercase !important;
}

.wk-call-to-action-card > .e-con > .e-con:first-child p {
    color: var(--wk-text) !important;

    font-family: "Montserrat", Sans-serif !important;
    font-size: 15px !important;
    line-height: 1.65 !important;
}

.wk-call-to-action-card > .e-con > .e-con:nth-child(2) {
    display: flex !important;
    flex-direction: column !important;

    padding: 24px !important;

    background: var(--wk-muted) !important;

    border: 1px solid var(--wk-border) !important;
    border-left: 4px solid var(--wk-blue-light) !important;
    border-radius: 6px !important;
}

.wk-call-to-action-card > .e-con > .e-con:nth-child(2)
h6.elementor-heading-title {
    color: var(--wk-heading) !important;

    font-family: "Montserrat", Sans-serif !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
    text-transform: uppercase !important;
}

.wk-call-to-action-card > .e-con > .e-con:nth-child(2) li {
    color: var(--wk-text) !important;

    font-family: "Montserrat", Sans-serif !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
}

.wk-call-to-action-card > .e-con > .e-con:nth-child(2)
.elementor-widget-button {
    margin-top: auto !important;
    padding-top: 16px !important;
}

.wk-call-to-action-card > .e-con > .e-con:nth-child(2)
.elementor-widget-button .elementor-button {
    width: 100% !important;
}

.wk-call-to-action-container + .e-con {
    --width: 100% !important;

    display: flex !important;
    flex-direction: column !important;
    gap: var(--wk-callout-gap) !important;

    width: min(100%, var(--wk-callout-width)) !important;
    max-width: var(--wk-callout-width) !important;
    min-width: 0 !important;

    margin:
        var(--wk-callout-top-gap)
        auto
        0 !important;

    padding:
        var(--wk-callout-padding-block)
        var(--wk-callout-padding-inline) !important;

    background: var(--wk-muted) !important;

    border: 1px solid var(--wk-border) !important;
    border-left: 4px solid var(--wk-blue) !important;
    border-radius: 8px !important;

    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.08) !important;

    box-sizing: border-box !important;
}

.wk-call-to-action-container + .e-con > .elementor-widget,
.wk-call-to-action-container + .e-con > .e-con-inner > .elementor-widget {
    width: 100% !important;

    margin: 0 !important;
}

.wk-call-to-action-container + .e-con .elementor-widget-container {
    width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;
}

.wk-call-to-action-container + .e-con p {
    margin: 0 0 var(--wk-callout-gap) !important;

    color: var(--wk-text) !important;

    font-family: "Montserrat", Sans-serif !important;
    font-size: 13px !important;
    line-height: 1.6 !important;
    text-align: left !important;
}

.wk-call-to-action-container + .e-con p:last-child {
    margin-bottom: 0 !important;
}


/* =========================================================
   SMALL CARDS — COMPACT DESKTOP / LAPTOP
   Switch to one card per row before the two-column cards become cramped.
   ========================================================= */

@media screen and (min-width: 1025px) and (max-width: 1180px) {

    .wk-card-container {
        grid-template-columns: 1fr !important;

        width: min(100%, 920px) !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .wk-card-container > .e-con {
        grid-template-columns:
            clamp(250px, 34%, 310px)
            minmax(0, 1fr) !important;

        min-height: 340px !important;
    }

    .wk-card-container > .e-con > .elementor-widget-image:first-child,
    .wk-card-container > .e-con > .elementor-widget-image:first-child img {
        min-height: 312px !important;
    }
}


/* =========================================================
   TABLET
   ========================================================= */

@media screen and (min-width: 768px) and (max-width: 1024px) {

    :root {
        --wk-section-space: 48px;
        --wk-inline-space: 22px;
        --wk-section-heading-size: 34px;
    }

    .wk-hero-container {
        padding: 28px 22px 36px !important;
    }

    .wk-hero-container > .e-con-inner {
        grid-template-columns: minmax(0, 1.1fr) minmax(280px, 0.9fr) !important;
        gap: 28px !important;
    }

    .wk-hero-title .elementor-heading-title {
        font-size: 48px !important;
    }

    .wk-card-container {
        grid-template-columns: 1fr !important;
    }

    .wk-card-container > .e-con {
        grid-template-columns: minmax(210px, 0.74fr) minmax(0, 1.26fr) !important;
        min-height: 290px !important;
    }

    .wk-card-container > .e-con > .elementor-widget-image:first-child,
    .wk-card-container > .e-con > .elementor-widget-image:first-child img {
        min-height: 262px !important;
    }

    .wk-50-50-body {
        grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr) !important;
        gap: 22px !important;
    }

    .wk-blue-card-container {
        grid-template-columns: 1fr !important;
    }

    .wk-blue-card-container > .e-con {
        min-height: 0 !important;
    }

    .wk-white-card-container,
    .wk-white-section-container .e-con:has(> .wk-white-card):not(.wk-white-card-container) {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .wk-call-to-action-card > .e-con {
        grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.8fr) !important;
        gap: 22px !important;
    }
}


/* =========================================================
   MOBILE
   ========================================================= */

@media screen and (max-width: 767px) {

    :root {
        --wk-section-space: 40px;
        --wk-inline-space: 18px;
        --wk-heading-gap: 20px;
        --wk-copy-gap: 22px;
        --wk-section-heading-size: 28px;

        --wk-callout-padding-block: 16px;
        --wk-callout-padding-inline: 16px;
        --wk-callout-gap: 8px;
        --wk-callout-top-gap: 18px;
    }


    .wk-white-section-heading .elementor-heading-title,
    .wk-blue-section-heading .elementor-heading-title,
    .wk-white-section-container > .elementor-widget-heading:first-of-type
    .elementor-heading-title,
    .wk-blue-section-container > .elementor-widget-heading:first-of-type
    .elementor-heading-title,
    .wk-white-section-container > .e-con-inner
    > .elementor-widget-heading:first-of-type .elementor-heading-title,
    .wk-blue-section-container > .e-con-inner
    > .elementor-widget-heading:first-of-type .elementor-heading-title,
    .wk-white-section-container .wk-glass-panel
    > .elementor-widget-heading:first-child .elementor-heading-title,
    .wk-blue-section-container .wk-glass-panel
    > .elementor-widget-heading:first-child .elementor-heading-title {
        text-align: left !important;
    }

    .wk-white-section-copy p,
    .wk-white-section-container > .e-con-inner
    > .elementor-widget-heading:first-child
    + .elementor-widget-text-editor p {
        text-align: left !important;
    }

    .wk-hero-container {
        padding: 22px 18px 34px !important;

        overflow-x: hidden !important;
    }

    .wk-hero-container > .e-con-inner {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 22px !important;
    }

    .wk-hero-copy-container {
        order: 1 !important;
    }

    .wk-hero-image-container {
        order: 2 !important;
    }

    .wk-hero-subtitle .elementor-heading-title {
        font-size: 11px !important;

        white-space: normal !important;
    }

    .wk-hero-title .elementor-heading-title {
        max-width: 100% !important;

        font-size: clamp(34px, 10.8vw, 43px) !important;
        line-height: 1.02 !important;
        letter-spacing: -0.5px !important;
    }

    .wk-hero-copy {
        max-width: 100% !important;
    }

    .wk-hero-copy-container .wk-styled-button .elementor-button,
    .wk-hero-copy-container .wk-styled-button-2 .elementor-button {
        width: 100% !important;
    }

    .wk-hero-image-top-layer {
        transform: none !important;
    }

    .wk-hero-image-top-layer img {
        width: min(100%, 360px) !important;
        max-height: none !important;
    }

    .wk-glass-panel {
        width: 100% !important;
        max-width: 100% !important;

        gap: 12px !important;

        padding: 20px 18px !important;
    }

    .wk-glass-panel p,
    .wk-glass-panel .elementor-icon-list-text {
        font-size: 14px !important;
    }

    .wk-glass-panel .elementor-widget-heading .elementor-heading-title {
        font-size: 26px !important;
        line-height: 1.15 !important;
        text-align: left !important;
    }

    .wk-glass-panel .elementor-icon-list-items {
        padding-left: 10px !important;
    }

    .wk-card-container {
        grid-template-columns: 1fr !important;
        gap: 18px !important;
    }

    .wk-card-container > .e-con {
        grid-template-columns: 1fr !important;
        grid-template-rows: auto !important;
        min-height: 0 !important;

        padding: 0 18px 20px !important;
    }

    .wk-card-container > .e-con > .elementor-widget-image:first-child {
        grid-column: 1 !important;
        grid-row: auto !important;

        width: calc(100% + 36px) !important;
        height: auto !important;
        min-height: 0 !important;

        margin-left: -18px !important;
        margin-right: -18px !important;
    }

    .wk-card-container > .e-con > .elementor-widget-image:first-child img {
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        aspect-ratio: 16 / 10 !important;

        border-radius: 0 !important;
    }

    .wk-card-container > .e-con > :nth-child(n+2):nth-child(-n+5) {
        grid-column: 1 !important;
        grid-row: auto !important;
    }

    .wk-card-container > .e-con > :nth-child(2) {
        margin-top: 18px !important;
    }

    .wk-50-50-body {
        grid-template-columns: 1fr !important;
        gap: 18px !important;
    }

    .wk-large-card-image {
        order: 1 !important;
    }

    .wk-large-card {
        order: 2 !important;

        padding: 22px 20px !important;
    }

    .wk-card-large-heading .elementor-heading-title {
        font-size: 26px !important;
    }

    .wk-blue-card-container {
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }

    .wk-blue-card-container > .e-con {
        min-height: 0 !important;

        padding: 20px 18px !important;
    }

    .wk-blue-section-glass-container {
        width: 100% !important;
        max-width: 100% !important;
    }

    .wk-white-card-container,
    .wk-white-section-container .e-con:has(> .wk-white-card):not(.wk-white-card-container) {
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }

    .wk-white-card-container > .e-con,
    .wk-white-section-container .e-con:has(> .wk-white-card):not(.wk-white-card-container)
    > .e-con {
        min-height: 0 !important;

        padding: 20px 18px !important;
    }

    .wk-white-card-container h3.elementor-heading-title,
    .wk-white-section-container .e-con:has(> .wk-white-card):not(.wk-white-card-container)
    h3.elementor-heading-title {
        min-height: 0 !important;
    }

    .wk-carousel .elementor-swiper-button {
        display: none !important;
    }

    .wk-carousel .swiper-slide > .e-con > .e-con-inner {
        min-height: 0 !important;
    }

    .wk-blue-section-container .elementor-widget-testimonial-carousel
    .elementor-testimonial {
        padding: 20px 18px !important;
    }

    .wk-blue-section-container .elementor-widget-testimonial-carousel
    .elementor-testimonial__text {
        font-size: 15px !important;
        text-align: left !important;
    }

    .wk-call-to-action-card {
        padding: 20px !important;
    }

    .wk-call-to-action-card > .e-con {
        grid-template-columns: 1fr !important;
        gap: 18px !important;
    }

    .wk-call-to-action-card > .e-con > .e-con:first-child {
        padding: 8px 0 6px !important;
    }

    .wk-call-to-action-card > .e-con > .e-con:first-child
    h2.elementor-heading-title {
        font-size: 27px !important;
    }

    .wk-call-to-action-card > .e-con > .e-con:nth-child(2) {
        padding: 20px !important;
    }

    .wk-call-to-action-container + .e-con {
        width: 100% !important;
        max-width: 100% !important;
    }
}

/* =========================================================
   COURSE CAROUSEL — DEFINITIVE CONTENT ALIGNMENT
   Reset Elementor heading flex/alignment so every text block
   follows one left-hand content axis.
   ========================================================= */

.wk-carousel .swiper-slide > .e-con > .e-con-inner
> .elementor-widget:not(.elementor-widget-image),
.wk-carousel .swiper-slide > .e-con > .e-con-inner
> .elementor-widget:not(.elementor-widget-image)
> .elementor-widget-container {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    margin-left: 0 !important;
    margin-right: 0 !important;

    text-align: left !important;

    box-sizing: border-box !important;
}

/*
 * Elementor can render heading titles as flex boxes and retain centred
 * justification. Reset both heading widgets to normal block flow.
 */
.wk-carousel .elementor-widget-heading,
.wk-carousel .elementor-widget-heading > .elementor-widget-container {
    display: block !important;

    text-align: left !important;
}

.wk-carousel h3.elementor-heading-title,
.wk-carousel h6.elementor-heading-title {
    display: block !important;

    width: 100% !important;
    max-width: 100% !important;

    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 0 !important;

    text-align: left !important;

    justify-content: flex-start !important;
    align-items: flex-start !important;
}

/*
 * Reserve equal vertical blocks at widget level, rather than turning
 * the heading text itself into a flex container.
 */
.wk-carousel .elementor-widget-image
+ .elementor-widget-heading {
    min-height: 56px !important;

    display: flex !important;
    align-items: flex-start !important;
}

.wk-carousel .elementor-widget-image
+ .elementor-widget-heading
+ .elementor-widget-heading {
    min-height: 76px !important;

    display: flex !important;
    align-items: flex-start !important;
}

.wk-carousel .elementor-widget-image
+ .elementor-widget-heading
> .elementor-widget-container,
.wk-carousel .elementor-widget-image
+ .elementor-widget-heading
+ .elementor-widget-heading
> .elementor-widget-container {
    display: block !important;

    width: 100% !important;

    text-align: left !important;
}

/*
 * Heading, subheading, divider and body all use the exact same inset.
 */
.wk-carousel {
    --wk-carousel-content-inset: 24px;
}

.wk-carousel .swiper-slide > .e-con > .e-con-inner
> .elementor-widget:not(.elementor-widget-image) {
    padding-left: var(--wk-carousel-content-inset) !important;
    padding-right: var(--wk-carousel-content-inset) !important;
}

.wk-carousel .elementor-widget-text-editor,
.wk-carousel .elementor-widget-text-editor
> .elementor-widget-container,
.wk-carousel .elementor-widget-text-editor p,
.wk-carousel .elementor-widget-text-editor ul,
.wk-carousel .elementor-widget-text-editor li {
    text-align: left !important;
}

.wk-carousel .elementor-widget-text-editor ul {
    display: block !important;

    width: 100% !important;

    margin: 6px 0 0 !important;
    padding: 0 0 0 22px !important;

    list-style-position: outside !important;
}

/*
 * Use normal list markers here. The list text remains intentionally
 * indented beneath the shared heading/body axis.
 */
.wk-carousel .elementor-widget-text-editor li {
    position: static !important;

    padding-left: 2px !important;

    list-style: disc !important;
}

.wk-carousel .elementor-widget-text-editor li::before {
    content: none !important;
}


.wk-carousel .elementor-widget-text-editor li::marker {
    color: var(--wk-blue) !important;
    font-size: 0.82em !important;
}


/* Mobile: keep natural heading heights when only one card is visible. */
@media screen and (max-width: 767px) {

    .wk-carousel .elementor-widget-image
    + .elementor-widget-heading,
    .wk-carousel .elementor-widget-image
    + .elementor-widget-heading
    + .elementor-widget-heading {
        min-height: 0 !important;
    }

    .wk-carousel {
        --wk-carousel-content-inset: 20px;
    }
}

/* =========================================================
   WATCHKEEPER OPERATIONS — FINAL MOBILE COMPONENT PASS
   One consolidated mobile layer for all reusable wk-* blocks.
   ========================================================= */

@media screen and (max-width: 767px) {

    :root {
        --wk-section-space: 36px;
        --wk-inline-space: 16px;
        --wk-heading-gap: 18px;
        --wk-copy-gap: 20px;
        --wk-section-heading-size: 26px;

        --wk-callout-padding-block: 15px;
        --wk-callout-padding-inline: 15px;
        --wk-callout-gap: 8px;
        --wk-callout-top-gap: 16px;
    }


    /* -----------------------------------------------------
       GLOBAL MOBILE WIDTH AND HEIGHT RESET
       ----------------------------------------------------- */

    .wk-hero-container,
    .wk-white-section-container,
    .wk-blue-section-container,
    .wk-50-50-section,
    .wk-white-section-container > .e-con-inner,
    .wk-blue-section-container > .e-con-inner,
    .wk-50-50-section > .e-con-inner {
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
    }

    .wk-white-section-container > .e-con-inner,
    .wk-blue-section-container > .e-con-inner,
    .wk-50-50-section > .e-con-inner {
        width: 100% !important;
        max-width: 100% !important;

        padding-left: var(--wk-inline-space) !important;
        padding-right: var(--wk-inline-space) !important;
    }

    .wk-white-section-container,
    .wk-blue-section-container,
    .wk-50-50-section {
        padding-top: var(--wk-section-space) !important;
        padding-bottom: var(--wk-section-space) !important;
    }


    /* -----------------------------------------------------
       HERO
       ----------------------------------------------------- */

    .wk-hero-container {
        padding: 14px 16px 28px !important;
    }

    .wk-hero-container > .e-con-inner {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 20px !important;
    }

    .wk-hero-copy-container {
        order: 1 !important;
        width: 100% !important;
        padding: 0 !important;
    }

    .wk-hero-image-container {
        order: 2 !important;
        width: 100% !important;
    }

    .wk-hero-subtitle {
        margin: 0 0 7px !important;
    }

    .wk-hero-subtitle .elementor-heading-title {
        font-size: 10.5px !important;
        line-height: 1.4 !important;
        letter-spacing: 0.35px !important;
    }

    .wk-hero-title .elementor-heading-title {
        max-width: 100% !important;

        font-size: clamp(33px, 10vw, 40px) !important;
        line-height: 1 !important;
        letter-spacing: -0.45px !important;
    }

    .wk-hero-copy {
        margin-top: 14px !important;
    }

    .wk-hero-copy p {
        margin-bottom: 12px !important;

        font-size: 14px !important;
        line-height: 1.55 !important;
    }

    .wk-hero-copy-container > .wk-styled-button {
        width: 100% !important;
        max-width: 100% !important;

        margin-top: 18px !important;
    }

    .wk-hero-copy-container > .wk-styled-button .elementor-button {
        width: 100% !important;
    }

    .wk-hero-image-top-layer {
        transform: none !important;
    }

    .wk-hero-image-top-layer img {
        width: min(100%, 290px) !important;
        height: auto !important;
        max-height: 360px !important;

        margin: 0 auto !important;
    }


    /* -----------------------------------------------------
       SECTION HEADINGS AND INTRO COPY
       ----------------------------------------------------- */

    .wk-white-section-heading,
    .wk-blue-section-heading,
    .wk-white-section-container > .elementor-widget-heading:first-of-type,
    .wk-blue-section-container > .elementor-widget-heading:first-of-type,
    .wk-white-section-container > .e-con-inner
    > .elementor-widget-heading:first-of-type,
    .wk-blue-section-container > .e-con-inner
    > .elementor-widget-heading:first-of-type {
        width: 100% !important;

        margin-bottom: var(--wk-heading-gap) !important;
    }

    .wk-white-section-heading .elementor-heading-title,
    .wk-blue-section-heading .elementor-heading-title,
    .wk-white-section-container > .elementor-widget-heading:first-of-type
    .elementor-heading-title,
    .wk-blue-section-container > .elementor-widget-heading:first-of-type
    .elementor-heading-title,
    .wk-white-section-container > .e-con-inner
    > .elementor-widget-heading:first-of-type .elementor-heading-title,
    .wk-blue-section-container > .e-con-inner
    > .elementor-widget-heading:first-of-type .elementor-heading-title {
        font-size: var(--wk-section-heading-size) !important;
        line-height: 1.08 !important;
        text-align: left !important;
    }

    .wk-blue-section-heading::before,
    .wk-blue-section-container > .elementor-widget-heading:first-of-type::before,
    .wk-blue-section-container > .e-con-inner
    > .elementor-widget-heading:first-of-type::before {
        width: 40px !important;
        height: 3px !important;

        margin: 0 0 10px !important;
    }

    .wk-white-section-copy,
    .wk-white-section-container > .e-con-inner
    > .elementor-widget-heading:first-child
    + .elementor-widget-text-editor {
        width: 100% !important;
        margin-bottom: var(--wk-copy-gap) !important;
    }

    .wk-white-section-copy p,
    .wk-white-section-container > .e-con-inner
    > .elementor-widget-heading:first-child
    + .elementor-widget-text-editor p {
        font-size: 14px !important;
        line-height: 1.55 !important;
        text-align: left !important;
    }


    /* -----------------------------------------------------
       GLASS PANELS
       ----------------------------------------------------- */

    .wk-glass-panel {
        width: 100% !important;
        max-width: 100% !important;

        gap: 11px !important;

        padding: 18px 16px !important;

        border-left-width: 3px !important;
        border-radius: 8px !important;
    }

    .wk-glass-panel p,
    .wk-glass-panel .elementor-icon-list-text {
        font-size: 13.5px !important;
        line-height: 1.55 !important;
    }

    .wk-glass-panel .elementor-widget-heading .elementor-heading-title {
        font-size: 23px !important;
        line-height: 1.12 !important;
        text-align: left !important;
    }

    .wk-glass-panel .elementor-icon-list-items {
        padding-left: 10px !important;
    }

    .wk-glass-panel .elementor-icon-list-item {
        margin-bottom: 8px !important;
    }


    /* -----------------------------------------------------
       SMALL IMAGE CARDS
       ----------------------------------------------------- */

    .wk-card-container {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }

    .wk-card-container > .e-con {
        grid-template-columns: 1fr !important;
        grid-template-rows: auto !important;

        min-height: 0 !important;

        padding: 0 16px 18px !important;

        border-radius: 8px !important;
    }

    .wk-card-container > .e-con > .elementor-widget-image:first-child {
        grid-column: 1 !important;
        grid-row: auto !important;

        width: calc(100% + 32px) !important;
        height: auto !important;
        min-height: 0 !important;

        margin-left: -16px !important;
        margin-right: -16px !important;
    }

    .wk-card-container > .e-con > .elementor-widget-image:first-child img {
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;

        aspect-ratio: 16 / 10 !important;
        object-fit: cover !important;

        border-radius: 0 !important;
    }

    .wk-card-container > .e-con > :nth-child(n+2):nth-child(-n+5) {
        grid-column: 1 !important;
        grid-row: auto !important;
    }

    .wk-card-container > .e-con > :nth-child(2) {
        margin-top: 16px !important;
    }

    .wk-card-container > .e-con > :nth-child(2)
    .elementor-heading-title {
        font-size: 19px !important;
    }

    .wk-card-container > .e-con > :nth-child(3)
    .elementor-heading-title {
        font-size: 11.5px !important;
    }

    .wk-card-container > .e-con > :nth-child(5) p {
        font-size: 13.5px !important;
        line-height: 1.5 !important;
    }


    /* -----------------------------------------------------
       50/50 CARD
       ----------------------------------------------------- */

    .wk-50-50-body {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }

    .wk-large-card-image {
        order: 1 !important;
    }

    .wk-large-card {
        order: 2 !important;

        padding: 20px 18px !important;

        border-radius: 10px !important;
    }

    .wk-card-large-heading .elementor-heading-title {
        font-size: 24px !important;
        line-height: 1.12 !important;
    }

    .wk-large-card-copy p {
        font-size: 14px !important;
        line-height: 1.55 !important;
    }

    .wk-large-card-quote-callout {
        margin: 14px 0 !important;
        padding: 14px !important;
    }

    .wk-large-card-quote-callout p {
        font-size: 13.5px !important;
        line-height: 1.45 !important;
    }


    /* -----------------------------------------------------
       BLUE CARDS AND BLUE CALLOUT
       ----------------------------------------------------- */

    .wk-blue-card-container {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }

    .wk-blue-card-container > .e-con {
        min-height: 0 !important;

        padding: 18px 16px !important;

        border-radius: 8px !important;
    }

    .wk-blue-card-container .elementor-icon-box-title {
        margin-bottom: 8px !important;
    }

    .wk-blue-card-container .elementor-icon-box-title span {
        font-size: 16px !important;
        line-height: 1.15 !important;
    }

    .wk-blue-card-container .elementor-icon-box-description {
        font-size: 13px !important;
        line-height: 1.5 !important;
    }

    .wk-blue-section-glass-container {
        width: 100% !important;
        max-width: 100% !important;

        margin-top: 16px !important;

        padding:
            var(--wk-callout-padding-block)
            var(--wk-callout-padding-inline) !important;
    }

    .wk-blue-section-glass-container p {
        font-size: 13.5px !important;
        line-height: 1.5 !important;
    }


    /* -----------------------------------------------------
       WHITE CARD GRIDS
       ----------------------------------------------------- */

    .wk-white-card-container,
    .wk-white-section-container
    .e-con:has(> .wk-white-card):not(.wk-white-card-container) {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }

    .wk-white-card-container > .e-con,
    .wk-white-section-container
    .e-con:has(> .wk-white-card):not(.wk-white-card-container)
    > .e-con {
        min-height: 0 !important;

        padding: 18px 16px !important;

        border-radius: 8px !important;
    }

    .wk-white-card-container h3.elementor-heading-title,
    .wk-white-section-container
    .e-con:has(> .wk-white-card):not(.wk-white-card-container)
    h3.elementor-heading-title {
        min-height: 0 !important;

        font-size: 16px !important;
        line-height: 1.25 !important;
    }

    .wk-white-section-container
    .e-con:has(> .wk-white-card):not(.wk-white-card-container)
    h6.elementor-heading-title {
        font-size: 11px !important;
        line-height: 1.35 !important;
    }

    .wk-white-card-container .e-paragraph-base,
    .wk-white-section-container
    .e-con:has(> .wk-white-card):not(.wk-white-card-container)
    p,
    .wk-white-section-container
    .e-con:has(> .wk-white-card):not(.wk-white-card-container)
    li {
        font-size: 13px !important;
        line-height: 1.45 !important;
    }

    .wk-white-section-container
    .e-con:has(> .wk-white-card):not(.wk-white-card-container)
    .elementor-widget-text-editor ul {
        padding-left: 18px !important;
    }

    .wk-white-section-container
    .e-con:has(> .wk-white-card):not(.wk-white-card-container)
    .elementor-widget-text-editor li {
        margin-bottom: 8px !important;
        line-height: 1.4 !important;
    }


    /* -----------------------------------------------------
       COURSE CAROUSEL
       ----------------------------------------------------- */

    .wk-carousel {
        --wk-carousel-content-inset: 18px;
    }

    .wk-carousel .swiper-wrapper {
        align-items: flex-start !important;
    }

    .wk-carousel .swiper-slide,
    .wk-carousel .swiper-slide > .e-con,
    .wk-carousel .swiper-slide > .e-con > .e-con-inner {
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
    }

    .wk-carousel .swiper-slide > .e-con > .e-con-inner {
        padding-bottom: 16px !important;
    }

    .wk-carousel .elementor-widget-image {
        aspect-ratio: 4 / 3 !important;
    }

    .wk-carousel .elementor-widget-image
    + .elementor-widget-heading,
    .wk-carousel .elementor-widget-image
    + .elementor-widget-heading
    + .elementor-widget-heading {
        min-height: 0 !important;
    }

    .wk-carousel h3.elementor-heading-title {
        margin-top: 14px !important;

        font-size: 17px !important;
        line-height: 1.18 !important;
    }

    .wk-carousel h6.elementor-heading-title {
        font-size: 10.5px !important;
        line-height: 1.35 !important;
    }

    .wk-carousel .elementor-widget-text-editor p:first-child {
        font-size: 11.5px !important;
    }

    .wk-carousel .elementor-widget-text-editor li {
        font-size: 12.5px !important;
        line-height: 1.4 !important;
    }

    .wk-carousel .elementor-swiper-button {
        display: none !important;
    }

    .wk-carousel .swiper-pagination {
        margin-top: 14px !important;
    }


    /* -----------------------------------------------------
       TESTIMONIAL
       ----------------------------------------------------- */

    .wk-blue-section-container
    .elementor-widget-testimonial-carousel {
        width: 100% !important;
        max-width: 100% !important;

        margin: 0 !important;
    }

    .wk-blue-section-container
    .elementor-widget-testimonial-carousel
    .elementor-testimonial {
        padding: 18px 16px !important;

        border-radius: 8px !important;
    }

    .wk-blue-section-container
    .elementor-widget-testimonial-carousel
    .elementor-testimonial__text {
        font-size: 14px !important;
        line-height: 1.5 !important;
        text-align: left !important;
    }

    .wk-blue-section-container
    .elementor-widget-testimonial-carousel
    .elementor-testimonial__footer {
        margin-top: 12px !important;
    }


    /* -----------------------------------------------------
       CTA AND RENEWAL NOTE
       ----------------------------------------------------- */

    .wk-call-to-action-container {
        width: 100% !important;
        max-width: 100% !important;
    }

    .wk-call-to-action-card {
        padding: 18px !important;

        border-radius: 8px !important;
    }

    .wk-call-to-action-card > .e-con {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }

    .wk-call-to-action-card > .e-con > .e-con:first-child {
        padding: 0 !important;
    }

    .wk-call-to-action-card > .e-con > .e-con:first-child
    h2.elementor-heading-title {
        font-size: 24px !important;
        line-height: 1.12 !important;
    }

    .wk-call-to-action-card > .e-con > .e-con:first-child p {
        font-size: 14px !important;
        line-height: 1.55 !important;
    }

    .wk-call-to-action-card > .e-con > .e-con:nth-child(2) {
        padding: 18px 16px !important;
    }

    .wk-call-to-action-card > .e-con > .e-con:nth-child(2)
    .elementor-widget-button .elementor-button {
        width: 100% !important;
    }

    .wk-call-to-action-container + .e-con {
        width: 100% !important;
        max-width: 100% !important;

        margin-top: 16px !important;

        padding:
            var(--wk-callout-padding-block)
            var(--wk-callout-padding-inline) !important;
    }

    .wk-call-to-action-container + .e-con p {
        font-size: 12.5px !important;
        line-height: 1.5 !important;
    }
}

/* =========================================================
   CNMSA — MOBILE WIDTH, IMAGE AND ENTRY-CARD CORRECTIONS
   ========================================================= */

@media screen and (max-width: 767px) {

    /* -----------------------------------------------------
       HERO: FORCE A TRUE SINGLE-COLUMN WIDTH
       ----------------------------------------------------- */

    .wk-hero-container {
        overflow-x: hidden !important;
    }

    .wk-hero-container > .e-con-inner {
        --width: 100% !important;
        --content-width: 100% !important;

        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;

        margin: 0 !important;
        padding: 0 !important;

        overflow: visible !important;
        box-sizing: border-box !important;
    }

    .wk-hero-copy-container,
    .wk-hero-image-container {
        --width: 100% !important;
        --content-width: 100% !important;

        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;

        flex: 0 0 100% !important;
        flex-basis: 100% !important;

        margin: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;

        box-sizing: border-box !important;
    }

    .wk-hero-copy-container > .elementor-widget,
    .wk-hero-image-container > .elementor-widget,
    .wk-hero-copy-container .elementor-widget-container,
    .wk-hero-image-container .elementor-widget-container {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;

        box-sizing: border-box !important;
    }

    .wk-hero-subtitle .elementor-heading-title,
    .wk-hero-title .elementor-heading-title,
    .wk-hero-copy,
    .wk-hero-copy p {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;

        white-space: normal !important;
        overflow-wrap: break-word !important;
        word-break: normal !important;
        hyphens: none !important;
    }

    .wk-hero-image-top-layer {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;

        margin: 0 !important;

        transform: none !important;
    }

    .wk-hero-image-top-layer img {
        display: block !important;

        width: min(100%, 290px) !important;
        max-width: 100% !important;
        height: auto !important;
        max-height: 360px !important;

        margin: 0 auto !important;

        object-fit: contain !important;
        object-position: center center !important;
    }


    /* -----------------------------------------------------
       WHAT CNMSA SOLVES: SHOW THE FULL SQUARE IMAGE
       ----------------------------------------------------- */

    .wk-card-container > .e-con > .elementor-widget-image:first-child {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        width: calc(100% + 32px) !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;

        margin-left: -16px !important;
        margin-right: -16px !important;

        overflow: hidden !important;
    }

    .wk-card-container > .e-con > .elementor-widget-image:first-child
    .elementor-widget-container {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        width: 100% !important;
        height: auto !important;

        margin: 0 !important;
        padding: 0 !important;
    }

    .wk-card-container > .e-con > .elementor-widget-image:first-child img {
        display: block !important;

        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;

        aspect-ratio: auto !important;

        margin: 0 auto !important;

        object-fit: contain !important;
        object-position: center center !important;
    }


    /* -----------------------------------------------------
       ENTRY REQUIREMENTS: LEFT-ALIGN THE COMPLETE CARD CONTENT
       ----------------------------------------------------- */

    .wk-white-section-container
    .e-con:has(> .wk-white-card):not(.wk-white-card-container)
    > .e-con {
        align-items: stretch !important;
    }

    .wk-white-section-container
    .e-con:has(> .wk-white-card):not(.wk-white-card-container)
    .elementor-widget-heading,
    .wk-white-section-container
    .e-con:has(> .wk-white-card):not(.wk-white-card-container)
    .elementor-widget-heading > .elementor-widget-container {
        width: 100% !important;

        text-align: left !important;
    }

    .wk-white-section-container
    .e-con:has(> .wk-white-card):not(.wk-white-card-container)
    h3.elementor-heading-title,
    .wk-white-section-container
    .e-con:has(> .wk-white-card):not(.wk-white-card-container)
    h6.elementor-heading-title {
        width: 100% !important;

        margin-left: 0 !important;
        margin-right: 0 !important;

        text-align: left !important;
    }

    .wk-white-section-container
    .e-con:has(> .wk-white-card):not(.wk-white-card-container)
    .elementor-divider {
        display: flex !important;
        justify-content: flex-start !important;
    }

    .wk-white-section-container
    .e-con:has(> .wk-white-card):not(.wk-white-card-container)
    .elementor-divider-separator {
        margin-left: 0 !important;
        margin-right: auto !important;
    }

    .wk-white-section-container
    .e-con:has(> .wk-white-card):not(.wk-white-card-container)
    .elementor-widget-text-editor,
    .wk-white-section-container
    .e-con:has(> .wk-white-card):not(.wk-white-card-container)
    .elementor-widget-text-editor > .elementor-widget-container,
    .wk-white-section-container
    .e-con:has(> .wk-white-card):not(.wk-white-card-container)
    .elementor-widget-text-editor ul,
    .wk-white-section-container
    .e-con:has(> .wk-white-card):not(.wk-white-card-container)
    .elementor-widget-text-editor li {
        text-align: left !important;
    }
}

/* =========================================================
   MOBILE HERO — HIDE IMAGE
   Keep the mobile hero focused on the copy and CTA.
   ========================================================= */

@media screen and (max-width: 767px) {

    .wk-hero-image-container {
        display: none !important;
    }

    .wk-hero-container > .e-con-inner {
        gap: 0 !important;
    }
}

/* =========================================================
   MOBILE HERO — DEFINITIVE IMAGE REMOVAL
   Higher-specificity reset for Elementor flex containers and widgets.
   ========================================================= */

@media screen and (max-width: 767px) {

    body .elementor .wk-hero-container > .e-con-inner
    > .wk-hero-image-container,
    body .elementor .wk-hero-container .wk-hero-image-container {
        display: none !important;
        visibility: hidden !important;

        width: 0 !important;
        max-width: 0 !important;
        min-width: 0 !important;

        height: 0 !important;
        max-height: 0 !important;
        min-height: 0 !important;

        flex: 0 0 0 !important;
        flex-basis: 0 !important;

        margin: 0 !important;
        padding: 0 !important;

        overflow: hidden !important;
    }

    body .elementor .wk-hero-container .wk-hero-image-top-layer,
    body .elementor .wk-hero-container .wk-hero-image-top-layer img {
        display: none !important;
        visibility: hidden !important;
    }

    body .elementor .wk-hero-container > .e-con-inner {
        gap: 0 !important;
    }
}


/* =========================================================
   CTA — CENTRED VARIANT
   Add both classes to the CTA wrapper:
   wk-call-to-action-container wk-call-to-action-container-centred
   ========================================================= */

.wk-call-to-action-container-centred {
    --width: 100% !important;

    width: min(100%, 980px) !important;
    max-width: 980px !important;
    min-width: 0 !important;

    margin-left: auto !important;
    margin-right: auto !important;
}


/*
 * Remove the standard CTA's two-column grid. The centred variant
 * contains one content path, so it should remain a single column.
 */
.wk-call-to-action-container-centred
.wk-call-to-action-card > .e-con {
    display: block !important;

    width: 100% !important;
    max-width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;
}


/* Centre the complete content stack inside the card. */
.wk-call-to-action-container-centred
.wk-call-to-action-card > .e-con > .e-con {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0 !important;

    width: 100% !important;
    max-width: 100% !important;

    margin: 0 auto !important;
    padding: 22px 18px !important;

    text-align: center !important;
}


/* Centre all nested Elementor containers rather than inheriting
 * the left-aligned layout used by the standard CTA component.
 */
.wk-call-to-action-container-centred
.wk-call-to-action-card .e-con {
    align-items: center !important;
}


/* Heading */
.wk-call-to-action-container-centred
.wk-call-to-action-card h2.elementor-heading-title {
    max-width: 760px !important;
    margin-left: auto !important;
    margin-right: auto !important;

    text-align: center !important;
    text-wrap: balance !important;
}


/* Main explanatory copy */
.wk-call-to-action-container-centred
.wk-call-to-action-card
.elementor-widget-text-editor {
    width: 100% !important;
    max-width: 760px !important;

    margin-left: auto !important;
    margin-right: auto !important;

    text-align: center !important;
}

.wk-call-to-action-container-centred
.wk-call-to-action-card
.elementor-widget-text-editor p {
    margin-left: auto !important;
    margin-right: auto !important;

    text-align: center !important;
}


/* Button row */
.wk-call-to-action-container-centred
.wk-call-to-action-card
.e-con:has(> .elementor-widget-button) {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 16px !important;

    width: 100% !important;
    max-width: 760px !important;

    margin: 24px auto 18px !important;
    padding: 0 !important;
}


/* Prevent Elementor's left-alignment classes from pulling the buttons left. */
.wk-call-to-action-container-centred
.wk-call-to-action-card
.elementor-widget-button {
    width: auto !important;
    max-width: 100% !important;

    margin: 0 !important;

    text-align: center !important;
}

.wk-call-to-action-container-centred
.wk-call-to-action-card
.elementor-widget-button .elementor-button {
    min-width: 220px !important;
}


/* Final supporting sentence */
.wk-call-to-action-container-centred
.wk-call-to-action-card
.e-con:has(> .elementor-widget-button)
+ .elementor-widget-text-editor {
    max-width: 720px !important;
    margin-top: 0 !important;
}


/* Tablet */
@media screen and (min-width: 768px) and (max-width: 1024px) {

    .wk-call-to-action-container-centred
    .wk-call-to-action-card > .e-con {
        display: block !important;
    }

    .wk-call-to-action-container-centred
    .wk-call-to-action-card > .e-con > .e-con {
        padding: 18px 12px !important;
    }
}


/* Mobile */
@media screen and (max-width: 767px) {

    .wk-call-to-action-container-centred
    .wk-call-to-action-card > .e-con > .e-con {
        padding: 4px 0 !important;
    }

    .wk-call-to-action-container-centred
    .wk-call-to-action-card
    .e-con:has(> .elementor-widget-button) {
        flex-direction: column !important;
        gap: 10px !important;

        margin: 20px auto 16px !important;
    }

    .wk-call-to-action-container-centred
    .wk-call-to-action-card
    .elementor-widget-button {
        width: 100% !important;
    }

    .wk-call-to-action-container-centred
    .wk-call-to-action-card
    .elementor-widget-button .elementor-button {
        width: 100% !important;
        min-width: 0 !important;
    }
}

/* =========================================================
   MOBILE HERO — EXPLICIT IMAGE OPT-IN
   Add wk-hero-show-image-mobile to a hero container that should
   retain its image on mobile. All existing hero behaviour remains.
   ========================================================= */

@media screen and (max-width: 767px) {

    body .elementor
    .wk-hero-container.wk-hero-show-image-mobile
    .wk-hero-image-container {
        display: block !important;
        visibility: visible !important;

        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;

        height: auto !important;
        max-height: none !important;
        min-height: 0 !important;

        flex: 0 0 100% !important;
        flex-basis: 100% !important;

        margin: 0 !important;
        padding: 0 !important;

        overflow: visible !important;
    }

    body .elementor
    .wk-hero-container.wk-hero-show-image-mobile
    .wk-hero-image-top-layer,
    body .elementor
    .wk-hero-container.wk-hero-show-image-mobile
    .wk-hero-image-top-layer img {
        display: block !important;
        visibility: visible !important;
    }

    body .elementor
    .wk-hero-container.wk-hero-show-image-mobile
    > .e-con-inner {
        gap: 20px !important;
    }
}

/* =========================================================
   SMALL HORIZONTAL CARDS — BUTTON POSITION
   Keep action buttons beneath the copy column, not beneath the image.
   ========================================================= */

.wk-card-container > .e-con > .elementor-widget-button {
    grid-column: 2 !important;
    grid-row: 5 !important;

    width: 100% !important;
    max-width: 100% !important;

    margin: 20px 0 0 !important;

    align-self: end !important;
    text-align: left !important;
}

.wk-card-container > .e-con > .elementor-widget-button .elementor-button {
    min-height: 44px !important;
    padding: 13px 24px !important;

    background: var(--wk-orange) !important;
    color: #FFFFFF !important;

    border: 1px solid var(--wk-orange) !important;
    border-radius: 0 !important;
    box-shadow: none !important;

    font-family: "Oswald", Sans-serif !important;
    font-size: 15px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    letter-spacing: 1px !important;
    text-transform: uppercase !important;
}

.wk-card-container > .e-con > .elementor-widget-button .elementor-button:hover,
.wk-card-container > .e-con > .elementor-widget-button .elementor-button:focus {
    background: var(--wk-orange-hover) !important;
    border-color: var(--wk-orange-hover) !important;
}


/* Mobile cards become one column, so the button follows the copy naturally. */
@media screen and (max-width: 767px) {

    .wk-card-container > .e-con > .elementor-widget-button {
        grid-column: 1 !important;
        grid-row: auto !important;

        margin-top: 18px !important;

        text-align: center !important;
    }

    .wk-card-container > .e-con > .elementor-widget-button .elementor-button {
        width: 100% !important;
    }
}

/* =========================================================
   50/50 CARD WRAPPER RESET
   The outer Elementor containers are layout wrappers only.
   Prevent inherited or Elementor-native card styling from appearing
   around the complete image-and-content pair.
   ========================================================= */

.wk-50-50-card-container,
.wk-50-50-body {
    background: transparent !important;

    border: 0 !important;
    border-radius: 0 !important;

    box-shadow: none !important;

    overflow: visible !important;
}

.wk-50-50-card-container {
    padding: 0 !important;
}

.wk-50-50-body {
    padding: 0 !important;
}

/*
 * Only the content panel should carry the white card treatment.
 */
.wk-50-50-body > .wk-large-card {
    background: var(--wk-surface) !important;

    border: 1px solid var(--wk-border) !important;
    border-top: 4px solid var(--wk-blue) !important;
    border-radius: 14px !important;

    box-shadow: 10px 12px 28px rgba(0, 0, 0, 0.16) !important;

    overflow: visible !important;
}

/*
 * The image remains visually separate from the white card.
 */
.wk-50-50-body > .wk-large-card-image {
    background: transparent !important;

    border: 0 !important;
    border-radius: 0 !important;

    box-shadow: none !important;

    overflow: visible !important;
}

/* =========================================================
   QUOTE SECTION — AUTHOR SPACING AND FOLLOWING SECTION GAP
   ========================================================= */

.wk-blue-section-container
+ .e-con-boxed:has(.e-paragraph-base + .e-heading-base)
.e-heading-base:first-of-type {
    margin-top: 18px !important;
    margin-bottom: 0 !important;
}

.wk-blue-section-container
+ .e-con-boxed:has(.e-paragraph-base + .e-heading-base)
.e-heading-base:first-of-type
+ .e-heading-base {
    margin-top: 8px !important;
}

.wk-blue-section-container
+ .e-con-boxed:has(.e-paragraph-base + .e-heading-base) {
    padding-bottom: 34px !important;
}

.wk-blue-section-container
+ .e-con-boxed:has(.e-paragraph-base + .e-heading-base)
+ .wk-blue-section-container {
    margin-top: 10px !important;
}


/* =========================================================
   BLUE SECTION — GLASS PANEL TO BUTTON SPACING
   ========================================================= */

.wk-blue-section-container
.wk-glass-panel
+ .wk-styled-button {
    margin-top: 24px !important;
}

@media screen and (max-width: 767px) {

    .wk-blue-section-container
    + .e-con-boxed:has(.e-paragraph-base + .e-heading-base) {
        padding-bottom: 26px !important;
    }

    .wk-blue-section-container
    .wk-glass-panel
    + .wk-styled-button {
        margin-top: 20px !important;
    }
}

/* =========================================================
   OUR SERVICES — BUTTON ALIGNMENT AND CONSISTENT SPACING
   Keep all card actions aligned beneath the copy with one shared gap.
   ========================================================= */

.wk-card-container > .e-con {
    display: grid !important;
    grid-template-rows: auto auto auto auto 1fr auto !important;
}

/*
 * The body copy occupies the flexible row so shorter cards push their
 * buttons down to the same baseline as longer cards.
 */
.wk-card-container > .e-con > .elementor-widget-text-editor {
    align-self: stretch !important;
}

/*
 * Use one consistent gap above every button and remove Elementor's
 * inherited alignment offsets.
 */
.wk-card-container > .e-con > .elementor-widget-button {
    grid-column: 2 !important;
    grid-row: 6 !important;

    align-self: end !important;

    width: 100% !important;
    max-width: 100% !important;

    margin: 16px 0 0 !important;
    padding: 0 !important;

    text-align: left !important;
}

.wk-card-container > .e-con > .elementor-widget-button
.elementor-widget-container {
    width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    text-align: left !important;
}

.wk-card-container > .e-con > .elementor-widget-button
.elementor-button {
    margin: 0 !important;
}


/* Mobile: normal single-column flow beneath the copy. */
@media screen and (max-width: 767px) {

    .wk-card-container > .e-con {
        grid-template-rows: auto !important;
    }

    .wk-card-container > .e-con > .elementor-widget-button {
        grid-column: 1 !important;
        grid-row: auto !important;

        margin-top: 16px !important;

        text-align: center !important;
    }

    .wk-card-container > .e-con > .elementor-widget-button
    .elementor-widget-container {
        text-align: center !important;
    }
}