:root {
    --blue: #002278;
    --darkblue: #061f73;
    --areblue: #2950C2;
    --navy: #061b56;
    --text: #122157;
    --muted: #5d6f96;
    --light: #f6f9ff;
    --line: #e8eefb;
    --green: #0d7031;
    --shadow: 0 16px 38px rgba(18,50,119,.08);
    --radius: 16px;
}

* {
    box-sizing: border-box
}

html {
    min-height: 100%;
}

body {
    margin: 0;
    font-family: Inter,system-ui,-apple-system,Segoe UI,sans-serif;
    color: var(--text);
    background: #fff;
    font-size: 14px;
    line-height: 1.55;
    min-height: 100vh;
    display: flex;
    flex-direction: column
}

.site-main {
    flex: 1 0 auto;
    width: 100%
}

a {
    text-decoration: none
}

.site-header {
    height: 95px;
    background: #fff;
    display: flex;
    align-items: center;
    box-shadow: 0 1px 0 rgba(15,45,100,.06);
    position: sticky;
    top: 0;
    z-index: 99
}

.logo {
    width: 190px;
    max-width: 190px;
    max-height: 70px;
    height: auto;
    display: block;
    object-fit: contain
}

.nav-link {
    color: #14275b !important;
    font-size: 13px;
    font-weight: 700;
    padding:  18px !important
}

    .nav-link.active, .nav-link:hover {
        color: var(--blue) !important
    }

.btn-dg {
    border: 0;
    border-radius: 7px;
    background: var(--darkblue);
    color: #fff;
    font-weight: 800;
    font-size: 13px;
    padding: 14px 25px;
    box-shadow: 0 10px 22px rgba(3,86,232,.18);
    display: inline-flex;
    align-items: center;
    gap: 12px
}

    .btn-dg:hover {
        background: #0147c8;
        color: #fff
    }

.btn-video {
    background: #fff;
    border: 1px solid #dfe8ff;
    border-radius: 11px;
    color: #133072;
    font-weight: 800;
    padding: 13px 22px;
    display: inline-flex;
    align-items: center;
    gap: 13px
}

.play {
    width: 37px;
    height: 37px;
    border-radius: 50%;
    border: 2px solid #e3ebff;
    display: grid;
    place-items: center;
    color: var(--blue)
}

.hero {
    position: relative;
    overflow: hidden;
    background: #fff
}

.hero-carousel {
    width: 100%;
    overflow: hidden;
    background: #fff
}

    .hero-carousel .carousel-inner {
        width: 100%
    }

    .hero-carousel.carousel-fade .carousel-item {
        transition: opacity .75s ease-in-out
    }

.hero-slide {
    position: relative;
    background: #fff;
    overflow: hidden
}

.hero-picture {
    display: block;
    width: 100%;
    line-height: 0
}

.hero-slide-img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    object-fit: contain;
    object-position: center;
    z-index: 0;
    pointer-events: none;
    user-select: none
}

.hero-gradient {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg,#fff 0%,#fff 20%,rgba(255,255,255,.96) 30%,rgba(255,255,255,.72) 40%,rgba(255,255,255,.22) 55%,rgba(255,255,255,0) 60%); z-index: 1;
    pointer-events: none
}

.hero-content {
    position: absolute;
    inset: 0;
    z-index: 2;
    width: 91.666667%;
    margin: 0 auto;
    display: flex;
    align-items: center;
    padding-top: 0
}

.hero-copy {
    max-width: 405px;
    position: relative;
    z-index: 2
}

.hero-eyebrow {
    color: var(--blue);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
    margin: 0 0 10px;
    letter-spacing: .01em
}

.hero-title {
    margin: 0 0 17px;
    font-size: 47px;
    line-height: 1.1;
    letter-spacing: -.045em;
    font-weight: 800;
    color: #071b57
}

    .hero-title span {
        color: #1768f2
    }

.hero-text {
    margin: 0 0 22px;
    color: #24365f;
    font-size: 13px;
    line-height: 1.75;
    font-weight: 600;
    max-width: 392px
}

.hero-actions {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap
}

.hero .btn-dg {
    height: 45px;
    padding: 0 17px;
    border-radius: 5px;
    font-size: 11px;
    box-shadow: 0 8px 18px rgba(3,86,232,.16);
    gap: 10px
}

.hero .btn-video {
    height: 45px;
    padding: 0 18px 0 3px;
    border-radius: 9px;
    gap: 12px;
    font-size: 11px;
    box-shadow: 0 6px 17px rgba(18,50,119,.06);
    border-color: #dfe8ff
}

.hero .play {
    width: 39px;
    height: 39px;
    background: #fff;
    border: 1px solid var(--blue);
    font-size: 17px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    border-radius: 50%;
}

    .hero .play i {
        line-height: 1;
        display: block;
    }

.hero-nav {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-top: 20px
}

    .hero-nav button {
        width: 38px;
        height: 38px;
        border: 1px solid #dfe8ff;
        border-radius: 10px;
        background: #fff;
        color: var(--blue);
        display: grid;
        place-items: center;
        font-size: 17px;
        box-shadow: 0 8px 18px rgba(18,50,119,.06);
        transition: .2s
    }

        .hero-nav button:hover {
            background: var(--blue);
            border-color: var(--blue);
            color: #fff
        }

.hero-control, .hero .carousel-indicators {
    display: none !important
}

.services {
    margin-top: 28px
}

.services-shell {
    position: relative
}

.services-swiper {
    width: 100%;
    padding: 4px 2px 8px;
    overflow: hidden
}

    .services-swiper .swiper-slide {
        height: auto
    }

.service-card {
    height: 100%;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 13px;
    box-shadow: var(--shadow);
    overflow: hidden;
    padding-bottom: 26px;
    transition: .2s
}

    .service-card:hover {
        transform: translateY(-4px);
        box-shadow: 0 22px 42px rgba(18,50,119,.12)
    }

.service-img {
    height: 133px;
    background: #eaf0fb center/cover no-repeat;
    border-radius: 13px 13px 0 0
}

.service-icon {
    width: 80px;
    height: 80px;
    margin: -27px 0 18px 22px;
    border-radius: 50%;
    background: #fff;
    border: 1px solid #e6edff;
    display: grid;
    place-items: center;
    color: var(--blue);
    font-size: 25px;
    box-shadow: 0 10px 25px rgba(8,45,128,.1);
    overflow: hidden;
}

.service-icon img {
    max-width: 48px;
    max-height: 48px;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
}

.service-card h3 {
    font-size: 14px;
    font-weight: 900;
    color: #112968;
    margin: 0 20px 11px
}

.service-card p {
    font-size: 12px;
    color: #617195;
    min-height: 52px;
    margin: 0 20px 18px;
    font-weight: 600
}

.arrow {
    margin-left: 20px;
    color: var(--blue);
    font-size: 20px
}

.services-nav {
    position: absolute;
    top: 50%;
    z-index: 3;
    width: 39px;
    height: 39px;
    border: 1px solid #dfe8ff;
    border-radius: 10px;
    background: #fff;
    color: var(--blue);
    display: grid;
    place-items: center;
    font-size: 17px;
    box-shadow: 0 10px 24px rgba(18,50,119,.12);
    transform: translateY(-50%);
    transition: .2s
}

    .services-nav:hover {
        background: var(--blue);
        border-color: var(--blue);
        color: #fff
    }

.services-prev {
    left: -19px
}

.services-next {
    right: -19px
}

.services-nav.swiper-button-disabled {
    opacity: .35;
    pointer-events: none
}

.stats {
    margin: 27px 0 34px
}

.stats-wrap {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 15px;
    box-shadow: var(--shadow);
    padding: 25px 12px
}

.stat {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    border-right: 1px solid #e7eefb;
    min-height: 54px
}

    .stat.last {
        border-right: 0
    }

    .stat i {
        font-size: 35px;
        color: var(--blue)
    }

    .stat strong {
        display: block;
        font-size: 22px;
        color: var(--blue);
        font-weight: 900;
        line-height: 1
    }

    .stat small {
        color: #516286;
        font-weight: 800;
        font-size: 11px
    }

.split {
    padding: 0 0 35px
}

.panel {
    background: #fff;
    border: 1px solid var(--line);
    box-shadow: var(--shadow);
    border-radius: 16px;
    height: 100%;
    padding: 35px 31px
}

.section-tag {
    font-size: 12px;
    text-transform: uppercase;
    color: var(--blue);
    font-weight: 800;
    margin-bottom: 16px
}
.section-tag::after {
    content: "";
    display: block;
    width: 30px;
    height: 1px;
    background: var(--blue);
    margin-top: 3px
}

.why-item {
    display: flex;
    gap: 17px;
    margin: 0 0 26px
}

    .why-item i {
        width: 39px;
        height: 39px;
        border-radius: 50%;
        display: grid;
        place-items: center;
        color: var(--areblue);
        font-size: 21px;
        flex: none
    }

    .why-item h4 {
        font-size: 14px;
        font-weight: 900;
        margin: 0;
        color: #132864
    }

    .why-item p {
        font-size: 12px;
        color: #657495;
        font-weight: 600;
        margin: 4px 0 0
    }

.target {
    position: relative;
    overflow: hidden;
    padding: 35px 34px
}

    .target h2 {
        font-size: 34px;
        line-height: 1.15;
        font-weight: 900;
        letter-spacing: -.035em;
        color: var(--darkblue);
        margin-bottom: 18px
    }

    .target p {
        font-size: 12px;
        color: #53658b;
        font-weight: 600;
        max-width: 405px
    }

.checks {
    padding: 0;
    margin: 17px 0 22px;
    list-style: none
}

    .checks li {
        margin: 8px 0;
        font-size: 12px;
        font-weight: 800;
        color: #53658b
    }

    .checks li i {
        color: var(--areblue) !important;
        margin-right: 8px
    }

.map-img {
    position: absolute;
    right: 8px;
    top: 15px;
    width: 55%;
    height: calc(100% - 25px);
    object-fit: contain;
    object-position: right center;
    opacity: .98
}

.target .content {
    position: relative;
    z-index: 1;
    max-width: 470px
}

.process {
    padding: 0 0 35px
}

.title-center {
    text-align: center;
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
    color: var(--blue);
    margin: 10px 0 23px
}

.process-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 14px;
    box-shadow: var(--shadow);
    padding: 28px 24px;
    height: 100%;
    position: relative;
    display: block;
    color: inherit;
    text-decoration: none
}

.process-card:focus-visible {
    outline: 3px solid rgba(3,86,232,.22);
    outline-offset: 4px
}

    .process-card:after {
        content: "➝";
        position: absolute;
        right: -13px;
        top: 37px;
        color: var(--darkblue);
        font-size: 23px;
        font-weight: 300
    }

.process .row > div:last-child .process-card:after {
    display: none;
}

.process-head {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 18px
}

    .process-head i {
        width: 42px;
        height: 42px;
        display: grid;
        place-items: center;
        color: var(--darkblue);
        font-size: 20px
    }

    .process-head span {
        font-size: 22px;
        font-weight: 900;
        color: var(--darkblue)
    }

.process-card h4 {
    font-size: 13px;
    font-weight: 900;
    color: #102866
}

.process-card p {
    font-size: 11px;
    color: #647496;
    font-weight: 600;
    margin: 0
}

.green {
    margin-bottom: 30px
}

.green-box {
    position: relative;
    border-radius: 14px;
    overflow: hidden;
    background: #0a622c;
    min-height: 178px;
    background-image: url('assets/green-banner.png');
    background-size: cover;
    background-position: center
}

    .green-box:after {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(90deg,rgba(0,77,33,.35),rgba(0,77,33,.05))
    }

.green-content {
    position: relative;
    z-index: 1;
    color: #fff;
    padding: 32px 48px;
    max-width: 720px
}

    .green-content .section-tag {
        color: #7ee59a;
        margin-bottom: 6px
    }

    .green-content h2 {
        font-size: 29px;
        line-height: 1.22;
        font-weight: 900;
        margin: 0 0 13px
    }

    .green-content p {
        font-size: 12px;
        color: rgba(255,255,255,.84);
        font-weight: 600;
        max-width: 520px
    }

.green-list {
    position: absolute;
    z-index: 2;
    left: 430px;
    top: 34px;
    list-style: none;
    margin: 0;
    padding: 0
}

    .green-list li {
        color: #eafff0;
        font-size: 12px;
        font-weight: 700;
        margin: 13px 0
    }

    .green-list i {
        color: #a5f3b8;
        margin-right: 9px
    }

.green-btn {
    position: absolute;
    right: 34px;
    bottom: 24px;
    z-index: 2;
    background: #5cbf56;
    color: #fff;
    border-radius: 7px;
    padding: 14px 22px;
    font-weight: 900;
    font-size: 12px
}

.info {
    padding-bottom: 31px
}

.info-box {
    background: #fff;
    border: 1px solid var(--line);
    box-shadow: var(--shadow);
    border-radius: 15px;
    padding: 25px 28px;
    height: 100%
}

    .info-box h3 {
        font-size: 13px;
        font-weight: 900;
        color: var(--blue);
        text-transform: uppercase;
        margin-bottom: 21px
    }

.mini-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px 25px
}

.mini-item {
    display: flex;
    align-items: center;
    gap: 11px;
    color: #243a78;
    font-size: 12px;
    font-weight: 800
}

    .mini-item i {
        font-size: 20px;
        color: var(--blue)
    }

.more {
    display: inline-flex;
    margin-top: 22px;
    color: var(--blue);
    font-size: 12px;
    font-weight: 900;
    gap: 8px
}

.member-img {
    width: 100%;
    height: auto;
    display: block;
    margin-top: -4px
}

.membership-box {
    position: relative;
    overflow: hidden
}

.info-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 19px
}

    .info-head h3 {
        margin-bottom: 0
    }

.membership-controls {
    display: flex;
    align-items: center;
    gap: 7px;
    flex: none
}

.membership-nav {
    width: 30px;
    height: 30px;
    border: 1px solid #dfe8ff;
    border-radius: 9px;
    background: #fff;
    color: var(--blue);
    display: grid;
    place-items: center;
    font-size: 13px;
    transition: .2s;
    box-shadow: 0 8px 18px rgba(18,50,119,.06)
}

    .membership-nav:hover {
        background: var(--blue);
        border-color: var(--blue);
        color: #fff
    }

    .membership-nav.swiper-button-disabled {
        opacity: .35;
        pointer-events: none
    }

.memberships-swiper {
    width: 100%;
    height: 156px;
    padding: 1px 1px 18px;
    overflow: hidden
}

    .memberships-swiper .swiper-slide {
        height: 66px;
        display: flex
    }

.member-logo-card {
    width: 100%;
    height: 66px;
    border: 1px solid #e6edff;
    border-radius: 13px;
    background: linear-gradient(180deg,#fff,#f9fbff);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px;
    box-shadow: 0 10px 22px rgba(18,50,119,.06);
    transition: .2s
}

    .member-logo-card:hover {
        transform: translateY(-2px);
        border-color: #cfe0ff;
        box-shadow: 0 14px 28px rgba(18,50,119,.1)
    }

    .member-logo-card img {
        max-width: 100%;
        max-height: 40px;
        object-fit: contain;
        filter: grayscale(1);
        opacity: .82;
        transition: .2s
    }

    .member-logo-card:hover img {
        filter: none;
        opacity: 1
    }

.memberships-pagination {
    position: static !important;
    margin-top: 2px;
    height: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px
}

    .memberships-pagination .swiper-pagination-bullet {
        width: 6px;
        height: 6px;
        background: #c4d4f6;
        opacity: 1;
        margin: 0 !important
    }

    .memberships-pagination .swiper-pagination-bullet-active {
        width: 18px;
        border-radius: 999px;
        background: var(--blue)
    }

.membership-box .more {
    margin-top: 13px
}

.cta {
    padding-bottom: 0
}

.cta-box {
    background: linear-gradient(90deg,#052a97,#003dd1);
    border-radius: 14px;
    color: #fff;
    padding: 33px 45px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    box-shadow: 0 20px 40px rgba(0,60,180,.18)
}

.cta-left {
    display: flex;
    align-items: center;
    gap: 28px
}

.cta-icon {
    width: 86px;
    height: 86px;
    border: 2px solid rgba(255,255,255,.33);
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-size: 42px
}

.cta h2 {
    font-size: 27px;
    font-weight: 900;
    margin: 0 0 5px
}

.cta p {
    font-size: 12px;
    color: rgba(255,255,255,.85);
    margin: 0;
    font-weight: 700
}

.btn-white {
    background: #fff;
    color: var(--blue);
    border-radius: 9px;
    padding: 18px 70px;
    font-size: 20px;
    font-weight: 900;
    display: inline-flex;
    gap: 18px;
    align-items: center
}

footer {
    background: linear-gradient(180deg,#061934,#031326);
    color: #9fb0cc;
    margin-top: 28px;
    padding: 34px 0 0;
    flex-shrink: 0
}

.footer-logo {
    width: 185px;
    margin-bottom: 18px
}

.footer-desc {
    font-size: 12px;
    font-weight: 600;
    line-height: 1.7
}

.social {
    display: flex;
    gap: 11px;
    margin: 0
}

    .social a {
        width: 38px;
        height: 38px;
        border: 1px solid transparent;
        border-radius: 50%;
        color: #fff;
        display: grid;
        place-items: center;
        font-size: 17px;
        box-shadow: 0 7px 18px rgba(0,0,0,.2)
    }

.floating-social {
    position: fixed;
    top: 50%;
    right: max(18px,env(safe-area-inset-right));
    z-index: 997;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    transform: translateY(-50%)
}

.social .social-linkedin {
    background: #0a66c2;
    border-color: #0a66c2
}

.social .social-facebook {
    background: #1877f2;
    border-color: #1877f2
}

.social .social-instagram {
    background: radial-gradient(circle at 30% 107%,#fdf497 0 5%,#fd5949 45%,#d6249f 60%,#285aeb 90%);
    border-color: #d6249f
}

.social .social-youtube {
    background: #f00;
    border-color: #f00
}

.social .social-twitter {
    background: #1da1f2;
    border-color: #1da1f2
}

.floating-whatsapp {
    position: fixed;
    right: max(20px,env(safe-area-inset-right));
    bottom: max(20px,env(safe-area-inset-bottom));
    z-index: 998;
    display: grid;
    width: 58px;
    height: 58px;
    place-items: center;
    border: 2px solid rgba(255,255,255,.95);
    border-radius: 50%;
    background: #25d366;
    color: #fff;
    font-size: 30px;
    box-shadow: 0 12px 30px rgba(0,0,0,.28);
    transition: transform .24s ease,box-shadow .24s ease,filter .24s ease
}

.floating-whatsapp:hover,
.floating-whatsapp:focus-visible {
    color: #fff;
    transform: translateY(-3px) scale(1.04);
    box-shadow: 0 16px 36px rgba(37,211,102,.35);
    filter: brightness(1.04)
}

.foot-title {
    color: #fff;
    text-transform: uppercase;
    font-size: 11px;
    font-weight: 900;
    margin-bottom: 16px
}

.foot-links {
    list-style: none;
    margin: 0;
    padding: 0
}

.foot-links li {
    margin-bottom: 9px
}

.foot-links a, .contact p, .contact a {
    font-size: 12px;
    color: #aab9d0;
    font-weight: 600;
    margin-bottom:9px;
}

.contact i {
    color: #fff;
    margin-right: 11px
}

.footer-bottom {
    margin-top: 30px;
    border-top: 1px solid rgba(255,255,255,.1);
    padding: 15px 0;
    font-size: 11px;
    color: #8b9bb7;
    text-align: center;
}


    .footer-bottom a {
        color: #8b9bb7;
        margin-left: 34px
    }
@media (min-width: 768px) {
    .footer-bottom {
        text-align: left;
    }

    .footer-links {
        justify-content: flex-end;
    }
}
@media(max-width:991px) {
    .site-header {
        height: auto;
        padding: 14px 0
    }

    .hero h1 {
        font-size: 40px
    }

    .stat {
        border: 0;
        margin: 10px 0
    }

    .map-img {
        position: relative;
        width: 100%;
        right: auto;
        top: auto;
        margin-top: 10px
    }

    .green-list, .green-btn {
        position: relative;
        left: auto;
        right: auto;
        top: auto;
        bottom: auto;
        margin-left: 48px;
        margin-bottom: 20px
    }

    .process-card:after {
        display: none
    }

    .cta-box, .cta-left {
        display: block
    }

    .btn-white {
        margin-top: 20px;
        padding: 15px 35px
    }

    .cta-icon {
        margin-bottom: 18px
    }
}

@media(max-width:575px) {
    .floating-social {
        right: max(8px,env(safe-area-inset-right));
        gap: 8px
    }

    .floating-social a {
        width: 36px;
        height: 36px;
        font-size: 16px
    }
}

@media(max-width:575px) {
    .hero h1 {
        font-size: 34px
    }

    .hero-copy {
        padding: 42px 0
    }

    .service-img {
        height: 110px
    }

    .panel, .target, .green-content, .info-box, .cta-box {
        padding: 24px
    }

    .green-list {
        margin-left: 24px
    }

    .mini-grid {
        grid-template-columns: 1fr
    }

    .cta h2 {
        font-size: 22px
    }
}

@media(max-width:1500px) {
    .container, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {
        max-width: 1450px !important;
    }
}

@media (max-width:991px) {
    .hero-slide-img {
        width: 100%;
        object-position: center
    }

    .hero-gradient {
        background: linear-gradient(90deg,#fff 0%,rgba(255,255,255,.98) 44%,rgba(255,255,255,.62) 65%,rgba(255,255,255,.08) 86%,rgba(255,255,255,0) 100%)
    }

    .hero-title {
        font-size: 42px
    }

    .hero-copy {
        max-width: 365px
    }

    .hero-content {
        padding-top: 0
    }
}

@media (max-width:575px) {
    .hero-slide-img {
        width: 100%;
        height: auto;
        object-position: center
    }

    .hero-gradient {
        background: linear-gradient(180deg,#fff 0%,rgba(255,255,255,.98) 50%,rgba(255,255,255,.48) 76%,rgba(255,255,255,0) 100%)
    }

    .hero-title {
        font-size: 36px
    }

    .hero-content {
        padding-top: 0
    }

    .hero-actions {
        gap: 12px
    }

    .hero .btn-video {
        padding-right: 14px
    }
}

@media(max-width:575px) {
    .membership-box {
        padding-bottom: 22px
    }

    .memberships-swiper {
        height: 148px
    }

        .memberships-swiper .swiper-slide, .member-logo-card {
            height: 62px
        }

            .member-logo-card img {
                max-height: 34px
            }

    .membership-nav {
        width: 28px;
        height: 28px
    }
}

.site-header .navbar {
    width: 100%;
    padding: 0
}

    .site-header .navbar > .col-11 {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 24px
    }

.site-header .navbar-brand {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    position: relative;
    z-index: 2
}

.site-header .navbar-collapse {
    flex-grow: 1;
    align-items: center
}

.site-header .collapse {
    visibility: visible
}

.dropdown-menu {
    border: 1px solid var(--line);
    border-radius: 12px;
    box-shadow: 0 18px 40px rgba(18,50,119,.12);
    padding: 10px;
    min-width: 230px
}

.dropdown-item {
    font-size: 13px;
    font-weight: 700;
    color: #243a78;
    border-radius: 8px;
    padding: 10px 12px
}

    .dropdown-item:hover {
        background: #f2f6ff;
        color: var(--blue)
    }

.navbar-toggler {
    border: 0;
    color: var(--blue);
    font-size: 28px
}

    .navbar-toggler:focus {
        box-shadow: none
    }

.service-card a {
    display: block;
    height: 100%;
    color: inherit
}

    .service-card a:hover {
        color: inherit
    }

@media(max-width:1199.98px) {
    .site-header {
        height: auto;
        min-height: 76px;
        padding: 0;
        top: 0;
        transform: none;
        overflow: visible
    }

    .site-header.scrolled,
    .site-header.is-scrolled,
    .site-header.header-scrolled,
    body.scrolled .site-header,
    body.is-scrolled .site-header {
        min-height: 76px;
        padding: 0;
        transform: none
    }

    .site-header .navbar {
        min-height: 76px;
        display: flex;
        align-items: center
    }

    .site-header .navbar-brand {
        min-height: 76px;
        overflow: visible
    }

    .logo {
        width: auto;
        max-width: 130px;
        max-height: 48px;
        object-fit: contain
    }

    .site-header .navbar > .col-11 {
        min-height: 76px;
        align-items: center;
        flex-wrap: wrap
    }

    .site-header .navbar-collapse {
        width: 100%;
        flex-basis: 100%;
        margin-top: 0;
        padding-top: 0
    }

    .site-header .navbar-collapse.show,
    .site-header .navbar-collapse.collapsing {
        padding-top: 14px
    }

    .site-header .navbar-nav {
        width: 100%;
        align-items: stretch !important
    }

    .site-header .nav-link {
        padding: 12px 0 !important
    }

    .site-header .dropdown-menu {
        position: static;
        width: 100%;
        box-shadow: none;
        margin: 0 0 8px;
        border-radius: 10px
    }

    .site-header .navbar-collapse > .d-flex {
        width: 100%;
        align-items: center;
        flex-wrap: wrap;
        margin-left: 0 !important;
        padding-bottom: 4px
    }

    .navbar-toggler {
        width: 44px;
        min-width: 44px;
        height: 44px;
        padding: 0;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        line-height: 1
    }
}

.target:before {
    content: "";
    position: absolute;
    inset: 0;
    background: url('assets/europe-map.png') right center/68% auto no-repeat;
    z-index: 0
}

.target:after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg,#fff 0%,rgba(255,255,255,.96) 30%,rgba(255,255,255,.62) 50%,rgba(255,255,255,.08) 72%,rgba(255,255,255,0) 100%);
    z-index: 0;
    pointer-events: none
}

.target {
    min-height: 362px;
    display: flex;
    align-items: center
}

    .target .map-img {
        display: none
    }

.green-box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    padding: 32px 38px 30px 48px
}

.green-content {
    padding: 0;
    flex: 0 1 42%;
    max-width: 430px
}

.green-list {
    position: relative;
    left: auto;
    top: auto;
    flex: 0 1 31%;
    min-width: 260px
}

.green-btn {
    position: static;
    display: inline-flex;
    align-items: center;
    white-space: nowrap
}

.green-action {
    position: relative;
    z-index: 2;
    flex: 0 0 auto;
    align-self: flex-end
}

.quote-modal {
    position: fixed;
    inset: 0;
    z-index: 999;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(3,19,38,.58);
    padding: 24px
}

    .quote-modal.is-open {
        display: flex
    }

.quote-modal-dialog {
    width: min(760px,100%);
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 24px 60px rgba(0,0,0,.22);
    overflow: hidden
}

.quote-modal [hidden] {
    display: none !important
}

.quote-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid var(--line);
    padding: 18px 22px;
    color: #102866
}

    .quote-modal-header button {
        border: 0;
        background: transparent;
        font-size: 28px;
        line-height: 1;
        color: #647496
    }

.quote-alert {
    margin: 16px 22px 0;
    padding: 11px 14px;
    border-radius: 8px;
    font-weight: 700;
    font-size: 13px
}

.quote-alert-success {
    background: #e8fff0;
    color: #0d7031
}

.quote-alert-error {
    background: #fff1f1;
    color: #b42318;
    border: 1px solid #ffd5d2
}

.quote-success-panel {
    display: flex;
    min-height: 390px;
    padding: 54px 32px 48px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    text-align: center
}

.quote-success-panel:focus {
    outline: none
}

.quote-success-icon {
    display: inline-flex;
    width: 76px;
    height: 76px;
    margin-bottom: 22px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #e8fff0;
    color: #0d8a3f;
    font-size: 38px;
    box-shadow: 0 0 0 10px rgba(13,138,63,.07)
}

.quote-success-panel h3 {
    margin: 0 0 10px;
    color: #102866;
    font-size: clamp(24px,3vw,32px);
    font-weight: 800
}

.quote-success-panel p {
    max-width: 520px;
    margin: 0 0 28px;
    color: #53658b;
    font-size: 15px;
    line-height: 1.7
}

.quote-success-button {
    min-width: 140px;
    border: 0;
    border-radius: 8px;
    background: var(--blue);
    color: #fff;
    font-weight: 900;
    padding: 12px 24px
}

.quote-form {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    padding: 22px
}

    .quote-form input, .quote-form textarea {
        border: 1px solid #dfe8ff;
        border-radius: 9px;
        padding: 12px 13px;
        font: inherit;
        color: var(--text);
        outline: 0
    }

        .quote-form input:focus, .quote-form textarea:focus {
            border-color: var(--blue);
            box-shadow: 0 0 0 3px rgba(3,86,232,.11)
        }

    .quote-form textarea, .quote-check, .quote-security, .quote-actions {
        grid-column: 1/-1
    }

.quote-check {
    display: flex;
    gap: 10px;
    font-size: 12px;
    color: #53658b;
    font-weight: 600
}

.quote-security {
    display: flex;
    align-items: center;
    gap: 12px
}

    .quote-security img {
        height: 42px;
        border-radius: 8px
    }

    .quote-security input {
        max-width: 150px
    }

.quote-actions {
    display: flex;
    justify-content: flex-end
}

    .quote-actions button {
        border: 0;
        border-radius: 8px;
        background: var(--blue);
        color: #fff;
        font-weight: 900;
        padding: 12px 24px
    }

    .quote-actions button:disabled {
        cursor: wait;
        opacity: .68
    }

@media(max-width:991px) {
    .site-header .navbar > .col-11 {
        align-items: center;
        flex-wrap: wrap
    }

    .site-header .navbar-collapse {
        width: 100%;
        flex-basis: 100%
    }

    .green-box {
        display: block
    }

    .green-list {
        margin: 18px 0
    }

    .green-action {
        align-self: auto
    }
}

@media(max-width:575px) {
    .quote-form {
        grid-template-columns: 1fr
    }

    .quote-modal {
        padding: 14px
    }
}

@media(max-width:991px) {
    .hero,
    .hero-carousel,
    .hero-carousel .carousel-inner,
    .hero-carousel .carousel-item,
    .hero-slide {
        width: 100%;
        max-width: 100%
    }

    .hero-slide {
        min-height: 0;
        display: flex;
        flex-direction: column;
        align-items: stretch;
        background: #fff
    }

    .hero-picture {
        position: relative;
        inset: auto;
        height: clamp(260px,40vw,380px);
        overflow: hidden
    }

    .hero-slide-img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center
    }

    .hero-gradient {
        display: none
    }

    .hero-content {
        position: relative;
        inset: auto;
        min-height: 0;
        padding: 30px 0 34px;
        align-items: flex-start;
        background: #fff
    }

    .hero-copy {
        max-width: 420px;
        padding: 0
    }

    .hero .hero-title {
        font-size: 38px;
        line-height: 1.16;
        letter-spacing: 0;
        margin-bottom: 14px
    }

    .hero-text {
        max-width: 390px;
        margin-bottom: 18px;
        font-size: 13px;
        line-height: 1.65
    }

    .hero-actions {
        gap: 12px
    }

    .hero-nav {
        margin-top: 16px
    }
}

@media(max-width:575px) {
    .site-header,
    .site-header .navbar,
    .site-header .navbar > .col-11,
    .site-header .navbar-brand {
        min-height: 72px
    }

    .site-header.scrolled,
    .site-header.is-scrolled,
    .site-header.header-scrolled,
    body.scrolled .site-header,
    body.is-scrolled .site-header {
        min-height: 72px
    }

    .logo {
        max-height: 44px
    }

    .hero-picture {
        height: clamp(210px,58vw,300px)
    }

    .hero-slide-img {
        object-position: center
    }

    .hero-gradient {
        display: none
    }

    .hero-content {
        width: calc(100% - 32px);
        padding: 24px 0 28px;
        align-items: flex-start
    }

    .hero-copy {
        max-width: 100%
    }

    .hero-eyebrow {
        font-size: 11px;
        margin-bottom: 8px
    }

    .hero .hero-title {
        font-size: 32px;
        line-height: 1.18;
        margin-bottom: 12px
    }

    .hero-text {
        max-width: 100%;
        font-size: 12px;
        line-height: 1.6
    }

    .hero-actions {
        align-items: flex-start
    }
}

.inner-hero {
    background: linear-gradient(180deg,#f7faff 0%,#fff 100%);
    border-bottom: 1px solid var(--line);
    padding: 34px 0 38px
}

.inner-breadcrumb {
    display: flex;
    align-items: center;
    gap: 9px;
    color: #6a7898;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    margin-bottom: 24px
}

    .inner-breadcrumb a {
        color: #516286
    }

        .inner-breadcrumb a:hover {
            color: var(--blue)
        }

    .inner-breadcrumb i {
        font-size: 12px;
        color: #9cadca
    }

    .inner-breadcrumb span {
        color: #102866
    }

.inner-hero-grid {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    align-items: center;
    gap: 32px
}

.inner-hero h1 {
    font-size: 42px;
    line-height: 1.12;
    font-weight: 900;
    color: #071b57;
    letter-spacing: 0;
    margin: 7px 0 13px;
    max-width: 820px
}

.inner-hero p {
    margin: 0;
    color: #53658b;
    font-size: 14px;
    font-weight: 600;
    max-width: 780px;
    line-height: 1.75
}

.inner-hero-icon {
    width: 118px;
    height: 118px;
    border-radius: 22px;
    background: #fff;
    border: 1px solid var(--line);
    box-shadow: var(--shadow);
    display: grid;
    place-items: center;
    color: var(--blue);
    font-size: 52px
}

    .inner-hero-icon img {
        max-width: 72px;
        max-height: 72px;
        width: auto;
        height: auto;
        display: block;
        object-fit: contain
    }

.inner-section {
    padding: 15px 0;
    background: #fff
}

.inner-section-soft {
    background: #f7faff
}

.inner-title {
    font-size: 28px;
    font-weight: 900;
    color: #071b57;
    margin: 0 0 20px
}

.inner-subtitle {
    color: #53658b;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.7
}

.inner-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 14px;
    box-shadow: var(--shadow);
    padding: 10px;
    height: 100%
}

    .inner-card:hover {
        box-shadow: 0 22px 42px rgba(18,50,119,.12)
    }

.inner-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 22px
}

.inner-grid-1 {
    grid-template-columns: 1fr
}

.inner-grid-4 {
    grid-template-columns: repeat(4,minmax(0,1fr))
}

.inner-link-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    color: #14275b
}

    .inner-link-card .icon, .inner-chip .icon {
        width: 46px;
        height: 46px;
        border: 1px solid #dfe8ff;
        border-radius: 50%;
        display: grid;
        place-items: center;
        color: var(--blue);
        font-size: 21px;
        background: #f7faff;
        flex: none
    }

    .inner-link-card h2, .inner-link-card h3 {
        font-size: 15px;
        font-weight: 900;
        color: #132864;
        margin: 0 0 4px
    }

    .inner-link-card p {
        font-size: 12px;
        color: #657495;
        font-weight: 600;
        margin: 0
    }

    .inner-link-card .go {
        color: var(--blue);
        font-size: 20px;
        flex: none
    }

    .inner-link-card:hover h2, .inner-link-card:hover h3 {
        color: var(--blue)
    }

.inner-richtext {
    color: #37476f;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.8
}
.inner-richtext h2 {
    font-size: 26px;
}

.inner-richtext h3 {
    font-size: 22px;
}

.inner-richtext h4 {
    font-size: 18px;
}
    .inner-richtext :is(h1,h2,h3,h4) {
        color: #102866;
        font-weight: 900;
        margin-top: 1.2em
    }

    .inner-richtext p {
        margin-bottom: 1rem
    }

    .inner-richtext img {
        max-width: 100%;
        border-radius: 14px
    }
    @media(max-width:991px) {
        .inner-richtext img {
            width:100% !important;
            float:none !important;
            margin:auto !important
        }
    }
.inner-media {
    width: 100%;
    border-radius: 15px;
    overflow: hidden;
    box-shadow: var(--shadow);
    border: 1px solid var(--line);
    background: #edf3ff
}

    .inner-media img {
        width: 100%;
        height: 100%;
        display: block;
        object-fit: cover
    }

.service-detail-media {
    float: left;
    float: inline-start;
    width: 50%;
    margin: 0 28px 20px 0;
}

    .service-detail-media img {
        width: 100%;
        height: auto;
        display: block;
        object-fit: cover;
        border-radius: 18px;
    }

.service-detail-content h2,
.service-detail-content h3,
.inner-richtext h2,
.inner-richtext h3 {
    margin-bottom: 18px;
}

.service-detail-clear {
    clear: both
}

.useful-lead {
    background: #f7faff;
    border: 1px solid #dfe8ff;
    border-radius: 12px;
    margin-bottom: 24px;
    padding: 18px 20px;
    font-weight: 700
}

.listing-card {
    display: block;
    color: inherit;
    overflow: hidden
}

    .listing-card .media {
        height: 205px;
        border-radius: 13px 13px 0 0;
        background: #edf3ff;
        overflow: hidden;
        margin: -26px -26px 22px
    }

    .listing-card img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: .35s
    }

    .listing-card:hover img {
        transform: scale(1.05)
    }

    .listing-card h2 {
        font-size: 16px;
        font-weight: 900;
        color: #132864;
        margin: 0 0 8px
    }

    .listing-card p {
        font-size: 12px;
        color: #657495;
        font-weight: 600;
        margin: 0
    }

.sector-card {
    text-align: center;
    color: inherit
}

    .sector-card .sector-icon {
        width: 92px;
        height: 92px;
        border-radius: 50%;
        margin: 0 auto 16px;
        background: #fff;
        border: 1px solid var(--line);
        box-shadow: var(--shadow);
        display: grid;
        place-items: center;
        transition: .25s
    }

    .sector-card img {
        max-width: 50px;
        max-height: 50px;
        object-fit: contain
    }

    .sector-card h2 {
        font-size: 14px;
        font-weight: 900;
        color: #14275b
    }

    .useful-card {
        display: flex;
        flex-direction: column;
        align-items: center
    }

        .useful-card .sector-icon i {
            color: var(--blue);
            font-size: 34px
        }

        .useful-card .useful-card-text {
            color: #657495;
            font-size: 12px;
            font-weight: 600;
            line-height: 1.65;
            margin: 0 0 16px
        }

        .useful-card .useful-card-text p {
            margin: 0
        }

        .useful-card-action {
            display: inline-flex;
            align-items: center;
            gap: 7px;
            color: var(--blue);
            font-size: 12px;
            font-weight: 900;
            margin-top: auto
        }

        .useful-card:hover .useful-card-action i,
        .useful-card:focus-visible .useful-card-action i {
            transform: translateX(3px)
        }

    .sector-card:hover .sector-icon {
        transform: translateY(-5px);
        border-color: #cfe0ff
    }

.detail-layout {
    display: grid;
    grid-template-columns: minmax(0,1fr) 330px;
    gap: 28px;
    align-items: start
}

.detail-sidebar {
    position: sticky;
    top: 98px
}

.chip-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px
}

.inner-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 1px solid #dfe8ff;
    border-radius: 999px;
    background: #fff;
    color: #263a78;
    font-size: 12px;
    font-weight: 800;
    padding: 8px 12px
}

    .inner-chip.active, .inner-chip:hover {
        background: var(--blue);
        border-color: var(--blue);
        color: #fff
    }

        .inner-chip.active .icon, .inner-chip:hover .icon {
            background: rgba(255,255,255,.16);
            border-color: rgba(255,255,255,.3);
            color: #fff
        }

.gallery-grid {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 14px
}

    .gallery-grid a {
        display: block;
        height: 180px;
        border-radius: 12px;
        overflow: hidden;
        background: #edf3ff
    }

    .gallery-grid img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: .35s
    }

    .gallery-grid a:hover img {
        transform: scale(1.06)
    }

.form-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 14px
}

.grid-span {
    grid-column: 1/-1
}

.form-field, .inner-form input, .inner-form textarea {
    width: 100%;
    border: 1px solid #dfe8ff;
    border-radius: 9px;
    padding: 13px 14px;
    color: var(--text);
    font: inherit;
    font-weight: 600;
    background: #fff;
    outline: 0
}

.inner-form textarea {
    min-height: 142px;
    resize: vertical
}

    .form-field:focus, .inner-form input:focus, .inner-form textarea:focus {
        border-color: var(--blue);
        box-shadow: 0 0 0 3px rgba(3,86,232,.11)
    }

.form-check-line {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: #53658b;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.6
}

    .form-check-line input {
        width: 16px;
        height: 16px;
        margin-top: 2px;
        flex: none
    }

.captcha-row {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    flex-wrap: wrap
}

    .captcha-row img {
        height: 46px;
        border-radius: 8px;
        border: 1px solid #dfe8ff;
        background: #f7faff;
        padding: 2px
    }

    .captcha-row input {
        max-width: 170px
    }

.contact-map {
    height: 360px;
    border-radius: 14px;
    overflow: hidden;
    border: 1px solid var(--line);
    box-shadow: var(--shadow);
    background: #edf3ff
}

    .contact-map iframe {
        width: 100% !important;
        height: 100% !important;
        border: 0;
        display: block
    }

.contact-card {
    text-align: center
}

    .contact-card i {
        font-size: 28px;
        color: var(--blue);
        margin-bottom: 12px
    }

    .contact-card a, .contact-card div {
        color: #37476f;
        font-weight: 700;
        font-size: 13px
    }

.empty-state {
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #fff;
    box-shadow: var(--shadow);
    padding: 42px;
    text-align: center;
    color: #53658b;
    font-weight: 800
}

    .empty-state i {
        display: block;
        font-size: 36px;
        color: var(--blue);
        margin-bottom: 10px
    }

.measure-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 22px
}

.measure-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 14px;
    box-shadow: var(--shadow);
    overflow: hidden
}

    .measure-card img {
        /* width: 100%; */
        /* height: 190px; */
        object-fit: contain;
        background: #edf3ff;
        margin: auto;
        padding: 1rem;
    }


.measure-body {
    padding: 22px
}

    .measure-body h2 {
        font-size: 16px;
        font-weight: 900;
        color: #102866;
        margin: 0 0 16px
    }

    .measure-body dl {
        margin: 0;
        display: grid;
        gap: 8px
    }

        .measure-body dl div {
            display: flex;
            justify-content: space-between;
            gap: 16px;
            border-bottom: 1px solid #edf2ff;
            padding-bottom: 8px
        }

    .measure-body dt {
        font-size: 12px;
        color: #6a7898;
        font-weight: 800
    }

    .measure-body dd {
        font-size: 12px;
        color: #14275b;
        font-weight: 900;
        margin: 0;
        text-align: right
    }

.timeline {
    border-left: 2px solid #dfe8ff;
    margin-left: 12px;
    padding-left: 24px;
    display: grid;
    gap: 18px
}

.timeline-item {
    position: relative
}

    .timeline-item:before {
        content: "";
        position: absolute;
        left: -36px;
        top: 4px;
        width: 20px;
        height: 20px;
        border-radius: 50%;
        background: var(--blue);
        border: 4px solid #fff;
        box-shadow: 0 0 0 1px #cfe0ff
    }

.green-page {
    background: #0a622c;
    color: #fff;
    border-radius: 15px;
    overflow: hidden;
    position: relative;
    background-image: url('assets/green-banner.png');
    background-size: cover;
    background-position: center;
    min-height:300px;
}

    .green-page:before {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(90deg,rgba(0,77,33,.78),rgba(0,77,33,.2))
    }

    .green-page > * {
        position: relative
    }

    .green-page .inner-richtext, .green-page p {
        color: rgba(255,255,255,.86)
    }

@media(max-width:991px) {
    .inner-hero-grid {
        grid-template-columns: 1fr
    }

    .inner-hero-icon {
        display: none
    }

    .inner-grid, .inner-grid-4, .measure-grid {
        grid-template-columns: repeat(2,minmax(0,1fr))
    }

    .detail-layout {
        grid-template-columns: 1fr
    }

    .detail-sidebar {
        position: static
    }

    .service-detail-media {
        float: none;
        width: 100%;
        margin: 0 0 22px
    }

    .gallery-grid {
        grid-template-columns: repeat(2,minmax(0,1fr))
    }
}

@media(max-width:575px) {
    .inner-hero {
        padding: 24px 0 30px
    }

        .inner-hero h1 {
            font-size: 30px
        }

    .inner-grid, .inner-grid-4, .measure-grid, .form-grid {
        grid-template-columns: 1fr
    }

    .listing-card .media {
        height: 180px
    }

    .gallery-grid {
        grid-template-columns: 1fr
    }

    .contact-map {
        height: 300px
    }

    .captcha-row {
        justify-content: flex-start
    }
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
    outline: 3px solid rgba(3,86,232,.22);
    outline-offset: 3px;
}

.btn-dg,
.btn-dg i,
.btn-video,
.btn-video .play,
.btn-white,
.btn-white i,
.green-btn,
.green-btn i,
.quote-actions button,
.nav-link,
.dropdown-item,
.inner-breadcrumb a,
.more,
.more i,
.mini-item,
.social a,
.foot-links a,
.contact a,
.footer-bottom a,
.inner-chip,
.stat,
.stat i,
.process-card,
.process-head i,
.why-item,
.why-item i,
.info-box,
.mini-item i,
.inner-link-card,
.inner-link-card .icon,
.listing-card,
.sector-card,
.sector-card .sector-icon,
.useful-card-action,
.useful-card-action i,
.measure-card,
.measure-card img,
.contact-card,
.contact-card i,
.gallery-grid a,
.gallery-grid img {
    transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease, background-color .24s ease, color .24s ease, opacity .24s ease, filter .24s ease;
}

@media (hover:hover) and (pointer:fine) {
    .btn-dg:hover,
    .btn-dg:focus-visible,
    .btn-white:hover,
    .btn-white:focus-visible,
    .green-btn:hover,
    .green-btn:focus-visible,
    .quote-actions button:hover,
    .quote-actions button:focus-visible {
        transform: translateY(-2px);
        box-shadow: 0 16px 30px rgba(3,86,232,.2);
    }

    .btn-video:hover,
    .btn-video:focus-visible {
        transform: translateY(-2px);
        border-color: #cfe0ff;
        box-shadow: 0 14px 30px rgba(18,50,119,.1);
        color: var(--blue);
    }

        .btn-video:hover .play,
        .btn-video:focus-visible .play {
            background: var(--blue);
            color: #fff;
            border-color: var(--blue);
        }

    .nav-link:hover,
    .nav-link:focus-visible {
        transform: translateY(-1px);
    }

    .dropdown-item:hover,
    .dropdown-item:focus-visible {
        transform: translateX(3px);
    }

    .more:hover,
    .more:focus-visible,
    .inner-breadcrumb a:hover,
    .inner-breadcrumb a:focus-visible,
    .foot-links a:hover,
    .foot-links a:focus-visible,
    .contact a:hover,
    .contact a:focus-visible,
    .footer-bottom a:hover,
    .footer-bottom a:focus-visible {
        color: #fff;
    }

    .more:hover,
    .more:focus-visible,
    .inner-breadcrumb a:hover,
    .inner-breadcrumb a:focus-visible {
        color: var(--blue);
    }

        .more:hover i,
        .more:focus-visible i,
        .btn-dg:hover i,
        .btn-dg:focus-visible i,
        .btn-white:hover i,
        .btn-white:focus-visible i,
        .green-btn:hover i,
        .green-btn:focus-visible i {
            transform: translateX(3px);
        }

    .social a:hover,
    .social a:focus-visible {
        color: #fff;
        transform: translateY(-3px);
        filter: brightness(1.08);
        box-shadow: 0 11px 24px rgba(0,0,0,.28);
    }

    .stat:hover {
        transform: translateY(-2px);
    }

    .why-item:hover i,
    .process-card:hover .process-head i {
        background: var(--blue);
        border-color: var(--blue);
        color: #fff;
        transform: translateY(-2px);
    }

    .stat:hover i,
    .contact-card:hover i {
        color: #0147c8;
        transform: translateY(-2px) scale(1.04);
    }

    .process-card:hover,
    .info-box:hover,
    a.inner-card:hover,
    .inner-link-card:hover,
    .listing-card:hover,
    .sector-card:hover,
    .measure-card:hover,
    .contact-card:hover {
        transform: translateY(-5px);
        border-color: #d7e5ff;
        box-shadow: 0 24px 46px rgba(18,50,119,.13);
    }

        .inner-link-card:hover .icon,
        .inner-link-card:focus-visible .icon,
        .sector-card:hover .sector-icon,
        .sector-card:focus-visible .sector-icon {
            background: #f0f6ff;
            border-color: #cfe0ff;
            transform: translateY(-3px);
        }

    .mini-item:hover,
    .mini-item:focus-visible {
        color: var(--blue);
        transform: translateX(3px);
    }

        .mini-item:hover i,
        .mini-item:focus-visible i {
            transform: scale(1.08);
        }

    .listing-card:hover h2,
    .listing-card:focus-visible h2,
    .sector-card:hover h2,
    .sector-card:focus-visible h2 {
        color: var(--blue);
    }

    .measure-card:hover img {
        transform: scale(1.04);
    }

    .gallery-grid a:hover,
    .gallery-grid a:focus-visible {
        box-shadow: 0 18px 36px rgba(18,50,119,.14);
        transform: translateY(-3px);
    }
}

@media (prefers-reduced-motion:reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition: none !important;
        animation: none !important;
    }

        *:hover,
        *:focus-visible {
            transform: none !important;
        }
}



.about-cover {
    height: clamp(260px, 36vw, 430px);
    border-radius: 14px 14px 0 0;
    overflow: hidden;
    background-image: var(--about-bg);
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
}

    .about-cover img {
        display: none;
    }

.about-copy {
    padding: 10px;
}

.about-copy h2 {
    margin-top: 0;
}

@media (max-width:575px) {
    .about-copy {
        padding: 24px;
    }

    .about-cover {
        height: 240px;
        background-attachment: scroll;
    }
}

.stats-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
}

.stats-grid .stat {
    justify-content: flex-start;
    gap: 18px;
    border-right: 0;
    border-bottom: 1px solid #e7eefb;
    min-height: 82px;
    padding: 14px 24px;
}

.stats-grid .stat.last {
    border-bottom: 0;
}

.stats-grid .stat i {
    width: 44px;
    min-width: 44px;
    text-align: center;
    font-size: 38px;
}

.stats-grid .stat strong {
    font-size: 26px;
}

.stats-grid .stat small {
    display: block;
    margin-top: 3px;
    font-size: 12px;
}

@media (min-width:768px) {
    .stats-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .stats-grid .stat {
        border-bottom: 1px solid #e7eefb;
        border-right: 1px solid #e7eefb;
        min-height: 96px;
        padding: 18px 22px;
    }

    .stats-grid .stat:nth-child(3n) {
        border-right: 0;
    }

    .stats-grid .stat:nth-last-child(-n+2) {
        border-bottom: 0;
    }
}

@media (min-width:1200px) {
    .stats-grid {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    .stats-grid .stat {
        justify-content: center;
        border-bottom: 0;
        border-right: 1px solid #e7eefb;
        min-height: 64px;
        padding: 0 18px;
    }

    .stats-grid .stat:nth-child(3n) {
        border-right: 1px solid #e7eefb;
    }

    .stats-grid .stat.last {
        border-right: 0;
    }
}
