:root {

    --norvik-blue: #063b66;
    --norvik-blue-dark: #032b4c;
    --norvik-blue-light: #0875b9;

    --norvik-teal: #00a7a7;

    --text-dark: #17212b;
    --text-muted: #667585;

    --background: #f7f9fb;

    --white: #ffffff;

    --border: #e6ebef;

}


* {
    box-sizing: border-box;
}


html {
    scroll-behavior: smooth;
}


body {

    margin: 0;

    font-family: "Inter", sans-serif;

    color: var(--text-dark);

    background: var(--white);

    line-height: 1.7;

}


h1,
h2,
h3,
h4,
h5,
h6 {

    font-family: "Poppins", sans-serif;

    line-height: 1.2;

}


/* ==========================
   UTILITY BAR
========================== */

.utility-bar {

    background: var(--norvik-blue-dark);

    color: rgba(255,255,255,.8);

    font-size: 13px;

    padding: 9px 0;

}


.utility-left,
.utility-right {

    display: flex;

    align-items: center;

    gap: 20px;

}


.utility-bar span,
.utility-bar a {

    color: rgba(255,255,255,.8);

    text-decoration: none;

}


.utility-bar i {

    margin-right: 5px;

}


/* ==========================
   NAVIGATION
========================== */

.main-header {

    position: relative;

    z-index: 1000;

    background: #fff;

    box-shadow: 0 2px 20px rgba(0,0,0,.05);

}


.navbar {

    min-height: 88px;

}


.norvik-logo {

    width: 180px;

    height: auto;

}


.nav-link {

    color: var(--text-dark) !important;

    font-weight: 500;

    font-size: 14px;

    padding: 12px 15px !important;

}


.nav-link:hover,
.nav-link.active {

    color: var(--norvik-blue-light) !important;

}


.dropdown-menu {

    border: 0;

    border-radius: 12px;

    padding: 12px;

    box-shadow: 0 20px 40px rgba(0,0,0,.12);

}


.dropdown-item {

    border-radius: 7px;

    padding: 10px 14px;

}


.dropdown-item:hover {

    background: #f0f7fb;

    color: var(--norvik-blue);

}


.btn-nav {

    display: inline-flex;

    align-items: center;

    gap: 8px;

    background: var(--norvik-blue);

    color: #fff;

    border-radius: 50px;

    padding: 12px 22px;

    font-weight: 600;

    text-decoration: none;

    transition: .3s ease;

}


.btn-nav:hover {

    background: var(--norvik-blue-light);

    color: #fff;

    transform: translateY(-2px);

}


/* ==========================
   HERO
========================== */

.hero-section {

    position: relative;

    min-height: calc(100vh - 120px);

    display: flex;

    align-items: center;

    overflow: hidden;

    background:

        linear-gradient(
            90deg,
            rgba(3,43,76,.97) 0%,
            rgba(3,43,76,.88) 38%,
            rgba(3,43,76,.45) 75%,
            rgba(3,43,76,.30) 100%
        ),

        url("../images/hero.jpg") center center / cover no-repeat;

}


.hero-overlay {

    position: absolute;

    inset: 0;

    background:

        radial-gradient(
            circle at 80% 50%,
            rgba(0,167,167,.18),
            transparent 30%
        );

}


.hero-pattern {

    position: absolute;

    inset: 0;

    opacity: .08;

    background-image:

        linear-gradient(
            30deg,
            #fff 12%,
            transparent 12.5%,
            transparent 87%,
            #fff 87.5%
        );

    background-size: 70px 120px;

}


.min-vh-75 {

    min-height: 75vh;

}


.hero-content {

    position: relative;

    z-index: 2;

    padding: 80px 0;

}


.hero-eyebrow {

    display: inline-block;

    margin-bottom: 20px;

    padding: 7px 14px;

    background: rgba(255,255,255,.1);

    border: 1px solid rgba(255,255,255,.2);

    border-radius: 50px;

    color: #bcecff;

    font-size: 12px;

    font-weight: 700;

    letter-spacing: 2px;

}


.hero-section h1 {

    max-width: 850px;

    margin-bottom: 25px;

    color: #fff;

    font-size: clamp(2.7rem, 5vw, 5.2rem);

    font-weight: 700;

    letter-spacing: -2px;

}


.hero-section h1 span {

    color: #55d5d5;

}


.hero-description {

    max-width: 720px;

    margin-bottom: 35px;

    color: rgba(255,255,255,.82);

    font-size: 18px;

}


.hero-actions {

    display: flex;

    flex-wrap: wrap;

    gap: 14px;

}


.hero-actions .btn {

    border-radius: 50px;

    padding: 14px 25px;

    font-weight: 600;

}


.hero-actions .btn-primary {

    background: var(--norvik-teal);

    border-color: var(--norvik-teal);

}


.hero-actions .btn-primary:hover {

    background: #078d8d;

    border-color: #078d8d;

}


/* ==========================
   HERO TRUST
========================== */

.hero-trust {

    display: flex;

    flex-wrap: wrap;

    align-items: center;

    gap: 20px;

    margin-top: 55px;

    max-width: 850px;

}


.trust-item {

    display: flex;

    flex-direction: column;

}


.trust-item strong {

    color: #fff;

    font-family: "Poppins", sans-serif;

    font-size: 20px;

}


.trust-item span {

    color: rgba(255,255,255,.65);

    font-size: 11px;

    text-transform: uppercase;

    letter-spacing: 1px;

}


.trust-divider {

    width: 1px;

    height: 40px;

    background: rgba(255,255,255,.2);

}


.scroll-indicator {

    position: absolute;

    right: 40px;

    bottom: 35px;

    z-index: 3;

    display: flex;

    flex-direction: column;

    align-items: center;

    gap: 8px;

    color: rgba(255,255,255,.6);

    font-size: 11px;

    text-transform: uppercase;

    letter-spacing: 1px;

}


.scroll-indicator i {

    animation: scrollArrow 1.8s infinite;

}


@keyframes scrollArrow {

    0%,
    100% {

        transform: translateY(0);

    }

    50% {

        transform: translateY(7px);

    }

}


/* ==========================
   GENERAL SECTIONS
========================== */

.section-padding {

    padding: 100px 0;

}


.section-eyebrow {

    display: inline-block;

    margin-bottom: 15px;

    color: var(--norvik-blue-light);

    font-size: 12px;

    font-weight: 700;

    letter-spacing: 2px;

}


.section-title {

    margin-bottom: 20px;

    color: var(--norvik-blue-dark);

    font-size: clamp(2rem, 4vw, 3.3rem);

    font-weight: 700;

    letter-spacing: -1px;

}


.section-lead {

    color: var(--text-muted);

    font-size: 17px;

}


/* ==========================
   ABOUT
========================== */

.about-section {

    background: #fff;

}


.about-image-wrapper {

    position: relative;

    padding-right: 35px;

}


.about-image {

    width: 100%;

    min-height: 500px;

    object-fit: cover;

    border-radius: 20px;

}


.experience-card {

    position: absolute;

    right: 0;

    bottom: 30px;

    width: 180px;

    padding: 22px;

    background: var(--norvik-blue);

    color: #fff;

    border-radius: 16px;

    box-shadow: 0 20px 40px rgba(0,0,0,.18);

}


.experience-card strong {

    display: block;

    font-family: "Poppins", sans-serif;

    font-size: 38px;

}


.experience-card span {

    display: block;

    font-size: 12px;

    color: rgba(255,255,255,.75);

}


.text-link {

    display: inline-flex;

    align-items: center;

    gap: 10px;

    margin-top: 15px;

    color: var(--norvik-blue);

    font-weight: 700;

    text-decoration: none;

}


.text-link:hover {

    color: var(--norvik-blue-light);

}


/* ==========================
   STATS
========================== */

.stats-section {

    background: var(--norvik-blue);

}


.stat-item {

    min-height: 190px;

    padding: 35px 20px;

    display: flex;

    flex-direction: column;

    justify-content: center;

    align-items: center;

    text-align: center;

    border-right: 1px solid rgba(255,255,255,.12);

    color: #fff;

}


.stat-item i {

    margin-bottom: 10px;

    font-size: 25px;

    color: #53d5d5;

}


.stat-item strong {

    font-family: "Poppins", sans-serif;

    font-size: 27px;

}


.stat-item span {

    color: rgba(255,255,255,.65);

    font-size: 13px;

}


/* ==========================
   SERVICES
========================== */

.services-section {

    background: var(--background);

}


.service-card {

    height: 100%;

    padding: 35px 30px;

    background: #fff;

    border: 1px solid var(--border);

    border-radius: 18px;

    transition: .35s ease;

    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;

}


.service-card:hover {

    border-color: transparent;

    transform: translateY(-8px);

    box-shadow: 0 20px 45px rgba(0,0,0,.08);

}


.service-icon {

    width: 70px;

    height: 70px;

    display: flex;

    align-items: center;

    justify-content: center;

    margin-bottom: 25px;

    border-radius: 18px;

    background: #eaf8f8;

    color: var(--norvik-teal);

    font-size: 32px;

     margin-left: auto;
    margin-right: auto;

}


.service-card h3 {

    min-height: 58px;

    margin-bottom: 15px;

    color: var(--norvik-blue-dark);

    font-size: 20px;

}


.service-card p {

    min-height: 95px;

    margin-bottom: 20px;

    color: var(--text-muted);

    font-size: 14px;

}


.service-card a {

    color: var(--norvik-blue-light);

    font-size: 14px;

    font-weight: 700;

    text-decoration: none;

}


/* ==========================
   MOBILE
========================== */

@media (max-width: 991.98px) {

    .utility-left {

        display: none;

    }

    .utility-right {

        width: 100%;

        justify-content: center;

    }


    .navbar {

        min-height: 75px;

    }


    .norvik-logo {

        width: 150px;

    }


    .navbar-collapse {

        padding: 20px 0;

    }


    .nav-link {

        padding: 10px 0 !important;

    }


    .btn-nav {

        display: inline-flex;

    }


    .hero-section {

        min-height: auto;

    }


    .hero-content {

        padding: 80px 0 120px;

    }


    .hero-section h1 {

        font-size: clamp(2.5rem, 8vw, 4rem);

        letter-spacing: -1px;

    }


    .hero-trust {

        gap: 15px;

    }


    .trust-divider {

        display: none;

    }


    .scroll-indicator {

        display: none;

    }

}


@media (max-width: 767.98px) {

    .utility-bar {

        font-size: 11px;

    }


    .utility-right {

        gap: 10px;

    }


    .utility-right a:last-child {

        display: none;

    }


    .section-padding {

        padding: 70px 0;

    }


    .hero-content {

        padding: 65px 0 85px;

    }


    .hero-description {

        font-size: 16px;

    }


    .hero-actions {

        flex-direction: column;

    }


    .hero-actions .btn {

        width: 100%;

        justify-content: center;

    }


    .hero-trust {

        display: grid;

        grid-template-columns: repeat(2, 1fr);

        margin-top: 40px;

        gap: 20px;

    }


    .about-image-wrapper {

        padding-right: 15px;

        padding-bottom: 30px;

    }


    .about-image {

        min-height: 350px;

    }


    .experience-card {

        right: 0;

        bottom: 0;

    }


    .stat-item {

        min-height: 160px;

        border-bottom: 1px solid rgba(255,255,255,.12);

    }


    .service-card h3 {

        min-height: auto;

    }


    .service-card p {

        min-height: auto;

    }

}

/* ==========================
   FOOTER
========================== */

.site-footer {

    padding: 80px 0 30px;

    background: #032b4c;

}


.site-footer h4 {

    margin-bottom: 20px;

}


.site-footer h6 {

    margin-bottom: 20px;

}


.footer-links {

    margin: 0;

    padding: 0;

    list-style: none;

}


.footer-links li {

    margin-bottom: 10px;

}


.footer-links a,
.site-footer a {

    color: rgba(255,255,255,.65);

    text-decoration: none;

}


.footer-links a:hover,
.site-footer a:hover {

    color: #fff;

}


.footer-divider {

    margin: 50px 0 25px;

    border-color: rgba(255,255,255,.1);

}

/* ==========================
   PRODUCTS
========================== */

.products-section {

    background: #f7f9fb;

}


.btn-outline-primary {

    color: var(--norvik-blue);

    border-color: var(--norvik-blue);

}


.btn-outline-primary:hover {

    background: var(--norvik-blue);

    border-color: var(--norvik-blue);

    color: #fff;

}


.product-card {

    height: 100%;

    overflow: hidden;

    background: #fff;

    border: 1px solid #e7edf1;

    border-radius: 20px;

    transition:
        transform .35s ease,
        box-shadow .35s ease,
        border-color .35s ease;

}


.product-card:hover {

    transform: translateY(-8px);

    border-color: transparent;

    box-shadow:
        0 25px 55px rgba(3,43,76,.12);

}


.product-card-image {

    position: relative;

    height: 220px;

    overflow: hidden;

}


.product-card-image::after {

    content: "";

    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            to top,
            rgba(3,43,76,.35),
            transparent 55%
        );

}


.product-card-image img {

    width: 100%;

    height: 100%;

    display: block;

    object-fit: cover;

    transition:
        transform .6s ease;

}


.product-card:hover .product-card-image img {

    transform: scale(1.06);

}


.product-card-body {

    position: relative;

    padding: 32px 28px 30px;

}


.product-card-icon {

    width: 58px;

    height: 58px;

    display: flex;

    align-items: center;

    justify-content: center;

    margin-top: -58px;

    margin-bottom: 22px;

    position: relative;

    z-index: 2;

    background: #fff;

    color: var(--norvik-teal);

    border-radius: 16px;

    font-size: 26px;

    box-shadow:
        0 10px 25px rgba(0,0,0,.09);

}


.product-card h3 {

    margin-bottom: 14px;

    color: var(--norvik-blue-dark);

    font-size: 19px;

}


.product-card p {

    min-height: 105px;

    margin-bottom: 20px;

    color: var(--text-muted);

    font-size: 14px;

}


.product-card a {

    display: inline-flex;

    align-items: center;

    gap: 8px;

    color: var(--norvik-blue-light);

    font-size: 13px;

    font-weight: 700;

    text-decoration: none;

}


.product-card a i {

    transition: transform .25s ease;

}


.product-card a:hover i {

    transform: translateX(4px);

}


@media (max-width: 767.98px) {

    .product-card-image {

        height: 210px;

    }


    .product-card-body {

        padding: 28px 24px;

    }


    .product-card p {

        min-height: auto;

    }

}

/* ==========================
   PARTNERS
========================== */

.partners-section {

    padding: 110px 0;

    background: #fff;

}


.partner-grid {

    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    border-top: 1px solid var(--border);

    border-left: 1px solid var(--border);

}


.partner-logo {

    min-height: 125px;

    display: flex;

    align-items: center;

    justify-content: center;

    flex-direction: column;

    padding: 20px;

    text-align: center;

    color: #526170;

    font-family: "Poppins", sans-serif;

    font-size: 14px;

    font-weight: 700;

    letter-spacing: .5px;

    border-right: 1px solid var(--border);

    border-bottom: 1px solid var(--border);

    transition:

        color .25s ease,

        background .25s ease;

}


.partner-logo small {

    margin-top: 3px;

    font-family: "Inter", sans-serif;

    font-size: 8px;

    font-weight: 600;

    letter-spacing: 1.2px;

    color: #9aa6b2;

}


.partner-logo:hover {

    background: #f7fafc;

    color: var(--norvik-blue);

}


@media (max-width: 767.98px) {

    .partners-section {

        padding: 75px 0;

    }


    .partner-grid {

        grid-template-columns:
            repeat(2, 1fr);

    }


    .partner-logo {

        min-height: 105px;

    }

}

/* ==========================
   DISTRIBUTION
========================== */

.distribution-section {

    background:
        var(--norvik-blue-dark);

}


.distribution-map {

    position: relative;

    min-height: 930px;

    overflow: hidden;

    background:
        linear-gradient(
            rgba(3,43,76,.15),
            rgba(3,43,76,.15)
        ),
        #eaf1f5;

}


.map-background {

    position: absolute;

    inset: 0;

    background:

        radial-gradient(
            circle at 50% 50%,
            rgba(0,167,167,.12),
            transparent 42%
        );

}


.map-title {

    position: absolute;

    left: 45px;

    top: 40px;

    display: flex;

    align-items: center;

    gap: 10px;

    padding: 12px 17px;

    background: rgba(255,255,255,.88);

    color: var(--norvik-blue);

    border-radius: 50px;

    font-size: 13px;

    font-weight: 700;

    box-shadow:
        0 10px 30px rgba(0,0,0,.08);

}


.map-title i {

    color: var(--norvik-teal);

}


/*
|--------------------------------------------------------------------------
| Map markers
|--------------------------------------------------------------------------
|
| These coordinates are temporary visual positions.
| Once the approved Uganda SVG is provided, we will
| attach markers to the actual map geometry.
|
*/

.map-marker {

    position: absolute;

    display: flex;

    align-items: center;

    gap: 8px;

    color: var(--norvik-blue);

    font-size: 12px;

    font-weight: 700;

}


.map-marker span {

    width: 13px;

    height: 13px;

    display: block;

    position: relative;

    background: var(--norvik-teal);

    border: 3px solid #fff;

    border-radius: 50%;

    box-shadow:
        0 4px 15px rgba(0,167,167,.35);

}


.map-marker span::after {

    content: "";

    position: absolute;

    inset: -8px;

    border: 1px solid rgba(0,167,167,.35);

    border-radius: 50%;

    animation:
        markerPulse 2.2s infinite;

}


@keyframes markerPulse {

    0% {

        opacity: 1;

        transform: scale(.7);

    }

    70% {

        opacity: 0;

        transform: scale(1.5);

    }

    100% {

        opacity: 0;

        transform: scale(1.5);

    }

}


.kampala {

    left: 53%;

    top: 57%;

}


.mbarara {

    left: 37%;

    top: 67%;

}


.mbale {

    left: 73%;

    top: 55%;

}


.gulu {

    left: 50%;

    top: 31%;

}


.distribution-content {

    min-height: 650px;

    padding:
        100px
        clamp(35px, 7vw, 110px);

    display: flex;

    flex-direction: column;

    justify-content: center;

}


.distribution-content .section-eyebrow {

    color: #56d6d6;

}


.distribution-content .section-title {

    max-width: 540px;

}


.distribution-lead {

    max-width: 560px;

    color: rgba(255,255,255,.86);

    font-size: 18px;

}


.distribution-text {

    max-width: 560px;

    color: rgba(255,255,255,.62);

    font-size: 14px;

}


.distribution-locations {

    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    max-width: 600px;

    margin-top: 25px;

    border-top:
        1px solid rgba(255,255,255,.12);

    border-left:
        1px solid rgba(255,255,255,.12);

}


.distribution-location {

    min-height: 90px;

    display: flex;

    align-items: center;

    gap: 15px;

    padding: 18px;

    border-right:
        1px solid rgba(255,255,255,.12);

    border-bottom:
        1px solid rgba(255,255,255,.12);

}


.distribution-location > i {

    color: #57d4d4;

    font-size: 20px;

}


.distribution-location div {

    display: flex;

    flex-direction: column;

}


.distribution-location strong {

    color: #fff;

    font-size: 14px;

}


.distribution-location span {

    color: rgba(255,255,255,.5);

    font-size: 11px;

}


.regional-reach {

    max-width: 600px;

    display: flex;

    align-items: center;

    gap: 15px;

    margin-top: 20px;

    padding: 18px 20px;

    background:
        rgba(255,255,255,.06);

    border:
        1px solid rgba(255,255,255,.1);

    border-radius: 12px;

}


.regional-reach > i {

    color: #57d4d4;

    font-size: 22px;

}


.regional-reach div {

    display: flex;

    flex-direction: column;

}


.regional-reach strong {

    color: #fff;

    font-size: 14px;

}


.regional-reach span {

    color: rgba(255,255,255,.55);

    font-size: 12px;

}


@media (max-width: 991.98px) {

    .distribution-map {

        min-height: 500px;

    }


    .distribution-content {

        min-height: auto;

        padding: 75px 30px;

    }

}


@media (max-width: 575.98px) {

    .distribution-map {

        min-height: 430px;

    }


    .map-title {

        top: 20px;

        left: 20px;

    }


    .distribution-locations {

        grid-template-columns: 1fr;

    }


    .distribution-location {

        min-height: 75px;

    }


    .kampala {

        left: 48%;

        top: 57%;

    }


    .mbarara {

        left: 28%;

        top: 68%;

    }


    .mbale {

        left: 67%;

        top: 54%;

    }


    .gulu {

        left: 45%;

        top: 30%;

    }

}


/* ==========================
   WHO WE SERVE
========================== */

.clients-section {

    background: #ffffff;

}


.client-note {

    display: inline-flex;

    align-items: center;

    gap: 8px;

    color: var(--text-muted);

    font-size: 13px;

}


.client-note::before {

    content: "";

    width: 8px;

    height: 8px;

    border-radius: 50%;

    background: var(--norvik-teal);

    box-shadow: 0 0 0 6px rgba(0,167,167,.10);

}


.client-card {

    position: relative;

    height: 100%;

    min-height: 255px;

    display: flex;

    flex-direction: column;

    padding: 32px;

    background: #fff;

    border: 1px solid var(--border);

    border-radius: 18px;

    overflow: hidden;

    align-items: center;
    text-align: center;

    transition:
        transform .35s ease,
        box-shadow .35s ease,
        border-color .35s ease;

}


.client-card::before {

    content: "";

    position: absolute;

    left: 0;

    top: 0;

    width: 4px;

    height: 0;

    background: var(--norvik-teal);

    transition: height .35s ease;

}


.client-card:hover {

    transform: translateY(-6px);

    border-color: transparent;

    box-shadow:
        0 20px 45px rgba(3,43,76,.09);

}


.client-card:hover::before {

    height: 100%;

}


.client-icon {

    width: 62px;

    height: 62px;

    display: flex;

    align-items: center;

    justify-content: center;

    margin-bottom: 25px;

    border-radius: 16px;

    background: #eef8f8;

    color: var(--norvik-teal);

    font-size: 27px;

    margin-left: auto;
    margin-right: auto;

}


.client-content {

    padding-right: 20px;

}


.client-content h3 {

    margin-bottom: 12px;

    color: var(--norvik-blue-dark);

    font-size: 19px;

}


.client-content p {

    margin-bottom: 0;

    color: var(--text-muted);

    font-size: 14px;

    line-height: 1.7;

}


.client-arrow {

    position: absolute;

    right: 25px;

    bottom: 25px;

    width: 35px;

    height: 35px;

    display: flex;

    align-items: center;

    justify-content: center;

    border: 1px solid var(--border);

    border-radius: 50%;

    color: var(--norvik-blue);

    font-size: 13px;

    transition:
        background .25s ease,
        color .25s ease,
        transform .25s ease;

}


.client-card:hover .client-arrow {

    background: var(--norvik-blue);

    color: #fff;

    transform: translate(2px, -2px);

}


.institutional-strip {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 25px;

    padding: 25px 30px;

    background: #f5f8fa;

    border-radius: 16px;

}


.institutional-copy {

    display: flex;

    flex-direction: column;

    gap: 5px;

}


.institutional-copy span {

    color: var(--text-muted);

    font-size: 12px;

}


.institutional-copy strong {

    color: var(--norvik-blue-dark);

    font-size: 14px;

}


@media (max-width: 767.98px) {

    .client-card {

        min-height: auto;

        padding: 28px 25px;

    }


    .institutional-strip {

        flex-direction: column;

        align-items: flex-start;

        padding: 22px;

    }

}

/* ==========================
   QUALITY
========================== */

.quality-section {

    position: relative;

    padding: 110px 0;

    overflow: hidden;

    background:

        radial-gradient(
            circle at 15% 30%,
            rgba(0,167,167,.12),
            transparent 30%
        ),

        var(--norvik-blue-dark);

    color: #fff;

}


.quality-section::after {

    content: "";

    position: absolute;

    width: 500px;

    height: 500px;

    right: -250px;

    bottom: -250px;

    border: 1px solid rgba(255,255,255,.06);

    border-radius: 50%;

}


.quality-eyebrow {

    display: inline-block;

    margin-bottom: 18px;

    color: #58d4d4;

    font-size: 12px;

    font-weight: 700;

    letter-spacing: 2px;

}


.quality-title {

    max-width: 500px;

    margin-bottom: 25px;

    color: #fff;

    font-size: clamp(2.3rem, 4vw, 3.6rem);

    font-weight: 700;

    letter-spacing: -1px;

}


.quality-lead {

    max-width: 500px;

    color: rgba(255,255,255,.68);

    font-size: 17px;

}


.quality-grid {

    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    border-top:
        1px solid rgba(255,255,255,.12);

    border-left:
        1px solid rgba(255,255,255,.12);

}


.quality-item {

    position: relative;

    min-height: 285px;

    padding: 35px;

    border-right:
        1px solid rgba(255,255,255,.12);

    border-bottom:
        1px solid rgba(255,255,255,.12);

    transition:
        background .3s ease;

    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;

}


.quality-item:hover {

    background:
        rgba(255,255,255,.035);

}


.quality-number {

    position: absolute;

    top: 25px;

    right: 25px;

    color: rgba(255,255,255,.15);

    font-family: "Poppins", sans-serif;

    font-size: 14px;

    font-weight: 700;

}


.quality-icon {

    width: 54px;

    height: 54px;

    display: flex;

    align-items: center;

    justify-content: center;

    margin-bottom: 25px;

    border-radius: 14px;

    background:
        rgba(87,212,212,.10);

    color: #57d4d4;

    font-size: 23px;
    margin-left: auto;
    margin-right: auto;

}


.quality-item h3 {

    margin-bottom: 12px;

    color: #fff;

    font-size: 18px;

}


.quality-item p {

    margin: 0;

    color: rgba(255,255,255,.55);

    font-size: 13px;

    line-height: 1.8;

}


@media (max-width: 767.98px) {

    .quality-section {

        padding: 75px 0;

    }


    .quality-grid {

        grid-template-columns: 1fr;

    }


    .quality-item {

        min-height: auto;

        padding: 30px 25px;

    }

}

/* ==========================
   OUR IMPACT
========================== */

.impact-section {

    position: relative;

    padding: 110px 0;

    background: #ffffff;

}


.impact-visual {

    position: relative;

    padding-right: 35px;

}


.impact-visual img {

    width: 100%;

    height: 540px;

    display: block;

    object-fit: cover;

    border-radius: 22px;

}


.impact-badge {

    position: absolute;

    right: 0;

    bottom: 35px;

    display: flex;

    align-items: center;

    gap: 15px;

    min-width: 235px;

    padding: 20px 22px;

    background: var(--norvik-blue);

    color: #fff;

    border-radius: 15px;

    box-shadow:
        0 20px 45px rgba(3,43,76,.2);

}


.impact-badge > i {

    width: 48px;

    height: 48px;

    display: flex;

    align-items: center;

    justify-content: center;

    flex-shrink: 0;

    background: rgba(87,212,212,.12);

    color: #57d4d4;

    border-radius: 12px;

    font-size: 20px;

}


.impact-badge div {

    display: flex;

    flex-direction: column;

}


.impact-badge strong {

    font-family: "Poppins", sans-serif;

    font-size: 14px;

}


.impact-badge span {

    color: rgba(255,255,255,.6);

    font-size: 11px;

}


.impact-list {

    margin-top: 35px;

}


.impact-item {

    display: flex;

    align-items: flex-start;

    gap: 18px;

    padding: 22px 0;

    border-bottom: 1px solid var(--border);

}


.impact-item:first-child {

    border-top: 1px solid var(--border);

}


.impact-icon {

    width: 52px;

    height: 52px;

    display: flex;

    align-items: center;

    justify-content: center;

    flex-shrink: 0;

    background: #eef8f8;

    color: var(--norvik-teal);

    border-radius: 14px;

    font-size: 22px;

}


.impact-item h3 {

    margin: 2px 0 7px;

    color: var(--norvik-blue-dark);

    font-size: 17px;

}


.impact-item p {

    max-width: 520px;

    margin: 0;

    color: var(--text-muted);

    font-size: 13px;

    line-height: 1.7;

}


.impact-closing {

    display: flex;

    align-items: center;

    gap: 12px;

    margin-top: 30px;

    color: var(--norvik-blue);

    font-family: "Poppins", sans-serif;

    font-size: 14px;

    font-weight: 600;

}


.impact-closing i {

    color: var(--norvik-teal);

    font-size: 25px;

}


@media (max-width: 991.98px) {

    .impact-visual {

        padding-right: 20px;

        padding-bottom: 30px;

    }


    .impact-visual img {

        height: 450px;

    }


    .impact-badge {

        right: 0;

        bottom: 0;

    }

}


@media (max-width: 767.98px) {

    .impact-section {

        padding: 75px 0;

    }


    .impact-visual {

        padding-right: 15px;

        padding-bottom: 25px;

    }


    .impact-visual img {

        height: 360px;

        border-radius: 18px;

    }


    .impact-badge {

        min-width: 200px;

        padding: 15px 17px;

    }


    .impact-badge > i {

        width: 42px;

        height: 42px;

        font-size: 17px;

    }


    .impact-item {

        gap: 14px;

    }

}

/* ==========================
   NORVIK GROUP
========================== */

.group-section {

    padding: 100px 0;

    background: #f7f9fb;

}


.group-card {

    overflow: hidden;

    background: var(--norvik-blue-dark);

    border-radius: 24px;

    box-shadow:
        0 25px 60px rgba(3,43,76,.12);

}


.group-content {

    padding:
        70px
        clamp(30px, 6vw, 80px);

}


.group-eyebrow {

    display: inline-block;

    margin-bottom: 18px;

    color: #57d4d4;

    font-size: 11px;

    font-weight: 700;

    letter-spacing: 2px;

}


.group-content h2 {

    max-width: 650px;

    margin-bottom: 22px;

    color: #fff;

    font-size: clamp(2rem, 3.8vw, 3.4rem);

    font-weight: 700;

    letter-spacing: -1px;

}


.group-content p {

    max-width: 650px;

    color: rgba(255,255,255,.62);

    font-size: 14px;

}


.group-content .group-lead {

    color: rgba(255,255,255,.84);

    font-size: 17px;

}


.group-link {

    display: inline-flex;

    align-items: center;

    gap: 10px;

    margin-top: 20px;

    color: #fff;

    font-size: 14px;

    font-weight: 700;

    text-decoration: none;

}


.group-link i {

    transition:
        transform .25s ease;

}


.group-link:hover {

    color: #57d4d4;

}


.group-link:hover i {

    transform:
        translate(3px, -3px);

}


.group-visual {

    position: relative;

    min-height: 490px;

    height: 100%;

    overflow: hidden;

}


.group-visual img {

    width: 100%;

    height: 100%;

    min-height: 490px;

    display: block;

    object-fit: cover;

}


.group-visual-overlay {

    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            to top,
            rgba(3,43,76,.78),
            rgba(3,43,76,.04) 65%
        );

}


.group-visual-label {

    position: absolute;

    left: 30px;

    right: 30px;

    bottom: 30px;

    display: flex;

    flex-direction: column;

    gap: 5px;

}


.group-visual-label span {

    color: #57d4d4;

    font-size: 10px;

    font-weight: 700;

    letter-spacing: 1.5px;

}


.group-visual-label strong {

    color: #fff;

    font-family: "Poppins", sans-serif;

    font-size: 17px;

}


@media (max-width: 991.98px) {

    .group-content {

        padding: 55px 35px;

    }


    .group-visual {

        min-height: 400px;

    }


    .group-visual img {

        min-height: 400px;

    }

}


@media (max-width: 767.98px) {

    .group-section {

        padding: 70px 0;

    }


    .group-card {

        border-radius: 18px;

    }


    .group-content {

        padding: 45px 25px;

    }


    .group-visual {

        min-height: 320px;

    }


    .group-visual img {

        min-height: 320px;

    }


    .group-visual-label {

        left: 20px;

        right: 20px;

        bottom: 20px;

    }

}

/* ==========================
   FINAL CTA
========================== */

.final-cta-section {

    padding: 40px 0 100px;

    background: #f7f9fb;

}


.final-cta {

    position: relative;

    overflow: hidden;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 40px;

    padding:
        65px
        clamp(30px, 6vw, 75px);

    background:

        radial-gradient(
            circle at 85% 20%,
            rgba(87,212,212,.16),
            transparent 25%
        ),

        var(--norvik-blue);

    border-radius: 24px;

}


.final-cta::before {

    content: "";

    position: absolute;

    width: 260px;

    height: 260px;

    right: -120px;

    bottom: -140px;

    border: 1px solid rgba(255,255,255,.08);

    border-radius: 50%;

}


.final-cta-content {

    position: relative;

    z-index: 2;

    max-width: 700px;

}


.final-cta-content .section-eyebrow {

    color: #57d4d4;

}


.final-cta-content h2 {

    margin-bottom: 18px;

    color: #fff;

    font-size: clamp(2rem, 4vw, 3.2rem);

}


.final-cta-content p {

    margin: 0;

    color: rgba(255,255,255,.68);

    font-size: 16px;

}


.final-cta-actions {

    position: relative;

    z-index: 2;

    display: flex;

    flex-direction: column;

    align-items: flex-start;

    gap: 20px;

    flex-shrink: 0;

}


.cta-phone {

    display: flex;

    align-items: center;

    gap: 12px;

    color: #fff;

    text-decoration: none;

}


.cta-phone > i {

    width: 42px;

    height: 42px;

    display: flex;

    align-items: center;

    justify-content: center;

    background: rgba(255,255,255,.10);

    border-radius: 50%;

    color: #57d4d4;

}


.cta-phone span {

    display: flex;

    flex-direction: column;

}


.cta-phone small {

    color: rgba(255,255,255,.5);

    font-size: 10px;

    text-transform: uppercase;

    letter-spacing: 1px;

}


.cta-phone strong {

    font-family: "Poppins", sans-serif;

    font-size: 15px;

}


.cta-phone:hover {

    color: #57d4d4;

}


@media (max-width: 991.98px) {

    .final-cta {

        flex-direction: column;

        align-items: flex-start;

    }


    .final-cta-actions {

        flex-direction: row;

        align-items: center;

        flex-wrap: wrap;

    }

}


@media (max-width: 767.98px) {

    .final-cta-section {

        padding:
            20px 0 70px;

    }


    .final-cta {

        padding: 45px 25px;

        border-radius: 18px;

    }


    .final-cta-actions {

        flex-direction: column;

        align-items: stretch;

        width: 100%;

    }


    .final-cta-actions .btn {

        width: 100%;

    }

}

/* ========================================
   POLISH - HEADER
======================================== */

.main-header {
    position: sticky;
    top: 0;
    z-index: 1030;
    background: rgba(255, 255, 255, .96);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    box-shadow: 0 1px 0 rgba(3, 43, 76, .06);
    transition:
        box-shadow .3s ease,
        background .3s ease;
}

.main-header.is-scrolled {
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 8px 30px rgba(3, 43, 76, .09);
}

.navbar {
    min-height: 82px;
    transition: min-height .3s ease;
}

.main-header.is-scrolled .navbar {
    min-height: 72px;
}

.norvik-logo {
    width: 178px;
    height: auto;
    transition: width .3s ease;
}

.main-header.is-scrolled .norvik-logo {
    width: 165px;
}

.navbar-toggler {
    border: 0;
    padding: 8px;
    box-shadow: none !important;
}

.navbar-toggler:focus {
    box-shadow: 0 0 0 3px rgba(0, 167, 167, .12) !important;
}

.nav-link {
    position: relative;
    white-space: nowrap;
}

@media (min-width: 992px) {

    .nav-link::after {
        content: "";
        position: absolute;
        left: 15px;
        right: 15px;
        bottom: 3px;
        height: 2px;
        background: var(--norvik-teal);
        transform: scaleX(0);
        transform-origin: center;
        transition: transform .25s ease;
    }

    .nav-link:hover::after,
    .nav-link.active::after {
        transform: scaleX(1);
    }

}

/* ========================================
   POLISH - UTILITY BAR
======================================== */

.utility-bar {
    min-height: 34px;
}

@media (max-width: 767.98px) {

    .utility-bar {
        min-height: 30px;
        padding: 6px 0;
    }

    .utility-right {
        justify-content: space-between;
        width: 100%;
        gap: 8px;
    }

    .utility-right a:first-child::before {
        content: "";
    }

}

/* ========================================
   POLISH - HERO
======================================== */

.hero-section {
    min-height: calc(100svh - 116px);
    isolation: isolate;
}

.hero-section::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;

    background:
        radial-gradient(
            circle at 76% 40%,
            rgba(0, 167, 167, .16),
            transparent 28%
        ),
        linear-gradient(
            180deg,
            transparent 70%,
            rgba(2, 28, 49, .24)
        );
}

.hero-content {
    max-width: 900px;
}

.hero-section h1 {
    max-width: 820px;
    text-wrap: balance;
}

.hero-description {
    max-width: 680px;
    text-wrap: pretty;
}

.hero-actions {
    margin-top: 30px;
}

.hero-actions .btn {
    min-height: 52px;
    padding-left: 26px;
    padding-right: 26px;
}

.hero-trust {
    padding-top: 4px;
}

.trust-item strong {
    line-height: 1.1;
}

.hero-pattern {
    pointer-events: none;
}

@media (max-width: 767.98px) {

    .hero-section {
        min-height: calc(100svh - 105px);
    }

    .hero-content {
        padding-top: 55px;
        padding-bottom: 65px;
    }

    .hero-eyebrow {
        margin-bottom: 16px;
        font-size: 10px;
        letter-spacing: 1.5px;
    }

    .hero-section h1 {
        font-size: clamp(2.35rem, 11vw, 3.35rem);
        line-height: 1.06;
    }

    .hero-description {
        font-size: 15px;
        line-height: 1.7;
    }

    .hero-actions {
        gap: 12px;
    }

    .hero-actions .btn {
        width: 100%;
        min-height: 54px;
    }

    .hero-trust {
        margin-top: 35px;
    }

    .trust-item strong {
        font-size: 17px;
    }

    .trust-item span {
        font-size: 9px;
        letter-spacing: .8px;
    }

}

/* ========================================
   POLISH - SECTION SYSTEM
======================================== */

.section-padding {
    padding-top: clamp(75px, 8vw, 110px);
    padding-bottom: clamp(75px, 8vw, 110px);
}

.section-eyebrow {
    margin-bottom: 14px;
}

.section-title {
    max-width: 780px;
    text-wrap: balance;
}

.section-lead {
    text-wrap: pretty;
}

.about-section,
.products-section,
.clients-section,
.impact-section,
.contact-section {
    position: relative;
}

.about-section::after,
.products-section::after,
.clients-section::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    width: min(1200px, calc(100% - 40px));
    height: 1px;
    transform: translateX(-50%);
    background: rgba(6, 59, 102, .06);
}

/* ========================================
   POLISH - ABOUT
======================================== */

.about-image-wrapper {
    isolation: isolate;
}

.about-image-wrapper::before {
    content: "";
    position: absolute;
    width: 150px;
    height: 150px;
    left: -25px;
    top: -25px;
    z-index: -1;
    border-radius: 24px;
    background:
        linear-gradient(
            135deg,
            rgba(0, 167, 167, .15),
            transparent
        );
}

.about-image {
    aspect-ratio: 4 / 3;
    min-height: 0;
}

.experience-card {
    transition:
        transform .35s ease,
        box-shadow .35s ease;
}

.about-image-wrapper:hover .experience-card {
    transform: translateY(-5px);
}

@media (max-width: 767.98px) {

    .about-image-wrapper::before {
        left: -12px;
        top: -12px;
        width: 100px;
        height: 100px;
    }

    .about-image {
        aspect-ratio: 4 / 3;
        min-height: 0;
    }

}

/* ========================================
   POLISH - STATS
======================================== */

.stats-section {
    position: relative;
}

.stat-item {
    height: 100%;
    min-height: 175px;
    padding: 35px 25px;
}

.stat-item i {
    margin-bottom: 12px;
}

.stat-item strong {
    line-height: 1.1;
    text-wrap: balance;
}

@media (max-width: 991.98px) {

    .stat-item:nth-child(2n) {
        border-right: 0;
    }

}

@media (max-width: 575.98px) {

    .stat-item {
        min-height: 145px;
        padding: 28px 15px;
    }

    .stat-item strong {
        font-size: 20px;
    }

    .stat-item span {
        font-size: 11px;
    }

}

/* ========================================
   POLISH - SERVICE CARDS
======================================== */

.service-card {
    position: relative;
    overflow: hidden;
    min-height: 100%;
}

.service-card::after {
    content: "";
    position: absolute;
    width: 100px;
    height: 100px;
    right: -55px;
    bottom: -55px;
    border-radius: 50%;
    background: rgba(0, 167, 167, .06);
    transition: transform .4s ease;
}

.service-card:hover::after {
    transform: scale(2.2);
}

.service-icon {
    transition:
        transform .3s ease,
        background .3s ease;
}

.service-card:hover .service-icon {
    transform: translateY(-3px);
    background: #e3f5f5;
}

/* ========================================
   POLISH - PRODUCT CARDS
======================================== */

.product-card {
    display: flex;
    flex-direction: column;
}

.product-card-image {
    /*aspect-ratio: 4 / 3;*/
    height: auto;
}

.product-card-body {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.product-card-body > a {
    margin-top: auto;
}

.product-card-icon {
    transition:
        transform .3s ease,
        color .3s ease;
}

.product-card:hover .product-card-icon {
    transform: translateY(-3px);
    color: var(--norvik-blue);
}

/* ========================================
   POLISH - PARTNERS
======================================== */

.partner-logo {
    min-height: 120px;
    background: #fff;
    transition:
        background .25s ease,
        transform .25s ease;
}

.partner-logo:hover {
    background: #f9fbfc;
}

.partner-logo::before {
    content: "";
    position: absolute;
}

@media (max-width: 767.98px) {

    .partner-grid {
        width: 100%;
    }

    .partner-logo {
        min-height: 95px;
        padding: 15px 10px;
        font-size: 12px;
    }

}


/* ========================================
   POLISH - DISTRIBUTION
======================================== */

.distribution-section {
    position: relative;
    overflow: hidden;
}

.distribution-map {
    background:
        radial-gradient(
            circle at 50% 50%,
            rgba(0, 167, 167, .14),
            transparent 38%
        ),
        #edf4f7;
}

.distribution-content {
    position: relative;
    overflow: hidden;
}

.distribution-content::before {
    content: "";
    position: absolute;
    width: 400px;
    height: 400px;
    right: -220px;
    top: -180px;
    border: 1px solid rgba(255,255,255,.06);
    border-radius: 50%;
}

.distribution-content::after {
    content: "";
    position: absolute;
    width: 250px;
    height: 250px;
    right: -100px;
    bottom: -150px;
    border: 1px solid rgba(255,255,255,.05);
    border-radius: 50%;
}

.distribution-location {
    transition:
        background .25s ease;
}

.distribution-location:hover {
    background: rgba(255,255,255,.035);
}

@media (max-width: 991.98px) {

    .distribution-section .row {
        flex-direction: column;
    }

    .distribution-map,
    .distribution-content {
        width: 100%;
    }

}

/* ========================================
   POLISH - CLIENT CARDS
======================================== */

.client-card {
    transition:
        transform .3s ease,
        box-shadow .3s ease,
        border-color .3s ease;
}

.client-icon {
    transition:
        transform .3s ease;
}

.client-card:hover .client-icon {
    transform: translateY(-3px);
}

.client-content h3 {
    text-wrap: balance;
}

.client-content p {
    text-wrap: pretty;
}

/* ========================================
   POLISH - QUALITY
======================================== */

.quality-section {
    isolation: isolate;
}

.quality-item {
    transition:
        background .3s ease,
        transform .3s ease;
}

.quality-item:hover {
    transform: translateY(-2px);
}

.quality-icon {
    transition:
        transform .3s ease,
        background .3s ease;
}

.quality-item:hover .quality-icon {
    transform: scale(1.05);
    background: rgba(87,212,212,.16);
}

/* ========================================
   POLISH - IMPACT
======================================== */

.impact-visual {
    isolation: isolate;
}

.impact-visual::before {
    content: "";
    position: absolute;
    left: -20px;
    top: 25px;
    width: 90px;
    height: 90px;
    z-index: -1;
    border-radius: 20px;
    background: var(--norvik-teal);
    opacity: .12;
}

.impact-visual img {
    aspect-ratio: 4 / 4.3;
    min-height: 0;
}

.impact-item {
    transition:
        transform .25s ease;
}

.impact-item:hover {
    transform: translateX(4px);
}

/* ========================================
   POLISH - NORVIK GROUP
======================================== */

.group-card {
    position: relative;
}

.group-content {
    position: relative;
    z-index: 2;
}

.group-visual {
    isolation: isolate;
}

.group-visual img {
    aspect-ratio: 4 / 5;
    min-height: 0;
}

/* ========================================
   POLISH - FINAL CTA
======================================== */

.final-cta {
    min-height: 280px;
}

.final-cta-content h2 {
    max-width: 680px;
    text-wrap: balance;
}

.final-cta-content p {
    max-width: 600px;
}

.final-cta-actions .btn {
    min-height: 52px;
    white-space: nowrap;
}

@media (max-width: 575.98px) {

    .final-cta-actions {
        width: 100%;
    }

    .cta-phone {
        justify-content: flex-start;
    }

}

/* ========================================
   FINAL MOBILE PASS
======================================== */

@media (max-width: 767.98px) {

    body {
        overflow-x: hidden;
    }

    .section-padding {
        padding-top: 70px;
        padding-bottom: 70px;
    }

    .section-title {
        font-size: 2rem;
        line-height: 1.15;
    }

    .section-lead {
        font-size: 15px;
    }

    .navbar {
        min-height: 70px;
    }

    .main-header.is-scrolled .navbar {
        min-height: 66px;
    }

    .norvik-logo,
    .main-header.is-scrolled .norvik-logo {
        width: 145px;
    }

    .navbar-collapse {
        margin-top: 8px;
        padding: 12px 0 18px;
        border-top: 1px solid #eef1f3;
    }

    .dropdown-menu {
        margin-top: 3px !important;
        padding: 7px;
        box-shadow: none;
        background: #f7fafb;
    }

    .dropdown-item {
        font-size: 13px;
    }

    .hero-section {
        background-position: 62% center;
    }

    .hero-trust {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .hero-trust .trust-item {
        min-width: 0;
    }

    .stats-section .row {
        margin-left: 0;
        margin-right: 0;
    }

    .stat-item {
        border-right: 1px solid rgba(255,255,255,.10);
    }

    .stat-item:nth-child(2n) {
        border-right: 0;
    }

    .service-card,
    .product-card,
    .client-card {
        border-radius: 16px;
    }

    .service-card,
    .product-card-body,
    .client-card {
        padding-left: 24px;
        padding-right: 24px;
    }

    .product-card-image {
        aspect-ratio: 16 / 10;
    }

    .partner-logo {
        min-height: 100px;
    }

    .distribution-map {
        min-height: 410px;
    }

    .distribution-content {
        padding: 65px 24px;
    }

    .quality-section {
        padding: 75px 0;
    }

    .quality-grid {
        gap: 0;
    }

    .quality-item {
        min-height: 0;
    }

    .impact-visual {
        padding-right: 10px;
        padding-bottom: 25px;
    }

    .impact-visual img {
        aspect-ratio: 4 / 3;
    }

    .group-content {
        padding: 45px 24px;
    }

    .group-visual img {
        aspect-ratio: 16 / 11;
    }

    .contact-section {
        padding-top: 75px;
        padding-bottom: 75px;
    }

    .contact-form-card {
        padding: 25px 20px;
    }

    .site-footer {
        padding-top: 65px;
    }

}

@media (max-width: 380px) {

    .hero-content {
        padding-top: 45px;
    }

    .hero-section h1 {
        font-size: 2.15rem;
    }

    .hero-description {
        font-size: 14px;
    }

    .hero-trust {
        gap: 15px 10px;
    }

    .trust-item strong {
        font-size: 15px;
    }

    .trust-item span {
        font-size: 8px;
    }

    .count-number {
        font-size: 2rem;
    }

    .final-cta {
        padding-left: 20px;
        padding-right: 20px;
    }

}

/* ========================================
   ACCESSIBILITY / MOTION
======================================== */

:focus-visible {
    outline: 3px solid rgba(0, 167, 167, .35);
    outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {

    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }

}

/* ==========================
   CONTACT
========================== */

/*.contact-section {

    padding: 110px 0;

    background: #fff;

}


.contact-details {

    margin-top: 35px;

}


.contact-detail {

    display: flex;

    align-items: flex-start;

    gap: 16px;

    padding: 18px 0;

    border-bottom: 1px solid var(--border);

}


.contact-detail-icon {

    width: 46px;

    height: 46px;

    display: flex;

    align-items: center;

    justify-content: center;

    flex-shrink: 0;

    background: #eef8f8;

    color: var(--norvik-teal);

    border-radius: 12px;

}


.contact-detail div:last-child {

    display: flex;

    flex-direction: column;

}


.contact-detail span {

    margin-bottom: 4px;

    color: var(--text-muted);

    font-size: 11px;

    text-transform: uppercase;

    letter-spacing: 1px;

}


.contact-detail strong {

    color: var(--norvik-blue-dark);

    font-size: 14px;

    line-height: 1.6;

}


.contact-detail strong a {

    color: inherit;

    text-decoration: none;

}


.contact-detail strong a:hover {

    color: var(--norvik-blue-light);

}


.contact-hours {

    display: flex;

    align-items: center;

    gap: 15px;

    margin-top: 25px;

    padding: 18px;

    background: #f5f8fa;

    border-radius: 14px;

}


.contact-hours > i {

    color: var(--norvik-teal);

    font-size: 20px;

}


.contact-hours div {

    display: flex;

    flex-direction: column;

}


.contact-hours strong {

    color: var(--norvik-blue-dark);

    font-size: 13px;

}


.contact-hours span {

    color: var(--text-muted);

    font-size: 12px;

}


.contact-form-card {

    padding: 40px;

    background: #f7f9fb;

    border: 1px solid var(--border);

    border-radius: 20px;

}


.contact-form-card h3 {

    margin-bottom: 8px;

    color: var(--norvik-blue-dark);

    font-size: 24px;

}


.contact-form-card > div p {

    margin: 0;

    color: var(--text-muted);

    font-size: 14px;

}


.form-label {

    margin-bottom: 7px;

    color: var(--norvik-blue-dark);

    font-size: 12px;

    font-weight: 600;

}


.form-control,
.form-select {

    min-height: 50px;

    padding: 12px 15px;

    border:
        1px solid #dce4e9;

    border-radius: 10px;

    color: var(--text-dark);

    background: #fff;

    box-shadow: none;

}


.form-control:focus,
.form-select:focus {

    border-color: var(--norvik-teal);

    box-shadow:
        0 0 0 4px rgba(0,167,167,.08);

}


textarea.form-control {

    min-height: 130px;

    resize: vertical;

}


.btn-contact-submit {

    padding: 14px 25px;

    background: var(--norvik-blue);

    color: #fff;

    border: 0;

    border-radius: 50px;

    font-weight: 600;

    transition: .3s ease;

}


.btn-contact-submit:hover {

    background: var(--norvik-blue-light);

    color: #fff;

    transform: translateY(-2px);

}


@media (max-width: 767.98px) {

    .contact-section {

        padding: 75px 0;

    }


    .contact-form-card {

        padding: 28px 22px;

    }

}*/

