/* ============================================
   RESET AND BASE STYLES
   ============================================ */
html, body {
    overflow-x: hidden;
    margin: 0;
    padding: 0;
}

:root {
    --video-max-height: 721px;
}

html { 
    font-synthesis-weight: none; 
    font-synthesis-style: none; 
}

body { 
    font-family: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; 
    font-size: 12px;
}

/* Prevent scrollbar shift when modal opens */
body.modal-open {
    padding-right: 0 !important;
}


/* ============================================
   TYPOGRAPHY
   ============================================ */
h1 { 
    font-family: "Anton", "Impact", "Arial Black", sans-serif; 
    font-size: 5.0625em; 
}

h1 small { 
    font-family: "Aldrich", "Trebuchet MS", "Arial", sans-serif;
    font-size: 0.69em; /* 3.5 ÷ 5.0625 = 0.69 */
    color: #878b8e;
}

h2 { 
    font-family: "Anton", "Impact", "Arial Black", sans-serif; 
    font-size: 84px;
    line-height: 5.25rem;
}

h3 { 
    font-family: "Aldrich", "Trebuchet MS", "Arial", sans-serif; 
    font-size: 3.125em;
}

h4 { 
    font-family: "Aldrich", "Trebuchet MS", "Arial", sans-serif;  
}

p {
    font-size: 1.4em;
}

li {
    font-size: 1.4em;
}

a {
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}

nav, .ui { 
    font-family: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; 
    color: #002A8B;
}


/* ============================================
   FONT LOADING OPTIMIZATION
   ============================================ */
@font-face {
    font-family: 'Anton';
    font-display: swap;
}

@font-face {
    font-family: 'Aldrich';
    font-display: swap;
}

@font-face {
    font-family: 'Montserrat';
    font-display: swap;
}


/* ============================================
   COLOR UTILITY CLASSES
   ============================================ */
.hero-bg {
    background: #001453;
}

.shield-icon {
    width: 40px;
    height: 40px;
    background: #1e3a8a;
    clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
}

.shield-icon.bg-white {
    background: white;
}

/* Text Colors */
.text-blue-800 { color: #001453; }
.text-blue-200 { color: #dbeafe; }
.text-gray-600 { color: #4b5563; }
.text-gray-700 { color: #374151; }
.text-gray-900 { color: #111827; }
.text-gray-300 { color: #d1d5db; }
.text-gray-400 { color: #878B8E; }

/* Background Colors */
.bg-gray-100 { background-color: #f3f4f6; }
.bg-gray-300 { background-color: #DFE1E3; }
.bg-gray-400 { background-color: #878B8E; }
.bg-gray-800 { background-color: #535c62; }
.bg-gray-900 { background-color: #111827; }
.bg-blue-700 { background-color: #002A8B; }
.bg-blue-800 { background-color: #1e40af; }
.bg-blue-900 { background-color: #1e3a8a; }
.bg-red { background-color: #A50404; color: white; }

/* Font Utilities */
.font-black { font-weight: 900; }
.tracking-wide { letter-spacing: 0.025em; }
.leading-relaxed { line-height: 1.625; }


/* ============================================
   NAVIGATION
   ============================================ */
.navbar {
    background-color: #DFE1E3 !important;
    padding: 0;
    min-height: 80px;
}

.navbar-nav .nav-link {
    color: #4b5563 !important;
    font-weight: 500;
    font-family: "Montserrat", sans-serif;
    text-transform: uppercase;
    padding: 0.5rem 1rem;
    margin: 0 0.5rem;
}

.navbar-nav .nav-link:hover {
    color: #001453 !important;
}

.navbar-brand {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
    top: -25px;
}

.navbar-toggler {
    border: none;
    padding: 0.25rem 0.5rem;
}

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

.navbar-toggler-bars {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 24px;
    height: 18px;
}

.navbar-toggler-bar {
    display: block;
    width: 100%;
    height: 2px;
    background-color: #001453;
    border-radius: 1px;
    transition: transform 0.25s ease, opacity 0.25s ease;
}

.navbar-toggler[aria-expanded="true"] .navbar-toggler-bar:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
}

.navbar-toggler[aria-expanded="true"] .navbar-toggler-bar:nth-child(2) {
    opacity: 0;
}

.navbar-toggler[aria-expanded="true"] .navbar-toggler-bar:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
}

/* Logo */
.idefend-logo-header {
    height: 200px;
    width: auto;
    position: relative;
    top: 20px;
    z-index: 5;
}

/* Dropdown Menu */
.dropdown-menu {
    border: none;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    border-radius: 8px;
    background-color: #DFE1E3;
    margin-top: 0.5rem;
}

.dropdown-item {
    color: #4b5563;
    font-weight: 500;
    padding: 10px 20px;
    transition: all 0.3s ease;
    font-family: "Montserrat", sans-serif;
    font-size: .8em;
}

.dropdown-item:hover {
    background-color: #001453;
    color: white;
}

.dropdown-toggle::after {
    margin-left: 0.5em;
    vertical-align: 0.125em;
}

/* Navigation Mobile Adjustments */
@media (max-width: 991.98px) {
    .navbar {
        position: relative;
        overflow: visible;
        z-index: 1030;
        min-height: 56px;
    }

    .navbar > .container {
        position: relative;
        justify-content: center;
        overflow: visible;
        min-height: 56px;
        align-items: center;
    }

    .navbar-toggler {
        position: absolute;
        right: calc(var(--bs-gutter-x, 1.5rem) * 0.5);
        top: 1.15rem;
        z-index: 1040;
        transform: none;
    }

    .navbar-brand {
        position: absolute;
        left: 50%;
        top: 4px;
        transform: translateX(-50%);
        z-index: 1035;
        margin: 0;
        line-height: 0;
    }

    .navbar-collapse {
        width: 100%;
        margin-top: 0;
        padding-top: 4.25rem;
        padding-bottom: 1.5rem;
        background-color: #DFE1E3;
    }

    .navbar-collapse .navbar-nav {
        align-items: flex-start;
        margin-left: 0 !important;
        width: 100%;
    }

    .navbar-nav .nav-item {
        width: 100%;
        text-align: left;
    }

    .navbar-nav .nav-link {
        margin: 0;
        padding: 0.75rem 0;
    }

    .navbar-nav .nav-link:focus,
    .navbar-nav .nav-link:focus-visible,
    .navbar-nav .dropdown-toggle.show {
        color: #4b5563 !important;
        text-decoration: none !important;
        box-shadow: none;
        outline: none;
    }

    .nav-item.dropdown {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
    }

    .dropdown-menu {
        position: static !important;
        transform: none !important;
        display: none;
        float: none;
        width: auto;
        min-width: 0;
        background-color: transparent;
        box-shadow: none;
        border: none;
        border-radius: 0;
        border-left: 2px solid #002A8B;
        margin: 0.15rem 0 0.35rem 0.15rem;
        padding: 0.15rem 0 0.15rem 1.25rem;
        text-align: left;
    }

    .dropdown-menu.show {
        display: block;
    }

    .dropdown-item {
        color: #6b7280;
        font-size: 0.75em;
        font-weight: 500;
        padding: 0.45rem 0;
        text-transform: uppercase;
    }

    .dropdown-item:hover,
    .dropdown-item:focus {
        background-color: transparent;
        color: #001453;
    }

    .idefend-logo-header {
        height: 100px;
        width: auto;
        top: 0;
        position: relative;
        z-index: 1035;
    }
}


/* ============================================
   ANIMATIONS
   ============================================ */
/* Initial hidden states */
.animate-fade-up {
    opacity: 0;
    transform: translateY(50px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.animate-slide-left {
    opacity: 0;
    transform: translateX(-50px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.animate-slide-right {
    opacity: 0;
    transform: translateX(50px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.animate-scale-in {
    opacity: 0;
    transform: scale(0.8);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.animate-pop {
    opacity: 0;
    transform: scale(0.9);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

/* Active animation states */
.animate-fade-up.animate-in {
    opacity: 1;
    transform: translateY(0);
}

.animate-slide-left.animate-in {
    opacity: 1;
    transform: translateX(0);
}

.animate-slide-right.animate-in {
    opacity: 1;
    transform: translateX(0);
}

.animate-scale-in.animate-in {
    opacity: 1;
    transform: scale(1);
}

.animate-pop.animate-in {
    opacity: 1;
    transform: scale(1);
}

/* Hero animations - immediate load */
.hero-bg h1 {
    opacity: 0;
    transform: translateY(50px);
    animation: fadeInUp 1.2s ease-out 0.5s forwards;
}

.hero-bg h1 small {
    opacity: 0;
    transform: translateX(-30px);
    animation: slideInLeft 0.8s ease-out 1s forwards;
}

/* Keyframe definitions */
@keyframes fadeInUp {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes slideInLeft {
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Hover effects */
.big-cta-button:hover {
    transform: scale(1.05);
    transition: transform 0.3s ease;
}

img:not(.hero-deployment-bg-home__video):not(.hero-services__image):not(.img-no-hover):hover {
    transform: scale(1.02);
    transition: transform 0.3s ease;
}


/* ============================================
   CAROUSELS
   ============================================ */
/* Main Carousel with Outside Arrows */
.carousel-wrapper {
    position: relative;
    max-width: 1200px;
    max-height: 204px;
    margin: 0 auto;
    padding: 0 60px;
}

.carousel-wrapper .carousel,
.carousel-wrapper .carousel-inner,
.carousel-wrapper .carousel-item {
    height: 100%;
}

.carousel-wrapper .carousel-item img {
    max-height: 204px;
    width: auto;
    object-fit: contain;
}

.carousel-wrapper .carousel-control-prev,
.carousel-wrapper .carousel-control-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 45px;
    height: 45px;
    opacity: 1;
    transition: opacity 0.15s ease;
    background: none;
    border: 0;
    padding: 0;
    text-align: center;
  /*  background-color: white;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    */
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.carousel-wrapper .carousel-control-prev {
    left: 0;
}

.carousel-wrapper .carousel-control-next {
    right: 0;
}

.carousel-wrapper .carousel-control-prev-icon,
.carousel-wrapper .carousel-control-next-icon {
    width: 1.5rem;
    height: 1.5rem;
    background-size: 100% 100%;
}

/* Black SVG arrows */
.carousel-wrapper .carousel-control-prev-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ED9202'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e");
}

.carousel-wrapper .carousel-control-next-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ED9202'%3e%3cpath d='M4.646 1.646a.5.5 0 0 0 0 .708L10.293 8 4.646 13.646a.5.5 0 0 0 .708.708l6-6a.5.5 0 0 0 0-.708l-6-6a.5.5 0 0 0-.708 0z'/%3e%3c/svg%3e");
}

.carousel-wrapper .carousel-control-prev:hover,
.carousel-wrapper .carousel-control-next:hover {
    opacity: 0.8;
    background-color: #f8f9fa;
}

.carousel-wrapper .carousel-control-prev:focus,
.carousel-wrapper .carousel-control-next:focus {
    outline: 2px solid #0d6efd;
    outline-offset: 2px;
}

/* Carousel Responsive */
@media (max-width: 768px) {
    .carousel-wrapper {
        padding: 0 40px;
    }
    
    .carousel-wrapper .carousel-control-prev,
    .carousel-wrapper .carousel-control-next {
        width: 35px;
        height: 35px;
    }
}

@media (max-width: 576px) {
    .carousel-wrapper {
        padding: 0;
    }
    
    .carousel-wrapper .carousel-control-prev {
        left: 10px;
    }
    
    .carousel-wrapper .carousel-control-next {
        right: 10px;
    }
    
    .carousel-wrapper .carousel-control-prev,
    .carousel-wrapper .carousel-control-next {
        background-color: rgba(255, 255, 255, 0.9);
    }
}


/* ============================================
   MODALS
   ============================================ */
/* Modal Sizing */
@media (min-width: 992px) {
    .modal-lg {
        max-width: 80%;
    }
}

@media (min-width: 1920px) {
    .modal-lg {
        max-width: 1640px;
    }
}

/* Modal Content */
.modal-content {
    border: 10px solid #878B8E;
    border-radius: 0;
}

/* Modal Body */
.modal-body {
    position: relative;
    overflow: hidden;
}

.modal-body::before {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 450px;
    background-image: url('/assets/img/advanced_actions_bgd.jpg');
    background-size: cover;
    background-position: center top;
    background-repeat: no-repeat;
    z-index: 0;
    pointer-events: none;
}

.modal-body .row {
    position: relative;
    z-index: 1;
}

.modal-body .btn-close {
    position: relative;
    z-index: 10;
}

.modal-body p {
    font-family: "Montserrat", sans-serif;
    font-size: 18px;
    font-weight: 400;
}

/* Modal Backdrop */
.modal-backdrop {
    background-color: #001453;
}

.modal-backdrop.show {
    opacity: 0.89;
}

/* Modal Carousel Arrows */
.carousel .carousel-inner {
    width: 85%;
    margin: 0 auto;
}

.modal .carousel-control-prev,
.modal .carousel-control-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 45px;
    height: 45px;
    opacity: 1;
    background: none;
    border: 0;
    padding: 0;
}

.modal .carousel-control-prev {
    left: 0;
}

.modal .carousel-control-next {
    right: 0;
}

.modal .carousel-control-prev-icon,
.modal .carousel-control-next-icon {
    background-color: #001453;
    border-radius: 50%;
    width: 45px;
    height: 45px;
    background-size: 80%;
    background-position: center;
    background-repeat: no-repeat;
}

.modal .carousel-control-prev:hover .carousel-control-prev-icon,
.modal .carousel-control-next:hover .carousel-control-next-icon {
    background-color: #002A8B;
}

/* Modal Carousel Responsive */
@media (max-width: 576px) {
    .modal .carousel {
        padding: 0 50px;
    }
    
    .modal .carousel-control-prev,
    .modal .carousel-control-next {
        width: 35px;
        height: 35px;
    }
    
    .modal .carousel-control-prev-icon,
    .modal .carousel-control-next-icon {
        width: 35px;
        height: 35px;
    }
}


/* ============================================
   GENERIC COMPONENTS
   ============================================ */
.container-larger {
    max-width: 1600px;
}

.blue-box-reverse {
    background-color: #001453;
    color: white;
    width: auto;
    margin: 0 auto;
}

.headline-top-box {
    margin-bottom: 0;
}
h3.headline-top-box {
    color: #878B8E;
}

.headline-tag {
    font-family: "Aldrich", "Trebuchet MS", "Arial", sans-serif;
    font-size: 2.5em;
    line-height: 1.25em;
    text-transform: uppercase;
    color: #878b8e;
}

.icon-background-element-bottom-right {
    position: relative;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    background: url('/assets/img/Abouticonbkgd.webp') no-repeat;
    background-position: right bottom;
    background-size: 1480px auto;
    min-height: 52em;
    display: flex;
    z-index: -1;
    margin-top: -15em;
}

@media (max-width: 1500px) {
    .icon-background-element-bottom-right {
        background-size: 100% auto;
    }
}

@media (min-width: 1201px) and (max-width: 1699px) {
    .icon-background-element-bottom-right {
        margin-top: 1rem;
    }
}

@media (max-width: 600px) {
    .icon-background-element-bottom-right {
        min-height: 15em;
        margin-top: 0;
    }
}

.btn-primary {
    background-color: #001453;
    color: #fff;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}

.btn-primary:hover {
    background-color: #002A8B;
}

.big-cta-button {
    background-color: #002A8B;
}

a.big-cta-button {
    color: white;
    text-decoration: none;
}

a:hover.big-cta-button {
    text-decoration: underline;
}

a.big-cta-button .big-cta-button-title {
    font-family: "Anton", "Impact", "Arial Black", sans-serif; 
    font-size: 35px;
}

a.big-cta-button .big-cta-button-subtitle {
    font-family: "Aldrich", "Trebuchet MS", "Arial", sans-serif;
    font-size: 20px;
}

.hero-deployment-bg {
    position: relative;
    width: 100vw;
    min-height: 50em;
    margin-left: calc(-1 * (100vw - 100%)/2);
    margin-right: calc(-1 * (100vw - 100%)/2);
    background: linear-gradient(to top, rgba(0, 20, 83, 0.8) 0, rgba(0, 20, 83, 0) 4em);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: top center;
    padding-bottom: 48px;
    overflow: hidden;
}


/* ============================================
   HOME PAGE
   ============================================ */
.advanced-actions {
    border-bottom: 13px solid #001453;
    background-color: #fbb040;
}
.advanced-actions-banner-logo {
    background-image: url('/assets/img/advanced-actions-shield-wide.svg');
    background-repeat: no-repeat;
    background-position: center right;
    background-size: cover;
}
.hero-deployment-bg-home {
    position: relative;
    z-index: 1;
    width: 100%;
    height: min(70vh, var(--video-max-height));
    overflow: hidden;
    background-color: #001453;
}

.hero-deployment-bg-home__video,
.training-video-bg__video,
video {
    max-height: var(--video-max-height);
}

.hero-deployment-bg-home__video {
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    transform: translate(-50%, -50%);
    object-fit: cover;
    object-position: center center;
}

.training-video-bg {
    position: relative;
    width: 100%;
    height: min(56.25vw, var(--video-max-height));
    overflow: hidden;
    background-color: #001453;
}

.training-video-bg__video {
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    transform: translate(-50%, -50%);
    object-fit: cover;
    object-position: center center;
}

.into-solutions-block {
    /*
     * Raised INTO tab (~150×34px at ~1272px wide).
     * Tab left edge aligns with content; pulls up over the hero.
     */
    --into-solutions-max-width: 1600px;
    --into-solutions-inset: clamp(1.5rem, 4vw, 3.5rem);
    --into-solutions-content-left: calc(max(0px, (100vw - var(--into-solutions-max-width)) / 2) + var(--into-solutions-inset));
    --into-notch-width: 150px;
    --into-notch-height: 34px;
    --into-solutions-bg-color: #172357;
    --into-solutions-bg-image: url('/assets/img/iDefendbkgd-block-bg.jpg');
    --into-solutions-bg-position: center 48%;
    --into-solutions-bg-size: cover;
    position: relative;
    z-index: 2;
    isolation: isolate;
    overflow: visible;
    background: transparent;
    margin-top: calc(var(--into-notch-height) * -1);
    margin-left: calc(-1 * (100vw - 100%) / 2);
    margin-right: calc(-1 * (100vw - 100%) / 2);
    width: 100vw;
    color: #fff;
}

/* Single continuous background with raised left INTO tab */
.into-solutions-block::after {
    content: "";
    position: absolute;
    /* 1px overflow kills the hairline seam along the clip edge */
    top: -1px;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: -1;
    background-color: var(--into-solutions-bg-color);
    background-image: var(--into-solutions-bg-image);
    background-position: var(--into-solutions-bg-position);
    background-size: var(--into-solutions-bg-size);
    background-repeat: no-repeat;
    clip-path: polygon(
        0 var(--into-notch-height),
        var(--into-solutions-content-left) var(--into-notch-height),
        var(--into-solutions-content-left) 0,
        calc(var(--into-solutions-content-left) + var(--into-notch-width)) 0,
        calc(var(--into-solutions-content-left) + var(--into-notch-width)) var(--into-notch-height),
        100% var(--into-notch-height),
        100% 100%,
        0 100%
    );
    pointer-events: none;
}

/* No raised tab when INTO isn't present */
.into-solutions-block:not(:has(.into-solutions-block__tag)) {
    --into-notch-width: 0px;
    --into-notch-height: 0px;
    margin-top: 0;
}

.iDefendbkgd-iCapture-block {
    --into-solutions-bg-image: url('/assets/img/iDefendbkgd-block-bg.jpg');
    --into-solutions-bg-position: center center;
    --into-solutions-bg-size: cover;
    position: relative;
    top: 0;
    z-index: 2;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.iDefendbkgd-iCapture-block > .d-flex {
    position: relative;
    z-index: 2;
    padding-top: calc(var(--into-notch-height) + 0.35rem);
}

.iDefendbkgd-iCapture-block .into-solutions-block__logo {
    position: relative;
    top: auto;
    left: auto;
    display: block;
    width: 100%;
    max-width: 420px;
    height: auto;
    margin: 0 auto 0.75rem;
    padding: 0;
    transform: none !important;
}

.iDefendbkgd-iCapture-block .into-solutions-block__inner {
    margin-top: 0;
}

.iDefendbkgd-iCapture-block .into-solutions-block__container {
    flex: 0 1 auto;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

@media (min-width: 768px) {
    .iDefendbkgd-iCapture-block {
        /* Notch sized to 724px logo + pad (left/right/top); 548×107 intrinsic ratio */
        --icapture-logo-max-width: 724px;
        --icapture-notch-pad-top: 1.5rem;
        --icapture-notch-pad-x: 3rem;
        --icapture-logo-display-width: min(
            var(--icapture-logo-max-width),
            calc(92vw - (var(--icapture-notch-pad-x) * 2))
        );
        --into-notch-width: calc(var(--icapture-logo-display-width) + (var(--icapture-notch-pad-x) * 2));
        --into-notch-height: calc(
            (var(--icapture-logo-display-width) * 107 / 548) + var(--icapture-notch-pad-top)
        );
        --into-solutions-content-left: calc(50% - (var(--into-notch-width) / 2));
        margin-top: calc(var(--into-notch-height) * -1);
        margin-bottom: clamp(1.5rem, 3vw, 3rem);
        padding-bottom: clamp(1.25rem, 2.5vw, 2.5rem);
        top: 0;
        min-height: 0;
    }

    /* Logo stays in flow so the blue box height follows content; notch matches logo + pad */
    .iDefendbkgd-iCapture-block > .d-flex {
        position: relative;
        top: auto;
        left: auto;
        transform: none;
        z-index: 3;
        width: var(--into-notch-width);
        max-width: 100%;
        height: auto;
        min-height: var(--into-notch-height);
        margin: 0 auto;
        padding: var(--icapture-notch-pad-top) var(--icapture-notch-pad-x) 0;
        box-sizing: border-box;
        display: flex;
        align-items: flex-start;
        justify-content: center;
    }

    .iDefendbkgd-iCapture-block .into-solutions-block__logo {
        width: 100%;
        max-width: var(--icapture-logo-max-width);
        max-height: none;
        height: auto;
        margin: 0;
        object-fit: contain;
    }

    .iDefendbkgd-iCapture-block .into-solutions-block__container {
        padding-top: clamp(1.5rem, 2.5vw, 2.5rem);
        flex: 0 1 auto;
        padding-bottom: 0;
    }

    .iDefendbkgd-iCapture-block .into-solutions-block__inner {
        margin-top: 0;
    }

    .iDefendbkgd-iCapture-block .into-solutions-block__headline {
        font-size: clamp(1.9rem, 3vw, 2.7rem);
        line-height: 1.2;
    }

    .iDefendbkgd-iCapture-block .into-solutions-block__headline-rule {
        margin: 1rem auto;
    }

    .iDefendbkgd-iCapture-block .into-solutions-block__copy {
        font-size: 1.4em;
        line-height: 1.25;
        margin-top: 0.65rem;
    }
}

@media (min-width: 768px) and (max-width: 1599.98px) {
    .iDefendbkgd-iCapture-block {
        --icapture-logo-max-width: clamp(280px, 36vw, 420px);
        --icapture-notch-pad-x: 2rem;
        --icapture-notch-pad-top: 1.15rem;
    }
}


.into-solutions-block__container {
    max-width: var(--into-solutions-max-width);
    margin-inline: auto;
    padding: calc(var(--into-notch-height) + clamp(2rem, 3vw, 3.5rem)) var(--into-solutions-inset) clamp(2rem, 3vw, 3.5rem);
}
@media (min-width: 768px) and (max-width: 1400px) {
    .into-solutions-block__container {
        padding-bottom: 1rem;
    }
}

.into-solutions-block__left {
    padding-right: clamp(1.5rem, 3vw, 3rem);
}

.into-solutions-block__logo {
    position: absolute;
    top: 0;
    left: var(--into-solutions-content-left);
    z-index: 2;
    display: block;
    width: auto;
    max-width: min(700px, 55vw);
    height: auto;
    transform: translateY(-100%) !important;
}
.into-leadership-block__logo {
    max-width: min(900px, 55vw);
}

@media (max-width: 768px) {
    .into-leadership-block__logo {
        width: 95% !important;
        max-width: 95% !important;
        position: relative !important;
        top: auto !important;
        left: auto !important;
        transform: none !important;
    }
}

.into-solutions-block__tag {
    position: absolute;
    top: 20px;
    left: var(--into-solutions-content-left);
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: var(--into-notch-width);
    height: var(--into-notch-height);
    background: transparent;
    color: #fff;
    font-family: "Aldrich", "Trebuchet MS", "Arial", sans-serif;
    font-size: 36px;
    font-weight: 100;
    line-height: 1;
    letter-spacing: 0.02em;
    padding: 0;
    white-space: nowrap;
    transform: none;
}

/* Notch without label — keep shape, hide empty tag from layout/text */
.into-solutions-block__tag:empty {
    width: 0;
    height: 0;
    padding: 0;
    margin: 0;
    overflow: hidden;
    visibility: hidden;
    pointer-events: none;
}

.into-solutions-block__title {
    font-family: "Anton", "Impact", "Arial Black", sans-serif;
    margin: 0;
    color: #fff;
}

.into-solutions-block__rule {
    border-left: 1px solid rgba(255, 255, 255, 0.9);
    min-height: 100%;
    padding: 0;
}

.into-solutions-block__right {
    padding-left: clamp(1.5rem, 3vw, 3rem);
}

.into-solutions-block__headline {
    font-family: "Aldrich", "Trebuchet MS", "Arial", sans-serif;
    font-size: clamp(1.25rem, 2.2vw, 3.125rem);
    line-height: 1.2;
    text-transform: uppercase;
    color: #fff;
    margin: 0;
}

.into-solutions-block__headline-rule {
    width: min(95%);
    margin: 1.25rem auto;
    border: 0;
    border-top: 2px solid rgba(255, 255, 255, 0.9);
    opacity: 1;
}

.into-solutions-block__right img + .into-solutions-block__headline {
    margin-top: 1rem;
}

.into-solutions-block__copy {
    font-family: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    font-size: clamp(1.4rem, 1.35vw, 1.4em);
    line-height: 1.625;
    // margin-top: 1.5rem;
    color: #fff;
}

.into-solutions-block__link {
    color: #fff;
    font-weight: 700;
    text-decoration: none;
}

.into-solutions-block__link:hover {
    color: #fff;
    text-decoration: underline;
}

.uncommon-insight-section {
    margin-top: 20rem;
}

.security-solutions-tag {
    font-size: 3.125em;
    color: #878B8E;
    margin-bottom: 0;
    line-height: 0.7;
    padding-top: 0.3em;
}

@media (min-width: 1700px) {
    .security-solutions--half {
        flex: 0 0 auto;
        width: 50%;
    }
}

.security-solutions hr {
    color: #878B8E;
    border-top-width: 3px;
}

/* ============================================
   ABOUT PAGE
   ============================================ */
.about-content-width {
    --about-content-max-width: 1600px;
    --about-content-inset: clamp(1.5rem, 4vw, 3.5rem);
    max-width: var(--about-content-max-width);
    margin-inline: auto;
    padding-inline: var(--about-content-inset);
    width: 100%;
}

@media (min-width: 769px) {
    .about-content-width {
        padding-top: 4rem !important;
    }
}

.into-solutions-block .about-content-width {
    padding-block: clamp(2.5rem, 3vw, 4.5rem);
}

.leadership-team hr {
    /* margin: .5rem; */
}

.leadership-team h2 {
    font-size: 3em;
}

.leadership-team h2 small {
    font-size: .6em;
    font-family: "Aldrich", "Trebuchet MS", "Arial", sans-serif;
}

.leadership-bio-name {
    line-height: 0.8;
    margin: 0;
}

.leadership-bio-name__first,
.leadership-bio-name__second {
    display: block;
    line-height: 0.8;
}

.leadership-bio-name__first {
    font-size: 50px;
    margin-bottom: 12px;
}

.leadership-bio-name__second {
    font-size: 40px;
}

.leadership-team h2.leadership-bio-name small {
    font-size: 0.5em;
    font-weight: normal;
    vertical-align: baseline;
    margin-left: 0.4em;
}

.leadership-bio__rule {
    width: 90%;
    margin: 0.2rem 0 1rem;
    border: 0;
    border-top: 1px solid #DFE1E3;
    opacity: 1;
}

@media (max-width: 767.98px) {
    .leadership-bio:not(:last-child) {
        border-bottom: 3px solid #DFE1E3;
    }
}

.leadership-bio__name {
    order: 1;
}

.leadership-bio__image {
    order: 2;
}

.leadership-bio__body {
    order: 3;
}

@media (min-width: 768px) {
    .leadership-bio {
        display: grid;
        grid-template-columns: 2fr 1fr;
        grid-template-areas:
            "name image"
            "body image";
        align-items: start;
    }

    .leadership-bio--image-left {
        grid-template-columns: 1fr 2fr;
        grid-template-areas:
            "image name"
            "image body";
    }

    /* Bootstrap col-* widths shrink grid children; fill the track instead */
    .leadership-bio__name,
    .leadership-bio__image,
    .leadership-bio__body {
        width: 100%;
        max-width: none;
    }

    .leadership-bio__name {
        grid-area: name;
        order: unset;
    }

    .leadership-bio__image {
        grid-area: image;
        order: unset;
        align-self: stretch;
    }

    .leadership-bio__body {
        grid-area: body;
        order: unset;
    }
}

.culture-based-headline {
    border-top: 7px solid #001453;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.culture-based-headline__tag {
    display: inline-block;
    background-color: #001453;
    color: #fff;
    font-family: "Aldrich", "Trebuchet MS", "Arial", sans-serif;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: 0.04em;
    padding: 0.35em 0.6em;
    margin: 0;
}

.culture-based-headline__title {
    line-height: 1.2;
    margin-top: 0;
}

.staff-bio-title h2 {
    font-size: 4em;
    text-align: left;
}

.staff-bio-title h4 {
    font-size: 1.5em;
    text-align: left;
}

.staff-bio-inside-padding {
    padding: 0em 3em 0em;
}

.contact-special-footer {
    border-top-left-radius: 2rem;
    border-top-right-radius: 2rem;
}

.contact-special-footer--overlap {
    position: relative;
    z-index: 2;
    margin-top: -2rem;
}

.contact-special-footer--flat {
    border-top: 2px solid #002A8B;
}

.contact-special-footer__link {
    color: inherit;
}

.contact-special-footer__link:hover {
    color: inherit;
}

.contact-special-footer h4,
.contact-special-footer__text {
    font-family: "Aldrich", "Trebuchet MS", "Arial", sans-serif;
    text-align: center;
    margin: 0;
    font-size: 1.5rem;
    line-height: 1.35;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

@media (max-width: 575.98px) {
    .contact-special-footer--flat .contact-special-footer__text {
        font-size: clamp(0.7rem, 2.8vw, 0.875rem);
        line-height: 1.45;
        max-width: 20rem;
        margin-inline: auto;
        text-wrap: balance;
        hyphens: auto;
    }
}


/* ============================================
   TEAM PROFILE
   ============================================ */
.team-profile {
    --team-profile-photo-width: clamp(12rem, 28vw, 17.5rem);
    --team-profile-photo-half-height: calc(var(--team-profile-photo-width) * 517 / 900);
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: var(--team-profile-photo-half-height) 3px auto;
    background-color: #DFE1E3;
}

.team-profile__top {
    grid-column: 1;
    grid-row: 1;
    background-color: #fff;
}

.team-profile__divider {
    grid-column: 1;
    grid-row: 2;
    height: 3px;
    background-color: #001453;
    position: relative;
    z-index: 1;
}

.team-profile__body {
    grid-column: 1;
    grid-row: 3;
    background-color: #DFE1E3;
    padding-top: calc(var(--team-profile-photo-half-height) + 1.5rem);
    padding-bottom: clamp(3rem, 6vw, 5rem);
}

.team-profile__inner {
    max-width: 60rem;
    margin: 0 auto;
    padding: 0 1.5rem;
    text-align: center;
}

.team-profile__photo {
    grid-column: 1;
    grid-row: 1;
    display: block;
    width: var(--team-profile-photo-width);
    aspect-ratio: 450 / 517;
    height: auto;
    margin: 0;
    border: 3px solid #001453;
    object-fit: cover;
    justify-self: center;
    align-self: end;
    transform: translateY(50%);
    position: relative;
    z-index: 2;
    top: 10rem;
}

.team-profile__name {
    font-size: clamp(2.5rem, 6vw, 4.5rem);
    line-height: 1;
    margin: 0 0 0.35rem;
}

.team-profile__title {
    font-family: "Aldrich", "Trebuchet MS", "Arial", sans-serif;
    font-size: clamp(0.85rem, 1.8vw, 1.1rem);
    color: #878B8E;
    letter-spacing: 0.04em;
    margin: 0 0 1.25rem;
}

.team-profile__rule {
    width: min(100%, 36rem);
    margin: 0 auto 1.5rem;
    border: 0;
    border-top: 1px solid #878B8E;
    opacity: 1;
}

.team-profile__bio {
    max-width: 56rem;
    margin: 0;
    text-align: left;
    font-size: 1.4em;
    line-height: 1.625;
    color: #01030A;
}


/* ============================================
   SERVICES PAGE
   ============================================ */
.hero-services {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 100%;
    background-color: #001453;
}

.hero-services:has(.hero-services__video) {
    aspect-ratio: 1920 / 712;
    overflow: hidden;
}

.hero-services picture {
    display: block;
    width: 100%;
    max-width: 100%;
}

.hero-services__image {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
}

.hero-services__video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-height: none;
    object-fit: cover;
    object-position: center center;
}

@media (max-width: 767.98px) {
    .hero-services {
        width: 100%;
        max-width: 100vw;
        margin-left: 0;
        margin-right: 0;
    }

    .hero-services:has(.hero-services__video) {
        aspect-ratio: 394 / 635;
    }

    .hero-services picture,
    .hero-services__image {
        width: 100%;
        max-width: 100vw;
    }
    .into-solutions-block--services {
        --into-notch-width: 112px;
        --into-notch-height: 31px;
        --into-solutions-content-left: calc(50% - (var(--into-notch-width) / 2));
        --into-solutions-bg-position: left top;
        --into-solutions-bg-size: cover;
        overflow: visible;
        margin-top: calc(var(--into-notch-height) * -1);
        padding: 0 var(--into-solutions-inset) clamp(1.5rem, 4vw, 2.5rem);
    }

    .iDefendbkgd-iCapture-block.into-solutions-block--services {
        --into-solutions-bg-image: url('/assets/img/iDefendbkgd-block-bg.jpg');
        --into-solutions-bg-size: cover;
        --into-solutions-bg-position: center center;
        min-height: 0;
        margin-top: -3.2rem;
        margin-bottom: 2rem;
    }

    .into-solutions-block--services .into-solutions-block__logo {
        position: relative;
        top: auto;
        left: auto;
        display: block;
        box-sizing: border-box;
        width: 90%;
        max-width: 90%;
        height: auto;
        margin: 0;
        padding: calc(var(--into-notch-height) + 1.25rem) 0 0.15rem;
        transform: none !important;
    }

    .iDefendbkgd-iCapture-block .into-solutions-block__logo {
        width: 100%;
        max-width: 420px;
        margin: 0 auto 0.75rem;
        padding: 0;
    }

    .iDefendbkgd-iCapture-block > .d-flex {
        padding-top: calc(var(--into-notch-height) + 1rem);
    }

    .into-solutions-block--services > picture {
        display: block;
        width: 100%;
    }

    .into-solutions-block--services .into-solutions-block__tag {
        position: static;
        display: block;
        width: auto;
        height: auto;
        text-align: left;
        background: none;
        font-size: 29px;
        font-weight: 100;
        line-height: 1;
        padding: 0 0 0.25rem;
        margin: 0;
        transform: none;
    }

    .into-solutions-block--services .into-solutions-block__container {
        padding: 0;
    }

    .into-solutions-block--services .into-solutions-block__left {
        padding-right: 0;
        padding-top: 0;
    }

    .into-solutions-block--services .into-solutions-block__title {
        text-align: left;
        margin-bottom: 1.25rem;
    }

    .into-solutions-block__title--services-mobile {
        padding-top: 4rem;
    }

    .into-solutions-block--services .into-solutions-block__rule {
        border-left: none;
    }

    .into-solutions-block--services .into-solutions-block__right {
        margin-top: 0;
        padding-top: 1.25rem;
        padding-bottom: 0;
        border-top: 1px solid rgba(255, 255, 255, 0.55);
    }

    .into-solutions-block--services .into-solutions-block__headline {
        text-align: left;
        font-size: clamp(1rem, 4.2vw, 1.25rem);
        line-height: 1.35;
        text-transform: uppercase;
    }

    .into-solutions-block--services .into-solutions-block__copy {
        text-align: left;
        font-size: 0.9375rem;
        line-height: 1.6;
        margin-top: 1.25rem;
    }
}

.gray-infoblock {
    font-family: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; 
    padding: 3em 15em!important;
    color: #01030A;
}

.gray-infoblock p {
    font-size: 16px;
}

.gray-infoblock ul {
    padding-left: 1.5rem;
}

.gray-infoblock li {
    background: url('/assets/img/IDefendicon.png') no-repeat left top;
    margin-bottom: 2rem;
    padding: 0px 0px 3px 30px;
    list-style: none;
    font-size: 16px;
    font-weight: bold;
}

.gray-infoblock li::marker {
    margin-top: -3em;
    vertical-align: top;
}

.products-and-services {
    line-height: 1.25rem;
}

.products-and-services-container {
    max-width: 1080px;
}

.products-and-services-title h2 {
    font-size: 3.5em;
}

.products-and-services-title h4 {
    margin-bottom: 0;
}

.products-and-services-item {
    font-family: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; 
}

.products-and-services-item h2 {
    font-size: 45px;
}

.products-and-services-item li {
    font-size: 16px;
    color: #01030A;
}

@media (min-width: 768px) {
    .services-statement-divider {
        border-left: 1px solid #001453;
        padding-left: clamp(1.5rem, 3vw, 3rem);
    }
}

@media (max-width: 767px) {
    .services-statement-divider {
        margin-top: 1.25rem;
        padding-left: 24px;
        padding-right: 24px;
    }

    .services-statement-divider p {
        border-top: 3px solid #001453;
        padding-top: 1.25rem;
        padding-left: 0;
        padding-right: 0;
    }

    .clock-shield {
        text-align: center;
        padding-bottom: 3rem;
    }
}

.esu-recon-lists__backgrounds {
    display: none;
}

@media (min-width: 768px) {
    .esu-recon-lists__backgrounds {
        display: flex;
        position: absolute;
        inset: 0;
        z-index: 0;
    }

    .esu-recon-lists__bg {
        flex: 1;
    }

    .esu-recon-lists__bg--left {
        background-color: #F0F4F7;
    }

    .esu-recon-lists__bg--right {
        background-color: #DFE1E3;
    }

    .esu-recon-lists .container {
        z-index: 1;
    }

    .esu-recon-lists {
        overflow: visible;
    }

    .esu-recon-lists__col--right {
        position: relative;
        z-index: 1;
    }

    .esu-recon-lists__col--right::before {
        content: "";
        position: absolute;
        top: 0;
        bottom: -8rem;
        left: 0;
        right: calc(50% - 50vw);
        z-index: -1;
        pointer-events: none;
    }
}

@media (max-width: 767px) {
    .esu-recon-lists__col {
        margin-left: calc(-1 * (100vw - 100%) / 2);
        margin-right: calc(-1 * (100vw - 100%) / 2);
        padding-left: calc((100vw - 100%) / 2 + var(--bs-gutter-x, 0.75rem));
        padding-right: calc((100vw - 100%) / 2 + var(--bs-gutter-x, 0.75rem));
    }

    .esu-recon-lists__col--left {
        background-color: #F0F4F7;
    }

    .esu-recon-lists__col--right {
        background-color: #DFE1E3;
        padding-left: 0;
        padding-right: 0;
    }

    /* Two list columns: read as one continuous list */
    .esu-recon-lists__col--left:has(> ul),
    .esu-recon-lists__col--right:has(> ul) {
        background-color: transparent;
        padding-left: calc((100vw - 100%) / 2 + var(--bs-gutter-x, 0.75rem));
        padding-right: calc((100vw - 100%) / 2 + var(--bs-gutter-x, 0.75rem));
    }

    .esu-recon-lists__col--left:has(> ul) {
        padding-bottom: 0;
    }

    .esu-recon-lists__col--right:has(> ul) {
        padding-top: 0;
    }

    .esu-recon-lists__col--left:has(> ul) ul {
        margin-bottom: 0;
    }

    .esu-recon-lists__col--right:has(> ul) ul {
        margin-top: 0;
    }

    /* Image column: pad above, tuck bottom under contact bar */
    .esu-recon-lists {
        overflow: visible;
    }

    .esu-recon-lists__col--right:has(img),
    .esu-recon-lists__col--right:has(picture) {
        position: relative;
        z-index: 1;
        margin-top: 1.5rem;
        padding-bottom: -2rem;
        margin-bottom: 0;
    }

    .esu-recon-lists__col--right:has(img) img,
    .esu-recon-lists__col--right:has(picture) img {
        display: block;
        width: 100%;
        height: auto;
    }

    .esu-recon-lists + .contact-special-footer--overlap {
        margin-top: -2.5rem;
    }
}

@media (min-width: 768px) {
    .icapture-control-room__image-col {
        padding-right: 0;
    }

    .icapture-control-room__image {
        position: absolute;
        top: 0;
        right: calc(50% - 50vw);
        bottom: 0;
        width: 50vw;
        max-width: none;
        object-fit: cover;
        object-position: center;
    }
}

.service-detail-block {
    margin: 0 auto;
    padding: 3.5rem 1.5rem;
    text-align: center;
    color: #01030A;
}

.service-detail-block__divider {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 2rem;
}

.service-detail-block__line {
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    height: 1px;
    background-color: #878B8E;
    transform: translateY(-50%);
}

.service-detail-block__icon-wrap {
    position: relative;
    z-index: 1;
    display: inline-flex;
    padding: 0 1rem;
    background-color: #fff;
}

.service-detail-block__icon {
    width: 110px;
    height: 110px;
    border-radius: 50%;
    object-fit: cover;
    filter: grayscale(100%);
}

.service-detail-block__title {
    font-size: 3rem;
    line-height: 1.1;
    margin-bottom: 1.5rem;
}

.service-detail-block__summary {
    font-size: 16px;
    line-height: 1.6;
    max-width: 840px;
    margin: 0 auto 2rem;
}

.service-detail-block__list {
    display: inline-block;
    max-width: 100%;
    box-sizing: border-box;
    margin: 0;
    padding-left: 1.25rem;
    text-align: left;
    list-style-type: square;
}

.service-detail-block__list li {
    font-size: 16px;
    font-weight: 700;
    color: #01030A;
    margin-bottom: 0.75rem;
    overflow-wrap: break-word;
    hyphens: auto;
}

.service-detail-block__list li:last-child {
    margin-bottom: 0;
}

.icapture-software-box {
    background: url('/assets/img/software-box-bg.jpg') center center / cover no-repeat;
    border: 6px solid #001453;
}

@media (max-width: 767px) {
    .service-detail-block {
        padding: 2.5rem 1rem;
    }

    .service-detail-block__title {
        font-size: 2em;
    }

    .service-detail-block__icon {
        width: 90px;
        height: 90px;
    }

    .icapture-software-box {
        border: none;
        background-image: url('/assets/img/software-box-bg-mobile.jpg');
        padding-top: 0 !important;
    }

    .team-profile__photo {
        top: 7rem;
    }
}

/* Special Operations */
.hero-bg-special-ops {
    background: url('/assets/img/SpecialOps-Hero-BG.jpg') center center / cover no-repeat;
    margin-left: calc(-1 * (100vw - 100%)/2);
    margin-right: calc(-1 * (100vw - 100%)/2);
    width: 100vw;
}

.hero-bg-special-ops .container {
    min-height: 40em;
}

.hero-bg-special-ops .hero-text-block h1 {
    width: 40%;
}

.mini-head-text-block {
    margin-top: 3em;
    margin-bottom: 3em;
}

.mini-head-text-block h2 {
    font-size: 5.625em;
    line-height: 1em;
}

.mini-head-text-block h2 small {
    font-family: "Aldrich", "Trebuchet MS", "Arial", sans-serif;
    font-size: .5em;
    color: #878b8e;
    line-height: 1em;
}

.mini-head-text-block .headline-tag {
    font-size: 2em;
    color: white;
    line-height: 1em;
    font-weight: light;
}


/* ============================================
   CONTACT PAGE
   ============================================ */
.hero-bg-contact {
    border-bottom: none;
    background: white;
    padding-left: 0;
    padding-right: 0;
    margin-left: 0;
    margin-right: 0;
    width: 100%;
}

.hero-bg-contact .hero-text-block {
    color: white;
}

.hero-bg-contact-shield {
    background-color: unset;
    background: url('/assets/img/shild-bg.webp') no-repeat center top;
    background-size: 1245px auto;
    padding-bottom: 18em;
    padding-top: 13em;
}

.contact-info img {
    width: 65%;
    margin: 0 1em 2em;
}

.contact-info a {
    color: #001453;
}

.contact-info p {
    margin-top: .75em;
    font-size: 1.75em;
    color: #001453;
}

.contact-form span {
    color: red;
}


/* ============================================
   RESPONSIVE - MOBILE
   ============================================ */
@media (max-width: 768px) {
    .hero-deployment-bg-home__video {
        object-position: center bottom;
    }

    .training-video-bg {
        height: auto;
    }

    .training-video-bg__video {
        position: static;
        top: auto;
        left: auto;
        min-width: 0;
        min-height: 0;
        width: 100%;
        height: auto;
        max-height: none;
        transform: none;
        object-fit: contain;
        object-position: center center;
        display: block;
    }
    
    .advanced-actions .advanced-actions-content {
        margin-top: 0;
    }

    .advanced-actions-banner-logo {
        background-image: url('/assets/img/advanced-actions-shield-mobile.png');
        background-position: center top;
        padding-bottom: 11em;
        max-height: unset;
    }

    .advanced-actions-banner-logo img {
        padding: 2em 0;
        max-height: unset!important;
        max-width: 70%;
    }

    .hero-text-block {
        padding-top: 0;
        margin-top: 0;
    }

    .into-solutions-block {
        --into-notch-width: 112px;
        --into-notch-height: 31px;
        --into-solutions-content-left: calc(50% - (var(--into-notch-width) / 2));
        --into-solutions-bg-position: center top;
        --into-solutions-inset: 20px;
        margin-top: calc(var(--into-notch-height) * -1);
    }

    .into-solutions-block__inner {
        flex-direction: column;
    }

    .into-solutions-block > picture {
        display: block;
        width: 100%;
    }

    .into-solutions-block__logo,
    .into-leadership-block__logo {
        position: relative;
        top: auto;
        left: auto;
        display: block;
        box-sizing: border-box;
        width: 90%;
        max-width: 90%;
        height: auto;
        padding: calc(var(--into-notch-height) + 1.25rem) 24px 0.15rem;
        transform: none !important;
        z-index: 2;
    }

    .into-solutions-block__tag {
        position: static;
        display: block;
        width: auto;
        height: auto;
        padding: 0 24px 0.25rem;
        background: none;
        font-size: 29px;
        text-align: left;
        transform: none !important;
    }

    .into-solutions-block__tag:empty {
        display: none;
    }

    .into-solutions-block__container {
        padding-top: 0;
        padding-bottom: 0;
    }

    .into-solutions-block__left,
    .into-solutions-block__right {
        padding-left: 0;
        padding-right: 0;
    }

    .into-solutions-block__left {
        padding-top: 0;
    }

    .into-solutions-block__rule {
        border-left: none;
    }

    .into-solutions-block__right {
        margin-top: 1.5rem;
        padding-top: 1.5rem;
        padding-bottom: 3rem;
        border-top: 1px solid rgba(255, 255, 255, 0.9);
    }

    .into-solutions-block__title {
        text-align: left;
    }

    .into-solutions-block__copy {
        font-size: 14px;
        line-height: 16px;
    }

    .fs-5 {
        font-size: 13px!important;
        line-height: 15px;
        padding-left: 24px;
        padding-right: 24px;
    }

    .uncommon-insight-section {
        margin-top: 3rem;
    }

    .about-content-width {
        padding-top: 1rem!important;
    }

    .contact-special-footer__text {
        font-size: 10px;
        line-height: 10px;
    }

    h3.headline-top-box {
        text-align: center;
    }

    .leadership-team h2.leadership-bio-name small {
        display: block;
        margin-left: 0;
        margin-top: 15px;
        line-height: 20px;
    }

    .leadership-bio-name__first,
    .leadership-bio-name__second {
        text-align: left;
    }

    .leadership-bio__name {
        padding-top: 0 !important;
    }
    
    .hero-bg h1 {
        font-size: 3em;
        text-align: center;
    }
    
    .hero-bg h1 small {
        font-size: 0.7em;
    }
    
    h2 {
        font-size: 45px;
        line-height: 45px;
        text-align: center;
    }
    
    h3 {
        font-size: 18px;
        line-height: 18px;
    }
    
    .idefend-logo-mid {
        width: 100%;
        max-width: 200px;
        margin: 0 auto;
        float: left;
    }
    
    .special-operations-cta {
        top: 10px;
    }
    
    a.big-cta-button .big-cta-button-title {
        font-size: 18px;
    }
    
    a.big-cta-button .big-cta-button-subtitle {
        font-size: 16px;
    }
    
    .big-cta-button {
        padding: 10px 20px!important;
        font-size: 16px;
    }
    
    .security-solutions {
        padding-top: 1em;
    }
    
    .security-solutions-tag {
        font-size: 1.5em;
        text-align: center;
    }

    footer {
        text-align: center;
    }
}

@media (min-width: 1081px) {
    .hero-bg-contact-shield {
        background-size: 1920px auto;
        padding-top: 48em;
        margin-top: -35em;
    }
}

/* Modal transition override */
.modal.no-animation,
.modal.no-animation .modal-dialog {
    transition: none !important;
}

.modal.no-animation.fade {
    opacity: 1 !important;
}

/* ============================================
   NETWORK MAP
   ============================================ */
@property --ripple-offset {
  syntax: "<length>";
  inherits: false;
  initial-value: 0px;
}

.network-map {
  --blue: #0648b8;
  --line: var(--blue);

  container-type: inline-size;
  position: relative;
  width: 100%;
  max-width: 1400px;
  margin: 5rem auto 0;
  aspect-ratio: 1400 / 1000;
  overflow: visible;
}

.network-lines {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  pointer-events: none;
}

.network-lines line {
  stroke: var(--line);
  stroke-width: clamp(2px, 0.22vw, 3px);
  stroke-linecap: round;
}

.network-node {
  position: absolute;
  z-index: 2;
  transform: translate(-50%, -50%);
  padding: 0;
  border: 0;
  background: transparent;
  appearance: none;
  cursor: pointer;
  text-decoration: none;
  color: inherit;
  --node-size: clamp(219px, 28cqw, 438px);
  --photo-size: 58%;
  --ring-gap: clamp(9px, 1.3cqw, 16px);
  --ring-outer: 98%;
  --ring-dur: 1s;
  --ring-delay: 0s;
}

.node-license {
  left: 31%;
  top: 21%;
}

.node-security {
  left: 69%;
  top: 21%;
}

.node-building {
  left: 18%;
  top: 54%;
}

.node-phone {
  left: 82%;
  top: 54%;
}

.node-operator {
  left: 50%;
  top: 75%;
  --node-size: clamp(280px, 38cqw, 560px);
  --photo-size: 67%;
  --ring-outer: 97%;
}

.rings {
  position: relative;
  width: var(--node-size);
  aspect-ratio: 1;
  border-radius: 50%;
  display: grid;
  place-items: center;
}

.rings::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  --ring-base: calc(var(--photo-size) / 2 + 2px);
  --ripple-offset: 0px;
  --g1: var(--ring-gap);
  --g2: calc(var(--ring-gap) * 1.1);
  --g3: calc(var(--ring-gap) * 1.22);
  --g4: calc(var(--ring-gap) * 1.34);
  --g5: calc(var(--ring-gap) * 1.48);
  --g6: calc(var(--ring-gap) * 1.62);
  --g7: calc(var(--ring-gap) * 1.76);
  --g8: calc(var(--ring-gap) * 1.9);
  --g9: calc(var(--ring-gap) * 2.05);
  --g10: calc(var(--ring-gap) * 2.2);
  --g11: calc(var(--ring-gap) * 2.35);
  --g12: calc(var(--ring-gap) * 2.5);
  --r1-base: var(--ring-base);
  --r2-base: calc(var(--r1-base) + var(--g1));
  --r3-base: calc(var(--r2-base) + var(--g2));
  --r4-base: calc(var(--r3-base) + var(--g3));
  --r5-base: calc(var(--r4-base) + var(--g4));
  --r6-base: calc(var(--r5-base) + var(--g5));
  --r7-base: calc(var(--r6-base) + var(--g6));
  --r8-base: calc(var(--r7-base) + var(--g7));
  --r9-base: calc(var(--r8-base) + var(--g8));
  --r10-base: calc(var(--r9-base) + var(--g9));
  --r11-base: calc(var(--r10-base) + var(--g10));
  --r12-base: calc(var(--r11-base) + var(--g12));
  --r1: calc(var(--r1-base) + var(--ripple-offset));
  --r2: calc(var(--r2-base) + var(--ripple-offset));
  --r3: calc(var(--r3-base) + var(--ripple-offset));
  --r4: calc(var(--r4-base) + var(--ripple-offset));
  --r5: calc(var(--r5-base) + var(--ripple-offset));
  --r6: calc(var(--r6-base) + var(--ripple-offset));
  --r7: calc(var(--r7-base) + var(--ripple-offset));
  --r8: calc(var(--r8-base) + var(--ripple-offset));
  --r9: calc(var(--r9-base) + var(--ripple-offset));
  --r10: calc(var(--r10-base) + var(--ripple-offset));
  --r11: calc(var(--r11-base) + var(--ripple-offset));
  --r12: calc(var(--r12-base) + var(--ripple-offset));
  background: radial-gradient(
    circle,
    transparent var(--r1),
    rgba(72, 72, 72, 0.95) var(--r1),
    rgba(72, 72, 72, 0.95) calc(var(--r1) + 1px),
    transparent calc(var(--r1) + 1px),
    transparent var(--r2),
    rgba(98, 98, 98, 0.9) var(--r2),
    rgba(98, 98, 98, 0.9) calc(var(--r2) + 1px),
    transparent calc(var(--r2) + 1px),
    transparent var(--r3),
    rgba(122, 122, 122, 0.84) var(--r3),
    rgba(122, 122, 122, 0.84) calc(var(--r3) + 1px),
    transparent calc(var(--r3) + 1px),
    transparent var(--r4),
    rgba(148, 148, 148, 0.76) var(--r4),
    rgba(148, 148, 148, 0.76) calc(var(--r4) + 1px),
    transparent calc(var(--r4) + 1px),
    transparent var(--r5),
    rgba(172, 172, 172, 0.68) var(--r5),
    rgba(172, 172, 172, 0.68) calc(var(--r5) + 1px),
    transparent calc(var(--r5) + 1px),
    transparent var(--r6),
    rgba(192, 192, 192, 0.6) var(--r6),
    rgba(192, 192, 192, 0.6) calc(var(--r6) + 1px),
    transparent calc(var(--r6) + 1px),
    transparent var(--r7),
    rgba(208, 208, 208, 0.52) var(--r7),
    rgba(208, 208, 208, 0.52) calc(var(--r7) + 1px),
    transparent calc(var(--r7) + 1px),
    transparent var(--r8),
    rgba(222, 222, 222, 0.44) var(--r8),
    rgba(222, 222, 222, 0.44) calc(var(--r8) + 1px),
    transparent calc(var(--r8) + 1px),
    transparent var(--r9),
    rgba(232, 232, 232, 0.38) var(--r9),
    rgba(232, 232, 232, 0.38) calc(var(--r9) + 1px),
    transparent calc(var(--r9) + 1px),
    transparent var(--r10),
    rgba(240, 240, 240, 0.32) var(--r10),
    rgba(240, 240, 240, 0.32) calc(var(--r10) + 1px),
    transparent calc(var(--r10) + 1px),
    transparent var(--r11),
    rgba(246, 246, 246, 0.26) var(--r11),
    rgba(246, 246, 246, 0.26) calc(var(--r11) + 1px),
    transparent calc(var(--r11) + 1px),
    transparent var(--r12),
    rgba(250, 250, 250, 0.2) var(--r12),
    rgba(250, 250, 250, 0.2) calc(var(--r12) + 1px),
    transparent calc(var(--r12) + 1px)
  );
  -webkit-mask: radial-gradient(
    circle,
    transparent calc(var(--photo-size) / 2 + 1px),
    #000 calc(var(--photo-size) / 2 + 2px),
    #000 calc(var(--ring-outer) - 3%),
    transparent var(--ring-outer)
  );
  mask: radial-gradient(
    circle,
    transparent calc(var(--photo-size) / 2 + 1px),
    #000 calc(var(--photo-size) / 2 + 2px),
    #000 calc(var(--ring-outer) - 3%),
    transparent var(--ring-outer)
  );
  opacity: 0.9;
  transform-origin: center;
}

.network-node.ring-anim-a .rings::before {
  animation: ringRippleA var(--ring-dur) linear infinite;
  animation-delay: var(--ring-delay);
}

.network-node.ring-anim-b .rings::before {
  animation: ringRippleB var(--ring-dur) ease-out infinite;
  animation-delay: var(--ring-delay);
}

.network-node.ring-anim-c .rings::before {
  animation: ringRippleC var(--ring-dur) cubic-bezier(0.33, 0, 0.2, 1) infinite;
  animation-delay: var(--ring-delay);
}

.network-node:hover .rings::before,
.network-node:focus-within .rings::before,
.network-node:active .rings::before {
  animation: none;
  --ripple-offset: 0px;
  opacity: 0.9;
}

.network-map .photo {
  position: relative;
  z-index: 2;
  display: block;
  width: var(--photo-size);
  aspect-ratio: 1;
  border-radius: 50%;
  --photo-border: clamp(5px, 0.75vw, 11px);
  --photo-inner-stroke: clamp(2px, 0.25vw, 3px);
  border: var(--photo-border) solid var(--blue);
  box-shadow: inset 0 0 0 var(--photo-inner-stroke) #fff;
  background-color: #111;
  background-size: cover;
  background-position: center;
  overflow: hidden;
}

.node-security .photo {
  background-image: url("/assets/img/iDefend-officer.png");
}

.node-operator .photo {
  background-image: url("/assets/img/iDefend-operator.png");
}

.node-license .photo {
  background-image: url("/assets/img/iDefend-car.png");
}

.node-building .photo {
  background-image: url("/assets/img/iDefend-warehouse.png");
}

.node-phone .photo {
  background-image: url("/assets/img/iDefend-phone.png");
}

@keyframes ringRippleA {
  0% {
    --ripple-offset: 0px;
    opacity: 0.92;
  }

  100% {
    --ripple-offset: calc(var(--ring-gap) * 4.5);
    opacity: 0;
  }
}

@keyframes ringRippleB {
  0% {
    --ripple-offset: 0px;
    opacity: 0.9;
  }

  100% {
    --ripple-offset: calc(var(--ring-gap) * 5.5);
    opacity: 0;
  }
}

@keyframes ringRippleC {
  0% {
    --ripple-offset: 0px;
    opacity: 0.88;
  }

  100% {
    --ripple-offset: calc(var(--ring-gap) * 3.8);
    opacity: 0;
  }
}

@media (max-width: 800px) {
  .network-map {
    aspect-ratio: 1 / 1.2;
    width: 100%;
    max-width: 100%;
    margin-top: 1.5rem;
  }

  .network-lines {
    opacity: 0.72;
  }

  .network-node {
    --node-size: clamp(140px, 42cqw, 260px);
  }

  .node-operator {
    --node-size: clamp(180px, 55cqw, 320px);
  }

  .node-license {
    left: 28%;
    top: 20%;
  }

  .node-security {
    left: 72%;
    top: 20%;
  }

  .node-building {
    left: 24%;
    top: 54%;
  }

  .node-phone {
    left: 76%;
    top: 54%;
  }

  .node-operator {
    left: 50%;
    top: 77%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .network-node.ring-anim-a .rings::before,
  .network-node.ring-anim-b .rings::before,
  .network-node.ring-anim-c .rings::before {
    animation: none;
  }
}