:root {
  /* Peaxy brand colors (per 2020 brand book) */
  --peaxy-black:    #0A1628;
  --brand-black:    #132D4D;
  --peaxy-dark-blue: #0A0E13;
  --peaxy-blue:     #00456E;
  --electric-blue:  #00A3E0;
  --line-teal:      #34BBC8;
  --line-blue:      #208BD2;
  --grad-top:       #00D0F2;
  --grad-bottom:    #22008A;
  --gray-65:        #8996A6;
  --gray-80:        #BCC3CC;
  --gray-95:        #EDF0F1;
  --white:          #FFFFFF;
  --confidential:   #C00000;
  --panel-divider-bg: #0d1117;
--bg-primary: #0a0e13;
--bg-secondary: #0f1419;
--bg-card: #161b22;
--border: rgba(255, 255, 255, 0.08);
--border-accent: rgba(0, 180, 216, 0.3);
--text-primary: #f0f4f8;
--text-secondary: #94a3b8;
--text-muted: #64748b;
--accent-cyan: #00b4d8;
--accent-amber: #f59e0b;
--max-w: 1200px;
--section-pad: 100px;
--radius: 8px;

  /* Type */
  --display:  'Archivo', sans-serif;
  --body:     'IBM Plex Sans', sans-serif;
  --mono:     'IBM Plex Mono', monospace;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  background: var(--peaxy-black);
  color: var(--white);
  font-family: var(--body);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  overflow-x: hidden;
}

a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }

.btn {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 18px 32px;
    font-family: var(--body);
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    transition: all 0.25s ease;
    cursor: pointer;
    border: 1px solid;
}

.btn-primary {
    background: var(--electric-blue);
    border-color: var(--electric-blue);
    color: var(--peaxy-black);
}

.btn-primary:hover {
    background: var(--white);
    border-color: var(--white);
}

.btn-secondary {
    background: transparent;
    border-color: rgba(188, 195, 204, 0.4);
    color: var(--white);
}

.btn-secondary:hover {
    border-color: var(--electric-blue);
    color: var(--electric-blue);
}

.bg-charcoal {
	background-color: var(--peaxy-dark-blue);
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ------------------------------------------------------
  
  1. General Layout & Elements
  
------------------------------------------------------ */
/* LAYOUT */
.fixed-width {
    padding: 0 1.5rem;
    margin: 0 auto;
}

section.pt-default {
    padding-top: 4rem;
}

section.pt-default.first-section {
    padding-top: calc(4rem + 74px);
}

section.pb-default {
	padding-bottom: 4rem;
}

section.bt-default {
    border-top: 1px solid rgba(137, 150, 166, 0.18);
    
}

section.bb-default {
	border-bottom: 1px solid rgba(137, 150, 166, 0.18);
}

.section-eyebrow {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: 0.4em;
    text-transform: uppercase;
    color: var(--electric-blue);
    margin-bottom: 24px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.section-eyebrow::before {
    content: '';
    display: inline-block;
    width: 32px;
    height: 1px;
    background: var(--electric-blue);
}

.section-eyebrow.no-dash::before {
	display: none;
}

.section-title {
    font-family: var(--display);
    font-weight: 800;
    font-size: clamp(36px, 4.5vw, 60px);
    line-height: 1.05;
    letter-spacing: -0.02em;
    margin-bottom: 28px;
}

.section-lead {
    font-family: var(--body);
    font-weight: 300;
    font-size: 16px;
    line-height: 1.6;
    color: var(--gray-80);
}

.grecaptcha-badge {
	display: none;
}

/* ------------------------------------------------------
  
  2. Header & Navigation
  
------------------------------------------------------ */
#site-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 110;
    padding: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    backdrop-filter: blur(12px);
    background: rgba(10, 22, 40, 0.4);
    border-bottom: 1px solid rgba(137, 150, 166, 0.12);
    transition: padding 0.3s ease;
}

#site-header>div:first-child {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: flex-start;
	margin: 0;
	padding: 0;
}

#site-header .site-header {
	display: flex;
    justify-content: space-between;
    width: 100%;
    align-items: center;
}

#site-header .site-logo {
    max-width: 120px;
}

.site-logo svg,.site-logo-sticky svg {
    display: block
}

.site-logo-sticky a,.site-logo a {
    text-decoration: none!important;
    border-bottom: 0
}

#site-navigation a {
    border-bottom: 0
}

.main-navigation-mobile>div ul {
    list-style-type: none;
    text-align: left
}

.main-navigation-mobile>div>ul>li>a {
    text-decoration: none;
    font-size: 12px;
    text-transform: uppercase;
    color: var(--electric-blue);
    cursor: default;
    text-align: left;
    font-weight: 700;
}

.main-navigation-mobile>div {
    padding: 5rem 2rem;
}

.main-navigation-mobile>div .sub-menu a {
    text-decoration: none;
    font-size: 24px;
    color: #fff;
    font-weight: 600
}

.main-navigation-mobile>div .sub-menu li {
    margin: 1rem 0
}

.main-navigation-mobile>div>ul>li {
    margin-bottom: 2.5rem
}

.main-navigation-mobile {
    background: var(--peaxy-black);
    position: fixed;
    top: 0;
    width: 100vw;
    height: 100vh;
    text-align: center;
    transition: 0.5s ease;
    z-index: 200;
    right: -100vw;
    overflow: auto;
}

.menu-mobile-show {
    right: 0
}

.menu-mobile-hide {
    right: -100vw
}

.menu-right {
    display: none
}

.mobile-get-in-touch-btn a {
    border: 1px solid #ffffff!important;
    padding: .5rem .7rem;
    border-radius: 8px;
    display: block;
    max-width: 345px;
    margin-right: 24px
}

.mobile-online-demo-btn a,.mobile-get-in-touch-btn a {
    font-size: 24px!important;
    color: #fff!important;
    font-weight: 600!important;
    text-transform: none!important
}

.mobile-online-demo-btn a {
    color: #132d4d!important;
    background-color: #fff;
    border: 1px solid #fff;
    padding: .5rem .7rem;
    border-radius: 8px;
    display: block;
    margin-right: 24px;
    max-width: 345px
}

.mobile-online-demo-btn {
    margin-bottom: 1.5rem!important
}

.mobile-online-demo-btn.view-brochure a {
    background-color: #00a3e0;
    border: 1px solid #00a3e0;
    color: #ffffff!important
}

.main-navigation {
    display: none
}

.hamburger-menu {
    z-index: 201;
    position: absolute;
    top: 23px;
    right: 24px;
    width: 32px;
    cursor: pointer;
    height: 31px
}

.bar,.bar:after,.bar:before {
    width: 28px;
    height: 2px
}

.bar {
    position: relative;
    background: #fff;
    transition: all 0ms 300ms;
    transform: translateY(15px)
}

.bar.animate {
    background: #fff0!important
}

.bar:before {
    content: "";
    position: absolute;
    left: 0;
    bottom: 10px;
    background: #fff;
    transition: bottom 300ms 300ms cubic-bezier(.23,1,.32,1),transform 300ms cubic-bezier(.23,1,.32,1)
}

.bar:after {
    content: "";
    position: absolute;
    left: 0;
    top: 10px;
    background: #fff;
    transition: top 300ms 300ms cubic-bezier(.23,1,.32,1),transform 300ms cubic-bezier(.23,1,.32,1)
}

.bar.animate:after {
    top: 0;
    transform: rotate(45deg);
    transition: top 300ms cubic-bezier(.23,1,.32,1),transform 300ms 300ms cubic-bezier(.23,1,.32,1);
    background: #ffffff!important
}

.bar.animate:before {
    bottom: 0;
    transform: rotate(-45deg);
    transition: bottom 300ms cubic-bezier(.23,1,.32,1),transform 300ms 300ms cubic-bezier(.23,1,.32,1);
    background: #ffffff!important
}

.hamburger-menu-sticky .bar,.hamburger-menu-sticky .bar::before,.hamburger-menu-sticky .bar::after,.hamburger-menu.dark-theme .bar,.hamburger-menu.dark-theme .bar::before,.hamburger-menu.dark-theme .bar::after {
    background: #00a3e0
}

.nav-cta {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 20px;
  background: transparent;
  border: 1px solid var(--electric-blue);
  color: var(--white);
  font-family: var(--body);
  font-size: 13px; font-weight: 500;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  transition: all 0.2s;
  cursor: pointer;
}
.nav-cta:hover { background: var(--electric-blue); color: var(--peaxy-black); }
.nav-cta::after { content: '→'; font-size: 14px; }

/* ------------------------------------------------------
  
  Hero Banner
  
------------------------------------------------------ */
section.hero-container {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
	position: relative;
	padding-top: 75px;
}

.hero-container h1,
h1.page-title {
    font-family: var(--display);
    font-weight: 800;
    font-size: clamp(40px, 6.8vw, 95px);
    line-height: 0.98;
    letter-spacing: -0.03em;
    color: var(--white);
    margin-bottom: 32px;
	text-shadow: 0 2px 16px rgba(0,0,0,0.35);
}

.hero-container .hero-sub {
    font-family: var(--body);
    font-weight: 300;
    font-size: clamp(18px, 1.5vw, 24px);
    line-height: 1.5;
    color: var(--gray-80);
    margin-bottom: 48px;
	text-shadow: 0 1px 6px rgba(0,0,0,0.3);
}

.hero-container .hero-ctas {
    display: flex;
    gap: 16px;
    margin-bottom: 80px;
	flex-direction: column;
	align-items: flex-start;
}

.hero-container.with-accreditation .scene-label {
	display: none;
}

.hero-container .atmosphere {
    position: absolute;  
    inset: 0;  
    z-index: 5;  
    background: linear-gradient(  
      180deg,  
      rgba(13, 17, 23, 0.25) 0%,  
      rgba(13, 17, 23, 0.40) 45%,  
      rgba(13, 17, 23, 0.80) 100%  
    );  
    pointer-events: none;  
	opacity: 0.3;
}

.hero-container .scenes {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
}

.hero-container .scene {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 0.8s ease-in-out;
    overflow: hidden;
/* 	filter: saturate(0.55) brightness(0.45) contrast(1.08) hue-rotate(-8deg); */
}

.hero-container .scene-label {
    position: absolute;
    bottom: calc(100vh - 90%);
    left: 25px;
    z-index: 5;
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 13px;
    letter-spacing: 1.5px;
    color: #ffffff;
    text-transform: uppercase;
    opacity: 0;
    transition: opacity 1s ease-in-out 0.5s;
	padding-right: 25px;
    line-height: 2;
}

.hero-container .scene-label.active,
.hero-container .scene.active {
	opacity: 1;
}

.hero-container  .scene-label::before {
    content: '/ ';
    color: #ffffff;
    margin-right: 4px;
}

.hero-container .scene-img,
.hero-container .scene-video {
    width: 100%;  
    height: 100%;  
    object-fit: cover;  
    display: block;  
    animation-fill-mode: both;  
	filter: saturate(0.55) brightness(0.45) contrast(1.08) hue-rotate(-8deg);
    transform: translateZ(0);
	-webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    will-change: transform, opacity;
}



.hero-container .fixed-width {
    position: relative;
    z-index: 10;
	width: 100%;
}

.hero-container .slide-dots {
    position: absolute;
    bottom: 40px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 50;
    display: flex;
    gap: 8px;
}

.hero-container .slide-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.25);
    transition: background 0.3s ease, transform 0.3s ease;
    cursor: pointer;
}

.slide-dot.active {
    background: var(--electric-blue);
    transform: scale(1.25);
}


.scene.kb-drift-left .scene-img.animating {  
    animation: kenburns-drift-left 7.5s ease-out both;  
  }  
  .scene.kb-drift-right .scene-img.animating {  
    animation: kenburns-drift-right 7.5s ease-out both;  
  }  
  .scene.video-scene .scene-video.animating {  
    animation: kenburns-video 7.5s ease-out both;  
  }  
  
  @keyframes kenburns-drift-left {  
    0% {  
      transform: scale(1.0) translate(0, 0);  
      transform-origin: 30% 40%;  
    }  
    100% {  
      transform: scale(1.18) translate(-2%, -1%);  
      transform-origin: 30% 40%;  
    }  
  }  
  
  @keyframes kenburns-drift-right {  
    0% {  
      transform: scale(1.0) translate(0, 0);  
      transform-origin: 70% 50%;  
    }  
    100% {  
      transform: scale(1.18) translate(2%, -1%);  
      transform-origin: 70% 50%;  
    }  
  }  
  
  @keyframes kenburns-video {  
    0% {  
      transform: scale(1.0);  
      transform-origin: 50% 40%;  
    }  
    100% {  
      transform: scale(1.10);  
      transform-origin: 50% 40%;  
    }  
  }  

.hero-content .trust-strip {
    position: relative;
    z-index: 10;
    max-width: 1400px;
    margin: 0 auto;
    width: 100%;
    border-top: 1px solid rgba(137, 150, 166, 0.18);
    padding-top: 28px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    opacity: 0;
    animation: heroReveal 1.2s ease forwards 1.2s;
}

.hero-content .trust-label {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: 0.25em;
    color: var(--gray-65);
    text-transform: uppercase;
}


/* ------------------------------------------------------
  
	Verticals
  
------------------------------------------------------ */
.verticals-wrapper {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    margin-top: 80px;
    border-top: 1px solid rgba(137, 150, 166, 0.18);
    border-bottom: 1px solid rgba(137, 150, 166, 0.18);
}

.vertical-tag {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: 0.3em;
    color: var(--electric-blue);
    text-transform: uppercase;
    margin-bottom: 24px;
}

.vertical-tag::before {
    content: '/ ';
}

.vertical {
    position: relative;
    padding: 2rem;
    border-right: 1px solid rgba(137, 150, 166, 0.18);
	border-left: 1px solid rgba(137, 150, 166, 0.18);
    display: flex;
    flex-direction: column;
    min-height: 480px;
    transition: background 0.3s ease;
    cursor: pointer;
}

.vertical:hover {
    background: rgba(0, 163, 224, 0.03);
}

.vertical:last-child {
	border-top: 1px solid rgba(137, 150, 166, 0.18);
}

.vertical h3 {
    font-family: var(--display);
    font-weight: 700;
    font-size: clamp(28px, 3vw, 40px);
    line-height: 1.1;
    letter-spacing: -0.02em;
    margin-bottom: 24px;
    max-width: 460px;
}

.vertical p {
    font-family: var(--body);
    font-weight: 300;
    font-size: 16px;
    line-height: 1.7;
    color: var(--gray-80);
    margin-bottom: 32px;
    max-width: 460px;
}

.vertical-list {
    list-style: none;
    margin-bottom: 32px;
}

.vertical-list li {
    font-family: var(--mono);
    font-size: 12px;
    color: var(--gray-65);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 10px 0;
    border-top: 1px solid rgba(137, 150, 166, 0.14);
    display: flex;
    justify-content: space-between;
}

.vertical-list li span {
    color: var(--white);
	text-align: right;
}

.vertical-link {
    margin-top: auto;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-family: var(--body);
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--white);
    border-bottom: 1px solid var(--electric-blue);
    padding-bottom: 8px;
    align-self: flex-start;
}

.vertical-arrow {
    display: inline-block;
    transition: transform 0.25s ease;
    color: var(--electric-blue);
}

.vertical:hover .vertical-arrow {
    transform: translateX(8px);
}



/* ------------------------------------------------------
  
	Capabilities
  
------------------------------------------------------ */
.cards-bg,
.hero-container.bg-none {
    background: linear-gradient(180deg, var(--peaxy-black) 0%, #0d1c33 50%, var(--peaxy-black) 100%);
    position: relative;
}


.cards-bg::before,
.hero-container.bg-none::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: linear-gradient(rgba(0, 163, 224, 0.025) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 163, 224, 0.025) 1px, transparent 1px);
    background-size: 80px 80px;
    pointer-events: none;
}

.capabilities-wrapper {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    margin-top: 64px;
    border: 1px solid rgba(137, 150, 166, 0.18);
}

.capabilities-wrapper.col-two {
    border-left: 0;
    border-right: 0;
}

.cap {
    padding: 40px 32px;
	border-bottom: 1px solid rgba(137, 150, 166, 0.18);
    position: relative;
    background: rgba(10, 22, 40, 0.4);
    backdrop-filter: blur(8px);
    transition: background 0.3s;
}

.cap:hover {
    background: rgba(0, 69, 110, 0.25);
}

.cap:last-child {
    border-right: none;
	border-bottom: none;
}

.cap-num {
    font-family: var(--mono);
    font-size: 11px;
    color: var(--electric-blue);
    letter-spacing: 0.2em;
    margin-bottom: 32px;
	text-transform: uppercase;
}

.cap h3 {
    font-family: var(--display);
    font-weight: 700;
    font-size: 22px;
    line-height: 1.2;
    letter-spacing: -0.01em;
    margin-bottom: 16px;
}

.cap p {
    font-family: var(--body);
    font-weight: 300;
    font-size: 14px;
    line-height: 1.6;
    color: var(--gray-80);
}

.cap .card-subtext {
	margin-top: 20px;
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: 0.1em;
    color: var(--gray-65);
    text-transform: uppercase;
}



/* ------------------------------------------------------
  
	Articles
  
------------------------------------------------------ */
.articles-wrapper {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
    margin-top: 64px;
}

.insight-card {
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(137, 150, 166, 0.18);
    padding: 36px 32px;
    display: flex;
    flex-direction: column;
    transition: all 0.25s;
    cursor: pointer;
    min-height: 320px;
}

.insight-card:hover {
    border-color: var(--electric-blue);
    background: rgba(0, 163, 224, 0.04);
}

.insight-tag {
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: 0.3em;
    color: var(--electric-blue);
    text-transform: uppercase;
    margin-bottom: 28px;
}

.insight-tag::before {
    content: '/ ';
}

.insight-card h3 {
    font-family: var(--display);
    font-weight: 700;
    font-size: 22px;
    line-height: 1.25;
    letter-spacing: -0.01em;
    margin-bottom: 16px;
    color: var(--white);
}

.insight-card p {
    font-family: var(--body);
    font-size: 14px;
    font-weight: 300;
    color: var(--gray-80);
    line-height: 1.6;
    margin-bottom: 24px;
}

.insight-meta {
    margin-top: auto;
    display: flex;
    justify-content: space-between;
    font-family: var(--mono);
    font-size: 11px;
    color: var(--gray-65);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding-top: 24px;
    border-top: 1px solid rgba(137, 150, 166, 0.18);
}


/* ------------------------------------------------------
  
	Logos
  
------------------------------------------------------ */

.logos-section {
	    border-top: 1px solid rgba(137, 150, 166, 0.18);
    border-bottom: 1px solid rgba(137, 150, 166, 0.18);
}

.logos-section h2 {
    font-family: var(--mono);
    font-size: 12px;
    letter-spacing: 0.4em;
    text-transform: uppercase;
    color: var(--electric-blue);
    margin-bottom: 48px;
	text-align: center;
}

.logos-section h2::before {
    content: '/ ';
}

.logos-wrapper ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: stretch;
	border-radius: 8px;
    background: rgba(255, 255, 255, 0.92);
}

.logos-wrapper ul li {
    display: flex;
    align-items: center;
    justify-content: center;
    transition: color 0.2s, background 0.2s;
	    width: 100%;
    height: 100%;
	padding: 1.2rem;
	    min-height: 85px;
	position:relative;
	width: calc(100% / 2);
	align-self: center;
	    aspect-ratio: 4 / 3;
}

.logos-wrapper ul li:hover {
    background: rgba(0, 163, 224, 0.05);
}

.logos-wrapper ul li img {
        width: auto;
    max-height: 70px;
	max-width: 100%;
	mix-blend-mode: multiply;
}

.logos-wrapper ul li:before {
	content: '';
    position: absolute;
    right: 0;
    top: 24%;
    bottom: 24%;
    width: 1px;
    background: rgba(137, 150, 166, 0.15);
}

.logos-wrapper ul li:after {
	content: '';
    position: absolute;
    bottom: 0;
    left: 16%;
    right: 16%;
    height: 1px;
    background: rgba(137, 150, 166, 0.15);
}

.logos-section .cert-row,
.hero-content .cert-row {
    display: flex;
    justify-content: center;
    column-gap: 24px;
	row-gap: 12px;
    flex-wrap: wrap;
    font-family: var(--mono);
    font-size: 12px;
    color: var(--gray-65);
    letter-spacing: 0.15em;
    text-transform: uppercase;
	    margin-top: 3rem;
}

.hero-content .cert-row {
	margin-top: 0px;
	color: var(--gray-80);
	justify-content: flex-start;
}

.logos-section .cert-row span,
.hero-content .cert-row span {
    position: relative;
}

.logos-section .cert-row span:not(:last-child)::after,
.hero-content .cert-row span:not(:last-child)::after {
    content: '';
    position: absolute;
    right: -12px;
    top: 50%;
    width: 3px;
    height: 3px;
    background: var(--electric-blue);
    border-radius: 50%;
    transform: translateY(-50%);
}

/* ------------------------------------------------------
  
	Footer - Final CTA
  
------------------------------------------------------ */
.final-cta-inner.fixed-width {
    max-width: 900px;
}



.final-cta {
    position: relative;
    padding: 3rem 1rem;
    text-align: center;
    background: radial-gradient(ellipse at center, rgba(0, 163, 224, 0.12) 0%, transparent 70%), var(--peaxy-black);
    border-top: 1px solid rgba(137, 150, 166, 0.18);
    overflow: hidden;
}

.final-cta .cta-form-item {
	max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height 0.4s ease, opacity 0.3s ease;
}

.final-cta .cta-form-item.active {
	max-height: 1000px;
    opacity: 1;
}

.final-cta::before {
    content: '/';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-family: var(--display);
    font-weight: 900;
    font-size: clamp(400px, 60vw, 800px);
    color: var(--electric-blue);
    opacity: 0.05;
    line-height: 1;
    pointer-events: none;
}

.final-cta h2 {
    font-family: var(--display);
    font-weight: 800;
    font-size: clamp(40px, 6vw, 64px);
    line-height: 1.05;
    letter-spacing: -0.02em;
    margin-bottom: 32px;
}

.final-cta p {
    font-family: var(--body);
    font-weight: 300;
    font-size: 19px;
    line-height: 1.6;
    color: var(--gray-80);
    margin-bottom: 48px;
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
}

.final-ctas {
    display: flex;
    gap: 16px;
    justify-content: center;
    flex-wrap: wrap;
    align-items: center;
}

.final-ctas .btn-primary .vertical-arrow {
	color: var(--peaxy-black);
}

.final-ctas .btn-secondary .vertical-arrow {
    color: var(--white);
	position: relative;
	transition: right .3s ease-in-out;
	right: 0px;
}

.final-ctas .btn-secondary:hover .vertical-arrow {
    right: -5px;
	color: var(--electric-blue);
}

.final-ctas .cta-form-wrapper {
    display: grid;
    grid-template-columns: 1fr;
    align-items: flex-start;
    justify-content: center;
    grid-gap: 2rem;
}

.final-ctas .cta-form-wrapper p {
    margin-bottom: 0px;
}

.final-ctas .cta-form-wrapper input {
	width: 100%;
    margin-top: 8px;
    border-radius: 4px;
    padding: 12px 16px;
    border: 1px solid #dfe2e6;
}

.final-ctas .cta-form-wrapper label {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
	font-size: 14px;
    font-weight: 600;
}

.final-ctas .captcha-message p {
    font-size: 12px;
    margin-bottom: 1rem;
	margin-top:1rem;
}

.final-ctas .captcha-message p a {
    color: var(--electric-blue);
}

.final-ctas input[type="submit"] {
	    font-weight: 500;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--white);
    background-color: transparent;
    border: 0;
    border-bottom: 1px solid var(--electric-blue);
    padding-bottom: .5rem;
    cursor: pointer;
}

.final-ctas form {
    padding: 2rem;
    border: 1px solid #ffffff75;
    border-radius: 10px;
    margin: 2rem 0;
    background-color: var(--peaxy-black);
	z-index: 2;
    position: relative;
}

.final-ctas .wpcf7-spinner {
    display: none;
}

.final-ctas .wpcf7 form.invalid .wpcf7-response-output,
.final-ctas .wpcf7 form.unaccepted .wpcf7-response-output,
.final-ctas .wpcf7 form.payment-required .wpcf7-response-output {
    border: 0;
	margin: 0;
    padding: 0;
	color: var(--electric-blue);
    font-weight: 700;
}

.final-cta .cta-form-trigger.active {
	background-color: var(--electric-blue);
	    color: var(--peaxy-black);
}

.final-cta .cta-form-trigger.active .vertical-arrow {
	color: var(--peaxy-black);
}

/* ------------------------------------------------------
  
	Statistics
  
------------------------------------------------------ */
.statistics-boxes {
    display: grid;
    grid-template-columns: 1fr;
    gap: 40px;
	    margin-top: 4rem;
}

.statistics-boxes > div {
    border-left: 3px solid #00B4D8;
    padding-left: 24px;
}

.statistics-boxes > div .title {
    font-family: var(--display);
    font-weight: 700;
    font-size: clamp(28px, 3vw, 60px);
    line-height: 1.1;
    letter-spacing: -0.02em;
	    margin-bottom: 1rem;
}

.statistics-boxes > div .text {
    font-family: var(--body);
    font-weight: 300;
    font-size: 16px;
    line-height: 1.7;
    color: var(--gray-80);
}

/* ------------------------------------------------------
  
	Testimonials
  
------------------------------------------------------ */
.testimonials-section .testimonial-box {
	background: rgba(255, 255, 255, 0.02);
    border: 0.5px solid rgba(255, 255, 255, 0.08);
    border-radius: 8px;
    padding: 28px;
    display: flex;
    flex-direction: column;
}

.testimonials-section .testimonial-boxes {
	display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
	    margin-top: 4rem;
}

.testimonials-section .testimonial-box .quote-wrapper {
	border-left: 3px solid #00B4D8;
    padding-left: 20px;
    flex: 1;
}

.testimonials-section .testimonial-box .quote-wrapper p {
	font-size: 15px;
    font-weight: 400;
    font-style: italic;
    color: #C9D1D9;
    line-height: 1.75;
    margin: 0;
}

.testimonials-section .author-info-wrapper {
	display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 20px;
    padding-top: 20px;
    border-top: 0.5px solid rgba(255, 255, 255, 0.06);
}

.testimonials-section .author-info-wrapper .author-img {
	width: 50px;
    height: 50px;
    border-radius: 50%;
}

.testimonials-section .author-info-wrapper .author-img img {
    border-radius: 50%;
}

.testimonials-section .author-info-wrapper .author-name {
	    font-size: 14px;
    font-weight: 500;
    color: #FFFFFF;
}

.testimonials-section .author-info-wrapper .author-title {
	    margin: 3px 0 0;
	    font-size: 12px;
    font-weight: 400;
    color: #6E7681;
}

/* ------------------------------------------------------
  
	Stacked Content
  
------------------------------------------------------ */
.stacked-content-section .subsections-wrapper {
	margin-top: 4rem;
}

.stacked-content-section .subsections-wrapper .spt-default.with-bg {
	padding-top: 6rem;
}

.stacked-content-section .subsections-wrapper .spb-default.with-bg {
	padding-bottom: 6rem;
}

.stacked-content-section .subsections-wrapper .spt-default .fixed-width {
	padding-top: 3rem;
}

.stacked-content-section .subsections-wrapper .spb-default .fixed-width {
	padding-bottom: 3rem;
}

.stacked-content-section .subsections-wrapper > div {
    overflow: hidden;
    position: relative;
}

.stacked-content-section .text-section-wrapper .text-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    will-change: transform;
    z-index: 0;
}

.stacked-content-section .text-section-wrapper .text-bg-overlay {
    position: absolute;
    inset: 0;
    z-index: 2;
    background: linear-gradient(180deg, rgba(10, 22, 40, 0.92) 0%, rgba(10, 22, 40, 0.78) 50%, rgba(10, 22, 40, 0.92) 100%);
}

.stacked-content-section .text-section-wrapper .fixed-width {
	position: relative;
	z-index: 3;
}

.stacked-content-section .text-section-wrapper .fixed-width > .text-section-text {
	max-width: 820px;
}

.stacked-content-section .text-section-wrapper .text-section-text > p:not(:last-child) {
    margin-bottom: 1.5rem;
}

.stacked-content-section .subsections-wrapper .sbt-default .fixed-width {
	border-top: 1px solid rgba(137, 150, 166, 0.18);
}

.stacked-content-section .subsections-wrapper .sbb-default .fixed-width {
	border-bottom: 1px solid rgba(137, 150, 166, 0.18);
}

.stacked-content-section .text-section-wrapper .text-section-text > p {
    font-family: var(--body);
    font-weight: 300;
    font-size: 17px;
    line-height: 1.7;
    color: var(--gray-80);
}

.stacked-content-section .grid-wrapper {
    border: 1px solid rgba(137, 150, 166, 0.18);
	display: grid;
	grid-template-columns: 1fr;
}

.stacked-content-section .grid-wrapper .cap {
    border-right: 0;
}

.stacked-content-section .text-section-wrapper .grid-wrapper {
	margin-top: 3.5rem;
}

.stacked-content-section .grid-wrapper h3 {
	font-family: var(--display);
    font-weight: 700;
    font-size: 17px;
    line-height: 1.2;
    margin-bottom: 12px;
    color: var(--white);
}

.stacked-content-section .grid-wrapper p {
	font-family: var(--body);
    font-weight: 300;
    font-size: 13px;
    line-height: 1.6;
    color: var(--gray-80);
}


.stacked-content-section .spotlight-section-wrapper .spotlight-box {
    border: 1px solid rgba(0, 163, 224, 0.25);
    background: rgba(0, 69, 110, 0.08);
    padding: 2rem;
    position: relative;
}

.stacked-content-section .spotlight-section-wrapper .spotlight-box .section-eyebrow:before {
	content: '';
    display: inline-block;
    width: 8px;
    height: 8px;
    border: 1.5px solid var(--electric-blue);
    border-radius: 50%;
	background: transparent;
}


.stacked-content-section .spotlight-section-wrapper .spotlight-box .text p {
	font-family: var(--body);
    font-weight: 300;
    font-size: 17px;
    line-height: 1.7;
    color: var(--gray-80);
    max-width: 780px;
    margin-bottom: 20px;
}

.stacked-content-section .spotlight-section-wrapper .spotlight-box .text p:last-child {
    margin: 0;
}


.stacked-content-section .spotlight-section-wrapper .spotlight-box:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
    height: 100%;
    background: var(--electric-blue);
}

.stacked-content-section .section-subtitle {
	font-family: var(--display);
    font-weight: 800;
    font-size: clamp(26px, 3vw, 38px);
    line-height: 1.1;
    letter-spacing: -0.02em;
    margin-bottom: 28px;
    max-width: 800px;
}

.stacked-content-section .spotlight-section-wrapper .statistics-wrapper .single-stat {
	    display: flex;
    flex-direction: column;
}

.stacked-content-section .spotlight-section-wrapper .statistics-wrapper {
    display: flex;
    gap: 48px;
    flex-wrap: wrap;
    margin-top: 40px;
    padding-top: 32px;
    border-top: 1px solid rgba(137, 150, 166, 0.18);
}

.stacked-content-section .spotlight-section-wrapper .statistics-wrapper .value {
	font-family: var(--display);
    font-weight: 800;
    font-size: 32px;
    line-height: 1.1;
    letter-spacing: -0.01em;
    color: var(--white);
}

.stacked-content-section .spotlight-section-wrapper .statistics-wrapper .label {
	    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--gray-65);
    margin-top: 8px;
}

.stacked-content-section .spotlight-section-wrapper .images-wrapper {
    display: flex;
    gap: 48px;
    flex-wrap: wrap;
    padding-top: 32px;
}

.stacked-content-section .spotlight-section-wrapper .images-wrapper img,
.stacked-content-section .text-section-wrapper .text-section-img img {
	width: 100%;
    border-radius: 8px;
    display: block;
	max-width: 890px;
    height: auto;
}

.stacked-content-section .spotlight-section-wrapper .images-wrapper figcaption,
.stacked-content-section .text-section-wrapper .text-section-img figcaption {
    font-family: var(--mono);
    font-size: 11px;
    color: #64748b;
    letter-spacing: 0.06em;
    padding: 12px 4px 0;
    line-height: 1.5;
}

.stacked-content-section .text-section-wrapper .text-section-img {
	margin-top: 40px;
}

.stacked-content-section .spotlight-section-wrapper .callout {
	padding: 28px 32px;
    background: transparent;
    border: 1px solid var(--border-accent);
    border-radius: var(--radius);
    border-left: 4px solid var(--accent-cyan);
    margin-top: 3rem;
	width: fit-content;
}

.stacked-content-section .spotlight-section-wrapper .callout a {
    color: var(--accent-cyan);
    font-weight: 600;
}


/* ------------------------------------------------------
  
	Scroll Panels
  
------------------------------------------------------ */
.scroll-panels-section .scroll-panel {
	min-height: 100vh;
    display: flex;
    align-items: center;
    background: transparent;
    padding: 120px 0;
}

.scroll-panels-section h1.page-title {
    font-size: clamp(40px, 6.8vw, 48px);
    margin-bottom: 5rem !important;
}

.scroll-panels-section .dark-cut {
    position: relative;
    z-index: 3;
    height: 100px;
    background: var(--panel-divider-bg);
    clip-path: polygon(0 35%, 100% 0, 100% 65%, 0 100%);
    margin: -50px 0;
}

.scroll-panels-section .scroll-panel-bg {
    position: fixed;
    inset: 0;
    z-index: -1;
    background-size: cover;
    background-position: center;
    opacity: 0;
    transition: opacity 0.9s ease;
}

.scroll-panels-section .scroll-panel-bg.active {
	opacity: 1;
}

.scroll-panels-section .scroll-panel-wrapper{
	 position: relative;
	z-index: 2;
}

.scroll-panels-section .page-fixed-overlay {
    position: fixed;
    inset: 0;
    z-index: -1;
    background: radial-gradient(ellipse 70% 60% at 60% 50%, rgba(0, 163, 224, 0.05) 0%, transparent 65%), linear-gradient(rgba(0, 163, 224, 0.03) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 163, 224, 0.03) 1px, transparent 1px), linear-gradient(rgba(8, 13, 20, 0.62), rgba(8, 13, 20, 0.62));
    background-size: auto, 56px 56px, 56px 56px, auto;
    pointer-events: none;
}

.scroll-panels-section .section-title {
	 text-shadow: 0 2px 32px rgba(0, 0, 0, 0.55);
     
}

.scroll-panels-section .section-lead {
	text-shadow: 0 1px 12px rgba(0, 0, 0, 0.4);
	color: rgba(255, 255, 255, 0.68);
}

.scroll-panels-section .panel-content {
    width: 100%;
}

/* ------------------------------------------------------
  
	Team
  
------------------------------------------------------ */
section.soft-dark-blue {
	background: #111720;
}

section.dark-blue {
	background: #0d1117;
}

.team-section .team-members-wrapper,
.news-cards-section .news-cards-wrapper,
.office-cards-section .office-cards-wrapper {
    list-style-type: none;
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
    margin-top: 48px;
}

.team-section .person-photo {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    object-fit: cover;
    object-position: top;
    border: 1px solid var(--border-accent);
    margin-bottom: 16px;
}

.team-section .person-name {
    font-family: var(--display);
    font-size: 16px;
    font-weight: 700;
    color: var(--text-primary);
    margin-bottom: 4px;
}

.team-section .person-role {
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--electric-blue);
    margin-bottom: 14px;
}

.team-section .person-bio {
    font-size: 13px;
    color: var(--gray-65);
    line-height: 1.65;
    display: -webkit-box;
/*     -webkit-line-clamp: 4; */
    -webkit-box-orient: vertical;
    overflow: hidden;
}


.team-section .person-bio .more-arrow {
	color: var(--electric-blue);
	font-family: var(--mono);
}

.team-section .person-link,
.news-cards-section .news-read {
    display: inline-block;
    margin-top: 14px;
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--electric-blue);
    border-bottom: 1px solid rgba(0, 163, 224, 0.3);
    padding-bottom: 1px;
    transition: border-color 0.2s;
}

.team-section .person-link:hover,
.news-cards-section .news-card:hover .news-read {
    text-decoration: none;
    border-color: var(--electric-blue);
}

.team-section .person-card,
.news-cards-section .news-card,
.office-cards-section .office-card {
    background: #141b24;
    border: 1px solid rgba(255, 255, 255, 0.07);
    border-radius: 4px;
    padding: 28px;
    transition: border-color 0.2s;
	cursor: pointer;
}

.team-section .person-card:hover,
.news-cards-section .news-card:hover,
.office-cards-section .office-card:hover {
    border-color: rgba(0, 163, 224, 0.3);
}

.team-section-divider {
    height: 1px;
    position: relative;
    z-index: 3;
    background: linear-gradient(to right, #0d1117, #4d4d4d, #0d1117);
    max-width: 100%;
}

.team-section .modal-backdrop {
	position: fixed;
	inset: 0;
	z-index: 9999;
	background: rgba(4, 8, 14, 0.82);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s ease;
}

.team-section .modal-backdrop.open {
	opacity: 1;
	pointer-events: auto;
}

.team-section .person-modal {
	background: #141B24;
	border: 1px solid rgba(255, 255, 255, 0.09);
	border-radius: 6px;
	max-width: 760px;
	width: 100%;
	display: flex;
	overflow: hidden;
	transform: scale(0.96) translateY(12px);
	transition: transform 0.35s ease;
	position: relative;
	box-shadow: 0 32px 80px rgba(0, 0, 0, 0.6);
	height: 700px;
	flex-direction: column;
}

.team-section .modal-backdrop.open .person-modal {
	transform: scale(1) translateY(0);
}

.team-section .modal-photo-col {
	width: 100%;
	flex-shrink: 0;
	overflow: hidden;
	background: transparent;
	padding-top: 40px;
}

.team-section .modal-photo-col img {
	width: 200px;
	height: 200px;
	object-fit: cover;
	object-position: top;
	display: block;
	border-radius: 50%;
	margin: 0 auto;
}

.team-section .modal-content-col {
	flex: 1;
	padding: 40px 44px 40px 40px;
	overflow-y: auto;
	display: flex;
	flex-direction: column;
}

.team-section .modal-person-name {
	font-family: 'Archivo', sans-serif;
	font-size: 22px;
	font-weight: 700;
	color: #FFFFFF;
	margin: 0 0 6px 0;
	padding-right: 32px; /* clear the close button */
}

.team-section .modal-person-role {
	font-family: 'IBM Plex Mono', monospace;
	font-size: 10px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #00A3E0;
	margin: 0 0 24px 0;
}

.team-section .modal-rule {
	height: 1px;
	background: rgba(255, 255, 255, 0.07);
	margin: 0 0 24px 0;
	flex-shrink: 0;
}

.team-section .modal-person-bio {
	font-family: 'IBM Plex Sans', sans-serif;
	font-size: 15px;
	color: #8996A6;
	line-height: 1.75;
	margin: 0;
	flex: 1;
}

.team-section .modal-person-bio p:not(:last-child) {
    margin-bottom: 1rem;
}

.team-section .modal-person-linkedin {
	display: inline-block;
	margin-top: 28px;
	font-family: 'IBM Plex Mono', monospace;
	font-size: 10px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #00A3E0;
	text-decoration: none;
	border-bottom: 1px solid rgba(0, 163, 224, 0.3);
	padding-bottom: 2px;
	transition: border-color 0.2s;
	align-self: flex-start;
}

.team-section .modal-person-linkedin:hover {
	border-color: #00A3E0;
	text-decoration: none;
}

.team-section .modal-close-btn {
	position: absolute;
	top: 18px;
	right: 20px;
	background: none;
	border: none;
	color: rgba(255, 255, 255, 0.3);
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	padding: 4px 6px;
	transition: color 0.2s;
	z-index: 10;
}

.team-section .modal-close-btn:hover {
	color: #00A3E0;
}

/* ------------------------------------------------------
  
	News Cards
  
------------------------------------------------------ */
.news-cards-section .news-date,
.office-cards-section .office-region {
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--gray-65);
}

.news-cards-section .news-headline {
    font-family: var(--display);
    font-size: 15px;
    font-weight: 600;
    color: var(--white);
    line-height: 1.4;
    margin-top: 14px;
}

.news-cards-section .news-card {
	display: flex;
    align-items: flex-start;
    justify-content: flex-start;
	padding: 0px;
}

.news-cards-section .news-card > a {
    height: 100%;
	padding: 28px;
}


/* ------------------------------------------------------
  
	Office Cards
  
------------------------------------------------------ */
.office-cards-section .office-card {
	cursor: default;
}

.office-cards-section .office-region {
	color: var(--electric-blue);
}

.office-cards-section .office-city {
    font-family: var(--display);
    font-size: 20px;
    font-weight: 700;
    color: var(--white);
    margin-bottom: 4px;
}

.office-cards-section .office-address,
.office-cards-section .office-person,
.office-cards-section .office-card a {
    font-size: 14px;
    color: var(--gray-65);
    line-height: 1.8;
	transition: color .3s ease-in-out;
}

.office-cards-section .office-address {
	margin: 20px 0;
}

.office-cards-section .office-card a:hover {
    color: var(--electric-blue);
    text-decoration: none;
}
	

/* ------------------------------------------------------
  
	Footer
  
------------------------------------------------------ */
footer {
    padding: 3rem 0;
    border-top: 1px solid rgba(137, 150, 166, 0.18);
    background: #060d18;
	z-index: 70;
    position: relative;
}

.footer-top {
        display: grid;
    grid-template-columns: 1fr;
	padding-bottom: 32px;
}

.footer-logo {
	margin-bottom: 1rem;
}

.footer-left p {
    font-size: 14px;
    font-weight: 300;
    color: var(--gray-65);
    max-width: 280px;
    line-height: 1.6;
}

.footer-menu ul {
    list-style-type: none;
}

.footer-menu .menu>li>a {
    font-family: var(--mono);
    font-size: 13px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--electric-blue);
    margin-bottom: 20px;
	font-weight: 700;
}

.footer-menu .menu>li>a:before {
     content: '/ ';
}

.footer-menu .menu>li>.sub-menu {
    margin-top: 16px;
}

.footer-menu .menu>li>.sub-menu li {
	margin-bottom: 16px;
}

.footer-menu .menu>li>.sub-menu a {
    font-size: 14px;
    color: var(--gray-80);
    transition: color 0.2s;
}

.footer-menu .menu>li>.sub-menu a:hover {
	    color: var(--white);
}

.footer-menu ul.menu {
    display: grid;
    grid-template-columns: 1fr 1fr;
    justify-content: center;
    column-gap: 3rem;
    row-gap: 3rem;
	margin-top: 2rem;
}

.footer-bottom {
    max-width: 1400px;
    margin: 0 auto;
    padding-top: 32px;
    border-top: 1px solid rgba(137, 150, 166, 0.12);
    display: flex;
    justify-content: space-between;
    font-family: var(--mono);
    font-size: 11px;
    color: var(--gray-65);
    letter-spacing: 0.1em;
	 flex-direction: column;
    gap: 1rem;
	text-align: center;
}

.footer-bottom .cert-row {
	column-gap: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    row-gap: 5px;
}

.footer-bottom .cert-row span {
	position: relative;
	white-space: nowrap;
}

.footer-bottom .cert-row span:not(:last-child)::after {
    content: '';
    position: absolute;
    right: -12px;
    top: 50%;
    width: 3px;
    height: 3px;
    background: var(--gray-65);
    border-radius: 50%;
    transform: translateY(-50%);
}

