/*
Theme Name: Nexa Infrastructure
Theme URI: https://www.nexainfrastructure.co.uk/
Author: Nexa Infrastructure
Description: Custom lightweight WordPress theme based on the Nexa Infrastructure website.
Version: 1.0.1
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: nexa-infrastructure
*/
/* =========================================================
           RESET
        ========================================================= */

        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        html {
            scroll-behavior: smooth;
        }

        body {
            font-family: "Inter", sans-serif;
            background: #05070a;
            color: #ffffff;
            line-height: 1.6;
            overflow-x: hidden;
        }

        img {
            max-width: 100%;
            display: block;
        }

        a {
            color: inherit;
            text-decoration: none;
        }

        button {
            font-family: inherit;
        }


        /* =========================================================
           VARIABLES
        ========================================================= */

        :root {
            --blue: #087cff;
            --blue-bright: #1594ff;
            --dark: #05070a;
            --dark-2: #080c12;
            --dark-3: #0d131c;
            --border: rgba(255,255,255,0.10);
            --muted: #9aa5b1;
            --white: #ffffff;
            --max-width: 1200px;
        }


        /* =========================================================
           GLOBAL
        ========================================================= */

        .container {
            width: min(90%, var(--max-width));
            margin: 0 auto;
        }

        .section {
            padding: 110px 0;
        }

        .eyebrow {
            color: var(--blue-bright);
            font-size: 13px;
            font-weight: 700;
            letter-spacing: 2px;
            text-transform: uppercase;
            margin-bottom: 18px;
        }

        .section-title {
            font-size: clamp(34px, 5vw, 56px);
            line-height: 1.05;
            font-weight: 800;
            letter-spacing: -2px;
        }

        .section-title span {
            color: var(--blue);
        }

        .section-text {
            color: var(--muted);
            max-width: 650px;
            margin-top: 22px;
        }


        /* =========================================================
           NAVIGATION
        ========================================================= */

        header {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            z-index: 1000;

            background: rgba(5, 7, 10, 0.78);
            backdrop-filter: blur(18px);
            -webkit-backdrop-filter: blur(18px);

            border-bottom: 1px solid rgba(255,255,255,0.07);
        }

        .nav {
            height: 78px;
            display: flex;
            align-items: center;
            justify-content: space-between;
        }

        .logo {
            display: flex;
            align-items: center;
            gap: 12px;
            font-size: 21px;
            font-weight: 800;
            letter-spacing: 1px;
        }

        .logo-mark {
            width: 38px;
            height: 38px;
            border: 2px solid var(--blue);
            display: grid;
            place-items: center;
            transform: skew(-8deg);
            box-shadow: 0 0 20px rgba(8,124,255,0.25);
        }

        .logo-mark span {
            color: var(--blue);
            font-size: 20px;
            font-weight: 900;
            transform: skew(8deg);
        }

        .logo small {
            display: block;
            font-size: 8px;
            font-weight: 500;
            letter-spacing: 2px;
            color: #8d96a0;
            margin-top: -3px;
        }

        .nav-links {
            display: flex;
            align-items: center;
            gap: 34px;
        }

        .nav-links a {
            font-size: 13px;
            font-weight: 600;
            color: #c7cdd3;
            transition: 0.25s ease;
        }

        .nav-links a:hover,
        .nav-links a.active {
            color: var(--blue-bright);
        }

        .nav-button {
            padding: 12px 22px;
            border: 1px solid var(--blue);
            color: white !important;
            border-radius: 7px;
            transition: 0.25s ease;
        }

        .nav-button:hover {
            background: var(--blue);
            box-shadow: 0 0 25px rgba(8,124,255,0.35);
        }

        .mobile-menu {
            display: none;
            border: 0;
            background: none;
            color: white;
            font-size: 28px;
            cursor: pointer;
        }


        /* =========================================================
           HERO
        ========================================================= */

        .hero {
            min-height: 100vh;
            position: relative;
            display: flex;
            align-items: center;

            background:
                linear-gradient(
                    90deg,
                    #05070a 0%,
                    rgba(5,7,10,0.96) 35%,
                    rgba(5,7,10,0.62) 65%,
                    rgba(5,7,10,0.30) 100%
                ),
                url("https://images.unsplash.com/photo-1497366811353-6870744d04b2?auto=format&fit=crop&w=2000&q=85")
                center/cover no-repeat;
        }

        .hero::after {
            content: "";
            position: absolute;
            inset: 0;
            background:
                radial-gradient(
                    circle at 75% 50%,
                    rgba(0,119,255,0.13),
                    transparent 35%
                );
            pointer-events: none;
        }

        .hero-content {
            position: relative;
            z-index: 2;
            max-width: 700px;
            padding-top: 70px;
        }

        .hero h1 {
            font-size: clamp(48px, 7vw, 82px);
            line-height: 0.98;
            letter-spacing: -4px;
            font-weight: 900;
            margin-bottom: 28px;
        }

        .hero h1 span {
            color: var(--blue);
        }

        .hero-description {
            color: #b8c0c8;
            max-width: 600px;
            font-size: 17px;
            line-height: 1.8;
            margin-bottom: 35px;
        }

        .hero-buttons {
            display: flex;
            gap: 15px;
            flex-wrap: wrap;
        }

        .btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 12px;

            padding: 15px 25px;
            border-radius: 6px;

            font-size: 13px;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.5px;

            transition: 0.25s ease;
        }

        .btn-primary {
            background: var(--blue);
            color: white;
            box-shadow: 0 10px 30px rgba(8,124,255,0.2);
        }

        .btn-primary:hover {
            background: var(--blue-bright);
            transform: translateY(-2px);
            box-shadow: 0 15px 35px rgba(8,124,255,0.35);
        }

        .btn-outline {
            border: 1px solid rgba(255,255,255,0.2);
            color: white;
        }

        .btn-outline:hover {
            border-color: var(--blue);
            color: var(--blue-bright);
        }

        .arrow {
            font-size: 18px;
        }

        .hero-features {
            display: flex;
            gap: 40px;
            margin-top: 70px;
            flex-wrap: wrap;
        }

        .hero-feature {
            display: flex;
            align-items: center;
            gap: 12px;
            color: #adb5bd;
            font-size: 13px;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }

        .feature-icon {
            width: 40px;
            height: 40px;
            border: 1px solid rgba(8,124,255,0.5);
            color: var(--blue);
            display: grid;
            place-items: center;
            border-radius: 5px;
            font-size: 18px;
        }


        /* =========================================================
           SERVICES
        ========================================================= */

        .services {
            background: #070a0f;
            border-top: 1px solid var(--border);
            border-bottom: 1px solid var(--border);
        }

        .services-heading {
            display: flex;
            justify-content: space-between;
            align-items: end;
            gap: 40px;
            margin-bottom: 55px;
        }

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

        .service-card.comms {
            background:
                url("https://images.unsplash.com/photo-1558494949-ef010cbdcc31?auto=format&fit=crop&w=1200&q=85")
                center/cover;
        }

        .service-card.workstation {
            background:
                url("https://images.unsplash.com/photo-1497366811353-6870744d04b2?auto=format&fit=crop&w=1200&q=85")
                center/cover;
        }

        .service-card {
            min-height: 480px;
            position: relative;
            overflow: hidden;

            border: 1px solid rgba(255,255,255,0.12);
            border-radius: 8px;

            background: #0b1017;

            display: flex;
            align-items: flex-end;
        }

        .service-card::before {
            content: "";
            position: absolute;
            inset: 0;

            background:
                linear-gradient(
                    to top,
                    rgba(3,5,8,1) 5%,
                    rgba(3,5,8,0.65) 50%,
                    rgba(3,5,8,0.05) 100%
                );
            z-index: 1;
        }

        .service-card.setup {
            background:
                url("https://images.unsplash.com/photo-1497366754035-f200968a6e72?auto=format&fit=crop&w=1200&q=85")
                center/cover;
        }

        .service-card.cabling {
            background:
                url("https://images.unsplash.com/photo-1558494949-ef010cbdcc31?auto=format&fit=crop&w=1200&q=85")
                center/cover;
        }

        .service-content {
            position: relative;
            z-index: 2;
            padding: 40px;
        }

        .service-number {
            color: var(--blue);
            font-size: 12px;
            font-weight: 800;
            letter-spacing: 2px;
            margin-bottom: 14px;
        }

        .service-card h3 {
            font-size: 34px;
            line-height: 1;
            text-transform: uppercase;
            letter-spacing: -1px;
            margin-bottom: 18px;
        }

        .service-card p {
            color: #aab2bb;
            max-width: 480px;
            font-size: 14px;
            margin-bottom: 25px;
        }

        .service-link {
            color: var(--blue-bright);
            font-size: 13px;
            font-weight: 700;
            text-transform: uppercase;
        }


        /* =========================================================
           WHY US
        ========================================================= */

        .why {
            background: #05070a;
        }

        .why-heading {
            text-align: center;
            margin-bottom: 60px;
        }

        .why-heading .section-text {
            margin-left: auto;
            margin-right: auto;
        }

        .benefits {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            border: 1px solid var(--border);
        }

        .benefit {
            padding: 40px 30px;
            border-right: 1px solid var(--border);
        }

        .benefit:last-child {
            border-right: 0;
        }

        .benefit-icon {
            width: 50px;
            height: 50px;
            display: grid;
            place-items: center;

            color: var(--blue);
            border: 1px solid rgba(8,124,255,0.4);
            border-radius: 50%;

            font-size: 20px;
            margin-bottom: 25px;
        }

        .benefit h4 {
            font-size: 17px;
            margin-bottom: 12px;
        }

        .benefit p {
            color: var(--muted);
            font-size: 13px;
        }


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

        .cta {
            position: relative;
            overflow: hidden;

            padding: 90px 0;

            background:
                linear-gradient(
                    90deg,
                    rgba(3,7,13,0.96),
                    rgba(3,7,13,0.70)
                ),
                url("https://images.unsplash.com/photo-1486406146926-c627a92ad1ab?auto=format&fit=crop&w=2000&q=85")
                center/cover;
        }

        .cta::before {
            content: "";
            position: absolute;
            width: 500px;
            height: 500px;
            border-radius: 50%;

            background: rgba(8,124,255,0.12);
            filter: blur(100px);

            right: -150px;
            top: -200px;
        }

        .cta-content {
            position: relative;
            z-index: 2;

            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 40px;
        }

        .cta h2 {
            font-size: clamp(36px, 5vw, 58px);
            line-height: 1;
            letter-spacing: -2px;
            max-width: 700px;
        }

        .cta h2 span {
            color: var(--blue);
        }

        .cta p {
            color: #a9b1ba;
            margin-top: 18px;
        }


        /* =========================================================
           FOOTER
        ========================================================= */

        footer {
            background: #030507;
            border-top: 1px solid var(--border);
        }

        .footer-main {
            padding: 70px 0;
            display: grid;
            grid-template-columns: 2fr 1fr 1fr 1.5fr;
            gap: 50px;
        }

        .footer-brand p {
            color: var(--muted);
            max-width: 350px;
            margin-top: 20px;
            font-size: 14px;
        }

        .footer-column h5 {
            font-size: 12px;
            text-transform: uppercase;
            letter-spacing: 1.5px;
            margin-bottom: 22px;
            color: white;
        }

        .footer-column a {
            display: block;
            color: #7f8994;
            font-size: 13px;
            margin-bottom: 12px;
            transition: 0.2s ease;
        }

        .footer-column a:hover {
            color: var(--blue);
        }

        .contact-line {
            color: #8e98a2;
            font-size: 13px;
            margin-bottom: 12px;
        }

        .footer-bottom {
            padding: 20px 0;
            border-top: 1px solid var(--border);

            display: flex;
            justify-content: space-between;
            gap: 20px;

            color: #646e79;
            font-size: 12px;
        }


        /* =========================================================
           ANIMATIONS
        ========================================================= */

        @keyframes fadeUp {
            from {
                opacity: 0;
                transform: translateY(25px);
            }

            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        .hero-content > * {
            animation: fadeUp 0.8s ease forwards;
        }

        .hero h1 {
            animation-delay: 0.1s;
        }

        .hero-description {
            animation-delay: 0.2s;
        }

        .hero-buttons {
            animation-delay: 0.3s;
        }

        .hero-features {
            animation-delay: 0.4s;
        }


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

        @media (max-width: 900px) {

            .nav-links {
                position: absolute;
                top: 78px;
                left: 0;
                width: 100%;

                display: none;
                flex-direction: column;
                align-items: flex-start;
                gap: 0;

                padding: 20px 5%;

                background: #070a0f;
                border-bottom: 1px solid var(--border);
            }

            .nav-links.show {
                display: flex;
            }

            .nav-links a {
                width: 100%;
                padding: 15px 0;
                border-bottom: 1px solid rgba(255,255,255,0.06);
            }

            .mobile-menu {
                display: block;
            }

            .service-grid {
                grid-template-columns: 1fr;
            }

            .benefits {
                grid-template-columns: repeat(2, 1fr);
            }

            .benefit:nth-child(2) {
                border-right: 0;
            }

            .benefit:nth-child(-n+2) {
                border-bottom: 1px solid var(--border);
            }

            .cta-content {
                flex-direction: column;
                align-items: flex-start;
            }

            .footer-main {
                grid-template-columns: repeat(2, 1fr);
            }
        }


        @media (max-width: 600px) {

            .section {
                padding: 75px 0;
            }

            .hero {
                min-height: 850px;

                background:
                    linear-gradient(
                        90deg,
                        #05070a 0%,
                        rgba(5,7,10,0.85) 100%
                    ),
                    url("https://images.unsplash.com/photo-1497366811353-6870744d04b2?auto=format&fit=crop&w=1200&q=80")
                    center/cover;
            }

            .hero h1 {
                font-size: 48px;
                letter-spacing: -2.5px;
            }

            .hero-description {
                font-size: 15px;
            }

            .hero-features {
                gap: 20px;
                margin-top: 50px;
            }

            .hero-feature {
                width: 100%;
            }

            .services-heading {
                display: block;
            }

            .service-card {
                min-height: 430px;
            }

            .service-content {
                padding: 28px;
            }

            .service-card h3 {
                font-size: 29px;
            }

            .benefits {
                grid-template-columns: 1fr;
            }

            .benefit {
                border-right: 0 !important;
                border-bottom: 1px solid var(--border);
            }

            .benefit:last-child {
                border-bottom: 0;
            }

            .footer-main {
                grid-template-columns: 1fr;
                gap: 35px;
            }

            .footer-bottom {
                flex-direction: column;
            }
        }

/* WordPress theme additions */

.wp-admin-bar-placeholder { display:none; }
.quote-page-wrap { padding-top: 0; }
.service-grid.four-services { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 900px) {
  .service-grid.four-services { grid-template-columns: 1fr; }
}
.service-card.comms {
  background: url("https://images.unsplash.com/photo-1558494949-ef010cbdcc31?auto=format&fit=crop&w=1200&q=85") center/cover;
}
.service-card.workstations {
  background: url("https://images.unsplash.com/photo-1497366754035-f200968a6e72?auto=format&fit=crop&w=1200&q=85") center/cover;
}
.form-error {
  display:none;
  margin-top:25px;
  padding:18px;
  border:1px solid rgba(255,90,90,0.45);
  background:rgba(255,90,90,0.08);
  border-radius:5px;
  color:#ffd0d0;
  font-size:13px;
}
.form-error.show { display:block; }

/* =========================================================
   NEXA SERVICE PAGES
========================================================= */
.service-page { padding-top: 78px; }
.service-hero {
    padding: 105px 0 70px;
    background:
        linear-gradient(90deg, #05070a 0%, rgba(5,7,10,0.96) 58%, rgba(5,7,10,0.78) 100%),
        radial-gradient(circle at 80% 20%, rgba(8,124,255,0.13), transparent 38%);
    border-bottom: 1px solid var(--border);
}
.service-page-title {
    max-width: 900px;
    margin: 0;
    font-size: clamp(44px, 7vw, 82px);
    line-height: .98;
    letter-spacing: -3px;
    font-weight: 800;
}
.service-page-lead {
    max-width: 760px;
    margin: 24px 0 0;
    color: var(--muted);
    font-size: 19px;
    line-height: 1.7;
}
.service-content-section { padding-top: 85px; }
.service-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 330px;
    gap: 75px;
    align-items: start;
}
.service-content {
    max-width: 820px;
    color: #c7cdd3;
    font-size: 17px;
    line-height: 1.8;
}
.service-content h2 {
    color: #fff;
    font-size: 34px;
    line-height: 1.15;
    margin: 48px 0 18px;
    letter-spacing: -1px;
}
.service-content h3 {
    color: #fff;
    font-size: 20px;
    margin: 30px 0 5px;
}
.service-content p { margin: 0 0 18px; }
.service-content ul { padding-left: 22px; margin: 18px 0 25px; }
.service-content li { margin-bottom: 8px; }
.service-sidebar { position: sticky; top: 105px; }
.service-sidebar-card {
    padding: 32px;
    border: 1px solid rgba(255,255,255,.1);
    background: linear-gradient(145deg, rgba(255,255,255,.045), rgba(255,255,255,.018));
    border-radius: 10px;
}
.service-sidebar-card h2 { margin: 0 0 15px; font-size: 28px; line-height: 1.15; }
.service-sidebar-card p { color: var(--muted); line-height: 1.7; margin: 0 0 25px; }
.service-sidebar-card .btn { width: 100%; justify-content: center; }
.service-back { display: block; margin-top: 18px; color: #c7cdd3; font-size: 13px; text-align: center; }
.service-back:hover { color: var(--blue-bright); }
.service-navigation { border-top: 1px solid var(--border); }
.service-links-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin-top: 35px; }
.service-mini-link {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 22px 24px;
    border: 1px solid rgba(255,255,255,.09);
    border-radius: 7px;
    color: #fff;
    background: rgba(255,255,255,.025);
    transition: .25s ease;
}
.service-mini-link span { color: var(--blue-bright); font-size: 12px; font-weight: 800; letter-spacing: 1px; }
.service-mini-link b { margin-left: auto; color: var(--blue-bright); }
.service-mini-link:hover { border-color: rgba(8,124,255,.55); transform: translateY(-2px); background: rgba(8,124,255,.06); }
.service-cta { margin-top: 0; }
@media (max-width: 900px) {
    .service-layout { grid-template-columns: 1fr; gap: 40px; }
    .service-sidebar { position: static; }
}
@media (max-width: 600px) {
    .service-page { padding-top: 68px; }
    .service-hero { padding: 75px 0 55px; }
    .service-page-title { font-size: 48px; letter-spacing: -2px; }
    .service-page-lead { font-size: 16px; }
    .service-content-section { padding-top: 65px; }
    .service-content { font-size: 16px; }
    .service-links-grid { grid-template-columns: 1fr; }
    .service-sidebar-card { padding: 25px; }
}


/* =========================================================
   NEXA SERVICE PAGE — SPACING REFINEMENT v1.0.2
========================================================= */

/* Keep the service page compact and intentional. */
.service-hero {
    padding-bottom: 28px;
}

.service-content-section {
    padding-top: 32px;
    padding-bottom: 85px;
}

.service-sidebar-card {
    margin-top: 8px;
}

.service-back {
    margin-top: 24px;
}

@media (max-width: 600px) {
    .service-hero { padding-bottom: 28px; }
    .service-content-section { padding-top: 32px; padding-bottom: 65px; }
}

.service-content-section {
    padding-top: 42px;
}

/* Give the final quote CTA clear separation from the service content. */
.service-cta {
    margin-top: 70px;
    padding-top: 85px;
    padding-bottom: 85px;
    border-top: 1px solid var(--border);
}

/* Keep the CTA controls visually separated and easy to scan. */
.service-cta .btn {
    margin-top: 10px;
}

.service-cta .service-back {
    margin-top: 18px;
}

@media (max-width: 900px) {
    .service-content-section {
        padding-top: 35px;
    }

    .service-cta {
        margin-top: 55px;
        padding-top: 65px;
        padding-bottom: 65px;
    }
}

@media (max-width: 600px) {
    .service-content-section {
        padding-top: 30px;
    }

    .service-cta {
        margin-top: 45px;
        padding-top: 55px;
        padding-bottom: 55px;
    }
}

/* Final merge compatibility fixes */
.logo-text { display:flex; flex-direction:column; line-height:1.05; }
.logo-text small { margin-top:4px; }
.service-sidebar-card { margin-top:0; }
.service-sidebar-card .btn { width:100%; justify-content:center; }
.service-sidebar-card .service-back { text-align:center; }
.form-success{margin-bottom:25px;padding:18px;border:1px solid rgba(8,124,255,.45);background:rgba(8,124,255,.08);border-radius:5px;color:#d9ecff;font-size:13px}
