.ct-section {
width:100%;
background-size:cover;
background-repeat:repeat;
}
.ct-section>.ct-section-inner-wrap {
display:flex;
flex-direction:column;
align-items:flex-start;
}
.ct-div-block {
display:flex;
flex-wrap:nowrap;
flex-direction:column;
align-items:flex-start;
}
.ct-new-columns {
display:flex;
width:100%;
flex-direction:row;
align-items:stretch;
justify-content:center;
flex-wrap:wrap;
}
.ct-link-text {
display:inline-block;
}
.ct-link {
display:flex;
flex-wrap:wrap;
text-align:center;
text-decoration:none;
flex-direction:column;
align-items:center;
justify-content:center;
}
.ct-link-button {
display:inline-block;
text-align:center;
text-decoration:none;
}
.ct-link-button {
background-color: #1e73be;
border: 1px solid #1e73be;
color: #ffffff;
padding: 10px 16px;
}
.ct-image {
max-width:100%;
}
.ct-fancy-icon>svg {
width:55px;height:55px;}
.ct-inner-content {
width:100%;
}
.ct-slide {
display:flex;
flex-wrap:wrap;
text-align:center;
flex-direction:column;
align-items:center;
justify-content:center;
}
.ct-nestable-shortcode {
display:flex;
flex-wrap:nowrap;
flex-direction:column;
align-items:flex-start;
}
.oxy-comments {
width:100%;
text-align:left;
}
.oxy-comment-form {
width:100%;
}
.oxy-login-form {
width:100%;
}
.oxy-search-form {
width:100%;
}
.oxy-tabs-contents {
display:flex;
width:100%;
flex-wrap:nowrap;
flex-direction:column;
align-items:flex-start;
}
.oxy-tab {
display:flex;
flex-wrap:nowrap;
flex-direction:column;
align-items:flex-start;
}
.oxy-tab-content {
display:flex;
width:100%;
flex-wrap:nowrap;
flex-direction:column;
align-items:flex-start;
}
.oxy-testimonial {
width:100%;
}
.oxy-icon-box {
width:100%;
}
.oxy-pricing-box {
width:100%;
}
.oxy-posts-grid {
width:100%;
}
.oxy-gallery {
width:100%;
}
.ct-slider {
width:100%;
}
.oxy-tabs {
display:flex;
flex-wrap:nowrap;
flex-direction:row;
align-items:stretch;
}
.ct-modal {
flex-direction:column;
align-items:flex-start;
}
.ct-span {
display:inline-block;
text-decoration:inherit;
}
.ct-widget {
width:100%;
}
.oxy-dynamic-list {
width:100%;
}
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
			.ct-div-block,
			.oxy-post-content,
			.ct-text-block,
			.ct-headline,
			.oxy-rich-text,
			.ct-link-text { max-width: 100%; }
			img { flex-shrink: 0; }
			body * { min-height: 1px; }
		}            .oxy-testimonial {
                flex-direction: row;
                align-items: center;
            }
                        .oxy-testimonial .oxy-testimonial-photo-wrap {
                order: 1;
            }
            
                        .oxy-testimonial .oxy-testimonial-photo {
                width: 125px;                height: 125px;                margin-right: 20px;
            }
            
                        .oxy-testimonial .oxy-testimonial-photo-wrap, 
            .oxy-testimonial .oxy-testimonial-author-wrap, 
            .oxy-testimonial .oxy-testimonial-content-wrap {
                align-items: flex-start;                text-align: left;            }
            
                                                            .oxy-testimonial .oxy-testimonial-text {
                margin-bottom:8px;font-size: 21px;
line-height: 1.4;
-webkit-font-smoothing: subpixel-antialiased;
            }
            
                                    .oxy-testimonial .oxy-testimonial-author {
                font-size: 18px;
-webkit-font-smoothing: subpixel-antialiased;
            }
                            

                                                .oxy-testimonial .oxy-testimonial-author-info {
                font-size: 12px;
-webkit-font-smoothing: subpixel-antialiased;
            }
            
             
            
                        .oxy-icon-box {
                text-align: left;                flex-direction: column;            }
            
                        .oxy-icon-box .oxy-icon-box-icon {
                margin-bottom: 12px;
                align-self: flex-start;            }
            
                                                                        .oxy-icon-box .oxy-icon-box-heading {
                font-size: 21px;
margin-bottom: 12px;            }
            
                                                                                    .oxy-icon-box .oxy-icon-box-text {
                font-size: 16px;
margin-bottom: 12px;align-self: flex-start;            }
            
                        .oxy-icon-box .oxy-icon-box-link {
                margin-top: 20px;                            }
            
            
            /* GLOBALS */

                                                            .oxy-pricing-box .oxy-pricing-box-section {
                padding-top: 20px;
padding-left: 20px;
padding-right: 20px;
padding-bottom: 20px;
text-align: center;            }
                        
                        .oxy-pricing-box .oxy-pricing-box-section.oxy-pricing-box-price {
                justify-content: center;            }
            
            /* IMAGE */
                                                                                    .oxy-pricing-box .oxy-pricing-box-section.oxy-pricing-box-graphic {
                justify-content: center;            }
            
            /* TITLE */
                                                            
                                    .oxy-pricing-box .oxy-pricing-box-title-title {
                font-size: 48px;
            }
            
                                    .oxy-pricing-box .oxy-pricing-box-title-subtitle {
                font-size: 24px;
            }
            

            /* PRICE */
                                                .oxy-pricing-box .oxy-pricing-box-section.oxy-pricing-box-price {
                                                flex-direction: row;                                            }
            
                                    .oxy-pricing-box .oxy-pricing-box-currency {
                font-size: 28px;
            }
            
                                    .oxy-pricing-box .oxy-pricing-box-amount-main {
                font-size: 80px;
line-height: 0.7;
            }
            
                                    .oxy-pricing-box .oxy-pricing-box-amount-decimal {
                font-size: 13px;
            }
                        
                                    .oxy-pricing-box .oxy-pricing-box-term {
                font-size: 16px;
            }
            
                                    .oxy-pricing-box .oxy-pricing-box-sale-price {
                font-size: 12px;
color: rgba(0,0,0,0.5);
                margin-bottom: 20px;            }
            
            /* CONTENT */

                                                                        .oxy-pricing-box .oxy-pricing-box-section.oxy-pricing-box-content {
                font-size: 16px;
color: rgba(0,0,0,0.5);
            }
            
            /* CTA */

                                                                        .oxy-pricing-box .oxy-pricing-box-section.oxy-pricing-box-cta {
                justify-content: center;            }
            
        
                                .oxy-progress-bar .oxy-progress-bar-background {
            background-color: #000000;            background-image: linear-gradient(-45deg,rgba(255,255,255,.12) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.12) 50%,rgba(255,255,255,.12) 75%,transparent 75%,transparent);            animation: none 0s paused;        }
                
                .oxy-progress-bar .oxy-progress-bar-progress-wrap {
            width: 85%;        }
        
                                                        .oxy-progress-bar .oxy-progress-bar-progress {
            background-color: #66aaff;padding: 40px;animation: none 0s paused, none 0s paused;            background-image: linear-gradient(-45deg,rgba(255,255,255,.12) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.12) 50%,rgba(255,255,255,.12) 75%,transparent 75%,transparent);        
        }
                
                        .oxy-progress-bar .oxy-progress-bar-overlay-text {
            font-size: 30px;
font-weight: 900;
-webkit-font-smoothing: subpixel-antialiased;
        }
        
                        .oxy-progress-bar .oxy-progress-bar-overlay-percent {
            font-size: 12px;
        }
        
        .ct-slider .unslider-nav ol li {border-color: #ffffff; }.ct-slider .unslider-nav ol li.unslider-active {background-color: #ffffff; }.ct-slider .ct-slide {
				padding: 0px;			}
		
                        .oxy-superbox .oxy-superbox-secondary, 
            .oxy-superbox .oxy-superbox-primary {
                transition-duration: 0.5s;            }
            
            
            
            
            
        
        
        
        
            .oxy-shape-divider {
                width: 0px;
                height: 0px;
                
            }
            
            .oxy_shape_divider svg {
                width: 100%;
            }
            .oxy-pro-menu .oxy-pro-menu-container:not(.oxy-pro-menu-open-container):not(.oxy-pro-menu-off-canvas-container) .sub-menu{
box-shadow:px px px px ;}

.oxy-pro-menu .oxy-pro-menu-show-dropdown .oxy-pro-menu-list .menu-item-has-children > a svg{
transition-duration:0.4s;
}

.oxy-pro-menu .oxy-pro-menu-show-dropdown .oxy-pro-menu-list .menu-item-has-children > a div{
margin-left:0px;
}

.oxy-pro-menu .oxy-pro-menu-mobile-open-icon svg{
width:30px;
height:30px;
}

.oxy-pro-menu .oxy-pro-menu-mobile-open-icon{
padding-top:15px;
padding-right:15px;
padding-bottom:15px;
padding-left:15px;
}

.oxy-pro-menu .oxy-pro-menu-mobile-open-icon, .oxy-pro-menu .oxy-pro-menu-mobile-open-icon svg{
transition-duration:0.4s;
}

.oxy-pro-menu .oxy-pro-menu-mobile-close-icon{
top:20px;
left:20px;
}

.oxy-pro-menu .oxy-pro-menu-mobile-close-icon svg{
width:24px;
height:24px;
}

.oxy-pro-menu .oxy-pro-menu-mobile-close-icon, .oxy-pro-menu .oxy-pro-menu-mobile-close-icon svg{
transition-duration:0.4s;
}

.oxy-pro-menu .oxy-pro-menu-container.oxy-pro-menu-off-canvas-container, .oxy-pro-menu .oxy-pro-menu-container.oxy-pro-menu-open-container{
background-color:#ffffff;
}

.oxy-pro-menu .oxy-pro-menu-off-canvas-container, .oxy-pro-menu .oxy-pro-menu-open-container{
background-image:url();
}

.oxy-pro-menu .oxy-pro-menu-off-canvas-container .oxy-pro-menu-list .menu-item-has-children > a svg, .oxy-pro-menu .oxy-pro-menu-open-container .oxy-pro-menu-list .menu-item-has-children > a svg{
font-size:24px;
}

.oxy-pro-menu .oxy-pro-menu-dropdown-links-toggle.oxy-pro-menu-open-container .menu-item-has-children ul, .oxy-pro-menu .oxy-pro-menu-dropdown-links-toggle.oxy-pro-menu-off-canvas-container .menu-item-has-children ul{
background-color:rgba(0,0,0,0.2);
border-top-style:solid;
}

.oxy-pro-menu .oxy-pro-menu-container:not(.oxy-pro-menu-open-container):not(.oxy-pro-menu-off-canvas-container) .oxy-pro-menu-list{
                    flex-direction: row;
               }
.oxy-pro-menu .oxy-pro-menu-container .menu-item a{
                    text-align: left;
                    justify-content: flex-start;
                }
.oxy-pro-menu .oxy-pro-menu-container.oxy-pro-menu-open-container .menu-item, .oxy-pro-menu .oxy-pro-menu-container.oxy-pro-menu-off-canvas-container .menu-item{
                    align-items: flex-start;
                }

            .oxy-pro-menu .oxy-pro-menu-off-canvas-container{
                    top: 0;
                    bottom: 0;
                    right: auto;
                    left: 0;
               }
.oxy-pro-menu .oxy-pro-menu-container.oxy-pro-menu-open-container .oxy-pro-menu-list .menu-item a, .oxy-pro-menu .oxy-pro-menu-container.oxy-pro-menu-off-canvas-container .oxy-pro-menu-list .menu-item a{
                    text-align: left;
                    justify-content: flex-start;
                }

            .oxy-site-navigation {
--oxynav-brand-color:#4831B0;
--oxynav-neutral-color:#FFFFFF;
--oxynav-activehover-color:#EFEDF4;
--oxynav-background-color:#4831B0;
--oxynav-border-radius:0px;
--oxynav-other-spacing:8px;
--oxynav-transition-duration:0.3s;
--oxynav-transition-timing-function:cubic-bezier(.84,.05,.31,.93);
}

.oxy-site-navigation .oxy-site-navigation__mobile-close-wrapper{
text-align:left;
}

.oxy-site-navigation > ul{ left: 0; }
.oxy-site-navigation {
                        --oxynav-animation-name: none; 
                    }

                .oxy-site-navigation > ul:not(.open) > li[data-cta='true']:nth-last-child(1){ 
                    background-color: var(--oxynav-brand-color);
                    transition: var(--oxynav-transition-duration);
                    margin-left: var(--oxynav-other-spacing);
                    border: none;
                }
.oxy-site-navigation > ul:not(.open) > li[data-cta='true']:nth-last-child(2){ 
                    background: transparent;
                    border: 1px solid currentColor;
                    transition: var(--oxynav-transition-duration);
                    margin-left: var(--oxynav-other-spacing);
                }
.oxy-site-navigation > ul:not(.open) > li[data-cta='true']:nth-last-child(2):not(:hover) > img{
                    filter: invert(0) !important;
                }
.oxy-site-navigation > ul:not(.open) > li[data-cta='true']:hover{
                    background-color: var(--oxynav-activehover-color);
                }
.oxy-site-navigation > ul:not(.open) > li[data-cta='true']:nth-last-child(1) > a{
                    color: var(--oxynav-neutral-color);
                }
.oxy-site-navigation > ul:not(.open) > li[data-cta='true']:nth-last-child(2) > a{
                    color: var(--oxynav-brand-color);
                }
.oxy-site-navigation > ul:not(.open) > li[data-cta='true']:hover > a{
                    color: var(--oxynav-brand-color);
                }
.oxy-site-navigation > ul:not(.open) > li[data-cta='true']:nth-last-child(1) > a::after{
                    color: var(--oxynav-neutral-color);   
                }
.oxy-site-navigation > ul:not(.open) > li[data-cta='true']:nth-last-child(2) > a::after{
                    color: var(--oxynav-brand-color);   
                }
.oxy-site-navigation > ul:not(.open) > li[data-cta='true']:hover > a::after{
                    color: var(--oxynav-brand-color);   
                }
.oxy-site-navigation > ul:not(.open) > li[data-cta='true'] > ul{
                    display: none;
                }
.oxy-site-navigation > ul:not(.open) > li[data-cta='true'] > button, .oxy-site-navigation > ul:not(.open) > li[data-cta='true'] > ul{
                    display: none;
                }

                .ct-section-inner-wrap, .oxy-header-container{
  max-width: 1280px;
}
body {font-family: 'US21';}body {line-height: 1.4;font-size: clamp(1rem, 0.7rem + 0.8vw, 1.17rem) ;font-weight: 400;color: #00354c;}.oxy-nav-menu-hamburger-line {background-color: #00354c;}h1, h2, h3, h4, h5, h6 {font-family: 'US21';font-weight: 800;}a {color: #63888c;text-decoration: none;}a:hover {text-decoration: none;}.ct-link-text {text-decoration: ;}.ct-link {text-decoration: ;}.ct-link-button {border-radius: 3px;}.ct-section-inner-wrap {
padding-top: 75px;
padding-right: 20px;
padding-bottom: 75px;
padding-left: 20px;
}.ct-new-columns > .ct-div-block {
padding-top: 20px;
padding-right: 20px;
padding-bottom: 20px;
padding-left: 20px;
}.oxy-header-container {
padding-right: 20px;
padding-left: 20px;
}@media (max-width: 992px) {
				.ct-columns-inner-wrap {
					display: block !important;
				}
				.ct-columns-inner-wrap:after {
					display: table;
					clear: both;
					content: "";
				}
				.ct-column {
					width: 100% !important;
					margin: 0 !important;
				}
				.ct-columns-inner-wrap {
					margin: 0 !important;
				}
			}
.footer--menu--items {
 color:#ffffff;
 line-height:1.9;
}
.margin--bottom--large {
 margin-bottom:40px;
}
@media (max-width: 1280px) {
.margin--bottom--large {
}
}

.video--header--container {
 position:relative;
 min-height:70vh;
}
.video--header--container .ct-section-inner-wrap {
padding-top: 0;
padding-right: 0;
padding-bottom: 0;
padding-left: 0;
}
@media (max-width: 991px) {
.video--header--container {
 height:none ;
}
}

.rounded--corners--all {
 border-radius:20px;
}
.bg--highlight {
 background-color:#b2e3e4;
}
.padding--internal {
 padding-top:40px;
 padding-right:40px;
 padding-bottom:40px;
 padding-left:40px;
}
@media (max-width: 767px) {
.padding--internal {
 padding-top:20px;
 padding-right:20px;
 padding-bottom:20px;
 padding-left:20px;
}
}

.margin--bottom--small {
 margin-bottom:20px;
}
.container--max--width {
 width:100%;
 padding-left:120px;
 padding-right:120px;
}
@media (max-width: 1280px) {
.container--max--width {
 padding-left:40px;
 padding-right:40px;
}
}

@media (max-width: 991px) {
.container--max--width {
}
}

.bg--pale {
 background-color:#e9e8e4;
}
.margin--bottom--xs {
 margin-bottom:10px;
}
.section--margins {
}
.section--margins .ct-section-inner-wrap {
padding-right: 80px;
padding-left: 80px;
}
@media (max-width: 1280px) {
.section--margins {
}
.section--margins .ct-section-inner-wrap {
padding-right: 20px;
padding-left: 20px;
}
}

.rounded--corners--top {
 border-top-left-radius:20px;
 border-top-right-radius:20px;
}
.rounded--corners--bottom {
 border-bottom-left-radius:20px;
 border-bottom-right-radius:20px;
}
.services--list--item {
 width:100%;
 padding-top:10px;
 padding-bottom:10px;
 font-weight:800;
 transition-duration:0.3s;
 transition-timing-function:ease-in-out;
 color:#00354c;
}
.services--list--item:not(.ct-section):not(.oxy-easy-posts),
.services--list--item.oxy-easy-posts .oxy-posts,
.services--list--item.ct-section .ct-section-inner-wrap{
display:flex;
}
.button--icon {
 background-color:#00354c;
 margin-left:10px;
 transition-duration:0.3s;
 transition-timing-function:ease-in-out;
 padding-top:10px;
 padding-right:10px;
 padding-bottom:10px;
 padding-left:10px;
 border-radius:100px;
}
.border--bottom--list {
 border-top-color:#00354c;
 border-top-width:1px;
 border-top-style:solid;
}
@media (max-width: 991px) {
.border--bottom--list {
}
.border--bottom--list:not(.ct-section):not(.oxy-easy-posts),
.border--bottom--list.oxy-easy-posts .oxy-posts,
.border--bottom--list.ct-section .ct-section-inner-wrap{
display:flex;
}
}

.button--dark:hover{
}
.button--dark {
 background-color:#00354c;
 border-radius:25px;
 font-weight:800;
 color:#ffffff;
 padding-top:5px;
 padding-right:5px;
 padding-bottom:5px;
 padding-left:15px;
}
.button--dark:not(.ct-section):not(.oxy-easy-posts),
.button--dark.oxy-easy-posts .oxy-posts,
.button--dark.ct-section .ct-section-inner-wrap{
display:flex;
flex-direction:row;
flex-wrap:wrap;
align-items:center;
justify-content:space-between;
}
@media (max-width: 991px) {
.button--dark {
}
.button--dark:not(.ct-section):not(.oxy-easy-posts),
.button--dark.oxy-easy-posts .oxy-posts,
.button--dark.ct-section .ct-section-inner-wrap{
justify-content:space-between;
}
}

.button--icon--reverse {
 background-color:#b2e3e4;
 margin-left:10px;
 transition-duration:0.3s;
 transition-timing-function:ease-in-out;
}
.button--light {
 background-color:#b2e3e4;
 border-radius:25px;
 font-weight:800;
 color:#00354c;
 padding-top:5px;
 padding-right:05px;
 padding-bottom:5px;
 padding-left:15px;
}
.button--light:not(.ct-section):not(.oxy-easy-posts),
.button--light.oxy-easy-posts .oxy-posts,
.button--light.ct-section .ct-section-inner-wrap{
display:flex;
flex-direction:row;
align-items:center;
}
.sectors {
 border-radius:020px;
 background-color:#e9e8e4;
 padding-top:10px;
 padding-right:10px;
 padding-bottom:10px;
 padding-left:10px;
 color:#00354c;
}
.sectors:not(.ct-section):not(.oxy-easy-posts),
.sectors.oxy-easy-posts .oxy-posts,
.sectors.ct-section .ct-section-inner-wrap{
display:flex;
flex-direction:row;
align-items:center;
justify-content:space-between;
}
.onpage--cta {
 width:100%;
 border-radius:20px;
 padding-left:90px;
 padding-right:90px;
 gap:40px;
}
.onpage--cta:not(.ct-section):not(.oxy-easy-posts),
.onpage--cta.oxy-easy-posts .oxy-posts,
.onpage--cta.ct-section .ct-section-inner-wrap{
display:flex;
flex-direction:row;
align-items:flex-start;
justify-content:space-between;
gap:40px;
}
@media (max-width: 1280px) {
.onpage--cta {
 padding-left:20px;
 padding-right:20px;
}
}

@media (max-width: 767px) {
.onpage--cta {
 text-align:center;
}
.onpage--cta:not(.ct-section):not(.oxy-easy-posts),
.onpage--cta.oxy-easy-posts .oxy-posts,
.onpage--cta.ct-section .ct-section-inner-wrap{
display:flex;
flex-direction:column;
align-items:flex-start;
justify-content:space-between;
}
}

.services--list--text {
 transition-duration:0.3s;
 transition-timing-function:esse-in-out;
}
.logos:hover{
 filter:grayscale(0%);
 background-color:#63888c;
}
.logos {
 border-radius:20px;
 border-top-color:#ffffff;
 border-right-color:#ffffff;
 border-bottom-color:#ffffff;
 border-left-color:#ffffff;
 border-top-style:solid;
 border-right-style:solid;
 border-bottom-style:solid;
 border-left-style:solid;
 padding-top:10px;
 padding-right:10px;
 padding-bottom:10px;
 padding-left:10px;
 filter:grayscale(100%);
 transition-duration:0.3s;
 transition-timing-function:ease-in-out;
 background-color:#00354c;
 border-top-width:0px;
 border-right-width:0px;
 border-bottom-width:0px;
 border-left-width:0px;
 aspect-ratio:1 / 1;
}
.logos:not(.ct-section):not(.oxy-easy-posts),
.logos.oxy-easy-posts .oxy-posts,
.logos.ct-section .ct-section-inner-wrap{
display:flex;
flex-direction:row;
align-items:center;
justify-content:center;
}
.mega--menu--block--item {
 width:100%;
}
.mega--menu--block--item .ct-section-inner-wrap {
padding-top: 75px;
}
.mega--menu--block--item:not(.ct-section):not(.oxy-easy-posts),
.mega--menu--block--item.oxy-easy-posts .oxy-posts,
.mega--menu--block--item.ct-section .ct-section-inner-wrap{
display:flex;
flex-direction:column;
align-items:flex-start;
}
.mega--menu--arrow {
color: #00354c;}.mega--menu--arrow 
>svg {width: 55px;height: 55px;}.mega--menu--arrow {
 transition-duration:0.3s;
 opacity:0;
 width:0px;
}
.mega--menu--detail {
 font-size:80%;
 color:#00354c;
 text-align:left;
}
.social--media--icon:hover{
 color:#b2e3e4;
}
.social--media--icon {
 color:#ffffff;
 transition-duration:0.3s;
 transition-timing-function:ease-in-out;
}
.news--block:hover{
 background-color:rgba(178,227,228,0.76);
 border-radius:20px;
}
.news--block {
 padding-top:20px;
 padding-right:20px;
 padding-bottom:20px;
 padding-left:20px;
 transition-duration:0.3s;
 border-radius:20px;
 background-color:rgba(178,227,228,0.49);
}
.news--block--wide {
 padding-top:20px;
 padding-right:10px;
 padding-bottom:10px;
 padding-left:10px;
 gap:20px;
 align-self:stretch;
 border-bottom-color:#00354c;
 border-bottom-width:1px;
 border-bottom-style:solid;
 width:100%;
}
.news--block--wide:not(.ct-section):not(.oxy-easy-posts),
.news--block--wide.oxy-easy-posts .oxy-posts,
.news--block--wide.ct-section .ct-section-inner-wrap{
display:flex;
flex-direction:row;
flex-wrap:nowrap;
align-items:center;
justify-content:flex-start;
gap:20px;
}
.news--block--wide--image {
background-size: cover; width:150px;
 max-width:150px;
 background-color:#e9e8e4;
 object-fit:cover;
 object-position:center center;
 aspect-ratio:1 / 0.6;
 height:100%;
 background-position:50% 50%;
}
.mega--menu---title {
 color:#00354c;
}
.banner--white--text {
 color:#ffffff;
}
.bg--white {
 background-color:#ffffff;
}
.margin--bottom--xxs {
 margin-bottom:5px;
}
.button--white {
 background-color:#ffffff;
 padding-top:5px;
 padding-right:5px;
 padding-bottom:5px;
 padding-left:15px;
 border-radius:24px;
}
.button--white:not(.ct-section):not(.oxy-easy-posts),
.button--white.oxy-easy-posts .oxy-posts,
.button--white.ct-section .ct-section-inner-wrap{
display:flex;
flex-direction:row;
align-items:center;
justify-content:space-between;
}
.button--icon--simple {
 background-color:#00354c;
 margin-left:20px;
 transition-duration:0.3s;
 transition-timing-function:ease-in-out;
}
.services--list--columnleft {
 max-width:calc(100% - 70px) ;
}
.section--nomargins {
}
.section--nomargins .ct-section-inner-wrap {
padding-top: 0;
padding-right: 0;
padding-bottom: 0;
padding-left: 0;
}
.border---top--remove {
}
.border--bottom--list--right {
 border-top-color:#00354c;
 border-top-width:1px;
 border-top-style:solid;
}
@media (max-width: 991px) {
.border--bottom--list--right {
 border-top-style:none;
}
.border--bottom--list--right:not(.ct-section):not(.oxy-easy-posts),
.border--bottom--list--right.oxy-easy-posts .oxy-posts,
.border--bottom--list--right.ct-section .ct-section-inner-wrap{
display:flex;
}
}

.margin--bottom--xlarge {
 margin-bottom:60px;
}
.padding--left {
 padding-left:40px;
}
@media (max-width: 991px) {
.padding--left {
 padding-left:0px;
}
}

.bullet--dark {
color: #00354c;}.bullet--dark 
>svg {width: 12px;height: 12px;}.bullet--dark {
 padding-top:5px;
}
.bullet--list {
 padding-bottom:5px;
 font-weight:600;
 width:100%;
 gap:10px;
}
.bullet--list:not(.ct-section):not(.oxy-easy-posts),
.bullet--list.oxy-easy-posts .oxy-posts,
.bullet--list.ct-section .ct-section-inner-wrap{
display:flex;
flex-direction:row;
align-items:flex-start;
gap:10px;
}
.padding--internal--small {
 padding-top:15px;
 padding-right:15px;
 padding-bottom:15px;
 padding-left:15px;
 gap:10px;
 background-color:#b2e3e4;
}
.padding--internal--small:not(.ct-section):not(.oxy-easy-posts),
.padding--internal--small.oxy-easy-posts .oxy-posts,
.padding--internal--small.ct-section .ct-section-inner-wrap{
display:flex;
gap:10px;
}
.two--columns {
 width:100%;
 padding-left:40px;
 padding-right:40px;
}
.two--columns:not(.ct-section):not(.oxy-easy-posts),
.two--columns.oxy-easy-posts .oxy-posts,
.two--columns.ct-section .ct-section-inner-wrap{
display:grid;
display: grid !important;align-items: stretch;grid-template-columns: repeat(2, minmax(200px, 1fr));grid-column-gap: 40px;grid-row-gap: 20px;}
@media (max-width: 991px) {
.two--columns {
 padding-left:20px;
 padding-right:20px;
}
.two--columns:not(.ct-section):not(.oxy-easy-posts),
.two--columns.oxy-easy-posts .oxy-posts,
.two--columns.ct-section .ct-section-inner-wrap{
display:grid;
display: grid !important;align-items: stretch;grid-template-columns: repeat(1, minmax(200px, 1fr));grid-column-gap: 20px;grid-row-gap: 20px;}
}

@media (max-width: 479px) {
.two--columns {
 padding-left:0px;
 padding-right:0px;
}
}

.image--right--column {
 attachment_height:667;
 attachment_width:1000;
 attachment_url:http://www.us21.com/wp-content/uploads/2025/06/aeroplane-runway.jpg;
 object-fit:cover;
 aspect-ratio:1 / 0.6;
 object-position:50% 50%;
 margin-top:60px;
}
@media (max-width: 991px) {
.image--right--column {
}
}

.image--standard {
 width:100%;
 aspect-ratio:1 / 0.67;
 object-fit:cover;
 object-position:center center;
}
.three--columns {
 width:100%;
}
.three--columns:not(.ct-section):not(.oxy-easy-posts),
.three--columns.oxy-easy-posts .oxy-posts,
.three--columns.ct-section .ct-section-inner-wrap{
display:grid;
display: grid !important;align-items: stretch;grid-template-columns: repeat(3, minmax(200px, 1fr));grid-column-gap: 20px;grid-row-gap: 10px;}
@media (max-width: 991px) {
.three--columns {
}
.three--columns:not(.ct-section):not(.oxy-easy-posts),
.three--columns.oxy-easy-posts .oxy-posts,
.three--columns.ct-section .ct-section-inner-wrap{
display:grid;
display: grid !important;align-items: stretch;grid-template-columns: repeat(1, minmax(200px, 1fr));grid-column-gap: 20px;grid-row-gap: 20px;}
}

.one--column {
background-size: cover; width:50%;
 padding-left:40px;
 padding-right:40px;
 background-position:0% 50%;
}
.one--column:not(.ct-section):not(.oxy-easy-posts),
.one--column.oxy-easy-posts .oxy-posts,
.one--column.ct-section .ct-section-inner-wrap{
display:grid;
display: grid !important;align-items: stretch;grid-template-columns: repeat(1, minmax(200px, 1fr));grid-column-gap: 40px;grid-row-gap: 20px;}
@media (max-width: 991px) {
.one--column {
 width:100%;
 padding-left:20px;
 padding-right:20px;
}
.one--column:not(.ct-section):not(.oxy-easy-posts),
.one--column.oxy-easy-posts .oxy-posts,
.one--column.ct-section .ct-section-inner-wrap{
display:grid;
display: grid !important;align-items: stretch;grid-template-columns: repeat(1, minmax(200px, 1fr));grid-column-gap: 20px;grid-row-gap: 20px;}
}

@media (max-width: 479px) {
.one--column {
 padding-left:0px;
 padding-right:0px;
}
}

.border--light {
 border-top-color:#63888c;
 border-right-color:#63888c;
 border-bottom-color:#63888c;
 border-left-color:#63888c;
 border-top-width:1px;
 border-right-width:1px;
 border-bottom-width:1px;
 border-left-width:1px;
 border-top-style:solid;
 border-right-style:solid;
 border-bottom-style:solid;
 border-left-style:solid;
}
.card--capability {
 gap:20px;
 padding-top:20px;
 padding-right:20px;
 padding-bottom:20px;
 padding-left:20px;
 align-self:stretch;
 flex-grow:1;
}
.card--capability:not(.ct-section):not(.oxy-easy-posts),
.card--capability.oxy-easy-posts .oxy-posts,
.card--capability.ct-section .ct-section-inner-wrap{
display:flex;
flex-direction:row;
align-items:stretch;
gap:20px;
}
.margin--left {
 padding-left:40px;
}
@media (max-width: 991px) {
.margin--left {
 padding-left:20px;
}
}

@media (max-width: 479px) {
.margin--left {
 padding-left:0px;
}
}

.container--featured {
 text-align:left;
}
.mega--menu--container {
 background-color:#ffffff;
 border-radius:20px;
 padding-top:20px;
 padding-right:40px;
 padding-bottom:20px;
 padding-left:40px;
}
@media (max-width: 991px) {
.mega--menu--container {
 padding-left:10px;
 padding-right:10px;
 border-radius:0px;
}
}

@media (max-width: 767px) {
}

.container--small--image {
 width:100%;
 background-color:#ffffff;
 margin-bottom:20px;
 height:225px;
}
.text--dark {
 color:#00354c;
}
.header--container--image {
background-image:linear-gradient(rgba(0,53,76,0.75), rgba(0,53,76,0.75));}
.section--background {
background-image:url(https://www.us21.com/wp-content/uploads/2026/08/171004-F-KN424-1207A-2--scaled.jpg); gap:40px;
 background-blend-mode:overlay;
 background-position:500px 0%;
}
.section--background .ct-section-inner-wrap {
padding-top: 0;
padding-bottom: 0;
}
.section--background:not(.ct-section):not(.oxy-easy-posts),
.section--background.oxy-easy-posts .oxy-posts,
.section--background.ct-section .ct-section-inner-wrap{
gap:40px;
}
.margin--top--large {
 margin-top:65px;
 gap:8px;
}
.margin--top--large:not(.ct-section):not(.oxy-easy-posts),
.margin--top--large.oxy-easy-posts .oxy-posts,
.margin--top--large.ct-section .ct-section-inner-wrap{
gap:8px;
}
.bg--header--section {
 background-color:#00354c;
}
.bg--header--section .ct-section-inner-wrap {
padding-top: 60px;
padding-bottom: 74px;
}
@media (max-width: 991px) {
.bg--header--section {
}
.bg--header--section .ct-section-inner-wrap {
padding-bottom: 15px;
}
}

.four-columns {
 width:100%;
}
.four-columns:not(.ct-section):not(.oxy-easy-posts),
.four-columns.oxy-easy-posts .oxy-posts,
.four-columns.ct-section .ct-section-inner-wrap{
display:grid;
display: grid !important;align-items: stretch;grid-template-columns: repeat(4, minmax(200px, 1fr));grid-column-gap: 40px;grid-row-gap: 20px;}
@media (max-width: 1280px) {
.four-columns {
}
.four-columns:not(.ct-section):not(.oxy-easy-posts),
.four-columns.oxy-easy-posts .oxy-posts,
.four-columns.ct-section .ct-section-inner-wrap{
display:grid;
display: grid !important;align-items: stretch;grid-template-columns: repeat(2, minmax(200px, 1fr));grid-column-gap: 20px;grid-row-gap: 20px;}
}

@media (max-width: 767px) {
.four-columns {
}
.four-columns:not(.ct-section):not(.oxy-easy-posts),
.four-columns.oxy-easy-posts .oxy-posts,
.four-columns.ct-section .ct-section-inner-wrap{
display:grid;
display: grid !important;align-items: stretch;grid-template-columns: repeat(1, minmax(200px, 1fr));grid-column-gap: 20px;grid-row-gap: 20px;}
}

.text--caps {
 text-transform:uppercase;
}
.text--small {
 font-size:14px;
 font-weight:400;
}
.text--left--align {
 text-align:left;
}
.text--light {
 letter-spacing:1px;
 color:rgba(0,53,76,0.6);
 font-weight:600;
 font-size:14px;
 border-left-color:#00354c;
 border-left-width:1px;
 border-left-style:none;
 border-top-style:none;
 border-right-style:none;
 border-bottom-style:none;
}
.news--block--title {
 color:#00354c;
 text-align:left;
 transition-duration:0.3s;
}
.casestudy--container {
 width:100%;
 flex-grow:1;
}
.casestudy--container:not(.ct-section):not(.oxy-easy-posts),
.casestudy--container.oxy-easy-posts .oxy-posts,
.casestudy--container.ct-section .ct-section-inner-wrap{
display:flex;
flex-direction:column;
align-items:flex-start;
justify-content:space-between;
}
.card--capability--image {
 min-width:200px;
 min-height:200px;
 width:200px;
 height:200px;
}
.one--column--full-width {
 width:100%;
 padding-left:40px;
 padding-right:40px;
 margin-top:-50px;
}
.one--column--full-width:not(.ct-section):not(.oxy-easy-posts),
.one--column--full-width.oxy-easy-posts .oxy-posts,
.one--column--full-width.ct-section .ct-section-inner-wrap{
display:flex;
}
@media (max-width: 991px) {
.one--column--full-width {
 padding-left:20px;
 padding-right:20px;
}
.one--column--full-width:not(.ct-section):not(.oxy-easy-posts),
.one--column--full-width.oxy-easy-posts .oxy-posts,
.one--column--full-width.ct-section .ct-section-inner-wrap{
display:grid;
display: grid !important;align-items: stretch;grid-template-columns: repeat(1, minmax(200px, 1fr));grid-column-gap: 20px;grid-row-gap: 20px;}
}

@media (max-width: 479px) {
.one--column--full-width {
 padding-left:0px;
 padding-right:0px;
}
}

.bullet--list--rules {
 padding-top:8px;
 padding-bottom:8px;
 border-bottom-color:#b2e3e4;
 border-bottom-width:1px;
 border-bottom-style:solid;
}
.bg--tertiary {
background-size: auto 150%; background-color:#00354c;
 background-repeat:no-repeat;
 color:#ffffff;
 background-position:100% 0100%;
}
.bg--tertiary .ct-section-inner-wrap {
padding-bottom: 75px;
}
@media (max-width: 991px) {
.bg--tertiary {
 background-position:50% 0%;
}
}

.sectors--dark {
 border-radius:020px;
 background-color:#00354c;
 padding-top:10px;
 padding-right:10px;
 padding-bottom:10px;
 padding-left:10px;
 color:#ffffff;
}
.sectors--dark:not(.ct-section):not(.oxy-easy-posts),
.sectors--dark.oxy-easy-posts .oxy-posts,
.sectors--dark.ct-section .ct-section-inner-wrap{
display:flex;
flex-direction:row;
align-items:center;
justify-content:space-between;
}
.arrow--icon {
color: #333333;}.arrow--icon 
>svg {width: 14px;height: 14px;}.arrow--icon {
}
.bg--pale--light {
 background-color:rgba(233,232,228,0.4);
}
.image--right--drop {
 margin-bottom:-75px;
 margin-top:0px;
 z-index:1;
}
.animate--move--up {
}
.txt--clear {
 margin-bottom:20px;
}
.width--100 {
 width:100%;
}
@media (max-width: 991px) {
.width--100 {
}
.width--100:not(.ct-section):not(.oxy-easy-posts),
.width--100.oxy-easy-posts .oxy-posts,
.width--100.ct-section .ct-section-inner-wrap{
display:flex;
}
}

.advantages {
}
.two--columns--grid {
 padding-left:0px;
 padding-right:0px;
}
.five--columns {
}
.five--columns:not(.ct-section):not(.oxy-easy-posts),
.five--columns.oxy-easy-posts .oxy-posts,
.five--columns.ct-section .ct-section-inner-wrap{
display:grid;
display: grid !important;align-items: stretch;grid-template-columns: repeat(5, minmax(200px, 1fr));grid-column-gap: 20px;grid-row-gap: 10px;}
@media (max-width: 1280px) {
.five--columns {
}
.five--columns:not(.ct-section):not(.oxy-easy-posts),
.five--columns.oxy-easy-posts .oxy-posts,
.five--columns.ct-section .ct-section-inner-wrap{
display:grid;
display: grid !important;align-items: stretch;grid-template-columns: repeat(2, minmax(200px, 1fr));grid-column-gap: 20px;grid-row-gap: 20px;}
}

@media (max-width: 767px) {
.five--columns {
}
.five--columns:not(.ct-section):not(.oxy-easy-posts),
.five--columns.oxy-easy-posts .oxy-posts,
.five--columns.ct-section .ct-section-inner-wrap{
display:grid;
display: grid !important;align-items: stretch;grid-template-columns: repeat(1, minmax(200px, 1fr));grid-column-gap: 20px;grid-row-gap: 20px;}
}

.txt--small--caps {
 color:#63888c;
 font-weight:700;
 text-transform:uppercase;
 letter-spacing:2px;
}
.card--featured {
background-image: linear-gradient(85deg, #ffffff 20%, rgba(233,232,228,0.23) 100%); background-color:rgba(255,255,255,0.77);
}
.bullet--rotate {
color: #63888c;}.bullet--rotate 
>svg {width: 20px;height: 20px;}.bullet--rotate {
transform:rotate(90deg); margin-top:8px;
}
.bullet--list--stack {
 padding-bottom:5px;
 width:100%;
 gap:0px;
}
.bullet--list--stack:not(.ct-section):not(.oxy-easy-posts),
.bullet--list--stack.oxy-easy-posts .oxy-posts,
.bullet--list--stack.ct-section .ct-section-inner-wrap{
display:flex;
flex-direction:column;
align-items:flex-start;
gap:0px;
}
.margin--bottom {
 margin-bottom:40px;
}
.gradient-border {
}
.animate-slide {
}
.parent-slide {
}
.image--right--content {
 margin-top:0px;
}
@media (max-width: 991px) {
.image--right--content {
}
}

.card--simple {
}
.two--columns--switchorder {
 margin-bottom:75px;
 margin-top:0px;
 padding-left:40px;
 padding-right:40px;
}
@media (max-width: 991px) {
.two--columns--switchorder {
 padding-left:20px;
 padding-right:20px;
}
}

@media (max-width: 479px) {
.two--columns--switchorder {
 padding-left:0px;
 padding-right:0px;
}
}

.column-1 {
}
.column-2 {
 width:100%;
}
.accordion-item {
}
.accordion-content {
}
.accordion-header {
}
.accordion-header:not(.ct-section):not(.oxy-easy-posts),
.accordion-header.oxy-easy-posts .oxy-posts,
.accordion-header.ct-section .ct-section-inner-wrap{
display:flex;
flex-direction:column;
justify-content:flex-start;
}
.accordion-toggle {
}
.services--list--container {
}
.oxy-stock-content-styles {
}
.home--featured--image {
background-size: cover; background-repeat:no-repeat;
}
.plusicon {
}
.img--overlay {
}
.img--overlay:not(.ct-section):not(.oxy-easy-posts),
.img--overlay.oxy-easy-posts .oxy-posts,
.img--overlay.ct-section .ct-section-inner-wrap{
display:flex;
}
.angled-corner {
}
.ratio--image {
aspect-ratio: 16 / 9;
}
.card--content {
}
.text--stats {
 font-size:70px;
 font-weight:900;
 color:#63888c;
 min-width:150px;
}
.stat--row {
 text-align:left;
 gap:10px;
 align-self:stretch;
 border-bottom-color:#00354c;
 border-bottom-width:1px;
 border-bottom-style:solid;
}
.stat--row:not(.ct-section):not(.oxy-easy-posts),
.stat--row.oxy-easy-posts .oxy-posts,
.stat--row.ct-section .ct-section-inner-wrap{
display:flex;
flex-direction:row;
align-items:center;
gap:10px;
}
.stat--column {
 border-top-color:#00354c;
 border-top-width:1px;
 border-top-style:solid;
}
.stat--description {
 color:#63888c;
 font-weight:800;
}
.no-outer-margins {
 padding-left:0px;
 padding-right:0px;
}
.no-outer-margins .ct-section-inner-wrap {
padding-right: 40px;
padding-left: 40px;
}
@media (max-width: 1280px) {
.no-outer-margins {
}
.no-outer-margins .ct-section-inner-wrap {
padding-right: 20px;
padding-left: 20px;
}
}

.approach--block {
 padding-top:10px;
 padding-right:10px;
 padding-bottom:10px;
 padding-left:10px;
 font-size:80%;
 height:100%;
 border-radius:20px;
 border-top-color:#00354c;
 border-right-color:#00354c;
 border-bottom-color:#00354c;
 border-left-color:#00354c;
 border-top-width:01px;
 border-right-width:01px;
 border-bottom-width:01px;
 border-left-width:01px;
 border-top-style:solid;
 border-right-style:solid;
 border-bottom-style:solid;
 border-left-style:solid;
}
.approach--title {
 border-bottom-color:#00354c;
 border-bottom-width:1px;
 border-bottom-style:solid;
 margin-bottom:8px;
 width:100%;
 padding-bottom:5px;
}
.has-hero-video {
}
.partner-logos {
}
.services--list {
}
.reveal-wrap {
}
.logos-container {
}
.footer--menu--titles {
 text-transform:uppercase;
 letter-spacing:2px;
 font-size:12px;
 color:#b2e3e4;
}
.news--heo--heading {
background-image: linear-gradient(90deg, #00354c, rgba(0,53,76,0.68));}
H1 {
font-size: clamp(1.9rem, 1rem + 2.8vw, 3.2rem);
}
H2 {
font-size: clamp(1.5rem, 1.05rem + 1.5vw, 2.25rem);
}
H3 {
font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem);
}
H4 { 
font-size: 20px;
}
H5 {
font-size: 18px;
}
H6 {
Font-size: 16px;
}
.two--columns--switchorder {
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:40px;
  align-items: stretch;
}
@media (max-width: 992px) {
  .two--columns--switchorder {
   grid-template-columns: 1fr; /* Single column */
  }
  .column-1 { order: 2; } /* Left column goes below */
  .column-2 { order: 1; } /* Right column goes above */
}
:root {
  --color-1: #00354c;
  --color-2: #63888c; 
  --color-3: #ffffff;
  --color-4: #e9e8e4;
  --color-4--rgb: 233, 232, 228; /* RGB values for transparency */
  --color-5: #b2e3e4;
}
.home--featured--image {
  background: 
linear-gradient(to bottom, 
  white 0%, 
  #00354c00 50%,  /* 00 at the end = fully transparent */
  #00354c 100%
),
    url('https://us21site.wpenginepowered.com/wp-content/uploads/2026/01/camp_large_centre_web_duo.jpg');
}
.section--background {
  position: relative; /* Important for positioning the ::before */
  background-color: var(--color-4);
  background-image: url(https://us21site.wpenginepowered.com/wp-content/uploads/2026/01/chevronsnew.svg);
  background-position: center center; /* horizontal center, vertical center */
}
.img--overlay {
    position: relative;
    overflow: hidden;
}
.img--overlay img {
    display: block;
}
.angled-corner {
  clip-path: polygon(
    0 calc(50% - 60px),       /* left side - above triangle (START HERE) */
    45px 50%,                 /* triangle point (extends inward) */
    0 calc(50% + 60px),       /* left side - below triangle */
    0 100%,                   /* bottom-left */
    100% 100%,                /* bottom-right */
    100% 0,                   /* top-right */
    0 0                       /* top-left */
  );
}
@media (max-width: 992px) {
  .angled-corner {
    clip-path: polygon(
      0 0,                      /* top-left */
      calc(50% - 60px) 0,       /* top - before triangle */
      50% 45px,                 /* triangle point (extends 45px down) */
      calc(50% + 60px) 0,       /* top - after triangle */
      100% 0,                   /* top-right */
      100% 100%,                /* bottom-right */
      0 100%                    /* bottom-left */
    );
  }
}
.img--overlay::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url(https://us21site.wpenginepowered.com/wp-content/uploads/2026/01/img-overlay2.png);
    pointer-events: none;
}
.section--background::after {
  content: ""; /* Required for ::before to display */
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to bottom, 
    rgba(var(--color-4--rgb), 0.4), 
    rgba(var(--color-4--rgb), 1)
  );
  pointer-events: none; /* Allows clicks to pass through to content below */
    z-index: 0; /* Keeps overlay behind content */
}
/* Target the direct children of the section */
.section--background > * {
  position: relative;
  z-index: 1; /* Brings content above the overlay */
}
.gradient-border {
  position: relative;
}
.gradient-border::before {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(to right, var(--color-1), transparent);
}
.ct-text-block ul {
  padding: 0;
  margin: 0;
  list-style: none;
}
.plusicon {
  animation: grow-in 0.4s ease-out 0.5s backwards;
  /* 0.5s delay = starts after parent finishes */
}

@keyframes grow-in {
  from {
    transform: scale(0);
    opacity: 0;
  }
  to {
    transform: scale(1);
    opacity: 1;
  }
}
.ct-text-block li {
  position: relative;
  padding-left: 24px;
  margin-bottom: 8px;
}
.ct-text-block li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.2em;
  width: 12px;
  height: 12px;
  background-color: var(--color-1);
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M73 39c-14.8-9.1-33.4-9.4-48.5-.9S0 62.6 0 80V432c0 17.4 9.4 33.4 24.5 41.9s33.7 8.1 48.5-.9L361 297c14.3-8.7 23-24.2 23-41s-8.7-32.2-23-41L73 39z'/%3E%3C/svg%3E");
  mask-size: contain;
  mask-repeat: no-repeat;
}
.txt--clear p{
    margin-block-start:0px;
}
.button--dark:hover .button--icon {
  margin-left:20px;
}
.button--light:hover .button--icon {
  margin-left:20px;
}
.mega--menu--block--item:hover .mega--menu--arrow {
  opacity:1;
  width:20px;
}
.sectors:hover .button--icon {
  margin-right:10px;
  margin-left:10px;
}
.bullet--list normal {
  font-weight:800;
}
.news--block--title {
  text-decoration: none; 
  text-decoration-color: transparent; 
  transition: text-decoration 300ms;
}
.container--featured:hover .button--icon {
  margin-left:20px;
}
.news--block:hover .news--block--title {
  text-decoration: underline;
  text-decoration-color: #5b826c; 
  text-underline-offset: 0.2em; 
  text-decoration-thickness: 1px;

}
.news--block--wide:hover .news--block--title {
  text-decoration: underline;
  text-decoration-color: #5b826c; 
  text-underline-offset: 0.2em; 
  text-decoration-thickness: 1px;

}
.accordion-content h5:hover {
  text-decoration: underline;
  text-decoration-color: #5b826c; 
  text-underline-offset: 0.2em; 
  text-decoration-thickness: 1px;
}
.card--content ul {
margin-top:20px !important;
}
.casestudy--container:hover .news--block--title {
  text-decoration: underline;
  text-decoration-color: #5b826c; 
  text-underline-offset: 0.2em; 
  text-decoration-thickness: 1px;

}
.casestudy--container:hover .button--icon {
  margin-right:10px;
}
.bullet--list--rules .bullet--dark {
  color:#b2e3e4;
}
.sectors--dark .button--icon {
  background-color:#b2e3e4;
}
.sectors--dark .button--icon .arrow--icon {
  color:#00354c;
}
.button--dark .button--icon {
    background-color:#b2e3e4;
}
.button--dark .button--icon .arrow--icon {
    color:#00354c;
}
._dynamic_list-499-48 {
    counter-reset: item-counter;
}
._dynamic_list-499-48 > .ct-div-block {
    counter-increment: item-counter;
}
.card--simple p {
    margin-block-start: 0.25em;
    margin-block-end: 0em;
}
.accordion-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}
/* ACCORDIAN */
.accordion-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease, padding 0.4s ease;
  padding-top: 0;
  padding-bottom: 0;
}

.accordion-item.active .accordion-content {
  max-height: 1000px; /* Set higher if content is long */
  padding-top: 1.5rem;
  padding-bottom: 1rem;
}

.accordion-header {
  cursor: pointer;
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.accordion-toggle {
  width: 20px; /* Or whatever size you need */
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0; /* Prevents it from squishing */
  transition: transform 0.3s ease;
  font-size: 1.5rem;
  line-height: 1;
}

.accordion-toggle::before {
  content: '+';
}

.accordion-item.active .accordion-toggle::before {
  content: '−';
}
.approach--block:nth-child(1) { transition-delay: 0ms; }
.approach--block:nth-child(2) { transition-delay: 100ms; }
.approach--block:nth-child(3) { transition-delay: 200ms; }
.approach--block:nth-child(4) { transition-delay: 300ms; }
.approach--block:nth-child(5) { transition-delay: 400ms; }
.approach--block:nth-child(6) { transition-delay: 500ms; }

#section-214-48 {
  position: relative;
}

#section-214-48 > * {
  position: relative;
  z-index: 1;
}

#section-214-48::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: linear-gradient(
    to bottom,
    rgba(255, 255, 255, 1) 0%,
    rgba(255, 255, 255, 0) 30%,
    rgba(0, 53, 76, 0) 70%,
    rgba(0, 53, 76, 1) 100%
  );
  pointer-events: none;
}
.footer-legals {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.footer-legals li:not(:last-child)::after {
    content: "|";
    margin-left: 0.75rem;
    opacity: 0.5;
}
/* ─── Hero video ───────────────────────────────────────────── */

/* Parent section — apply .has-hero-video to any section using the video */
.has-hero-video {
    position: relative;
    overflow: hidden;
}

.has-hero-video > *:not(.hero-video-wrap) {
    position: relative;
    z-index: 1;
}

/* Video wrap fills the parent section — overlay blend is sealed in here */
.hero-video-wrap {
    position: absolute;
    inset: 0;
    overflow: hidden;
    z-index: 0;
    pointer-events: none;
    -webkit-touch-callout: none;
    isolation: isolate;
}

/* Colour overlay — hard-light blend, contained to the video only */
.hero-video-wrap::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    mix-blend-mode: hard-light;
    background: linear-gradient(
        to bottom,
        rgba(0, 53, 76, 0.77) 50%,
        rgba(77, 175, 255, 0.11) 100%
    );
}

/* The video itself — absolute fill (height:100% percentage chain breaks on mobile) */
.hero-video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    pointer-events: none;
    user-select: none;
    -webkit-user-select: none;
}

/* Mobile hidden by default */
.hero-video-mobile {
    display: none;
}

/* On mobile: hide desktop ONLY when a separate mobile video exists.
   Solo desktop (hero-video-solo class) stays visible on all breakpoints. */
@media (max-width: 960px) {
    .hero-video-desktop:not(.hero-video-solo) {
        display: none;
    }
    .hero-video-mobile {
        display: block;
    }
}
/* =========================================================
   Buttons + icon list
   Pairs with fortico-buttons.php
   Supersedes acf-button.css
   ========================================================= */

:root {

  /* ---- Icon knobs ----
     Declared here so ANY parent can host a .button__icon. Each component
     below overrides only the values it needs; the calcs re-resolve against
     whatever the nearest ancestor has set. */
  --btn-glyph: 0.75rem;              /* 12px play icon                  */
  --btn-icon-pad: 0.625rem;          /* 10px ring of padding around it  */
  --btn-icon-size: calc(var(--btn-glyph) + (var(--btn-icon-pad) * 2));
  --btn-icon-bg: var(--color-5);
  --btn-icon-fg: var(--color-1);

  /* Optical centring — a triangle's visual weight sits left of its bounding
     box, so it needs nudging right to look centred. Scales with the glyph.
     Set --icon-nudge to 0 for a symmetrical glyph (plus, dot, chevron). */
  --icon-nudge: calc(var(--btn-glyph) * 0.115);
  --icon-nudge-hover: calc(var(--icon-nudge) + 3px);

  --btn-ease: cubic-bezier(0.34, 1.3, 0.64, 1);
}

/* =========================================================
   The circular icon — parent-agnostic
   ========================================================= */

.button__icon {
  display: grid;
  place-items: center;
  flex: 0 0 auto;

  width: var(--btn-icon-size);
  height: var(--btn-icon-size);
  border-radius: 50%;

  background-color: var(--btn-icon-bg);
  color: var(--btn-icon-fg);

  transition: transform 0.3s var(--btn-ease), background-color 0.25s ease;
}

.button__icon svg {
  width: var(--btn-glyph);
  height: var(--btn-glyph);
  display: block;
  fill: currentColor;
  transform: translateX(var(--icon-nudge));
  transition: transform 0.3s var(--btn-ease);
}

/* Font Awesome glyph — sized by font-size rather than width/height */
.button__icon > [class*="fa-"] {
  font-size: var(--btn-glyph);
  line-height: 1;
  transform: translateX(var(--icon-nudge));
  transition: transform 0.3s var(--btn-ease);
}

/* ---- Hover triggers ----
   Add any new icon-bearing component to this :is() list and it inherits the
   whole rollover behaviour. The circle grows in place and the glyph slides
   inside it, so nothing breaks past a rounded edge. */
:is(.button--icon, .services--list--item):is(:hover, :focus-visible) .button__icon {
  transform: scale(1.08);
}

:is(.button--icon, .services--list--item):is(:hover, :focus-visible) .button__icon :is(svg, [class*="fa-"]) {
  transform: translateX(var(--icon-nudge-hover));
}

/* =========================================================
   Pill button
   ========================================================= */

.button {
  --btn-bg: var(--color-1);
  --btn-bg-hover: var(--btn-bg);   /* no colour change on hover by default —
                                      set this on a variant to opt one in */
  --btn-text: var(--color-3);
  --btn-inset: 0.3rem;             /* gap between circle and pill edge */
  --btn-size: calc(var(--btn-icon-size) + (var(--btn-inset) * 2));
  --btn-pad-left: 1.5rem;
  --btn-gap: 1rem;

  display: inline-flex;
  align-items: center;
  gap: var(--btn-gap);

  min-height: var(--btn-size);
  margin: 0;   /* Oxygen applies a default margin to links/buttons — reset it */
  padding: var(--btn-inset) var(--btn-inset) var(--btn-inset) var(--btn-pad-left);
  border: 0;
  border-radius: 999px;

  background-color: var(--btn-bg);
  color: var(--btn-text);

  font: inherit;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.01em;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;

  transition: background-color 0.25s ease, color 0.25s ease;
}

.button:hover,
.button:focus-visible {
  background-color: var(--btn-bg-hover);
  color: var(--btn-text);
  text-decoration: none;
}

.button:focus-visible {
  outline: 2px solid var(--btn-icon-bg);
  outline-offset: 3px;
}

.button:not(.button--icon) {
  padding-right: var(--btn-pad-left);
}

/* ---- Button variants ---- */

.button--light {
  --btn-bg: var(--color-4);
  --btn-text: var(--color-1);
  --btn-icon-bg: var(--color-1);
  --btn-icon-fg: var(--color-5);
}

.button--outline {
  --btn-bg: transparent;
  --btn-text: var(--color-1);
  box-shadow: inset 0 0 0 2px var(--color-1);
}

.button--sm { --btn-glyph: 0.625rem; --btn-icon-pad: 0.5rem;   --btn-pad-left: 1.25rem;  font-size: 0.9375rem; }
.button--lg { --btn-glyph: 0.875rem; --btn-icon-pad: 0.875rem; --btn-pad-left: 1.875rem; font-size: 1.125rem; }

@media (max-width: 32rem) {
  .button--block-sm { display: flex; width: 100%; justify-content: space-between; }
}

.button--keyline {
	border: 1px solid var(--color-5);
}

/* =========================================================
   Services list — nav menu rendered as stacked link rows
   ========================================================= */

.services--list {
  display: flex;
  flex-direction: column;
}

.services--list--item {
  /* Bigger circle than the pill button uses */
  --btn-glyph: 0.875rem;
  --btn-icon-pad: 1.0625rem;       /* → 48px circle */
  --btn-icon-bg: var(--color-1);
  --btn-icon-fg: var(--color-3);

  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;

  margin: 0;                        /* Oxygen link margin reset */
  padding: 0.8rem 0;
  border: 0;
  border-bottom: 1px solid var(--color-1);
  color: var(--color-1);
  text-decoration: none;
}

.services--list--item:last-child{
  border-bottom: 1px solid var(--color-1);
}
.services--list--item:first-child {
    border-top: 1px solid var(--color-1);

}

.services--list--item:hover,
.services--list--item:focus-visible {
  color: var(--color-1);
  text-decoration: none;
}
.services--list--item:hover .services--list--text {
   font-size: 20.9px;
}
.services--list--item:focus-visible {
  outline: 2px solid var(--color-1);
  outline-offset: 4px;
}

.services--list--text {
 font-size: 20px;
 font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.02em;
}

/* Marks the row matching the page you're on */
.services--list--item[aria-current="page"] .button__icon {
  --btn-icon-bg: var(--color-2);
}

/* =========================================================
   Accessibility
   ========================================================= */

@media (prefers-reduced-motion: reduce) {
  .button,
  .button__icon,
  .button__icon svg,
  .button__icon > [class*="fa-"] {
    transition-duration: 0.01ms;
  }
  :is(.button--icon, .services--list--item):hover .button__icon {
    transform: none;
  }
  :is(.button--icon, .services--list--item):hover .button__icon :is(svg, [class*="fa-"]) {
    transform: translateX(var(--icon-nudge));
  }
}
 .ct-code-block .button { margin: 0; }

.reveal-wrap { overflow: hidden; }

.reveal-wrap img {
  clip-path: inset(0 0 100% 0);
  transform: scale(1.08) translateY(-3%);
  transition: clip-path 1.1s cubic-bezier(0.65, 0, 0.35, 1),
              transform  1.4s cubic-bezier(0.65, 0, 0.35, 1);
}

.reveal-wrap.is-visible img {
  clip-path: inset(0 0 0 0);
  transform: scale(1) translateY(0);
}/* =============================================
   GRAVITY FORMS — Custom Styling (Oxygen / Orbital Theme)
   ============================================= */

/* --- Inputs & Select --- */
.gform_wrapper.gform-theme--orbital input[type="text"],
.gform_wrapper.gform-theme--orbital input[type="email"],
.gform_wrapper.gform-theme--orbital input[type="tel"],
.gform_wrapper.gform-theme--orbital input[type="number"],
.gform_wrapper.gform-theme--orbital input[type="url"],
.gform_wrapper.gform-theme--orbital input[type="password"],
.gform_wrapper.gform-theme--orbital select {
    background-color: #e9e8e4 !important;
    border: 1px solid #e9e8e4 !important;
    color: #00354c !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    transition: border-color 0.2s ease !important;
    padding: 14px 16px !important;
    height: auto !important;
    min-height: 50px !important;
}

/* --- Textarea --- */
.gform_wrapper.gform-theme--orbital textarea {
    background-color: #e9e8e4 !important;
    border: 1px solid #e9e8e4 !important;
    color: #00354c !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    transition: border-color 0.2s ease !important;
    padding: 14px 16px !important;
}

/* --- Focus state --- */
.gform_wrapper.gform-theme--orbital input[type="text"]:focus,
.gform_wrapper.gform-theme--orbital input[type="email"]:focus,
.gform_wrapper.gform-theme--orbital input[type="tel"]:focus,
.gform_wrapper.gform-theme--orbital input[type="number"]:focus,
.gform_wrapper.gform-theme--orbital input[type="url"]:focus,
.gform_wrapper.gform-theme--orbital input[type="password"]:focus,
.gform_wrapper.gform-theme--orbital textarea:focus,
.gform_wrapper.gform-theme--orbital select:focus {
    border-color: #b2e3e4 !important;
    outline: none !important;
    box-shadow: none !important;
}

/* --- Tighten rows --- */
.gform_wrapper.gform-theme--orbital .gfield {
    padding-bottom: 4px !important;
    margin-bottom: 6px !important;
}

/* --- Required label --- */
.gform_wrapper.gform-theme--orbital .gfield_required {
    letter-spacing: 1px !important;
    color: rgba(0, 53, 76, 0.6) !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    text-transform: uppercase !important;
}

/* --- Submit button --- */
.gform_wrapper.gform-theme--orbital .gform_footer input[type="submit"],
.gform_wrapper.gform-theme--orbital .gform_page_footer input[type="submit"] {
    background-color: #00354c !important;
    color: #ffffff !important;
    border-radius: 25px !important;
    font-weight: 800 !important;
    border: none !important;
    padding: 14px 32px !important;
    cursor: pointer !important;
    transition: opacity 0.2s ease !important;
}

.gform_wrapper.gform-theme--orbital .gform_footer input[type="submit"]:hover,
.gform_wrapper.gform-theme--orbital .gform_page_footer input[type="submit"]:hover {
    opacity: 0.85 !important;
}/* ============================================================
   US21 — Walker Mega Menu Styles
   WPCode | CSS Snippet | Auto-insert: Run Everywhere
   ============================================================

   Colour tokens (from existing site):
     --us21-navy:       #00354c  (rgb 0,53,76)
     --us21-teal:       #63888c  (rgb 99,136,140)
     --us21-teal-light: #b2e3e4  (rgb 178,227,228)
     --us21-callout-bg: #e9e8e4  (rgb 233,232,228)
   ============================================================ */

/* ── Hide the original reference nav row ──────────────────── */
#_header_row-521-11 {
  display: none !important;
}


/* ── Header row: positioning context for all mega panels ─── */
/* The nav is right-aligned and compact (~370px wide), so we
   can't use it as the centering reference. The full-width
   header row is the containing block instead. top/left are
   set per-open via JS (see snippet-5-mega-menu.js).           */

#_header_row-371-11 {
  position: relative;
}


/* ── Nav shell ────────────────────────────────────────────── */

nav.primary-navigation {
  display: flex;
  align-items: center;
}

ul.nav-menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 0;
}


/* ── Top-level list items ─────────────────────────────────── */

.menu-item.depth-0 {
  position: static;
}


/* ── Top-level button trigger ─────────────────────────────── */

.nav-top-link {
  appearance: none;
  background: none;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  color: #ffffff;
  font-family: US21, sans-serif;
  font-size: 18.72px;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
  transition: color 0.2s ease;
}

.nav-top-link:hover,
.menu-item.depth-0:hover .nav-top-link,
.menu-item.depth-0.is-open .nav-top-link {
  color: #b2e3e4;
}


/* ── Chevron arrow ────────────────────────────────────────── */

.nav-chevron {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.nav-chevron svg {
  width: 10px;
  height: 10px;
  fill: currentColor;
  /* Point downward at rest (play icon naturally points right) */
  transform: rotate(90deg);
  transform-origin: center;
  transition: transform 0.25s ease;
}

.nav-top-link[aria-expanded="true"] .nav-chevron svg {
  transform: rotate(270deg);
}


/* ── Mega panel — hidden by default ──────────────────────── */
/* top + left are injected by JS on each open based on the
   triggering button's position and the viewport width.
   We use visibility + opacity + transform instead of
   display:none so CSS transitions work cleanly.               */

.mega-panel {
  /* Always flex so content lays out correctly */
  display: flex;
  flex-direction: row;
  gap: 40px;
  align-items: flex-start;

  position: absolute;
  /* top / left / width set by JS */
  width: calc(100vw - 160px);
  max-width: none;
  background: #ffffff;
  border-radius: 20px;
  padding: 30px 40px;
  z-index: 200;
  box-shadow: 0 8px 40px rgba(0, 53, 76, 0.12);

  /* Hidden state */
  visibility: hidden;
  opacity: 0;
  transform: translateY(-8px);
  pointer-events: none;

  /* Transition */
  transition:
    opacity   0.22s ease,
    transform 0.22s ease,
    visibility 0s linear 0.22s; /* delay visibility until fade finishes */
}

.mega-panel[aria-hidden="false"] {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
  transition:
    opacity   0.22s ease,
    transform 0.22s ease,
    visibility 0s linear 0s; /* show immediately on open */
}


/* ── Mega links grid ─────────────────────────────────────── */

.mega-links {
  display: grid;
  grid-template-columns: repeat(var(--mega-cols, 2), 1fr);
  gap: 4px 48px;
  flex: 1;
  min-width: 0;
}


/* ── Individual mega item ────────────────────────────────── */

.mega-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
  width: 100%;
  text-decoration: none;
  padding: 10px 0;
}



.mega-item__title {
  display: flex;
  align-items: center;
  gap: 0;
  color: #00354c;
  font-family: US21, sans-serif;
  font-size: 18px;
  font-weight: 800;
  line-height: 1.2;
  transition: gap 0.2s ease;
}

.mega-item:hover .mega-item__title {
  color: #00354c;
  gap: 8px; /* opens space between icon and text */
}

/* Play icon — hidden by default, slides in on hover */
.mega-item__icon {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  overflow: hidden;
  width: 0;
  opacity: 0;
  transition: width 0.2s ease, opacity 0.2s ease;
}

.mega-item__icon svg {
  width: 10px;
  height: 10px;
  fill: #00354c;
  flex-shrink: 0;
}

.mega-item:hover .mega-item__icon {
  width: 10px;
  opacity: 1;
}

.mega-item__desc {
  display: block;
  color: #00354c;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.4;
  opacity: 0.6;
}


/* ── Callout block ───────────────────────────────────────── */

.mega-callout {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 16px;
  background: #e9e8e4;
  border-radius: 20px;
  padding: 20px;
  width: 300px;
  flex-shrink: 0;
}

.mega-callout__image {
  flex-shrink: 0;
  width: 80px;
}

.mega-callout__image img {
  width: 80px;
  height: 80px;
  object-fit: cover;
  border-radius: 12px;
  display: block;
}

.mega-callout__body {
  flex: 1;
  min-width: 0;
}

.mega-callout__heading {
  margin: 0 0 8px;
  color: #00354c;
  font-family: US21, sans-serif;
  font-size: 16px;
  font-weight: 800;
  line-height: 1.3;
}

.mega-callout__text {
  margin: 0 0 12px;
  color: #00354c;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  opacity: 0.8;
}

.mega-callout__cta {
  display: inline-flex;
  align-items: center;
  color: #63888c;
  font-family: US21, sans-serif;
  font-size: 14px;
  font-weight: 800;
  text-decoration: none;
  gap: 4px;
  transition: color 0.2s ease;
}

.mega-callout__cta:hover {
  color: #00354c;
}

/* Callout without an image — body fills full width */
.mega-callout:not(:has(.mega-callout__image)) .mega-callout__body {
  flex: 1;
}


/* ── CTA button (Contact us) ─────────────────────────────── */

a.nav-cta-link {
  display: inline-flex;
  align-items: center;
  gap: 0;
  background: #00354c;
  color: #ffffff;
  text-decoration: none;
  border-radius: 25px;
  padding: 5px 5px 5px 18px;
  font-family: US21, sans-serif;
  font-size: 18.72px;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
  transition: background 0.2s ease;
}

a.nav-cta-link:hover {
  background: #005070;
}

.nav-cta-label {
  margin-right: 10px;
}

/* Play icon circle — matches original */
.nav-cta-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  background: #b2e3e4;
  border-radius: 50%;
  flex-shrink: 0;
  position: relative;
}

/* CSS triangle for the play icon */
.nav-cta-icon::after {
  content: '';
  display: block;
  width: 0;
  height: 0;
  border-top: 6px solid transparent;
  border-bottom: 6px solid transparent;
  border-left: 10px solid #00354c;
  margin-left: 2px; /* optical centre */
}


/* ── Burger button ────────────────────────────────────────── */

.nav-burger {
  display: none; /* shown in mobile MQ below */
  appearance: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  margin-left: auto;
}

.nav-burger__bar {
  display: block;
  width: 28px;
  height: 3px;
  background: #b2e3e4;
  border-radius: 2px;
  transition: transform 0.3s ease, opacity 0.3s ease;
  transform-origin: center;
}

/* Animate to X when open */
.nav-burger.is-active .nav-burger__bar:nth-child(1) {
  transform: translateY(8px) rotate(45deg);
}
.nav-burger.is-active .nav-burger__bar:nth-child(2) {
  opacity: 0;
  transform: scaleX(0);
}
.nav-burger.is-active .nav-burger__bar:nth-child(3) {
  transform: translateY(-8px) rotate(-45deg);
}


/* ============================================================
   MOBILE — < 992px
   ============================================================ */

@media (max-width: 991px) {

  /* Hard-reset the desktop panel transition immediately so there
     is no opacity/transform flicker when crossing the breakpoint */
  .mega-panel {
    transition: none !important;
  }

  /* Show burger, hide CTA (shown inside mobile nav instead) */
  .nav-burger {
    display: flex;
    position: relative;
    z-index: 160; /* above the nav overlay (z-index: 150) */
  }

  a.nav-cta-link {
    display: none;
  }

  /* Nav becomes a full-width slide-down drawer */
  nav.primary-navigation {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: #00354c;
    z-index: 150;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    overflow-y: auto;
    padding: 100px 24px 40px;
    /* Hidden state */
    opacity: 0;
    pointer-events: none;
    transform: translateY(-12px);
    transition: opacity 0.3s ease, transform 0.3s ease;
  }

  nav.primary-navigation.is-open {
    opacity: 1;
    pointer-events: all;
    transform: translateY(0);
  }

  ul.nav-menu {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    width: 100%;
  }

  /* Top-level buttons in mobile */
  .nav-top-link {
    width: 100%;
    justify-content: space-between;
    padding: 16px 0;
    font-size: 24px;
    border-bottom: 1px solid rgba(178, 227, 228, 0.2);
  }

  /* Mega panel becomes inline accordion in mobile.
     transition:none kills the desktop opacity/transform fade so
     there's no flicker when resizing across the breakpoint.    */
  .mega-panel {
    position: static;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
    width: 100%;
    max-width: 100%;
    background: transparent;
    border-radius: 0;
    padding: 0;
    box-shadow: none;
    flex-direction: column;
    gap: 0;
    /* Collapsed state */
    max-height: 0;
    overflow: hidden;
    /* No desktop fade — only accordion transitions */
    transition: max-height 0.3s ease, padding 0.3s ease;
  }

  /* Override aria-hidden for mobile accordion */
  .mega-panel.is-mobile-open {
    max-height: 800px;
    padding-bottom: 16px;
    transition: max-height 0.35s ease, padding 0.3s ease;
  }

  .mega-links {
    --mega-cols: 1;
    grid-template-columns: 1fr !important;
    width: 100%;
    gap: 0;
  }

  .mega-item,
  .mega-item:hover {
    width: 100%;
    padding: 12px 0;
    border-bottom: 1px solid rgba(178, 227, 228, 0.15);
  }

  .mega-item__title {
    color: #ffffff;
    font-size: 16px;
  }

  .mega-item:hover .mega-item__title {
    color: #ffffff;
  }

  .mega-item__icon {
    display: none;
  }

  .mega-item__desc {
    color: rgba(255, 255, 255, 0.65);
  }

  /* Callout hidden on mobile to keep it clean */
  .mega-callout {
    display: none;
  }

  /* Mobile CTA at bottom of nav */
  .nav-mobile-cta {
    display: flex !important;
    margin-top: 32px;
  }

}.service-carousel,
.service-carousel__inner {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.service-carousel__viewport {
  position: relative;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.service-carousel__viewport::-webkit-scrollbar { display: none; }

.service-carousel__track {
  display: flex;
  flex-wrap: nowrap;          /* belt: stop slides ever wrapping */
  gap: 1.5rem;
  list-style: none;
  padding: 0;
  margin: 0;
}

.service-carousel__slide {
  flex: 0 0 auto;
  scroll-snap-align: start;
  min-width: 0;               /* braces: lets inner content respect the slide width */
  width: calc((100% - 3rem) / 3); /* 3 visible desktop, matches the 1.5rem gap × 2 */
}
@media (max-width: 768px) {
  .service-carousel__slide { width: 85%; }
}

/* Card */
.service-card {
  display: block;
  text-decoration: none;
  color: inherit;
  background: #fff;
  border-radius: 1rem;
  overflow: hidden;
  height: 100%;
  transition: transform 200ms ease, box-shadow 200ms ease;
}
.service-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(0,0,0,0.08);
}

.service-card__media {
  aspect-ratio: 16 / 10;
  overflow: hidden;
}
.service-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.service-card__body {
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.service-card__title { margin: 0; }

/* Pagination */
.service-carousel__pagination {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 1.5rem;
}
.service-carousel__dot {
  width: 8px;
  height: 8px;
  border: 0;
  padding: 0;
  border-radius: 999px;
  background: currentColor;
  opacity: 0.25;
  cursor: pointer;
  transition: width 280ms ease, opacity 280ms ease;
}
.service-carousel__dot[aria-current="true"] {
  width: 28px;
  opacity: 1;
}/* ==========================================================================
   US21 Partner Logos — stylesheet
   Paste into Appearance → Customize → Additional CSS, or your child theme's
   style.css. Pairs with the "US21 Partner Logos (fields + markup)" PHP snippet.

   Clone visibility is scoped INSIDE media queries (and the desktop-hide is
   !important) so a cache/optimiser plugin that strips a plain base rule can't
   leak the duplicated logos onto desktop.

   SIZING MODEL — optical area, not equal height.
   The PHP snippet measures each uploaded file and writes a per-logo
   multiplier onto its <li> as  style="--pl-scale:1.42".  This stylesheet owns
   the base height and every breakpoint; PHP only supplies the multiplier.
   Result: a square mark renders taller than a wide wordmark, so both read at
   the same visual weight. --pl-scale defaults to 1 if PHP couldn't measure
   the file, so nothing breaks if the snippet is disabled.
   ========================================================================== */

.partner-logos {
	--pl-gap: 2.5rem;          /* space between logos */
	--pl-logo-height: 56px;    /* BASE height — a ~3:1 wordmark renders at this */
	--pl-logo-cap: 96px;       /* hard ceiling — nothing ever exceeds this */
	--pl-slot-min: 140px;      /* smallest breathing room a single logo gets */
	--pl-slot-max: 200px;      /* only used by the fixed-slot alternative below */
	--pl-per-view: 5;          /* only used by the fixed-slot alternative below */
	--pl-marquee-speed: 30s;   /* lower = faster mobile scroll */
	position: relative;
	width: 100%;
}

.partner-logos__viewport { overflow: hidden; }

.partner-logos__track {
	display: flex;
	align-items: center;
	gap: var(--pl-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}

.partner-logos__item {
	--pl-scale: 1;             /* fallback — PHP overrides this inline per logo */
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;

	/* OPTIONAL — freeze the strip height so it's identical on every page,
	   regardless of which logo shapes happen to land on it. Without this the
	   strip is as tall as its tallest logo, so a page of pure wordmarks sits
	   shorter than a page with a square mark on it. Uncomment if you want the
	   band to be pixel-identical site-wide; costs some whitespace.
	min-height: var(--pl-logo-cap); */
}

/* Duplicated marquee items — hidden by default. */
.partner-logos__item--clone { display: none; }

.partner-logos__img {
	display: block;
	width: auto;
	height: auto;

	/* THE FIX. Base height × this logo's optical multiplier, then clamped so a
	   near-square mark can never run away with the layout. */
	max-height: min(
		calc(var(--pl-logo-height) * var(--pl-scale)),
		var(--pl-logo-cap)
	);

	max-width: 100%;
	object-fit: contain;

	/* Optional greyscale-until-hover — uncomment to enable:
	filter: grayscale(1); opacity: .75;
	transition: filter .25s ease, opacity .25s ease; */
}
/* .partner-logos__link:hover .partner-logos__img { filter: grayscale(0); opacity: 1; } */

.partner-logos__link { display: inline-flex; align-items: center; }

.partner-logos__nav { display: none; }

/* TEMPORARY DEBUG — outlines any logo the PHP couldn't measure (almost always
   an SVG with no width/height attributes). Those fall back to --pl-scale:1 and
   won't be optically normalised. Uncomment, load a few pages, fix the files,
   comment out again.
.partner-logos__item--unmeasured { outline: 2px dashed magenta; } */

/* --------------------------------------------------------------------------
   DESKTOP / TABLET (>= 768px)
   -------------------------------------------------------------------------- */
@media (min-width: 768px) {

	/* Hard guarantee: no duplicated logos on desktop. */
	.partner-logos__item--clone { display: none !important; }

	/* ≤5 logos — spread across the full width, flush to both edges.
	   NOTE: this has the same wide-gap problem on a wide strip — 3 logos with
	   space-between get pushed to the far corners. If your static pages look
	   sparse too, swap `space-between` for `center`: the logos then cluster in
	   the middle with --pl-gap between them, matching the carousel's rhythm.
	   (`space-evenly` is the halfway house — spread out, but equal outer gaps.) */
	.partner-logos--static .partner-logos__track {
		justify-content: space-between;
		flex-wrap: wrap;
		row-gap: var(--pl-gap);
	}

	/* In the static layout the items are content-width, so max-width:100% has
	   nothing firm to resolve against. Cap the width by aspect instead, or one
	   banner-shaped upload will eat the whole row. */
	.partner-logos--static .partner-logos__img {
		max-width: calc(var(--pl-logo-height) * 5.5);
	}

	/* >5 logos — carousel with scroll-snap + arrows. */
	.partner-logos--carousel .partner-logos__viewport {
		overflow-x: auto;
		/* proximity, not mandatory: slots are variable-width now, and mandatory
		   snapping on uneven widths can strand the last item out of reach. */
		scroll-snap-type: x proximity;
		scroll-behavior: smooth;
		scrollbar-width: none;
		-ms-overflow-style: none;
	}
	.partner-logos--carousel .partner-logos__viewport::-webkit-scrollbar { display: none; }

	/* Centre the set when it doesn't overflow; fall back to flush-left the
	   moment it does, so nothing gets clipped off the scrollable start edge.
	   The plain flex-start line is the fallback for browsers without `safe`. */
	.partner-logos--carousel .partner-logos__track {
		justify-content: flex-start;
		justify-content: safe center;
	}

	/* Slots hug their logo instead of each taking 1/5th of the strip.
	   The old rule gave every logo an identical ~350px slot on a wide screen,
	   so a 120px square mark sat marooned in 230px of dead space while a wide
	   wordmark nearly filled its own. Now --pl-gap is the only thing setting
	   the distance between logos, which is what makes the rhythm look even. */
	.partner-logos--carousel .partner-logos__item {
		flex: 0 0 auto;
		min-width: var(--pl-slot-min);
		scroll-snap-align: start;
	}

	/* ALTERNATIVE — if you specifically want "exactly N visible, snapping
	   neatly", swap the two rules above for this one. It keeps the fixed-slot
	   model but caps how wide a slot can get, which bounds the dead space
	   instead of eliminating it. Tune with --pl-slot-max.
	.partner-logos--carousel .partner-logos__item {
		flex: 0 0 min(
			calc((100% - (var(--pl-per-view) - 1) * var(--pl-gap)) / var(--pl-per-view)),
			var(--pl-slot-max)
		);
		scroll-snap-align: start;
	} */

	.partner-logos--carousel.is-scrollable .partner-logos__nav {
		display: flex;
		align-items: center;
		justify-content: center;
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
		z-index: 2;
		width: 40px;
		height: 40px;
		padding: 0;
		font-size: 24px;
		line-height: 1;
		color: #1a1a1a;
		background: #fff;
		border: 1px solid rgba(0, 0, 0, .12);
		border-radius: 50%;
		box-shadow: 0 2px 8px rgba(0, 0, 0, .12);
		cursor: pointer;
		transition: opacity .2s ease, background .2s ease;
	}
	.partner-logos__nav--prev { left: -8px; }
	.partner-logos__nav--next { right: -8px; }
	.partner-logos__nav:hover { background: #f4f4f4; }
	.partner-logos__nav:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
	.partner-logos__nav[disabled] { opacity: 0; pointer-events: none; }
}

/* --------------------------------------------------------------------------
   MOBILE (<= 767px) — continuous marquee
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {

	/* Smaller base AND a tighter ceiling — 1.55× of 44px is ~68px, which is
	   already assertive on a phone. Both variables cascade into the max-height
	   calc above automatically. */
	.partner-logos {
		--pl-gap: 2rem;
		--pl-logo-height: 44px;
		--pl-logo-cap: 72px;
	}

	.partner-logos__nav { display: none !important; }

	.partner-logos__viewport {
		overflow: hidden;
		-webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
		mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
	}

	/* Show the duplicated set only here. */
	.partner-logos__item--clone { display: flex; }

	.partner-logos__track {
		width: max-content;
		flex-wrap: nowrap;
		justify-content: flex-start;
		padding-right: var(--pl-gap);
		will-change: transform;
		animation: partner-logos-marquee var(--pl-marquee-speed) linear infinite;
	}

	.partner-logos--carousel .partner-logos__item { flex: 0 0 auto; }

	.partner-logos__track:hover,
	.partner-logos__track:active { animation-play-state: paused; }
}

@keyframes partner-logos-marquee {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}

/* --------------------------------------------------------------------------
   Reduced motion — no marquee, no duplicated logos.
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	.partner-logos__track { animation: none !important; }
	.partner-logos__item--clone { display: none !important; }

	@media (max-width: 767px) {
		.partner-logos__viewport { overflow-x: auto; scrollbar-width: none; }
		.partner-logos__viewport::-webkit-scrollbar { display: none; }
	}
}
/* ==========================================================================
   US21 Homepage partner logo grid — LAYOUT ONLY
   Pairs with [partner_logos_grid].

   Which class is which:
     .logos-grid   the container around all eight  <- this file styles this
     .logos        ONE per logo, the square tile   <- YOUR css already styles this
     .logos__img   the logo image itself           <- your rollover targets this

   This file only sets "how many across, and what happens below 992px".
   Your tile background, radius, padding, min-width and rollover stay yours.

   Note on specificity: every rule here is scoped `.logos-grid > .logos`, which
   is stronger than a bare `.logos`. Anything set here WILL beat your stylesheet,
   so this file deliberately sets as little as possible — and what it does set is
   confined to the breakpoint that needs it.
   ========================================================================== */

.logos-grid {
	--logos-cols: 8;        /* across, at >= 992px */
	--logos-gap: 20px;
	--logos-min: 100px;     /* desktop track floor; your .logos min-width still applies */

	display: flex;          /* mobile-first: the scrolling row is the base case */
	flex-wrap: nowrap;
	gap: var(--logos-gap);
	align-items: stretch;
	overflow-x: auto;
	scroll-snap-type: x proximity;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	-ms-overflow-style: none;
}
.logos-grid::-webkit-scrollbar { display: none; }

/* THE FIX: tiles keep whatever width your own CSS gives them and simply
   overflow, exactly like your original. The previous rule divided the viewport
   by 4 and forced tiles into the result, which compressed them and dumped the
   remainder into the gaps. Telltale: your 4th tile is clipped by the screen
   edge, mine wasn't — that clipping is the correct behaviour. */
.logos-grid > .logos {
	flex: 0 0 auto;
	scroll-snap-align: start;
}

/* ALTERNATIVE — if you'd rather pin the tile width here instead of in your
   stylesheet, set a basis. Any fixed value keeps them uniform and still
   overflows; it just stops depending on your .logos width.
.logos-grid > .logos { flex: 0 0 160px; } */

/* When a Link URL is set the tile gets an <a> between the square and the image.
   This makes that anchor fill the tile so the whole square stays clickable and
   the logo stays centred.

   GOTCHA: if your rollover selector is `.logos > img`, the anchor breaks it —
   the img is no longer a direct child. Change it to `.logos img` and it works
   whether or not a given row has a link. */
.logos-grid > .logos > .logos__link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}

/* TEMPORARY DEBUG — flags any logo the snippet couldn't measure, nearly always
   an SVG with no width/height attributes.
.logos--unmeasured { outline: 2px dashed magenta; } */

/* --------------------------------------------------------------------------
   >= 992px — all eight across, no scrolling
   -------------------------------------------------------------------------- */
@media (min-width: 992px) {

	.logos-grid {
		display: grid;
		grid-template-columns: repeat(var(--logos-cols), minmax(var(--logos-min), 1fr));
		overflow-x: visible;
		scroll-snap-type: none;
	}

	/* Grid children won't shrink below their content width without this, which
	   is how one wide logo blows out an 8-column row. Scoped to desktop on
	   purpose: at mobile widths it would override your .logos min-width. */
	.logos-grid > .logos {
		min-width: 0;
		flex: initial;
	}
}