/*
Theme Name: Whelan Web Design
Author: Ireland Website Design.
Author URI: https://www.irelandwebsitedesign.com/
Version: 3.0.0

/========================= Fonts =========================
font-family: "Share Tech Mono", monospace;
font-family: 'ClashDisplay-Medium', 'ClashDisplay-Medium-fallback', Arial, sans-serif;
font-family: "Plus Jakarta Sans", sans-serif;
*/
@font-face {
  font-family: 'ClashDisplay-Medium';
  src: url('assets/fonts/ClashDisplay-Medium.woff2') format('woff2'),
       url('assets/fonts/ClashDisplay-Medium.woff') format('woff'),
       url('assets/fonts/ClashDisplay-Medium.ttf') format('truetype');
  font-weight: 500;
  font-display: swap;
  font-style: normal;
}
@font-face {
  font-family: 'ClashDisplay-Semibold';
  src: url('assets/fonts/ClashDisplay-Semibold.woff2') format('woff2'),
       url('assets/fonts/ClashDisplay-Semibold.woff') format('woff'),
       url('assets/fonts/ClashDisplay-Semibold.ttf') format('truetype');
  font-weight: 600;
  font-display: swap;
  font-style: normal;
}

/* Metric-matched fallbacks for the two ClashDisplay faces.
 *
 * The heading rules named 'ClashDisplay-Medium' with no fallback family at all —
 * not even a generic — so until the webfont arrived the browser used its own
 * default, which is a serif in most browsers. A 64px hero heading therefore
 * rendered in Times and then reflowed into a geometric sans when the real font
 * swapped in. Lighthouse measured that as a layout shift of 0.1723 in
 * .sb-caption-inner: effectively the whole of the home page's 0.173 CLS.
 *
 * Preloading the webfont did not fix it, because font-display:swap paints the
 * fallback first by definition regardless of how quickly the font arrives.
 *
 * These faces wrap the local Arial (metric-compatible with Helvetica and
 * Liberation Sans, so one set of numbers covers macOS, Windows and Linux) and
 * override its metrics to match ClashDisplay exactly. The fallback then occupies
 * the same space as the real font, so the swap is invisible and nothing moves.
 *
 * Derived from the actual font files with fontkit:
 *   Medium   upm 1000, ascent 890, descent -250, lineGap 90, avg advance 0.62006em
 *   Semibold same vertical metrics, avg advance 0.60046em
 *   Arial    upm 2048, avg advance 0.57429em
 * size-adjust = clashAvgAdvance / arialAvgAdvance; the vertical overrides are then
 * divided by that ratio because they apply to the already-adjusted em.
 * Recompute these if either font file is ever replaced.
 */
@font-face {
  font-family: 'ClashDisplay-Medium-fallback';
  src: local('Arial'), local('Helvetica'), local('Liberation Sans');
  size-adjust: 107.97%;
  ascent-override: 82.43%;
  descent-override: 23.15%;
  line-gap-override: 8.34%;
}
@font-face {
  font-family: 'ClashDisplay-Semibold-fallback';
  src: local('Arial'), local('Helvetica'), local('Liberation Sans');
  size-adjust: 111.49%;
  ascent-override: 79.83%;
  descent-override: 22.42%;
  line-gap-override: 8.07%;
}
/*=============================================================================
   GLOBAL — Base resets, typography defaults, links, images
============================================================================= */
html {scroll-behavior: smooth;}
html,
body {padding: 0;margin: 0;}
body {color: #000000;font-family: "Plus Jakarta Sans", sans-serif;font-weight: 400;font-size: 16px;line-height: 1.6em;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;text-rendering: optimizeLegibility;font-smoothing: antialiased;position: relative;padding-top: 0;}
img {max-width: 100%;width: auto;height: auto;}
/* WCAG 2.2 SC 1.4.3 Contrast (Minimum). #2EA1EA measured 2.84:1 on white and
   2.62:1 on the #F4F6F9 sections -- both well under the 4.5:1 that 16px body text
   needs. It failed on 7 blog posts wherever an inline link sat in body copy.

   #2071A4 is the same hue darkened until it clears the bar with room to spare:
   5.30:1 on white, 4.90:1 on #F4F6F9. The intermediate #2277AD also passes but
   only reaches 4.50:1 on #F4F6F9 -- one nudge from failing again, so it was not
   worth taking.

   This is the DEFAULT so that any new link on a light background is compliant
   without anyone having to think about it. Dark sections opt back out below,
   because on those grounds the original #2EA1EA is the accessible choice. */
a {text-decoration: none;color: #2071A4;}

/* On the dark navy grounds the relationship inverts: #2EA1EA measures 6.08:1
   there while the darkened #2071A4 would drop to 3.54:1 -- so applying the new
   colour everywhere would have FIXED body copy and BROKEN the header, footer and
   every .bg-color-dark section at the same time. These four contexts keep the
   original blue. Anything with its own colour rule (the main nav, buttons) is
   more specific and is unaffected by either rule.

   :not(.button) is load-bearing. Without it this selector scores (0,1,1) against
   .button's (0,1,0), so it won -- and turned the white text on "SEE MORE OF OUR
   WORK", "EXPLORE ALL SERVICES" and "BOOK A FREE CALL" into #2EA1EA sitting on
   the #0574BC gradient: 4.96:1 down to 1.75:1. Caught by diffing the full set of
   774 links before and after, not by the violation count, which barely moved. */
header a:not(.button),
footer a:not(.button),
.bg-color-dark a:not(.button),
.promo-icon-item.active a:not(.button) {color: #2EA1EA;}
a:not(.button):hover {color: #663694;outline: none;}
h1, h2, h3, h4, h5, h6 {font-family: 'ClashDisplay-Medium', 'ClashDisplay-Medium-fallback', Arial, sans-serif;font-weight: 500;color: #000000;line-height: 1.2em;}
/* Form placeholders */
::-webkit-input-placeholder { color: inherit; }
:-moz-placeholder{ color: inherit; }
::-moz-placeholder{ color: inherit; }
:-ms-input-placeholder{ color: inherit; }

/*=============================================================================
   TRANSITIONS — Shared transition rules across interactive elements
============================================================================= */
a, .button, img, header, .swiper-pagination .swiper-pagination-bullet, svg, svg *, header .navigation nav .menu li .sub-menu li:before, .button-circle svg, .team-item *, .portfolio-item *, .image-card-item .image-card-meta, .service-item, .service-item *{-webkit-transition: all 0.3s ease-in-out;-moz-transition: all 0.3s ease-in-out;-ms-transition: all 0.3s ease-in-out;-o-transition: all 0.3s ease-in-out;transition: all 0.3s ease-in-out;}

/*=============================================================================
   ACCESSIBILITY — Screen-reader utilities, skip links
============================================================================= */
.visibility-hidden{position: absolute;width: 1px;height: 1px;padding: 0;margin: -1px;overflow: hidden;clip: rect(0, 0, 0, 0);white-space: nowrap;border: 0;}
.skip-to-content {position: absolute;top: -50px;left: 0;background: #000;color: #fff;padding: 8px 16px;z-index: 1000;text-decoration: none;font-weight: 600;transition: top 0.3s;}
.skip-to-content:focus {top: 0;}

/*=============================================================================
   BUTTONS — All button variants and states
============================================================================= */
.button, button:not(.faq-title, .popup-close, .carousel__button, .video-toggle, .search-btn):not(#wwd-floating-widget-root) > button:not(.wwd-panel) > button{padding: 0 25px; min-width: 140px; font-weight: 400; font-size: 15px; border-radius: 30px; line-height: 1.5em; color: #fff; background: #0574BC; border: 2px solid transparent; position: relative; display: flex; justify-content: center; align-items: center; text-transform: uppercase; min-height: 50px; cursor: pointer; text-align: center; font-family: "Share Tech Mono", monospace; letter-spacing: 0.6px;transition: none;}
.button:not(.faq-title, .popup-close, .carousel__button, .video-toggle, .search-btn):hover{border-color:#000;color: #fff;background: linear-gradient(90deg, #6D20A0 0%, #2758B3 100%);border-color: transparent;}
.button svg{margin-left: 5px;}
.button.style-2{background-color: #fff;color: #111111;border-color: #fff;}
.button.style-2:hover{background: transparent;color: #fff;border-color: #fff;}
.button.style-3{background-color: #fff;}
.button.link{color: #000;text-transform: uppercase;border: none;font-size: 15px;font-weight: 500;min-width: 1px;height: auto;background-color: transparent;width: auto;padding: 0;display: inline-flex;gap: 8px;}
/* #3CBB3C measured 2.51:1 on white and 2.32:1 on #F4F6F9. .button.link is currently
   used on no page, so this shipped nothing -- corrected anyway so it cannot ship a
   failure if that markup returns. #267826 is the same hue darkened: 5.53:1 and
   5.11:1. The nearer #298129 also clears 4.5 but only reaches 4.55:1 on #F4F6F9 --
   one nudge from failing, the same reason #2277AD was passed over at the top. */
.button.link:hover{color: #267826;background-color: transparent;}
.button.link:hover svg path{stroke:#267826;}
button.carousel__button{min-width: 1px;padding: 0;background: none !important;} 

/*=============================================================================
   RTE & LISTS — Rich text editor content, list spacing, heading sizes
============================================================================= */
.rte {color: #292F35;}
.rte a {color: #000;text-decoration: underline;}
.rte p:last-child {margin-bottom: 0;}
.rte strong, 
.entry-content strong {font-weight: 600;} 
/* List spacing */
.rte ul,
.rte ol {padding-left: 20px;}
.rte ul li:not(:last-child),
.rte ol li:not(:last-child) {margin-bottom: 2px;}
.entry-content ul li:not(:last-child),
.entry-content ol li:not(:last-child) {margin-bottom: 2px;}
.rte ul:last-child {margin-bottom: 0;}
/* RTE heading sizes */
.rte h3 { font-size: 24px; }
.rte h4 { font-size: 22px; }
.rte h5 { font-size: 20px; }
.rte h3,
.rte h4,
.rte h5 {margin-bottom: 1rem;}

/*=============================================================================
   SPACING — Column helpers, margin/padding utilities
============================================================================= */
.col-30 {width: calc(30% - 40px * 1 / 2);}
.col-70 {width: calc(70% - 40px * 1 / 2);}
p.m-b-0 {margin-bottom: 10px;} 
.m-b-60{margin-bottom: 60px;}

/*=============================================================================
   UTILITIES — Reusable helpers: rounded blocks, gradients, text effects
============================================================================= */
.rounded-bg {border-radius: 16px;padding: 30px;} 
.text-gradient,.text-gradient-inner a{background: linear-gradient(79.72deg, #900497 -3.24%, #0574BC 107.24%);-webkit-background-clip: text;-webkit-text-fill-color: transparent;}

/*=============================================================================
   SECTIONS & SECTION HEADERS — Section wrappers, headings, layouts, themes
============================================================================= */
section {padding: 80px 0;position: relative;}
/* Section header */
.section-header {position: relative;text-align: center;z-index: 1;}
.section-header.small-width{max-width: 1080px;display: block;margin-left: auto;margin-right: auto;}
.section-heading {font-size: 46px;color: #000000;margin-bottom: 20px;text-align: center;}
.section-heading.small {font-size: 23px;letter-spacing: 0.32px;}
.section-sub-heading {font-size: 46px;font-weight: 500;line-height: 1.3em;text-align: left;}
.section-sub-heading span{color: #2EA1EA;}
.line-break {display: block;}
/* Flex header layout (two-column) */
.section-header.flex-wrap {display: flex;justify-content: space-between;align-items: flex-start;gap: 40px;max-width: 100%;}
.section-left  { width: 35%; }
.section-right { width: calc(100% - 35% - 40px); }
.section-left .section-heading, .section-left .section-sub-heading{text-align: left;}
.section-right .section-sub-heading{}
/* Button row beneath section header */
.flex-btn {display: flex;column-gap: 15px;margin-top: 40px;flex-wrap: wrap;row-gap: 20px;justify-content: center;}
.flex-btn.align-left{justify-content: flex-start;}
.flex-btn.align-right{justify-content: flex-end;}
.bottom-btn-info {margin-top: 8px;font-size: 12px;color: #fff;display: block;}
/* Section background themes */
.bg-color-light { background-color: #F4F6F9; }
.bg-color-wight { background-color: #FFFFFF; }
.bg-color-dark  { background-color: #011D2F; } 
.bg-color-dark .section-header .section-heading,
.bg-color-dark .section-header .section-sub-heading,
.bg-color-dark .section-header .rte,
.bg-color-dark .section-header .cards-label,
.bg-color-dark .rte.botom-content,
.bg-color-dark .rte a {
  color: #fff;
}
.bg-color-dark .card-image-text .section-heading,
.bg-color-dark .card-image-text .section-heading .text-gradient,
.bg-color-dark .card-image-text .section-sub-heading,
.bg-color-dark .card-image-text .rte{color: #fff;}
.bottom-section{max-width: 1170px;margin: 0 auto;margin-top: 40px;text-align: center;}
.section-header.bottom-section .section-sub-heading,
.section-full-width-content .section-sub-heading,
.section-image-card-grid .section-sub-heading{font-family: 'ClashDisplay-Medium', 'ClashDisplay-Medium-fallback', Arial, sans-serif;font-size: 17px;text-transform: uppercase;background: linear-gradient(79.72deg, #900497 -3.24%, #0574BC 107.24%);-webkit-background-clip: text;-webkit-text-fill-color: transparent;letter-spacing: 1.6px;margin-top: 15px;text-align: center;}

/* Animation Sub Heading */
.home .section-sub-heading .reveal-word {display: inline;opacity: 0.5;transition: color 0.4s ease, opacity 0.4s ease; background: none;color: inherit;}
.home .section-sub-heading .reveal-word.revealed {opacity: 1;}

/* Header */
header{position: fixed;width: 100%;top: 0;left: 0;z-index: 3;padding: 15px 0;background-color: rgba(1,29,47,0.9);min-height: 85px;border-bottom: 1px solid #FFFFFF1A;}
header .logo{display: flex;justify-content: flex-start;width: 185px;align-items: center;}
header .logo img{display: block;width: 100%;}
header .logo h1{font-family: "Plus Jakarta Sans", sans-serif;margin: 0;font-size: 3em;color: #fff;}
header .logo svg{width: 185px;display: block;}
header .logo svg, header .logo svg * {transition: none;}

/* Logo assemble animation.
   Replaces @figmania/loader (339 KB, with GSAP bundled inside) whose only job on this
   site was to translate three icon paths into place. The offsets below are the literal
   values from the old anim:x / anim:y attributes and are in viewBox USER UNITS, not
   CSS pixels -- the svg is viewBox="0 0 185 36", so a px length on an SVG child resolves
   in that coordinate system. Do not "fix" them to look like screen pixels.
   GSAP mapped its "ease-out" to power1.out (quadratic), which is NOT the same curve as
   CSS ease-out, hence the explicit bezier.
   Note the three paths live inside <mask id="mask0_4161_31836">, so what is animating is
   the mask; the visible pixels are the gradient <rect> showing through it. */
.wwd-logo-piece{animation-duration: 1.4s;animation-timing-function: cubic-bezier(.25,.46,.45,.94);animation-fill-mode: both;}
.wwd-logo-piece--a{animation-name: wwd-logo-left;}
.wwd-logo-piece--b{animation-name: wwd-logo-up;}
.wwd-logo-piece--c{animation-name: wwd-logo-down;}

@keyframes wwd-logo-left{from{transform: translateX(-66px);}to{transform: none;}}
@keyframes wwd-logo-up{from{transform: translateY(50px);}to{transform: none;}}
@keyframes wwd-logo-down{from{transform: translateY(-40px);}to{transform: none;}}

@media (prefers-reduced-motion: reduce){
  .wwd-logo-piece{animation: none;}
}
header .navigation{position: unset;}
header .navigation .container{position: relative;}
header .header-icons{justify-content: flex-end;align-items: center;width: calc(100% - 185px);}
header .navigation nav{justify-content: center;display: flex;}
header .navigation nav{align-items: center;margin:0 auto;}
header .navigation nav .menu{padding: 0;margin: 0;width: 100%;column-gap: 0;}
header .navigation nav .menu ul{margin-bottom: 0;padding: 0;display: flex;align-items: center;justify-content: space-between;width: 100%;}
header .navigation nav .menu li{display: flex;flex-wrap: wrap;align-items: center;padding:0;}
header .navigation nav .menu li a{display: flex;color: #fff;font-size: 15px;text-decoration: none;position: relative;padding: 15px 15px;text-transform: capitalize;align-items: center;text-align: center;justify-content: center;margin: 0 8px;font-family: 'ClashDisplay-Medium', 'ClashDisplay-Medium-fallback', Arial, sans-serif;letter-spacing: 1.2px;}
header .navigation nav .menu>li:hover>a:before{opacity: 1;visibility: visible;}
header .navigation nav .menu li.menu-item-has-children > a:after{content: "";display: block;position: relative;background-image: url(images/menu-down.svg);width: 24px;height: 24px;z-index: 1;background-size: 100%;background-repeat: no-repeat;background-position: center;margin-left: 3px;}
/*header .navigation nav .menu li:last-child a{padding-right: 0;}*/
header .navigation nav .menu li a:hover, 
header .navigation nav .menu li a:focus, 
header .navigation nav .menu li a:active{color: #2EA1EA!important;}
header .navigation nav .menu > li > a:hover, 
header .navigation nav .menu > li.current-menu-item > a, 
header .navigation nav .menu > li.current-menu-parent > a{color: #2EA1EA;}
header .navigation nav .menu > li > a:hover:after, header .navigation nav .menu > li.current-menu-parent > a:after{}
header .navigation nav .menu li.menu-item-has-children{position: relative;}
header .navigation nav li.menu-item-has-children .sub-menu {padding: 20px 15px;margin: 0;background-color: #fff;position: absolute;top: 70px;left: 0;border-radius: 18px;width: 280px;text-align: left;z-index: -2;visibility: hidden;opacity: 0;-webkit-transition: 0.3s ease-in-out;-o-transition: 0.3s ease-in-out;-moz-transition: 0.3s ease-in-out;-ms-transition: 0.3s ease-in-out;transition: 0.3s ease-in-out;display: block;box-shadow: 0px 4px 4px 0px #00000040;}
header .navigation nav .menu li:hover .sub-menu, 
header .navigation nav .menu li:focus-within > .sub-menu{visibility: visible;opacity: 1;z-index: 2;}
/* WCAG 2.2 SC 1.4.13 Content on Hover or Focus -- the "dismissible" part.
   The rules just above open this panel on :hover and :focus-within, in CSS alone,
   so there was no way to close it without moving the pointer or tabbing onward.
   main-header.php now sets this class on Escape and removes it again once the
   pointer or focus leaves, so the menu still behaves normally afterwards.
   !important is deliberate: the nested-submenu rules below score higher than this
   selector, and a dismissal has to beat every hover/focus rule at any depth. */
header .navigation nav .menu li.wwd-submenu-dismissed .sub-menu{visibility: hidden !important;opacity: 0 !important;z-index: -2 !important;}
header .navigation nav .menu li .sub-menu li{margin: 0 0 8px;display: block;width: 100%;padding: 0;background-color: transparent;position: relative;}
header .navigation nav .menu li .sub-menu li:last-child{margin-bottom: 0;}
header .navigation nav .menu li .sub-menu li a{display: block;width: 100%;text-align: left;padding: 5px 5px;color: #000000;z-index: 1;}
header .navigation nav .menu li .sub-menu li a:hover,
header .navigation nav .menu li .sub-menu li.current-menu-item a{background-color: transparent;color: #2EA1EA !important;}
header .navigation nav .menu li.menu-item-has-children .sub-menu li.menu-item-has-children a:after{transform: rotate(270deg);right: 0;top: 9px;background-image: url(images/menu-down.svg);}
header .navigation nav li.menu-item-has-children .sub-menu li .sub-menu{opacity: 0;visibility: hidden;}
header .navigation nav li.menu-item-has-children .sub-menu li:hover .sub-menu,
header .navigation nav li.menu-item-has-children .sub-menu li:focus-within .sub-menu{opacity: 1;visibility: visible;}
header .navigation nav li.menu-item-has-children .sub-menu .sub-menu {right: -10px;left: 270px;top: 0;}
header .navigation nav .menu li.menu-item-has-children .sub-menu li.menu-item-has-children a:hover:after{background-image: url(images/menu-down.svg);}

/* Mega menu */
header .navigation nav li.menu-item-has-children.menu-services {position: unset;}
header .navigation nav li.menu-services .sub-menu{width: 1170px;margin: 0 auto;display: flex;right: 0;align-items: flex-start;}
header .navigation nav li.menu-services .sub-menu li{margin: 0;}
header .navigation nav .menu li.menu-services>.sub-menu>li>a{font-size: 13px;letter-spacing: 1.4px;text-transform: uppercase;font-weight: 400;font-family: "Share Tech Mono", monospace;margin: 0 0 10px;}
header .navigation nav .menu li.menu-services>.sub-menu>li>a:after{display: none;}
header .navigation nav li.menu-services .sub-menu li.menu-col-2{width: 70%;}
header .navigation nav li.menu-services .sub-menu li.menu-col-1{width: 30%;}
header .navigation nav li.menu-services .sub-menu li .sub-menu{position: relative;width: 100%;visibility: hidden;opacity: 0;box-shadow: none;flex-wrap: wrap;left: inherit;right: inherit;padding: 0;margin: 0;z-index: -1;}
header .navigation nav li.menu-services:hover .sub-menu li .sub-menu,
header .navigation nav li.menu-services:focus-within .sub-menu li .sub-menu{opacity: 1;visibility: visible;z-index: 1;}
header .navigation nav li.menu-services .sub-menu li.menu-col-2 .sub-menu{column-gap: 20px;row-gap: 2px;}
header .navigation nav li.menu-services .sub-menu li.menu-col-2 .sub-menu li{width: calc(50% - 20px * 1 / 2);}
header .navigation nav li.menu-services .sub-menu li .sub-menu li a{margin: 0;display: flex;flex-wrap: wrap;justify-content: flex-start;}
header .navigation nav li.menu-services .sub-menu li .sub-menu li a .menu-item-image-wrapper img{display: block;margin-right: 8px;}

/* Sticky Header */
.header-fixed header{position: fixed;z-index: 5;backdrop-filter: blur(5px);transition: background-color 0.5s ease;}
.admin-bar header {top: 32px;}

/* Hamburger */
body.scroll-none{overflow: hidden;}
.overlay{display: none;}
.scroll-none .overlay{display: block;left: 0;top: 0;width: 100%;height: 100%;background-color: rgba(0,0,0,0.25);z-index: 3;position: fixed;}
.hamburger-trigger{margin: 0 0 0 10px;display: none;align-items: center;cursor: pointer;line-height: 1;background: none;border: 0;padding: 0;color: inherit;}
.hamburger-logo{margin-bottom: 0;display: block;padding: 15px 0 15px;border-bottom: 1px solid #AFC0D666;}
.hamburger-logo img{width: 200px;max-width: 60%;}
.hamburger-menu{display: block; position: fixed; top: 0; left: 0; padding: 0; width: 350px; max-width: 100%; height: 100vh; z-index: 4; background-color: rgba(20,20,26,0.62); border-right: 1px solid #EEEEEE; backdrop-filter: blur(50px) saturate(150%); transform: translateX(-100%); visibility: hidden; opacity: 0; transition: transform .55s cubic-bezier(.76,0,.24,1), opacity .35s ease, visibility 0s linear .35s;}
.hamburger-menu.is-active{transform: translateX(0); visibility: visible; opacity: 1; transition: transform .55s cubic-bezier(.76,0,.24,1), opacity .3s ease, visibility 0s linear 0s;}
.hamburger-menu .hamburger-scroll{height: calc(100dvh - 90px);overflow-y: auto;padding: 60px 20px 20px;}
.hamburger-close {position: absolute;right: 15px;top: 10px;background: none;border: 0;padding: 0;cursor: pointer;line-height: 1;color: inherit;}
.hamburger-menu .hamburger-inner{padding: 0;}
.hamburger-menu-inner{position: relative;}
.hamburger-menu .meagmenu__type .mm-item{width: 100%;}   
.hamburger-menu li .sub-menu li{margin: 0;}
.hamburger-menu li .sub-menu-trigger{display: block;border: 0;background-color: transparent;color: inherit;background-image: url(images/menu-down.svg);width: 40px;height: 40px;position: absolute;right: 0;top: 10px;cursor: pointer;background-size: 22px;padding: 0px;background-repeat: no-repeat;background-position: center;}
.hamburger-menu li .sub-menu-trigger.active{transform: rotate(180deg);}
.hamburger-menu .sub-menu{display: none;list-style-type: none;margin: 0;padding: 0 0 0 10px;}
.hamburger-menu .sub-menu .sub-menu{padding: 0;}
/*.parent-active > .sub-menu{display: block;}*/
.hamburger-menu li.menu-item-has-children.parent-active > .sub-menu-trigger{transform: rotate(-180deg);}
.hamburger-menu .mm-item-image {display: none;}
.hamburger-menu .flex-btn{display: none;margin-top: 20px;}
.hamburger-menu .sidebar-menu{padding: 0 0 20px;margin:0 0 20px;border-bottom: 1px solid rgba(255, 255, 255, 0.035);}
.hamburger-menu .sidebar-menu li{position: relative;list-style-type: none;border-top: 1px solid rgba(255, 255, 255, 0.035);}
.hamburger-menu .sidebar-menu li a{font-size: 18px;color: #fff;display: block;line-height: 1.3;padding: 20px 30px 20px 0;text-transform: capitalize;font-weight: 500;}
.hamburger-menu .sidebar-menu li a:hover{color: #2EA1EA;}
.hamburger-menu .sidebar-menu li:last-child a{border-bottom: none;}
.hamburger-menu .sidebar-menu li li a {padding: 20px 20px 20px 0;font-size: 16px;display: flex;align-items: center;gap: 5px;}
.hamburger-menu .sidebar-menu li li li a{padding: 15px 20px 15px 30px;}
.hamburger-menu .sidebar-menu li li span.sub-menu-trigger {/*top: 8px;*/}
.hamburger-menu .sidebar-menu li li li a .menu-item-image-wrapper{display: none;}
.hamburger-menu .button {padding: 15px 0;font-size: 18px;}

/* Home Banner */
.section-banner{position: relative;padding: 0;min-height: 885px;background-color: #011D2F;display: flex;justify-content: space-between;}
.section-banner .sb-caption{width: 45%;max-width: 45%;margin: 0;display: flex;align-items: center;justify-content: space-between;z-index: 1;padding: 0 15px;margin-top: 80px;padding-left: max((100vw - 1440px) / 2, 50px);}
.section-banner .sb-caption-inner{position: relative;text-align: left;width: 100%;}
.section-banner .sb-heading{font-family: 'ClashDisplay-Medium', 'ClashDisplay-Medium-fallback', Arial, sans-serif;font-size: 64px;line-height: 1.1em;color: #fff;margin: 0;}
.section-banner .sb-content{font-size: 18px;color: #fff;margin: 20px 0 0;}
.section-banner .flex-btn{column-gap: 30px;align-items: flex-start;}
.section-banner .flex-btn-inner + img{padding: 5px;border-radius: 8px;background-color: #fff;}
.section-banner .sb-bridges{position: absolute;top: -120px;right: -100px;}
.section-banner .sb-bridges img{display: block;animation: spin 6s linear infinite;transform-origin: center center;box-shadow: 1px 12px 20.8px 6px #00000033;border-radius: 50%;}
@keyframes spin {
    from {transform: rotate(0deg);}
    to {transform: rotate(360deg);}
}
.section-banner .sb-images{width: 50%;overflow: hidden;position: relative;padding: 0 100px;}
.section-banner .sb-images:before{content:'';display: block;position: absolute;left:0;bottom:0;height:240px;width: 100%;background: linear-gradient(180deg, rgba(1, 29, 47, 0) 0%, #011D2F 100%);z-index: 1;}
.section-banner .sb-images img{display:block;}
.stage {display: flex;gap: 25px;align-items: center;padding: 0;position: relative;}
.panel {width: calc(33.33% - 20px * 2 / 3);height: 100%;overflow: hidden;position: relative;flex-shrink: 0;transform: skew(350deg, 10deg);}
.track {position: absolute;top: 0;left: 0;width: 100%;will-change: transform;}
.track img {width: 100%;display: block;}
.panel-1 .track { animation: scrollUp 48s linear infinite; }
.panel-2 .track { animation: scrollDown 54s linear infinite; }
.panel-3 .track { animation: scrollUp 44s linear infinite; }
@keyframes scrollUp {
    from { transform: translateY(0); }
    to { transform: translateY(-50%); }
}
@keyframes scrollDown {
    from { transform: translateY(-50%); }
    to { transform: translateY(0); }
}
.mask-top, .mask-bottom {position: absolute;left: 0;width: 100%;height: 80px;pointer-events: none;z-index: 3;}
.mask-top { top: 0; background: linear-gradient(to bottom, #0a1628 0%, transparent 100%); }
.mask-bottom { bottom: 0; background: linear-gradient(180deg, rgba(1, 29, 47, 0) 0%, #011D2F 100%); }
/*.panel:hover .track {animation-play-state: paused;}*/

/* Inner Page Banner */
.section-banner .sb-sub-heading{font-size: 17px;color: #2EA1EA;text-transform: uppercase;letter-spacing: 1.6px;margin: 5px 0 0;font-family: 'ClashDisplay-Semibold', 'ClashDisplay-Semibold-fallback', Arial, sans-serif;}
.section-banner.inner-v2{min-height: 500px;}
.section-banner.inner-v2 .sb-caption{width: 1280px;max-width: 100%;margin-left: auto;margin-right: auto;padding-left: 15px;}
.section-banner.inner-v2 .sb-caption-inner{text-align: center;padding: 86px 0;}
.section-banner.inner-v2 .sb-heading{font-size: 54px;}
.section-banner.inner-v2 .sb-content{margin-bottom: -5px;}

/* Swiper Navigation */
.mySwiper .swiper-button-next,
.mySwiper .swiper-button-prev{width: 48px;height: 48px;background-color: #fff;top: 0;margin: 0;z-index: 2;border: 1px solid #AFC0D666;transform: translateY(0);border-radius: 16px;position: relative;top: inherit;left: inherit;right: inherit;}
.mySwiper .swiper-button-prev{right: 10px;}
.mySwiper .swiper-button-next{right: 0;}
.mySwiper .swiper-button-next:after,
.mySwiper .swiper-button-prev:after{display: none;}
.mySwiper .swiper-button-next svg,
.mySwiper .swiper-button-prev svg{width: 24px;height: 24px;}
.swiper-controls.flex {justify-content: flex-end;bottom: -50px;position: relative;}

/* Logo Slider */
.section-logo-slider{position: relative;}
.section-logo-slider .section-heading{text-align: left;color: #fff;margin: 0;}
.section-logo-slider>.flex-wrap{justify-content: space-between;align-items: center;gap:40px;}
.section-logo-slider .section-header{width: 220px;}
.section-logo-slider .logo-slider{width: calc(100% - 260px);}
.section-logo-slider .logo-slider:before{content: '';position: absolute;left: 0;top: 0;width: 120px;height: 100%;z-index: 2;background: linear-gradient(270deg, rgba(1, 29, 47, 0) 0%, #011D2F 90%);}
.section-logo-slider .logo-slider:after{content: '';position: absolute;right: 0;top: 0;width: 120px;height: 100%;z-index: 2;background: linear-gradient(270deg, #011D2F 10%, rgba(1, 29, 47, 0) 100%);}
.logo-slider .logo-item{display: flex;align-items: center;justify-content: center;padding: 0;border: 1px solid #FFFFFF1A;border-radius: 16px;height: 90px;}
.logo-slider .swiper-wrapper {transition-timing-function: linear !important;}

/* Counter */
.section-counter{position: relative;}
.section-counter .rounded-bg{background-color: #fff;}
.counter-grid{gap: 24px;margin:0;}
.counter-item{text-align: center;width: calc(25% - 24px * 3 / 4);}
/* line-height was inherited from the h1..h6 rule (1.2em). These are divs now
   (VO-03 -- stat figures are not headings), so it is pinned here: without it they
   fall back to the body's 1.6em and every counter grows ~18px. */
.counter-item .counter-heading{font-size: 46px;font-weight: 500;font-family: 'ClashDisplay-Medium', 'ClashDisplay-Medium-fallback', Arial, sans-serif;margin: 0;line-height: 1.2em;}

/* Icon Card Grid */
.section-icon-card-grid{position: relative;}
.section-image-card-grid .section-header:not(.bottom-section) .section-sub-heading{margin-bottom: -20px;}
.icon-grid{gap: 40px;}
.card-grid-2 .icon-item{width: calc(50% - 40px *1 / 2);}
.card-grid-3 .icon-item{width: calc(33.33% - 40px * 2 / 3);}
.card-grid-4 .icon-item{width: calc(25% - 40px * 3 / 4);}
.icon-item{border: 1px solid #AFC0D666;border-radius: 16px;padding: 50px 30px 50px;overflow: hidden;position: relative;}
.icon-item::before{content: "";position: absolute;inset: 0;border-radius: 16px;padding: 1.5px;background: linear-gradient(79.72deg, #900497 -3.24%, #0574BC 107.24%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite: xor;mask-composite: exclude;opacity: 0;transition: opacity 0.3s ease;}
.icon-item:hover::before{opacity: 1;}
.icon-item .icon-card-image svg{display: block;}
.icon-item .icon-heading, .icon-item .rte, .icon-item .icon-price{color: #000;}
.icon-item .icon-heading{font-size: 21px;margin-bottom: 15px;}
.icon-item .icon-price{font-size: 28px;font-family: 'ClashDisplay-Medium', 'ClashDisplay-Medium-fallback', Arial, sans-serif;font-weight: 500;margin: 20px 0 0;}
.icon-item .icon-card-meta{position: relative;}
.card-grid-2 .icon-item{display: flex;align-content: flex-start;gap: 30px;}
.card-grid-2 .icon-card-image{width: 96px;}
.card-grid-2 .icon-card-meta{width: calc(100% - 96px - 30px);position: relative;z-index: 1;}
.card-grid-3 .icon-item .icon-card-image, .card-grid-4 .icon-item .icon-card-image{margin-bottom: 20px;}
.icon-item.bg-color-dark .icon-heading,
.icon-item.bg-color-dark .rte,
.icon-item.bg-color-dark .icon-price{color: #fff;}
.section-icon-card-grid .rte.botom-content{text-align: center;margin: 25px 0 0;}

/* Icon Card Slider */
.section-icon-card-slider{position: relative;overflow-x: hidden;}
.section-icon-card-slider .flex-btn{margin-top: 0;}
.icon-card-slider .swiper-controls{width: 100px;justify-self: flex-end;z-index: 2;}
.icon-card-slider, .icon-card-slider-2{overflow: visible;}
.icon-card-item{border: 1px solid #AFC0D666;border-radius: 16px;padding: 30px;overflow: hidden;position: relative;background-color: #fff;cursor: default;pointer-events: unset;}
.icon-card-item::before{content: "";position: absolute;inset: 0;border-radius: 16px;padding: 1px;background: linear-gradient(79.72deg, #900497 -3.24%, #0574BC 107.24%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite: xor;mask-composite: exclude;opacity: 0;transition: opacity 0.3s ease;}
.icon-card-item:hover::before{opacity: 1;}
.icon-card-item .icon-card-image{margin-bottom: 25px;justify-content: space-between;align-items: center;}
.icon-card-item .icon-card-image span{background: linear-gradient(79.72deg, #900497 -3.24%, #0574BC 107.24%);width: 36px;height: 36px;border-radius: 50%;align-items: center;justify-content: center;font-size: 13px;font-weight: 500;color: #fff;display: flex;}
.icon-card-item .icon-card-heading, .icon-card-item .rte{color: #000;position: relative;}
.icon-card-item .icon-card-heading{font-size: 21px;margin-bottom: 15px;}

/* Numbered pagination dots */
.icon-card-slider-2 .icon-card-item .icon-card-image span{width: auto;height: auto;border-radius: 16px;padding: 0 12px;}
.swiper-numbered-pagination{background-color: #fff;border-radius: 16px;padding: 30px;margin-bottom: 50px;}
.icon-card-slider-2 ~ .swiper-pagination,
.swiper-numbered-pagination {display: flex;align-items: center;justify-content: center;gap: 8px;padding: 15px 0;}
.swiper-numbered-pagination .swiper-pagination-bullet {width: 80px;height: 80px;border-radius: 50%;background: #F4F6F9;border: 15px solid #fff;font-size: 17px;font-weight: 500;display: flex;align-items: center;justify-content: center;cursor: pointer;opacity: 1;line-height: 1;font-family: 'ClashDisplay-Medium', 'ClashDisplay-Medium-fallback', Arial, sans-serif;}
.swiper-numbered-pagination .swiper-pagination-bullet-active {border-color: #F4F6F9;color: #ffffff;background: linear-gradient(79.72deg, #900497 -3.24%, #0574BC 107.24%);}

/* Grants Card */
.section-grants-card{position: relative;}
.section-grants-card .image-card-grid{gap:40px}
.section-grants-card .image-card-grid .image-card-item{width: calc(25% - 40px * 3 / 4);background-color: #fff;padding: 20px;border-radius: 16px;}
.section-grants-card .image-card-grid .image-card-item img{display: block;margin:0 auto 20px;}
.section-grants-card .image-card-grid .image-card-item .image-card-heading{font-size:28px;margin-bottom: 15px;color: #000;}
.section-grants-card .image-card-grid .image-card-item .rte{color: #000;}
.section-grants-card .image-card-grid .image-card-item .rte h4{font-size: 17px;text-transform: uppercase;margin: -5px 0 5px;border-top: 1px solid #011D2F;padding-top:25px;letter-spacing: 1px;}

/* Service Icon */
.section-service-icon{position: relative;}
.service-icon-grid{gap: 24px;}
.service-icon-item{width: calc(25% - 24px * 3 / 4);border: 1px solid #FFFFFF1A;border-radius: 16px;padding: 60px 20px 80px;text-align: center;overflow: hidden;background-color: #011D2F;position: relative;}
.service-icon-item::before{content: "";position: absolute;inset: 0;border-radius: 16px;padding: 1px;background: linear-gradient(79.72deg, #900497 -3.24%, #0574BC 107.24%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite: xor;mask-composite: exclude;opacity: 0;transition: opacity 0.3s ease;}
.service-icon-item:hover::before{opacity: 1;}
.service-icon-item .icon-card-image{margin-bottom: 25px;}
.service-icon-item .icon-card-image svg{display: block;margin: 0 auto;}
.service-icon-item .service-icon-heading, .service-icon-item .rte{color: #fff;text-align: center;}
.service-icon-item .service-icon-heading{font-size: 21px;margin-bottom: 15px;}

/* Service Grid */
.section-service-grid{}
.section-service-grid .service-label{font-family: 'ClashDisplay-Medium', 'ClashDisplay-Medium-fallback', Arial, sans-serif;color: #111;text-align: center;font-size: 17px;font-style: normal;font-weight: 600;line-height: 120%;letter-spacing: 1.7px;text-transform: uppercase;}
.service-grid{gap: 40px;margin-bottom: 40px;}
.service-item{width: calc(33.33% - 40px * 2 / 3);border: 1px solid #AFC0D666;border-radius: 16px;padding: 40px;overflow: hidden;position: relative;}
.service-item .service-icon{background-color: #F4F6F9;width: 144px;height: 144px;border-radius: 16px;display: flex;align-items: center;justify-content: center;margin: 0 auto;margin-bottom: 20px;}
.service-item .service-icon svg{display: block;}
.service-item .service-name{text-align: center;font-size: 21px;margin: 0;}
.service-item:hover{background: linear-gradient(79.72deg, #900497 -3.24%, #0574BC 107.24%);}
.service-item:hover .service-name{color: #fff;}
.service-item:hover .service-icon{background-color: transparent;}
.service-item:hover .service-icon svg{transform: scale(1.25);}
.service-item:hover .service-icon svg path{stroke: #fff;}
.service-item:hover .service-icon svg.stroke-fill path{fill: #fff;stroke: inherit;}

/* Promo Icon Grid */
.section-promo-icon-grid{position: relative;}
.promo-icon-grid{gap: 24px;}
.promo-icon-item{width: calc(25% - 24px * 3 / 4);border: 1px solid #AFC0D666;border-radius: 16px;padding: 30px;overflow: hidden;background-color: #fff;position: relative;min-height: 420px;transition: width 0.55s cubic-bezier(0.22, 1, 0.36, 1);cursor: pointer;}
.promo-icon-item .promo-card-image{margin-bottom: 15px;}
.promo-icon-item .promo-icon-heading{color: #000;font-size: 24px;}
.promo-icon-item .rte{opacity: 0;transform: translateY(8px);transition: opacity 0.3s ease 0.15s, transform 0.3s ease 0.15s;}
.promo-icon-item .rte span{display: block;margin-bottom: 15px;}
.promo-icon-item .promo-icon-link{display: flex;position: absolute;bottom: 30px;left: 30px;}
.promo-icon-item .promo-icon-link:hover svg{transform: rotate(45deg);}
.promo-icon-item .promo-icon-link:hover svg rect{fill: #0574BC;}
.promo-icon-item .promo-icon-link:hover svg path{stroke: #fff;}
.promo-icon-item.active{width: 45%;background-color: #011D2F;}
.promo-icon-item.active .promo-icon-heading, .promo-icon-item.active .rte{color: #fff;}
.promo-icon-item.active .rte { opacity: 1; transform: translateY(0); }

/* Image with Text */
.card-wrapper.image-left .card-image-wrapper{justify-content: flex-start;}
.card-image-wrapper img{display: block;width: 100%;}
.card-wrapper.image-left{flex-direction: row-reverse;}
.card-wrapper{gap: 40px;align-items: center;position: relative;z-index: 1;width: 100%;justify-content: space-between;}
.card-wrapper .col-2{width: calc(48% - 40px * 1 / 2);}
.section-image-text{position: relative;background-position: center;background-size: cover;background-repeat: no-repeat;}
.section-image-text .card-image-text .section-heading{text-align: left;}
.section-image-text .card-image-wrapper{position: relative;overflow: hidden;display: flex;justify-content: flex-end;}
.section-image-text .card-image-wrapper img{display: block;width: auto;max-width: 100%;mix-blend-mode: multiply;border-radius: 16px;}
.card-image-wrapper.image-mask{ -webkit-mask-image: url(images/w-image-mask.svg);mask-image: url(images/w-image-mask.svg);-webkit-mask-repeat: no-repeat;mask-repeat: no-repeat;-webkit-mask-size: contain;mask-size: contain;-webkit-mask-position: center;mask-position: center;}
.card-image-wrapper.image-mask img {width: 100%;height: 100%;object-fit: cover;display: block;}
.card-image-wrapper.image-mask::before{content: '';display: block;width: 100%;height: 100%;background-image: url(images/w-image-mask.svg);position: absolute;left: 0;top: 0;background-size: 100%;opacity: 0.85;background-repeat: no-repeat;background-position: center;}
.card-image-wrapper.image-mask:hover img{transform: scale(1.05);}
.section-image-text .section-sub-heading{font-family: 'ClashDisplay-Medium', 'ClashDisplay-Medium-fallback', Arial, sans-serif;font-size: 17px;text-transform: uppercase;background: linear-gradient(79.72deg, #900497 -3.24%, #0574BC 107.24%);-webkit-background-clip: text;-webkit-text-fill-color: transparent;letter-spacing: 1.6px;margin-bottom: 15px;}
.section-image-text .rte + .section-sub-heading{margin-top: 20px;}
.section-image-text.p-b-0 .card-image-text{padding-bottom: 50px;}
.section-image-text.p-b-0 .card-wrapper{align-self: flex-end;}
.section-image-text.p-b-0 .card-image{align-self: flex-end;display: flex;}
.section-image-text .full-width.card-wrapper.image-left .card-image-text{padding-right: max((100vw - 1440px) / 2, 50px);}
.section-image-text .full-width.card-wrapper.image-right .card-image-text{padding-left: max((100vw - 1440px) / 2, 50px);}
.section-image-text .full-width.card-wrapper .card-image-wrapper img{border-radius: 0;}
.section-image-text.v2 .card-wrapper{align-items: flex-start;}

/* Portfolio Logo */
.section-portfolio-showcase{position: relative;}
.portfolio-showcase {gap: 40px;row-gap: 60px;}
.showcase-item{width: calc(50% - 40px * 1 / 2);}
.showcase-card-meta{}
.showcase-item .showcase-heading{font-size: 28px;}
.showcase-item .image-card-img{position: relative;border-radius: 16px;overflow: hidden;margin-bottom: 20px;}
.showcase-item .flex-btn{justify-content: flex-start;margin-top: 20px;}
.showcase-item .showcase-image-slider{border-radius: 16px;overflow: hidden;margin-bottom: 20px;}
.showcase-item .showcase-image-slider .swiper-slide{aspect-ratio: 3 / 2;}
.showcase-item .showcase-image-slider img{display: block;width: 100%;}
/* WCAG 2.2 SC 2.5.8 Target Size (Minimum). These bullets were 12x12 sitting 20px
   apart centre to centre, so they failed on both size and spacing -- 115 instances
   across 16 portfolio pages, the site's only remaining target-size failure.
   The box is now 24x24 and the dot you actually see moved to ::after at its original
   12x12, so each dot looks exactly as before. The row of dots does get wider
   (92px -> 152px) because the targets previously overlapped. */
.showcase-item .swiper-pagination-bullet{width: 24px;height: 24px;border: 0;background: transparent;opacity: 1;display: inline-flex;align-items: center;justify-content: center;}
.showcase-item .swiper-pagination-bullet::after{content: "";width: 12px;height: 12px;border-radius: 50%;border: 2px solid #fff;box-sizing: border-box;}
.showcase-item .swiper-pagination-bullet.swiper-pagination-bullet-active::after{background: #0574BC;}

/* Portfolio Slider/ Grid */
.section-portfolio-slider{position: relative;overflow: hidden;} 
.portfolio-slider{overflow: visible;}
.portfolio-slider.mySwiper .swiper-button-prev,
.portfolio-slider.mySwiper .swiper-button-next{position: absolute;top: 50%;transform: translateY(-50%);}
.portfolio-slider.mySwiper .swiper-button-prev{left: -50px;}
.portfolio-slider.mySwiper .swiper-button-next{right: -50px;}
.portfolio-item{position: relative;overflow: hidden;}
.portfolio-item a{display: block;position: relative;}
.portfolio-item .portfolio-image{position: relative;border-radius: 16px;overflow: hidden;aspect-ratio: 3 / 2;}
.portfolio-item .portfolio-image:before{content:'';display: block;width: 100%;height: 100%;position: absolute;left: 0;top: 0;background: linear-gradient(180deg, rgba(0, 0, 0, 0) 75%, rgba(0, 0, 0, 0.5) 88%, #000000 100%);z-index: 1;}
.portfolio-item .portfolio-image img{display: block;width: 100%;}
.portfolio-item .video-wrapper{height: 100%;}
.portfolio-item .video-wrapper video{width: 100%;height: 100%;display: block;}
.portfolio-item .portfolio-link{position: absolute;top: 20px;right: 20px;align-items: center;display: flex;gap: 10px;}
.portfolio-item .portfolio-link span{font-size: 14px;letter-spacing: 1.4px;font-family: "Share Tech Mono", monospace;text-transform: uppercase;color: #fff;opacity: 0;}
.portfolio-item:hover .portfolio-link svg {transform: rotate(-45deg);}
.portfolio-item:hover .portfolio-link svg rect{fill: #0574BC;}
.portfolio-item:hover .portfolio-link svg path{stroke: #fff;}
.portfolio-item:hover .portfolio-link span{opacity: 1;}
.portfolio-item .portfolio-meta{color: #fff;position: absolute;bottom: 0;left: 0;width: 100%;padding: 30px 30px 25px;z-index: 1;transform: translateY(80px);}
.portfolio-item .portfolio-label{gap: 10px;}
.portfolio-item .portfolio-label span{font-size: 13px;letter-spacing: 1.4px;font-family: "Share Tech Mono", monospace;text-transform: uppercase;background-color: #fff;color: #000;border-radius: 30px;padding: 6px 15px 3px;min-height: 24px;line-height: 1.2;}
.portfolio-item .portfolio-heading{font-size: 28px;color: #fff;margin: 25px 0 20px;}
.portfolio-item .portfolio-content{color: #fff;min-height: 60px;opacity: 0;}
.portfolio-item:hover .portfolio-image:before{background: linear-gradient(180deg, rgba(0, 0, 0, 0) 30%, #000000 100%);opacity: 0.9;}
.portfolio-item:hover .portfolio-image img{transform: scale(1.05);}
.portfolio-item:hover .portfolio-meta{transform: translateY(0px);}
.portfolio-item:hover .portfolio-content{opacity: 1;}

/* Portfolio Archive */
.portfolio-filter{padding: 40px;border-radius: 16px;background-color: #F4F6F9;margin: 40px 0 45px;align-items: flex-start;}
.portfolio-filter .filter-col{width: 30%;}
.portfolio-filter .filter-col:first-child{width: 70%;}
.portfolio-filter .filter-col label{font-size: 16px;font-weight: 400;margin: 0 0 10px;display: block;}
.portfolio-filter .filter-type{gap: 10px;padding-right: 50px;}
.portfolio-filter .filter-type span{font-size: 13px;letter-spacing: 1.4px;font-family: "Share Tech Mono", monospace;text-transform: uppercase;background-color: #fff;color: #000;border-radius: 30px;padding: 6px 15px 3px;min-height: 24px;line-height: 1.2;cursor: pointer;}
.portfolio-filter .filter-type span.is-active{background: linear-gradient(79.72deg, #900497 -3.24%, #0574BC 107.24%);color: #fff;}
.portfolio-search-wrap{position: relative;}
/* WCAG 2.2 SC 1.4.3. This was #11111166 -- #111111 at 40% alpha -- which
   composites over white to roughly #A0A0A0 and measures 2.62:1. It set the colour
   of BOTH the placeholder and anything the visitor types, so neither was legible;
   axe only reported the placeholder because the field is empty when it scans.
   #6B6B6B is 5.33:1 and fixes both at once. */
.portfolio-search-wrap .portfolio-search{border: 1px solid #AFC0D666;border-radius: 8px;font-size: 16px;font-weight: 400;color: #6B6B6B;padding:15px 35px 15px 15px;width: 100%;}
.portfolio-search-wrap .search-icon{position: absolute;right: 15px;top: 16px;cursor: pointer;}

.portfolio-grid{gap: 40px;}
.portfolio-grid .portfolio-item{width: calc(50% - 40px * 1 / 2);}
.portfolio-grid.is-loading {opacity: 0.4;pointer-events: none;transition: opacity 0.2s ease;}

/* Testimonials */
.section-testimonials{background-image: url(images/testimonials-pattern.svg);background-position: 15px 85%;background-repeat: no-repeat;background-size: auto;}
.section-testimonials .section-heading, .section-testimonials .section-sub-heading, .section-testimonials .rte{text-align: left;}
.section-testimonials>.flex-wrap{justify-content: space-between;align-items: flex-start;gap:40px;}
.section-testimonials .section-header{width: 30%;}
.section-testimonials .testimonial-slider{width: calc(100% - 30% - 40px);}
.testimonial-item{border-radius: 16px;overflow: hidden;padding: 40px;position: relative;border: 1px solid #AFC0D6;}
.testimonial-item:hover{background-color: #F4F6F9;border-color: #AFC0D6;}
.testimonial-item .testimonial-content{min-height: 200px;padding-bottom: 80px;}
.testimonial-item .testimonial-top{align-items: center;justify-content: space-between;}
.testimonial-item .testimonial-heading{font-size: 16px;}
.testimonial-item .rte{font-size: 28px;line-height: 1.4em;font-weight: 500;margin: 20px 0 10px;}
.testimonial-item .testimonial-logo img{display: block;margin: 0 auto;mix-blend-mode: multiply;}
.testimonial-slider.mySwiper .swiper-button-next, .testimonial-slider.mySwiper .swiper-button-prev{bottom: 70px;}
.testimonial-slider .swiper-controls.flex{justify-content: flex-start;padding-left: 50px;bottom: inherit;}

/* FAQs */
.faqs--list .faq--item {position: relative;padding: 0;border: 1px solid #AFC0D666;background-color: #fff;border-radius: 16px;margin-bottom: 15px;}
.faqs--list .faq--item .faq-title-heading{margin: 0;}
.faqs--list .faq--item .faq-title {margin: 0;font-weight: 500;font-size: 21px;line-height: 1.4em;padding: 26px 60px 24px 20px;cursor: pointer;text-align: left;position: relative;background-color: transparent;width: 100%;border: none;font-family: 'ClashDisplay-Medium', 'ClashDisplay-Medium-fallback', Arial, sans-serif;}
.faqs--list .faq--item svg {color: #000;position: absolute;right: 15px;top: 14px;padding: 12px;width: 48px;height: 48px;transition: all .2s linear;border: 1px solid #AFC0D666;border-radius: 50%;}
.faqs--list .faq--item:hover svg{background-color: #0574BC;}
.faqs--list .faq--item:hover svg path{stroke: #fff;}
.faqs--list .faq--item .faq-content {position: relative;border-top: 0;padding:20px;text-align: left;background-color: #011D2F;color: #fff;border-radius: 0 0 16px 16px;}
.faqs--list .faq--item .faq-content a{color: #2EA1EA;text-decoration: underline;}
.faqs--list .faq--item .faq-content a:hover{text-decoration: none;}
.faqs--list .faq--item .rte p {margin-bottom: 20px}
.faqs--list .faq--item .rte p:last-child {margin-bottom: 0}
.faqs--list .faq--item .rte ul {margin-left: 20px}
.faqs--list .faq--item .rte ul li {margin-bottom: 0}
.faqs--list .faq--item.activeToggle .faq-title svg {transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);-ms-transform: rotate(45deg);-o-transform: rotate(45deg)}

/* Video Card */
.section-video-card{position: relative;}
.section-video-card .section-heading{text-align: left;}
.section-video-card .flex-btn {justify-content: flex-start;}
.video-slider{position: relative;}
.video-item{position: relative;}
.video-item .video-image{border-radius: 30px;overflow: hidden;background-color: #EFEFEF;padding: 15px;display: block;cursor: pointer;}
.video-item .video-image svg{position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);z-index: 1;width: 144px;height: 144px;transition: transform 0.2s ease, fill 0.2s ease;cursor: pointer;}
.video-item .video-image:hover svg{transform: translate(-50%, -50%) scale(0.95);}
.video-item .video-image:hover svg circle{fill: #0574BC;}
.video-item .video-image img{width: 100%;border-radius: 30px;display: block;}
.video-slider .swiper-button-prev, .video-slider .swiper-button-next{position: absolute;transform: translateY(-50%);top: 50%;}
.video-slider .swiper-button-prev{left: 0;}
.video-slider .swiper-button-next{right: 0;}
.video-slider .swiper-button-prev svg,
.video-slider .swiper-button-next svg{width: 20px;height: 20px;}
.video-slider .swiper-button-prev:after,
.video-slider .swiper-button-next:after{display: none;}

/* Our Team */
.section-our-team{position: relative;}
.team-grid{gap: 40px;margin-top: 50px;}
.team-item{width: calc(25% - 40px * 3 / 4);border: 1px solid #AFC0D666;border-radius:16px;overflow: hidden;cursor: pointer;}
.team-item .team-image{margin: 0 auto;max-width: 100%;position: relative;overflow: hidden;background-color: #F4F6F9;} 
.team-item .team-image img{width: 100%;display: block;margin: 0 auto;}
.team-item .team-meta{text-align: left;padding: 20px 20px 15px;}
.team-item .team-name{font-size: 21px;margin-bottom: 3px;}
.team-item .team-sub-heading{color: #111111;margin: 0;font-size: 13px;font-family: "Share Tech Mono", monospace;letter-spacing: 0.5px;}
.team-item .team-link{position: absolute;bottom: 20px;right: 20px;align-items: center;display: flex;gap: 10px;opacity: 0;}
.team-item:hover{box-shadow: 0px 4px 12px 0px #00000029;}
.team-item:hover .team-image{background: linear-gradient(79.72deg, #900497 -3.24%, #0574BC 107.24%);}
.team-item:hover .team-image img{transform: scale(1.05);}
.team-item:hover .team-link{opacity: 1;}
.team-item .team-link span{font-size: 14px;letter-spacing: 1.4px;font-family: "Share Tech Mono", monospace;text-transform: uppercase;color: #fff;}
.team-item:hover .team-link svg {transform: rotate(-45deg);}
.team-item:hover .team-link svg rect{fill: #0574BC;}
.team-item:hover .team-link svg path{stroke: #fff;}

.team-item .flex-btn{justify-content: center;}
.team-popup{display: flex;flex-wrap: wrap;gap: 0;flex-direction: unset;max-width: 900px;border: 1px solid #AFC0D666;border-radius: 16px;}
.team-popup-left{width: 300px;}
.team-popup-right{width: calc(100% - 300px);padding-left: 30px;}
.team-popup .team-image{margin: 0 auto;width: 330px;max-width: 100%;position: relative;background: linear-gradient(79.72deg, #900497 -3.24%, #0574BC 107.24%);border-radius:50%;overflow: hidden;height:300px;} 
.team-popup .team-image img{width: 100%;display: block;margin: 0 auto;height: 100%;object-position: top;object-fit: cover;}
.team-popup .team-name{font-size: 26px;background-color: #F4F6F9;padding:15px 15px;margin-bottom: 15px;color:#111111;font-size:21px;}
.team-popup .team-sub-heading{color: #111;font-family: "Share Tech Mono", monospace;font-size: 18px;letter-spacing: 1.4px;text-transform: uppercase;}
.team-popup .rte{font-size: 16px;}
.team-popup .rte h4{font-size: 18px;margin-bottom: 0.1em;}

/* Image Card 1/2 */
.section-image-card-grid{position: relative;}
.image-card-item .image-card-img img{display: block;width: 100%;height: 100%;object-fit: cover;}
.section-image-card-grid .image-card-item{width: calc(50% - 40px * 1 / 2);}
.section-image-card-grid .image-card-item .image-card-img{position: relative;border-radius: 16px;overflow: hidden;margin-bottom: 20px;height: 435px;}
.section-image-card-grid .image-card-item .image-card-heading{font-size: 28px;}
.section-image-card-grid:not(.v2) .image-card-item.cta-card{background-image: url(images/web-design-ireland-cta.webp);border-radius: 16px;background-size: cover;background-position: center;overflow: hidden;align-items: center;display: flex;justify-content: center;min-height: 250px;}
.section-image-card-grid:not(.v2) .image-card-item.cta-card .flex-btn{margin-top: 0;}

.section-image-card-grid.v2 .section-header{width: calc(66.66% - 40px * 2 / 3);display: flex;flex-wrap: wrap;flex-direction: column;align-items: center;justify-content: center;}
.image-card-grid{gap: 40px;}
.video-wrapper{max-width: 100%;margin: 0 auto;display: block;position: relative;height: 435px;border-radius: 16px;overflow: hidden;}
.video-wrapper video{width: 100%;height: 100%;object-fit: cover;display: block;}
.section-image-card-grid.v2 .image-card-item{width: calc(33.33% - 40px * 2 / 3);border-radius: 16px;overflow: hidden;position: relative;}
.section-image-card-grid.v2 .image-card-item .image-card-img{margin-bottom: 0;}
.section-image-card-grid.v2 .image-card-item .image-card-img:before{content: '';display: block;position: absolute;left: 0;right: 0;width: 100%;height: 100%;;background: linear-gradient(180deg, rgba(0, 0, 0, 0) 75%, #000000 100%);}
.section-image-card-grid.v2  .image-card-item .image-card-img .image-card-heading{position: absolute;left: 0;right: 0;bottom: 15px;padding: 0 15px;color: #fff;}
.section-image-card-grid.v2 .image-card-item:hover .image-card-img .image-card-heading{opacity: 0;}
.section-image-card-grid.v2 .image-card-item .image-card-heading{text-align: center;font-size: 21px;}
.section-image-card-grid.v2 .image-card-item .image-card-meta{position: absolute;left: 0;right: 0;width: 100%;height: 100%;bottom: 0;display: flex;align-items: center;justify-content: center;flex-direction: column;padding: 25px;text-align: center;background: linear-gradient(79.72deg, #900497fc -3.24%, #0574bcf0 107.24%);transform: translateY(100%);opacity: 0;}
.section-image-card-grid.v2 .image-card-item:hover .image-card-meta{transform: translateY(0);opacity: 1;}
.section-image-card-grid.v2 .image-card-item .image-card-meta .image-card-heading,
.section-image-card-grid.v2 .image-card-item .image-card-meta .rte{color: #fff;}
.section-image-card-grid.v2 .section-header{order: 4;}
.section-image-card-grid.v2 .image-card-item:nth-child(1){order: 1;}
.section-image-card-grid.v2 .image-card-item:nth-child(2){order: 2;}
.section-image-card-grid.v2 .image-card-item:nth-child(3){order: 3;}
.section-image-card-grid.v2 .image-card-item:nth-child(4){order: 5;}
.section-image-card-grid.v2 .image-card-item:nth-child(5){order: 6;}
.section-image-card-grid.v2 .image-card-item:nth-child(6){order: 7;}
.section-image-card-grid.v2 .image-card-item:nth-child(7){order: 8;}

/* Section Full Width Content */
.section-full-width-content{position: relative;}

/* Opt-In Audit */
.section-opt-in-audit{position: relative;}
.section-opt-in-audit .section-sub-heading{text-align: center;}
.section-opt-in-audit .card-wrapper{background: linear-gradient(79.72deg, #900497 -3.24%, #0574BC 107.24%);}
.section-opt-in-audit .rte{background-color: #011D2F;color: #fff;text-align: center;width: 100%;padding: 8px 10px 10px;margin-top: 20px;line-height: 1.5em;}

/* Get Quote */
.section-get-quote{position: relative;padding-top: 80px;background-repeat: no-repeat;background-size: contain;background-position: center top;}
.section-get-quote .section-header{padding-top: 120px;}
.section-get-quote .list-icons{justify-content: center;gap: 180px;margin-bottom: 30px;}
.section-get-quote .list-text{align-items: center;gap: 10px;}
.section-get-quote .list-text .list-count{width: 36px;height: 36px;display: flex;align-items: center;justify-content: center;border-radius: 50%;font-size: 13px;letter-spacing: 0.64px;color: #fff;background: linear-gradient(79.72deg, #900497 -3.24%, #0574BC 107.24%);}
.section-get-quote .list-text :not(.list-count){color:#000;font-size: 17px;font-family: 'ClashDisplay-Semibold', 'ClashDisplay-Semibold-fallback', Arial, sans-serif;text-transform: uppercase;letter-spacing: 0.64px;}
.section-get-quote .list-text :not(.list-count) a{text-decoration: underline;}
.section-get-quote .form-block{max-width: 680px;margin: 0 auto;border-radius: 16px;box-shadow: 0px 4px 12px 0px #00000029;padding: 40px;}
.section-get-quote .video-wrapper{max-width:800px;height: auto;}

/* Contact Info Card */
.section-contact-info{position: relative;}
.info-cards{gap: 80px;align-items: center;}
.info-card{width: calc(50% - 80px * 1 / 2);}
.info-card:first-child{background: linear-gradient(79.72deg, #900497 -3.24%, #0574BC 107.24%);border-radius: 16px;padding: 50px;}
.info-card .section-heading{text-align: left;color: #fff;margin-bottom: 10px;}
.info-card .rte, .info-card .rte a{color: #fff;}
.info-card .info-card-phone{justify-content: space-between;display: flex;margin: 50px 0;}
.info-card .info-card-phone a{font-family: 'ClashDisplay-Medium', 'ClashDisplay-Medium-fallback', Arial, sans-serif;font-size: 36px;color: #fff;}
.info-card a:hover{text-decoration: underline;}
.info-card .card-label{font-size: 17px;font-family: 'ClashDisplay-Medium', 'ClashDisplay-Medium-fallback', Arial, sans-serif;letter-spacing: 1.6px;text-transform: uppercase;margin-bottom: 0.5em;}
.info-card .info-email{background: linear-gradient(79.72deg, #900497 -3.24%, #0574BC 107.24%);-webkit-background-clip: text;-webkit-text-fill-color: transparent;font-size: 42px;font-family: 'ClashDisplay-Medium', 'ClashDisplay-Medium-fallback', Arial, sans-serif;line-height: 1;}
.info-card .social-link a{font-size: 42px;font-family: 'ClashDisplay-Medium', 'ClashDisplay-Medium-fallback', Arial, sans-serif;line-height: normal;color: #111111;}
.info-card .info-email + p.card-label {margin-top: 80px;}

/* Section Resources */
.section-resources{position: relative;}
.resource-grid{gap: 40px;row-gap: 60px;}
.resource-item{width: calc(33.33% - 40px * 2 / 3);ss}
.resource-item .resource-image{margin-bottom: 20px;}
.resource-item .resource-image img{display: block;}
.resource-item:hover .resource-image img{transform: scale(1.05);}
.resource-item .resource-heading{text-align: center;font-size: 24px;}
.resource-item .flex-btn{justify-content: center;margin-top: 10px;}
.resource-popup{padding: 30px !important;}
.resource-popup-inner{gap: 40px;}
.resource-popup .resource-image{width: calc(50% - 40px * 1 / 2);}
.resource-popup .resource-image img{display: block;width: 100%;}
.resource-popup .resource-content{width: calc(50% - 40px * 1 / 2);display: flex;flex-direction: column;justify-content: center;}
.resource-popup .resource-heading{font-size: 28px;}
.resource-popup .gform_wrapper{margin-top: 30px;}

/* Image Scrolling */
.section-image-scrolling{position: relative;background-color: #011D2F;padding: 0 16px;}
.image-scrolling {display: flex;gap: 16px;height: 90vh;overflow: hidden;align-items: flex-start;}
.image-scrolling-col {flex: 1;min-width: 0;height: 100%;overflow: hidden;position: relative;border-radius: 12px;}
.image-scrolling-track {display: flex;flex-direction: column;gap: 16px;will-change: transform;}
.image-scrolling-col--up .image-scrolling-track {animation: scrollUp 90s linear infinite;}
.image-scrolling-col--down .image-scrolling-track {animation: scrollDown 90s linear infinite;}
.image-scrolling-col:nth-child(1) .image-scrolling-track { animation-duration: 70s; }
.image-scrolling-col:nth-child(2) .image-scrolling-track { animation-duration: 75s; }
.image-scrolling-col:nth-child(3) .image-scrolling-track { animation-duration: 80s; }
.image-scrolling-col:nth-child(4) .image-scrolling-track { animation-duration: 85s; }
.image-scrolling-col:nth-child(5) .image-scrolling-track { animation-duration: 90s; }
@keyframes scrollUp {
    from { transform: translateY(0); }
    to   { transform: translateY(-50%); }
}
@keyframes scrollDown {
    from { transform: translateY(-50%); }
    to   { transform: translateY(0); }
}
.image-scrolling-item {border-radius: 10px;overflow: hidden;flex-shrink: 0;background-color: #011D2F;}
.image-scrolling-item img {width: 100%;height: auto;display: block;object-fit: cover;border-radius: 16px;}
.image-scrolling-col:hover .image-scrolling-track {animation-play-state: paused;}

/* Ask AI */
.section-ask-ai{}
.section-ask-ai .cards-label{font-family: 'ClashDisplay-Medium', 'ClashDisplay-Medium-fallback', Arial, sans-serif;color: #111;text-align: center;font-size: 17px;font-style: normal;font-weight: 600;line-height: 120%;letter-spacing: 1.7px;text-transform: uppercase;margin: 0 0 15px;}
.ask-ai-grid{gap: 40px;}
.ask-ai-item{width: calc(25% - 40px * 3 / 4);border: 1px solid #AFC0D666;border-radius: 16px;padding: 50px 30px 50px;overflow: hidden;position: relative;}
.ask-ai-item .ai-icon{}
.ask-ai-item .ai-heading{font-size: 21px;margin: 0;text-align: center;}

/* Section Contact */
.section-contact{position: relative;}
.section-contact .icon-item .icon-heading{text-align: center;margin-bottom: 0;}
.section-contact .icon-item .icon-card-image svg{margin: 0 auto;display: block;}
.form-block.fancybox__content{max-width: 1100px;padding: 70px;border-radius: 16px;}
.form-block>h2{text-align: center;font-size: 42px;}
.form-block>p{text-align: center;}
.form-block.fancybox__content .gform_wrapper .gform_fields{display: flex;flex-wrap: wrap;justify-content: space-between;}
.form-block.fancybox__content .gform_wrapper .gform_fields .gfield.col-2 {width: calc(50% - 20px * 1 / 2);}
.form-block.fancybox__content .gform_wrapper .gform_fields .gfield{width: 100%;}

/* Default Page */
.default--template .entry-content{padding-top: 50px;max-width: 1170px;padding-bottom: 80px;}
.default--template .entry-content a{text-decoration: underline;color:#111111;}
.default--template .entry-content a:hover{text-decoration: none;}
.default--template .entry-content h2{font-size: 28px;}
.default--template .entry-content h3{font-size: 26px;}
.default--template .entry-content h4{font-size: 22px;}
.default--template .entry-content h5{font-size: 18px;}
.wp-block-group.last_big_spacing_content_page {padding-top: 75px;}

/* Blog Header */
.page-blog .section-header.flex-wrap{align-items: center;}
.search-form{display: flex;align-items: center;justify-content: space-between;gap: 15px;}
.search-form input[type="text"],
.search-form input[type="search"]{border-radius: 8px;border:1px solid #AFC0D666;font-size: 16px;color: #fff;width: 100%;padding: 15px 15px;background: transparent;}
.search-form .search-btn{border: none;background: transparent;padding: 0;margin: 0;min-width: 1px;}
.search-form .search-btn:hover svg circle{fill: #2EA1EA;}

/* Blog Featured */
.post-featured .post-card:first-child{width: 100%;flex-direction: row-reverse;display: flex;flex-wrap: wrap;gap: 40px;}
.post-featured .post-card:first-child .post-card-image{width: calc(50% - 40px * 1 / 2);}
.post-featured .post-card:first-child .post-card-meta{width: calc(50% - 40px * 1 / 2);}
.post-featured .post-card{width: calc(50% - 40px * 1 / 2);}
.post-featured .post-card:first-child .post-card-title{font-size: 46px;}
.post-featured .post-card .post-card-title a,
.post-featured .post-card .post-featured-excerpt,
.post-featured .post-card .post-info-right span{color: #fff;}
.post-info-right span a{color: #fff;text-decoration: underline;}
/* SC 1.4.3 on hover. These three used #2EA1EA, which measures 2.84:1 on white and
   2.62:1 on the #F4F6F9 sections -- the same failure the default link colour had at
   the top of this file, reintroduced on hover. axe never caught them because it
   cannot hover. Now the site default #2071A4: 5.30:1 and 4.90:1.
   NOTE: .hamburger-menu .sidebar-menu li a:hover (line ~341) deliberately KEEPS
   #2EA1EA -- that menu is a dark translucent panel where it measures 5.48:1 and the
   darker blue would fail. Same inversion as the dark-section rules above. */
.post-info-right span a:hover{color: #2071A4;}
.post-featured .post-card .post-card-title{font-size: 28px;}
.post-featured .post-card:not(:first-child) .post-featured-excerpt,
.post-featured .post-card:not(:first-child) .flex-btn{display: none;}
.post-featured .post-card .post-featured-excerpt{margin: 15px 0 0;}

/* Post Filter */
.post-filter{position: relative;margin-bottom: 60px;align-items: flex-start;}
.post-filter .section-sub-heading{width: 250px;line-height: 1;}
.blog-filter-cats {display: flex;align-items: center;gap: 8px;flex-wrap: wrap;width: calc(100% - 250px);}
.filter-btn {display: inline-block;padding: 8px 20px;border-radius: 30px;border: 1px solid #011D2F;font-size: 13px;font-weight: 400;color: #011D2F;text-decoration: none;white-space: nowrap;text-transform: uppercase;letter-spacing: 0.03em;font-family: "Share Tech Mono", monospace;}
a.filter-btn:hover{border-color: #1a6ef5;color: #1a6ef5;}
a.filter-btn.active{background-color: #1a6ef5;border-color: #1a6ef5;color: #fff;}

/* Post Listing */
.blog-listing{position: relative;}
.post-grid {display: flex;flex-wrap: wrap;column-gap: 40px;row-gap: 60px;margin-bottom: 40px;}
.post-card {position: relative;width: calc(33.33% - 40px * 2 / 3);}
.post-card .post-card-image{overflow: hidden;position: relative;margin-bottom: 25px;} 
.post-card .post-card-image img{width: 100%;display: block;transition: all 0.5s ease-in-out;height: 380px;object-fit: cover;object-position: center;}
.post-card .post-card-image img.placeholder{object-fit: contain;background: linear-gradient(79.72deg, #900497 -3.24%, #0574BC 107.24%);padding: 25px;}
.post-card .post-card-image a{display: block;overflow: hidden;border-radius: 16px;}
.post-card:hover .post-card-image img{transform: scale(1.05);}
.post-card .post-card-meta{width: 100%;}
.post-card .post-card-title{font-size: 21px;line-height: 1.1em;margin: 20px 0 0;} 
.post-card .post-card-title a{color: #000;}
.post-card:hover .post-card-title a{color: #2071A4;} 
.post-card .post-cat-label span{border: 1px solid #AFC0D6;}
.post-card .post-info-right span{color: #111111;}

/* Load more */
.post-card-load{display: none;}
.post-card-load.visible{display: block;}
.post-grid-wrapper+.flex-btn{justify-content: center;}
.button.load-more.load-more-hidden {display: none;}
.post-navigation{justify-content: center;gap: 10px;}

/* Single Post */ 
.author .post-banner .sb-heading.center span{margin-left:10px;}
.post-image-banner{background-color: #011D2F;padding: 0;}
.post-image-banner img{display: block;width: 100%;max-height: 960px;object-fit: cover;border-radius: 16px 16px 0 0;}
.post-banner{padding-top: 80px;padding-bottom: 20px;}
.post-banner .sb-heading{font-family: 'ClashDisplay-Medium', 'ClashDisplay-Medium-fallback', Arial, sans-serif;font-size: 54px;line-height: 1.1em;color: #fff;margin: 0;text-align: left;min-height: 300px;display: flex;align-items: center;padding: 20px 0;}
.post-banner .sb-heading.center{justify-content: center;}
.post-info{justify-content: space-between;width: 100%;align-items: center;gap: 10px;}
.post-cat-label{gap: 10px;}
.post-cat-label span{font-size: 13px;letter-spacing: 1.4px;font-family: "Share Tech Mono", monospace;text-transform: uppercase;background-color: #fff;color: #000;border-radius: 30px;padding: 6px 15px 3px;min-height: 24px;line-height: 1.2;}
.post-info-right{align-items: center;}
.post-info-right span{font-size:13px;text-transform: uppercase;letter-spacing: 1.4px;font-family: "Share Tech Mono", monospace;color: #fff;}
.post-info-right .divider{width: 8px;height: 8px;background-color: #D9D9D9;border-radius: 50%;margin: 0 10px;}
.post-inner {position: relative;}
.post-inner>.flex-wrap{align-items: flex-start;gap: 100px;}
.post-left{width: calc(70% - 100px);}
.post-right{width: 30%;}
/* WCAG 2.2 SC 1.4.3. This rule out-specifies the base a{} colour, so darkening
   that alone left every inline link in blog body copy still at 2.83:1 on white --
   the last remaining contrast failure after the 25 Aug pass, 19 instances across
   7 posts. Same #2071A4 as the base rule: 5.30:1 here.
   Do NOT fold this into a broader selector: .faqs--list .faq-content a is also
   #2EA1EA but sits on #011D2F, where it measures 6.08:1 and is already correct. */
.post-inner .entry-content a{color: #2071A4;text-decoration: underline;}
.post-inner .entry-content a:hover{text-decoration: none;}
.post-inner .entry-content h2 {font-size: 38px;line-height: 1.1em;margin-bottom: .25em;}
.post-inner .entry-content h3 {font-size: 32px;line-height: 1.1em;margin-bottom: .25em;}
.post-inner .entry-content h4 {font-size: 26px;line-height: 1.1em;margin-bottom: .25em;}
.post-inner .entry-content h5 {font-size: 20px;line-height: 1.1em;margin-bottom: .25em;}
.post-inner .entry-content img {display: block;margin: 20px 0;width: 100%;border-radius: 16px;}
.post-inner .entry-content figure img{margin: 0;}
.post-inner .entry-content figure figcaption{margin: 5px 0 0;font-family: 'ClashDisplay-Medium', 'ClashDisplay-Medium-fallback', Arial, sans-serif;font-weight: 300;}
.navigation-post{justify-content: space-between;margin-top: 60px;}
.post-left .post-inside{display: none;}

/* Sidebar */
.right-sidebar>*{margin-bottom: 60px;}
.widget_block{position: relative;}
.widget-box{border: 1px solid #AFC0D666;border-radius: 16px;padding: 30px;}
.widget-heading{font-size: 36px;}
.widget-sub-heading{font-size: 21px;font-family: 'ClashDisplay-Medium', 'ClashDisplay-Medium-fallback', Arial, sans-serif;margin: 0 0 15px;}
.post-inside{margin-bottom: 50px;}
.post-inside ul{margin: 0;padding: 0;list-style-type: none;}
.post-inside ul li{margin: 0 0 8px;padding: 5px 0;}
.post-inside ul li a{color: #111111;font-size: 18px;}
.post-inside ul li a:hover{text-decoration: underline;color: #2071A4;}
.post-share {position: relative;margin:0;}
.share-icons{align-items: center;list-style-type: none;margin: 0 0 25px;padding: 0;}
.post-share a {margin-right: 20px;}
/* SC 1.4.11 Non-text Contrast. The share icons sit on white, where the hover fill
   #2EA1EA measured 2.84:1 -- under the 3.0 a graphical control needs, and DARKER on
   hover than at rest, so hovering made the icon harder to see. #2071A4 gives 5.30:1.
   The search button keeps #2EA1EA (line ~837): it sits on the dark navy header at
   6.08:1 and passes. */
.post-share a:hover svg path{fill: #2071A4;}
.post-share .btn-copy{width: 100%;margin-top: 20px;display: block;}
.post-share .post-url{word-break: break-all;}
.sidebar-audit .widget-box{position: relative;background: linear-gradient(79.72deg, #900497 -3.24%, #0574BC 107.24%);border-radius: 16px;padding: 30px;}
.sidebar-audit .widget-box .rte:not(.form-note){padding: 0;color: #fff;background-color: transparent;text-align: left;margin: 0;}
.sidebar-audit.section-opt-in-audit .form-block .gform_wrapper .gform_fields .gfield.col-2 {width: 100%;}
.sidebar-newsletter .form-block{box-shadow: 0px 4px 12px 0px #00000029;padding: 20px;border-radius: 16px;}

/* General Form Style */
.form-block {position: relative;width:100%;margin: 0 auto;display: block;}
.form-block .gform_wrapper form {position: relative;}
.form-block .gform_wrapper .gform_fields {row-gap: 20px !important;}
.form-block .gform_wrapper input, 
.form-block .gform_wrapper textarea, 
.form-block .gform_wrapper select, 
.form-block .gform_wrapper input[type="submit"], 
.form-block .gform_wrapper input[type="button"], 
.form-block .gform_wrapper button, 
.form-block .gform_wrapper .button {vertical-align: middle;}
.form-block .gform_wrapper label {display: block;padding:0;font-size: 16px;font-weight: 500;}
.form-block .gform_wrapper input[type=text], 
.form-block .gform_wrapper input[type=email], 
.form-block .gform_wrapper input[type=tel], 
.form-block .gform_wrapper input[type=url], 
.form-block .gform_wrapper input[type=search], 
.form-block .gform_wrapper input[type=password], 
.form-block .gform_wrapper input[type=number], 
.form-block .gform_wrapper textarea, 
.form-block .gform_wrapper select {
    width: 100% !important;
    background-color: #fff;
    padding: 10px 15px 10px 15px !important;
    color: #585858;
    height: 50px;
    box-shadow: none !important;
    font-size: 16px !important;
    margin: 0;
    text-align: left;
    border: 2px solid #AFC0D666 !important;
    border-radius: 8px;
    font-weight: 400;
    min-width: 1px;
    font-family: "Plus Jakarta Sans", sans-serif;
}
.form-block .gform_wrapper select {line-height: 28px;}
.gform_wrapper input[type=text]:focus, .gform_wrapper input[type=email]:focus, .gform_wrapper input[type=tel]:focus, .gform_wrapper input[type=url]:focus, .gform_wrapper input[type=search]:focus, .gform_wrapper input[type=password]:focus, .gform_wrapper input[type=number]:focus, .gform_wrapper textarea:focus, .gform_wrapper select:focus {
    border: 1px solid #000;
}
.form-block .gform_wrapper .gform_body .gform_fields .gfield .gfield_label {font-size: 16px !important;color: #000000;font-family: "Plus Jakarta Sans", sans-serif;}
.form-block .gform_wrapper .gform_body .gform_fields .gfield .gfield_label .gfield_required{margin-left: 5px;}
.form-block .gform_wrapper .gform_body .gform_fields .gfield .ginput_container {margin: 0;}
.form-block .gform_wrapper .gform_body .gform_fields .gfield .ginput_container .gfield_required{margin-left: 5px;}
.form-block .gform_wrapper .ginput_container_consent input[type="checkbox"]{position: relative;top: 0px;}
.form-block .gform_wrapper label.gfield_consent_label{font-size: 13px;font-weight: 400;line-height: 1.5em;color: #000;padding: 0;cursor: pointer;letter-spacing: 0.5px;}
.form-block .gform_wrapper label.gfield_consent_label a{color: #000;text-decoration: underline;}
.form-block .gform_wrapper label.gfield_consent_label a:hover{text-decoration: none;}
.form-block .gform_wrapper .gform_footer {margin: 20px 0 0;justify-content: flex-start;}
.form-block .gform_wrapper .gform_button.button {font-size: 15px !important;width: 100% !important;padding: 15px 10px !important;color: #fff !important;background-color: #0574BC !important;text-transform: uppercase !important;border-radius: 30px !important;font-weight: 400 !important;line-height: 1.2em !important;max-height: 50px;position: relative;letter-spacing: 0.6px !important;box-shadow: none !important;font-family: "Share Tech Mono", monospace !important;}
.form-block .gform_wrapper .gform_button.button:hover{color: #fff !important;background: linear-gradient(90deg, #6D20A0 0%, #2758B3 100%) !important;}
.form-block .gform_wrapper h2.gform_submission_error {font-size: 14px !important;font-weight: 500 !important;}
.form-block .gform_wrapper .gform_validation_errors{padding: 5px !important;background-color: #fff;margin: 0 0 10px;}
.form-block .gform_wrapper .gfield_validation_message, .gform_wrapper.gravity-theme .validation_message {padding: 0 5px !important;font-size: 14px !important;background-color: #fff;margin: 5px 0 0 !important;}
.form-block .gform_wrapper .gform_confirmation_message {color: green;font-size: 16px;background-color: #fff;line-height: 1.5em;padding: 20px 20px;text-align: center;border-radius: 8px;}

/* Audit Form */
.section-opt-in-audit .form-block .gform_wrapper .gform_body .gform_fields .gfield .gfield_label{color: #fff;}
.section-opt-in-audit .form-block .gform_wrapper .gform_body .gform_fields .gfield .gfield_label .gfield_required{color: #fff;}
.section-opt-in-audit .form-block .gform_wrapper .gform_fields{display: flex;flex-wrap: wrap;justify-content: space-between;}
.section-opt-in-audit .form-block .gform_wrapper .gform_fields .gfield.col-2{width: calc(50% - 20px * 1 / 2);}
.section-opt-in-audit .form-block .gform_wrapper label.gfield_consent_label,
.section-opt-in-audit .form-block .gform_wrapper label.gfield_consent_label a{color: #fff;}
.section-opt-in-audit .form-block .gform_wrapper .gform_button.button{background-color: #fff !important;color: #000 !important;border: 2px solid #fff !important;}
.section-opt-in-audit .form-block .gform_wrapper .gform_button.button:hover{background:  transparent !important;color: #fff !important;}
 
/* Ger Quote */
@media only screen and (min-width: 1024px){
    .section-get-quote .form-block .gfield{position: relative;}
    .section-get-quote .form-block .step-1:before, 
    .section-get-quote .form-block .step-2:before,
    .section-get-quote .form-block .step-3:before{position: absolute;left: -150px;color: #000;font-size: 16px;font-family: 'ClashDisplay-Semibold', 'ClashDisplay-Semibold-fallback', Arial, sans-serif;text-transform: uppercase;letter-spacing: 0.64px;}
    .section-get-quote .form-block .step-1:before {content: 'You';}
    .section-get-quote .form-block .step-2:before {content: 'Project';}
    .section-get-quote .form-block .step-3:before {content: 'Details';}
    .section-get-quote .form-block .step-1:after, 
    .section-get-quote .form-block .step-2:after, 
    .section-get-quote .form-block .step-3:after {width: 36px;height: 36px;display: flex;align-items: center;justify-content: center;border-radius: 50%;font-size: 13px;letter-spacing: 0.64px;color: #fff;background: linear-gradient(79.72deg, #900497 -3.24%, #0574BC 107.24%);position: absolute;top: -10px;left: -200px;}
    .section-get-quote .form-block .step-1:after{content: '1';}
    .section-get-quote .form-block .step-2:after{content: '2';}
    .section-get-quote .form-block .step-3:after{content: '3';}
}

/* CTA */
.section-cta{position: relative;min-height: 515px;display: flex;align-items: center;background-color: #011D2F;}
.section-cta .card-wrapper{background: linear-gradient(79.72deg, #900497 -3.24%, #0574BC 107.24%);border-radius: 16px;padding: 60px;}
.section-cta .card-wrapper .col-2.card-image-text{padding-right: 7%;}
.section-cta .section-heading{text-align: left;}
.section-cta .section-heading, .section-cta .rte{color:#fff;}
.section-cta .flex-btn{justify-content: flex-start;}
.section-cta .card-image-wrapper img{width: 100%;}
.section-cta.v2 .card-wrapper{padding: 0;flex-direction: row-reverse;align-items: unset;overflow: hidden;}
.section-cta.v2 .card-wrapper .card-image-wrapper{height: 100%;}
.section-cta.v2 .card-wrapper .card-image-wrapper img{height: 100%;object-fit: cover;object-position: center right;}
.section-cta.v2 .card-wrapper .card-image-text{align-self: center;padding-top: 30px;padding-bottom: 30px;}
.section-cta.v2 .card-wrapper .card-image-text:not(.col-2){width: 100%;padding-left: 15px;padding-right: 15px;max-width: 960px;margin: 0 auto;text-align: center;padding-bottom: 60px;padding-top: 60px;}
.section-cta.v2 .card-wrapper .card-image-text:not(.col-2) .section-heading{text-align: center;}
.section-cta.v2 .card-wrapper .card-image-text:not(.col-2) .flex-btn{justify-content: center;}
.section-cta.cta-bottom-hide-text .bottom-btn-info{display: none;}

/* Footer */
footer{position: relative;font-size: 16px;line-height: 1.6em;background-color: #011D2F;color: #8DAFCD;padding:0;}
footer .f-widgets{padding: 50px 0 0;gap: 40px;width: 100%;justify-content: space-between;}
footer .f-widget-col{flex: 1;}
footer .f-widget-col.f-logo{flex: 1.55;}
footer .f-widget-col.f-menu-2{flex: 1;}
footer .f-widget-col.f-post{flex: 1.3;}
footer .f-widget-col.f-contact{flex: 1.25;}
footer .f-widget-col.f-menu-3{flex: 100%;border-top: 1px solid #FFFFFF1A;padding: 30px 0;margin: 20px 0 0;}
footer .f-logo img + .rte{margin-top: 30px;}
footer .f-bridges{align-items: center;margin-top: 30px;gap:20px;}
footer .f-bridges img:first-child{background: #fff;padding: 5px;border-radius: 5px;}
footer .f-widget-heading{font-size: 21px; font-weight: 500; font-family: 'ClashDisplay-Medium', 'ClashDisplay-Medium-fallback', Arial, sans-serif; margin: 0 0 25px; line-height: 1.25em; color: #fff;}
footer .f-widget-menu{padding: 0;margin: 0;list-style-type: none;}
footer .f-widget-menu li{margin: 0 0 10px;}
footer .f-widget-menu li a{font-weight: 400;color: #8DAFCD;display: block;padding: 5px 0;}
footer .f-widget-menu li a:hover{color: #fff;text-decoration: underline;}
footer .f-widget-col .rte{color: #fff;}
footer .f-contact__item{margin: 20px 0 18px;}
footer .f-contact__item:last-child{margin-bottom: 0;}
footer .f-contact__item a{display: flex;column-gap: 10px;}
footer .f-contact__item a span {width: calc(100% - 34px);line-height: normal;word-wrap: break-word;word-break: break-word;color: #8DAFCD;}
footer .f-contact__item a:hover span{color: #fff;text-decoration: underline;}
footer .f-contact__item + .button{margin-top: 40px;}
footer .f-widget-col.f-menu-3 .f-widget-heading{margin-bottom: 10px;}
footer .f-widget-col.f-menu-3 ul{display: flex;justify-content: flex-start;gap: 0 15px;flex-wrap: wrap;}
footer .f-widget-col.f-menu-3 .f-widget-menu li{margin-bottom: 0;}
footer .f-bottom{padding: 22px 0 22px;width: 100%;border-top: 1px solid #FFFFFF1A;}
footer .f-bottom-col{font-size: 14px;width: 50%;}
footer .f-bottom-col.social-link{width: 20%;justify-content: center;display:none;}
footer .f-widget-col.f-contact .social-link.flex-wrap {margin:30px 0 30px;}
footer .f-bottom-menu{display: flex;flex-wrap: wrap;padding: 0;margin: 0;justify-content: flex-end;}
footer .f-bottom-menu li{list-style-type: none;margin: 0;line-height: normal;border-right: 1px solid #3f573f;padding: 0 15px;}
footer .f-bottom-menu li:last-child{border: none;padding-right: 0;}
footer .f-bottom-menu li a{color: #8DAFCD;} 
footer .f-bottom-menu li a:hover{color: #fff;text-decoration: underline;} 
.social-link{align-items: center;column-gap: 20px;row-gap: 10px;}
.social-link a svg{display: block;}

/* 404 Page */
.page-404{position: relative;}

/* About Intro */
.section-about-intro {background-repeat: no-repeat;background-size: cover;background-position: top center;}
.about-intro-tag-wrap {display: flex;justify-content: center;margin-bottom: 30px;}
.about-intro-tag {text-align: center;border: 1px solid #AFC0D666;box-shadow: 0px 4px 12px 4px #11111133;background: #FFFFFF;gap: 20px;display: flex;padding: 10px;border-radius: 30px;}
.tag-label {font-family: 'ClashDisplay-Medium', 'ClashDisplay-Medium-fallback', Arial, sans-serif;font-size: 38px;text-align: center;background: #F4F6F9;padding: 12px 25px;border-radius: 30px;}
span.tag-label.tag-label--primary {color: #900497;}
span.tag-label.tag-label--neutral{color: #111111;}
span.tag-label.tag-label--accent {color: #0574BC;}

/* About Icon with text */
.section-icon-card-grid .cards-label {font-family: 'ClashDisplay-Medium', 'ClashDisplay-Medium-fallback', Arial, sans-serif;color: #111;text-align: center;font-size: 17px;font-style: normal;font-weight: 600;line-height: 120%;letter-spacing: 1.7px;text-transform: uppercase;margin-top: 40px;margin-bottom: -30px;}

/* Logo slider section */
.section-logo-slider.logos-heading-top-with-content .section-header {width: 100%;max-width: 990px;padding: 0 15px;}
.section-logo-slider.logos-heading-top-with-content h2.section-heading {text-align: center;margin-bottom: 10px;}
.section-logo-slider.logos-heading-top-with-content .logo-slider:before,.section-logo-slider.logos-heading-top-with-content .logo-slider:after{display: none;}
.section-logo-slider.logos-heading-top-with-content .logo-item {border: none;padding: 0 15px;}
.section-logo-slider.logos-heading-top-with-content .logo-slider {width: 100%;}
.section-logo-slider.logos-heading-top-with-content .container.flex-wrap {max-width: 100%;padding: 0;flex-direction: column;}

/******* Responsive CSS *******/
@media only screen and (max-width: 1599px){
    
}
@media only screen and (max-width: 1500px){
    .section-banner .sb-heading{font-size: 58px;}
    .section-heading{font-size: 38px;}
    .section-sub-heading{font-size: 38px;}
    .section-opt-in-audit .rte{font-size: 13px;}
    .portfolio-item .portfolio-heading{font-size: 24px;}
    .service-icon-item{padding: 40px 20px 50px;}
    .testimonial-item .rte{font-size: 22px;}
    .post-featured .post-card:first-child .post-card-title {font-size: 38px;}
    .post-featured .post-card .post-card-title {font-size: 24px;}
    .post-card .post-card-image img{height: 320px;}
    .info-card .info-card-phone a{font-size: 28px;}
    .info-card .info-email, .info-card .social-link a{font-size: 38px;}
    .video-wrapper, .section-image-card-grid .image-card-item .image-card-img{height: 350px;}
}
@media only screen and (max-width: 1439px){
    header .navigation nav li.menu-services .sub-menu{width: 1000px;max-width: 90%;}
    .section-heading{font-size: 38px;}
    .section-banner .sb-heading{font-size: 48px;}
    footer{font-size: 15px;}
    footer .f-widget-heading{font-size: 18px;}
    .tag-label{font-size: 38px;}
    .section-banner.inner-v2 .sb-heading {font-size: 48px;}
}
@media only screen and (max-width: 1199px){
    .m-b-60 {margin-bottom: 40px;}
    section{padding: 50px 0;}
    .section-heading {font-size: 32px;}
    .section-sub-heading{font-size: 32px;}
    header .navigation nav .menu li a{font-size: 14px;margin: 0;padding: 15px 12px;}
    .section-banner{min-height: 750px;}
    .section-banner .sb-caption{margin-top: 120px;}
    .section-banner .sb-heading {font-size: 36px;}
    .section-banner .sb-content {font-size: 16px;}
    .section-banner .sb-bridges img{width: 100px;height: 100px;}
    .section-banner .sb-bridges{top: -80px;right: -140px;}
    .section-cta .card-wrapper{padding: 30px;}
    .counter-item .counter-heading{font-size: 32px;}
    .portfolio-item .portfolio-heading, .promo-icon-item .promo-icon-heading{font-size: 22px;} 
    .section-heading.small{font-size: 20px;}
    .promo-icon-item{min-height: 380px;padding: 25px 15px 80px;}
    .promo-icon-item .rte{opacity: 1;}
    .promo-icon-item .promo-icon-link{bottom: 15px;left: 20px;}
    .promo-icon-item .promo-icon-link svg {width: 40px;}
    .promo-icon-item .rte span{display: none;}
    .portfolio-item .portfolio-meta{padding: 25px 20px 20px;}
    .icon-item{padding: 30px 20px 30px;}
    .service-icon-item .service-icon-heading, .icon-card-item .icon-card-heading, .icon-item .icon-heading{font-size: 20px;}
    .card-grid-2 .icon-card-image, .card-grid-2 .icon-card-image svg, .icon-card-item .icon-card-image svg{width: 60px;}
    .card-grid-2 .icon-card-meta{width: calc(100% - 60px - 20px);}
    .faqs--list .faq--item .faq-title{font-size: 20px;}
    .faqs--list .faq--item .faq-content{padding: 15px;}
    .section-opt-in-audit .card-wrapper .col-2{width: 100%;}
    .section-opt-in-audit .card-image-wrapper{text-align: center;}
    .section-get-quote  .list-icons{gap: 40px;}
    .post-banner .sb-heading{min-height: 250px;font-size: 38px;}
    .post-inner .entry-content h2 {font-size: 32px;}
    .post-inner .entry-content h3 {font-size: 28px;}
    .post-inner .entry-content h4 {font-size: 24px;}
    .post-inner .entry-content h5 {font-size: 18px;}
    .widget-heading {font-size: 28px;}
    .sidebar-audit .widget-box, .widget-box{padding: 20px 15px;}
    .default--template .entry-content .wp-block-group h2.wp-block-heading {font-size: 26;}
    .page-template-default .entry-content h2.wp-block-heading.first_big_heading_content_page {font-size: 32px;}
    .tag-label{font-size: 32px;}
    .section-banner.inner-v2 .sb-heading {font-size: 36px;}
    .post-featured .post-card:first-child .post-card-title {font-size: 32px;}
    .post-featured .post-card .post-card-title {font-size: 20px;}
    .post-card .post-card-image img{height: 260px;}
    .info-card .info-email, .info-card .social-link a {font-size: 28px;}
    .info-card .info-card-phone a {font-size: 22px;}
    .info-card .info-card-phone{margin: 30px 0;}
    .info-card:first-child{padding: 30px;}
    .info-card .info-email + p.card-label {margin-top: 40px;}
    .form-block>h2{font-size: 32px;}
    .portfolio-slider.mySwiper .swiper-button-prev{left: 0;}
    .portfolio-slider.mySwiper .swiper-button-next{right: 0;}
    .section-icon-card-grid .cards-label{margin-bottom: -10px;}
    .v2 .image-card-item .image-card-meta .rte {font-size: 15px;line-height: 1.25em;}
    .image-card-item .image-card-heading{font-size: 18px;}
    .section-image-card-grid .image-card-item .image-card-heading {font-size: 22px;}
    .video-wrapper, .section-image-card-grid .image-card-item .image-card-img{height: 283px;}
    .icon-item .icon-price{font-size: 22px;}
    .portfolio-filter{padding: 20px;}
    .portfolio-filter .filter-type span{letter-spacing: 0.4px;}
    .portfolio-grid{gap: 20px;}
    .portfolio-grid .portfolio-item {width: calc(50% - 20px * 1 / 2);}
    .section-grants-card .image-card-grid .image-card-item .image-card-heading{font-size: 22px;}
    .section-grants-card .image-card-grid .image-card-item{padding: 15px;width: calc(50% - 40px * 1 / 2);}
    footer .f-bottom-menu li{padding: 0 5px;}
    footer .f-bottom-col{font-size: 13px;}
    .showcase-item .showcase-heading{font-size: 22px;}
    .service-item{padding: 30px;}
    .section-image-text.p-b-0.t-img-align .card-image{align-self: center;}
    .video-item .video-image svg{width: 72px;height: 72px;}
}
@media only screen and (max-width: 1023px){
    .admin-bar header{top: 46px;}
    body{font-size: 15px;line-height: 1.5em;}
    /*body{padding-top: 70px;}*/
    .rte ul, .rte ol{text-align: left;}
    header{padding: 10px 0;min-height: 70px;}
    header .logo{width: 130px;}
    header .header-icons{width: calc(100% - 130px);}
    .hamburger-trigger{display: block;}
    .hamburger-menu .sidebar-menu li a .button-read-link {display: none;}
    header .navigation nav{display: none;}
    footer .f-widgets{padding: 20px 0 0;}
    footer .f-logo img + .rte{margin-top: 15px;}
    footer .f-widget-col.f-logo{flex: 1 1 100%;}
    footer .f-bridges{margin-top: 15px;}
    footer .f-widget-col, footer .f-widget-col.f-post, footer .f-widget-col.f-contact, footer .f-widget-col.f-menu-2{flex:1 1 45%;}
    footer .f-bottom{padding: 18px 0 18px;row-gap: 15px;}
    footer .f-bottom-col{width: 100%;text-align: center;}
    footer .f-bottom-col.social-link{display:none}
    footer .f-bottom-menu{justify-content: center;}
    footer .f-widget-col.f-contact .social-link.flex-wrap {display: flex;margin:20px 0;}
    .section-cta .card-wrapper .col-2.card-image-text{padding-right: 0;}
    .section-banner{flex-wrap: wrap;min-height: 550px}
    .section-banner .sb-caption-inner{text-align: center;}
    .section-banner .sb-caption{width: 100%;max-width: 100%;padding: 0 15px;margin-top: 100px;}
    .section-banner .flex-btn{justify-content: center;align-items: center;}
    .section-banner .sb-bridges {top: inherit;right: inherit;position: relative;text-align: center;margin: 0 0 10px;}
    .section-banner .sb-bridges img {width: 90px;height: 90px;display: block;margin: 0 auto;}
    .section-banner .sb-images {width: 100%;overflow: hidden;position: absolute;padding: 0;left: 0;top: 0;height: 100%;opacity: 0.10;}
    .card-wrapper .col-2 {width: 100%;}
    .section-cta .section-heading, .section-cta .rte, .section-logo-slider .section-heading, .section-image-text .card-image-text .section-heading, .section-image-text .card-image-text, .section-left .section-heading, .section-left .section-sub-heading, .section-right .section-sub-heading, .section-testimonials .section-heading, .section-testimonials .section-sub-heading, .section-testimonials .section-header .rte, .bottom-btn-info{text-align: center;}
    .section-cta .flex-btn{justify-content: center;}
    .section-heading {font-size: 28px;}
    .section-sub-heading{font-size: 22px;line-height: 1.4;}
    .flex-btn{margin-top: 30px;}
    .section-cta .card-wrapper{padding: 20px;max-width: calc(100% - 30px);}
    .section-logo-slider .section-header, .section-logo-slider .logo-slider{width: 100%;}
    .section-logo-slider .logo-slider:before, .section-logo-slider .logo-slider:after{width: 40px;}
    .rounded-bg{padding: 25px 15px;}
    .counter-item .counter-heading{font-size: 28px;}
    .promo-icon-grid{flex-wrap: wrap;}
    .promo-icon-item, .service-icon-item{width: calc(50% - 24px * 1 / 2);min-height: 1px;}
    .portfolio-slider.mySwiper .swiper-button-prev{left: -25px;}
    .portfolio-slider.mySwiper .swiper-button-next{right: -25px;}
    .flex-btn.align-left{justify-content: center;}
    .section-left, .section-right, .section-testimonials .section-header, .section-testimonials .testimonial-slider{width: 100%;}
    .section-promo-icon-grid .section-header.flex-wrap{gap: 0;}
    .testimonial-item .rte{font-size: 18px;}
    .faqs--list .faq--item svg{padding: 6px;width: 28px;height: 28px;}
    .faqs--list .faq--item .faq-title {font-size: 18px;padding: 18px 50px 15px 15px;}
    .section-testimonials{padding-bottom: 20px;}
    .section-get-quote .section-header {padding-top: 50px;}
    .section-get-quote .list-text :not(.list-count){font-size: 14px;}
    .section-get-quote .list-icons {gap: 20px;}
    .section-get-quote{background-position: center 70px;}
    .post-left, .post-right{width: 100%;}
    .post-right .post-inside{display: none;}
    .post-left .post-inside{display: block;margin-bottom: 30px;}
    .post-banner .sb-heading {min-height: 200px;font-size: 28px;}
    .widget-heading {font-size: 24px;}
    .post-inside ul li{margin: 0;}
    .post-inside ul li a{font-size: 15px;}
    .post-inner>.flex-wrap{gap: 50px;}
    .post-inner .entry-content h2 {font-size: 26px;}
    .post-inner .entry-content h3 {font-size: 24px;}
    .post-inner .entry-content h4 {font-size: 20px;}
    .post-inner .entry-content h5 {font-size: 18px;}
    .right-sidebar>* {margin-bottom: 30px;}
    .post-info-right span{letter-spacing: 0.5px;font-size: 12px;}
    .post-cat-label span{font-size: 12px;letter-spacing: 0.5px;padding: 6px 10px 3px;}
    .post-inner{padding-top: 30px;}
    .navigation-post{margin-top: 30px;}
    .default--template .entry-content .wp-block-group h2.wp-block-heading {font-size: 22px;}
    .page-template-default .entry-content h2.wp-block-heading.first_big_heading_content_page {font-size: 28px;}
    .wp-block-group.last_big_spacing_content_page {padding-top: 25px;}
    .tag-label{font-size: 22px;}
    .card-grid-3 .icon-item {width: calc(50% - 40px * 2 / 3);}
    .card-grid-4 .icon-item{width: calc(50% - 40px * 2 / 3);}
    .section-logo-slider.logos-heading-top-with-content .logo-item {height: 90px;}
    .post-filter .section-sub-heading {width: 140px;}
    .blog-filter-cats{width: calc(100% - 140px);}
    .post-card{width: calc(50% - 40px * 1 / 2);}
    .post-featured .post-card:first-child{flex-direction: row;gap: 0;}
    .post-featured .post-card:first-child .post-card-image,
    .post-featured .post-card:first-child .post-card-meta{width: 100%;}
    .page-blog .post-banner .sb-heading{min-height: 1px;}
    .page-blog .post-banner .sb-heading, .page-blog .post-banner .section-sub-heading{text-align: center;justify-content: center;}
    .page-blog .section-header.flex-wrap{gap: 0;}
    .search-form{margin: 20px 0 0;}
    .post-featured .post-card:first-child .post-card-title{font-size: 26px;}
    .wp-block-gallery.gallery{padding: 0 15px;gap: 15px !important;}
    .wp-block-gallery.gallery .wp-block-image {width: calc(20% - 15px * 4 / 5) !important;}
    .section-icon-card-grid .cards-label {font-size: 15px;}
    .section-cta.v2 .card-wrapper{flex-direction: column-reverse;}
    .section-cta.v2 .card-wrapper .card-image-text{padding: 0 15px 30px;}
    .info-cards {gap: 40px;}
    .info-card {width: calc(50% - 40px * 1 / 2);}
    .info-card .info-email, .info-card .social-link a {font-size: 22px;}
    .info-card .info-card-phone a {font-size: 18px;}
    .form-block.fancybox__content{padding: 30px;}
    .swiper-numbered-pagination .swiper-pagination-bullet {width: 60px;height: 60px;}
    .section-image-text .full-width.card-wrapper.image-left .card-image-text,
    .section-image-text .full-width.card-wrapper.image-right .card-image-text{padding-right: 15px;padding-left: 15px;}
    .section-image-text .section-sub-heading{text-align: center;}
    .image-card-item{width: calc(66.66% - 40px * 2 / 3);}
    .section-image-card-grid.v2 .section-header {order: 0;width: 100%;}
    .image-card-item {width: calc(50% - 40px * 2 / 3);}
    .section-cta.v2 .card-wrapper .card-image-text:not(.col-2){padding-top: 30px;padding-bottom: 30px;}
    .video-wrapper, .section-image-card-grid .image-card-item .image-card-img{height: 207px;}
    .icon-item .icon-price {font-size: 20px;}
    .portfolio-item .portfolio-heading {margin: 10px 0 5px;font-size: 20px;}
    .portfolio-item .portfolio-meta {padding: 10px 15px 10px;}
    .portfolio-item .portfolio-label {gap: 5px;}
    .section-image-card-grid.v2 .image-card-item .image-card-heading{font-size: 18px;}
    .section-image-card-grid.v2 .image-card-item{width: calc(50% - 40px * 1 / 2s);}
    .section-grants-card .image-card-grid {gap: 20px;}
    .section-grants-card .image-card-grid .image-card-item {width: calc(50% - 20px * 1 / 2);}
    .resource-item {width: calc(50% - 20px * 2 / 3);padding: 15px;}
    .resource-grid {gap: 20px;}
    .resource-item .resource-heading{font-size: 20px;}
    .resource-popup .resource-image{display: none;}
    .resource-popup .resource-content {width: 100%;}
    .resource-popup {padding: 15px !important;}
    .resource-popup .resource-heading{text-align: center;font-size: 22px;margin-bottom: 15px;}
    .resource-popup .resource-heading + .rte{text-align: center;}
    .service-item {width: calc(50% - 40px * 1 / 2);}
    .portfolio-grid .portfolio-item {width: 100%;}
    .portfolio-item .portfolio-meta{transform: translateY(60px);}
    .section-image-text.p-b-0 .card-image-text {padding-bottom: 0;}
    .team-item {width: calc(33.33% - 40px * 2 / 3);}
}
@media only screen and (max-width: 767px){
    body{font-size: 15px;}
    .button, button:not(.faq-title, .popup-close, .carousel__button, .video-toggle, .search-btn):not(#wwd-floating-widget-root) > button:not(.wwd-panel) > button{padding: 0 25px; min-width: 140px; font-weight: 400; font-size: 15px; border-radius: 30px; line-height: 1.5em; color: #fff; background: #0574BC; border: 2px solid transparent; position: relative; display: flex; justify-content: center; align-items: center; text-transform: uppercase; min-height: 50px; cursor: pointer; text-align: center; font-family: "Share Tech Mono", monospace; letter-spacing: 0.6px;transition: none;}
    /*.button:not(.faq-title, .popup-close, .carousel__button, .video-toggle, .search-btn):hover{min-height: 48px;padding: 0 15px;min-width: 135px;line-height: 1.25em;}*/
    /*section {padding: 30px 0;}*/
    p, ol, ul, dl{margin-bottom: 1.5em;}
    html {margin-top: 0 !important;}
    .admin-bar header {top: 0;}
    .hamburger-menu{width: 100%;}
    header{padding: 15px 0;}
    header .logo{width: 120px;}
    header .logo svg {width: 120px;}
    header .header-icons{width: calc(100% - 120px);}
    header .button {padding: 9px 0 7px;min-width: 115px;min-height: 40px;font-size: 14px;}
    footer .f-widget-heading {font-size: 18px;margin: 0 0 10px;}
    footer .f-widget-col, footer .f-widget-col.f-post, footer .f-widget-col.f-menu-2{flex: 1 1 100%;}
    footer .f-widget-menu li a{padding: 0;}
    footer .f-widgets{gap:20px}
    footer .f-bottom-menu li{padding: 0 5px;font-size: 13px;}
    .section-banner .sb-caption{margin-top: 70px;}
    .section-banner{flex-wrap: wrap;min-height: 660px}
    .section-banner .sb-heading{font-size: 32px;}
    .counter-grid {gap: 12px;}
    .counter-item{width: calc(50% - 12px * 1 / 2);}
    .counter-item .rte {font-size: 15px;line-height: 1.4em;}
    .section-opt-in-audit .form-block .gform_wrapper .gform_fields .gfield.col-2 {width: 100%;}
    .portfolio-item .portfolio-content{display: none;}
    .portfolio-item .portfolio-label span{font-size: 12px;letter-spacing: 0.2px;padding: 5px 10px 1px;min-height: 22px;border: 1px solid #000;}
    .portfolio-item .portfolio-link{right: 10px;top: 10px;}
    .portfolio-item .portfolio-link svg {width: 30px;height: 30px;}
    .portfolio-item .portfolio-link span{font-size: 12px;letter-spacing: 0.5px;}
    .portfolio-item .portfolio-meta{position: relative;bottom: inherit;left: inherit;transform: translateY(0);padding: 15px 0 0;}
    .portfolio-item .portfolio-heading{margin: 15px 0 0;}
    .portfolio-slider.mySwiper .swiper-button-prev, .portfolio-slider.mySwiper .swiper-button-next{display: none;}
    .portfolio-item .portfolio-heading, .promo-icon-item .promo-icon-heading {font-size: 20px;}
    .v2 .portfolio-item .portfolio-heading{color: #111;}
    .card-grid-2 .icon-item {width: 100%;}
    .icon-item {padding: 25px 20px 25px;}
    .icon-grid {gap: 20px;}
    .icon-card-item{padding: 25px 20px;}
    .icon-card-item .icon-card-image{margin-bottom: 10px;}
    .icon-card-item .icon-card-heading{margin-bottom: 10px;}
    .icon-card-slider .swiper-controls{width: 100%;justify-content: center;}
    .icon-card-slider .icon-card-item .icon-card-heading{min-height: 48px;}
    .section-icon-card-slider .flex-btn {margin-top: 20px;}
    .swiper-controls.flex{bottom: -10px;}
    .testimonial-item{padding: 20px 15px;}
    .testimonial-item .rte {font-size: 16px;}
    .testimonial-item span.icon-quote svg {width: 32px;height: 32px;}
    .testimonial-slider .swiper-controls.flex{padding-left: 25px;}
    .testimonial-item .testimonial-content{padding-bottom: 90px;}
    .testimonial-slider.mySwiper .swiper-button-next, .testimonial-slider.mySwiper .swiper-button-prev{bottom: 60px;}
    .faqs--list .faq--item .faq-title{line-height: 1.25em;font-size: 16px;color: #0574BC;}
    .video-wrapper::before{display: none;}
    .section-get-quote .form-block{padding: 20px;}
    .about-intro-tag {flex-direction: column;border-radius: 30px;gap: 12px;}
    .section-banner.inner-v2 .sb-heading {font-size: 32px;}
    .card-grid-3 .icon-item {width: 100%;}
    .card-grid-4 .icon-item{width: 100%;}
    .post-featured .post-card{width: 100%;}
    .post-grid{row-gap: 40px;}
    .post-card{width: 100%;}
    .post-filter .section-sub-heading {width: 100%;text-align: center;margin-bottom: 20px;}
    .filter-btn{padding: 5px 15px 3px; font-size: 12px;}
    .blog-filter-cats{width: 100%;justify-content: center;}
    .post-filter{margin-bottom: 30px;}
    .post-featured .post-card .post-card-title,
    .post-card .post-card-title{font-size: 18px;line-height: 1.18em;}
    .tag-label {font-size: 18px;}
    .wp-block-gallery.gallery .wp-block-image {width: calc(33.33% - 15px * 4 / 5) !important;}
    .info-card {width: 100%;}
    .info-card:first-child {padding: 25px 15px;}
    .info-card .info-email, .info-card .social-link a {font-size: 18px;}
    .form-block.fancybox__content {padding: 20px 15px;}
    .form-block>h2 {font-size: 26px;}
    .swiper-numbered-pagination{padding: 10px 0;margin-bottom: 20px;}
    .swiper-numbered-pagination .swiper-pagination-bullet{font-size: 12px;width: 22px;height: 22px;border-width: 1px;}
    .swiper-numbered-pagination{gap: 2px;}
    .image-card-item {width: 100%;}
    .section-image-card-grid .image-card-item {width: 100%;}
    .section-image-card-grid .image-card-item .image-card-heading {font-size: 19px;}
    .video-wrapper {height: auto;}
    .section-header.bottom-section .section-sub-heading, .section-full-width-content .section-sub-heading{font-size: 15px;}
    .portfolio-filter .filter-col:first-child, .portfolio-filter .filter-col{width: 100%;}
    .portfolio-filter {padding: 20px 10px;}
    .portfolio-filter .filter-type {gap: 8px;padding-right: 0;margin-bottom: 25px;}
    .portfolio-grid{row-gap: 30px;}
    .portfolio-grid .portfolio-item {width: 100%;}
    .portfolio-grid .portfolio-item .portfolio-heading{color: #000;margin: 10px 0 0;}
    .section-image-card-grid.v2 .image-card-item{width: 100%;}
    .section-grants-card .image-card-grid .image-card-item {width: 100%;padding: 20px 15px;}
    .resource-item {width: 100%;}
    .resource-item .resource-heading{height: auto !important;}
    .page-template-default .section-banner.inner-v2{min-height: 300px;}
    footer .f-bottom-menu{gap: 4px;row-gap: 4px;}
    .image-scrolling{height: 60vh;}
    .image-scrolling-col:nth-child(4), .image-scrolling-col:nth-child(5) {display: none;}
    .showcase-item {width: 100%;}
    .service-item .service-name{font-size: 18px;}
    .section-service-grid .service-label{font-size: 15px;}
    .service-item .service-icon{height: 114px;height: 114px;}
    .service-item .service-icon svg{width: 66px;height: 66px;}
    .section-faqs .section-header .section-heading{margin-bottom: 0;}
    .m-p-t-0{padding-top: 0;}
    .col-30, .col-70 {width: 100%;}
    .section-video-card .section-heading, .section-video-card .rte {text-align: center;}
    .section-video-card .flex-btn{justify-content: center;}
    .team-item {width: calc(50% - 40px * 1 / 2);}
    .team-popup-left{display: none;}
    .team-popup-right{width: 100%;padding: 0 !important;}
    .team-popup{padding: 15px;}
    .team-popup .rte {font-size: 15px;}
    .team-popup .team-name{font-size: 18px;}
    .team-popup .team-sub-heading{font-size: 14px;letter-spacing: 0.5px;}
    footer .f-widget-col.f-menu-3 .f-widget-menu li{margin-bottom: 8px;}
    .motion-toggle{display: none;} 
}
@media only screen and (max-width: 599px){
    .promo-icon-item, .service-icon-item{width:100%;}
    .service-item {width: 100%;}
    .team-item {width: 100%;}
}
/*=============================================================================
   Deferred Gravity Forms — reserved space
   The form is fetched on first scroll, so its box has to be held open until it
   arrives or the injection would shift everything below it. The home page already
   carries a measurable CLS; adding a second shift while removing a first would be
   no gain at all.
   Heights measured from the rendered form: 591px at 390px wide, 351px from 768px up.
   --filled is added by the loader once the real form occupies the box, releasing
   the floor so a taller or shorter form is not clipped or padded.
============================================================================= */
.form-block--deferred{min-height:591px;}
.form-block--deferred.form-block--filled{min-height:0;}
@media only screen and (min-width: 768px){
    .form-block--deferred{min-height:351px;}
}


/*********************
Motion Control (WCAG 2.2.2) Start
*********************/
/* 40x40 also clears the 24x24 floor in WCAG 2.2 SC 2.5.8. */
.motion-toggle{
    display: inline-flex; align-items: center; justify-content: center;
    width: 40px; height: 40px; margin: 0 0 0 10px; padding: 0;
    background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.22);
    border-radius: 50%; color: #fff; cursor: pointer; flex: 0 0 auto;
}
.motion-toggle:hover{background: rgba(255,255,255,0.18);}
.motion-toggle svg{display: block;}
/* One icon shows at a time: pause while motion runs, play once it is stopped. */
.motion-toggle .motion-toggle__play{display: none;}
.motion-toggle[aria-pressed="true"] .motion-toggle__pause{display: none;}
.motion-toggle[aria-pressed="true"] .motion-toggle__play{display: block;}

/* Freeze rather than reset: animation-play-state holds each marquee where it is,
   where animation:none would snap it back to its start position. */
html[data-motion="paused"] *,
html[data-motion="paused"] *::before,
html[data-motion="paused"] *::after{
    animation-play-state: paused !important;
}
@media only screen and (max-width: 768px){
   .motion-toggle{display: none;}
}
/*********************
Motion Control (WCAG 2.2.2) End
*********************/


/*********************
Focus Indicator (WCAG 2.4.7 / 1.4.11) Start
*********************/
/*
 * The theme previously defined no focus styles at all, so indicators came entirely
 * from the browser default. That varied by browser, and .button elements got only a
 * 1px #005FCC ring which measures 2.88:1 against the dark navy header — under the
 * 3:1 that SC 1.4.11 requires for a focus indicator.
 *
 * #1E88C7 is the brand blue darkened until it clears 3:1 against every ground a
 * focused control actually sits on:
 *     white page        3.89:1
 *     off-white F4F6F9  3.59:1
 *     dark navy header  4.43:1
 *
 * outline-offset keeps the ring off the control itself, so a blue .button (which the
 * ring would otherwise sit directly against, at 1.37:1) is not an adjacent colour.
 * outline is used rather than box-shadow so focused cards keep their resting shadow.
 */
:focus-visible{
    outline: 3px solid #1E88C7;
    outline-offset: 3px;
    /* style.css:92 applies `transition: all 0.3s` to <a>, which made the ring fade in
       over 300ms and slide from offset 0 to 3px rather than appearing at once. A focus
       indicator should be immediate -- a keyboard user moving quickly outruns it. */
    transition: none;
}

/* Chrome's default ring is drawn for :focus-visible only, but Safari and older
   engines still paint on plain :focus. Match them so the indicator is consistent. */
:focus:not(:focus-visible){
    outline: none;
}

/* The skip link sits on its own black chip at the very top of the page; the offset
   would push the ring off-screen above the viewport, so tuck it inside. */
.skip-to-content:focus-visible{
    outline-offset: -3px;
}

/* Swiper needs overflow:hidden to work, which clips an outset ring. Draw the ring
   inside the slide instead of forcing overflow visible -- doing that would reveal
   every off-screen slide the moment a visitor tabbed into the carousel. */
.swiper :focus-visible{
    outline-offset: -3px;
}
/*********************
Focus Indicator (WCAG 2.4.7 / 1.4.11) End
*********************/


/*Image fix, testimonials logo*/
.testimonial-logo img {
  width: auto;
  max-width: 200px;   
  max-height: 60px;   
  object-fit: contain;
}