.elementor-kit-13{--e-global-color-primary:#030648;--e-global-color-secondary:#030648;--e-global-color-text:#42474E;--e-global-color-accent:#00AEEF;--e-global-color-300f748:#000000;--e-global-color-e2a6292:#FFFFFF;--e-global-color-b06f65f:#F0F2F4;--e-global-color-d21d6bc:#0082B3;--e-global-color-2c3521f:#03A4DC;--e-global-color-3610a37:#032644;--e-global-color-ab9c83f:#020C15;--e-global-color-b60fc06:#ABB5C1;--e-global-color-d6f9f62:#FDD205;--e-global-color-040ff3d:#8BC53F;--e-global-color-f7f570b:#EB543C;--e-global-color-b5e75b4:#D8D8D8;--e-global-color-a6972fd:#031253;--e-global-color-cf97c00:#034B89;--e-global-typography-primary-font-family:"Neue Haas Grotesk Display Pro";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Neue Haas Grotesk Display Pro";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Neue Haas Grotesk Display Pro";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Neue Haas Grotesk Display Pro";--e-global-typography-accent-font-weight:500;--e-global-typography-57c25f1-font-family:"Neue Haas Grotesk Display Pro";--e-global-typography-57c25f1-font-size:76px;--e-global-typography-57c25f1-font-weight:400;--e-global-typography-57c25f1-line-height:1.21em;--e-global-typography-2bb3b13-font-family:"Neue Haas Grotesk Display Pro";--e-global-typography-2bb3b13-font-size:48px;--e-global-typography-2bb3b13-font-weight:400;--e-global-typography-2bb3b13-line-height:1.29em;--e-global-typography-aefc784-font-family:"Neue Haas Grotesk Display Pro";--e-global-typography-aefc784-font-size:48px;--e-global-typography-aefc784-font-weight:400;--e-global-typography-aefc784-line-height:1.21em;--e-global-typography-5e22a91-font-family:"Neue Haas Grotesk Display Pro";--e-global-typography-5e22a91-font-size:32px;--e-global-typography-5e22a91-font-weight:300;--e-global-typography-5e22a91-line-height:1.69em;--e-global-typography-00b44a2-font-family:"Neue Haas Grotesk Display Pro";--e-global-typography-00b44a2-font-size:36px;--e-global-typography-00b44a2-font-weight:400;--e-global-typography-00b44a2-line-height:1.22em;--e-global-typography-cb89a39-font-family:"Neue Haas Grotesk Display Pro";--e-global-typography-cb89a39-font-size:26px;--e-global-typography-cb89a39-font-weight:400;--e-global-typography-cb89a39-line-height:1.27em;--e-global-typography-b155fd2-font-family:"Neue Haas Grotesk Display Pro";--e-global-typography-b155fd2-font-size:20px;--e-global-typography-b155fd2-font-weight:400;--e-global-typography-b155fd2-line-height:1.5em;--e-global-typography-183dd07-font-family:"Neue Haas Grotesk Display Pro";--e-global-typography-183dd07-font-size:18px;--e-global-typography-183dd07-font-weight:400;--e-global-typography-183dd07-line-height:1.14em;--e-global-typography-198ca44-font-family:"Sohne";--e-global-typography-198ca44-font-size:21px;--e-global-typography-198ca44-font-weight:400;--e-global-typography-198ca44-line-height:1.48em;--e-global-typography-5bdaa0e-font-family:"Sohne";--e-global-typography-5bdaa0e-font-size:18px;--e-global-typography-5bdaa0e-font-weight:400;--e-global-typography-5bdaa0e-line-height:1.56em;--e-global-typography-e9a49de-font-family:"Sohne";--e-global-typography-e9a49de-font-size:15px;--e-global-typography-e9a49de-font-weight:400;--e-global-typography-e9a49de-line-height:1.67em;--e-global-typography-91b6797-font-family:"Poppins";--e-global-typography-91b6797-font-size:14px;--e-global-typography-91b6797-font-weight:400;--e-global-typography-91b6797-line-height:2.07em;--e-global-typography-91b6797-letter-spacing:0.5px;--e-global-typography-249ff93-font-family:"Neue Haas Grotesk Display Pro";--e-global-typography-249ff93-font-size:20px;--e-global-typography-249ff93-font-weight:200;--e-global-typography-249ff93-line-height:1.35em;--e-global-typography-595b70f-font-family:"Poppins";--e-global-typography-595b70f-font-size:22px;--e-global-typography-595b70f-font-weight:400;--e-global-typography-595b70f-line-height:1em;color:#42474E;font-family:"Sohne", Sans-serif;font-size:18px;font-weight:400;line-height:1.56em;}.elementor-kit-13 e-page-transition{background-color:#FFBC7D;}.elementor-kit-13 p{margin-block-end:0px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1440px;}.e-con{--container-max-width:1440px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS */:root{
  /* ---- fig gradients (use var() in element custom CSS) ---- */
  --fig-grad-brand: linear-gradient(90deg, #030648 0%, #03A4DC 100%);
  --fig-grad-tab: linear-gradient(90deg, #FDD205 0%, #00AEEF 100%);
  --fig-grad-overlay: linear-gradient(90deg, #031253 0%, #034B89 100%);
  --fig-grad-hero-bracket: linear-gradient(90deg, #62BD93 0%, #37B6BC 26%, #13B1DE 51%, #00AEEF 77%, #00AEEF 100%);
  --fig-grad-leg: linear-gradient(180deg, #58BB9E 0%, #A6C554 100%);
  --fig-scrim-navy: linear-gradient(180deg, rgba(0,35,96,0.7) 0%, rgba(0,35,96,0) 100%);
  --fig-navy: #030648;
  --fig-cyan: #00AEEF;
  --fig-cyan-deep: #0082B3;
  --fig-cyan-bright: #03A4DC;
  --fig-panel: #F0F2F4;
  --fig-body: #2C3647;
  --fig-muted: #ABB5C1;
}

/* ==== PF REMEDIATION ==== */
/* ---- sticky nav ---- */
body:not(.elementor-editor-active) [data-elementor-type="header"]{
  position: sticky;
  top: 0;
  z-index: 999;
  background: #000;
}

/* ---- FIXED-SCALE ARCHITECTURE (2026-07-31, client request) ----
   The 65-step viewport `zoom` ladder was REMOVED. Element sizes are now fixed px
   straight from the artboards; a 76px H1 is 76px at 2560, 2048 and 1440.
   Only the outer gutters flex: content sits on a centred 1440 rail (kit container width),
   so at 2560 the gutters are 560 each side, at 2048 they are 304, at 1440 they are 0.
   Below 1440 the rail goes fluid and layout changes happen at breakpoints only. ---- */
body:not(.elementor-editor-active){ zoom: normal; }

/* full-bleed section backgrounds crop rather than scale down */
.e-con.e-parent[data-settings*="background"]{ background-size: cover; }



/* ---- rail + gutter system ----
   --pf-rail 1440 = Sketch content rail (560->2000 on the 2560 canvas)
   --pf-panel 1626 = inset panel rail (467->2093) used by CEO / Featured News / Core Processes / Blog
   Below those widths the rail goes fluid but always keeps a 40px gutter. ---- */
:root{ --pf-rail: 1440px; --pf-panel: 1626px; --pf-gutter: 40px; }

/* Rail: a boxed container centres on its own --content-width (default 1440).
   The 40px gutter is subtracted ONCE — on containers that sit directly on the page
   or directly inside a full-bleed section — never once per nesting level. */
.e-con-boxed > .e-con-inner{
  max-width: min(var(--content-width, var(--pf-rail)), 100%);
  margin-inline: auto;
}
.e-con-boxed.e-parent > .e-con-inner,
.e-con-full > .e-con-boxed > .e-con-inner{
  max-width: min(var(--content-width, var(--pf-rail)), 100% - (var(--pf-gutter) * 2));
}


/* ---- smooth tab/accordion transitions ---- */
.e-n-tabs-content > .e-con{
  animation: pfFade .45s ease both;
}
@keyframes pfFade{
  from{ opacity: 0; transform: translateY(8px); }
  to{ opacity: 1; transform: none; }
}
.e-n-accordion-item{
  transition: all .3s ease;
}
html:not(:has(body.elementor-editor-active)){
  scroll-behavior: smooth;
}
/* ---- default anchor colour ----
   The theme ships #CC3366 (magenta) as the bare-link colour. Nothing shows it today only
   because every anchor wraps a child that sets its own colour — one plain text link would
   render magenta. Fix the token, not the instance (a single post had it patched per-element). */
:root{ --pf-link-fix: 1; }
.elementor a:not([class]),
.page-content a:not([class]):not(.elementor-button){
  color: inherit;
}


/* ---- 2026-08-09 hover fix: stroke-based button icons must never be filled ----
   Elementor's hover text-colour control emits `.elementor-button:hover svg{ fill: ... }`.
   arrow-two-stroke.svg draws with stroke=currentColor fill=none; a fill paints a white
   wedge inside the open chevron on hover. Scoped to svgs declaring fill="none" so solid
   glyph icons (FA) keep their fill; icon colour still follows the label via currentColor. */
.elementor-button svg[fill="none"],
.elementor-button:hover svg[fill="none"],
.elementor-button:focus svg[fill="none"]{ fill: none !important; }

/* ---- breadcrumb separator: frame 07-blog puts the 3x6 chevron 7px after the
   previous crumb and 10px before the next. Replaces the old &nbsp; padding hack,
   which rendered ~7px on 4 pages and ~4px on the other 8. ---- */
.pfcrumbsep{ display:inline-block; margin:0 10px; opacity:.8; }

/* ===== Mega menu - tablet/mobile layout (client 2026-08-10) =====
   At <=1024 the overlay kept its desktop 4-column grid: the columns row
   (8b8dee5) computed 263px wide with four 37.25px tracks, so every heading
   overflowed its track and the labels collided on top of each other.
   Three things cause the 263: kit --pf-gutter 40 applied inside the rail,
   the rail's own fixed width, and the 4-track grid. All three neutralised.
   Lives in the kit rather than post 99 so it cannot collide with concurrent
   edits to the header; move it into ce77484's custom_css when 99 is free. */
@media (max-width: 1024px){
  .elementor-element-ce77484 .e-con{ --pf-gutter: 0px; }
  /* Elementor's own rule is .elementor-99 .elementor-element.elementor-element-a15fb61
     at (0,3,0) with !important, which beat a bare (0,1,0) class .elementor-kit-13 - the rail
     stayed 343px and the columns sat 36px in. Match its specificity. */
  .elementor-99 .elementor-element.elementor-element-a15fb61,
  .elementor-element-a15fb61{
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
  .elementor-element-8b8dee5,
  .elementor-element-0b96ed3{
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 34px !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  .elementor-element-8b8dee5 > .e-con,
  .elementor-element-0b96ed3 > .e-con{
    width: 100% !important;
    max-width: 100% !important;
    flex-wrap: nowrap !important;
  }
}
@media (min-width: 768px) and (max-width: 1024px){
  .elementor-element-8b8dee5,
  .elementor-element-0b96ed3{ grid-template-columns: 1fr 1fr !important; }
}
/* ---- carousel prev/next arrows (client 2026-08-10) ----
   Elementor paints its eicon chevron glyph directly, which overrides the widget's
   own colour control: the buttons computed color:#0082B3 / #080C7F while the glyph
   itself computed rgba(238,238,238,0.9) - near-white arrows on a light panel.
   These are FILLED glyphs (no stroke anywhere), so the fix is to let the fill take
   currentColor, not to zero it - forcing fill:none makes them vanish (SERVICES-709
   LESSONS §4: own fill => filled glyph, leave it painted). ---- */
.elementor-swiper-button svg,
.elementor-swiper-button svg path{ fill: currentColor; }

/* ==== PF-FIX24 (2026-08-21): on phones/tablets the nav bar is position:fixed, so the sticky header WRAPPER collapses to ~12px but still paints the #000 from the sticky-nav rule above - a black strip above the transparent bar (client mobile screenshot). Wrapper transparent below 1025; the bar paints its own black once scrolled. ==== */
@media (max-width:1024px){ body:not(.elementor-editor-active) [data-elementor-type="header"]{ background:transparent !important; } }
/* ==== PF-FIX40 (2026-08-21): on <=1024 the nav bar is position:fixed, so the sticky header WRAPPER keeps a 12px empty band (its sticky placeholder) that shows the white page background above the transparent bar. Collapse the wrapper so the hero starts at y=0 and the transparent nav sits over it, as designed. ==== */
@media (max-width:1024px){ body:not(.elementor-editor-active) [data-elementor-type="header"]{ height:0 !important; min-height:0 !important; overflow:visible !important; } }
/* ==== PF-FIX41 (2026-08-21): with the wrapper collapsed the fixed 72px nav sits OVER the first section (as designed), so the first section's CONTENT must clear it - padding goes on .e-con-inner so the section background still starts at y=0. ==== */
@media (max-width:1024px){ body:not(.elementor-editor-active) [data-elementor-type="wp-page"] > .e-con:first-child > .e-con-inner, body:not(.elementor-editor-active) [data-elementor-type="single-post"] > .e-con:first-child > .e-con-inner, body:not(.elementor-editor-active) [data-elementor-type="archive"] > .e-con:first-child > .e-con-inner{ padding-top:92px !important; } /* PF-FIX43: was [data-elementor-type] which also matched the HEADER template and pushed the logo down 92px */ }
/* ==== PF-FIX42 (2026-08-21): sections with content_width:full render NO .e-con-inner, so PF-FIX41 missed them (Resources hero overlapped the nav). Elementor exposes the authored padding as --padding-top, so this ADDS the nav height instead of replacing it. ==== */
@media (max-width:1024px){ body:not(.elementor-editor-active) [data-elementor-type="wp-page"] > .e-con.e-con-full:first-child, body:not(.elementor-editor-active) [data-elementor-type="single-post"] > .e-con.e-con-full:first-child, body:not(.elementor-editor-active) [data-elementor-type="archive"] > .e-con.e-con-full:first-child{ padding-top:calc(var(--padding-top, 0px) + 72px) !important; } /* PF-FIX43 */ }/* End custom CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'Neue Haas Grotesk Display Pro';
	font-style: normal;
	font-weight: 100;
	font-display: auto;
	src: url('https://ctc.xspider.net/wp-content/uploads/fonts/nhg-display-xthin-100.woff2') format('woff2');
}
@font-face {
	font-family: 'Neue Haas Grotesk Display Pro';
	font-style: normal;
	font-weight: 200;
	font-display: auto;
	src: url('https://ctc.xspider.net/wp-content/uploads/fonts/nhg-display-thin-200.woff2') format('woff2');
}
@font-face {
	font-family: 'Neue Haas Grotesk Display Pro';
	font-style: normal;
	font-weight: 300;
	font-display: auto;
	src: url('https://ctc.xspider.net/wp-content/uploads/fonts/nhg-display-light-300.woff2') format('woff2');
}
@font-face {
	font-family: 'Neue Haas Grotesk Display Pro';
	font-style: normal;
	font-weight: 400;
	font-display: auto;
	src: url('https://ctc.xspider.net/wp-content/uploads/fonts/nhg-display-roman-400.woff2') format('woff2');
}
@font-face {
	font-family: 'Neue Haas Grotesk Display Pro';
	font-style: normal;
	font-weight: 500;
	font-display: auto;
	src: url('https://ctc.xspider.net/wp-content/uploads/fonts/nhg-display-medium-500.woff2') format('woff2');
}
@font-face {
	font-family: 'Neue Haas Grotesk Display Pro';
	font-style: normal;
	font-weight: 700;
	font-display: auto;
	src: url('https://ctc.xspider.net/wp-content/uploads/fonts/nhg-display-bold-700.woff2') format('woff2');
}
/* End Custom Fonts CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'Sohne';
	font-style: normal;
	font-weight: 300;
	font-display: auto;
	src: url('https://ctc.xspider.net/wp-content/uploads/fonts/sohne-leicht-300.woff2') format('woff2');
}
@font-face {
	font-family: 'Sohne';
	font-style: normal;
	font-weight: 400;
	font-display: auto;
	src: url('https://ctc.xspider.net/wp-content/uploads/fonts/sohne-buch-400.woff2') format('woff2');
}
@font-face {
	font-family: 'Sohne';
	font-style: normal;
	font-weight: 500;
	font-display: auto;
	src: url('https://ctc.xspider.net/wp-content/uploads/fonts/sohne-kraftig-500.woff2') format('woff2');
}
@font-face {
	font-family: 'Sohne';
	font-style: normal;
	font-weight: 600;
	font-display: auto;
	src: url('https://ctc.xspider.net/wp-content/uploads/fonts/sohne-halbfett-600.woff2') format('woff2');
}
@font-face {
	font-family: 'Sohne';
	font-style: normal;
	font-weight: 700;
	font-display: auto;
	src: url('https://ctc.xspider.net/wp-content/uploads/fonts/sohne-fett-700.woff2') format('woff2');
}
/* End Custom Fonts CSS */