/*
 * DK SECURE SOLUTIONS | SHARED STYLESHEET
 * Used by every HTML page.
 * Edit :root for site colors. Responsive rules are at the end.
 */

:root {
    --navy:#092745;
    --navy2:#061c33;
    --blue:#1469b0;
    --cyan:#3db1db;
    --gold:#d7a74c;
    --ink:#203143;
    --muted:#59697a;
    --light:#f3f7fb;
    --border:#dfe7ef;
    --red:#872a34;
}

* {
    box-sizing:border-box;
}

html {
    scroll-behavior:smooth;
}

body {
    margin:0;
    font:16px/1.65 Inter,Arial,sans-serif;
    color:var(--ink);
    background:#fff;
}

a {
    color:inherit;
    text-decoration:none;
}

img {
    display:block;
    max-width:100%;
}

h1,h2,h3,p {
    margin-top:0;
}

h1,h2 {
    line-height:1.15;
}

h1 {
    font:400 clamp(2.4rem,5vw,4.9rem)/1.08 Anton,Impact,sans-serif;
    letter-spacing:.02em;
}

h2 {
    font:400 clamp(2rem,3.3vw,3.2rem)/1.15 Anton,Impact,sans-serif;
    letter-spacing:.025em;
}

h3 {
    line-height:1.25;
}

p {
    color:var(--muted);
}

.container {
    width:min(1180px,90%);
    margin-inline:auto;
}

.site-header {
    position:sticky;
    top:0;
    z-index:100;
    background:linear-gradient(110deg,#05152a,#082b4e);
    border-bottom:1px solid #ffffff22;
    box-shadow:0 5px 22px #00132230;
}

.nav-container {
    min-height:106px;
    width:min(1440px,96%);
    margin:auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
}

.brand {
    display:flex;
    align-items:center;
    min-width:0;
}

.brand img {
    height:88px;
    width:auto;
    max-width:300px;
    object-fit:contain;
}

.brand-fallback {
    display:none;
    color:#fff;
    align-items:center;
    gap:9px;
}

.brand-fallback b {
    font:40px Anton,Impact,sans-serif;
    color:#bb4753;
}

.brand-fallback span {
    font:18px/1 Anton,Impact,sans-serif;
    letter-spacing:1px;
}

.site-nav {
    display:flex;
    align-items:center;
    gap:18px;
}

.site-nav a {
    color:#ecf5ff;
    font-size:14px;
    font-weight:600;
}

.site-nav a:hover,.site-nav a[aria-current=page] {
    color:#81cfff;
}

.site-nav .nav-button {
    background:#1876ca;
    padding:10px 15px;
    border-radius:6px;
    color:#fff;
}

.menu-toggle {
    display:none;
    background:none;
    color:white;
    border:1px solid #ffffff55;
    padding:5px 12px;
    border-radius:5px;
    font-size:22px;
    cursor:pointer;
}

.eyebrow {
    text-transform:uppercase;
    letter-spacing:.19em;
    font-size:16px;
    font-weight:800;
    color:var(--blue);
    margin-bottom:15px;
}

.section {
    padding:76px 0;
}

.section-soft {
    background:var(--light);
}

.section-heading {
    max-width:780px;
    margin-bottom:33px;
}

.section-heading h2 {
    color:var(--navy);
}

.section-heading p {
    font-size:17px;
}

.section-bottom {
    margin-top:27px;
}

.button {
    display:inline-flex;
    align-items:center;
    gap:14px;
    background:#1680ca;
    color:#fff;
    font-weight:700;
    padding:13px 21px;
    border-radius:7px;
    border:1px solid #1680ca;
    cursor:pointer;
    line-height:1.2;
}

.button:hover {
    background:#0a5f9c;
}

.button-secondary {
    background:transparent;
    color:inherit;
    border-color:#9eb5ca;
}

.button-secondary:hover {
    background:#ffffff16;
}

.home-hero {
    position:relative;
    isolation:isolate;
    min-height:640px;
    display:flex;
    align-items:center;
    padding:64px 0;
    background:linear-gradient(120deg,#06182e,#104a7a);
    color:#fff;
    overflow:hidden;
}

.home-hero video {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    z-index:-2;
}

/* Homepage video remains visible across the full hero.
   Only the text panel receives a translucent dark background. */
.home-overlay {
    display:none;
}

.home-hero-content {
    /* Change 0.62 to 0.50 for more video or 0.72 for stronger contrast. */
    --hero-panel-opacity:0.72;
    width:min(820px,90%);
    margin-left:max(5%,calc((100% - 1180px) / 2));
    margin-right:auto;
    padding:42px 46px;
    background:rgba(5,22,44,var(--hero-panel-opacity));
    border:1px solid rgba(255,255,255,0.12);
    border-radius:10px;
    backdrop-filter:blur(2px);
    -webkit-backdrop-filter:blur(2px);
}

.home-hero-content h1 {
    max-width:820px;
}

.home-hero-content h1 em {
    color:#79d5f9;
    font-style:normal;
}

.home-hero-content p {
    color:#d9e7f3;
    font-size:18px;
    max-width:670px;
}

.home-hero .eyebrow {
    color:#d7a74c;
}

.hero-buttons {
    display:flex;
    gap:13px;
    flex-wrap:wrap;
    margin-top:27px;
}

.motto {
    background:#122f4c;
    color:#fff;
    padding:22px 0;
}

.motto .container {
    display:flex;
    gap:25px;
    align-items:center;
    flex-wrap:wrap;
}

.motto strong {
    font-size:19px;
}

.motto span {
    color:#c7d7e8;
}

.service-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:21px;
}

.service-card {
    border:1px solid var(--border);
    border-radius:12px;
    overflow:hidden;
    background:#fff;
    box-shadow:0 4px 17px #0a315911;
    display:flex;
    flex-direction:column;
}

.service-img {
    height:184px;
    background:#eaf1f8;
    overflow:hidden;
}

.service-img img {
    height:100%;
    width:100%;
    object-fit:cover;
}

.service-card-content {
    padding:24px;
    display:flex;
    flex-direction:column;
    flex:1;
}

.service-card-content h3 {
    color:var(--navy);
    font-size:20px;
    margin-bottom:12px;
}

.service-card-content p {
    font-size:14px;
    flex:1;
}

.text-link,.link-stack a {
    color:var(--blue);
    font-weight:750;
}

.text-link:hover,.link-stack a:hover {
    text-decoration:underline;
}

.page-hero {
    background:linear-gradient(115deg,#06182d,#0e436d);
    color:#fff;
    padding:82px 0 88px;
}

.pagehero-grid {
    display:grid;
    grid-template-columns:minmax(0,1.35fr) minmax(250px,1fr);
    gap:48px;
    align-items:center;
}

.pagehero-grid:not(:has(.pagehero-visual)) {
    grid-template-columns:1fr;
}

.pagehero-grid h1 {
    max-width:790px;
}

.pagehero-grid p {
    font-size:19px;
    color:#d4e3f0;
    max-width:710px;
}

.page-hero .eyebrow {
    color:#81d8fc;
}

.pagehero-visual {
    border:1px solid #ffffff26;
    border-radius:12px;
    overflow:hidden;
    max-height:315px;
}

.pagehero-visual img {
    width:100%;
    height:315px;
    object-fit:cover;
}

.page-hero .button-secondary {
    color:#fff;
    border-color:#e3efff88;
}

.split {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:60px;
    align-items:center;
}

.split h2 {
    color:var(--navy);
}

.split p {
    font-size:17px;
}

.feature-image {
    width:100%;
    max-height:400px;
    object-fit:cover;
    border-radius:12px;
    box-shadow:0 8px 26px #18355720;
}

.link-stack {
    display:grid;
    gap:13px;
    margin-top:22px;
}

.promise-panel {
    background:var(--light);
    border:1px solid var(--border);
    border-radius:12px;
    padding:30px;
}

.promise-panel h3 {
    color:var(--navy);
    font-size:23px;
}

.promise-panel ul {
    list-style:none;
    margin:0;
    padding:0;
}

.promise-panel li {
    padding:14px 0;
    border-top:1px solid #dbe4ee;
}

.promise-panel li strong {
    display:block;
    color:var(--navy);
    font-size:16px;
    margin-bottom:3px;
}

.promise-panel li span {
    display:block;
    color:var(--muted);
    font-size:15px;
}

.mini-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
}

.mini-card {
    background:white;
    padding:28px;
    border:1px solid var(--border);
    border-radius:12px;
}

.mini-card h3 {
    color:var(--navy);
}

.mini-card b {
    color:var(--blue);
}

.catalog-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:13px;
}

.catalog-grid article {
    background:#fff;
    border:1px solid var(--border);
    padding:23px;
    border-radius:9px;
}

.catalog-grid h3 {
    font-size:17px;
    color:var(--navy);
    margin-bottom:7px;
}

.catalog-grid p {
    font-size:14px;
    margin:0;
}

.tag-cloud {
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}

.tag-cloud span {
    background:#fff;
    border:1px solid #bed2e4;
    padding:10px 15px;
    border-radius:8px;
    color:#164775;
    font-weight:650;
    font-size:14px;
}

.cta-strip {
    background:#0b345c;
    color:white;
    padding:48px 0;
}

.cta-inner {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px;
}

.cta-inner h2 {
    font-size:32px;
    color:white;
}

.cta-inner p {
    color:#d9e8f6;
    margin:0;
}

.cta-inner .button {
    white-space:nowrap;
}

.contact-grid {
    display:grid;
    grid-template-columns:.85fr 1.15fr;
    gap:70px;
}

.contact-box {
    background:var(--light);
    border:1px solid var(--border);
    border-radius:12px;
    padding:28px;
    display:grid;
    gap:14px;
}

.contact-box label {
    display:grid;
    gap:5px;
    font-size:14px;
    font-weight:700;
    color:var(--navy);
}

.contact-box input,.contact-box textarea,.contact-box select {
    font:inherit;
    padding:12px;
    border:1px solid #bac9d7;
    border-radius:6px;
    min-width:0;
    width:100%;
    background:white;
}

.form-two {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
}

.note {
    font-size:12px!important;
    color:#657c90;
}

.site-footer {
    background:#071d33;
    color:#fff;
    padding-top:50px;
}

.site-footer p {
    color:#9eb2c5;
}

.footer-grid {
    display:grid;
    grid-template-columns:2fr 1fr 1.5fr;
    gap:40px;
}

.footer-grid>div {
    display:flex;
    flex-direction:column;
    gap:8px;
}

.footer-grid a {
    font-size:14px;
    color:#d4e2ee;
}

.footer-grid a:hover {
    color:#6cd4fe;
}

.footer-bottom {
    border-top:1px solid #ffffff20;
    margin-top:40px;
    padding:17px 0;
    color:#99adc0;
    font-size:12px;
}

@media(max-width:1000px) {
    .service-grid,.catalog-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .site-nav {
        gap:10px;
    }
    .site-nav a {
        font-size:13px;
    }
}

@media(max-width:760px) {
    .nav-container {
        min-height:80px;
    }
    .brand img {
        height:68px;
        max-width:235px;
    }
    .menu-toggle {
        display:block;
    }
    .site-nav {
        display:none;
        position:absolute;
        top:100%;
        left:0;
        right:0;
        background:#061d35;
        flex-direction:column;
        align-items:stretch;
        padding:15px 5%;
        gap:0;
        box-shadow:0 12px 25px #0004;
    }
    .site-nav.open {
        display:flex;
    }
    .site-nav a {
        font-size:16px;
        padding:12px;
        border-bottom:1px solid #ffffff20;
    }
    .site-nav .nav-button {
        text-align:center;
        margin-top:10px;
    }
    .home-hero {
        min-height:530px;
    }
    .home-hero-content {
        padding:32px 30px;
    }
    .pagehero-grid,.split,.contact-grid {
        grid-template-columns:1fr;
        gap:28px;
    }
    .pagehero-visual img {
        height:220px;
    }
    .page-hero {
        padding:55px 0;
    }
    .section {
        padding:55px 0;
    }
    .cta-inner {
        flex-direction:column;
        align-items:flex-start;
    }
    .footer-grid {
        grid-template-columns:1fr 1fr;
    }
    .service-grid {
        grid-template-columns:1fr 1fr;
    }
    .mini-grid {
        grid-template-columns:1fr;
    }
}

@media(max-width:540px) {
    .service-grid,.catalog-grid,.form-two,.footer-grid {
        grid-template-columns:1fr;
    }
    .home-hero-content {
        padding:25px 20px;
    }
    .home-hero-content h1 {
        font-size:clamp(36px,9vw,52px);
    }
    .hero-buttons {
        flex-direction:column;
        align-items:stretch;
    }
    .hero-buttons .button {
        justify-content:center;
    }
    .motto .container {
        gap:7px;
    }
    .site-footer {
        padding-top:35px;
    }
}

@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto;
    }
    * {
        animation:none!important;
        transition:none!important;
    }
}


/* ================================================================
   SERVICES DROPDOWN | Desktop hover/focus and touch-friendly mobile
   Edit the links in the shared header on each HTML page.
   ================================================================ */
.nav-dropdown { position: relative; }
.nav-dropdown-heading { display: flex; align-items: center; gap: 2px; }
.nav-dropdown-main { display: block; }
.nav-dropdown-toggle {
    display: inline-flex; align-items: center; justify-content: center;
    width: 28px; height: 32px; padding: 0; background: transparent;
    color: #ecf5ff; border: 0; border-radius: 4px; cursor: pointer;
    font-size: 16px;
}
.nav-dropdown-toggle:hover, .nav-dropdown-toggle:focus-visible { color: #81cfff; background: #ffffff18; }
.nav-submenu {
    display: none; position: absolute; top: 100%; left: 0;
    min-width: 295px; padding: 8px 0; background: #082b4e;
    border: 1px solid #ffffff25; border-radius: 7px;
    box-shadow: 0 14px 30px #00132255; z-index: 120;
}
.nav-dropdown:hover .nav-submenu,
.nav-dropdown:focus-within .nav-submenu,
.nav-dropdown.is-open .nav-submenu { display: block; }
.site-nav .nav-submenu a {
    display: block; padding: 10px 17px; font-size: 13px; line-height: 1.3;
    color: #ecf5ff; white-space: nowrap;
}
.site-nav .nav-submenu a:hover,
.site-nav .nav-submenu a:focus-visible { background: #ffffff12; color: #81cfff; }
@media (max-width: 760px) {
    .site-nav { max-height: calc(100dvh - 80px); overflow-y: auto; }
    .nav-dropdown-heading { justify-content: space-between; }
    .site-nav .nav-dropdown-main { flex: 1; }
    .nav-dropdown-toggle { width: 48px; height: 46px; border: 1px solid #ffffff25; }
    .nav-submenu { position: static; min-width: 0; padding: 0 0 6px 12px; box-shadow: none; border: none; border-radius: 0; background: #ffffff09; }
    .nav-dropdown:hover .nav-submenu,
    .nav-dropdown:focus-within .nav-submenu { display: none; }
    .nav-dropdown.is-open .nav-submenu { display: block; }
    .site-nav .nav-submenu a { padding: 10px 12px; font-size: 14px; white-space: normal; }
}

/* Keep the full-size logo and navigation comfortable on intermediate screens. */
@media (min-width: 761px) and (max-width: 1100px) {
    .nav-container { width: 98%; }
    .brand img { height: 74px; max-width: 245px; }
    .site-nav { gap: 9px; }
    .site-nav a { font-size: 12px; }
}
