/*
 Theme Name:   GeneratePress Child
 Theme URI:    https://generatepress.com
 Description:  Default GeneratePress child theme
 Author:       Tom Usborne
 Author URI:   https://tomusborne.com
 Template:     generatepress
 Version:      0.1
*/

/* Global */
.h1 {
	font-size: clamp(47px,4vw,57px);
	line-height: 1em;
}

h1, h2, h3, h4, h5, h6, .gbp-section__headline
{
	text-wrap: balance;
}

hr.wp-block-separator {
    background-color: transparent;
    border-top: 1px solid rgba(1, 13, 38, 0.2);
    height: 0px;
    margin-bottom: 0;
    margin-top: 0;
    padding-bottom: 2rem;
	
	@media (min-width: 1025px) {
		margin-top: -2rem;
	}
}

hr.wp-block-seperator--dark {
	    border-top: 1px solid rgba(255, 255, 255, 0.2);
}

a {
	position: relative;
}

a:hover,
a:focus,
a:active
{
	text-decoration: underline #1335F2 2px;
	text-underline-offset: 3px;
}

p:last-child,
.gb-text:last-child
{
	margin-bottom: 0;
}

picture {
	line-height: 0;
}

/* Arrow Link */
.gbp-card:hover .arrow-link,
.mega-menu-upper:hover .arrow-link,
.mega-menu-card:hover .arrow-link, 
.page-template-page-dark .mega-menu-upper:hover .arrow-link,
.page-template-page-dark .mega-menu-card:hover .arrow-link {
	text-decoration: underline #1335F2 2px;
	text-underline-offset: 3px;
}

p.arrow-link::after,
.arrow-link a::after,
a.arrow-link::after
{
	content: '';
	position: absolute;
	background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M6 12L10 8L6 4" stroke="%231335F2" stroke-width="1.5" stroke-linejoin="round"/></svg>');
    background-repeat: no-repeat;
    background-size: 100% auto;
    width: 15px;
    height: 14px;
    top: 50%;
    transform: translate(100%, -50%);
    right: -2px;
}

.arrow-link--show-more a::after,
a.arrow-link--show-more::after
{
    top: 4px;
    right: -20px;
	width: 18px;
    height: 17px;
    transform: rotate(90deg);
}

/* Card */
.gbp-card {
	position:relative;
	z-index:0;
}

.gbp-card::before {
	content: "";
	position:absolute;
	top: -1px;
	left: -1px;
	border-top: solid 2px #6D9BF8;
	border-left: solid 2px #6D9BF8;
	width:6px;
	height:6px;
	z-index:1;
}

.gbp-card::after {
	content: "";
	position:absolute;
	top: -1px;
	right: -1px;
	border-top: solid 2px #6D9BF8;
	border-right: solid 2px #6D9BF8;
	width:6px;
	height:6px;
	z-index:1;
}

.gbp-card__inner::before {
	content: "";
	position:absolute;
	bottom: -1px;
	left: -1px;
	border-bottom: solid 2px #6D9BF8;
	border-left: solid 2px #6D9BF8;
	width:6px;
	height:6px;
	z-index:1;
}

.gbp-card__inner::after {
	content: "";
	position:absolute;
	bottom: -1px;
	right: -1px;
	border-bottom: solid 2px #6D9BF8;
	border-right: solid 2px #6D9BF8;
	width:6px;
	height:6px;
	z-index:1;
}

.gbp-card__inner-inner::before {
  content: "";
  position: absolute;
  inset: -1px;               /* extend beyond to avoid gaps */
  border-radius: inherit;
  padding: 1px;              /* border thickness */
  z-index: -1;
  background: linear-gradient(
    90deg,
    #C6C9D2,
    #ffffff,
    #aeb0b9,
    #C6C9D2,
    #C6C9D2,
    #aeb0b9,
    #C6C9D2
  );
  background-size: 300% 300%;
  animation: gbpGradientBorder 6s linear infinite;

  /* Make it a border, not a fill */
  -webkit-mask: 
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
          mask: 
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
          mask-composite: exclude;

  pointer-events: none;
}

/* Optional: soft glow */
.gbp-card__inner-inner::after {
  content: "";
  position: absolute;
  inset: -10px;
  border-radius: inherit;
  background: inherit;       /* same gradient as ::before */
  background-size: 300% 300%;
  animation: gbpGradientBorder 6s linear infinite;
  filter: blur(18px);
  opacity: 0.25;
  pointer-events: none;
}

.gbp-card:nth-child(even) .gbp-card__inner-inner::after {
	animation-delay: 2s;
}

/* Card CTA */
@media screen and (min-width: 1025px) {
 .gbp-card--cta .gbp-card__inner-inner {
	display: grid;
    grid-template-columns: 1.5fr 1fr;
    align-items: center;
 }
}

.gbp-card--cta::before
{
	border-top: solid 2px #1335F2;
	border-left: solid 2px #1335F2;
}

.gbp-card--cta::after
{
	border-top: solid 2px #1335F2;
	border-right: solid 2px #1335F2;
}

.gbp-card--cta .gbp-card__inner::before
{
	border-bottom: solid 2px #1335F2;
	border-left: solid 2px #1335F2;
}

.gbp-card--cta .gbp-card__inner::after
{
	border-bottom: solid 2px #1335F2;
	border-right: solid 2px #1335F2;
}

/* Dark Section */
.gbp-section--dark-noise::before {
    content: '';
    position: absolute;
    inset: 0;
background-image: url('data:image/svg+xml,<svg width="1440" height="900" viewBox="0 0 1440 900" fill="none" xmlns="http://www.w3.org/2000/svg"><g style="mix-blend-mode:color-dodge" opacity="0.24" filter="url(%23filter0_n_1319_1597)"><rect width="1440" height="900" fill="%23010D26" fill-opacity="0.83"/><line x1="165.645" y1="609.803" x2="165.645" y2="844.342" stroke="url(%23paint0_linear_1319_1597)" stroke-width="0.977248"/></g><defs><filter id="filter0_n_1319_1597" x="0" y="0" width="1440" height="900" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feTurbulence type="fractalNoise" baseFrequency="2.5 2.5" stitchTiles="stitch" numOctaves="3" result="noise" seed="5930" /><feColorMatrix in="noise" type="luminanceToAlpha" result="alphaNoise" /><feComponentTransfer in="alphaNoise" result="coloredNoise1"><feFuncA type="discrete" tableValues="0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 "/></feComponentTransfer><feComposite operator="in" in2="shape" in="coloredNoise1" result="noise1Clipped" /><feFlood flood-color="%23FFFFFF" result="color1Flood" /><feComposite operator="in" in2="noise1Clipped" in="color1Flood" result="color1" /><feMerge result="effect1_noise_1319_1597"><feMergeNode in="shape" /><feMergeNode in="color1" /></feMerge></filter><linearGradient id="paint0_linear_1319_1597" x1="164.656" y1="609.803" x2="164.656" y2="844.342" gradientUnits="userSpaceOnUse"><stop stop-color="%23010D26" stop-opacity="0.86"/><stop offset="0.629808" stop-color="%233876F2"/><stop offset="1" stop-color="%23010D26" stop-opacity="0.73"/></linearGradient></defs></svg>');
    pointer-events: none;
	mix-blend-mode: color-dodge;
	opacity: 0.35;
}

/* Dark Card, Cube Card*/
.gbp-card--dark::before,
.gbp-card--cube::before
{
	border-top: solid 2px #4E5D8C;
	border-left: solid 2px #4E5D8C;
}

.gbp-card--dark::after,
.gbp-card--cube::after
{
	border-top: solid 2px #4E5D8C;
	border-right: solid 2px #4E5D8C;
}

.gbp-card--dark .gbp-card__inner::before,
.gbp-card--cube .gbp-card__inner::before
{
	border-bottom: solid 2px #4E5D8C;
	border-left: solid 2px #4E5D8C;
}

.gbp-card--dark .gbp-card__inner::after,
.gbp-card--cube .gbp-card__inner::after
{
	border-bottom: solid 2px #4E5D8C;
	border-right: solid 2px #4E5D8C;
}

.gbp-card--dark:nth-child(odd) .gbp-card__inner-inner::before {
	padding: 0px 1px 1px 1px;
    background: linear-gradient(
    90deg,
    rgba(52,62,94,0.5),
    #343E5E00,
    #6D9BF8,
    #343E5E00,
    rgba(52,62,94,0.5),
    rgba(52,62,94,0.5),
    rgba(52,62,94,0.5)
  );
}

.gbp-card--dark:nth-child(even) .gbp-card__inner-inner::before {
	padding: 1px 0 0 0;
	inset: -2px;
    background: linear-gradient(
    -90deg,
    rgba(52,62,94,0.5),
    rgba(52,62,94,0.5),
    #343E5E00,
    #6D9BF8,
    #343E5E00,
    rgba(52,62,94,0.5),
    rgba(52,62,94,0.5)
  );
}

.gbp-card--cube .gbp-card__inner-inner::before {
	padding: 0px 1px 1px 1px;
    background: linear-gradient(
    90deg,
    rgba(52,62,94,0.5),
    rgba(52,62,94,0.5),
    #343E5E00,
    #4AFFCE,
    #343E5E00,
    rgba(52,62,94,0.5),
    rgba(52,62,94,0.5)
  );
}

/* Ensure content sits above pseudo elements */
.gbp-card__inner-inner > * {
  position: relative;
}

/* Animate the gradient movement */
@keyframes gbpGradientBorder {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* Optional: reduce motion accessibility */
@media (prefers-reduced-motion: reduce) {
  .gbp-card__inner-inner::before,
  .gbp-card__inner-inner::after {
    animation: none;
  }
}

.gbp-cause-effect__item:last-child {margin-bottom:0;}
.gbp-cause-effect__cause {position:relative;}
.gbp-cause-effect__cause :first-child {margin-top:0}
.gbp-cause-effect__cause :last-child {margin-bottom:0}
@media screen and (min-width: 1025px) {
  .gbp-cause-effect__item::after {
	content:"";
	position:absolute;
	top:50%;
	right:50%;
	left: 50%;
	transform:translate(-50%, -50%);
	background-image: url('data:image/svg+xml,<svg width="10" height="12" viewBox="0 0 10 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.75 5.62915L-5.30183e-07 11.2583L-3.80654e-08 -1.52081e-05L9.75 5.62915Z" fill="%231335F2"/></svg>');
	background-size:contain;
	background-repeat:no-repeat;
	background-position:center;
	width:1rem;
	height:1rem;	
  }	
}

.gbp-cause-effect__effect {}
.gbp-cause-effect__effect :first-child {margin-top:0}
.gbp-cause-effect__effect :last-child {margin-bottom:0}

/* Tabs Dark */
.gb-tabs.gbp-tabs__wrap .gbp-tabs__menu-item--dark.gb-block-is-current::before {
	background-color:#fff;
}

/* Tabs */
.gb-tabs.gbp-tabs__wrap .gb-tabs__menu-item.gb-block-is-current {
	margin-left: 1rem;
	padding-left: 1rem;
}

.gbp-tabs {}
.gbp-tabs .gb-tabs__menu-item {position:relative;background-color:transparent !important;opacity:.5;padding-left:0;transition:opacity 300ms, padding 300ms;}
.gbp-tabs .gb-tabs__menu-item::before {
	content:"";
	position:absolute;
	left:0;
	top:50%;
	transform:translateY(-50%);
	width:6px;
	height:6px;
	background-color:transparent;
	pointer-events:none;
	border-radius:50%;
	transition:background-color 300ms;
}

.gbp-tabs .gb-tabs__menu-item .gb-text {margin-bottom:0;}
.gbp-tabs .gb-tabs__menu-item.gb-block-is-current {opacity:1;padding-left: 1.5rem;}
.gbp-tabs .gb-tabs__menu-item.gb-block-is-current::before {
	background-color:#1335f2;
}

.gbp-tabs .gbp-tabs__items {background-color:transparent;}

.gbp-tabs__menu::-webkit-scrollbar-track
{
	-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
	border-radius: 10px;
	background-color: transparent;
}

.gbp-tabs__menu::-webkit-scrollbar
{
    height: 4px;
	background-color: transparent;
}

.gbp-tabs__menu::-webkit-scrollbar-thumb
{
	border-radius: 10px;
	-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
	background-color: #fff;
}

.wp-block-video video {
    aspect-ratio: 2 / 1.75 !important;
}

@media screen and (min-width: 1025px) {

/* float-1 unchanged */
@keyframes float-1 {
  0%, 100% {
    transform: translate(0, 0) rotate(0deg);
  }
  25% {
    transform: translate(3px, -5px) rotate(0.3deg);
  }
  50% {
    transform: translate(-2px, -7px) rotate(-0.2deg);
  }
  75% {
    transform: translate(-4px, -4px) rotate(0.3deg);
  }
}

/* softened more */
@keyframes float-2 {
  0%, 100% {
    transform: translate(0, 0) rotate(0deg);
  }
  25% {
    transform: translate(-3px, -4px) rotate(-0.2deg);
  }
  50% {
    transform: translate(2px, -6px) rotate(0.2deg);
  }
  75% {
    transform: translate(3px, -3px) rotate(-0.15deg);
  }
}

/* softened more */
@keyframes float-3 {
  0%, 100% {
    transform: translate(0, 0) rotate(0deg);
  }
  25% {
    transform: translate(-2px, -4px) rotate(0.15deg);
  }
  50% {
    transform: translate(3px, -6px) rotate(-0.2deg);
  }
  75% {
    transform: translate(-2px, -4px) rotate(0.2deg);
  }
}

 
/* Apply animations to each card with different timings */
.gbp-card--cube.gb-element-4f009c9e {
  animation: float-1 8s ease-in-out infinite;
}
 
.gbp-card--cube.gb-element-e358f910 {
  animation: float-2 7s ease-in-out infinite;
  animation-delay: -2s;
}
 
.gbp-card--cube.gb-element-5077cbc5 {
  animation: float-3 9s ease-in-out infinite;
  animation-delay: -4s;
}
 
.gbp-card--cube:hover {
  animation-play-state: paused;
}
}

/* Dark Theme Header */
.page-template-page-dark header {
	background-color: var(--midnight-intelligence);
    border-bottom: 1px solid var(--strategy-slate);
}

.page-template-page-dark .header-glow {
    top: 0;
    right: 0;
    left: 0;
    width: 100%;
    height: 18px;
    z-index: 100;
    position: absolute;
    background: linear-gradient(to bottom, rgba(19, 53, 242, 0.8) 0%, rgba(19, 53, 242, 0.6) 20%, rgba(19, 53, 242, 0.4) 30%, rgba(19, 53, 242, 0) 100%);
    filter: blur(15px);
}

.page-template-page-dark .gb-navigation {
    background-color: var(--midnight-intelligence);
}

@media (max-width: 1024px) {
    .page-template-page-dark .gb-menu-toggle {
        background-color: var(--midnight-intelligence);
        color: var(--white);
        border: 1px solid var(--strategy-slate);
    }
}

.page-template-page-dark .gb-menu {
    background-color: var(--midnight-intelligence);
}

.page-template-page-dark .gb-menu-container.gb-menu-container--mobile .menu-item,
.page-template-page-dark .gb-menu-container.gb-menu-container--mobile .menu-item:hover,
.page-template-page-dark .gb-menu-container.gb-menu-container--mobile .menu-item:active,
.page-template-page-dark .gb-menu-container.gb-menu-container--mobile .menu-item:focus
{
    background-color: var(--midnight-intelligence);
    color: var(--white);
}

.page-template-page-dark .mega-menu {
    background-color: var(--midnight-intelligence);
    border-bottom: 1px solid var(--strategy-slate);
}

.page-template-page-dark .mega-menu-lower {
    border-top: 1px solid var(--strategy-slate);
}

.page-template-page-dark .mega-menu-heading,
.page-template-page-dark .mega-menu-text,
.page-template-page-dark .arrow-link {
    color: var(--white);
	text-decoration-color: #1335F2;
}

.page-template-page-dark .gb-menu--base :where(.menu-item) .gb-menu-link {
    color: var(--white);
}

.page-template-page-dark header a.gb-menu-link:hover, 
.page-template-page-dark header .current-menu-item a.gb-menu-link {
    background-color: #212A40;
    border-radius: 2px;
}

.page-template-page-dark header .gb-menu-item > .gb-menu-link::after,
.page-template-page-dark header .current-menu-item > .gb-menu-link::after
{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -39%;
  height: 4px;
  background: #1335F2;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 200ms ease;
}


@media screen and (min-width: 1024px) {
.page-template-page-dark header a.gb-menu-link {
  position: relative;
}
.page-template-page-dark header .gb-menu-item > .gb-menu-link[aria-expanded="true"]::after,
.page-template-page-dark header .gb-menu-item > .gb-menu-link:focus-visible::after,
.page-template-page-dark header .gb-menu-item > .gb-menu-link:hover::after,
.page-template-page-dark header .current-menu-item > .gb-menu-link::after
{
  transform: scaleX(1);
}
}

@media (min-width: 1025px) {
   .page-template-page-dark .mega-menu-card:not(:last-child) {
        border-right: 1px solid var(--strategy-slate);
    }
}

@media (max-width: 1024px) {
    .page-template-page-dark .mega-menu-card:not(:last-child) {
        border-bottom: 1px solid var(--strategy-slate);
    }
}

.page-template-page-dark .gb-menu-container.gb-menu-container--mobile.gb-menu-container--toggled {
	background-color: var(--midnight-intelligence);
}

.page-template-page-dark .gb-menu-container.gb-menu-container--mobile .menu-item:is(.current-menu-item,.current-menu-item:hover,.current-menu-item:focus-within) {
	background-color: var(--midnight-intelligence);
    color: var(--white);
}

/* Dark Theme Footer */

.page-template-page-dark footer {
	background-blend-mode: normal;
    background-image: url(https://tfg2dev.wpenginepowered.com/wp-content/uploads/2026/01/dark-bg-footer.svg);
    background-position: 50% 80%;
    background-repeat: no-repeat;
    background-size: cover;
    position: relative;
    border-top: 1px solid #343e5e;
}

.page-template-page-dark footer::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: url('data:image/svg+xml,<svg width="1440" height="900" viewBox="0 0 1440 900" fill="none" xmlns="http://www.w3.org/2000/svg"><g style="mix-blend-mode:color-dodge" opacity="0.24" filter="url(%23filter0_n_1319_1597)"><rect width="1440" height="900" fill="%23010D26" fill-opacity="0.83"/><line x1="165.645" y1="609.803" x2="165.645" y2="844.342" stroke="url(%23paint0_linear_1319_1597)" stroke-width="0.977248"/></g><defs><filter id="filter0_n_1319_1597" x="0" y="0" width="1440" height="900" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feTurbulence type="fractalNoise" baseFrequency="2.5 2.5" stitchTiles="stitch" numOctaves="3" result="noise" seed="5930" /><feColorMatrix in="noise" type="luminanceToAlpha" result="alphaNoise" /><feComponentTransfer in="alphaNoise" result="coloredNoise1"><feFuncA type="discrete" tableValues="0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 "/></feComponentTransfer><feComposite operator="in" in2="shape" in="coloredNoise1" result="noise1Clipped" /><feFlood flood-color="%23FFFFFF" result="color1Flood" /><feComposite operator="in" in2="noise1Clipped" in="color1Flood" result="color1" /><feMerge result="effect1_noise_1319_1597"><feMergeNode in="shape" /><feMergeNode in="color1" /></feMerge></filter><linearGradient id="paint0_linear_1319_1597" x1="164.656" y1="609.803" x2="164.656" y2="844.342" gradientUnits="userSpaceOnUse"><stop stop-color="%23010D26" stop-opacity="0.86"/><stop offset="0.629808" stop-color="%233876F2"/><stop offset="1" stop-color="%23010D26" stop-opacity="0.73"/></linearGradient></defs></svg>');
    pointer-events: none;
    mix-blend-mode: color-dodge;
	opacity: 0.35;
}

.page-template-page-dark footer .gb-text,
.page-template-page-dark footer a,
.page-template-page-dark .gbp-footer--link-title a mark
{
    color: var(--white);
}

.page-template-page-dark .gbp-section--cta {
	background-image: url('https://tfg2dev.wpenginepowered.com/wp-content/uploads/2026/02/cta-dark-2.svg');
	    background-color: var(--midnight-intelligence);
    color: var(--white);
}

.page-template-parg-dark .gbp-section--cta .gbp-card {
   background-color: rgba(1, 13, 38, 0.9);
    box-shadow: inset 5px 5px 15px rgba(0, 0, 0, 0.3), inset -2px -2px 10px rgba(52, 62, 94, 0.3);
    border: 1px solid rgba(52, 62, 94, 0.5);
}

/* Section CTA */
.gbp-section--cta .gbp-card__inner-inner {
	@media screen and (min-width: 769px) {
		display: grid;
		grid-template-columns: 1fr 1fr;
		grid-column-gap: 4rem;
	}
}

.page-template-page-dark .gbp-section--cta .gbp-card__inner-inner > div > * {
	color: #fff;
}