.elementor-99 .elementor-element.elementor-element-fb05d9c{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:52px 52px;--row-gap:52px;--column-gap:52px;--margin-top:-60px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:10.75px;--padding-bottom:10.75px;--padding-left:50px;--padding-right:38px;--z-index:99;}.elementor-99 .elementor-element.elementor-element-fb05d9c:not(.elementor-motion-effects-element-type-background), .elementor-99 .elementor-element.elementor-element-fb05d9c > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#000000;}.elementor-widget-image .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-99 .elementor-element.elementor-element-097a3e2 img{width:100px;}.elementor-widget-mega-menu > .e-n-menu > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title, .elementor-widget-mega-menu > .e-n-menu > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title > .e-n-menu-title-container, .elementor-widget-mega-menu > .e-n-menu > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title > .e-n-menu-title-container > span{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-widget-mega-menu{--n-menu-divider-color:var( --e-global-color-text );}.elementor-99 .elementor-element.elementor-element-73982c6{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;}.elementor-99 .elementor-element.elementor-element-73982c6:not(.elementor-motion-effects-element-type-background), .elementor-99 .elementor-element.elementor-element-73982c6 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#000000;}.elementor-99 .elementor-element.elementor-element-7b81447{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:flex-start;--gap:24px 48px;--row-gap:24px;--column-gap:48px;--flex-wrap:nowrap;--padding-top:84px;--padding-bottom:36px;--padding-left:24px;--padding-right:24px;}.elementor-99 .elementor-element.elementor-element-4bad71c3{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:12px 12px;--row-gap:12px;--column-gap:12px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:48px;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-99 .elementor-element.elementor-element-6dd8e948 .elementor-heading-title{font-family:"Neue Haas Grotesk Display Pro", Sans-serif;font-size:27px;font-weight:400;line-height:30px;color:#FFFFFF;}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-99 .elementor-element.elementor-element-87527afd{font-family:"Sohne", Sans-serif;font-size:14px;font-weight:300;line-height:24px;color:#ABB5C1;}.elementor-widget-icon-list .elementor-icon-list-item:not(:last-child):after{border-color:var( --e-global-color-text );}.elementor-widget-icon-list .elementor-icon-list-icon i{color:var( --e-global-color-primary );}.elementor-widget-icon-list .elementor-icon-list-icon svg{fill:var( --e-global-color-primary );}.elementor-widget-icon-list .elementor-icon-list-item > .elementor-icon-list-text, .elementor-widget-icon-list .elementor-icon-list-item > a{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-icon-list .elementor-icon-list-text{color:var( --e-global-color-secondary );}.elementor-99 .elementor-element.elementor-element-e56815c7{width:var( --container-widget-width, 330px );max-width:330px;--container-widget-width:330px;--container-widget-flex-grow:0;--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child){padding-block-end:calc(17px/2);}.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:first-child){margin-block-start:calc(17px/2);}.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item{margin-inline:calc(17px/2);}.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-items.elementor-inline-items{margin-inline:calc(-17px/2);}.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after{inset-inline-end:calc(-17px/2);}.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item > .elementor-icon-list-text, .elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item > a{font-family:"Neue Haas Grotesk Display Pro", Sans-serif;font-size:17px;font-weight:400;line-height:28px;}.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-text{color:#ABB5C1;transition:color 0.3s;}.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item:hover .elementor-icon-list-text{color:#FFFFFF;}.elementor-99 .elementor-element.elementor-element-adeb6f0{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;}.elementor-99 .elementor-element.elementor-element-adeb6f0:not(.elementor-motion-effects-element-type-background), .elementor-99 .elementor-element.elementor-element-adeb6f0 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#000000;}.elementor-99 .elementor-element.elementor-element-55efa5b{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:flex-start;--gap:24px 48px;--row-gap:24px;--column-gap:48px;--flex-wrap:nowrap;--padding-top:84px;--padding-bottom:36px;--padding-left:24px;--padding-right:24px;}.elementor-99 .elementor-element.elementor-element-8ad6f4ae{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:12px 12px;--row-gap:12px;--column-gap:12px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:48px;}.elementor-99 .elementor-element.elementor-element-163adeec .elementor-heading-title{font-family:"Neue Haas Grotesk Display Pro", Sans-serif;font-size:27px;font-weight:400;line-height:30px;color:#FFFFFF;}.elementor-99 .elementor-element.elementor-element-e3307cff{font-family:"Sohne", Sans-serif;font-size:14px;font-weight:300;line-height:24px;color:#ABB5C1;}.elementor-99 .elementor-element.elementor-element-d59decf9{width:var( --container-widget-width, 330px );max-width:330px;--container-widget-width:330px;--container-widget-flex-grow:0;--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child){padding-block-end:calc(17px/2);}.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:first-child){margin-block-start:calc(17px/2);}.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item{margin-inline:calc(17px/2);}.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-items.elementor-inline-items{margin-inline:calc(-17px/2);}.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after{inset-inline-end:calc(-17px/2);}.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item > .elementor-icon-list-text, .elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item > a{font-family:"Neue Haas Grotesk Display Pro", Sans-serif;font-size:17px;font-weight:400;line-height:28px;}.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-text{color:#ABB5C1;transition:color 0.3s;}.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item:hover .elementor-icon-list-text{color:#FFFFFF;}.elementor-99 .elementor-element.elementor-element-9cc1481{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;}.elementor-99 .elementor-element.elementor-element-9cc1481:not(.elementor-motion-effects-element-type-background), .elementor-99 .elementor-element.elementor-element-9cc1481 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#000000;}.elementor-99 .elementor-element.elementor-element-b5f0972{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:flex-start;--gap:24px 48px;--row-gap:24px;--column-gap:48px;--flex-wrap:nowrap;--padding-top:84px;--padding-bottom:36px;--padding-left:24px;--padding-right:24px;}.elementor-99 .elementor-element.elementor-element-b34bd1ea{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:12px 12px;--row-gap:12px;--column-gap:12px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:48px;}.elementor-99 .elementor-element.elementor-element-898b7606 .elementor-heading-title{font-family:"Neue Haas Grotesk Display Pro", Sans-serif;font-size:27px;font-weight:400;line-height:30px;color:#FFFFFF;}.elementor-99 .elementor-element.elementor-element-52c5f7b5{font-family:"Sohne", Sans-serif;font-size:14px;font-weight:300;line-height:24px;color:#ABB5C1;}.elementor-99 .elementor-element.elementor-element-29a24740{width:var( --container-widget-width, 330px );max-width:330px;--container-widget-width:330px;--container-widget-flex-grow:0;--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child){padding-block-end:calc(17px/2);}.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:first-child){margin-block-start:calc(17px/2);}.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item{margin-inline:calc(17px/2);}.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-items.elementor-inline-items{margin-inline:calc(-17px/2);}.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after{inset-inline-end:calc(-17px/2);}.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item > .elementor-icon-list-text, .elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item > a{font-family:"Neue Haas Grotesk Display Pro", Sans-serif;font-size:17px;font-weight:400;line-height:28px;}.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-text{color:#ABB5C1;transition:color 0.3s;}.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item:hover .elementor-icon-list-text{color:#FFFFFF;}.elementor-99 .elementor-element.elementor-element-cd86fab{--display:flex;}.elementor-99 .elementor-element.elementor-element-8030b10{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;}.elementor-99 .elementor-element.elementor-element-8030b10:not(.elementor-motion-effects-element-type-background), .elementor-99 .elementor-element.elementor-element-8030b10 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#000000;}.elementor-99 .elementor-element.elementor-element-5b344b3{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:flex-start;--gap:24px 48px;--row-gap:24px;--column-gap:48px;--flex-wrap:nowrap;--padding-top:84px;--padding-bottom:36px;--padding-left:24px;--padding-right:24px;}.elementor-99 .elementor-element.elementor-element-198ec4d5{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:12px 12px;--row-gap:12px;--column-gap:12px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:48px;}.elementor-99 .elementor-element.elementor-element-f2bf6a39 .elementor-heading-title{font-family:"Neue Haas Grotesk Display Pro", Sans-serif;font-size:27px;font-weight:400;line-height:30px;color:#FFFFFF;}.elementor-99 .elementor-element.elementor-element-f2b20602{font-family:"Sohne", Sans-serif;font-size:14px;font-weight:300;line-height:24px;color:#ABB5C1;}.elementor-99 .elementor-element.elementor-element-a3f9c17{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:200px 200px;--row-gap:200px;--column-gap:200px;}.elementor-99 .elementor-element.elementor-element-d85684dd{width:var( --container-widget-width, 330px );max-width:330px;--container-widget-width:330px;--container-widget-flex-grow:0;--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child){padding-block-end:calc(17px/2);}.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:first-child){margin-block-start:calc(17px/2);}.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item{margin-inline:calc(17px/2);}.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-items.elementor-inline-items{margin-inline:calc(-17px/2);}.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after{inset-inline-end:calc(-17px/2);}.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item > .elementor-icon-list-text, .elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item > a{font-family:"Neue Haas Grotesk Display Pro", Sans-serif;font-size:17px;font-weight:400;line-height:28px;}.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-text{color:#ABB5C1;transition:color 0.3s;}.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item:hover .elementor-icon-list-text{color:#FFFFFF;}.elementor-widget-loop-grid .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-widget-loop-grid .elementor-pagination{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-widget-loop-grid .e-load-more-message{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-99 .elementor-element.elementor-element-5a880c1f{--grid-columns:1;width:var( --container-widget-width, 330px );max-width:330px;--container-widget-width:330px;--container-widget-flex-grow:0;}.elementor-99 .elementor-element.elementor-element-b936972{--display:flex;}.elementor-99 .elementor-element.elementor-element-ea10a90{--display:flex;}.elementor-99 .elementor-element.elementor-element-45798e3{--n-menu-dropdown-content-max-width:initial;--n-menu-heading-wrap:wrap;--n-menu-heading-overflow-x:initial;--n-menu-title-distance-from-content:0px;width:auto;max-width:auto;margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 18px;--n-menu-toggle-icon-wrapper-animation-duration:500ms;--n-menu-title-space-between:0px;--n-menu-title-color-normal:var( --e-global-color-e2a6292 );--n-menu-title-transition:300ms;--n-menu-icon-size:16px;--n-menu-toggle-icon-size:20px;--n-menu-toggle-icon-hover-duration:500ms;--n-menu-toggle-icon-distance-from-dropdown:0px;}.elementor-99 .elementor-element.elementor-element-45798e3.elementor-element{--flex-grow:0;--flex-shrink:1;}.elementor-99 .elementor-element.elementor-element-45798e3 > .e-n-menu > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title, .elementor-99 .elementor-element.elementor-element-45798e3 > .e-n-menu > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title > .e-n-menu-title-container, .elementor-99 .elementor-element.elementor-element-45798e3 > .e-n-menu > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title > .e-n-menu-title-container > span{font-family:"Neue Haas Grotesk Display Pro", Sans-serif;font-weight:400;}.elementor-99 .elementor-element.elementor-element-45798e3 {--n-menu-title-color-hover:#4ACEFF;--n-menu-title-color-active:#4ACEFF;}.elementor-widget-button .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-99 .elementor-element.elementor-element-1e8608b .elementor-button{background-color:rgba(0,0,0,0);font-family:"Neue Haas Grotesk Display Pro", Sans-serif;font-size:16px;font-weight:400;fill:#FFFFFF;color:#FFFFFF;padding:0px 0px 0px 0px;}.elementor-99 .elementor-element.elementor-element-1e8608b{width:auto;max-width:auto;margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 4px) 0px;padding:0px 0px 0px 30px;}.elementor-99 .elementor-element.elementor-element-1e8608b.elementor-element{--align-self:center;--flex-grow:0;--flex-shrink:0;}.elementor-99 .elementor-element.elementor-element-1e8608b .elementor-button-content-wrapper{flex-direction:row;}.elementor-99 .elementor-element.elementor-element-1e8608b .elementor-button .elementor-button-content-wrapper{gap:8px;}.elementor-99 .elementor-element.elementor-element-b98f066 .elementor-button{background-color:#00000000;font-family:"Neue Haas Grotesk Display Pro", Sans-serif;font-size:15px;font-weight:400;fill:var( --e-global-color-e2a6292 );color:var( --e-global-color-e2a6292 );border-style:solid;border-width:1.5px 1.5px 1.5px 1.5px;border-color:var( --e-global-color-accent );border-radius:0px 0px 0px 0px;padding:9px 20.5px 9px 20.5px;}.elementor-99 .elementor-element.elementor-element-b98f066 .elementor-button:hover, .elementor-99 .elementor-element.elementor-element-b98f066 .elementor-button:focus{background-color:#00AEEF;color:var( --e-global-color-e2a6292 );border-color:#00AEEF;}.elementor-99 .elementor-element.elementor-element-b98f066 .elementor-button:hover svg, .elementor-99 .elementor-element.elementor-element-b98f066 .elementor-button:focus svg{fill:var( --e-global-color-e2a6292 );}.elementor-widget-icon-box.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-primary );}.elementor-widget-icon-box.elementor-view-framed .elementor-icon, .elementor-widget-icon-box.elementor-view-default .elementor-icon{fill:var( --e-global-color-primary );color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-widget-icon-box .elementor-icon-box-title, .elementor-widget-icon-box .elementor-icon-box-title a{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-icon-box .elementor-icon-box-title{color:var( --e-global-color-primary );}.elementor-widget-icon-box:has(:hover) .elementor-icon-box-title,
					 .elementor-widget-icon-box:has(:focus) .elementor-icon-box-title{color:var( --e-global-color-primary );}.elementor-widget-icon-box .elementor-icon-box-description{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-99 .elementor-element.elementor-element-aa17e86{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 30px;border-style:solid;border-width:0px 0px 0px 1px;border-color:#FFFFFF26;}.elementor-99 .elementor-element.elementor-element-aa17e86 .elementor-icon-box-wrapper{align-items:center;gap:15px;}.elementor-99 .elementor-element.elementor-element-aa17e86 .elementor-icon-box-title{margin-block-end:8px;color:var( --e-global-color-e2a6292 );}.elementor-99 .elementor-element.elementor-element-aa17e86.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-e2a6292 );}.elementor-99 .elementor-element.elementor-element-aa17e86.elementor-view-framed .elementor-icon, .elementor-99 .elementor-element.elementor-element-aa17e86.elementor-view-default .elementor-icon{fill:var( --e-global-color-e2a6292 );color:var( --e-global-color-e2a6292 );border-color:var( --e-global-color-e2a6292 );}.elementor-99 .elementor-element.elementor-element-aa17e86 .elementor-icon{font-size:30px;}.elementor-99 .elementor-element.elementor-element-aa17e86 .elementor-icon-box-title, .elementor-99 .elementor-element.elementor-element-aa17e86 .elementor-icon-box-title a{font-family:"Neue Haas Grotesk Display Pro", Sans-serif;font-size:15px;font-weight:400;}.elementor-99 .elementor-element.elementor-element-aa17e86:has(:hover) .elementor-icon-box-title,
					 .elementor-99 .elementor-element.elementor-element-aa17e86:has(:focus) .elementor-icon-box-title{color:var( --e-global-color-e2a6292 );}.elementor-99 .elementor-element.elementor-element-f601093{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 30px;border-style:solid;border-width:0px 0px 0px 1px;border-color:#FFFFFF26;}.elementor-99 .elementor-element.elementor-element-f601093 .elementor-icon-box-wrapper{align-items:center;gap:15px;}.elementor-99 .elementor-element.elementor-element-f601093 .elementor-icon-box-title{margin-block-end:8px;color:var( --e-global-color-e2a6292 );}.elementor-99 .elementor-element.elementor-element-f601093.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-e2a6292 );}.elementor-99 .elementor-element.elementor-element-f601093.elementor-view-framed .elementor-icon, .elementor-99 .elementor-element.elementor-element-f601093.elementor-view-default .elementor-icon{fill:var( --e-global-color-e2a6292 );color:var( --e-global-color-e2a6292 );border-color:var( --e-global-color-e2a6292 );}.elementor-99 .elementor-element.elementor-element-f601093 .elementor-icon{font-size:20px;}.elementor-99 .elementor-element.elementor-element-f601093 .elementor-icon-box-title, .elementor-99 .elementor-element.elementor-element-f601093 .elementor-icon-box-title a{font-family:"Neue Haas Grotesk Display Pro", Sans-serif;font-size:14px;font-weight:400;}.elementor-99 .elementor-element.elementor-element-f601093:has(:hover) .elementor-icon-box-title,
					 .elementor-99 .elementor-element.elementor-element-f601093:has(:focus) .elementor-icon-box-title{color:var( --e-global-color-e2a6292 );}.elementor-99 .elementor-element.elementor-element-ce77484{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--padding-top:43px;--padding-bottom:80px;--padding-left:40px;--padding-right:40px;}.elementor-99 .elementor-element.elementor-element-ce77484:not(.elementor-motion-effects-element-type-background), .elementor-99 .elementor-element.elementor-element-ce77484 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#000000;}.elementor-99 .elementor-element.elementor-element-a15fb61{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-99 .elementor-element.elementor-element-8510941{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:flex-end;--margin-top:0px;--margin-bottom:10px;--margin-left:0px;--margin-right:0px;}.elementor-99 .elementor-element.elementor-element-126d090 .elementor-button{background-color:rgba(0,0,0,0);font-family:"Neue Haas Grotesk Display Pro", Sans-serif;font-size:15px;font-weight:500;fill:#FFFFFF;color:#FFFFFF;padding:6px 4px 6px 4px;}.elementor-99 .elementor-element.elementor-element-8b8dee5{--display:grid;--e-con-grid-template-columns:repeat(4, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--grid-auto-flow:row;}.elementor-99 .elementor-element.elementor-element-399d618{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-99 .elementor-element.elementor-element-f9b7284{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:flex-start;--align-items:center;--gap:20px 20px;--row-gap:20px;--column-gap:20px;border-style:solid;--border-style:solid;border-width:0px 0px 1px 0px;--border-top-width:0px;--border-right-width:0px;--border-bottom-width:1px;--border-left-width:0px;border-color:#171819;--border-color:#171819;--margin-top:0px;--margin-bottom:11px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:12px;--padding-left:0px;--padding-right:0px;}.elementor-99 .elementor-element.elementor-element-125c93f .elementor-heading-title{font-family:"Neue Haas Grotesk Display Pro", Sans-serif;font-size:25px;font-weight:400;line-height:1.12em;color:#FFFFFF;}.elementor-99 .elementor-element.elementor-element-2978e88 .elementor-heading-title{font-family:"Neue Haas Grotesk Display Pro", Sans-serif;font-size:22px;font-weight:400;color:#FFFFFF;}.elementor-99 .elementor-element.elementor-element-e72f000 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child){padding-block-end:calc(17px/2);}.elementor-99 .elementor-element.elementor-element-e72f000 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:first-child){margin-block-start:calc(17px/2);}.elementor-99 .elementor-element.elementor-element-e72f000 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item{margin-inline:calc(17px/2);}.elementor-99 .elementor-element.elementor-element-e72f000 .elementor-icon-list-items.elementor-inline-items{margin-inline:calc(-17px/2);}.elementor-99 .elementor-element.elementor-element-e72f000 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after{inset-inline-end:calc(-17px/2);}.elementor-99 .elementor-element.elementor-element-e72f000 .elementor-icon-list-item:not(:last-child):after{content:"";border-color:#171819;}.elementor-99 .elementor-element.elementor-element-e72f000 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child):after{border-block-start-style:solid;border-block-start-width:1px;}.elementor-99 .elementor-element.elementor-element-e72f000 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:not(:last-child):after{border-inline-start-style:solid;}.elementor-99 .elementor-element.elementor-element-e72f000 .elementor-inline-items .elementor-icon-list-item:not(:last-child):after{border-inline-start-width:1px;}.elementor-99 .elementor-element.elementor-element-e72f000 .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-99 .elementor-element.elementor-element-e72f000 .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-99 .elementor-element.elementor-element-e72f000{--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-99 .elementor-element.elementor-element-e72f000 .elementor-icon-list-item > .elementor-icon-list-text, .elementor-99 .elementor-element.elementor-element-e72f000 .elementor-icon-list-item > a{font-family:"Neue Haas Grotesk Display Pro", Sans-serif;font-size:17px;font-weight:400;line-height:1.65em;}.elementor-99 .elementor-element.elementor-element-e72f000 .elementor-icon-list-text{color:#ABB5C1;transition:color 0.3s;}.elementor-99 .elementor-element.elementor-element-e72f000 .elementor-icon-list-item:hover .elementor-icon-list-text{color:#FFFFFF;}.elementor-99 .elementor-element.elementor-element-99cb7fb{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-99 .elementor-element.elementor-element-f8e86ca{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:center;border-style:solid;--border-style:solid;border-width:0px 0px 1px 0px;--border-top-width:0px;--border-right-width:0px;--border-bottom-width:1px;--border-left-width:0px;border-color:#171819;--border-color:#171819;--margin-top:0px;--margin-bottom:11px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:12px;--padding-left:0px;--padding-right:0px;}.elementor-99 .elementor-element.elementor-element-e3dfea2 .elementor-heading-title{font-family:"Neue Haas Grotesk Display Pro", Sans-serif;font-size:25px;font-weight:400;line-height:1.12em;color:#FFFFFF;}.elementor-99 .elementor-element.elementor-element-81159ac .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child){padding-block-end:calc(17px/2);}.elementor-99 .elementor-element.elementor-element-81159ac .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:first-child){margin-block-start:calc(17px/2);}.elementor-99 .elementor-element.elementor-element-81159ac .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item{margin-inline:calc(17px/2);}.elementor-99 .elementor-element.elementor-element-81159ac .elementor-icon-list-items.elementor-inline-items{margin-inline:calc(-17px/2);}.elementor-99 .elementor-element.elementor-element-81159ac .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after{inset-inline-end:calc(-17px/2);}.elementor-99 .elementor-element.elementor-element-81159ac .elementor-icon-list-item:not(:last-child):after{content:"";border-color:#171819;}.elementor-99 .elementor-element.elementor-element-81159ac .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child):after{border-block-start-style:solid;border-block-start-width:1px;}.elementor-99 .elementor-element.elementor-element-81159ac .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:not(:last-child):after{border-inline-start-style:solid;}.elementor-99 .elementor-element.elementor-element-81159ac .elementor-inline-items .elementor-icon-list-item:not(:last-child):after{border-inline-start-width:1px;}.elementor-99 .elementor-element.elementor-element-81159ac .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-99 .elementor-element.elementor-element-81159ac .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-99 .elementor-element.elementor-element-81159ac{--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-99 .elementor-element.elementor-element-81159ac .elementor-icon-list-item > .elementor-icon-list-text, .elementor-99 .elementor-element.elementor-element-81159ac .elementor-icon-list-item > a{font-family:"Neue Haas Grotesk Display Pro", Sans-serif;font-size:17px;font-weight:400;line-height:1.65em;}.elementor-99 .elementor-element.elementor-element-81159ac .elementor-icon-list-text{color:#ABB5C1;transition:color 0.3s;}.elementor-99 .elementor-element.elementor-element-81159ac .elementor-icon-list-item:hover .elementor-icon-list-text{color:#FFFFFF;}.elementor-99 .elementor-element.elementor-element-c635f8d{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-99 .elementor-element.elementor-element-a6d67bb{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:center;border-style:solid;--border-style:solid;border-width:0px 0px 1px 0px;--border-top-width:0px;--border-right-width:0px;--border-bottom-width:1px;--border-left-width:0px;border-color:#171819;--border-color:#171819;--margin-top:0px;--margin-bottom:11px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:12px;--padding-left:0px;--padding-right:0px;}.elementor-99 .elementor-element.elementor-element-ac80f91 .elementor-heading-title{font-family:"Neue Haas Grotesk Display Pro", Sans-serif;font-size:25px;font-weight:400;line-height:1.12em;color:#FFFFFF;}.elementor-99 .elementor-element.elementor-element-e3fe5b8 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child){padding-block-end:calc(17px/2);}.elementor-99 .elementor-element.elementor-element-e3fe5b8 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:first-child){margin-block-start:calc(17px/2);}.elementor-99 .elementor-element.elementor-element-e3fe5b8 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item{margin-inline:calc(17px/2);}.elementor-99 .elementor-element.elementor-element-e3fe5b8 .elementor-icon-list-items.elementor-inline-items{margin-inline:calc(-17px/2);}.elementor-99 .elementor-element.elementor-element-e3fe5b8 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after{inset-inline-end:calc(-17px/2);}.elementor-99 .elementor-element.elementor-element-e3fe5b8 .elementor-icon-list-item:not(:last-child):after{content:"";border-color:#171819;}.elementor-99 .elementor-element.elementor-element-e3fe5b8 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child):after{border-block-start-style:solid;border-block-start-width:1px;}.elementor-99 .elementor-element.elementor-element-e3fe5b8 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:not(:last-child):after{border-inline-start-style:solid;}.elementor-99 .elementor-element.elementor-element-e3fe5b8 .elementor-inline-items .elementor-icon-list-item:not(:last-child):after{border-inline-start-width:1px;}.elementor-99 .elementor-element.elementor-element-e3fe5b8 .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-99 .elementor-element.elementor-element-e3fe5b8 .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-99 .elementor-element.elementor-element-e3fe5b8{--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-99 .elementor-element.elementor-element-e3fe5b8 .elementor-icon-list-item > .elementor-icon-list-text, .elementor-99 .elementor-element.elementor-element-e3fe5b8 .elementor-icon-list-item > a{font-family:"Neue Haas Grotesk Display Pro", Sans-serif;font-size:17px;font-weight:400;line-height:1.65em;}.elementor-99 .elementor-element.elementor-element-e3fe5b8 .elementor-icon-list-text{color:#ABB5C1;transition:color 0.3s;}.elementor-99 .elementor-element.elementor-element-e3fe5b8 .elementor-icon-list-item:hover .elementor-icon-list-text{color:#FFFFFF;}.elementor-99 .elementor-element.elementor-element-a327e07{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-99 .elementor-element.elementor-element-ec75ae3{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:center;border-style:solid;--border-style:solid;border-width:0px 0px 1px 0px;--border-top-width:0px;--border-right-width:0px;--border-bottom-width:1px;--border-left-width:0px;border-color:#171819;--border-color:#171819;--margin-top:0px;--margin-bottom:11px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:12px;--padding-left:0px;--padding-right:0px;}.elementor-99 .elementor-element.elementor-element-dd6d494 .elementor-heading-title{font-family:"Neue Haas Grotesk Display Pro", Sans-serif;font-size:25px;font-weight:400;line-height:1.12em;color:#FFFFFF;}.elementor-99 .elementor-element.elementor-element-b186dae .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child){padding-block-end:calc(17px/2);}.elementor-99 .elementor-element.elementor-element-b186dae .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:first-child){margin-block-start:calc(17px/2);}.elementor-99 .elementor-element.elementor-element-b186dae .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item{margin-inline:calc(17px/2);}.elementor-99 .elementor-element.elementor-element-b186dae .elementor-icon-list-items.elementor-inline-items{margin-inline:calc(-17px/2);}.elementor-99 .elementor-element.elementor-element-b186dae .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after{inset-inline-end:calc(-17px/2);}.elementor-99 .elementor-element.elementor-element-b186dae .elementor-icon-list-item:not(:last-child):after{content:"";border-color:#171819;}.elementor-99 .elementor-element.elementor-element-b186dae .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child):after{border-block-start-style:solid;border-block-start-width:1px;}.elementor-99 .elementor-element.elementor-element-b186dae .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:not(:last-child):after{border-inline-start-style:solid;}.elementor-99 .elementor-element.elementor-element-b186dae .elementor-inline-items .elementor-icon-list-item:not(:last-child):after{border-inline-start-width:1px;}.elementor-99 .elementor-element.elementor-element-b186dae .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-99 .elementor-element.elementor-element-b186dae .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-99 .elementor-element.elementor-element-b186dae{--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-99 .elementor-element.elementor-element-b186dae .elementor-icon-list-item > .elementor-icon-list-text, .elementor-99 .elementor-element.elementor-element-b186dae .elementor-icon-list-item > a{font-family:"Neue Haas Grotesk Display Pro", Sans-serif;font-size:17px;font-weight:400;line-height:1.65em;}.elementor-99 .elementor-element.elementor-element-b186dae .elementor-icon-list-text{color:#ABB5C1;transition:color 0.3s;}.elementor-99 .elementor-element.elementor-element-b186dae .elementor-icon-list-item:hover .elementor-icon-list-text{color:#FFFFFF;}.elementor-99 .elementor-element.elementor-element-0b96ed3{--display:grid;--e-con-grid-template-columns:repeat(3, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--grid-auto-flow:row;--margin-top:56px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}.elementor-99 .elementor-element.elementor-element-2e747d2{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-99 .elementor-element.elementor-element-5873e0c{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-99 .elementor-element.elementor-element-94ba80b{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:center;border-style:solid;--border-style:solid;border-width:0px 0px 1px 0px;--border-top-width:0px;--border-right-width:0px;--border-bottom-width:1px;--border-left-width:0px;border-color:#171819;--border-color:#171819;--margin-top:0px;--margin-bottom:11px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:12px;--padding-left:0px;--padding-right:0px;}.elementor-99 .elementor-element.elementor-element-77535c5 .elementor-heading-title{font-family:"Neue Haas Grotesk Display Pro", Sans-serif;font-size:25px;font-weight:400;line-height:1.12em;color:#FFFFFF;}.elementor-99 .elementor-element.elementor-element-fcd8f06 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child){padding-block-end:calc(17px/2);}.elementor-99 .elementor-element.elementor-element-fcd8f06 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:first-child){margin-block-start:calc(17px/2);}.elementor-99 .elementor-element.elementor-element-fcd8f06 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item{margin-inline:calc(17px/2);}.elementor-99 .elementor-element.elementor-element-fcd8f06 .elementor-icon-list-items.elementor-inline-items{margin-inline:calc(-17px/2);}.elementor-99 .elementor-element.elementor-element-fcd8f06 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after{inset-inline-end:calc(-17px/2);}.elementor-99 .elementor-element.elementor-element-fcd8f06 .elementor-icon-list-item:not(:last-child):after{content:"";border-color:#171819;}.elementor-99 .elementor-element.elementor-element-fcd8f06 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child):after{border-block-start-style:solid;border-block-start-width:1px;}.elementor-99 .elementor-element.elementor-element-fcd8f06 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:not(:last-child):after{border-inline-start-style:solid;}.elementor-99 .elementor-element.elementor-element-fcd8f06 .elementor-inline-items .elementor-icon-list-item:not(:last-child):after{border-inline-start-width:1px;}.elementor-99 .elementor-element.elementor-element-fcd8f06 .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-99 .elementor-element.elementor-element-fcd8f06 .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-99 .elementor-element.elementor-element-fcd8f06{--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-99 .elementor-element.elementor-element-fcd8f06 .elementor-icon-list-item > .elementor-icon-list-text, .elementor-99 .elementor-element.elementor-element-fcd8f06 .elementor-icon-list-item > a{font-family:"Neue Haas Grotesk Display Pro", Sans-serif;font-size:17px;font-weight:400;line-height:1.65em;}.elementor-99 .elementor-element.elementor-element-fcd8f06 .elementor-icon-list-text{color:#ABB5C1;transition:color 0.3s;}.elementor-99 .elementor-element.elementor-element-fcd8f06 .elementor-icon-list-item:hover .elementor-icon-list-text{color:#FFFFFF;}.elementor-99 .elementor-element.elementor-element-ed6d3bf{margin:8px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-99 .elementor-element.elementor-element-ed6d3bf .elementor-heading-title{font-family:"Neue Haas Grotesk Display Pro", Sans-serif;font-size:17px;font-weight:400;line-height:1.65em;color:#ABB5C1;}.elementor-99 .elementor-element.elementor-element-1b56bcd{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:flex-start;--gap:17px 17px;--row-gap:17px;--column-gap:17px;border-style:solid;--border-style:solid;border-width:0px 0px 1px 0px;--border-top-width:0px;--border-right-width:0px;--border-bottom-width:1px;--border-left-width:0px;border-color:#171819;--border-color:#171819;--margin-top:16px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:18px;--padding-left:0px;--padding-right:0px;}.elementor-99 .elementor-element.elementor-element-cdc0f7c{--display:flex;--overflow:hidden;--border-radius:0px 0px 0px 0px;}.elementor-99 .elementor-element.elementor-element-71c4bf0 img{width:100%;height:105px;object-fit:cover;object-position:center center;border-radius:0px 0px 0px 0px;}.elementor-99 .elementor-element.elementor-element-a64849b{margin:27px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-99 .elementor-element.elementor-element-a64849b .elementor-heading-title{font-family:"Neue Haas Grotesk Display Pro", Sans-serif;font-size:17px;font-weight:400;line-height:27px;color:#FFFFFF;}.elementor-99 .elementor-element.elementor-element-0efa6b7{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-99 .elementor-element.elementor-element-becea12{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:center;border-style:solid;--border-style:solid;border-width:0px 0px 1px 0px;--border-top-width:0px;--border-right-width:0px;--border-bottom-width:1px;--border-left-width:0px;border-color:#171819;--border-color:#171819;--margin-top:0px;--margin-bottom:11px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:12px;--padding-left:0px;--padding-right:0px;}.elementor-99 .elementor-element.elementor-element-7fd20d6 .elementor-heading-title{font-family:"Neue Haas Grotesk Display Pro", Sans-serif;font-size:25px;font-weight:400;line-height:1.12em;color:#FFFFFF;}.elementor-99 .elementor-element.elementor-element-61fed5d .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child){padding-block-end:calc(17px/2);}.elementor-99 .elementor-element.elementor-element-61fed5d .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:first-child){margin-block-start:calc(17px/2);}.elementor-99 .elementor-element.elementor-element-61fed5d .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item{margin-inline:calc(17px/2);}.elementor-99 .elementor-element.elementor-element-61fed5d .elementor-icon-list-items.elementor-inline-items{margin-inline:calc(-17px/2);}.elementor-99 .elementor-element.elementor-element-61fed5d .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after{inset-inline-end:calc(-17px/2);}.elementor-99 .elementor-element.elementor-element-61fed5d .elementor-icon-list-item:not(:last-child):after{content:"";border-color:#171819;}.elementor-99 .elementor-element.elementor-element-61fed5d .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child):after{border-block-start-style:solid;border-block-start-width:1px;}.elementor-99 .elementor-element.elementor-element-61fed5d .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:not(:last-child):after{border-inline-start-style:solid;}.elementor-99 .elementor-element.elementor-element-61fed5d .elementor-inline-items .elementor-icon-list-item:not(:last-child):after{border-inline-start-width:1px;}.elementor-99 .elementor-element.elementor-element-61fed5d .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-99 .elementor-element.elementor-element-61fed5d .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-99 .elementor-element.elementor-element-61fed5d{--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-99 .elementor-element.elementor-element-61fed5d .elementor-icon-list-item > .elementor-icon-list-text, .elementor-99 .elementor-element.elementor-element-61fed5d .elementor-icon-list-item > a{font-family:"Neue Haas Grotesk Display Pro", Sans-serif;font-size:17px;font-weight:400;line-height:1.65em;}.elementor-99 .elementor-element.elementor-element-61fed5d .elementor-icon-list-text{color:#ABB5C1;transition:color 0.3s;}.elementor-99 .elementor-element.elementor-element-61fed5d .elementor-icon-list-item:hover .elementor-icon-list-text{color:#FFFFFF;}.elementor-99 .elementor-element.elementor-element-17694de{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-99 .elementor-element.elementor-element-60659d9{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;border-style:solid;--border-style:solid;border-width:0px 0px 1px 0px;--border-top-width:0px;--border-right-width:0px;--border-bottom-width:1px;--border-left-width:0px;border-color:#171819;--border-color:#171819;--margin-top:0px;--margin-bottom:11px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:12px;--padding-left:0px;--padding-right:0px;}.elementor-99 .elementor-element.elementor-element-75a5c81 .elementor-heading-title{font-family:"Neue Haas Grotesk Display Pro", Sans-serif;font-size:25px;font-weight:400;line-height:1.12em;color:#FFFFFF;}.elementor-99 .elementor-element.elementor-element-4294d30{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-99 .elementor-element.elementor-element-b10cc4d{--grid-columns:2;}.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}@media(min-width:768px){.elementor-99 .elementor-element.elementor-element-73982c6{--width:100%;}.elementor-99 .elementor-element.elementor-element-4bad71c3{--width:335px;}.elementor-99 .elementor-element.elementor-element-adeb6f0{--width:100%;}.elementor-99 .elementor-element.elementor-element-8ad6f4ae{--width:335px;}.elementor-99 .elementor-element.elementor-element-9cc1481{--width:100%;}.elementor-99 .elementor-element.elementor-element-b34bd1ea{--width:335px;}.elementor-99 .elementor-element.elementor-element-8030b10{--width:100%;}.elementor-99 .elementor-element.elementor-element-198ec4d5{--width:335px;}.elementor-99 .elementor-element.elementor-element-a3f9c17{--width:330px;}.elementor-99 .elementor-element.elementor-element-8b8dee5{--width:100%;}.elementor-99 .elementor-element.elementor-element-0b96ed3{--width:100%;}.elementor-99 .elementor-element.elementor-element-cdc0f7c{--width:149px;}.elementor-99 .elementor-element.elementor-element-4294d30{--width:100%;}}@media(max-width:1024px){.elementor-99 .elementor-element.elementor-element-fb05d9c{--flex-wrap:nowrap;--padding-top:20px;--padding-bottom:20px;--padding-left:20px;--padding-right:20px;}.elementor-99 .elementor-element.elementor-element-a3f9c17{--gap:24px 24px;--row-gap:24px;--column-gap:24px;}.elementor-99 .elementor-element.elementor-element-5a880c1f{--grid-columns:1;}.elementor-99 .elementor-element.elementor-element-1e8608b{width:auto;max-width:auto;}.elementor-99 .elementor-element.elementor-element-8b8dee5{--e-con-grid-template-columns:repeat(2, 1fr);--grid-auto-flow:row;}.elementor-99 .elementor-element.elementor-element-0b96ed3{--e-con-grid-template-columns:repeat(2, 1fr);--grid-auto-flow:row;}.elementor-99 .elementor-element.elementor-element-71c4bf0 img{border-radius:0px 0px 0px 0px;}.elementor-99 .elementor-element.elementor-element-b10cc4d{--grid-columns:2;}}@media(max-width:767px){.elementor-99 .elementor-element.elementor-element-fb05d9c{--justify-content:space-between;--flex-wrap:nowrap;}.elementor-99 .elementor-element.elementor-element-a3f9c17{--gap:24px 24px;--row-gap:24px;--column-gap:24px;}.elementor-99 .elementor-element.elementor-element-5a880c1f{--grid-columns:1;}.elementor-99 .elementor-element.elementor-element-1e8608b{width:auto;max-width:auto;}.elementor-99 .elementor-element.elementor-element-b98f066 .elementor-button{font-size:16px;}.elementor-99 .elementor-element.elementor-element-ce77484{--padding-top:80px;--padding-bottom:50px;--padding-left:16px;--padding-right:16px;}.elementor-99 .elementor-element.elementor-element-8b8dee5{--e-con-grid-template-columns:repeat(1, 1fr);--grid-auto-flow:row;}.elementor-99 .elementor-element.elementor-element-0b96ed3{--e-con-grid-template-columns:repeat(1, 1fr);--grid-auto-flow:row;}.elementor-99 .elementor-element.elementor-element-71c4bf0 img{border-radius:0px 0px 0px 0px;}.elementor-99 .elementor-element.elementor-element-b10cc4d{--grid-columns:1;}}/* Start custom CSS for heading, class: .elementor-element-6dd8e948 *//* ---- heading arrow: ALWAYS visible (design), shared asset arrow-two-stroke-nav.svg
   (attachment 2665) applied as a mask so it inherits currentColor. 13x11 box;
   stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. Laid out inline (flex + 10px
   gap) so it tracks the title width, never absolutely positioned. translateY(.1em)
   drops it 2.5px below the line-box centre to sit on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-6dd8e948 .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-6dd8e948 .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-4bad71c3 *//* ---- D17: standalone column rule, 1px #26282A, 634px tall, 7px right of this column (x=342 from the rail edge), starting 80px below the panel top ---- */
.elementor-99 .elementor-element.elementor-element-4bad71c3::after{
  content:'';
  position:absolute;
  left:calc(100% + 7px);
  top:-4px;
  width:1px;
  height:634px;
  background:#26282A;
  pointer-events:none;
}
/* PF-FIX69 (2026-08-21): the D17 column rule was a hardcoded 701px on a column only 90-114px tall, so it ran 31px PAST the panel's bottom edge and bled onto the page behind. The panel is 750 and the rule starts 80px down (col top 84, offset -4), so 670 lands it exactly on the panel's bottom. */
/* PF-FIX71 (2026-08-21): client - the rule should stop above the panel's bottom edge, not run all the way down. 634 ends it at 714 in the panel, exactly on the featured card's bottom rule in Resources, leaving the last 36px of every panel clear. Same length on all four so the menus match. *//* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-e56815c7 *//* ---- list rows: 1px #171819 divider under EVERY item (design) ---- */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item{
  position: relative;
  border-bottom: 1px solid #171819;
  color: #abb5c1;
}
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item:hover{ color: #ffffff; }
/* ---- no bullets: design has no check marks ---- */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-icon{ display:none !important; }
/* ---- Row is a flex line: label left, arrow right-flushed to the column edge.
   The arrow deliberately lives on the <a>, NOT on li::after: Elementor core
   (widget-icon-list.min.css) owns li::after with position:absolute +
   inset-inline-start:0 + inset-inline-end:0 + width:100%. Our old rule set
   right+width but never left, so left:0 survived and the box was
   over-constrained -- CSS drops `right` in LTR -- pinning the glyph to the
   row LEFT edge on top of the label. Using the <a> sidesteps that entirely
   and makes overlap structurally impossible (flex sibling, not overlay). ---- */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item > a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
}
/* ---- hover-only trailing arrow: shared asset arrow-two-stroke-nav.svg (attachment
   2665), applied as a mask so the glyph inherits currentColor instead of baking the
   colour in. 13x11 box; stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. ---- */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item > a::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .18s ease-out, transform .18s ease-out, background-color .18s ease-out;
}
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item:hover > a::after{ opacity:1; transform:translateX(0); }
/* last row: Elementor only spaces :not(:last-child), so the final divider hugged the text */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item:last-child{ padding-bottom: 8.5px; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-163adeec *//* ---- heading arrow: ALWAYS visible (design), shared asset arrow-two-stroke-nav.svg
   (attachment 2665) applied as a mask so it inherits currentColor. 13x11 box;
   stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. Laid out inline (flex + 10px
   gap) so it tracks the title width, never absolutely positioned. translateY(.1em)
   drops it 2.5px below the line-box centre to sit on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-163adeec .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-163adeec .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-8ad6f4ae *//* ---- D17: standalone column rule, 1px #26282A, 634px tall, 7px right of this column (x=342 from the rail edge), starting 80px below the panel top ---- */
.elementor-99 .elementor-element.elementor-element-8ad6f4ae::after{
  content:'';
  position:absolute;
  left:calc(100% + 7px);
  top:-4px;
  width:1px;
  height:634px;
  background:#26282A;
  pointer-events:none;
}
/* PF-FIX69 (2026-08-21): the D17 column rule was a hardcoded 701px on a column only 90-114px tall, so it ran 31px PAST the panel's bottom edge and bled onto the page behind. The panel is 750 and the rule starts 80px down (col top 84, offset -4), so 670 lands it exactly on the panel's bottom. */
/* PF-FIX71 (2026-08-21): client - the rule should stop above the panel's bottom edge, not run all the way down. 634 ends it at 714 in the panel, exactly on the featured card's bottom rule in Resources, leaving the last 36px of every panel clear. Same length on all four so the menus match. *//* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-d59decf9 *//* ---- list rows: 1px #171819 divider under EVERY item (design) ---- */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item{
  position: relative;
  border-bottom: 1px solid #171819;
  color: #abb5c1;
}
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item:hover{ color: #ffffff; }
/* ---- no bullets: design has no check marks ---- */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-icon{ display:none !important; }
/* ---- Row is a flex line: label left, arrow right-flushed to the column edge.
   The arrow deliberately lives on the <a>, NOT on li::after: Elementor core
   (widget-icon-list.min.css) owns li::after with position:absolute +
   inset-inline-start:0 + inset-inline-end:0 + width:100%. Our old rule set
   right+width but never left, so left:0 survived and the box was
   over-constrained -- CSS drops `right` in LTR -- pinning the glyph to the
   row LEFT edge on top of the label. Using the <a> sidesteps that entirely
   and makes overlap structurally impossible (flex sibling, not overlay). ---- */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item > a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
}
/* ---- hover-only trailing arrow: shared asset arrow-two-stroke-nav.svg (attachment
   2665), applied as a mask so the glyph inherits currentColor instead of baking the
   colour in. 13x11 box; stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. ---- */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item > a::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .18s ease-out, transform .18s ease-out, background-color .18s ease-out;
}
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item:hover > a::after{ opacity:1; transform:translateX(0); }
/* last row: Elementor only spaces :not(:last-child), so the final divider hugged the text */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item:last-child{ padding-bottom: 8.5px; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-898b7606 *//* ---- heading arrow: ALWAYS visible (design), shared asset arrow-two-stroke-nav.svg
   (attachment 2665) applied as a mask so it inherits currentColor. 13x11 box;
   stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. Laid out inline (flex + 10px
   gap) so it tracks the title width, never absolutely positioned. translateY(.1em)
   drops it 2.5px below the line-box centre to sit on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-898b7606 .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-898b7606 .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-b34bd1ea *//* ---- D17: standalone column rule, 1px #26282A, 634px tall, 7px right of this column (x=342 from the rail edge), starting 80px below the panel top ---- */
.elementor-99 .elementor-element.elementor-element-b34bd1ea::after{
  content:'';
  position:absolute;
  left:calc(100% + 7px);
  top:-4px;
  width:1px;
  height:634px;
  background:#26282A;
  pointer-events:none;
}
/* PF-FIX69 (2026-08-21): the D17 column rule was a hardcoded 701px on a column only 90-114px tall, so it ran 31px PAST the panel's bottom edge and bled onto the page behind. The panel is 750 and the rule starts 80px down (col top 84, offset -4), so 670 lands it exactly on the panel's bottom. */
/* PF-FIX71 (2026-08-21): client - the rule should stop above the panel's bottom edge, not run all the way down. 634 ends it at 714 in the panel, exactly on the featured card's bottom rule in Resources, leaving the last 36px of every panel clear. Same length on all four so the menus match. *//* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-29a24740 *//* ---- list rows: 1px #171819 divider under EVERY item (design) ---- */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item{
  position: relative;
  border-bottom: 1px solid #171819;
  color: #abb5c1;
}
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item:hover{ color: #ffffff; }
/* ---- no bullets: design has no check marks ---- */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-icon{ display:none !important; }
/* ---- Row is a flex line: label left, arrow right-flushed to the column edge.
   The arrow deliberately lives on the <a>, NOT on li::after: Elementor core
   (widget-icon-list.min.css) owns li::after with position:absolute +
   inset-inline-start:0 + inset-inline-end:0 + width:100%. Our old rule set
   right+width but never left, so left:0 survived and the box was
   over-constrained -- CSS drops `right` in LTR -- pinning the glyph to the
   row LEFT edge on top of the label. Using the <a> sidesteps that entirely
   and makes overlap structurally impossible (flex sibling, not overlay). ---- */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item > a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
}
/* ---- hover-only trailing arrow: shared asset arrow-two-stroke-nav.svg (attachment
   2665), applied as a mask so the glyph inherits currentColor instead of baking the
   colour in. 13x11 box; stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. ---- */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item > a::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .18s ease-out, transform .18s ease-out, background-color .18s ease-out;
}
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item:hover > a::after{ opacity:1; transform:translateX(0); }
/* last row: Elementor only spaces :not(:last-child), so the final divider hugged the text */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item:last-child{ padding-bottom: 8.5px; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-f2bf6a39 *//* ---- heading arrow: ALWAYS visible (design), shared asset arrow-two-stroke-nav.svg
   (attachment 2665) applied as a mask so it inherits currentColor. 13x11 box;
   stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. Laid out inline (flex + 10px
   gap) so it tracks the title width, never absolutely positioned. translateY(.1em)
   drops it 2.5px below the line-box centre to sit on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-f2bf6a39 .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-f2bf6a39 .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-198ec4d5 *//* ---- D17: standalone column rule, 1px #26282A, 634px tall, 7px right of this column (x=342 from the rail edge), starting 80px below the panel top ---- */
.elementor-99 .elementor-element.elementor-element-198ec4d5::after{
  content:'';
  position:absolute;
  left:calc(100% + 7px);
  top:-4px;
  width:1px;
  height:634px;
  background:#26282A;
  pointer-events:none;
}
/* PF-FIX69 (2026-08-21): the D17 column rule was a hardcoded 701px on a column only 90-114px tall, so it ran 31px PAST the panel's bottom edge and bled onto the page behind. The panel is 750 and the rule starts 80px down (col top 84, offset -4), so 670 lands it exactly on the panel's bottom. */
/* PF-FIX71 (2026-08-21): client - the rule should stop above the panel's bottom edge, not run all the way down. 634 ends it at 714 in the panel, exactly on the featured card's bottom rule in Resources, leaving the last 36px of every panel clear. Same length on all four so the menus match. *//* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-d85684dd *//* ---- list rows: 1px #171819 divider under EVERY item (design) ---- */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item{
  position: relative;
  border-bottom: 1px solid #171819;
  color: #abb5c1;
}
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item:hover{ color: #ffffff; }
/* ---- no bullets: design has no check marks ---- */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-icon{ display:none !important; }
/* ---- Row is a flex line: label left, arrow right-flushed to the column edge.
   The arrow deliberately lives on the <a>, NOT on li::after: Elementor core
   (widget-icon-list.min.css) owns li::after with position:absolute +
   inset-inline-start:0 + inset-inline-end:0 + width:100%. Our old rule set
   right+width but never left, so left:0 survived and the box was
   over-constrained -- CSS drops `right` in LTR -- pinning the glyph to the
   row LEFT edge on top of the label. Using the <a> sidesteps that entirely
   and makes overlap structurally impossible (flex sibling, not overlay). ---- */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item > a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
}
/* ---- hover-only trailing arrow: shared asset arrow-two-stroke-nav.svg (attachment
   2665), applied as a mask so the glyph inherits currentColor instead of baking the
   colour in. 13x11 box; stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. ---- */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item > a::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .18s ease-out, transform .18s ease-out, background-color .18s ease-out;
}
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item:hover > a::after{ opacity:1; transform:translateX(0); }
/* last row: Elementor only spaces :not(:last-child), so the final divider hugged the text */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item:last-child{ padding-bottom: 8.5px; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-6dd8e948 *//* ---- heading arrow: ALWAYS visible (design), shared asset arrow-two-stroke-nav.svg
   (attachment 2665) applied as a mask so it inherits currentColor. 13x11 box;
   stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. Laid out inline (flex + 10px
   gap) so it tracks the title width, never absolutely positioned. translateY(.1em)
   drops it 2.5px below the line-box centre to sit on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-6dd8e948 .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-6dd8e948 .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-4bad71c3 *//* ---- D17: standalone column rule, 1px #26282A, 634px tall, 7px right of this column (x=342 from the rail edge), starting 80px below the panel top ---- */
.elementor-99 .elementor-element.elementor-element-4bad71c3::after{
  content:'';
  position:absolute;
  left:calc(100% + 7px);
  top:-4px;
  width:1px;
  height:634px;
  background:#26282A;
  pointer-events:none;
}
/* PF-FIX69 (2026-08-21): the D17 column rule was a hardcoded 701px on a column only 90-114px tall, so it ran 31px PAST the panel's bottom edge and bled onto the page behind. The panel is 750 and the rule starts 80px down (col top 84, offset -4), so 670 lands it exactly on the panel's bottom. */
/* PF-FIX71 (2026-08-21): client - the rule should stop above the panel's bottom edge, not run all the way down. 634 ends it at 714 in the panel, exactly on the featured card's bottom rule in Resources, leaving the last 36px of every panel clear. Same length on all four so the menus match. *//* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-e56815c7 *//* ---- list rows: 1px #171819 divider under EVERY item (design) ---- */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item{
  position: relative;
  border-bottom: 1px solid #171819;
  color: #abb5c1;
}
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item:hover{ color: #ffffff; }
/* ---- no bullets: design has no check marks ---- */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-icon{ display:none !important; }
/* ---- Row is a flex line: label left, arrow right-flushed to the column edge.
   The arrow deliberately lives on the <a>, NOT on li::after: Elementor core
   (widget-icon-list.min.css) owns li::after with position:absolute +
   inset-inline-start:0 + inset-inline-end:0 + width:100%. Our old rule set
   right+width but never left, so left:0 survived and the box was
   over-constrained -- CSS drops `right` in LTR -- pinning the glyph to the
   row LEFT edge on top of the label. Using the <a> sidesteps that entirely
   and makes overlap structurally impossible (flex sibling, not overlay). ---- */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item > a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
}
/* ---- hover-only trailing arrow: shared asset arrow-two-stroke-nav.svg (attachment
   2665), applied as a mask so the glyph inherits currentColor instead of baking the
   colour in. 13x11 box; stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. ---- */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item > a::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .18s ease-out, transform .18s ease-out, background-color .18s ease-out;
}
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item:hover > a::after{ opacity:1; transform:translateX(0); }
/* last row: Elementor only spaces :not(:last-child), so the final divider hugged the text */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item:last-child{ padding-bottom: 8.5px; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-163adeec *//* ---- heading arrow: ALWAYS visible (design), shared asset arrow-two-stroke-nav.svg
   (attachment 2665) applied as a mask so it inherits currentColor. 13x11 box;
   stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. Laid out inline (flex + 10px
   gap) so it tracks the title width, never absolutely positioned. translateY(.1em)
   drops it 2.5px below the line-box centre to sit on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-163adeec .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-163adeec .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-8ad6f4ae *//* ---- D17: standalone column rule, 1px #26282A, 634px tall, 7px right of this column (x=342 from the rail edge), starting 80px below the panel top ---- */
.elementor-99 .elementor-element.elementor-element-8ad6f4ae::after{
  content:'';
  position:absolute;
  left:calc(100% + 7px);
  top:-4px;
  width:1px;
  height:634px;
  background:#26282A;
  pointer-events:none;
}
/* PF-FIX69 (2026-08-21): the D17 column rule was a hardcoded 701px on a column only 90-114px tall, so it ran 31px PAST the panel's bottom edge and bled onto the page behind. The panel is 750 and the rule starts 80px down (col top 84, offset -4), so 670 lands it exactly on the panel's bottom. */
/* PF-FIX71 (2026-08-21): client - the rule should stop above the panel's bottom edge, not run all the way down. 634 ends it at 714 in the panel, exactly on the featured card's bottom rule in Resources, leaving the last 36px of every panel clear. Same length on all four so the menus match. *//* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-d59decf9 *//* ---- list rows: 1px #171819 divider under EVERY item (design) ---- */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item{
  position: relative;
  border-bottom: 1px solid #171819;
  color: #abb5c1;
}
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item:hover{ color: #ffffff; }
/* ---- no bullets: design has no check marks ---- */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-icon{ display:none !important; }
/* ---- Row is a flex line: label left, arrow right-flushed to the column edge.
   The arrow deliberately lives on the <a>, NOT on li::after: Elementor core
   (widget-icon-list.min.css) owns li::after with position:absolute +
   inset-inline-start:0 + inset-inline-end:0 + width:100%. Our old rule set
   right+width but never left, so left:0 survived and the box was
   over-constrained -- CSS drops `right` in LTR -- pinning the glyph to the
   row LEFT edge on top of the label. Using the <a> sidesteps that entirely
   and makes overlap structurally impossible (flex sibling, not overlay). ---- */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item > a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
}
/* ---- hover-only trailing arrow: shared asset arrow-two-stroke-nav.svg (attachment
   2665), applied as a mask so the glyph inherits currentColor instead of baking the
   colour in. 13x11 box; stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. ---- */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item > a::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .18s ease-out, transform .18s ease-out, background-color .18s ease-out;
}
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item:hover > a::after{ opacity:1; transform:translateX(0); }
/* last row: Elementor only spaces :not(:last-child), so the final divider hugged the text */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item:last-child{ padding-bottom: 8.5px; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-898b7606 *//* ---- heading arrow: ALWAYS visible (design), shared asset arrow-two-stroke-nav.svg
   (attachment 2665) applied as a mask so it inherits currentColor. 13x11 box;
   stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. Laid out inline (flex + 10px
   gap) so it tracks the title width, never absolutely positioned. translateY(.1em)
   drops it 2.5px below the line-box centre to sit on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-898b7606 .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-898b7606 .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-b34bd1ea *//* ---- D17: standalone column rule, 1px #26282A, 634px tall, 7px right of this column (x=342 from the rail edge), starting 80px below the panel top ---- */
.elementor-99 .elementor-element.elementor-element-b34bd1ea::after{
  content:'';
  position:absolute;
  left:calc(100% + 7px);
  top:-4px;
  width:1px;
  height:634px;
  background:#26282A;
  pointer-events:none;
}
/* PF-FIX69 (2026-08-21): the D17 column rule was a hardcoded 701px on a column only 90-114px tall, so it ran 31px PAST the panel's bottom edge and bled onto the page behind. The panel is 750 and the rule starts 80px down (col top 84, offset -4), so 670 lands it exactly on the panel's bottom. */
/* PF-FIX71 (2026-08-21): client - the rule should stop above the panel's bottom edge, not run all the way down. 634 ends it at 714 in the panel, exactly on the featured card's bottom rule in Resources, leaving the last 36px of every panel clear. Same length on all four so the menus match. *//* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-29a24740 *//* ---- list rows: 1px #171819 divider under EVERY item (design) ---- */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item{
  position: relative;
  border-bottom: 1px solid #171819;
  color: #abb5c1;
}
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item:hover{ color: #ffffff; }
/* ---- no bullets: design has no check marks ---- */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-icon{ display:none !important; }
/* ---- Row is a flex line: label left, arrow right-flushed to the column edge.
   The arrow deliberately lives on the <a>, NOT on li::after: Elementor core
   (widget-icon-list.min.css) owns li::after with position:absolute +
   inset-inline-start:0 + inset-inline-end:0 + width:100%. Our old rule set
   right+width but never left, so left:0 survived and the box was
   over-constrained -- CSS drops `right` in LTR -- pinning the glyph to the
   row LEFT edge on top of the label. Using the <a> sidesteps that entirely
   and makes overlap structurally impossible (flex sibling, not overlay). ---- */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item > a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
}
/* ---- hover-only trailing arrow: shared asset arrow-two-stroke-nav.svg (attachment
   2665), applied as a mask so the glyph inherits currentColor instead of baking the
   colour in. 13x11 box; stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. ---- */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item > a::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .18s ease-out, transform .18s ease-out, background-color .18s ease-out;
}
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item:hover > a::after{ opacity:1; transform:translateX(0); }
/* last row: Elementor only spaces :not(:last-child), so the final divider hugged the text */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item:last-child{ padding-bottom: 8.5px; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-f2bf6a39 *//* ---- heading arrow: ALWAYS visible (design), shared asset arrow-two-stroke-nav.svg
   (attachment 2665) applied as a mask so it inherits currentColor. 13x11 box;
   stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. Laid out inline (flex + 10px
   gap) so it tracks the title width, never absolutely positioned. translateY(.1em)
   drops it 2.5px below the line-box centre to sit on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-f2bf6a39 .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-f2bf6a39 .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-198ec4d5 *//* ---- D17: standalone column rule, 1px #26282A, 634px tall, 7px right of this column (x=342 from the rail edge), starting 80px below the panel top ---- */
.elementor-99 .elementor-element.elementor-element-198ec4d5::after{
  content:'';
  position:absolute;
  left:calc(100% + 7px);
  top:-4px;
  width:1px;
  height:634px;
  background:#26282A;
  pointer-events:none;
}
/* PF-FIX69 (2026-08-21): the D17 column rule was a hardcoded 701px on a column only 90-114px tall, so it ran 31px PAST the panel's bottom edge and bled onto the page behind. The panel is 750 and the rule starts 80px down (col top 84, offset -4), so 670 lands it exactly on the panel's bottom. */
/* PF-FIX71 (2026-08-21): client - the rule should stop above the panel's bottom edge, not run all the way down. 634 ends it at 714 in the panel, exactly on the featured card's bottom rule in Resources, leaving the last 36px of every panel clear. Same length on all four so the menus match. *//* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-d85684dd *//* ---- list rows: 1px #171819 divider under EVERY item (design) ---- */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item{
  position: relative;
  border-bottom: 1px solid #171819;
  color: #abb5c1;
}
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item:hover{ color: #ffffff; }
/* ---- no bullets: design has no check marks ---- */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-icon{ display:none !important; }
/* ---- Row is a flex line: label left, arrow right-flushed to the column edge.
   The arrow deliberately lives on the <a>, NOT on li::after: Elementor core
   (widget-icon-list.min.css) owns li::after with position:absolute +
   inset-inline-start:0 + inset-inline-end:0 + width:100%. Our old rule set
   right+width but never left, so left:0 survived and the box was
   over-constrained -- CSS drops `right` in LTR -- pinning the glyph to the
   row LEFT edge on top of the label. Using the <a> sidesteps that entirely
   and makes overlap structurally impossible (flex sibling, not overlay). ---- */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item > a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
}
/* ---- hover-only trailing arrow: shared asset arrow-two-stroke-nav.svg (attachment
   2665), applied as a mask so the glyph inherits currentColor instead of baking the
   colour in. 13x11 box; stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. ---- */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item > a::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .18s ease-out, transform .18s ease-out, background-color .18s ease-out;
}
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item:hover > a::after{ opacity:1; transform:translateX(0); }
/* last row: Elementor only spaces :not(:last-child), so the final divider hugged the text */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item:last-child{ padding-bottom: 8.5px; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-6dd8e948 *//* ---- heading arrow: ALWAYS visible (design), shared asset arrow-two-stroke-nav.svg
   (attachment 2665) applied as a mask so it inherits currentColor. 13x11 box;
   stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. Laid out inline (flex + 10px
   gap) so it tracks the title width, never absolutely positioned. translateY(.1em)
   drops it 2.5px below the line-box centre to sit on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-6dd8e948 .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-6dd8e948 .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-4bad71c3 *//* ---- D17: standalone column rule, 1px #26282A, 634px tall, 7px right of this column (x=342 from the rail edge), starting 80px below the panel top ---- */
.elementor-99 .elementor-element.elementor-element-4bad71c3::after{
  content:'';
  position:absolute;
  left:calc(100% + 7px);
  top:-4px;
  width:1px;
  height:634px;
  background:#26282A;
  pointer-events:none;
}
/* PF-FIX69 (2026-08-21): the D17 column rule was a hardcoded 701px on a column only 90-114px tall, so it ran 31px PAST the panel's bottom edge and bled onto the page behind. The panel is 750 and the rule starts 80px down (col top 84, offset -4), so 670 lands it exactly on the panel's bottom. */
/* PF-FIX71 (2026-08-21): client - the rule should stop above the panel's bottom edge, not run all the way down. 634 ends it at 714 in the panel, exactly on the featured card's bottom rule in Resources, leaving the last 36px of every panel clear. Same length on all four so the menus match. *//* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-e56815c7 *//* ---- list rows: 1px #171819 divider under EVERY item (design) ---- */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item{
  position: relative;
  border-bottom: 1px solid #171819;
  color: #abb5c1;
}
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item:hover{ color: #ffffff; }
/* ---- no bullets: design has no check marks ---- */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-icon{ display:none !important; }
/* ---- Row is a flex line: label left, arrow right-flushed to the column edge.
   The arrow deliberately lives on the <a>, NOT on li::after: Elementor core
   (widget-icon-list.min.css) owns li::after with position:absolute +
   inset-inline-start:0 + inset-inline-end:0 + width:100%. Our old rule set
   right+width but never left, so left:0 survived and the box was
   over-constrained -- CSS drops `right` in LTR -- pinning the glyph to the
   row LEFT edge on top of the label. Using the <a> sidesteps that entirely
   and makes overlap structurally impossible (flex sibling, not overlay). ---- */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item > a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
}
/* ---- hover-only trailing arrow: shared asset arrow-two-stroke-nav.svg (attachment
   2665), applied as a mask so the glyph inherits currentColor instead of baking the
   colour in. 13x11 box; stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. ---- */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item > a::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .18s ease-out, transform .18s ease-out, background-color .18s ease-out;
}
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item:hover > a::after{ opacity:1; transform:translateX(0); }
/* last row: Elementor only spaces :not(:last-child), so the final divider hugged the text */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item:last-child{ padding-bottom: 8.5px; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-163adeec *//* ---- heading arrow: ALWAYS visible (design), shared asset arrow-two-stroke-nav.svg
   (attachment 2665) applied as a mask so it inherits currentColor. 13x11 box;
   stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. Laid out inline (flex + 10px
   gap) so it tracks the title width, never absolutely positioned. translateY(.1em)
   drops it 2.5px below the line-box centre to sit on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-163adeec .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-163adeec .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-8ad6f4ae *//* ---- D17: standalone column rule, 1px #26282A, 634px tall, 7px right of this column (x=342 from the rail edge), starting 80px below the panel top ---- */
.elementor-99 .elementor-element.elementor-element-8ad6f4ae::after{
  content:'';
  position:absolute;
  left:calc(100% + 7px);
  top:-4px;
  width:1px;
  height:634px;
  background:#26282A;
  pointer-events:none;
}
/* PF-FIX69 (2026-08-21): the D17 column rule was a hardcoded 701px on a column only 90-114px tall, so it ran 31px PAST the panel's bottom edge and bled onto the page behind. The panel is 750 and the rule starts 80px down (col top 84, offset -4), so 670 lands it exactly on the panel's bottom. */
/* PF-FIX71 (2026-08-21): client - the rule should stop above the panel's bottom edge, not run all the way down. 634 ends it at 714 in the panel, exactly on the featured card's bottom rule in Resources, leaving the last 36px of every panel clear. Same length on all four so the menus match. *//* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-d59decf9 *//* ---- list rows: 1px #171819 divider under EVERY item (design) ---- */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item{
  position: relative;
  border-bottom: 1px solid #171819;
  color: #abb5c1;
}
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item:hover{ color: #ffffff; }
/* ---- no bullets: design has no check marks ---- */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-icon{ display:none !important; }
/* ---- Row is a flex line: label left, arrow right-flushed to the column edge.
   The arrow deliberately lives on the <a>, NOT on li::after: Elementor core
   (widget-icon-list.min.css) owns li::after with position:absolute +
   inset-inline-start:0 + inset-inline-end:0 + width:100%. Our old rule set
   right+width but never left, so left:0 survived and the box was
   over-constrained -- CSS drops `right` in LTR -- pinning the glyph to the
   row LEFT edge on top of the label. Using the <a> sidesteps that entirely
   and makes overlap structurally impossible (flex sibling, not overlay). ---- */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item > a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
}
/* ---- hover-only trailing arrow: shared asset arrow-two-stroke-nav.svg (attachment
   2665), applied as a mask so the glyph inherits currentColor instead of baking the
   colour in. 13x11 box; stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. ---- */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item > a::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .18s ease-out, transform .18s ease-out, background-color .18s ease-out;
}
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item:hover > a::after{ opacity:1; transform:translateX(0); }
/* last row: Elementor only spaces :not(:last-child), so the final divider hugged the text */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item:last-child{ padding-bottom: 8.5px; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-898b7606 *//* ---- heading arrow: ALWAYS visible (design), shared asset arrow-two-stroke-nav.svg
   (attachment 2665) applied as a mask so it inherits currentColor. 13x11 box;
   stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. Laid out inline (flex + 10px
   gap) so it tracks the title width, never absolutely positioned. translateY(.1em)
   drops it 2.5px below the line-box centre to sit on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-898b7606 .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-898b7606 .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-b34bd1ea *//* ---- D17: standalone column rule, 1px #26282A, 634px tall, 7px right of this column (x=342 from the rail edge), starting 80px below the panel top ---- */
.elementor-99 .elementor-element.elementor-element-b34bd1ea::after{
  content:'';
  position:absolute;
  left:calc(100% + 7px);
  top:-4px;
  width:1px;
  height:634px;
  background:#26282A;
  pointer-events:none;
}
/* PF-FIX69 (2026-08-21): the D17 column rule was a hardcoded 701px on a column only 90-114px tall, so it ran 31px PAST the panel's bottom edge and bled onto the page behind. The panel is 750 and the rule starts 80px down (col top 84, offset -4), so 670 lands it exactly on the panel's bottom. */
/* PF-FIX71 (2026-08-21): client - the rule should stop above the panel's bottom edge, not run all the way down. 634 ends it at 714 in the panel, exactly on the featured card's bottom rule in Resources, leaving the last 36px of every panel clear. Same length on all four so the menus match. *//* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-29a24740 *//* ---- list rows: 1px #171819 divider under EVERY item (design) ---- */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item{
  position: relative;
  border-bottom: 1px solid #171819;
  color: #abb5c1;
}
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item:hover{ color: #ffffff; }
/* ---- no bullets: design has no check marks ---- */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-icon{ display:none !important; }
/* ---- Row is a flex line: label left, arrow right-flushed to the column edge.
   The arrow deliberately lives on the <a>, NOT on li::after: Elementor core
   (widget-icon-list.min.css) owns li::after with position:absolute +
   inset-inline-start:0 + inset-inline-end:0 + width:100%. Our old rule set
   right+width but never left, so left:0 survived and the box was
   over-constrained -- CSS drops `right` in LTR -- pinning the glyph to the
   row LEFT edge on top of the label. Using the <a> sidesteps that entirely
   and makes overlap structurally impossible (flex sibling, not overlay). ---- */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item > a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
}
/* ---- hover-only trailing arrow: shared asset arrow-two-stroke-nav.svg (attachment
   2665), applied as a mask so the glyph inherits currentColor instead of baking the
   colour in. 13x11 box; stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. ---- */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item > a::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .18s ease-out, transform .18s ease-out, background-color .18s ease-out;
}
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item:hover > a::after{ opacity:1; transform:translateX(0); }
/* last row: Elementor only spaces :not(:last-child), so the final divider hugged the text */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item:last-child{ padding-bottom: 8.5px; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-f2bf6a39 *//* ---- heading arrow: ALWAYS visible (design), shared asset arrow-two-stroke-nav.svg
   (attachment 2665) applied as a mask so it inherits currentColor. 13x11 box;
   stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. Laid out inline (flex + 10px
   gap) so it tracks the title width, never absolutely positioned. translateY(.1em)
   drops it 2.5px below the line-box centre to sit on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-f2bf6a39 .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-f2bf6a39 .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-198ec4d5 *//* ---- D17: standalone column rule, 1px #26282A, 634px tall, 7px right of this column (x=342 from the rail edge), starting 80px below the panel top ---- */
.elementor-99 .elementor-element.elementor-element-198ec4d5::after{
  content:'';
  position:absolute;
  left:calc(100% + 7px);
  top:-4px;
  width:1px;
  height:634px;
  background:#26282A;
  pointer-events:none;
}
/* PF-FIX69 (2026-08-21): the D17 column rule was a hardcoded 701px on a column only 90-114px tall, so it ran 31px PAST the panel's bottom edge and bled onto the page behind. The panel is 750 and the rule starts 80px down (col top 84, offset -4), so 670 lands it exactly on the panel's bottom. */
/* PF-FIX71 (2026-08-21): client - the rule should stop above the panel's bottom edge, not run all the way down. 634 ends it at 714 in the panel, exactly on the featured card's bottom rule in Resources, leaving the last 36px of every panel clear. Same length on all four so the menus match. *//* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-d85684dd *//* ---- list rows: 1px #171819 divider under EVERY item (design) ---- */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item{
  position: relative;
  border-bottom: 1px solid #171819;
  color: #abb5c1;
}
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item:hover{ color: #ffffff; }
/* ---- no bullets: design has no check marks ---- */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-icon{ display:none !important; }
/* ---- Row is a flex line: label left, arrow right-flushed to the column edge.
   The arrow deliberately lives on the <a>, NOT on li::after: Elementor core
   (widget-icon-list.min.css) owns li::after with position:absolute +
   inset-inline-start:0 + inset-inline-end:0 + width:100%. Our old rule set
   right+width but never left, so left:0 survived and the box was
   over-constrained -- CSS drops `right` in LTR -- pinning the glyph to the
   row LEFT edge on top of the label. Using the <a> sidesteps that entirely
   and makes overlap structurally impossible (flex sibling, not overlay). ---- */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item > a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
}
/* ---- hover-only trailing arrow: shared asset arrow-two-stroke-nav.svg (attachment
   2665), applied as a mask so the glyph inherits currentColor instead of baking the
   colour in. 13x11 box; stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. ---- */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item > a::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .18s ease-out, transform .18s ease-out, background-color .18s ease-out;
}
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item:hover > a::after{ opacity:1; transform:translateX(0); }
/* last row: Elementor only spaces :not(:last-child), so the final divider hugged the text */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item:last-child{ padding-bottom: 8.5px; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-6dd8e948 *//* ---- heading arrow: ALWAYS visible (design), shared asset arrow-two-stroke-nav.svg
   (attachment 2665) applied as a mask so it inherits currentColor. 13x11 box;
   stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. Laid out inline (flex + 10px
   gap) so it tracks the title width, never absolutely positioned. translateY(.1em)
   drops it 2.5px below the line-box centre to sit on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-6dd8e948 .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-6dd8e948 .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-4bad71c3 *//* ---- D17: standalone column rule, 1px #26282A, 634px tall, 7px right of this column (x=342 from the rail edge), starting 80px below the panel top ---- */
.elementor-99 .elementor-element.elementor-element-4bad71c3::after{
  content:'';
  position:absolute;
  left:calc(100% + 7px);
  top:-4px;
  width:1px;
  height:634px;
  background:#26282A;
  pointer-events:none;
}
/* PF-FIX69 (2026-08-21): the D17 column rule was a hardcoded 701px on a column only 90-114px tall, so it ran 31px PAST the panel's bottom edge and bled onto the page behind. The panel is 750 and the rule starts 80px down (col top 84, offset -4), so 670 lands it exactly on the panel's bottom. */
/* PF-FIX71 (2026-08-21): client - the rule should stop above the panel's bottom edge, not run all the way down. 634 ends it at 714 in the panel, exactly on the featured card's bottom rule in Resources, leaving the last 36px of every panel clear. Same length on all four so the menus match. *//* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-e56815c7 *//* ---- list rows: 1px #171819 divider under EVERY item (design) ---- */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item{
  position: relative;
  border-bottom: 1px solid #171819;
  color: #abb5c1;
}
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item:hover{ color: #ffffff; }
/* ---- no bullets: design has no check marks ---- */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-icon{ display:none !important; }
/* ---- Row is a flex line: label left, arrow right-flushed to the column edge.
   The arrow deliberately lives on the <a>, NOT on li::after: Elementor core
   (widget-icon-list.min.css) owns li::after with position:absolute +
   inset-inline-start:0 + inset-inline-end:0 + width:100%. Our old rule set
   right+width but never left, so left:0 survived and the box was
   over-constrained -- CSS drops `right` in LTR -- pinning the glyph to the
   row LEFT edge on top of the label. Using the <a> sidesteps that entirely
   and makes overlap structurally impossible (flex sibling, not overlay). ---- */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item > a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
}
/* ---- hover-only trailing arrow: shared asset arrow-two-stroke-nav.svg (attachment
   2665), applied as a mask so the glyph inherits currentColor instead of baking the
   colour in. 13x11 box; stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. ---- */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item > a::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .18s ease-out, transform .18s ease-out, background-color .18s ease-out;
}
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item:hover > a::after{ opacity:1; transform:translateX(0); }
/* last row: Elementor only spaces :not(:last-child), so the final divider hugged the text */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item:last-child{ padding-bottom: 8.5px; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-163adeec *//* ---- heading arrow: ALWAYS visible (design), shared asset arrow-two-stroke-nav.svg
   (attachment 2665) applied as a mask so it inherits currentColor. 13x11 box;
   stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. Laid out inline (flex + 10px
   gap) so it tracks the title width, never absolutely positioned. translateY(.1em)
   drops it 2.5px below the line-box centre to sit on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-163adeec .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-163adeec .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-8ad6f4ae *//* ---- D17: standalone column rule, 1px #26282A, 634px tall, 7px right of this column (x=342 from the rail edge), starting 80px below the panel top ---- */
.elementor-99 .elementor-element.elementor-element-8ad6f4ae::after{
  content:'';
  position:absolute;
  left:calc(100% + 7px);
  top:-4px;
  width:1px;
  height:634px;
  background:#26282A;
  pointer-events:none;
}
/* PF-FIX69 (2026-08-21): the D17 column rule was a hardcoded 701px on a column only 90-114px tall, so it ran 31px PAST the panel's bottom edge and bled onto the page behind. The panel is 750 and the rule starts 80px down (col top 84, offset -4), so 670 lands it exactly on the panel's bottom. */
/* PF-FIX71 (2026-08-21): client - the rule should stop above the panel's bottom edge, not run all the way down. 634 ends it at 714 in the panel, exactly on the featured card's bottom rule in Resources, leaving the last 36px of every panel clear. Same length on all four so the menus match. *//* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-d59decf9 *//* ---- list rows: 1px #171819 divider under EVERY item (design) ---- */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item{
  position: relative;
  border-bottom: 1px solid #171819;
  color: #abb5c1;
}
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item:hover{ color: #ffffff; }
/* ---- no bullets: design has no check marks ---- */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-icon{ display:none !important; }
/* ---- Row is a flex line: label left, arrow right-flushed to the column edge.
   The arrow deliberately lives on the <a>, NOT on li::after: Elementor core
   (widget-icon-list.min.css) owns li::after with position:absolute +
   inset-inline-start:0 + inset-inline-end:0 + width:100%. Our old rule set
   right+width but never left, so left:0 survived and the box was
   over-constrained -- CSS drops `right` in LTR -- pinning the glyph to the
   row LEFT edge on top of the label. Using the <a> sidesteps that entirely
   and makes overlap structurally impossible (flex sibling, not overlay). ---- */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item > a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
}
/* ---- hover-only trailing arrow: shared asset arrow-two-stroke-nav.svg (attachment
   2665), applied as a mask so the glyph inherits currentColor instead of baking the
   colour in. 13x11 box; stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. ---- */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item > a::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .18s ease-out, transform .18s ease-out, background-color .18s ease-out;
}
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item:hover > a::after{ opacity:1; transform:translateX(0); }
/* last row: Elementor only spaces :not(:last-child), so the final divider hugged the text */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item:last-child{ padding-bottom: 8.5px; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-898b7606 *//* ---- heading arrow: ALWAYS visible (design), shared asset arrow-two-stroke-nav.svg
   (attachment 2665) applied as a mask so it inherits currentColor. 13x11 box;
   stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. Laid out inline (flex + 10px
   gap) so it tracks the title width, never absolutely positioned. translateY(.1em)
   drops it 2.5px below the line-box centre to sit on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-898b7606 .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-898b7606 .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-b34bd1ea *//* ---- D17: standalone column rule, 1px #26282A, 634px tall, 7px right of this column (x=342 from the rail edge), starting 80px below the panel top ---- */
.elementor-99 .elementor-element.elementor-element-b34bd1ea::after{
  content:'';
  position:absolute;
  left:calc(100% + 7px);
  top:-4px;
  width:1px;
  height:634px;
  background:#26282A;
  pointer-events:none;
}
/* PF-FIX69 (2026-08-21): the D17 column rule was a hardcoded 701px on a column only 90-114px tall, so it ran 31px PAST the panel's bottom edge and bled onto the page behind. The panel is 750 and the rule starts 80px down (col top 84, offset -4), so 670 lands it exactly on the panel's bottom. */
/* PF-FIX71 (2026-08-21): client - the rule should stop above the panel's bottom edge, not run all the way down. 634 ends it at 714 in the panel, exactly on the featured card's bottom rule in Resources, leaving the last 36px of every panel clear. Same length on all four so the menus match. *//* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-29a24740 *//* ---- list rows: 1px #171819 divider under EVERY item (design) ---- */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item{
  position: relative;
  border-bottom: 1px solid #171819;
  color: #abb5c1;
}
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item:hover{ color: #ffffff; }
/* ---- no bullets: design has no check marks ---- */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-icon{ display:none !important; }
/* ---- Row is a flex line: label left, arrow right-flushed to the column edge.
   The arrow deliberately lives on the <a>, NOT on li::after: Elementor core
   (widget-icon-list.min.css) owns li::after with position:absolute +
   inset-inline-start:0 + inset-inline-end:0 + width:100%. Our old rule set
   right+width but never left, so left:0 survived and the box was
   over-constrained -- CSS drops `right` in LTR -- pinning the glyph to the
   row LEFT edge on top of the label. Using the <a> sidesteps that entirely
   and makes overlap structurally impossible (flex sibling, not overlay). ---- */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item > a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
}
/* ---- hover-only trailing arrow: shared asset arrow-two-stroke-nav.svg (attachment
   2665), applied as a mask so the glyph inherits currentColor instead of baking the
   colour in. 13x11 box; stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. ---- */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item > a::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .18s ease-out, transform .18s ease-out, background-color .18s ease-out;
}
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item:hover > a::after{ opacity:1; transform:translateX(0); }
/* last row: Elementor only spaces :not(:last-child), so the final divider hugged the text */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item:last-child{ padding-bottom: 8.5px; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-f2bf6a39 *//* ---- heading arrow: ALWAYS visible (design), shared asset arrow-two-stroke-nav.svg
   (attachment 2665) applied as a mask so it inherits currentColor. 13x11 box;
   stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. Laid out inline (flex + 10px
   gap) so it tracks the title width, never absolutely positioned. translateY(.1em)
   drops it 2.5px below the line-box centre to sit on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-f2bf6a39 .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-f2bf6a39 .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-198ec4d5 *//* ---- D17: standalone column rule, 1px #26282A, 634px tall, 7px right of this column (x=342 from the rail edge), starting 80px below the panel top ---- */
.elementor-99 .elementor-element.elementor-element-198ec4d5::after{
  content:'';
  position:absolute;
  left:calc(100% + 7px);
  top:-4px;
  width:1px;
  height:634px;
  background:#26282A;
  pointer-events:none;
}
/* PF-FIX69 (2026-08-21): the D17 column rule was a hardcoded 701px on a column only 90-114px tall, so it ran 31px PAST the panel's bottom edge and bled onto the page behind. The panel is 750 and the rule starts 80px down (col top 84, offset -4), so 670 lands it exactly on the panel's bottom. */
/* PF-FIX71 (2026-08-21): client - the rule should stop above the panel's bottom edge, not run all the way down. 634 ends it at 714 in the panel, exactly on the featured card's bottom rule in Resources, leaving the last 36px of every panel clear. Same length on all four so the menus match. *//* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-d85684dd *//* ---- list rows: 1px #171819 divider under EVERY item (design) ---- */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item{
  position: relative;
  border-bottom: 1px solid #171819;
  color: #abb5c1;
}
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item:hover{ color: #ffffff; }
/* ---- no bullets: design has no check marks ---- */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-icon{ display:none !important; }
/* ---- Row is a flex line: label left, arrow right-flushed to the column edge.
   The arrow deliberately lives on the <a>, NOT on li::after: Elementor core
   (widget-icon-list.min.css) owns li::after with position:absolute +
   inset-inline-start:0 + inset-inline-end:0 + width:100%. Our old rule set
   right+width but never left, so left:0 survived and the box was
   over-constrained -- CSS drops `right` in LTR -- pinning the glyph to the
   row LEFT edge on top of the label. Using the <a> sidesteps that entirely
   and makes overlap structurally impossible (flex sibling, not overlay). ---- */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item > a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
}
/* ---- hover-only trailing arrow: shared asset arrow-two-stroke-nav.svg (attachment
   2665), applied as a mask so the glyph inherits currentColor instead of baking the
   colour in. 13x11 box; stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. ---- */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item > a::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .18s ease-out, transform .18s ease-out, background-color .18s ease-out;
}
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item:hover > a::after{ opacity:1; transform:translateX(0); }
/* last row: Elementor only spaces :not(:last-child), so the final divider hugged the text */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item:last-child{ padding-bottom: 8.5px; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-6dd8e948 *//* ---- heading arrow: ALWAYS visible (design), shared asset arrow-two-stroke-nav.svg
   (attachment 2665) applied as a mask so it inherits currentColor. 13x11 box;
   stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. Laid out inline (flex + 10px
   gap) so it tracks the title width, never absolutely positioned. translateY(.1em)
   drops it 2.5px below the line-box centre to sit on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-6dd8e948 .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-6dd8e948 .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-4bad71c3 *//* ---- D17: standalone column rule, 1px #26282A, 634px tall, 7px right of this column (x=342 from the rail edge), starting 80px below the panel top ---- */
.elementor-99 .elementor-element.elementor-element-4bad71c3::after{
  content:'';
  position:absolute;
  left:calc(100% + 7px);
  top:-4px;
  width:1px;
  height:634px;
  background:#26282A;
  pointer-events:none;
}
/* PF-FIX69 (2026-08-21): the D17 column rule was a hardcoded 701px on a column only 90-114px tall, so it ran 31px PAST the panel's bottom edge and bled onto the page behind. The panel is 750 and the rule starts 80px down (col top 84, offset -4), so 670 lands it exactly on the panel's bottom. */
/* PF-FIX71 (2026-08-21): client - the rule should stop above the panel's bottom edge, not run all the way down. 634 ends it at 714 in the panel, exactly on the featured card's bottom rule in Resources, leaving the last 36px of every panel clear. Same length on all four so the menus match. *//* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-e56815c7 *//* ---- list rows: 1px #171819 divider under EVERY item (design) ---- */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item{
  position: relative;
  border-bottom: 1px solid #171819;
  color: #abb5c1;
}
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item:hover{ color: #ffffff; }
/* ---- no bullets: design has no check marks ---- */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-icon{ display:none !important; }
/* ---- Row is a flex line: label left, arrow right-flushed to the column edge.
   The arrow deliberately lives on the <a>, NOT on li::after: Elementor core
   (widget-icon-list.min.css) owns li::after with position:absolute +
   inset-inline-start:0 + inset-inline-end:0 + width:100%. Our old rule set
   right+width but never left, so left:0 survived and the box was
   over-constrained -- CSS drops `right` in LTR -- pinning the glyph to the
   row LEFT edge on top of the label. Using the <a> sidesteps that entirely
   and makes overlap structurally impossible (flex sibling, not overlay). ---- */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item > a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
}
/* ---- hover-only trailing arrow: shared asset arrow-two-stroke-nav.svg (attachment
   2665), applied as a mask so the glyph inherits currentColor instead of baking the
   colour in. 13x11 box; stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. ---- */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item > a::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .18s ease-out, transform .18s ease-out, background-color .18s ease-out;
}
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item:hover > a::after{ opacity:1; transform:translateX(0); }
/* last row: Elementor only spaces :not(:last-child), so the final divider hugged the text */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item:last-child{ padding-bottom: 8.5px; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-163adeec *//* ---- heading arrow: ALWAYS visible (design), shared asset arrow-two-stroke-nav.svg
   (attachment 2665) applied as a mask so it inherits currentColor. 13x11 box;
   stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. Laid out inline (flex + 10px
   gap) so it tracks the title width, never absolutely positioned. translateY(.1em)
   drops it 2.5px below the line-box centre to sit on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-163adeec .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-163adeec .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-8ad6f4ae *//* ---- D17: standalone column rule, 1px #26282A, 634px tall, 7px right of this column (x=342 from the rail edge), starting 80px below the panel top ---- */
.elementor-99 .elementor-element.elementor-element-8ad6f4ae::after{
  content:'';
  position:absolute;
  left:calc(100% + 7px);
  top:-4px;
  width:1px;
  height:634px;
  background:#26282A;
  pointer-events:none;
}
/* PF-FIX69 (2026-08-21): the D17 column rule was a hardcoded 701px on a column only 90-114px tall, so it ran 31px PAST the panel's bottom edge and bled onto the page behind. The panel is 750 and the rule starts 80px down (col top 84, offset -4), so 670 lands it exactly on the panel's bottom. */
/* PF-FIX71 (2026-08-21): client - the rule should stop above the panel's bottom edge, not run all the way down. 634 ends it at 714 in the panel, exactly on the featured card's bottom rule in Resources, leaving the last 36px of every panel clear. Same length on all four so the menus match. *//* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-d59decf9 *//* ---- list rows: 1px #171819 divider under EVERY item (design) ---- */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item{
  position: relative;
  border-bottom: 1px solid #171819;
  color: #abb5c1;
}
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item:hover{ color: #ffffff; }
/* ---- no bullets: design has no check marks ---- */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-icon{ display:none !important; }
/* ---- Row is a flex line: label left, arrow right-flushed to the column edge.
   The arrow deliberately lives on the <a>, NOT on li::after: Elementor core
   (widget-icon-list.min.css) owns li::after with position:absolute +
   inset-inline-start:0 + inset-inline-end:0 + width:100%. Our old rule set
   right+width but never left, so left:0 survived and the box was
   over-constrained -- CSS drops `right` in LTR -- pinning the glyph to the
   row LEFT edge on top of the label. Using the <a> sidesteps that entirely
   and makes overlap structurally impossible (flex sibling, not overlay). ---- */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item > a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
}
/* ---- hover-only trailing arrow: shared asset arrow-two-stroke-nav.svg (attachment
   2665), applied as a mask so the glyph inherits currentColor instead of baking the
   colour in. 13x11 box; stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. ---- */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item > a::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .18s ease-out, transform .18s ease-out, background-color .18s ease-out;
}
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item:hover > a::after{ opacity:1; transform:translateX(0); }
/* last row: Elementor only spaces :not(:last-child), so the final divider hugged the text */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item:last-child{ padding-bottom: 8.5px; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-898b7606 *//* ---- heading arrow: ALWAYS visible (design), shared asset arrow-two-stroke-nav.svg
   (attachment 2665) applied as a mask so it inherits currentColor. 13x11 box;
   stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. Laid out inline (flex + 10px
   gap) so it tracks the title width, never absolutely positioned. translateY(.1em)
   drops it 2.5px below the line-box centre to sit on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-898b7606 .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-898b7606 .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-b34bd1ea *//* ---- D17: standalone column rule, 1px #26282A, 634px tall, 7px right of this column (x=342 from the rail edge), starting 80px below the panel top ---- */
.elementor-99 .elementor-element.elementor-element-b34bd1ea::after{
  content:'';
  position:absolute;
  left:calc(100% + 7px);
  top:-4px;
  width:1px;
  height:634px;
  background:#26282A;
  pointer-events:none;
}
/* PF-FIX69 (2026-08-21): the D17 column rule was a hardcoded 701px on a column only 90-114px tall, so it ran 31px PAST the panel's bottom edge and bled onto the page behind. The panel is 750 and the rule starts 80px down (col top 84, offset -4), so 670 lands it exactly on the panel's bottom. */
/* PF-FIX71 (2026-08-21): client - the rule should stop above the panel's bottom edge, not run all the way down. 634 ends it at 714 in the panel, exactly on the featured card's bottom rule in Resources, leaving the last 36px of every panel clear. Same length on all four so the menus match. *//* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-29a24740 *//* ---- list rows: 1px #171819 divider under EVERY item (design) ---- */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item{
  position: relative;
  border-bottom: 1px solid #171819;
  color: #abb5c1;
}
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item:hover{ color: #ffffff; }
/* ---- no bullets: design has no check marks ---- */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-icon{ display:none !important; }
/* ---- Row is a flex line: label left, arrow right-flushed to the column edge.
   The arrow deliberately lives on the <a>, NOT on li::after: Elementor core
   (widget-icon-list.min.css) owns li::after with position:absolute +
   inset-inline-start:0 + inset-inline-end:0 + width:100%. Our old rule set
   right+width but never left, so left:0 survived and the box was
   over-constrained -- CSS drops `right` in LTR -- pinning the glyph to the
   row LEFT edge on top of the label. Using the <a> sidesteps that entirely
   and makes overlap structurally impossible (flex sibling, not overlay). ---- */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item > a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
}
/* ---- hover-only trailing arrow: shared asset arrow-two-stroke-nav.svg (attachment
   2665), applied as a mask so the glyph inherits currentColor instead of baking the
   colour in. 13x11 box; stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. ---- */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item > a::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .18s ease-out, transform .18s ease-out, background-color .18s ease-out;
}
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item:hover > a::after{ opacity:1; transform:translateX(0); }
/* last row: Elementor only spaces :not(:last-child), so the final divider hugged the text */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item:last-child{ padding-bottom: 8.5px; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-f2bf6a39 *//* ---- heading arrow: ALWAYS visible (design), shared asset arrow-two-stroke-nav.svg
   (attachment 2665) applied as a mask so it inherits currentColor. 13x11 box;
   stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. Laid out inline (flex + 10px
   gap) so it tracks the title width, never absolutely positioned. translateY(.1em)
   drops it 2.5px below the line-box centre to sit on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-f2bf6a39 .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-f2bf6a39 .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-198ec4d5 *//* ---- D17: standalone column rule, 1px #26282A, 634px tall, 7px right of this column (x=342 from the rail edge), starting 80px below the panel top ---- */
.elementor-99 .elementor-element.elementor-element-198ec4d5::after{
  content:'';
  position:absolute;
  left:calc(100% + 7px);
  top:-4px;
  width:1px;
  height:634px;
  background:#26282A;
  pointer-events:none;
}
/* PF-FIX69 (2026-08-21): the D17 column rule was a hardcoded 701px on a column only 90-114px tall, so it ran 31px PAST the panel's bottom edge and bled onto the page behind. The panel is 750 and the rule starts 80px down (col top 84, offset -4), so 670 lands it exactly on the panel's bottom. */
/* PF-FIX71 (2026-08-21): client - the rule should stop above the panel's bottom edge, not run all the way down. 634 ends it at 714 in the panel, exactly on the featured card's bottom rule in Resources, leaving the last 36px of every panel clear. Same length on all four so the menus match. *//* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-d85684dd *//* ---- list rows: 1px #171819 divider under EVERY item (design) ---- */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item{
  position: relative;
  border-bottom: 1px solid #171819;
  color: #abb5c1;
}
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item:hover{ color: #ffffff; }
/* ---- no bullets: design has no check marks ---- */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-icon{ display:none !important; }
/* ---- Row is a flex line: label left, arrow right-flushed to the column edge.
   The arrow deliberately lives on the <a>, NOT on li::after: Elementor core
   (widget-icon-list.min.css) owns li::after with position:absolute +
   inset-inline-start:0 + inset-inline-end:0 + width:100%. Our old rule set
   right+width but never left, so left:0 survived and the box was
   over-constrained -- CSS drops `right` in LTR -- pinning the glyph to the
   row LEFT edge on top of the label. Using the <a> sidesteps that entirely
   and makes overlap structurally impossible (flex sibling, not overlay). ---- */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item > a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
}
/* ---- hover-only trailing arrow: shared asset arrow-two-stroke-nav.svg (attachment
   2665), applied as a mask so the glyph inherits currentColor instead of baking the
   colour in. 13x11 box; stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. ---- */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item > a::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .18s ease-out, transform .18s ease-out, background-color .18s ease-out;
}
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item:hover > a::after{ opacity:1; transform:translateX(0); }
/* last row: Elementor only spaces :not(:last-child), so the final divider hugged the text */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item:last-child{ padding-bottom: 8.5px; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-6dd8e948 *//* ---- heading arrow: ALWAYS visible (design), shared asset arrow-two-stroke-nav.svg
   (attachment 2665) applied as a mask so it inherits currentColor. 13x11 box;
   stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. Laid out inline (flex + 10px
   gap) so it tracks the title width, never absolutely positioned. translateY(.1em)
   drops it 2.5px below the line-box centre to sit on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-6dd8e948 .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-6dd8e948 .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-4bad71c3 *//* ---- D17: standalone column rule, 1px #26282A, 634px tall, 7px right of this column (x=342 from the rail edge), starting 80px below the panel top ---- */
.elementor-99 .elementor-element.elementor-element-4bad71c3::after{
  content:'';
  position:absolute;
  left:calc(100% + 7px);
  top:-4px;
  width:1px;
  height:634px;
  background:#26282A;
  pointer-events:none;
}
/* PF-FIX69 (2026-08-21): the D17 column rule was a hardcoded 701px on a column only 90-114px tall, so it ran 31px PAST the panel's bottom edge and bled onto the page behind. The panel is 750 and the rule starts 80px down (col top 84, offset -4), so 670 lands it exactly on the panel's bottom. */
/* PF-FIX71 (2026-08-21): client - the rule should stop above the panel's bottom edge, not run all the way down. 634 ends it at 714 in the panel, exactly on the featured card's bottom rule in Resources, leaving the last 36px of every panel clear. Same length on all four so the menus match. *//* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-e56815c7 *//* ---- list rows: 1px #171819 divider under EVERY item (design) ---- */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item{
  position: relative;
  border-bottom: 1px solid #171819;
  color: #abb5c1;
}
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item:hover{ color: #ffffff; }
/* ---- no bullets: design has no check marks ---- */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-icon{ display:none !important; }
/* ---- Row is a flex line: label left, arrow right-flushed to the column edge.
   The arrow deliberately lives on the <a>, NOT on li::after: Elementor core
   (widget-icon-list.min.css) owns li::after with position:absolute +
   inset-inline-start:0 + inset-inline-end:0 + width:100%. Our old rule set
   right+width but never left, so left:0 survived and the box was
   over-constrained -- CSS drops `right` in LTR -- pinning the glyph to the
   row LEFT edge on top of the label. Using the <a> sidesteps that entirely
   and makes overlap structurally impossible (flex sibling, not overlay). ---- */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item > a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
}
/* ---- hover-only trailing arrow: shared asset arrow-two-stroke-nav.svg (attachment
   2665), applied as a mask so the glyph inherits currentColor instead of baking the
   colour in. 13x11 box; stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. ---- */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item > a::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .18s ease-out, transform .18s ease-out, background-color .18s ease-out;
}
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item:hover > a::after{ opacity:1; transform:translateX(0); }
/* last row: Elementor only spaces :not(:last-child), so the final divider hugged the text */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item:last-child{ padding-bottom: 8.5px; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-163adeec *//* ---- heading arrow: ALWAYS visible (design), shared asset arrow-two-stroke-nav.svg
   (attachment 2665) applied as a mask so it inherits currentColor. 13x11 box;
   stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. Laid out inline (flex + 10px
   gap) so it tracks the title width, never absolutely positioned. translateY(.1em)
   drops it 2.5px below the line-box centre to sit on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-163adeec .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-163adeec .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-8ad6f4ae *//* ---- D17: standalone column rule, 1px #26282A, 634px tall, 7px right of this column (x=342 from the rail edge), starting 80px below the panel top ---- */
.elementor-99 .elementor-element.elementor-element-8ad6f4ae::after{
  content:'';
  position:absolute;
  left:calc(100% + 7px);
  top:-4px;
  width:1px;
  height:634px;
  background:#26282A;
  pointer-events:none;
}
/* PF-FIX69 (2026-08-21): the D17 column rule was a hardcoded 701px on a column only 90-114px tall, so it ran 31px PAST the panel's bottom edge and bled onto the page behind. The panel is 750 and the rule starts 80px down (col top 84, offset -4), so 670 lands it exactly on the panel's bottom. */
/* PF-FIX71 (2026-08-21): client - the rule should stop above the panel's bottom edge, not run all the way down. 634 ends it at 714 in the panel, exactly on the featured card's bottom rule in Resources, leaving the last 36px of every panel clear. Same length on all four so the menus match. *//* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-d59decf9 *//* ---- list rows: 1px #171819 divider under EVERY item (design) ---- */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item{
  position: relative;
  border-bottom: 1px solid #171819;
  color: #abb5c1;
}
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item:hover{ color: #ffffff; }
/* ---- no bullets: design has no check marks ---- */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-icon{ display:none !important; }
/* ---- Row is a flex line: label left, arrow right-flushed to the column edge.
   The arrow deliberately lives on the <a>, NOT on li::after: Elementor core
   (widget-icon-list.min.css) owns li::after with position:absolute +
   inset-inline-start:0 + inset-inline-end:0 + width:100%. Our old rule set
   right+width but never left, so left:0 survived and the box was
   over-constrained -- CSS drops `right` in LTR -- pinning the glyph to the
   row LEFT edge on top of the label. Using the <a> sidesteps that entirely
   and makes overlap structurally impossible (flex sibling, not overlay). ---- */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item > a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
}
/* ---- hover-only trailing arrow: shared asset arrow-two-stroke-nav.svg (attachment
   2665), applied as a mask so the glyph inherits currentColor instead of baking the
   colour in. 13x11 box; stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. ---- */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item > a::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .18s ease-out, transform .18s ease-out, background-color .18s ease-out;
}
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item:hover > a::after{ opacity:1; transform:translateX(0); }
/* last row: Elementor only spaces :not(:last-child), so the final divider hugged the text */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item:last-child{ padding-bottom: 8.5px; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-898b7606 *//* ---- heading arrow: ALWAYS visible (design), shared asset arrow-two-stroke-nav.svg
   (attachment 2665) applied as a mask so it inherits currentColor. 13x11 box;
   stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. Laid out inline (flex + 10px
   gap) so it tracks the title width, never absolutely positioned. translateY(.1em)
   drops it 2.5px below the line-box centre to sit on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-898b7606 .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-898b7606 .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-b34bd1ea *//* ---- D17: standalone column rule, 1px #26282A, 634px tall, 7px right of this column (x=342 from the rail edge), starting 80px below the panel top ---- */
.elementor-99 .elementor-element.elementor-element-b34bd1ea::after{
  content:'';
  position:absolute;
  left:calc(100% + 7px);
  top:-4px;
  width:1px;
  height:634px;
  background:#26282A;
  pointer-events:none;
}
/* PF-FIX69 (2026-08-21): the D17 column rule was a hardcoded 701px on a column only 90-114px tall, so it ran 31px PAST the panel's bottom edge and bled onto the page behind. The panel is 750 and the rule starts 80px down (col top 84, offset -4), so 670 lands it exactly on the panel's bottom. */
/* PF-FIX71 (2026-08-21): client - the rule should stop above the panel's bottom edge, not run all the way down. 634 ends it at 714 in the panel, exactly on the featured card's bottom rule in Resources, leaving the last 36px of every panel clear. Same length on all four so the menus match. *//* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-29a24740 *//* ---- list rows: 1px #171819 divider under EVERY item (design) ---- */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item{
  position: relative;
  border-bottom: 1px solid #171819;
  color: #abb5c1;
}
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item:hover{ color: #ffffff; }
/* ---- no bullets: design has no check marks ---- */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-icon{ display:none !important; }
/* ---- Row is a flex line: label left, arrow right-flushed to the column edge.
   The arrow deliberately lives on the <a>, NOT on li::after: Elementor core
   (widget-icon-list.min.css) owns li::after with position:absolute +
   inset-inline-start:0 + inset-inline-end:0 + width:100%. Our old rule set
   right+width but never left, so left:0 survived and the box was
   over-constrained -- CSS drops `right` in LTR -- pinning the glyph to the
   row LEFT edge on top of the label. Using the <a> sidesteps that entirely
   and makes overlap structurally impossible (flex sibling, not overlay). ---- */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item > a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
}
/* ---- hover-only trailing arrow: shared asset arrow-two-stroke-nav.svg (attachment
   2665), applied as a mask so the glyph inherits currentColor instead of baking the
   colour in. 13x11 box; stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. ---- */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item > a::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .18s ease-out, transform .18s ease-out, background-color .18s ease-out;
}
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item:hover > a::after{ opacity:1; transform:translateX(0); }
/* last row: Elementor only spaces :not(:last-child), so the final divider hugged the text */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item:last-child{ padding-bottom: 8.5px; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-f2bf6a39 *//* ---- heading arrow: ALWAYS visible (design), shared asset arrow-two-stroke-nav.svg
   (attachment 2665) applied as a mask so it inherits currentColor. 13x11 box;
   stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. Laid out inline (flex + 10px
   gap) so it tracks the title width, never absolutely positioned. translateY(.1em)
   drops it 2.5px below the line-box centre to sit on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-f2bf6a39 .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-f2bf6a39 .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-198ec4d5 *//* ---- D17: standalone column rule, 1px #26282A, 634px tall, 7px right of this column (x=342 from the rail edge), starting 80px below the panel top ---- */
.elementor-99 .elementor-element.elementor-element-198ec4d5::after{
  content:'';
  position:absolute;
  left:calc(100% + 7px);
  top:-4px;
  width:1px;
  height:634px;
  background:#26282A;
  pointer-events:none;
}
/* PF-FIX69 (2026-08-21): the D17 column rule was a hardcoded 701px on a column only 90-114px tall, so it ran 31px PAST the panel's bottom edge and bled onto the page behind. The panel is 750 and the rule starts 80px down (col top 84, offset -4), so 670 lands it exactly on the panel's bottom. */
/* PF-FIX71 (2026-08-21): client - the rule should stop above the panel's bottom edge, not run all the way down. 634 ends it at 714 in the panel, exactly on the featured card's bottom rule in Resources, leaving the last 36px of every panel clear. Same length on all four so the menus match. *//* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-d85684dd *//* ---- list rows: 1px #171819 divider under EVERY item (design) ---- */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item{
  position: relative;
  border-bottom: 1px solid #171819;
  color: #abb5c1;
}
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item:hover{ color: #ffffff; }
/* ---- no bullets: design has no check marks ---- */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-icon{ display:none !important; }
/* ---- Row is a flex line: label left, arrow right-flushed to the column edge.
   The arrow deliberately lives on the <a>, NOT on li::after: Elementor core
   (widget-icon-list.min.css) owns li::after with position:absolute +
   inset-inline-start:0 + inset-inline-end:0 + width:100%. Our old rule set
   right+width but never left, so left:0 survived and the box was
   over-constrained -- CSS drops `right` in LTR -- pinning the glyph to the
   row LEFT edge on top of the label. Using the <a> sidesteps that entirely
   and makes overlap structurally impossible (flex sibling, not overlay). ---- */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item > a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
}
/* ---- hover-only trailing arrow: shared asset arrow-two-stroke-nav.svg (attachment
   2665), applied as a mask so the glyph inherits currentColor instead of baking the
   colour in. 13x11 box; stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. ---- */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item > a::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .18s ease-out, transform .18s ease-out, background-color .18s ease-out;
}
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item:hover > a::after{ opacity:1; transform:translateX(0); }
/* last row: Elementor only spaces :not(:last-child), so the final divider hugged the text */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item:last-child{ padding-bottom: 8.5px; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-6dd8e948 *//* ---- heading arrow: ALWAYS visible (design), shared asset arrow-two-stroke-nav.svg
   (attachment 2665) applied as a mask so it inherits currentColor. 13x11 box;
   stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. Laid out inline (flex + 10px
   gap) so it tracks the title width, never absolutely positioned. translateY(.1em)
   drops it 2.5px below the line-box centre to sit on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-6dd8e948 .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-6dd8e948 .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-4bad71c3 *//* ---- D17: standalone column rule, 1px #26282A, 634px tall, 7px right of this column (x=342 from the rail edge), starting 80px below the panel top ---- */
.elementor-99 .elementor-element.elementor-element-4bad71c3::after{
  content:'';
  position:absolute;
  left:calc(100% + 7px);
  top:-4px;
  width:1px;
  height:634px;
  background:#26282A;
  pointer-events:none;
}
/* PF-FIX69 (2026-08-21): the D17 column rule was a hardcoded 701px on a column only 90-114px tall, so it ran 31px PAST the panel's bottom edge and bled onto the page behind. The panel is 750 and the rule starts 80px down (col top 84, offset -4), so 670 lands it exactly on the panel's bottom. */
/* PF-FIX71 (2026-08-21): client - the rule should stop above the panel's bottom edge, not run all the way down. 634 ends it at 714 in the panel, exactly on the featured card's bottom rule in Resources, leaving the last 36px of every panel clear. Same length on all four so the menus match. *//* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-e56815c7 *//* ---- list rows: 1px #171819 divider under EVERY item (design) ---- */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item{
  position: relative;
  border-bottom: 1px solid #171819;
  color: #abb5c1;
}
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item:hover{ color: #ffffff; }
/* ---- no bullets: design has no check marks ---- */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-icon{ display:none !important; }
/* ---- Row is a flex line: label left, arrow right-flushed to the column edge.
   The arrow deliberately lives on the <a>, NOT on li::after: Elementor core
   (widget-icon-list.min.css) owns li::after with position:absolute +
   inset-inline-start:0 + inset-inline-end:0 + width:100%. Our old rule set
   right+width but never left, so left:0 survived and the box was
   over-constrained -- CSS drops `right` in LTR -- pinning the glyph to the
   row LEFT edge on top of the label. Using the <a> sidesteps that entirely
   and makes overlap structurally impossible (flex sibling, not overlay). ---- */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item > a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
}
/* ---- hover-only trailing arrow: shared asset arrow-two-stroke-nav.svg (attachment
   2665), applied as a mask so the glyph inherits currentColor instead of baking the
   colour in. 13x11 box; stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. ---- */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item > a::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .18s ease-out, transform .18s ease-out, background-color .18s ease-out;
}
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item:hover > a::after{ opacity:1; transform:translateX(0); }
/* last row: Elementor only spaces :not(:last-child), so the final divider hugged the text */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item:last-child{ padding-bottom: 8.5px; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-163adeec *//* ---- heading arrow: ALWAYS visible (design), shared asset arrow-two-stroke-nav.svg
   (attachment 2665) applied as a mask so it inherits currentColor. 13x11 box;
   stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. Laid out inline (flex + 10px
   gap) so it tracks the title width, never absolutely positioned. translateY(.1em)
   drops it 2.5px below the line-box centre to sit on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-163adeec .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-163adeec .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-8ad6f4ae *//* ---- D17: standalone column rule, 1px #26282A, 634px tall, 7px right of this column (x=342 from the rail edge), starting 80px below the panel top ---- */
.elementor-99 .elementor-element.elementor-element-8ad6f4ae::after{
  content:'';
  position:absolute;
  left:calc(100% + 7px);
  top:-4px;
  width:1px;
  height:634px;
  background:#26282A;
  pointer-events:none;
}
/* PF-FIX69 (2026-08-21): the D17 column rule was a hardcoded 701px on a column only 90-114px tall, so it ran 31px PAST the panel's bottom edge and bled onto the page behind. The panel is 750 and the rule starts 80px down (col top 84, offset -4), so 670 lands it exactly on the panel's bottom. */
/* PF-FIX71 (2026-08-21): client - the rule should stop above the panel's bottom edge, not run all the way down. 634 ends it at 714 in the panel, exactly on the featured card's bottom rule in Resources, leaving the last 36px of every panel clear. Same length on all four so the menus match. *//* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-d59decf9 *//* ---- list rows: 1px #171819 divider under EVERY item (design) ---- */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item{
  position: relative;
  border-bottom: 1px solid #171819;
  color: #abb5c1;
}
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item:hover{ color: #ffffff; }
/* ---- no bullets: design has no check marks ---- */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-icon{ display:none !important; }
/* ---- Row is a flex line: label left, arrow right-flushed to the column edge.
   The arrow deliberately lives on the <a>, NOT on li::after: Elementor core
   (widget-icon-list.min.css) owns li::after with position:absolute +
   inset-inline-start:0 + inset-inline-end:0 + width:100%. Our old rule set
   right+width but never left, so left:0 survived and the box was
   over-constrained -- CSS drops `right` in LTR -- pinning the glyph to the
   row LEFT edge on top of the label. Using the <a> sidesteps that entirely
   and makes overlap structurally impossible (flex sibling, not overlay). ---- */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item > a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
}
/* ---- hover-only trailing arrow: shared asset arrow-two-stroke-nav.svg (attachment
   2665), applied as a mask so the glyph inherits currentColor instead of baking the
   colour in. 13x11 box; stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. ---- */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item > a::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .18s ease-out, transform .18s ease-out, background-color .18s ease-out;
}
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item:hover > a::after{ opacity:1; transform:translateX(0); }
/* last row: Elementor only spaces :not(:last-child), so the final divider hugged the text */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item:last-child{ padding-bottom: 8.5px; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-898b7606 *//* ---- heading arrow: ALWAYS visible (design), shared asset arrow-two-stroke-nav.svg
   (attachment 2665) applied as a mask so it inherits currentColor. 13x11 box;
   stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. Laid out inline (flex + 10px
   gap) so it tracks the title width, never absolutely positioned. translateY(.1em)
   drops it 2.5px below the line-box centre to sit on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-898b7606 .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-898b7606 .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-b34bd1ea *//* ---- D17: standalone column rule, 1px #26282A, 634px tall, 7px right of this column (x=342 from the rail edge), starting 80px below the panel top ---- */
.elementor-99 .elementor-element.elementor-element-b34bd1ea::after{
  content:'';
  position:absolute;
  left:calc(100% + 7px);
  top:-4px;
  width:1px;
  height:634px;
  background:#26282A;
  pointer-events:none;
}
/* PF-FIX69 (2026-08-21): the D17 column rule was a hardcoded 701px on a column only 90-114px tall, so it ran 31px PAST the panel's bottom edge and bled onto the page behind. The panel is 750 and the rule starts 80px down (col top 84, offset -4), so 670 lands it exactly on the panel's bottom. */
/* PF-FIX71 (2026-08-21): client - the rule should stop above the panel's bottom edge, not run all the way down. 634 ends it at 714 in the panel, exactly on the featured card's bottom rule in Resources, leaving the last 36px of every panel clear. Same length on all four so the menus match. *//* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-29a24740 *//* ---- list rows: 1px #171819 divider under EVERY item (design) ---- */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item{
  position: relative;
  border-bottom: 1px solid #171819;
  color: #abb5c1;
}
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item:hover{ color: #ffffff; }
/* ---- no bullets: design has no check marks ---- */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-icon{ display:none !important; }
/* ---- Row is a flex line: label left, arrow right-flushed to the column edge.
   The arrow deliberately lives on the <a>, NOT on li::after: Elementor core
   (widget-icon-list.min.css) owns li::after with position:absolute +
   inset-inline-start:0 + inset-inline-end:0 + width:100%. Our old rule set
   right+width but never left, so left:0 survived and the box was
   over-constrained -- CSS drops `right` in LTR -- pinning the glyph to the
   row LEFT edge on top of the label. Using the <a> sidesteps that entirely
   and makes overlap structurally impossible (flex sibling, not overlay). ---- */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item > a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
}
/* ---- hover-only trailing arrow: shared asset arrow-two-stroke-nav.svg (attachment
   2665), applied as a mask so the glyph inherits currentColor instead of baking the
   colour in. 13x11 box; stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. ---- */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item > a::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .18s ease-out, transform .18s ease-out, background-color .18s ease-out;
}
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item:hover > a::after{ opacity:1; transform:translateX(0); }
/* last row: Elementor only spaces :not(:last-child), so the final divider hugged the text */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item:last-child{ padding-bottom: 8.5px; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-f2bf6a39 *//* ---- heading arrow: ALWAYS visible (design), shared asset arrow-two-stroke-nav.svg
   (attachment 2665) applied as a mask so it inherits currentColor. 13x11 box;
   stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. Laid out inline (flex + 10px
   gap) so it tracks the title width, never absolutely positioned. translateY(.1em)
   drops it 2.5px below the line-box centre to sit on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-f2bf6a39 .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-f2bf6a39 .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-198ec4d5 *//* ---- D17: standalone column rule, 1px #26282A, 634px tall, 7px right of this column (x=342 from the rail edge), starting 80px below the panel top ---- */
.elementor-99 .elementor-element.elementor-element-198ec4d5::after{
  content:'';
  position:absolute;
  left:calc(100% + 7px);
  top:-4px;
  width:1px;
  height:634px;
  background:#26282A;
  pointer-events:none;
}
/* PF-FIX69 (2026-08-21): the D17 column rule was a hardcoded 701px on a column only 90-114px tall, so it ran 31px PAST the panel's bottom edge and bled onto the page behind. The panel is 750 and the rule starts 80px down (col top 84, offset -4), so 670 lands it exactly on the panel's bottom. */
/* PF-FIX71 (2026-08-21): client - the rule should stop above the panel's bottom edge, not run all the way down. 634 ends it at 714 in the panel, exactly on the featured card's bottom rule in Resources, leaving the last 36px of every panel clear. Same length on all four so the menus match. *//* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-d85684dd *//* ---- list rows: 1px #171819 divider under EVERY item (design) ---- */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item{
  position: relative;
  border-bottom: 1px solid #171819;
  color: #abb5c1;
}
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item:hover{ color: #ffffff; }
/* ---- no bullets: design has no check marks ---- */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-icon{ display:none !important; }
/* ---- Row is a flex line: label left, arrow right-flushed to the column edge.
   The arrow deliberately lives on the <a>, NOT on li::after: Elementor core
   (widget-icon-list.min.css) owns li::after with position:absolute +
   inset-inline-start:0 + inset-inline-end:0 + width:100%. Our old rule set
   right+width but never left, so left:0 survived and the box was
   over-constrained -- CSS drops `right` in LTR -- pinning the glyph to the
   row LEFT edge on top of the label. Using the <a> sidesteps that entirely
   and makes overlap structurally impossible (flex sibling, not overlay). ---- */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item > a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
}
/* ---- hover-only trailing arrow: shared asset arrow-two-stroke-nav.svg (attachment
   2665), applied as a mask so the glyph inherits currentColor instead of baking the
   colour in. 13x11 box; stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. ---- */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item > a::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .18s ease-out, transform .18s ease-out, background-color .18s ease-out;
}
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item:hover > a::after{ opacity:1; transform:translateX(0); }
/* last row: Elementor only spaces :not(:last-child), so the final divider hugged the text */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item:last-child{ padding-bottom: 8.5px; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-6dd8e948 *//* ---- heading arrow: ALWAYS visible (design), shared asset arrow-two-stroke-nav.svg
   (attachment 2665) applied as a mask so it inherits currentColor. 13x11 box;
   stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. Laid out inline (flex + 10px
   gap) so it tracks the title width, never absolutely positioned. translateY(.1em)
   drops it 2.5px below the line-box centre to sit on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-6dd8e948 .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-6dd8e948 .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-4bad71c3 *//* ---- D17: standalone column rule, 1px #26282A, 634px tall, 7px right of this column (x=342 from the rail edge), starting 80px below the panel top ---- */
.elementor-99 .elementor-element.elementor-element-4bad71c3::after{
  content:'';
  position:absolute;
  left:calc(100% + 7px);
  top:-4px;
  width:1px;
  height:634px;
  background:#26282A;
  pointer-events:none;
}
/* PF-FIX69 (2026-08-21): the D17 column rule was a hardcoded 701px on a column only 90-114px tall, so it ran 31px PAST the panel's bottom edge and bled onto the page behind. The panel is 750 and the rule starts 80px down (col top 84, offset -4), so 670 lands it exactly on the panel's bottom. */
/* PF-FIX71 (2026-08-21): client - the rule should stop above the panel's bottom edge, not run all the way down. 634 ends it at 714 in the panel, exactly on the featured card's bottom rule in Resources, leaving the last 36px of every panel clear. Same length on all four so the menus match. *//* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-e56815c7 *//* ---- list rows: 1px #171819 divider under EVERY item (design) ---- */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item{
  position: relative;
  border-bottom: 1px solid #171819;
  color: #abb5c1;
}
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item:hover{ color: #ffffff; }
/* ---- no bullets: design has no check marks ---- */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-icon{ display:none !important; }
/* ---- Row is a flex line: label left, arrow right-flushed to the column edge.
   The arrow deliberately lives on the <a>, NOT on li::after: Elementor core
   (widget-icon-list.min.css) owns li::after with position:absolute +
   inset-inline-start:0 + inset-inline-end:0 + width:100%. Our old rule set
   right+width but never left, so left:0 survived and the box was
   over-constrained -- CSS drops `right` in LTR -- pinning the glyph to the
   row LEFT edge on top of the label. Using the <a> sidesteps that entirely
   and makes overlap structurally impossible (flex sibling, not overlay). ---- */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item > a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
}
/* ---- hover-only trailing arrow: shared asset arrow-two-stroke-nav.svg (attachment
   2665), applied as a mask so the glyph inherits currentColor instead of baking the
   colour in. 13x11 box; stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. ---- */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item > a::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .18s ease-out, transform .18s ease-out, background-color .18s ease-out;
}
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item:hover > a::after{ opacity:1; transform:translateX(0); }
/* last row: Elementor only spaces :not(:last-child), so the final divider hugged the text */
.elementor-99 .elementor-element.elementor-element-e56815c7 .elementor-icon-list-item:last-child{ padding-bottom: 8.5px; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-163adeec *//* ---- heading arrow: ALWAYS visible (design), shared asset arrow-two-stroke-nav.svg
   (attachment 2665) applied as a mask so it inherits currentColor. 13x11 box;
   stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. Laid out inline (flex + 10px
   gap) so it tracks the title width, never absolutely positioned. translateY(.1em)
   drops it 2.5px below the line-box centre to sit on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-163adeec .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-163adeec .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-8ad6f4ae *//* ---- D17: standalone column rule, 1px #26282A, 634px tall, 7px right of this column (x=342 from the rail edge), starting 80px below the panel top ---- */
.elementor-99 .elementor-element.elementor-element-8ad6f4ae::after{
  content:'';
  position:absolute;
  left:calc(100% + 7px);
  top:-4px;
  width:1px;
  height:634px;
  background:#26282A;
  pointer-events:none;
}
/* PF-FIX69 (2026-08-21): the D17 column rule was a hardcoded 701px on a column only 90-114px tall, so it ran 31px PAST the panel's bottom edge and bled onto the page behind. The panel is 750 and the rule starts 80px down (col top 84, offset -4), so 670 lands it exactly on the panel's bottom. */
/* PF-FIX71 (2026-08-21): client - the rule should stop above the panel's bottom edge, not run all the way down. 634 ends it at 714 in the panel, exactly on the featured card's bottom rule in Resources, leaving the last 36px of every panel clear. Same length on all four so the menus match. *//* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-d59decf9 *//* ---- list rows: 1px #171819 divider under EVERY item (design) ---- */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item{
  position: relative;
  border-bottom: 1px solid #171819;
  color: #abb5c1;
}
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item:hover{ color: #ffffff; }
/* ---- no bullets: design has no check marks ---- */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-icon{ display:none !important; }
/* ---- Row is a flex line: label left, arrow right-flushed to the column edge.
   The arrow deliberately lives on the <a>, NOT on li::after: Elementor core
   (widget-icon-list.min.css) owns li::after with position:absolute +
   inset-inline-start:0 + inset-inline-end:0 + width:100%. Our old rule set
   right+width but never left, so left:0 survived and the box was
   over-constrained -- CSS drops `right` in LTR -- pinning the glyph to the
   row LEFT edge on top of the label. Using the <a> sidesteps that entirely
   and makes overlap structurally impossible (flex sibling, not overlay). ---- */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item > a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
}
/* ---- hover-only trailing arrow: shared asset arrow-two-stroke-nav.svg (attachment
   2665), applied as a mask so the glyph inherits currentColor instead of baking the
   colour in. 13x11 box; stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. ---- */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item > a::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .18s ease-out, transform .18s ease-out, background-color .18s ease-out;
}
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item:hover > a::after{ opacity:1; transform:translateX(0); }
/* last row: Elementor only spaces :not(:last-child), so the final divider hugged the text */
.elementor-99 .elementor-element.elementor-element-d59decf9 .elementor-icon-list-item:last-child{ padding-bottom: 8.5px; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-898b7606 *//* ---- heading arrow: ALWAYS visible (design), shared asset arrow-two-stroke-nav.svg
   (attachment 2665) applied as a mask so it inherits currentColor. 13x11 box;
   stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. Laid out inline (flex + 10px
   gap) so it tracks the title width, never absolutely positioned. translateY(.1em)
   drops it 2.5px below the line-box centre to sit on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-898b7606 .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-898b7606 .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-b34bd1ea *//* ---- D17: standalone column rule, 1px #26282A, 634px tall, 7px right of this column (x=342 from the rail edge), starting 80px below the panel top ---- */
.elementor-99 .elementor-element.elementor-element-b34bd1ea::after{
  content:'';
  position:absolute;
  left:calc(100% + 7px);
  top:-4px;
  width:1px;
  height:634px;
  background:#26282A;
  pointer-events:none;
}
/* PF-FIX69 (2026-08-21): the D17 column rule was a hardcoded 701px on a column only 90-114px tall, so it ran 31px PAST the panel's bottom edge and bled onto the page behind. The panel is 750 and the rule starts 80px down (col top 84, offset -4), so 670 lands it exactly on the panel's bottom. */
/* PF-FIX71 (2026-08-21): client - the rule should stop above the panel's bottom edge, not run all the way down. 634 ends it at 714 in the panel, exactly on the featured card's bottom rule in Resources, leaving the last 36px of every panel clear. Same length on all four so the menus match. *//* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-29a24740 *//* ---- list rows: 1px #171819 divider under EVERY item (design) ---- */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item{
  position: relative;
  border-bottom: 1px solid #171819;
  color: #abb5c1;
}
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item:hover{ color: #ffffff; }
/* ---- no bullets: design has no check marks ---- */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-icon{ display:none !important; }
/* ---- Row is a flex line: label left, arrow right-flushed to the column edge.
   The arrow deliberately lives on the <a>, NOT on li::after: Elementor core
   (widget-icon-list.min.css) owns li::after with position:absolute +
   inset-inline-start:0 + inset-inline-end:0 + width:100%. Our old rule set
   right+width but never left, so left:0 survived and the box was
   over-constrained -- CSS drops `right` in LTR -- pinning the glyph to the
   row LEFT edge on top of the label. Using the <a> sidesteps that entirely
   and makes overlap structurally impossible (flex sibling, not overlay). ---- */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item > a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
}
/* ---- hover-only trailing arrow: shared asset arrow-two-stroke-nav.svg (attachment
   2665), applied as a mask so the glyph inherits currentColor instead of baking the
   colour in. 13x11 box; stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. ---- */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item > a::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .18s ease-out, transform .18s ease-out, background-color .18s ease-out;
}
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item:hover > a::after{ opacity:1; transform:translateX(0); }
/* last row: Elementor only spaces :not(:last-child), so the final divider hugged the text */
.elementor-99 .elementor-element.elementor-element-29a24740 .elementor-icon-list-item:last-child{ padding-bottom: 8.5px; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-f2bf6a39 *//* ---- heading arrow: ALWAYS visible (design), shared asset arrow-two-stroke-nav.svg
   (attachment 2665) applied as a mask so it inherits currentColor. 13x11 box;
   stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. Laid out inline (flex + 10px
   gap) so it tracks the title width, never absolutely positioned. translateY(.1em)
   drops it 2.5px below the line-box centre to sit on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-f2bf6a39 .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-f2bf6a39 .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-198ec4d5 *//* ---- D17: standalone column rule, 1px #26282A, 634px tall, 7px right of this column (x=342 from the rail edge), starting 80px below the panel top ---- */
.elementor-99 .elementor-element.elementor-element-198ec4d5::after{
  content:'';
  position:absolute;
  left:calc(100% + 7px);
  top:-4px;
  width:1px;
  height:634px;
  background:#26282A;
  pointer-events:none;
}
/* PF-FIX69 (2026-08-21): the D17 column rule was a hardcoded 701px on a column only 90-114px tall, so it ran 31px PAST the panel's bottom edge and bled onto the page behind. The panel is 750 and the rule starts 80px down (col top 84, offset -4), so 670 lands it exactly on the panel's bottom. */
/* PF-FIX71 (2026-08-21): client - the rule should stop above the panel's bottom edge, not run all the way down. 634 ends it at 714 in the panel, exactly on the featured card's bottom rule in Resources, leaving the last 36px of every panel clear. Same length on all four so the menus match. *//* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-d85684dd *//* ---- list rows: 1px #171819 divider under EVERY item (design) ---- */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item{
  position: relative;
  border-bottom: 1px solid #171819;
  color: #abb5c1;
}
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item:hover{ color: #ffffff; }
/* ---- no bullets: design has no check marks ---- */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-icon{ display:none !important; }
/* ---- Row is a flex line: label left, arrow right-flushed to the column edge.
   The arrow deliberately lives on the <a>, NOT on li::after: Elementor core
   (widget-icon-list.min.css) owns li::after with position:absolute +
   inset-inline-start:0 + inset-inline-end:0 + width:100%. Our old rule set
   right+width but never left, so left:0 survived and the box was
   over-constrained -- CSS drops `right` in LTR -- pinning the glyph to the
   row LEFT edge on top of the label. Using the <a> sidesteps that entirely
   and makes overlap structurally impossible (flex sibling, not overlay). ---- */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item > a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
}
/* ---- hover-only trailing arrow: shared asset arrow-two-stroke-nav.svg (attachment
   2665), applied as a mask so the glyph inherits currentColor instead of baking the
   colour in. 13x11 box; stroke-width 1.79 in a 16x13 viewBox renders ~1.5px. ---- */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item > a::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .18s ease-out, transform .18s ease-out, background-color .18s ease-out;
}
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item:hover > a::after{ opacity:1; transform:translateX(0); }
/* last row: Elementor only spaces :not(:last-child), so the final divider hugged the text */
.elementor-99 .elementor-element.elementor-element-d85684dd .elementor-icon-list-item:last-child{ padding-bottom: 8.5px; }/* End custom CSS */
/* Start custom CSS for mega-menu, class: .elementor-element-45798e3 */.elementor-99 .elementor-element.elementor-element-45798e3{
  --pf-navpad: 18.55px;   /* half of the 37.1px design pitch */
  --pf-bar-pad: 10.75px;  /* header padding-block: bar = 60px */
  --pf-rule: 3px;         /* accent rule under the bar */
}

/* ---- top-level items ---- */
.elementor-99 .elementor-element.elementor-element-45798e3 .e-n-menu-title-text{
  color:#FFFFFF;
  font-family:'Neue Haas Grotesk Display Pro',sans-serif;
  font-weight:400;
  font-size:15px;
}
/* Top-level nav hover / open label = brand cyan #4ACEFF (design-verified, do not change).
   D25's white hover applies to the DROPDOWN LIST items, not to these labels. */
.elementor-99 .elementor-element.elementor-element-45798e3 .e-n-menu-title:hover .e-n-menu-title-text,
.elementor-99 .elementor-element.elementor-element-45798e3 .e-n-menu-item:has(> .e-n-menu-content.e-active) .e-n-menu-title-text{
  color:#4ACEFF;
}

/* ---- D3: item pitch 37.1px. Padding keeps the hover target; the matching
   negative margin on the row pulls the widget edges back onto the glyphs so the
   header's 52px flex gap measures text-to-text. ---- */
.elementor-99 .elementor-element.elementor-element-45798e3 .e-n-menu-title{
  position: relative;
  padding-inline: var(--pf-navpad);
}
.elementor-99 .elementor-element.elementor-element-45798e3 .e-n-menu-heading{
  margin-inline: calc(var(--pf-navpad) * -1);
}

/* ---- hide dropdown carets (design has none) ---- */
.elementor-99 .elementor-element.elementor-element-45798e3 .e-n-menu-dropdown-icon{ display:none; }

/* ---- dropdown panel ---- */
.elementor-99 .elementor-element.elementor-element-45798e3 .e-n-menu-content{
  background-color:#000000;
  box-shadow:0 18px 40px rgba(0,0,0,.45);
}

/* ---- D13: all four panels are the full remaining viewport ---- */
.elementor-99 .elementor-element.elementor-element-45798e3 .e-n-menu-content > .e-con{
  min-height: 0; /* PF-CRIT2: content-height panels on hover */
}

/* ---- nav condense: LAYOUT only, type stays 15px at every desktop width ---- */
@media (max-width:1440px){
  .elementor-99 .elementor-element.elementor-element-45798e3{ --pf-navpad: 10px; }
}

/* ---- D15: active caret. Elementor never sets aria-expanded on .e-n-menu-title;
   the open item is the one whose .e-n-menu-content carries .e-active. ---- */
.elementor-99 .elementor-element.elementor-element-45798e3 .e-n-menu-item:has(> .e-n-menu-content.e-active) > .e-n-menu-title::after{
  content:'';
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  bottom:calc(var(--pf-bar-pad) * -1);
  width:10px; height:7px; background:#21A9C1; clip-path:polygon(50% 0,0 100%,100% 100%); /* PF-CRIT2: triangle caret */
  z-index:3;
}

/* ---- dropdown: full-bleed, opens below the header bar + accent rule ---- */
.elementor-99 .elementor-element.elementor-element-45798e3{ position: static; }
.elementor-99 .elementor-element.elementor-element-45798e3 .e-n-menu{ position: static; }
.elementor-99 .elementor-element.elementor-element-45798e3 .e-n-menu-content.e-n-menu-content.e-n-menu-content{
  position: absolute;
  top: calc(100% + var(--pf-rule));
  left: 0;
  right: 0;
  width: auto;
  max-width: none;
}
.elementor-99 .elementor-element.elementor-element-45798e3 .e-n-menu-content > .e-con{
  width: 100%;
  max-width: none;
}

/* ---- D14: accent rule, full bleed, 3px, sitting between the bar and the panel.
   Drawn by the panel itself so it appears exactly when a dropdown is open -
   no :has() (Chromium fails to invalidate pseudo-elements through :has here).
   Gated on .e-active: closed panels are height:0 but visible, so an ungated
   ::before would paint under the CLOSED bar (client defect). ---- */
/* PF-CRIT2: D14 open-state rule removed - the bar now draws the gradient rule permanently (see fb05d9c) */

/* ==== PF-FIX68 (2026-08-21): client - all four dropdown panels the same height, 750px. They were content-height: Services 342, Processes 434, Industries 480, Resources 826. min-height grows the three short ones; Resources comes DOWN to 750 by trimming the 276px gap in its right column (a3f9c17) to 200, so nothing is clipped. Desktop only - on phones the panels stack inside the overlay and a 750px floor would leave a huge empty box. ==== */
@media (min-width:1025px){ .elementor-99 .elementor-element.elementor-element-45798e3 .e-n-menu-content.e-active{min-height:750px !important;} }/* End custom CSS */
/* Start custom CSS for button, class: .elementor-element-1e8608b *//* Careers | Menu divider: 1x24 rgba(255,255,255,.15), vertically centred.
   Was a border-left on the widget, which is element-height (28px) by nature. */
.elementor-99 .elementor-element.elementor-element-1e8608b{ position: relative; }
.elementor-99 .elementor-element.elementor-element-1e8608b::before{
  content:""; position:absolute; left:0; top:50%; transform:translateY(-50%);
  width:1px; height:24px; background:rgba(255,255,255,0.15); pointer-events:none;
}

.elementor-99 .elementor-element.elementor-element-1e8608b {
    span.elementor-button-text {
  margin-top: 3px;
}
}

/* ---- mobile: push the trigger to the right edge ---- */
@media (max-width: 1024px){
  .elementor-99 .elementor-element.elementor-element-1e8608b{ margin-left: auto; }
}


/* ---- mobile: trigger sits at the right edge ---- */
@media (max-width: 1024px){
  .elementor-99 .elementor-element.elementor-element-1e8608b{
    margin-left: auto !important;
    width: auto !important;
    flex: 0 0 auto !important;
    text-align: right;
  }
  .elementor-99 .elementor-element.elementor-element-1e8608b .elementor-button{
    padding-right: 0;
  }
}

/* ---- hover: animated underline only (no colour / icon change) ---- */
.elementor-99 .elementor-element.elementor-element-1e8608b .elementor-button .elementor-button-text {
  position: relative;
}
.elementor-99 .elementor-element.elementor-element-1e8608b .elementor-button .elementor-button-text::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -6px;
  width: 100%;
  height: 1.5px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .3s ease;
  pointer-events: none;
}
.elementor-99 .elementor-element.elementor-element-1e8608b .elementor-button:hover .elementor-button-text::after {
  transform: scaleX(1);
}/* End custom CSS */
/* Start custom CSS for button, class: .elementor-element-b98f066 *//* ---- keep label on one line ---- */
.elementor-99 .elementor-element.elementor-element-b98f066 .elementor-button {
  white-space: nowrap;
}

/* ---- split the bar: CTA cluster flushes to the right edge (desktop only) ---- */
@media (min-width:1025px){
  .elementor-99 .elementor-element.elementor-element-b98f066{ margin-left: auto; }
}/* End custom CSS */
/* Start custom CSS for icon-box, class: .elementor-element-aa17e86 *//* PF-HDRCENTER: optical centring against the icon.
   The wrapper already centres the BOXES, but the title's line-box is taller than
   its glyphs, so the text reads low; line-height:1 makes the box hug the text.
   nowrap stops the phone number breaking to two lines around 1200px, which threw
   the first line above the icon. */
.elementor-99 .elementor-element.elementor-element-aa17e86 .elementor-icon-box-wrapper{ display:flex !important; align-items:center !important; }
.elementor-99 .elementor-element.elementor-element-aa17e86 .elementor-icon-box-icon{ display:flex !important; align-items:center !important; justify-content:center; margin-bottom:0 !important; }
.elementor-99 .elementor-element.elementor-element-aa17e86 .elementor-icon-box-content{ display:flex !important; align-items:center !important; }
.elementor-99 .elementor-element.elementor-element-aa17e86 .elementor-icon-box-title{ margin:0 !important; line-height:1 !important; white-space:nowrap; }
.elementor-99 .elementor-element.elementor-element-aa17e86 .elementor-icon-box-description{ margin:0 !important; }/* End custom CSS */
/* Start custom CSS for icon-box, class: .elementor-element-f601093 *//* PF-HDRCENTER: optical centring against the icon.
   The wrapper already centres the BOXES, but the title's line-box is taller than
   its glyphs, so the text reads low; line-height:1 makes the box hug the text.
   nowrap stops the phone number breaking to two lines around 1200px, which threw
   the first line above the icon. */
.elementor-99 .elementor-element.elementor-element-f601093 .elementor-icon-box-wrapper{ display:flex !important; align-items:center !important; }
.elementor-99 .elementor-element.elementor-element-f601093 .elementor-icon-box-icon{ display:flex !important; align-items:center !important; justify-content:center; margin-bottom:0 !important; }
.elementor-99 .elementor-element.elementor-element-f601093 .elementor-icon-box-content{ display:flex !important; align-items:center !important; }
.elementor-99 .elementor-element.elementor-element-f601093 .elementor-icon-box-title{ margin:0 !important; line-height:1 !important; white-space:nowrap; }
.elementor-99 .elementor-element.elementor-element-f601093 .elementor-icon-box-description{ margin:0 !important; }

/* PFLANG-BOX (2026-09-09): clickable language chooser. The menu itself is built by
   the PFLANGV1 script in the header html widget; this only styles and anchors it. */
.elementor-99 .elementor-element.elementor-element-f601093{ position:relative; cursor:pointer; }
.elementor-99 .elementor-element.elementor-element-f601093 .pf-lang-menu{ position:absolute; top:calc(100% + 18px); right:0; background:#000; border:1px solid rgba(255,255,255,.18); min-width:150px; z-index:100000; display:none; }
.elementor-99 .elementor-element.elementor-element-f601093.pf-lang-open .pf-lang-menu{ display:block; }
.elementor-99 .elementor-element.elementor-element-f601093 .pf-lang-menu a{ display:block; padding:11px 16px; color:#fff; font-size:14px; text-decoration:none; }
.elementor-99 .elementor-element.elementor-element-f601093 .pf-lang-menu a:hover{ background:rgba(0,174,239,.18); }
.elementor-99 .elementor-element.elementor-element-f601093 .pf-lang-menu a.pf-lang-active{ color:#00AEEF; }/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-fb05d9c *//* ---- sticky CTA border. PF-FIX72 (2026-08-21): client "make button square line the accurate color" - was rgba(0,174,239,.5), i.e. the accent at half opacity. The sticky class is on the bar from first paint, so this 50% rule always won and the button never showed its own authored #00AEEF. Now solid. ---- */
.elementor-99 .elementor-element.elementor-element-fb05d9c.elementor-sticky--effects .elementor-element-b98f066 .elementor-button {
  border-color: #00AEEF;
}

/* ---- solid black bar ---- */
.elementor-99 .elementor-element.elementor-element-fb05d9c {
  position: relative;
  overflow: visible;   /* dropdown must escape the header */
  background: #000000;
}
.elementor-99 .elementor-element.elementor-element-fb05d9c.elementor-sticky--effects{
  background: #000000;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

/* ---- header condense at the 1440 rail: the 52px design gap (which is tuned for
   the 2560 canvas) does not fit once the rail closes in, and the bar would wrap to
   two lines. Gaps only - type stays 15px. ---- */
@media (max-width:1440px){
  .elementor-99 .elementor-element.elementor-element-fb05d9c{ gap: 28px; }
  .elementor-99 .elementor-element.elementor-element-fb05d9c > .elementor-element-45798e3{ margin-left: 0; }
}

/* PF 2026-08-21: always-on bar rule REMOVED at client request (line was floating over the hero while the bar is transparent). The dropdown divider below covers the open state. */
/* ==== PF-CRIT2-NAVTOP: client "logo shouldnt have a black background when you first get to page... nav becomes full black after scroll". JS (a483ea1) keeps body.pf-nav-top while scrollY<10. Bar goes transparent only at top, with no dropdown open and no Menu overlay. ==== */
/* PF-FIX91 (2026-09-09): client final punch list - black bar at ALL times; the transparent-at-top variant is retired. */
/* PF-OPENRULE: divider shown only while a dropdown is open. PF-FIX63 (2026-08-21): client - solid 2px #00AEEF instead of the 3px gradient. */
.elementor-99 .elementor-element.elementor-element-fb05d9c:has(.e-n-menu-content.e-active)::after{content:'';position:absolute;left:0;right:0;bottom:-2px;height:2px;background:#00AEEF;z-index:4;pointer-events:none;}
/* ==== PF-FIX65 (2026-08-21): the overlay rule used to be pinned to the viewport at top:60px, which only matched the bar at 1440. The bar is 72px under 500, 75px to 1024 and 99px at 1100, so on phones the line cut across the bar 12px above its base. Anchored to the BAR instead, exactly like the dropdown divider, so it sits on the bar's bottom edge at every width. ==== */
body.mm-overlay-open .elementor-99 .elementor-element.elementor-element-fb05d9c::after{content:'';position:absolute;left:0;right:0;bottom:-2px;height:2px;background:#00AEEF;z-index:99991;pointer-events:none;}
/* PF-FIX66 (2026-08-21): the overlay is z-index 99990 and the header wrapper only 999, so with the overlay open the bar's bottom edge (and the PF-FIX65 rule sitting on it) was painted over. Lift the header wrapper above the overlay while it is open - the bar is 72-99px tall depending on width, so this also stops the overlay clipping the bar itself. */
body.mm-overlay-open .elementor-99 .elementor-element.elementor-element-fb05d9c{z-index:99992 !important;}
/* PF-FIX67 (2026-08-21): raising the header WRAPPER did nothing, because the overlay (ce77484, z 99990) is a sibling INSIDE that same wrapper - lifting the wrapper lifts both. The bar itself has to out-rank the overlay, hence the z-index on the bar. */
/* PF-FIX102 (2026-09-09): 1025-1332 the 7-item menu cannot fit one row (needs ~640px, gets 347-516) and wrapped to two, making the bar 99px. Hide it there; the Menu overlay covers navigation, same as <=1024. */
@media (min-width:1025px) and (max-width:1332px){ .elementor-99 .elementor-element.elementor-element-fb05d9c > .elementor-element-45798e3{ display:none !important; } }/* End custom CSS */
/* Start custom CSS for button, class: .elementor-element-126d090 *//* ---- hover: animated underline only (no colour / icon change) ---- */
.elementor-99 .elementor-element.elementor-element-126d090 .elementor-button .elementor-button-text {
  position: relative;
}
.elementor-99 .elementor-element.elementor-element-126d090 .elementor-button .elementor-button-text::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -6px;
  width: 100%;
  height: 1.5px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .3s ease;
  pointer-events: none;
}
.elementor-99 .elementor-element.elementor-element-126d090 .elementor-button:hover .elementor-button-text::after {
  transform: scaleX(1);
}


/* ---- D47: ~10px gap between the glyph and the label ---- */
.elementor-99 .elementor-element.elementor-element-126d090 .elementor-button-text{ word-spacing: 6px; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-125c93f *//* ---- heading arrow (MEGA MENU): HOVER-driven per client 2026-08-09 -- the arrow
   appears beside this column heading while the cursor is anywhere inside the column;
   the opacity flip lives on the column container custom_css. The four dropdown-panel
   headings keep the always-visible variant. Same shared asset arrow-two-stroke-nav.svg
   (attachment 2665) masked to currentColor; 13x11 box; inline flex + 10px gap;
   translateY(.1em) sits it on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-125c93f .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-125c93f .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
  opacity:0;
  transition:opacity .18s ease-out;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-2978e88 *//* replaced by the shared masked chevron on the sibling heading (see 125c93f) */
.elementor-99 .elementor-element.elementor-element-2978e88{ display:none !important; }/* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-e72f000 *//* ---- mega rows: 45px pitch (frame 02-nav_menu) = lh28 + 8.5px top + 8.5px bottom.
   Elementor spaces/divides only :not(:last-child); close the last row too.
   Divider colour #171819 = the dropdown panels' row divider (client 2026-08-09:
   mega dividers must match the dropdowns' colour and weight). ---- */
.elementor-99 .elementor-element.elementor-element-e72f000 .elementor-icon-list-item:last-child{
  padding-bottom: 8.5px;
  border-bottom: 1px solid #171819;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-399d618 *//* ---- mega heading arrow flip: visible while this column is hovered (client 2026-08-09) ---- */
.elementor-99 .elementor-element.elementor-element-399d618:hover .elementor-element-125c93f .elementor-heading-title::after{ opacity:1; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-e3dfea2 *//* ---- heading arrow (MEGA MENU): HOVER-driven per client 2026-08-09 -- the arrow
   appears beside this column heading while the cursor is anywhere inside the column;
   the opacity flip lives on the column container custom_css. The four dropdown-panel
   headings keep the always-visible variant. Same shared asset arrow-two-stroke-nav.svg
   (attachment 2665) masked to currentColor; 13x11 box; inline flex + 10px gap;
   translateY(.1em) sits it on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-e3dfea2 .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-e3dfea2 .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
  opacity:0;
  transition:opacity .18s ease-out;
}/* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-81159ac *//* ---- mega rows: 45px pitch (frame 02-nav_menu) = lh28 + 8.5px top + 8.5px bottom.
   Elementor spaces/divides only :not(:last-child); close the last row too.
   Divider colour #171819 = the dropdown panels' row divider (client 2026-08-09:
   mega dividers must match the dropdowns' colour and weight). ---- */
.elementor-99 .elementor-element.elementor-element-81159ac .elementor-icon-list-item:last-child{
  padding-bottom: 8.5px;
  border-bottom: 1px solid #171819;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-99cb7fb *//* ---- mega heading arrow flip: visible while this column is hovered (client 2026-08-09) ---- */
.elementor-99 .elementor-element.elementor-element-99cb7fb:hover .elementor-element-e3dfea2 .elementor-heading-title::after{ opacity:1; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-ac80f91 *//* ---- heading arrow (MEGA MENU): HOVER-driven per client 2026-08-09 -- the arrow
   appears beside this column heading while the cursor is anywhere inside the column;
   the opacity flip lives on the column container custom_css. The four dropdown-panel
   headings keep the always-visible variant. Same shared asset arrow-two-stroke-nav.svg
   (attachment 2665) masked to currentColor; 13x11 box; inline flex + 10px gap;
   translateY(.1em) sits it on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-ac80f91 .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-ac80f91 .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
  opacity:0;
  transition:opacity .18s ease-out;
}/* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-e3fe5b8 *//* ---- mega rows: 45px pitch (frame 02-nav_menu) = lh28 + 8.5px top + 8.5px bottom.
   Elementor spaces/divides only :not(:last-child); close the last row too.
   Divider colour #171819 = the dropdown panels' row divider (client 2026-08-09:
   mega dividers must match the dropdowns' colour and weight). ---- */
.elementor-99 .elementor-element.elementor-element-e3fe5b8 .elementor-icon-list-item:last-child{
  padding-bottom: 8.5px;
  border-bottom: 1px solid #171819;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-c635f8d *//* ---- mega heading arrow flip: visible while this column is hovered (client 2026-08-09) ---- */
.elementor-99 .elementor-element.elementor-element-c635f8d:hover .elementor-element-ac80f91 .elementor-heading-title::after{ opacity:1; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-dd6d494 *//* ---- heading arrow (MEGA MENU): HOVER-driven per client 2026-08-09 -- the arrow
   appears beside this column heading while the cursor is anywhere inside the column;
   the opacity flip lives on the column container custom_css. The four dropdown-panel
   headings keep the always-visible variant. Same shared asset arrow-two-stroke-nav.svg
   (attachment 2665) masked to currentColor; 13x11 box; inline flex + 10px gap;
   translateY(.1em) sits it on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-dd6d494 .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-dd6d494 .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
  opacity:0;
  transition:opacity .18s ease-out;
}/* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-b186dae *//* ---- mega rows: 45px pitch (frame 02-nav_menu) = lh28 + 8.5px top + 8.5px bottom.
   Elementor spaces/divides only :not(:last-child); close the last row too.
   Divider colour #171819 = the dropdown panels' row divider (client 2026-08-09:
   mega dividers must match the dropdowns' colour and weight). ---- */
.elementor-99 .elementor-element.elementor-element-b186dae .elementor-icon-list-item:last-child{
  padding-bottom: 8.5px;
  border-bottom: 1px solid #171819;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-a327e07 *//* ---- mega heading arrow flip: visible while this column is hovered (client 2026-08-09) ---- */
.elementor-99 .elementor-element.elementor-element-a327e07:hover .elementor-element-dd6d494 .elementor-heading-title::after{ opacity:1; }/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-8b8dee5 *//* ---- D38: 4 x 331px columns with a 38px gutter (1440 rail) ---- */
.elementor-99 .elementor-element.elementor-element-8b8dee5{
  grid-template-columns: repeat(4, minmax(0, 1fr));
  column-gap: 38px;
  row-gap: 40px;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-77535c5 *//* ---- heading arrow (MEGA MENU): HOVER-driven per client 2026-08-09 -- the arrow
   appears beside this column heading while the cursor is anywhere inside the column;
   the opacity flip lives on the column container custom_css. The four dropdown-panel
   headings keep the always-visible variant. Same shared asset arrow-two-stroke-nav.svg
   (attachment 2665) masked to currentColor; 13x11 box; inline flex + 10px gap;
   translateY(.1em) sits it on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-77535c5 .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-77535c5 .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
  opacity:0;
  transition:opacity .18s ease-out;
}/* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-fcd8f06 *//* ---- mega rows: 45px pitch (frame 02-nav_menu) = lh28 + 8.5px top + 8.5px bottom.
   Elementor spaces/divides only :not(:last-child); close the last row too.
   Divider colour #171819 = the dropdown panels' row divider (client 2026-08-09:
   mega dividers must match the dropdowns' colour and weight). ---- */
.elementor-99 .elementor-element.elementor-element-fcd8f06 .elementor-icon-list-item:last-child{
  padding-bottom: 8.5px;
  border-bottom: 1px solid #171819;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-cdc0f7c *//* ---- frame 02: CEO thumb is a fixed 149x105 box; forbid flex shrink ---- */
.elementor-99 .elementor-element.elementor-element-cdc0f7c{ flex:0 0 149px; }/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-2e747d2 *//* ---- mega heading arrow flip: visible while this column is hovered (client 2026-08-09) ---- */
.elementor-99 .elementor-element.elementor-element-2e747d2:hover .elementor-element-77535c5 .elementor-heading-title::after{ opacity:1; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-7fd20d6 *//* ---- heading arrow (MEGA MENU): HOVER-driven per client 2026-08-09 -- the arrow
   appears beside this column heading while the cursor is anywhere inside the column;
   the opacity flip lives on the column container custom_css. The four dropdown-panel
   headings keep the always-visible variant. Same shared asset arrow-two-stroke-nav.svg
   (attachment 2665) masked to currentColor; 13x11 box; inline flex + 10px gap;
   translateY(.1em) sits it on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-7fd20d6 .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-7fd20d6 .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
  opacity:0;
  transition:opacity .18s ease-out;
}/* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-61fed5d *//* ---- mega rows: 45px pitch (frame 02-nav_menu) = lh28 + 8.5px top + 8.5px bottom.
   Elementor spaces/divides only :not(:last-child); close the last row too.
   Divider colour #171819 = the dropdown panels' row divider (client 2026-08-09:
   mega dividers must match the dropdowns' colour and weight). ---- */
.elementor-99 .elementor-element.elementor-element-61fed5d .elementor-icon-list-item:last-child{
  padding-bottom: 8.5px;
  border-bottom: 1px solid #171819;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-0efa6b7 *//* ---- mega heading arrow flip: visible while this column is hovered (client 2026-08-09) ---- */
.elementor-99 .elementor-element.elementor-element-0efa6b7:hover .elementor-element-7fd20d6 .elementor-heading-title::after{ opacity:1; }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-75a5c81 *//* ---- heading arrow (MEGA MENU): HOVER-driven per client 2026-08-09 -- the arrow
   appears beside this column heading while the cursor is anywhere inside the column;
   the opacity flip lives on the column container custom_css. The four dropdown-panel
   headings keep the always-visible variant. Same shared asset arrow-two-stroke-nav.svg
   (attachment 2665) masked to currentColor; 13x11 box; inline flex + 10px gap;
   translateY(.1em) sits it on the cap-height. ---- */
.elementor-99 .elementor-element.elementor-element-75a5c81 .elementor-heading-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.elementor-99 .elementor-element.elementor-element-75a5c81 .elementor-heading-title::after{
  content:"";
  flex:0 0 auto;
  width:13px;
  height:11px;
  background-color:currentColor;
  -webkit-mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
          mask:url("https://ctc.xspider.net/wp-content/uploads/figma-design/arrow-two-stroke-nav.svg") no-repeat center / 100% 100%;
  transform:translateY(0.1em);
  opacity:0;
  transition:opacity .18s ease-out;
}/* End custom CSS */
/* Start custom CSS for loop-grid, class: .elementor-element-b10cc4d *//* ---- frame 02: two 330px cards, 38px gutter (grid D38 rhythm) ---- */
.elementor-99 .elementor-element.elementor-element-b10cc4d .elementor-loop-container{ column-gap:38px; }/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-17694de *//* ---- mega heading arrow flip: visible while this column is hovered (client 2026-08-09) ---- */
.elementor-99 .elementor-element.elementor-element-17694de:hover .elementor-element-75a5c81 .elementor-heading-title::after{ opacity:1; }/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-0b96ed3 *//* ---- D39: same 4-track grid; Company 331, Careers 331, Blog spans two tracks (699) ---- */
.elementor-99 .elementor-element.elementor-element-0b96ed3{
  grid-template-columns: repeat(4, minmax(0, 1fr));
  column-gap: 38px;
  row-gap: 40px;
}
.elementor-99 .elementor-element.elementor-element-0b96ed3 > .e-con:nth-child(3){
  grid-column: span 2;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-ce77484 */.elementor-99 .elementor-element.elementor-element-ce77484{
  position:fixed;
  top:0; left:0; right:0; bottom:0;
  z-index:99990;
  display:none;
  overflow-y:auto;
}
/* flex, not block: the 1440 rail has to stay centred in the viewport */
.elementor-99 .elementor-element.elementor-element-ce77484.mm-open{
  display:flex;
}

/* ---- D33/D34: flush under the bar (60px) + accent rule (3px), and exactly the
   remaining viewport height - no 70px overflow. ---- */
body:not(.elementor-editor-active) .elementor-99 .elementor-element.elementor-element-ce77484 {
  top: 63px;
  min-height: 0;
  height: calc(100vh - 63px);
}

/* ---- D14: accent rule under the bar while the mega overlay is open ---- */
.elementor-99 .elementor-element.elementor-element-ce77484.mm-open::after{
  content:none; /* PF-FIX65: retired, the rule now lives on the BAR (fb05d9c) so it tracks the bar height at every width */
  position:fixed;
  left:0;
  right:0;
  top:60px;
  height:2px;
  background:#00AEEF;
  z-index:99991;
  pointer-events:none;
}

/* PF-FIX64 (2026-08-21): client - the rule under the bar while the hamburger overlay is open now matches the dropdown one, solid 2px #00AEEF instead of the 3px #064F66 / #5E8F5B / #F8D109 gradient. *//* End custom CSS */