/* ==========================================================================
   WebArt ARMEC — Internal Pages
   ========================================================================== */


/* ==========================================================================
   Page Hero
   ========================================================================== */

.wa-page-hero {
    position: relative;

    width: 100%;

    overflow: hidden;

    padding-block:
        clamp(68px, 7vw, 96px);

    color:
        var(--wa-color-white);

    background:
        linear-gradient(
            120deg,
            #071b33 0%,
            #0b2b4d 58%,
            #12365d 100%
        );

    isolation: isolate;
}


/* --------------------------------------------------------------------------
   Technical background
   -------------------------------------------------------------------------- */

.wa-page-hero::before {
    content: "";

    position: absolute;
    inset: 0;

    z-index: 0;

    background:
        radial-gradient(
            circle at 80% 20%,
            rgba(226, 29, 43, 0.08),
            transparent 22%
        ),
        linear-gradient(
            90deg,
            rgba(255, 255, 255, 0.025) 1px,
            transparent 1px
        ),
        linear-gradient(
            rgba(255, 255, 255, 0.025) 1px,
            transparent 1px
        );

    background-size:
        auto,
        52px 52px,
        52px 52px;

    pointer-events: none;
}


/* --------------------------------------------------------------------------
   Large geometric detail
   -------------------------------------------------------------------------- */

.wa-page-hero::after {
    content: "";

    position: absolute;

    right: -120px;
    bottom: -220px;

    z-index: 0;

    width: 420px;
    height: 420px;

    border:
        1px solid
        rgba(255, 255, 255, 0.05);

    transform:
        rotate(45deg);

    pointer-events: none;
}


/* ==========================================================================
   Hero Inner
   ========================================================================== */

.elementor-element.wa-page-hero__inner {
    position: relative;
    z-index: 2;

    display: grid !important;

    grid-template-columns:
        minmax(0, 0.92fr)
        minmax(0, 1.08fr);

    align-items: center;

    gap:
        clamp(42px, 5vw, 78px);
}


/* ==========================================================================
   Hero Content
   ========================================================================== */

.elementor-element.wa-page-hero__content {
    display: flex !important;
    flex-direction: column;

    align-items: flex-start;

    min-width: 0;

    width: 100%;
    max-width: 580px;
}


/* ==========================================================================
   Hero Eyebrow
   ========================================================================== */

.wa-page-hero__eyebrow {
    margin:
        0
        0
        14px !important;
}

.wa-page-hero__eyebrow
.elementor-widget-container {
    margin: 0 !important;
}

.wa-page-hero__eyebrow
.elementor-heading-title {
    display: inline-flex;

    align-items: center;

    margin: 0;

    color:
        rgba(255, 255, 255, 0.78) !important;

    font-family:
        var(--wa-font-primary);

    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.2;

    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.wa-page-hero__eyebrow
.elementor-heading-title::before {
    content: "";

    width: 6px;
    height: 6px;

    margin-right: 8px;

    flex:
        0
        0
        6px;

    background:
        var(--wa-color-accent);

    border-radius: 1px;
}


/* ==========================================================================
   Hero Title
   ========================================================================== */

.wa-page-hero__title {
    width: 100%;
    max-width: 560px;

    margin:
        0
        0
        var(--wa-space-3) !important;
}

.wa-page-hero__title
.elementor-widget-container {
    margin: 0 !important;
}

.wa-page-hero__title
.elementor-heading-title {
    margin: 0;

    color:
        var(--wa-color-white) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        clamp(2.6rem, 4vw, 4.25rem);

    font-weight: 700;
    line-height: 1.02;

    letter-spacing: -0.05em;

    text-wrap: balance;
}

.wa-page-hero__title
.wa-text-accent {
    color:
        var(--wa-color-accent);
}


/* ==========================================================================
   Hero Lead
   ========================================================================== */

.wa-page-hero__lead {
    width: 100%;
    max-width: 560px;

    margin: 0 !important;
}

.wa-page-hero__lead
.elementor-widget-container {
    margin: 0 !important;
}

.wa-page-hero__lead,
.wa-page-hero__lead p {
    color:
        rgba(255, 255, 255, 0.72) !important;

    font-family:
        var(--wa-font-primary);

    font-size: 0.96rem;
    line-height: 1.72;
}

.wa-page-hero__lead p {
    margin: 0 !important;
}


/* ==========================================================================
   Hero Media
   ========================================================================== */

.elementor-element.wa-page-hero__media {
    position: relative;

    min-width: 0;

    width: 100%;
    max-width: 650px;

    justify-self: end;

    padding:
        0
        20px
        22px
        0;

    box-sizing: border-box;
}


/* --------------------------------------------------------------------------
   Clean displaced red frame
   -------------------------------------------------------------------------- */

.elementor-element.wa-page-hero__media::before {
    content: "";

    position: absolute;

    top: 20px;
    right: 0;
    bottom: 0;
    left: 20px;

    z-index: 0;

    border:
        1px solid
        rgba(226, 29, 43, 0.78);

    border-radius:
        var(--wa-radius-md);

    pointer-events: none;
}


/* ==========================================================================
   Hero Image
   ========================================================================== */

.wa-page-hero__image {
    position: relative;
    z-index: 2;

    width: 100%;

    margin: 0 !important;

    overflow: hidden;

    background:
        #c7d0d8;

    border-radius:
        var(--wa-radius-md);

    box-shadow:
        0 24px 55px
        rgba(0, 0, 0, 0.16);
}

.wa-page-hero__image,
.wa-page-hero__image
.elementor-widget-container {
    width: 100%;
}

.wa-page-hero__image
.elementor-widget-container {
    min-height: 360px;
}

.wa-page-hero__image img {
    display: block;

    width: 100%;
    height: auto;

    aspect-ratio:
        16 / 10;

    object-fit: cover;

    transition:
        transform
        700ms
        cubic-bezier(0.22, 1, 0.36, 1);
}

.elementor-element.wa-page-hero__media:hover
.wa-page-hero__image img {
    transform:
        scale(1.025);
}


/* ==========================================================================
   Hero Responsive — Tablet
   ========================================================================== */

@media (max-width: 1024px) {

    .wa-page-hero {
        padding-block:
            60px;
    }

    .elementor-element.wa-page-hero__inner {
        grid-template-columns:
            1fr;

        gap:
            42px;
    }

    .elementor-element.wa-page-hero__content {
        max-width:
            700px;
    }

    .wa-page-hero__title,
    .wa-page-hero__lead {
        max-width:
            100%;
    }

    .wa-page-hero__title
    .elementor-heading-title {
        font-size:
            clamp(2.3rem, 5vw, 3.5rem);
    }

    .elementor-element.wa-page-hero__media {
        max-width:
            760px;

        justify-self:
            start;
    }

    .wa-page-hero__image
    .elementor-widget-container {
        min-height:
            300px;
    }

}


/* ==========================================================================
   Hero Responsive — Mobile
   ========================================================================== */

@media (max-width: 767px) {

    .wa-page-hero {
        padding-block:
            46px
            52px;
    }

    .elementor-element.wa-page-hero__inner {
        gap:
            32px;
    }

    .wa-page-hero__eyebrow {
        margin-bottom:
            12px !important;
    }

    .wa-page-hero__title
    .elementor-heading-title {
        font-size:
            clamp(2.05rem, 9vw, 2.95rem);

        line-height:
            1.04;

        letter-spacing:
            -0.04em;
    }

    .wa-page-hero__lead,
    .wa-page-hero__lead p {
        font-size:
            0.92rem;

        line-height:
            1.65;
    }

    .elementor-element.wa-page-hero__media {
        padding:
            0
            14px
            14px
            0;
    }

    .elementor-element.wa-page-hero__media::before {
        top:
            14px;

        left:
            14px;
    }

    .wa-page-hero__image
    .elementor-widget-container {
        min-height:
            240px;
    }

    .wa-page-hero__image img {
        aspect-ratio:
            4 / 3;
    }

}


/* ==========================================================================
   Services Catalog
   ========================================================================== */

.wa-services-catalog {
    position: relative;

    padding-top:
        var(--wa-space-8);

    padding-bottom:
        clamp(28px, 3vw, 42px);

    background:
        var(--wa-color-white);

    color:
        var(--wa-color-text);
}


.elementor-element.wa-services-catalog__inner {
    display: flex !important;
    flex-direction: column;

    gap:
        clamp(40px, 5vw, 64px);
}


/* ==========================================================================
   Catalog Intro
   ========================================================================== */

.elementor-element.wa-services-catalog__intro {
    display: grid !important;

    grid-template-columns:
        minmax(0, 0.9fr)
        minmax(0, 1.1fr);

    align-items: end;

    column-gap:
        clamp(48px, 7vw, 100px);

    row-gap:
        12px;
}


.wa-services-catalog__eyebrow {
    grid-column:
        1 / -1;

    margin:
        0 !important;
}

.wa-services-catalog__eyebrow
.elementor-widget-container {
    margin:
        0 !important;
}

.wa-services-catalog__eyebrow
.elementor-heading-title {
    display: inline-flex;

    align-items: center;

    margin: 0;

    color:
        var(--wa-color-accent) !important;

    font-family:
        var(--wa-font-primary);

    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.2;

    letter-spacing:
        0.12em;

    text-transform:
        uppercase;
}

.wa-services-catalog__eyebrow
.elementor-heading-title::before {
    content: "";

    width: 6px;
    height: 6px;

    margin-right: 8px;

    flex:
        0 0 6px;

    background:
        var(--wa-color-accent);

    border-radius:
        1px;
}


.wa-services-catalog__title {
    margin:
        0 !important;
}

.wa-services-catalog__title
.elementor-widget-container {
    margin:
        0 !important;
}

.wa-services-catalog__title
.elementor-heading-title {
    max-width:
        580px;

    margin:
        0;

    color:
        var(--wa-color-primary) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        clamp(2rem, 3.1vw, 3.15rem);

    font-weight:
        700;

    line-height:
        1.06;

    letter-spacing:
        -0.04em;

    text-wrap:
        balance;
}

.wa-services-catalog__title
.wa-text-accent {
    color:
        var(--wa-color-accent);
}


.wa-services-catalog__lead {
    max-width:
        520px;

    margin:
        0 !important;
}

.wa-services-catalog__lead
.elementor-widget-container,
.wa-services-catalog__lead p {
    margin:
        0 !important;

    color:
        var(--wa-color-muted) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        0.94rem;

    line-height:
        1.7;
}


/* ==========================================================================
   Catalog Grid
   ========================================================================== */

.elementor-element.wa-services-catalog__grid {
    display: grid !important;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap:
        20px;
}


/* ==========================================================================
   Catalog Card
   ========================================================================== */

.elementor-element.wa-services-catalog__card {
    position: relative;

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

    align-items: flex-start;

    min-width: 0;
    min-height: 320px;

    padding:
        clamp(28px, 3vw, 38px);

    background:
        #fff;

    border:
        1px solid
        rgba(7, 27, 51, 0.10);

    border-radius:
        var(--wa-radius-md);

    overflow: hidden;

    box-shadow:
        0 10px 34px
        rgba(7, 27, 51, 0.045);

    transition:
        transform var(--wa-transition),
        border-color var(--wa-transition),
        box-shadow var(--wa-transition);
}

.elementor-element.wa-services-catalog__card::before {
    content: "";

    position: absolute;

    top: 0;
    left: 0;

    z-index: 2;

    width:
        42px;

    height:
        3px;

    background:
        var(--wa-color-accent);

    transition:
        width
        320ms
        cubic-bezier(0.22, 1, 0.36, 1);
}


/* ==========================================================================
   Catalog Icon
   ========================================================================== */

.wa-services-catalog__icon {
    margin:
        0
        0
        24px !important;

    color:
        var(--wa-color-accent) !important;
}

.wa-services-catalog__icon
.elementor-widget-container {
    display: flex;

    align-items: center;

    margin:
        0 !important;
}

.wa-services-catalog__icon
.elementor-icon {
    display: flex;

    align-items: center;
    justify-content: center;

    width:
        44px;

    height:
        44px;

    padding:
        0;

    color:
        var(--wa-color-accent) !important;

    background:
        transparent !important;
}

.wa-services-catalog__icon
.elementor-icon i {
    color:
        currentColor !important;

    font-size:
        34px;
}

.wa-services-catalog__icon
.elementor-icon svg {
    width:
        34px;

    height:
        34px;

    fill:
        currentColor !important;

    color:
        currentColor !important;
}


/* ==========================================================================
   Catalog Card Title
   ========================================================================== */

.wa-services-catalog__card-title {
    margin:
        0
        0
        13px !important;
}

.wa-services-catalog__card-title
.elementor-widget-container {
    margin:
        0 !important;
}

.wa-services-catalog__card-title
.elementor-heading-title {
    margin: 0;

    color:
        var(--wa-color-primary) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        clamp(1.1rem, 1.5vw, 1.35rem);

    font-weight:
        700;

    line-height:
        1.25;

    letter-spacing:
        -0.025em;
}


/* ==========================================================================
   Catalog Text
   ========================================================================== */

.wa-services-catalog__text {
    margin:
        0
        0
        24px !important;
}

.wa-services-catalog__text
.elementor-widget-container,
.wa-services-catalog__text p {
    margin:
        0 !important;

    color:
        var(--wa-color-muted) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        0.84rem;

    line-height:
        1.65;
}


/* ==========================================================================
   Catalog Link
   ========================================================================== */

.wa-services-catalog__link {
    margin:
        auto
        0
        0 !important;
}

.wa-services-catalog__link
.elementor-widget-container,
.wa-services-catalog__link p {
    margin:
        0 !important;
}

.wa-services-catalog__link a,
.wa-services-catalog__link {
    color:
        var(--wa-color-accent);

    font-family:
        var(--wa-font-primary);

    font-size:
        0.76rem;

    font-weight:
        700;

    line-height:
        1.3;

    text-decoration:
        none;
}


/* ==========================================================================
   Catalog Hover
   ========================================================================== */

.elementor-element.wa-services-catalog__card:hover {
    transform:
        translateY(-5px);

    border-color:
        rgba(226, 29, 43, 0.24);

    box-shadow:
        0 18px 45px
        rgba(7, 27, 51, 0.09);
}

.elementor-element.wa-services-catalog__card:hover::before {
    width:
        100%;
}


/* ==========================================================================
   Catalog Responsive
   ========================================================================== */

@media (max-width: 1024px) {

    .wa-services-catalog {
        padding-top:
            var(--wa-space-7);

        padding-bottom:
            32px;
    }

    .elementor-element.wa-services-catalog__intro {
        grid-template-columns:
            1fr;

        align-items:
            start;

        gap:
            14px;
    }

    .wa-services-catalog__eyebrow {
        grid-column:
            auto;
    }

    .elementor-element.wa-services-catalog__grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

}


@media (max-width: 767px) {

    .wa-services-catalog {
        padding-top:
            var(--wa-space-5);

        padding-bottom:
            24px;
    }

    .elementor-element.wa-services-catalog__inner {
        gap:
            36px;
    }

    .elementor-element.wa-services-catalog__grid {
        grid-template-columns:
            1fr;

        gap:
            16px;
    }

    .elementor-element.wa-services-catalog__card {
        min-height:
            0;

        padding:
            28px
            24px;
    }

}


/* ==========================================================================
   Internal CTA
   ========================================================================== */

.wa-internal-cta {
    position: relative;

    padding-top:
        clamp(12px, 1.5vw, 22px);

    padding-bottom:
        var(--wa-space-7);

    background:
        var(--wa-color-white);
}


.elementor-element.wa-internal-cta__inner {
    display:
        block !important;
}


.elementor-element.wa-internal-cta__card {
    position: relative;

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

    align-items:
        flex-start;

    min-height:
        320px;

    padding:
        clamp(42px, 5vw, 66px);

    overflow:
        hidden;

    color:
        var(--wa-color-white);

    background:
        linear-gradient(
            120deg,
            #071b33 0%,
            #0b2d50 60%,
            #17375d 100%
        );

    border-radius:
        var(--wa-radius-md);

    box-shadow:
        0 22px 55px
        rgba(7, 27, 51, 0.16);

    isolation:
        isolate;
}


.elementor-element.wa-internal-cta__card::before {
    content: "";

    position: absolute;
    inset: 0;

    z-index:
        -2;

    background:
        linear-gradient(
            90deg,
            rgba(255, 255, 255, 0.026) 1px,
            transparent 1px
        ),
        linear-gradient(
            rgba(255, 255, 255, 0.026) 1px,
            transparent 1px
        );

    background-size:
        48px 48px;

    pointer-events:
        none;
}


.elementor-element.wa-internal-cta__card::after {
    content: "";

    position: absolute;

    right:
        -52px;

    bottom:
        -92px;

    z-index:
        -1;

    width:
        250px;

    height:
        250px;

    border:
        30px solid
        rgba(226, 29, 43, 0.14);

    transform:
        rotate(45deg);

    pointer-events:
        none;
}


.wa-internal-cta__title {
    width:
        100%;

    max-width:
        720px;

    margin:
        0
        0
        18px !important;
}

.wa-internal-cta__title
.elementor-widget-container {
    margin:
        0 !important;
}

.wa-internal-cta__title
.elementor-heading-title {
    margin: 0;

    color:
        var(--wa-color-white) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        clamp(2rem, 3.3vw, 3.4rem);

    font-weight:
        700;

    line-height:
        1.05;

    letter-spacing:
        -0.04em;

    text-wrap:
        balance;
}

.wa-internal-cta__title
.wa-text-accent {
    color:
        var(--wa-color-accent);
}


.wa-internal-cta__text {
    width:
        100%;

    max-width:
        650px;

    margin:
        0
        0
        28px !important;
}

.wa-internal-cta__text
.elementor-widget-container,
.wa-internal-cta__text p {
    margin:
        0 !important;

    color:
        rgba(255, 255, 255, 0.72) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        0.95rem;

    line-height:
        1.7;
}


@media (max-width: 1024px) {

    .wa-internal-cta {
        padding-top:
            14px;

        padding-bottom:
            var(--wa-space-6);
    }

    .elementor-element.wa-internal-cta__card {
        min-height:
            290px;
    }

}


@media (max-width: 767px) {

    .wa-internal-cta {
        padding-top:
            10px;

        padding-bottom:
            var(--wa-space-5);
    }

    .elementor-element.wa-internal-cta__card {
        min-height:
            0;

        padding:
            34px
            26px;
    }

    .wa-internal-cta__title
    .elementor-heading-title {
        font-size:
            clamp(1.9rem, 8.5vw, 2.45rem);
    }

}


/* ==========================================================================
   Service Detail — Overview
   ========================================================================== */

.wa-service-overview {
    position: relative;

    padding-block:
        var(--wa-space-8);

    overflow:
        hidden;

    background:
        #f7f9fb;
}


/* --------------------------------------------------------------------------
   Very subtle technical detail
   -------------------------------------------------------------------------- */

.wa-service-overview::before {
    content: "";

    position: absolute;

    right:
        -180px;

    top:
        50%;

    width:
        420px;

    height:
        420px;

    border:
        1px solid
        rgba(7, 27, 51, 0.045);

    transform:
        translateY(-50%)
        rotate(45deg);

    pointer-events:
        none;
}


/* ==========================================================================
   Overview Inner
   ========================================================================== */

.elementor-element.wa-service-overview__inner {
    position:
        relative;

    z-index:
        1;

    display: grid !important;

    grid-template-columns:
        minmax(0, 0.78fr)
        minmax(0, 1.22fr);

    align-items:
        center;

    gap:
        clamp(56px, 7vw, 100px);
}


/*
 * We control the visual order through CSS.
 * The Elementor tree does not need to be rebuilt.
 */

.elementor-element.wa-service-overview__media {
    grid-column:
        1;

    grid-row:
        1;
}

.elementor-element.wa-service-overview__content {
    grid-column:
        2;

    grid-row:
        1;
}


/* ==========================================================================
   Overview Content
   ========================================================================== */

.elementor-element.wa-service-overview__content {
    display: flex !important;
    flex-direction: column;

    align-items:
        flex-start;

    justify-content:
        center;

    min-width:
        0;

    max-width:
        680px;
}


/* ==========================================================================
   Overview Eyebrow
   ========================================================================== */

.wa-service-overview__eyebrow {
    margin:
        0
        0
        13px !important;
}

.wa-service-overview__eyebrow
.elementor-widget-container {
    margin:
        0 !important;
}

.wa-service-overview__eyebrow
.elementor-heading-title {
    display:
        inline-flex;

    align-items:
        center;

    margin:
        0;

    color:
        var(--wa-color-accent) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        0.72rem;

    font-weight:
        700;

    line-height:
        1.2;

    letter-spacing:
        0.12em;

    text-transform:
        uppercase;
}

.wa-service-overview__eyebrow
.elementor-heading-title::before {
    content:
        "";

    width:
        6px;

    height:
        6px;

    margin-right:
        8px;

    flex:
        0 0 6px;

    background:
        var(--wa-color-accent);

    border-radius:
        1px;
}


/* ==========================================================================
   Overview Title
   ========================================================================== */

.wa-service-overview__title {
    width:
        100%;

    max-width:
        650px;

    margin:
        0
        0
        24px !important;
}

.wa-service-overview__title
.elementor-widget-container {
    margin:
        0 !important;
}

.wa-service-overview__title
.elementor-heading-title {
    margin:
        0;

    color:
        var(--wa-color-primary) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        clamp(2rem, 3vw, 3.15rem);

    font-weight:
        700;

    line-height:
        1.06;

    letter-spacing:
        -0.04em;

    text-wrap:
        balance;
}

.wa-service-overview__title
.wa-text-accent {
    color:
        var(--wa-color-accent);
}


/* ==========================================================================
   Overview Text
   ========================================================================== */

.wa-service-overview__text {
    width:
        100%;

    max-width:
        660px;

    margin:
        0 !important;
}

.wa-service-overview__text
.elementor-widget-container {
    margin:
        0 !important;
}

.wa-service-overview__text,
.wa-service-overview__text p {
    color:
        var(--wa-color-muted) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        0.96rem;

    line-height:
        1.82;
}

.wa-service-overview__text p {
    margin:
        0 !important;
}

.wa-service-overview__text p + p {
    margin-top:
        16px !important;
}


/* ==========================================================================
   Overview Media
   ========================================================================== */

.elementor-element.wa-service-overview__media {
    position:
        relative;

    min-width:
        0;

    width:
        100%;
}


/* Small red editorial marker */

.elementor-element.wa-service-overview__media::before {
    content:
        "";

    position:
        absolute;

    top:
        -10px;

    left:
        -10px;

    z-index:
        3;

    width:
        54px;

    height:
        4px;

    background:
        var(--wa-color-accent);

    pointer-events:
        none;
}


/* ==========================================================================
   Overview Image
   ========================================================================== */

.wa-service-overview__image {
    position:
        relative;

    z-index:
        2;

    width:
        100%;

    margin:
        0 !important;

    overflow:
        hidden;

    background:
        #e9edf1;

    border-radius:
        var(--wa-radius-md);

    box-shadow:
        0 20px 45px
        rgba(7, 27, 51, 0.10);
}

.wa-service-overview__image,
.wa-service-overview__image
.elementor-widget-container {
    width:
        100%;
}

.wa-service-overview__image
.elementor-widget-container {
    min-height:
        380px;
}

.wa-service-overview__image img {
    display:
        block;

    width:
        100%;

    height:
        auto;

    aspect-ratio:
        4 / 5;

    object-fit:
        cover;

    transition:
        transform
        700ms
        cubic-bezier(0.22, 1, 0.36, 1);
}

.elementor-element.wa-service-overview__media:hover
.wa-service-overview__image img {
    transform:
        scale(1.025);
}

/* ==========================================================================
   Service Benefits
   ========================================================================== */

.wa-service-benefits {
    position: relative;

    padding-block:
        0
        var(--wa-space-8);

    background:
        #f7f9fb;
}


/* ==========================================================================
   Benefits Header
   ========================================================================== */

.elementor-element.wa-service-benefits__header {
    margin-bottom:
        22px;
}

.wa-service-benefits__title {
    margin:
        0 !important;
}

.wa-service-benefits__title
.elementor-widget-container {
    margin:
        0 !important;
}

.wa-service-benefits__title
.elementor-heading-title {
    margin:
        0;

    color:
        var(--wa-color-primary) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        clamp(1.25rem, 1.8vw, 1.65rem);

    font-weight:
        700;

    line-height:
        1.2;

    letter-spacing:
        -0.025em;
}


/* ==========================================================================
   Benefits Grid
   ========================================================================== */

.elementor-element.wa-service-benefits__inner {
    display:
        grid !important;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap:
        14px;
}


/* ==========================================================================
   Benefit
   ========================================================================== */

.elementor-element.wa-service-benefit {
    position:
        relative;

    display:
        grid !important;

    grid-template-columns:
        26px
        minmax(0, 1fr);

    align-items:
        center;

    gap:
        14px;

    min-width:
        0;

    min-height:
        82px;

    padding:
        20px
        22px;

    background:
        rgba(255, 255, 255, 0.72);

    border:
        1px solid
        rgba(7, 27, 51, 0.08);

    border-radius:
        var(--wa-radius-md);

    box-shadow:
        0 6px 20px
        rgba(7, 27, 51, 0.025);

    transition:
        border-color var(--wa-transition),
        background var(--wa-transition),
        transform var(--wa-transition);
}


/* --------------------------------------------------------------------------
   Check
   -------------------------------------------------------------------------- */

.elementor-element.wa-service-benefit::before {
    content:
        "✓";

    position:
        static;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    width:
        24px;

    height:
        24px;

    color:
        var(--wa-color-white);

    background:
        var(--wa-color-accent);

    border-radius:
        50%;

    font-family:
        var(--wa-font-primary);

    font-size:
        0.72rem;

    font-weight:
        800;

    transform:
        none;
}


/* ==========================================================================
   Benefit Title
   ========================================================================== */

.wa-service-benefit
.elementor-widget-heading {
    width:
        100%;

    margin:
        0 !important;
}

.wa-service-benefit
.elementor-widget-heading
.elementor-widget-container {
    margin:
        0 !important;
}

.wa-service-benefit
.elementor-heading-title {
    margin:
        0;

    color:
        var(--wa-color-primary) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        0.92rem !important;

    font-weight:
        700;

    line-height:
        1.4;

    letter-spacing:
        -0.01em;
}


/* ==========================================================================
   Hover
   ========================================================================== */

.elementor-element.wa-service-benefit:hover {
    transform:
        translateY(-2px);

    background:
        #ffffff;

    border-color:
        rgba(226, 29, 43, 0.16);
}


/* ==========================================================================
   Responsive — Mobile
   ========================================================================== */

@media (max-width: 767px) {

    .wa-service-benefits {
        padding-bottom:
            var(--wa-space-5);
    }

    .elementor-element.wa-service-benefits__header {
        margin-bottom:
            18px;
    }

    .elementor-element.wa-service-benefits__inner {
        grid-template-columns:
            1fr;

        gap:
            10px;
    }

    .elementor-element.wa-service-benefit {
        min-height:
            74px;

        padding:
            18px
            20px;
    }

}

/* ==========================================================================
   Service CTA
   ========================================================================== */

.wa-service-cta {
    position: relative;

    padding:
        clamp(40px, 4vw, 56px)
        0
        var(--wa-space-7);

    background:
        var(--wa-color-white);
}


/* ==========================================================================
   CTA Inner
   ========================================================================== */

.elementor-element.wa-service-cta__inner {
    position:
        relative;

    display:
        grid !important;

    grid-template-columns:
        minmax(0, 1fr)
        auto;

    align-items:
        center;

    gap:
        clamp(36px, 5vw, 72px);

    padding:
        clamp(36px, 5vw, 58px);

    overflow:
        hidden;

    background:
        linear-gradient(
            105deg,
            #ffffff 0%,
            #ffffff 72%,
            #f4f6f8 72%,
            #edf1f4 100%
        );

    border:
        1px solid
        rgba(7, 27, 51, 0.09);

    border-left:
        7px solid
        var(--wa-color-accent);

    border-radius:
        var(--wa-radius-md);

    box-shadow:
        0 20px 50px
        rgba(7, 27, 51, 0.09);

    isolation:
        isolate;
}


.elementor-element.wa-service-cta__inner::after {
    content:
        "";

    position:
        absolute;

    right:
        -74px;

    bottom:
        -110px;

    z-index:
        -1;

    width:
        220px;

    height:
        220px;

    border:
        28px solid
        rgba(7, 27, 51, 0.08);

    transform:
        rotate(45deg);

    pointer-events:
        none;
}


/* ==========================================================================
   CTA Content
   ========================================================================== */

.elementor-element.wa-service-cta__content {
    display:
        flex !important;

    flex-direction:
        column;

    align-items:
        flex-start;

    min-width:
        0;
}


.wa-service-cta__eyebrow {
    margin:
        0
        0
        11px !important;
}

.wa-service-cta__eyebrow
.elementor-widget-container {
    margin:
        0 !important;
}

.wa-service-cta__eyebrow
.elementor-heading-title {
    display:
        inline-flex;

    align-items:
        center;

    margin:
        0;

    color:
        var(--wa-color-accent) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        0.68rem;

    font-weight:
        700;

    line-height:
        1.2;

    letter-spacing:
        0.12em;

    text-transform:
        uppercase;
}

.wa-service-cta__eyebrow
.elementor-heading-title::before {
    content:
        "";

    width:
        6px;

    height:
        6px;

    margin-right:
        8px;

    background:
        var(--wa-color-accent);

    border-radius:
        1px;
}


.wa-service-cta__title {
    width:
        100%;

    max-width:
        650px;

    margin:
        0
        0
        14px !important;
}

.wa-service-cta__title
.elementor-widget-container {
    margin:
        0 !important;
}

.wa-service-cta__title
.elementor-heading-title {
    margin:
        0;

    color:
        var(--wa-color-primary) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        clamp(1.8rem, 2.8vw, 2.85rem);

    font-weight:
        700;

    line-height:
        1.08;

    letter-spacing:
        -0.04em;

    text-wrap:
        balance;
}

.wa-service-cta__title
.wa-text-accent {
    color:
        var(--wa-color-accent);
}


.wa-service-cta__text {
    width:
        100%;

    max-width:
        620px;

    margin:
        0 !important;
}

.wa-service-cta__text
.elementor-widget-container,
.wa-service-cta__text p {
    margin:
        0 !important;

    color:
        var(--wa-color-muted) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        0.9rem;

    line-height:
        1.7;
}


/* ==========================================================================
   CTA Action
   ========================================================================== */

.elementor-element.wa-service-cta__action {
    display:
        flex !important;

    align-items:
        center;

    justify-content:
        flex-end;

    min-width:
        220px;
}

.wa-service-cta__button {
    margin:
        0 !important;
}


/* ==========================================================================
   Service Detail — Tablet
   ========================================================================== */

@media (max-width: 1024px) {

    .wa-service-overview {
        padding-block:
            var(--wa-space-7);
    }

    .elementor-element.wa-service-overview__inner {
        grid-template-columns:
            1fr;

        gap:
            42px;
    }

    .elementor-element.wa-service-overview__media {
        grid-column:
            1;

        grid-row:
            2;

        max-width:
            680px;
    }

    .elementor-element.wa-service-overview__content {
        grid-column:
            1;

        grid-row:
            1;

        max-width:
            720px;
    }

    .wa-service-overview__image img {
        aspect-ratio:
            16 / 10;
    }

    .elementor-element.wa-service-benefits__inner {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .elementor-element.wa-service-cta__inner {
        grid-template-columns:
            1fr;

        gap:
            28px;
    }

    .elementor-element.wa-service-cta__action {
        justify-content:
            flex-start;

        min-width:
            0;
    }

}


/* ==========================================================================
   Service Detail — Mobile
   ========================================================================== */

@media (max-width: 767px) {

    .wa-service-overview {
        padding-block:
            var(--wa-space-5);
    }

    .elementor-element.wa-service-overview__inner {
        gap:
            32px;
    }

    .wa-service-overview__title
    .elementor-heading-title {
        font-size:
            clamp(1.9rem, 8vw, 2.4rem);
    }

    .wa-service-overview__image
    .elementor-widget-container {
        min-height:
            240px;
    }

    .wa-service-overview__image img {
        aspect-ratio:
            4 / 3;
    }

    .wa-service-benefits {
        padding-block:
            12px
            var(--wa-space-5);
    }

    .elementor-element.wa-service-benefits__inner {
        grid-template-columns:
            1fr;

        gap:
            12px;
    }

    .elementor-element.wa-service-benefit {
        min-height:
            84px;

        padding:
            20px
            20px
            20px
            62px;
    }

    .elementor-element.wa-service-benefit::before {
        left:
            20px;

        width:
            22px;

        height:
            22px;
    }

    .wa-service-cta {
        padding-top:
            32px;

        padding-bottom:
            var(--wa-space-5);
    }

    .elementor-element.wa-service-cta__inner {
        padding:
            30px
            24px;

        border-left-width:
            5px;
    }

    .elementor-element.wa-service-cta__action,
    .wa-service-cta__button,
    .wa-service-cta__button
    .elementor-button {
        width:
            100%;
    }

}


/* ==========================================================================
   Reduced Motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {

    .wa-page-hero__image img,
    .wa-service-overview__image img {
        transition:
            none;
    }

    .elementor-element.wa-page-hero__media:hover
    .wa-page-hero__image img,
    .elementor-element.wa-service-overview__media:hover
    .wa-service-overview__image img {
        transform:
            none;
    }

}

/* ==========================================================================
   Projects Catalog
   Internal page only — scoped to avoid affecting Home project cards
   ========================================================================== */

.wa-projects-catalog {
    position: relative;

    padding-top:
        var(--wa-space-8);

    padding-bottom:
        clamp(28px, 3vw, 42px);

    background:
        var(--wa-color-white);

    color:
        var(--wa-color-text);
}


/* ==========================================================================
   Projects Catalog Inner
   ========================================================================== */

.wa-projects-catalog
.elementor-element.wa-projects-catalog__inner {
    display:
        flex !important;

    flex-direction:
        column;

    gap:
        clamp(42px, 5vw, 64px);
}


/* ==========================================================================
   Projects Intro
   ========================================================================== */

.wa-projects-catalog
.elementor-element.wa-projects-catalog__intro {
    display:
        grid !important;

    grid-template-columns:
        minmax(0, 0.9fr)
        minmax(0, 1.1fr);

    align-items:
        end;

    column-gap:
        clamp(48px, 7vw, 100px);

    row-gap:
        12px;
}


/* --------------------------------------------------------------------------
   Intro Eyebrow
   -------------------------------------------------------------------------- */

.wa-projects-catalog
.wa-projects-catalog__eyebrow {
    grid-column:
        1 / -1;

    margin:
        0 !important;
}

.wa-projects-catalog
.wa-projects-catalog__eyebrow
.elementor-widget-container {
    margin:
        0 !important;
}

.wa-projects-catalog
.wa-projects-catalog__eyebrow
.elementor-heading-title {
    display:
        inline-flex;

    align-items:
        center;

    margin:
        0;

    color:
        var(--wa-color-accent) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        0.72rem;

    font-weight:
        700;

    line-height:
        1.2;

    letter-spacing:
        0.12em;

    text-transform:
        uppercase;
}

.wa-projects-catalog
.wa-projects-catalog__eyebrow
.elementor-heading-title::before {
    content:
        "";

    width:
        6px;

    height:
        6px;

    margin-right:
        8px;

    flex:
        0 0 6px;

    background:
        var(--wa-color-accent);

    border-radius:
        1px;
}


/* --------------------------------------------------------------------------
   Intro Title
   -------------------------------------------------------------------------- */

.wa-projects-catalog
.wa-projects-catalog__title {
    margin:
        0 !important;
}

.wa-projects-catalog
.wa-projects-catalog__title
.elementor-widget-container {
    margin:
        0 !important;
}

.wa-projects-catalog
.wa-projects-catalog__title
.elementor-heading-title {
    max-width:
        600px;

    margin:
        0;

    color:
        var(--wa-color-primary) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        clamp(2rem, 3.1vw, 3.15rem);

    font-weight:
        700;

    line-height:
        1.06;

    letter-spacing:
        -0.04em;

    text-wrap:
        balance;
}

.wa-projects-catalog
.wa-projects-catalog__title
.wa-text-accent {
    color:
        var(--wa-color-accent);
}


/* --------------------------------------------------------------------------
   Intro Text
   -------------------------------------------------------------------------- */

.wa-projects-catalog
.wa-projects-catalog__text {
    width:
        100%;

    max-width:
        520px;

    margin:
        0 !important;
}

.wa-projects-catalog
.wa-projects-catalog__text
.elementor-widget-container,
.wa-projects-catalog
.wa-projects-catalog__text p {
    margin:
        0 !important;

    color:
        var(--wa-color-muted) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        0.94rem;

    line-height:
        1.72;
}


/* ==========================================================================
   Projects Grid
   ========================================================================== */

.wa-projects-catalog
.elementor-element.wa-projects-catalog__grid {
    display:
        grid !important;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap:
        22px;
}


/* ==========================================================================
   Project Card
   ========================================================================== */

.wa-projects-catalog
.elementor-element.wa-project-card {
    --display:
        grid;

    position:
        relative;

    display:
        grid !important;

    grid-template-columns:
        minmax(0, 1fr);

    grid-template-rows:
        270px
        auto;

    gap:
        0 !important;

    align-items:
        stretch !important;

    min-width:
        0;

    height:
        auto !important;

    overflow:
        hidden;

    background:
        #ffffff;

    border:
        1px solid
        rgba(7, 27, 51, 0.08);

    border-radius:
        var(--wa-radius-md);

    box-shadow:
        0 12px 34px
        rgba(7, 27, 51, 0.055);

    transition:
        transform var(--wa-transition),
        border-color var(--wa-transition),
        box-shadow var(--wa-transition);
}


/* ==========================================================================
   Project Image
   ========================================================================== */

.wa-projects-catalog
.elementor-element.wa-project-card
.wa-project-card__image {
    position:
        relative !important;

    grid-column:
        1;

    grid-row:
        1;

    display:
        block !important;

    width:
        100% !important;

    height:
        270px !important;

    min-height:
        270px !important;

    margin:
        0 !important;

    padding:
        0 !important;

    overflow:
        hidden;

    background:
        #e7ebef;
}


/* Elementor container */

.wa-projects-catalog
.wa-project-card__image
.elementor-widget-container {
    position:
        relative !important;

    display:
        block;

    width:
        100% !important;

    height:
        100% !important;

    margin:
        0 !important;

    padding:
        0 !important;

    overflow:
        hidden;
}


/* Optional image link */

.wa-projects-catalog
.wa-project-card__image
.elementor-widget-container > a {
    display:
        block;

    width:
        100%;

    height:
        100%;
}


/* Image */

.wa-projects-catalog
.wa-project-card__image img {
    display:
        block !important;

    width:
        100% !important;

    height:
        100% !important;

    max-width:
        none !important;

    margin:
        0 !important;

    object-fit:
        cover !important;

    object-position:
        center !important;

    transition:
        transform
        700ms
        cubic-bezier(0.22, 1, 0.36, 1);
}


/* --------------------------------------------------------------------------
   ARMEC accent between image and content
   -------------------------------------------------------------------------- */

.wa-projects-catalog
.wa-project-card__image::after {
    content:
        "";

    position:
        absolute;

    left:
        0;

    bottom:
        0;

    z-index:
        3;

    width:
        46px;

    height:
        3px;

    background:
        var(--wa-color-accent);

    transition:
        width
        340ms
        cubic-bezier(0.22, 1, 0.36, 1);

    pointer-events:
        none;
}


/* ==========================================================================
   Project Content
   ========================================================================== */

.wa-projects-catalog
.elementor-element.wa-project-card
.wa-project-card__content {
    position:
        relative !important;

    grid-column:
        1;

    grid-row:
        2;

    display:
        flex !important;

    flex-direction:
        column;

    align-items:
        flex-start;

    width:
        100% !important;

    height:
        auto !important;

    min-width:
        0;

    min-height:
        190px;

    margin:
        0 !important;

    padding:
        25px
        27px
        27px;

    background:
        #ffffff;

    box-sizing:
        border-box;
}


/* ==========================================================================
   Project Type
   ========================================================================== */

.wa-projects-catalog
.wa-project-card__type {
    margin:
        0
        0
        10px !important;
}

.wa-projects-catalog
.wa-project-card__type
.elementor-widget-container {
    margin:
        0 !important;
}

.wa-projects-catalog
.wa-project-card__type
.elementor-heading-title {
    margin:
        0;

    color:
        var(--wa-color-accent) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        0.66rem;

    font-weight:
        700;

    line-height:
        1.25;

    letter-spacing:
        0.11em;

    text-transform:
        uppercase;
}


/* ==========================================================================
   Project Title
   ========================================================================== */

.wa-projects-catalog
.wa-project-card__title {
    width:
        100%;

    margin:
        0
        0
        24px !important;
}

.wa-projects-catalog
.wa-project-card__title
.elementor-widget-container {
    margin:
        0 !important;
}

.wa-projects-catalog
.wa-project-card__title
.elementor-heading-title {
    margin:
        0;

    color:
        var(--wa-color-primary) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        clamp(1.1rem, 1.45vw, 1.32rem);

    font-weight:
        700;

    line-height:
        1.28;

    letter-spacing:
        -0.025em;
}


/* ==========================================================================
   Project Link
   ========================================================================== */

.wa-projects-catalog
.wa-project-card__link {
    margin:
        auto
        0
        0 !important;
}

.wa-projects-catalog
.wa-project-card__link
.elementor-widget-container,
.wa-projects-catalog
.wa-project-card__link p {
    margin:
        0 !important;
}

.wa-projects-catalog
.wa-project-card__link,
.wa-projects-catalog
.wa-project-card__link a {
    color:
        var(--wa-color-accent) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        0.76rem;

    font-weight:
        700;

    line-height:
        1.3;

    text-decoration:
        none;
}

.wa-projects-catalog
.wa-project-card__link a {
    display:
        inline-flex;

    align-items:
        center;

    gap:
        7px;

    transition:
        gap var(--wa-transition);
}


/* ==========================================================================
   Project Card Hover
   ========================================================================== */

.wa-projects-catalog
.elementor-element.wa-project-card:hover {
    transform:
        translateY(-5px);

    border-color:
        rgba(226, 29, 43, 0.16);

    box-shadow:
        0 20px 48px
        rgba(7, 27, 51, 0.10);
}


.wa-projects-catalog
.elementor-element.wa-project-card:hover
.wa-project-card__image img {
    transform:
        scale(1.045);
}


.wa-projects-catalog
.elementor-element.wa-project-card:hover
.wa-project-card__image::after {
    width:
        100%;
}


.wa-projects-catalog
.elementor-element.wa-project-card:hover
.wa-project-card__link a {
    gap:
        11px;
}


/* ==========================================================================
   Projects — Tablet
   ========================================================================== */

@media (max-width: 1024px) {

    .wa-projects-catalog {
        padding-top:
            var(--wa-space-7);

        padding-bottom:
            32px;
    }


    .wa-projects-catalog
    .elementor-element.wa-projects-catalog__intro {
        grid-template-columns:
            1fr;

        align-items:
            start;

        gap:
            14px;
    }


    .wa-projects-catalog
    .wa-projects-catalog__eyebrow {
        grid-column:
            auto;
    }


    .wa-projects-catalog
    .wa-projects-catalog__title
    .elementor-heading-title {
        max-width:
            680px;
    }


    .wa-projects-catalog
    .wa-projects-catalog__text {
        max-width:
            620px;
    }


    .wa-projects-catalog
    .elementor-element.wa-projects-catalog__grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap:
            18px;
    }

}


/* ==========================================================================
   Projects — Mobile
   ========================================================================== */

@media (max-width: 767px) {

    .wa-projects-catalog {
        padding-top:
            var(--wa-space-5);

        padding-bottom:
            24px;
    }


    .wa-projects-catalog
    .elementor-element.wa-projects-catalog__inner {
        gap:
            36px;
    }


    .wa-projects-catalog
    .wa-projects-catalog__title
    .elementor-heading-title {
        font-size:
            clamp(1.9rem, 8vw, 2.4rem);
    }


    .wa-projects-catalog
    .elementor-element.wa-projects-catalog__grid {
        grid-template-columns:
            1fr;

        gap:
            16px;
    }


    .wa-projects-catalog
    .elementor-element.wa-project-card {
        grid-template-rows:
            230px
            auto;
    }


    .wa-projects-catalog
    .elementor-element.wa-project-card
    .wa-project-card__image {
        height:
            230px !important;

        min-height:
            230px !important;
    }


    .wa-projects-catalog
    .elementor-element.wa-project-card
    .wa-project-card__content {
        min-height:
            0;

        padding:
            24px
            24px
            28px;
    }

}


/* ==========================================================================
   Projects — Reduced Motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {

    .wa-projects-catalog
    .elementor-element.wa-project-card,
    .wa-projects-catalog
    .wa-project-card__image img,
    .wa-projects-catalog
    .wa-project-card__image::after,
    .wa-projects-catalog
    .wa-project-card__link a {
        transition:
            none;
    }


    .wa-projects-catalog
    .elementor-element.wa-project-card:hover {
        transform:
            none;
    }


    .wa-projects-catalog
    .elementor-element.wa-project-card:hover
    .wa-project-card__image img {
        transform:
            none;
    }

}

/* ==========================================================================
   About — Story
   ========================================================================== */

.wa-about-story {
    position: relative;

    padding-block:
        var(--wa-space-8);

    overflow: hidden;

    background:
        var(--wa-color-white);
}


/* Subtle technical detail */

.wa-about-story::before {
    content: "";

    position: absolute;

    right: -150px;
    bottom: -210px;

    width: 430px;
    height: 430px;

    border:
        1px solid
        rgba(7, 27, 51, 0.045);

    transform:
        rotate(45deg);

    pointer-events: none;
}


/* ==========================================================================
   Story Inner
   ========================================================================== */

.elementor-element.wa-about-story__inner {
    position: relative;

    z-index: 1;

    display: grid !important;

    grid-template-columns:
        minmax(0, 1.08fr)
        minmax(0, 0.92fr);

    align-items: center;

    gap:
        clamp(56px, 7vw, 100px);
}


/* ==========================================================================
   Story Content
   ========================================================================== */

.elementor-element.wa-about-story__content {
    display: flex !important;
    flex-direction: column;

    align-items: flex-start;

    min-width: 0;

    max-width: 680px;
}


/* --------------------------------------------------------------------------
   Story Eyebrow
   -------------------------------------------------------------------------- */

.wa-about-story__eyebrow {
    margin:
        0
        0
        13px !important;
}

.wa-about-story__eyebrow
.elementor-widget-container {
    margin: 0 !important;
}

.wa-about-story__eyebrow
.elementor-heading-title {
    display: inline-flex;

    align-items: center;

    margin: 0;

    color:
        var(--wa-color-accent) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        0.72rem;

    font-weight:
        700;

    line-height:
        1.2;

    letter-spacing:
        0.12em;

    text-transform:
        uppercase;
}

.wa-about-story__eyebrow
.elementor-heading-title::before {
    content: "";

    width: 6px;
    height: 6px;

    margin-right: 8px;

    flex:
        0 0 6px;

    background:
        var(--wa-color-accent);

    border-radius:
        1px;
}


/* ==========================================================================
   Story Title
   ========================================================================== */

.wa-about-story__title {
    width: 100%;

    max-width: 650px;

    margin:
        0
        0
        24px !important;
}

.wa-about-story__title
.elementor-widget-container {
    margin: 0 !important;
}

.wa-about-story__title
.elementor-heading-title {
    margin: 0;

    color:
        var(--wa-color-primary) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        clamp(2rem, 3vw, 3.15rem);

    font-weight:
        700;

    line-height:
        1.06;

    letter-spacing:
        -0.04em;

    text-wrap:
        balance;
}

.wa-about-story__title
.wa-text-accent {
    color:
        var(--wa-color-accent);
}


/* ==========================================================================
   Story Text
   ========================================================================== */

.wa-about-story__text {
    width: 100%;

    max-width: 660px;

    margin: 0 !important;
}

.wa-about-story__text
.elementor-widget-container {
    margin: 0 !important;
}

.wa-about-story__text,
.wa-about-story__text p {
    color:
        var(--wa-color-muted) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        0.96rem;

    line-height:
        1.82;
}

.wa-about-story__text p {
    margin:
        0 !important;
}

.wa-about-story__text p + p {
    margin-top:
        16px !important;
}


/* ==========================================================================
   Story Media
   ========================================================================== */

.elementor-element.wa-about-story__media {
    position: relative;

    min-width: 0;

    width: 100%;

    padding:
        0
        20px
        22px
        0;
}


/* Displaced red frame */

.elementor-element.wa-about-story__media::before {
    content: "";

    position: absolute;

    top: 20px;
    right: 0;
    bottom: 0;
    left: 20px;

    z-index: 0;

    border:
        1px solid
        rgba(226, 29, 43, 0.68);

    border-radius:
        var(--wa-radius-md);

    pointer-events: none;
}


/* ==========================================================================
   Story Image
   ========================================================================== */

.wa-about-story__image {
    position: relative;

    z-index: 2;

    width: 100%;

    margin: 0 !important;

    overflow: hidden;

    background:
        #e9edf1;

    border-radius:
        var(--wa-radius-md);

    box-shadow:
        0 22px 48px
        rgba(7, 27, 51, 0.10);
}

.wa-about-story__image,
.wa-about-story__image
.elementor-widget-container {
    width: 100%;
}

.wa-about-story__image
.elementor-widget-container {
    min-height:
        420px;
}

.wa-about-story__image img {
    display: block;

    width: 100%;
    height: auto;

    aspect-ratio:
        4 / 5;

    object-fit:
        cover;

    transition:
        transform
        700ms
        cubic-bezier(0.22, 1, 0.36, 1);
}

.elementor-element.wa-about-story__media:hover
.wa-about-story__image img {
    transform:
        scale(1.025);
}


/* ==========================================================================
   About — Principles
   ========================================================================== */

.wa-about-principles {
    position: relative;

    padding-block:
        var(--wa-space-8);

    overflow: hidden;

    background:
        #f7f9fb;
}


/* ==========================================================================
   Principles Inner
   ========================================================================== */

.elementor-element.wa-about-principles__inner {
    display: flex !important;

    flex-direction: column;

    gap:
        clamp(38px, 5vw, 58px);
}


/* ==========================================================================
   Principles Intro
   ========================================================================== */

.elementor-element.wa-about-principles__intro {
    display: flex !important;

    flex-direction: column;

    align-items: flex-start;

    max-width:
        700px;
}


/* Eyebrow */

.wa-about-principles__eyebrow {
    margin:
        0
        0
        12px !important;
}

.wa-about-principles__eyebrow
.elementor-widget-container {
    margin:
        0 !important;
}

.wa-about-principles__eyebrow
.elementor-heading-title {
    display:
        inline-flex;

    align-items:
        center;

    margin:
        0;

    color:
        var(--wa-color-accent) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        0.72rem;

    font-weight:
        700;

    line-height:
        1.2;

    letter-spacing:
        0.12em;

    text-transform:
        uppercase;
}

.wa-about-principles__eyebrow
.elementor-heading-title::before {
    content: "";

    width: 6px;
    height: 6px;

    margin-right: 8px;

    background:
        var(--wa-color-accent);

    border-radius:
        1px;
}


/* Title */

.wa-about-principles__title {
    margin:
        0 !important;
}

.wa-about-principles__title
.elementor-widget-container {
    margin:
        0 !important;
}

.wa-about-principles__title
.elementor-heading-title {
    margin: 0;

    color:
        var(--wa-color-primary) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        clamp(2rem, 3vw, 3.15rem);

    font-weight:
        700;

    line-height:
        1.06;

    letter-spacing:
        -0.04em;

    text-wrap:
        balance;
}

.wa-about-principles__title
.wa-text-accent {
    color:
        var(--wa-color-accent);
}


/* ==========================================================================
   Principles Grid
   ========================================================================== */

.elementor-element.wa-about-principles__grid {
    display: grid !important;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap:
        20px;
}


/* ==========================================================================
   Principle Card
   ========================================================================== */

.elementor-element.wa-about-principle {
    position: relative;

    display: flex !important;

    flex-direction: column;

    align-items: flex-start;

    min-width: 0;

    min-height:
        280px;

    padding:
        clamp(28px, 3vw, 38px);

    overflow: hidden;

    background:
        #ffffff;

    border:
        1px solid
        rgba(7, 27, 51, 0.085);

    border-radius:
        var(--wa-radius-md);

    box-shadow:
        0 10px 30px
        rgba(7, 27, 51, 0.035);

    transition:
        transform var(--wa-transition),
        border-color var(--wa-transition),
        box-shadow var(--wa-transition);
}


/* Red technical marker */

.elementor-element.wa-about-principle::before {
    content: "";

    position: absolute;

    top: 0;
    left: 0;

    width: 42px;
    height: 3px;

    background:
        var(--wa-color-accent);

    transition:
        width
        320ms
        cubic-bezier(0.22, 1, 0.36, 1);
}


/* ==========================================================================
   Principle Icon
   ========================================================================== */

.wa-about-principle__icon {
    margin:
        0
        0
        26px !important;
}

.wa-about-principle__icon
.elementor-widget-container {
    display: flex;

    margin:
        0 !important;
}

.wa-about-principle__icon
.elementor-icon {
    display: flex;

    align-items: center;
    justify-content: center;

    width:
        52px;

    height:
        52px;

    color:
        var(--wa-color-accent) !important;

    background:
        rgba(226, 29, 43, 0.06) !important;

    border:
        1px solid
        rgba(226, 29, 43, 0.10);

    border-radius:
        50%;
}

.wa-about-principle__icon
.elementor-icon i {
    color:
        currentColor !important;

    font-size:
        22px;
}

.wa-about-principle__icon
.elementor-icon svg {
    width:
        22px;

    height:
        22px;

    fill:
        currentColor !important;

    color:
        currentColor !important;
}


/* ==========================================================================
   Principle Title
   ========================================================================== */

.wa-about-principle__title {
    margin:
        0
        0
        14px !important;
}

.wa-about-principle__title
.elementor-widget-container {
    margin:
        0 !important;
}

.wa-about-principle__title
.elementor-heading-title {
    margin: 0;

    color:
        var(--wa-color-primary) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        clamp(1.1rem, 1.5vw, 1.35rem);

    font-weight:
        700;

    line-height:
        1.25;

    letter-spacing:
        -0.025em;
}


/* ==========================================================================
   Principle Text
   ========================================================================== */

.wa-about-principle__text {
    margin:
        0 !important;
}

.wa-about-principle__text
.elementor-widget-container,
.wa-about-principle__text p {
    margin:
        0 !important;

    color:
        var(--wa-color-muted) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        0.88rem;

    line-height:
        1.7;
}


/* Hover */

.elementor-element.wa-about-principle:hover {
    transform:
        translateY(-4px);

    border-color:
        rgba(226, 29, 43, 0.18);

    box-shadow:
        0 18px 42px
        rgba(7, 27, 51, 0.07);
}

.elementor-element.wa-about-principle:hover::before {
    width:
        100%;
}


/* ==========================================================================
   About — Process
   ========================================================================== */

.wa-about-process {
    position: relative;

    padding-block:
        var(--wa-space-8);

    overflow: hidden;

    color:
        var(--wa-color-white);

    background:
        linear-gradient(
            120deg,
            #071b33 0%,
            #0b2b4d 58%,
            #12365d 100%
        );
}


/* Technical grid */

.wa-about-process::before {
    content: "";

    position: absolute;
    inset: 0;

    z-index: 0;

    background:
        linear-gradient(
            90deg,
            rgba(255, 255, 255, 0.025) 1px,
            transparent 1px
        ),
        linear-gradient(
            rgba(255, 255, 255, 0.025) 1px,
            transparent 1px
        );

    background-size:
        52px 52px;

    pointer-events: none;
}


/* ==========================================================================
   Process Inner
   ========================================================================== */

.elementor-element.wa-about-process__inner {
    position: relative;

    z-index: 1;

    display: flex !important;

    flex-direction: column;

    gap:
        clamp(42px, 5vw, 64px);
}


/* ==========================================================================
   Process Intro
   ========================================================================== */

.elementor-element.wa-about-process__intro {
    display: grid !important;

    grid-template-columns:
        minmax(0, 0.95fr)
        minmax(0, 1.05fr);

    align-items: end;

    column-gap:
        clamp(48px, 7vw, 100px);

    row-gap:
        12px;
}


/* Process Eyebrow */

.wa-about-process__eyebrow {
    grid-column:
        1 / -1;

    margin:
        0 !important;
}

.wa-about-process__eyebrow
.elementor-widget-container {
    margin:
        0 !important;
}

.wa-about-process__eyebrow
.elementor-heading-title {
    display:
        inline-flex;

    align-items:
        center;

    margin:
        0;

    color:
        var(--wa-color-accent) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        0.72rem;

    font-weight:
        700;

    line-height:
        1.2;

    letter-spacing:
        0.12em;

    text-transform:
        uppercase;
}

.wa-about-process__eyebrow
.elementor-heading-title::before {
    content: "";

    width: 6px;
    height: 6px;

    margin-right: 8px;

    background:
        var(--wa-color-accent);

    border-radius:
        1px;
}


/* Process Title */

.wa-about-process__title {
    margin:
        0 !important;
}

.wa-about-process__title
.elementor-widget-container {
    margin:
        0 !important;
}

.wa-about-process__title
.elementor-heading-title {
    max-width:
        620px;

    margin:
        0;

    color:
        var(--wa-color-white) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        clamp(2rem, 3vw, 3.15rem);

    font-weight:
        700;

    line-height:
        1.06;

    letter-spacing:
        -0.04em;

    text-wrap:
        balance;
}

.wa-about-process__title
.wa-text-accent {
    color:
        var(--wa-color-accent);
}


/* Process Text */

.wa-about-process__text {
    max-width:
        560px;

    margin:
        0 !important;
}

.wa-about-process__text
.elementor-widget-container,
.wa-about-process__text p {
    margin:
        0 !important;

    color:
        rgba(255, 255, 255, 0.67) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        0.94rem;

    line-height:
        1.72;
}


/* ==========================================================================
   Process Steps
   ========================================================================== */

.elementor-element.wa-about-process__steps {
    position: relative;

    display: grid !important;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap:
        0;
}


/* Horizontal line */

.elementor-element.wa-about-process__steps::before {
    content: "";

    position: absolute;

    top:
        30px;

    left:
        8%;

    right:
        8%;

    height:
        1px;

    background:
        rgba(255, 255, 255, 0.13);

    pointer-events: none;
}


/* ==========================================================================
   Process Step
   ========================================================================== */

.elementor-element.wa-about-process__step {
    position: relative;

    z-index: 1;

    display: flex !important;

    flex-direction: column;

    align-items: flex-start;

    min-width: 0;

    padding:
        0
        clamp(20px, 2.5vw, 32px);
}

.elementor-element.wa-about-process__step:first-child {
    padding-left:
        0;
}

.elementor-element.wa-about-process__step:last-child {
    padding-right:
        0;
}


/* Number */

.wa-about-process__number {
    width:
        60px;

    height:
        60px;

    margin:
        0
        0
        24px !important;

    border-radius:
        50%;

    background:
        #0b2b4d;

    border:
        1px solid
        rgba(226, 29, 43, 0.62);

    box-shadow:
        0 0 0 8px
        rgba(11, 43, 77, 1);
}

.wa-about-process__number
.elementor-widget-container {
    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    width:
        100%;

    height:
        100%;

    margin:
        0 !important;
}

.wa-about-process__number
.elementor-heading-title {
    margin: 0;

    color:
        var(--wa-color-accent) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        1.12rem;

    font-weight:
        800;

    line-height:
        1;

    letter-spacing:
        0.04em;
}


/* Step Title */

.wa-about-process__step-title {
    margin:
        0
        0
        12px !important;
}

.wa-about-process__step-title
.elementor-widget-container {
    margin:
        0 !important;
}

.wa-about-process__step-title
.elementor-heading-title {
    margin: 0;

    color:
        var(--wa-color-white) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        1.08rem;

    font-weight:
        700;

    line-height:
        1.3;
}


/* Step Text */

.wa-about-process__step-text {
    margin:
        0 !important;
}

.wa-about-process__step-text
.elementor-widget-container,
.wa-about-process__step-text p {
    margin:
        0 !important;

    color:
        rgba(255, 255, 255, 0.62) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        0.84rem;

    line-height:
        1.65;
}


/* ==========================================================================
   About — Tablet
   ========================================================================== */

@media (max-width: 1024px) {

    .wa-about-story,
    .wa-about-principles,
    .wa-about-process {
        padding-block:
            var(--wa-space-7);
    }


    .elementor-element.wa-about-story__inner {
        grid-template-columns:
            1fr;

        gap:
            42px;
    }


    .elementor-element.wa-about-story__content {
        max-width:
            720px;
    }


    .elementor-element.wa-about-story__media {
        max-width:
            680px;
    }


    .wa-about-story__image img {
        aspect-ratio:
            16 / 10;
    }


    .elementor-element.wa-about-principles__grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }


    .elementor-element.wa-about-process__intro {
        grid-template-columns:
            1fr;

        align-items:
            start;

        gap:
            14px;
    }


    .wa-about-process__eyebrow {
        grid-column:
            auto;
    }


    .elementor-element.wa-about-process__steps {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap:
            34px
            20px;
    }


    .elementor-element.wa-about-process__steps::before {
        display:
            none;
    }


    .elementor-element.wa-about-process__step,
    .elementor-element.wa-about-process__step:first-child,
    .elementor-element.wa-about-process__step:last-child {
        padding:
            0;
    }

}


/* ==========================================================================
   About — Mobile
   ========================================================================== */

@media (max-width: 767px) {

    .wa-about-story,
    .wa-about-principles,
    .wa-about-process {
        padding-block:
            var(--wa-space-5);
    }


    .elementor-element.wa-about-story__inner {
        gap:
            32px;
    }


    .wa-about-story__title
    .elementor-heading-title,
    .wa-about-principles__title
    .elementor-heading-title,
    .wa-about-process__title
    .elementor-heading-title {
        font-size:
            clamp(1.9rem, 8vw, 2.4rem);
    }


    .elementor-element.wa-about-story__media {
        padding:
            0
            14px
            14px
            0;
    }


    .elementor-element.wa-about-story__media::before {
        top:
            14px;

        left:
            14px;
    }


    .wa-about-story__image
    .elementor-widget-container {
        min-height:
            240px;
    }


    .wa-about-story__image img {
        aspect-ratio:
            4 / 3;
    }


    .elementor-element.wa-about-principles__grid {
        grid-template-columns:
            1fr;

        gap:
            14px;
    }


    .elementor-element.wa-about-principle {
        min-height:
            0;

        padding:
            28px
            24px;
    }


    .elementor-element.wa-about-process__steps {
        grid-template-columns:
            1fr;

        gap:
            30px;
    }


    .wa-about-process__number {
        width:
            52px;

        height:
            52px;

        margin-bottom:
            18px !important;
    }

}


/* ==========================================================================
   About — Reduced Motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {

    .wa-about-story__image img,
    .elementor-element.wa-about-principle,
    .elementor-element.wa-about-principle::before {
        transition:
            none;
    }

    .elementor-element.wa-about-story__media:hover
    .wa-about-story__image img,
    .elementor-element.wa-about-principle:hover {
        transform:
            none;
    }

}

/* ==========================================================================
   About — Space before CTA
   ========================================================================== */

.wa-about-process + .wa-internal-cta {
    padding-top:
        clamp(42px, 4vw, 58px);
}

@media (max-width: 767px) {

    .wa-about-process + .wa-internal-cta {
        padding-top:
            32px;
    }

}


/* ==========================================================================
   Contact — Main
   ========================================================================== */

.wa-contact-main {
    position: relative;

    padding-block:
        var(--wa-space-8);

    overflow: hidden;

    background:
        var(--wa-color-white);
}


/* Subtle technical detail */

.wa-contact-main::before {
    content: "";

    position: absolute;

    left:
        -190px;

    bottom:
        -220px;

    width:
        430px;

    height:
        430px;

    border:
        1px solid
        rgba(7, 27, 51, 0.045);

    transform:
        rotate(45deg);

    pointer-events:
        none;
}


/* ==========================================================================
   Contact Main Inner
   ========================================================================== */

.elementor-element.wa-contact-main__inner {
    position:
        relative;

    z-index:
        1;

    display:
        grid !important;

    grid-template-columns:
        minmax(0, 0.82fr)
        minmax(0, 1.18fr);

    align-items:
        start;

    gap:
        clamp(56px, 7vw, 100px);
}


/* ==========================================================================
   Contact Info
   ========================================================================== */

.elementor-element.wa-contact-info {
    display:
        flex !important;

    flex-direction:
        column;

    align-items:
        flex-start;

    min-width:
        0;

    padding-top:
        18px;
}


/* ==========================================================================
   Contact Info — Eyebrow
   ========================================================================== */

.wa-contact-info__eyebrow {
    margin:
        0
        0
        13px !important;
}

.wa-contact-info__eyebrow
.elementor-widget-container {
    margin:
        0 !important;
}

.wa-contact-info__eyebrow
.elementor-heading-title {
    display:
        inline-flex;

    align-items:
        center;

    margin:
        0;

    color:
        var(--wa-color-accent) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        0.72rem;

    font-weight:
        700;

    line-height:
        1.2;

    letter-spacing:
        0.12em;

    text-transform:
        uppercase;
}

.wa-contact-info__eyebrow
.elementor-heading-title::before {
    content:
        "";

    width:
        6px;

    height:
        6px;

    margin-right:
        8px;

    flex:
        0 0 6px;

    background:
        var(--wa-color-accent);

    border-radius:
        1px;
}


/* ==========================================================================
   Contact Info — Title
   ========================================================================== */

.wa-contact-info__title {
    width:
        100%;

    max-width:
        520px;

    margin:
        0
        0
        22px !important;
}

.wa-contact-info__title
.elementor-widget-container {
    margin:
        0 !important;
}

.wa-contact-info__title
.elementor-heading-title {
    margin:
        0;

    color:
        var(--wa-color-primary) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        clamp(2rem, 3vw, 3.15rem);

    font-weight:
        700;

    line-height:
        1.06;

    letter-spacing:
        -0.04em;

    text-wrap:
        balance;
}

.wa-contact-info__title
.wa-text-accent {
    color:
        var(--wa-color-accent);
}


/* ==========================================================================
   Contact Info — Text
   ========================================================================== */

.wa-contact-info__text {
    width:
        100%;

    max-width:
        540px;

    margin:
        0
        0
        36px !important;
}

.wa-contact-info__text
.elementor-widget-container,
.wa-contact-info__text p {
    margin:
        0 !important;

    color:
        var(--wa-color-muted) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        0.95rem;

    line-height:
        1.78;
}


/* ==========================================================================
   Contact Details
   ========================================================================== */

.elementor-element.wa-contact-details {
    display:
        flex !important;

    flex-direction:
        column;

    width:
        100%;

    max-width:
        540px;

    gap:
        0;

    margin-bottom:
        34px;
}


/* ==========================================================================
   Contact Item
   ========================================================================== */

.elementor-element.wa-contact-item {
    display:
        grid !important;

    grid-template-columns:
        44px
        minmax(0, 1fr);

    align-items:
        center;

    gap:
        16px;

    min-height:
        82px;

    padding-block:
        18px;

    border-bottom:
        1px solid
        rgba(7, 27, 51, 0.08);
}

.elementor-element.wa-contact-item:first-child {
    border-top:
        1px solid
        rgba(7, 27, 51, 0.08);
}


/* ==========================================================================
   Contact Item — Icon
   ========================================================================== */

.wa-contact-item__icon {
    margin:
        0 !important;
}

.wa-contact-item__icon
.elementor-widget-container {
    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    width:
        44px;

    height:
        44px;

    margin:
        0 !important;

    color:
        var(--wa-color-accent);

    background:
        rgba(226, 29, 43, 0.055);

    border:
        1px solid
        rgba(226, 29, 43, 0.11);

    border-radius:
        50%;
}

.wa-contact-item__icon
.elementor-icon {
    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    padding:
        0;

    color:
        var(--wa-color-accent) !important;

    background:
        transparent !important;
}

.wa-contact-item__icon
.elementor-icon i {
    color:
        currentColor !important;

    font-size:
        16px;
}

.wa-contact-item__icon
.elementor-icon svg {
    width:
        16px;

    height:
        16px;

    fill:
        currentColor !important;

    color:
        currentColor !important;
}


/* ==========================================================================
   Contact Item — Content
   ========================================================================== */

.elementor-element.wa-contact-item__content {
    display:
        flex !important;

    flex-direction:
        column;

    gap:
        4px;

    min-width:
        0;
}


/* Label */

.wa-contact-item__label {
    margin:
        0 !important;
}

.wa-contact-item__label
.elementor-widget-container {
    margin:
        0 !important;
}

.wa-contact-item__label
.elementor-heading-title {
    margin:
        0;

    color:
        var(--wa-color-muted) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        0.66rem;

    font-weight:
        700;

    line-height:
        1.2;

    letter-spacing:
        0.1em;

    text-transform:
        uppercase;
}


/* Value */

.wa-contact-item__value {
    margin:
        0 !important;
}

.wa-contact-item__value
.elementor-widget-container,
.wa-contact-item__value p {
    margin:
        0 !important;

    color:
        var(--wa-color-primary) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        0.96rem;

    font-weight:
        600;

    line-height:
        1.45;
}

.wa-contact-item__value a {
    color:
        var(--wa-color-primary);

    text-decoration:
        none;

    transition:
        color var(--wa-transition);
}

.wa-contact-item__value a:hover {
    color:
        var(--wa-color-accent);
}


/* ==========================================================================
   Contact Note
   ========================================================================== */

.wa-contact-info__note {
    position:
        relative;

    width:
        100%;

    max-width:
        540px;

    margin:
        0 !important;

    padding:
        18px
        20px
        18px
        24px;

    background:
        #f7f9fb;

    border-left:
        3px solid
        var(--wa-color-accent);

    border-radius:
        0
        var(--wa-radius-md)
        var(--wa-radius-md)
        0;
}

.wa-contact-info__note
.elementor-widget-container,
.wa-contact-info__note p {
    margin:
        0 !important;

    color:
        var(--wa-color-muted) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        0.82rem;

    line-height:
        1.65;
}


/* ==========================================================================
   Contact Form Card
   ========================================================================== */

.elementor-element.wa-contact-form {
    position:
        relative;

    display:
        flex !important;

    flex-direction:
        column;

    min-width:
        0;

    padding:
        clamp(34px, 4vw, 50px);

    overflow:
        hidden;

    background:
        #ffffff;

    border:
        1px solid
        rgba(7, 27, 51, 0.09);

    border-top:
        4px solid
        var(--wa-color-accent);

    border-radius:
        var(--wa-radius-md);

    box-shadow:
        0 22px 56px
        rgba(7, 27, 51, 0.09);
}


/* Decorative detail */

.elementor-element.wa-contact-form::after {
    content:
        "";

    position:
        absolute;

    right:
        -100px;

    top:
        -115px;

    width:
        230px;

    height:
        230px;

    border:
        28px solid
        rgba(7, 27, 51, 0.035);

    transform:
        rotate(45deg);

    pointer-events:
        none;
}


/* ==========================================================================
   Contact Form — Eyebrow
   ========================================================================== */

.wa-contact-form__eyebrow {
    position:
        relative;

    z-index:
        1;

    margin:
        0
        0
        11px !important;
}

.wa-contact-form__eyebrow
.elementor-widget-container {
    margin:
        0 !important;
}

.wa-contact-form__eyebrow
.elementor-heading-title {
    display:
        inline-flex;

    align-items:
        center;

    margin:
        0;

    color:
        var(--wa-color-accent) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        0.68rem;

    font-weight:
        700;

    line-height:
        1.2;

    letter-spacing:
        0.12em;

    text-transform:
        uppercase;
}

.wa-contact-form__eyebrow
.elementor-heading-title::before {
    content:
        "";

    width:
        6px;

    height:
        6px;

    margin-right:
        8px;

    background:
        var(--wa-color-accent);

    border-radius:
        1px;
}


/* ==========================================================================
   Contact Form — Title
   ========================================================================== */

.wa-contact-form__title {
    position:
        relative;

    z-index:
        1;

    width:
        100%;

    max-width:
        560px;

    margin:
        0
        0
        14px !important;
}

.wa-contact-form__title
.elementor-widget-container {
    margin:
        0 !important;
}

.wa-contact-form__title
.elementor-heading-title {
    margin:
        0;

    color:
        var(--wa-color-primary) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        clamp(1.8rem, 2.6vw, 2.7rem);

    font-weight:
        700;

    line-height:
        1.08;

    letter-spacing:
        -0.04em;

    text-wrap:
        balance;
}

.wa-contact-form__title
.wa-text-accent {
    color:
        var(--wa-color-accent);
}


/* ==========================================================================
   Contact Form — Text
   ========================================================================== */

.wa-contact-form__text {
    position:
        relative;

    z-index:
        1;

    width:
        100%;

    max-width:
        560px;

    margin:
        0
        0
        30px !important;
}

.wa-contact-form__text
.elementor-widget-container,
.wa-contact-form__text p {
    margin:
        0 !important;

    color:
        var(--wa-color-muted) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        0.9rem;

    line-height:
        1.7;
}


/* ==========================================================================
   Fluent Forms — Contact Page Only
   ========================================================================== */

.wa-contact-form
.fluentform {
    position:
        relative;

    z-index:
        1;
}


.wa-contact-form
.ff-el-group {
    margin-bottom:
        18px;
}


.wa-contact-form
.ff-el-input--label {
    margin-bottom:
        7px;
}


.wa-contact-form
.ff-el-input--label label {
    color:
        var(--wa-color-primary) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        0.78rem;

    font-weight:
        600;

    line-height:
        1.3;
}


.wa-contact-form
.ff-el-form-control {
    min-height:
        48px;

    padding:
        12px
        14px;

    color:
        var(--wa-color-primary);

    background:
        #f8fafb;

    border:
        1px solid
        rgba(7, 27, 51, 0.12);

    border-radius:
        6px;

    box-shadow:
        none;

    font-family:
        var(--wa-font-primary);

    font-size:
        0.9rem;

    transition:
        border-color var(--wa-transition),
        background var(--wa-transition),
        box-shadow var(--wa-transition);
}


.wa-contact-form
textarea.ff-el-form-control {
    min-height:
        132px;

    resize:
        vertical;
}


/* ==========================================================================
   Contact Form — Field Focus
   Exact match with Home form
   ========================================================================== */

body
.wa-contact-form
form#fluentform_1
.ff-el-form-control:focus,

body
.wa-contact-form
form#fluentform_1
.ff-el-form-control:focus-visible {
    outline:
        none !important;

    color:
        var(--wa-color-primary) !important;

    background:
        var(--wa-color-white) !important;

    border-color:
        var(--wa-color-accent) !important;

    box-shadow:
        0 0 0 3px
        rgba(226, 29, 43, 0.08) !important;
}


.wa-contact-form
.ff-el-form-control::placeholder {
    color:
        rgba(7, 27, 51, 0.42);
}


/* ==========================================================================
   Contact Form — Submit
   Force same visual style as Home
   ========================================================================== */

body
.wa-contact-form
form#fluentform_1
.ff-el-group
button.ff-btn.ff-btn-submit.ff_btn_style {
    display: inline-flex !important;

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

    min-height: 48px !important;

    padding:
        0
        24px !important;

    color:
        #ffffff !important;

    background:
        #e21d2b !important;

    background-color:
        #e21d2b !important;

    background-image:
        none !important;

    border:
        1px solid
        #e21d2b !important;

    border-radius:
        4px !important;

    box-shadow:
        none !important;

    font-family:
        var(--wa-font-primary) !important;

    font-size:
        0.82rem !important;

    font-weight:
        700 !important;

    line-height:
        1 !important;

    text-transform:
        uppercase !important;

    cursor:
        pointer !important;

    transition:
        background-color var(--wa-transition),
        border-color var(--wa-transition),
        transform var(--wa-transition) !important;
}


/* Remove the arrow from previous tests */

body
.wa-contact-form
form#fluentform_1
.ff-btn-submit::after {
    content:
        none !important;
}


/* ==========================================================================
   Contact Form — Submit Hover
   Match Home form
   ========================================================================== */

body
.wa-contact-form
form#fluentform_1
.ff-el-group
button.ff-btn.ff-btn-submit.ff_btn_style:hover,

body
.wa-contact-form
form#fluentform_1
.ff-el-group
button.ff-btn.ff-btn-submit.ff_btn_style:focus-visible {
    color:
        var(--wa-color-primary) !important;

    background:
        #ffffff !important;

    background-color:
        #ffffff !important;

    background-image:
        none !important;

    border-color:
        var(--wa-color-accent) !important;

    transform:
        translateY(-2px);

    box-shadow:
        0 10px 24px
        rgba(7, 27, 51, 0.08) !important;
}


/* ==========================================================================
   Contact Steps
   ========================================================================== */

.wa-contact-steps {
    position:
        relative;

    padding-block:
        var(--wa-space-8);

    overflow:
        hidden;

    background:
        #f7f9fb;
}


/* ==========================================================================
   Contact Steps Inner
   ========================================================================== */

.elementor-element.wa-contact-steps__inner {
    display:
        flex !important;

    flex-direction:
        column;

    gap:
        clamp(38px, 5vw, 56px);
}


/* ==========================================================================
   Contact Steps Intro
   ========================================================================== */

.elementor-element.wa-contact-steps__intro {
    display:
        flex !important;

    flex-direction:
        column;

    align-items:
        flex-start;

    max-width:
        720px;
}


/* Eyebrow */

.wa-contact-steps__eyebrow {
    margin:
        0
        0
        12px !important;
}

.wa-contact-steps__eyebrow
.elementor-widget-container {
    margin:
        0 !important;
}

.wa-contact-steps__eyebrow
.elementor-heading-title {
    display:
        inline-flex;

    align-items:
        center;

    margin:
        0;

    color:
        var(--wa-color-accent) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        0.72rem;

    font-weight:
        700;

    line-height:
        1.2;

    letter-spacing:
        0.12em;

    text-transform:
        uppercase;
}

.wa-contact-steps__eyebrow
.elementor-heading-title::before {
    content:
        "";

    width:
        6px;

    height:
        6px;

    margin-right:
        8px;

    background:
        var(--wa-color-accent);

    border-radius:
        1px;
}


/* Title */

.wa-contact-steps__title {
    margin:
        0 !important;
}

.wa-contact-steps__title
.elementor-widget-container {
    margin:
        0 !important;
}

.wa-contact-steps__title
.elementor-heading-title {
    max-width:
        620px;

    margin:
        0;

    color:
        var(--wa-color-primary) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        clamp(2rem, 3vw, 3.15rem);

    font-weight:
        700;

    line-height:
        1.06;

    letter-spacing:
        -0.04em;

    text-wrap:
        balance;
}

.wa-contact-steps__title
.wa-text-accent {
    color:
        var(--wa-color-accent);
}


/* ==========================================================================
   Contact Steps Grid
   ========================================================================== */

.elementor-element.wa-contact-steps__grid {
    display:
        grid !important;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap:
        20px;
}


/* ==========================================================================
   Contact Step
   ========================================================================== */

.elementor-element.wa-contact-step {
    position:
        relative;

    display:
        flex !important;

    flex-direction:
        column;

    min-width:
        0;

    min-height:
        230px;

    padding:
        30px
        30px
        32px;

    overflow:
        hidden;

    background:
        #ffffff;

    border:
        1px solid
        rgba(7, 27, 51, 0.08);

    border-radius:
        var(--wa-radius-md);

    box-shadow:
        0 8px 28px
        rgba(7, 27, 51, 0.035);
}


/* Red top marker */

.elementor-element.wa-contact-step::before {
    content:
        "";

    position:
        absolute;

    top:
        0;

    left:
        0;

    width:
        42px;

    height:
        3px;

    background:
        var(--wa-color-accent);
}


/* ==========================================================================
   Contact Step — Number
   ========================================================================== */

.wa-contact-step__number {
    margin:
        0
        0
        26px !important;
}

.wa-contact-step__number
.elementor-widget-container {
    margin:
        0 !important;
}

.wa-contact-step__number
.elementor-heading-title {
    margin:
        0;

    color:
        var(--wa-color-accent) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        1.35rem;

    font-weight:
        800;

    line-height:
        1;

    letter-spacing:
        0.03em;
}


/* ==========================================================================
   Contact Step — Title
   ========================================================================== */

.wa-contact-step__title {
    margin:
        0
        0
        12px !important;
}

.wa-contact-step__title
.elementor-widget-container {
    margin:
        0 !important;
}

.wa-contact-step__title
.elementor-heading-title {
    margin:
        0;

    color:
        var(--wa-color-primary) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        1.12rem;

    font-weight:
        700;

    line-height:
        1.3;
}


/* ==========================================================================
   Contact Step — Text
   ========================================================================== */

.wa-contact-step__text {
    margin:
        0 !important;
}

.wa-contact-step__text
.elementor-widget-container,
.wa-contact-step__text p {
    margin:
        0 !important;

    color:
        var(--wa-color-muted) !important;

    font-family:
        var(--wa-font-primary);

    font-size:
        0.86rem;

    line-height:
        1.68;
}


/* ==========================================================================
   Contact — Tablet
   ========================================================================== */

@media (max-width: 1024px) {

    .wa-contact-main,
    .wa-contact-steps {
        padding-block:
            var(--wa-space-7);
    }


    .elementor-element.wa-contact-main__inner {
        grid-template-columns:
            1fr;

        gap:
            48px;
    }


    .elementor-element.wa-contact-info {
        max-width:
            720px;

        padding-top:
            0;
    }


    .elementor-element.wa-contact-form {
        max-width:
            760px;
    }


    .elementor-element.wa-contact-steps__grid {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }

}


/* ==========================================================================
   Contact — Mobile
   ========================================================================== */

@media (max-width: 767px) {

    .wa-contact-main,
    .wa-contact-steps {
        padding-block:
            var(--wa-space-5);
    }


    .elementor-element.wa-contact-main__inner {
        gap:
            36px;
    }


    .wa-contact-info__title
    .elementor-heading-title,
    .wa-contact-steps__title
    .elementor-heading-title {
        font-size:
            clamp(1.9rem, 8vw, 2.4rem);
    }


    .elementor-element.wa-contact-form {
        padding:
            30px
            24px;
    }


    .wa-contact-form__title
    .elementor-heading-title {
        font-size:
            clamp(1.8rem, 8vw, 2.3rem);
    }


    .elementor-element.wa-contact-item {
        grid-template-columns:
            40px
            minmax(0, 1fr);

        gap:
            14px;
    }


    .wa-contact-item__icon
    .elementor-widget-container {
        width:
            40px;

        height:
            40px;
    }


    .elementor-element.wa-contact-steps__grid {
        grid-template-columns:
            1fr;

        gap:
            14px;
    }


    .elementor-element.wa-contact-step {
        min-height:
            0;

        padding:
            26px
            24px;
    }


    .wa-contact-step__number {
        margin-bottom:
            20px !important;
    }

}