/* ===== base (from original dexcontact.com) ===== */

        *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
        :root {
            --navy:#0a1628; --navy-mid:#112240; --navy-light:#1a3560;
            --accent:#00aaff; --accent-dim:#0077cc; --white:#ffffff; --off-white:#e8edf4;
            --gray:#8899aa; --text:#ccd6e0;
            --font-head:'Barlow Condensed',sans-serif; --font-body:'Barlow',sans-serif;
        }
        html { scroll-behavior: smooth; }
        body { background:var(--navy); color:var(--text); font-family:var(--font-body); font-size:16px; line-height:1.7; }
        a { color:var(--accent); text-decoration:none; }
        a:hover { color:var(--white); }
        img { max-width:100%; height:auto; display:block; }
        h1,h2,h3,h4 { font-family:var(--font-head); color:var(--white); line-height:1.2; letter-spacing:0.02em; }

        #site-nav { position:fixed; top:0; left:0; right:0; z-index:1000; background:rgba(10,22,40,0.96);
            backdrop-filter:blur(8px); border-bottom:1px solid rgba(0,170,255,0.12); height:64px; display:flex; align-items:center; padding:0 2rem; }
        .nav-inner { width:100%; max-width:1280px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; }
        .nav-logo { font-family:var(--font-head); font-weight:700; font-size:1.35rem; color:#fff; letter-spacing:0.08em; text-transform:uppercase; }
        .nav-logo span { color:var(--accent); }
        .nav-links { display:flex; list-style:none; gap:0; align-items:center; }
        .nav-links > li { position:relative; }
        .nav-links > li > a { display:block; padding:0 1.1rem; height:64px; line-height:64px; color:var(--off-white);
            font-size:0.88rem; font-weight:500; letter-spacing:0.06em; text-transform:uppercase; transition:color 0.2s; }
        .nav-links > li > a:hover, .nav-links > li:hover > a { color:var(--accent); }
        .nav-links > li:hover > .dropdown { display:block; }
        .dropdown { display:none; position:absolute; top:64px; left:0; min-width:260px; background:var(--navy-mid);
            border:1px solid rgba(0,170,255,0.15); border-top:2px solid var(--accent); list-style:none; padding:0.5rem 0; }
        .dropdown li a { display:block; padding:0.55rem 1.4rem; color:var(--text); font-size:0.85rem; transition:background 0.15s,color 0.15s; }
        .dropdown li a:hover { background:rgba(0,170,255,0.08); color:var(--white); }
        .nav-cta { background:var(--accent); color:var(--navy)!important; padding:0.5rem 1.2rem!important; height:auto!important;
            line-height:1.4!important; border-radius:3px; font-weight:700!important; font-size:0.82rem!important; transition:background 0.2s!important; }
        .nav-cta:hover { background:var(--white)!important; color:var(--navy)!important; }
        .nav-lang { margin-left:0.6rem; font-size:0.78rem!important; letter-spacing:0.08em; border:1px solid rgba(255,255,255,0.25);
            border-radius:3px; padding:0.35rem 0.7rem!important; height:auto!important; line-height:1.2!important; color:var(--off-white)!important; }
        .nav-lang:hover { border-color:var(--accent); color:var(--accent)!important; }

        main { padding-top:64px; min-height:60vh; }

        #site-footer { background:var(--navy-mid); border-top:1px solid rgba(0,170,255,0.12); padding:3rem 2rem 1.5rem; }
        .footer-inner { max-width:1280px; margin:0 auto; display:grid; grid-template-columns:1.5fr 1fr 1fr 1.2fr; gap:2.5rem; }
        .footer-brand .fb-logo { font-family:var(--font-head); font-weight:700; font-size:1.4rem; color:#fff; letter-spacing:0.08em; text-transform:uppercase; margin-bottom:1rem; }
        .footer-brand .fb-logo span { color:var(--accent); }
        .footer-brand p { font-size:0.85rem; color:var(--gray); line-height:1.6; }
        .footer-col h4 { font-size:0.78rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--accent); margin-bottom:1rem; }
        .footer-col ul { list-style:none; }
        .footer-col ul li { margin-bottom:0.4rem; }
        .footer-col ul li a { color:var(--gray); font-size:0.85rem; transition:color 0.2s; }
        .footer-col ul li a:hover { color:var(--white); }
        .footer-col p { color:var(--gray); font-size:0.82rem; line-height:1.6; margin-bottom:0.6rem; }
        .footer-bottom { max-width:1280px; margin:2rem auto 0; padding-top:1.5rem; border-top:1px solid rgba(255,255,255,0.06);
            display:flex; justify-content:space-between; align-items:center; font-size:0.8rem; color:var(--gray); flex-wrap:wrap; gap:0.5rem; }

        .container { max-width:1280px; margin:0 auto; padding:0 2rem; }
        .section { padding:5rem 2rem; }
        .section-title { font-family:var(--font-head); font-size:clamp(1.8rem,3vw,2.8rem); font-weight:700; color:var(--white);
            text-transform:uppercase; letter-spacing:0.04em; margin-top:0; margin-bottom:0.5rem; }
        .section-sub { color:var(--gray); font-size:1rem; margin-bottom:3rem; }
        .btn { display:inline-block; padding:0.75rem 1.8rem; font-family:var(--font-head); font-weight:700; font-size:0.9rem;
            letter-spacing:0.08em; text-transform:uppercase; border-radius:3px; transition:all 0.2s; cursor:pointer; }
        .btn-primary { background:var(--accent); color:var(--navy); }
        .btn-primary:hover { background:var(--white); color:var(--navy); }
        .btn-outline { background:transparent; color:var(--accent); border:2px solid var(--accent); }
        .btn-outline:hover { background:var(--accent); color:var(--navy); }

        .page-hero { background:linear-gradient(135deg,var(--navy-mid) 0%,var(--navy) 60%); border-bottom:1px solid rgba(0,170,255,0.12);
            padding:5rem 2rem 4rem; position:relative; overflow:hidden; }
        .page-hero::before { content:''; position:absolute; top:-100px; right:-100px; width:500px; height:500px;
            background:radial-gradient(circle,rgba(0,170,255,0.06) 0%,transparent 70%); pointer-events:none; }
        .page-hero-inner { max-width:1280px; margin:0 auto; }
        .page-hero h1 { font-size:clamp(2rem,4vw,3.5rem); font-weight:700; text-transform:uppercase; letter-spacing:0.04em; margin-bottom:1rem; }
        .page-hero p { font-size:1.1rem; color:var(--gray); max-width:600px; }

        .content-body { max-width:860px; margin:0 auto; padding:4rem 2rem; }
        .content-body h2 { font-size:1.8rem; margin:2rem 0 0.75rem; }
        .content-body h3 { font-size:1.3rem; margin:1.5rem 0 0.5rem; color:var(--accent); }
        .content-body p { margin-bottom:1rem; color:var(--text); }
        .content-body ul, .content-body ol { padding-left:1.5rem; margin-bottom:1rem; }
        .content-body li { margin-bottom:0.4rem; }
        /* robust long-word wrapping at narrow widths */
        .solution-hero h1, .content-body h2, .content-body p, .content-body li {
            min-width:0; max-width:100%; overflow-wrap:anywhere; word-break:normal; hyphens:auto;
        }
        .solution-hero-inner, .content-body {
            min-width:0; overflow-wrap:anywhere; hyphens:auto;
        }
        .content-body img { margin:1.5rem auto; border:1px solid rgba(0,170,255,0.12); }

        .nav-toggle { display:none; background:none; border:1px solid rgba(0,170,255,0.3); border-radius:4px; color:#fff; width:44px; height:44px; align-items:center; justify-content:center; cursor:pointer; padding:0; }
        .nav-toggle:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
        .dxform .cf-turnstile { max-width: 100%; }
        .dxform input:not([type=checkbox]):not([type=radio]):not([type=hidden]), .dxform select { min-height: 44px; }
        @media (max-width:900px) {
            .footer-inner { grid-template-columns:1fr 1fr; }
            .nav-toggle { display:inline-flex; }
            .nav-links { position:fixed; top:64px; left:0; right:0; flex-direction:column; align-items:stretch; gap:0; background:rgba(10,22,40,0.99); border-bottom:1px solid rgba(0,170,255,0.12); padding:0.5rem 0 1rem; max-height:calc(100vh - 64px); overflow-y:auto; display:none; }
            .nav-links.open { display:flex; }
            .nav-links > li { position:static; width:100%; }
            .nav-links > li > a { display:block; height:auto; line-height:1.4; padding:0.85rem 1.5rem; min-height:44px; box-sizing:border-box; }
            .nav-links .dropdown { position:static; display:block; min-width:0; background:transparent; border:0; box-shadow:none; }
            .nav-links .dropdown li a { padding:0.6rem 1.5rem 0.6rem 2.5rem; min-height:44px; display:flex; align-items:center; box-sizing:border-box; }
        }
        @media (max-width:600px) { .footer-inner { grid-template-columns:1fr; } .section { padding:3rem 1.2rem; } }
    
        /* mobile: content tables scroll, inline card grids collapse */
        .content-body table { max-width: 100%; border-collapse: collapse; }
        @media (max-width: 600px) {
            .content-body table { display: block; overflow-x: auto; }
            .content-body table th, .content-body table td { min-width: 8rem; }
        }
        @media (max-width: 480px) {
            .content-body [style*="minmax"] { grid-template-columns: 1fr !important; }
        }
    
/* ===== home ===== */

    .hero { position:relative; min-height:80vh; display:flex; align-items:center; overflow:hidden; background:var(--navy); }
    .hero-bg { position:absolute; inset:0; background:
        radial-gradient(ellipse 80% 60% at 70% 40%, rgba(0,100,200,0.18) 0%, transparent 60%),
        radial-gradient(ellipse 40% 40% at 20% 80%, rgba(0,170,255,0.08) 0%, transparent 60%),
        linear-gradient(160deg,#0a1628 0%,#0d1e38 50%,#071020 100%); }
    .hero-grid { position:absolute; inset:0; background-image:
        linear-gradient(rgba(0,170,255,0.04) 1px,transparent 1px),
        linear-gradient(90deg,rgba(0,170,255,0.04) 1px,transparent 1px); background-size:60px 60px; }
    .hero-content { position:relative; z-index:2; max-width:1280px; margin:0 auto; padding:0 2rem; width:100%; }
    .hero-tag { display:inline-block; font-size:0.75rem; font-weight:600; letter-spacing:0.18em; text-transform:uppercase;
        color:var(--accent); border:1px solid rgba(0,170,255,0.3); padding:0.35rem 0.9rem; border-radius:2px; margin-bottom:1.5rem; }
    .hero-title { font-size:clamp(2.6rem,6vw,5rem); font-weight:700; text-transform:uppercase; letter-spacing:0.03em;
        line-height:1.05; color:var(--white); margin-bottom:1.5rem; }
    .hero-title span { color:var(--accent); }
    .hero-sub { font-size:1.1rem; color:var(--gray); max-width:560px; margin-bottom:2.5rem; }
    .hero-actions { display:flex; gap:1rem; flex-wrap:wrap; }
    .solutions { background:var(--navy-mid); }
    .solutions-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%, 280px), 1fr)); gap:1.5px;
        background:rgba(0,170,255,0.08); border:1px solid rgba(0,170,255,0.08); }
    .solution-card { background:var(--navy-mid); padding:2rem; transition:background 0.2s; position:relative; overflow:hidden; }
    .solution-card::before { content:''; position:absolute; top:0; left:0; width:3px; height:100%; background:var(--accent);
        transform:scaleY(0); transform-origin:bottom; transition:transform 0.25s ease; }
    .solution-card:hover { background:var(--navy-light); }
    .solution-card:hover::before { transform:scaleY(1); }
    .solution-card h3 { font-size:1rem; font-weight:700; text-transform:uppercase; letter-spacing:0.06em; color:var(--white); margin-bottom:0.75rem; }
    .solution-card p { font-size:0.88rem; color:var(--gray); line-height:1.6; margin-bottom:1rem; }
    .solution-card a { font-size:0.8rem; font-weight:600; letter-spacing:0.06em; text-transform:uppercase; color:var(--accent); display:inline-flex; align-items:center; min-height:44px; }
    .solution-card a:hover { color:var(--white); }
    .solution-card a::after { content:''; position:absolute; inset:0; }
    .intro { background:var(--navy); }
    .intro .content-body { color:var(--text); }
    .cta-band { background:linear-gradient(90deg,var(--navy-light) 0%,var(--navy-mid) 100%); border-top:1px solid rgba(0,170,255,0.15);
        border-bottom:1px solid rgba(0,170,255,0.15); padding:4rem 2rem; text-align:center; }
    .cta-band h2 { font-size:clamp(1.6rem,3vw,2.4rem); text-transform:uppercase; margin-bottom:1rem; }
    .cta-band p { color:var(--gray); margin-bottom:2rem; }
    @media (max-width:600px) {
        .hero-content { padding:0 2rem; }
        .hero-tag { display:block; width:100%; font-size:0.68rem; text-align:center; white-space:normal; }
        .hero-title { font-size:2rem; max-width:100%; overflow-wrap:anywhere; }
        .hero-sub { max-width:100%; overflow-wrap:break-word; }
        .hero-actions { display:grid; grid-template-columns:minmax(0,1fr); width:100%; }
        .hero-actions .btn { width:100%; min-width:0; text-align:center; white-space:normal; }
    }

/* ===== service pages ===== */

    .solution-hero { background:linear-gradient(135deg,var(--navy-mid) 0%,var(--navy) 100%); padding:6rem 2rem 4rem;
        border-bottom:1px solid rgba(0,170,255,0.15); position:relative; overflow:hidden; }
    .solution-hero::after { content:''; position:absolute; right:0; top:0; bottom:0; width:40%;
        background:radial-gradient(ellipse at right center,rgba(0,170,255,0.07) 0%,transparent 70%); pointer-events:none; }
    .solution-hero-inner { max-width:1280px; margin:0 auto; }
    .solution-hero-label { font-size:0.72rem; font-weight:600; letter-spacing:0.18em; text-transform:uppercase; color:var(--accent); margin-bottom:1rem; }
    .solution-hero h1 { font-size:clamp(2.2rem,4.5vw,4rem); text-transform:uppercase; margin-bottom:1rem; }
    .solution-hero .strapline { font-size:1.15rem; color:var(--text); max-width:620px; margin-bottom:2rem; }
    .features-section { background:var(--navy-mid); padding:4rem 2rem; }
    .features-section .container { max-width:1280px; margin:0 auto; }
    .breadcrumb{font-size:.8rem;color:var(--gray);margin-bottom:1.25rem}
    .breadcrumb a{color:var(--gray);text-decoration:none}
    .breadcrumb a:hover{color:var(--accent)}
    .breadcrumb span{opacity:.55;margin:0 .15rem}

/* ===== services list ===== */

    .svc-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%, 300px), 1fr)); gap:1.5px;
        background:rgba(0,170,255,0.08); border:1px solid rgba(0,170,255,0.08); }
    .svc-card { background:var(--navy-mid); padding:2rem; transition:background 0.2s; position:relative; overflow:hidden; }
    .svc-card::before { content:''; position:absolute; top:0; left:0; width:3px; height:100%; background:var(--accent);
        transform:scaleY(0); transform-origin:bottom; transition:transform 0.25s ease; }
    .svc-card:hover { background:var(--navy-light); }
    .svc-card:hover::before { transform:scaleY(1); }
    .svc-card h3 { font-size:1.05rem; font-weight:700; text-transform:uppercase; letter-spacing:0.04em; color:var(--white); margin-bottom:0.75rem; }
    .svc-card p { font-size:0.88rem; color:var(--gray); line-height:1.6; margin-bottom:1rem; }
    .svc-card a.more { font-size:0.8rem; font-weight:600; letter-spacing:0.06em; text-transform:uppercase; color:var(--accent); }
    .svc-card a.more:hover { color:var(--white); }
