.elementor-2459 .elementor-element.elementor-element-p1sect1{--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;--overflow:hidden;--padding-top:4%;--padding-bottom:4%;--padding-left:4%;--padding-right:4%;}.elementor-2459 .elementor-element.elementor-element-p1sect1:not(.elementor-motion-effects-element-type-background), .elementor-2459 .elementor-element.elementor-element-p1sect1 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://fastcilitycorp.com/wp-content/uploads/2019/09/kitchen-service.jpg");background-position:center center;background-repeat:no-repeat;background-size:cover;}.elementor-2459 .elementor-element.elementor-element-p1grid1{--display:grid;--e-con-grid-template-columns:1.06fr .94fr;--e-con-grid-template-rows:auto;--gap:clamp(30px,4.5vw,60px) clamp(30px,4.5vw,60px);--row-gap:clamp(30px,4.5vw,60px);--column-gap:clamp(30px,4.5vw,60px);--grid-auto-flow:row;--align-items:center;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;--z-index:1;}.elementor-2459 .elementor-element.elementor-element-p1intr1{--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;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:48px;--padding-bottom:48px;--padding-left:40px;--padding-right:40px;}.elementor-2459 .elementor-element.elementor-element-p1intr1:not(.elementor-motion-effects-element-type-background), .elementor-2459 .elementor-element.elementor-element-p1intr1 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:rgba(0,0,0,0.3);}.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 );text-transform:var( --e-global-typography-primary-text-transform );font-style:var( --e-global-typography-primary-font-style );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );color:var( --e-global-color-primary );}.elementor-2459 .elementor-element.elementor-element-p1eyb01{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-2459 .elementor-element.elementor-element-p1eyb01 .elementor-heading-title{font-family:"Roboto Condensed", Sans-serif;font-size:0.8rem;font-weight:700;text-transform:uppercase;line-height:normal;letter-spacing:0.12em;color:var( --e-global-color-fcamber );}.elementor-2459 .elementor-element.elementor-element-p1hed01{margin:18px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;text-align:center;}.elementor-2459 .elementor-element.elementor-element-p1hed01 .elementor-heading-title{font-family:"Roboto Condensed", Sans-serif;font-size:46px;font-weight:700;text-transform:uppercase;line-height:1.03em;letter-spacing:0.01em;text-shadow:0px 1px 3px rgba(0,0,0,0.3);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 );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );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-2459 .elementor-element.elementor-element-p1led01{width:var( --container-widget-width, 660px );max-width:660px;margin:20px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;--container-widget-width:660px;--container-widget-flex-grow:0;text-align:center;font-family:"Open Sans", Sans-serif;font-size:clamp(1.02rem,1.5vw,1.18rem);font-weight:400;line-height:1.62em;color:#FFFFFF;}.elementor-2459 .elementor-element.elementor-element-p1ctar1{--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;--gap:15px 15px;--row-gap:15px;--column-gap:15px;--flex-wrap:wrap;--margin-top:34px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.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 );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-2459 .elementor-element.elementor-element-p1btn01 .elementor-button{background-color:transparent;fill:var( --e-global-color-fcwhite );color:var( --e-global-color-fcwhite );background-image:linear-gradient(135deg, var( --e-global-color-fcamber ) 0%, var( --e-global-color-accent ) 100%);box-shadow:0px 10px 28px 0px rgba(232,68,46,0.34);}.elementor-2459 .elementor-element.elementor-element-p1btn01:hover{--e-transform-translateY:-2px;}.elementor-2459 .elementor-element.elementor-element-p1btn01{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;--e-transform-transition-duration:0.25ms;}.elementor-2459 .elementor-element.elementor-element-p1btn01 .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-2459 .elementor-element.elementor-element-p1btn01 .elementor-button .elementor-button-content-wrapper{gap:0.5em;}.elementor-2459 .elementor-element.elementor-element-p1btn02 .elementor-button{background-color:transparent;fill:var( --e-global-color-fcwhite );color:var( --e-global-color-fcwhite );background-image:linear-gradient(135deg, var( --e-global-color-fcemerg ) 0%, var( --e-global-color-fcemerg ) 100%);}.elementor-2459 .elementor-element.elementor-element-p1btn02:hover{--e-transform-translateY:-2px;}.elementor-2459 .elementor-element.elementor-element-p1btn02{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;--e-transform-transition-duration:0.25ms;}.elementor-2459 .elementor-element.elementor-element-p1btn02 .elementor-button-content-wrapper{flex-direction:row;}.elementor-2459 .elementor-element.elementor-element-p1btn02 .elementor-button .elementor-button-content-wrapper{gap:0.5em;}.elementor-2459 .elementor-element.elementor-element-p1medi1{--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;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-2459 .elementor-element.elementor-element-p1fram1{--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;--border-radius:14px 14px 14px 14px;box-shadow:0px 30px 64px 0px rgba(16,20,24,0.55);--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:3px;--padding-bottom:3px;--padding-left:3px;--padding-right:3px;}.elementor-2459 .elementor-element.elementor-element-p1fram1:not(.elementor-motion-effects-element-type-background), .elementor-2459 .elementor-element.elementor-element-p1fram1 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#5292B9;}.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 );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-2459 .elementor-element.elementor-element-p1img01{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-2459 .elementor-element.elementor-element-p1sect2{--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;--overflow:hidden;--padding-top:4%;--padding-bottom:4%;--padding-left:4%;--padding-right:4%;}.elementor-2459 .elementor-element.elementor-element-p1sect2:not(.elementor-motion-effects-element-type-background), .elementor-2459 .elementor-element.elementor-element-p1sect2 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-fcwhite );}.elementor-2459 .elementor-element.elementor-element-p1hwrp1{--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;--margin-top:0px;--margin-bottom:clamp(40px,5vw,58px);--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-2459 .elementor-element.elementor-element-p1eyb02{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-2459 .elementor-element.elementor-element-p1eyb02 .elementor-heading-title{font-family:"Roboto Condensed", Sans-serif;font-size:0.8rem;font-weight:700;text-transform:uppercase;line-height:normal;letter-spacing:0.12em;color:#E8442E;}.elementor-2459 .elementor-element.elementor-element-p1hed02{margin:15px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-2459 .elementor-element.elementor-element-p1hed02 .elementor-heading-title{font-family:"Roboto Condensed", Sans-serif;font-size:clamp(1.8rem,3.4vw,2.6rem);font-weight:700;text-transform:uppercase;line-height:1.04em;letter-spacing:0.015em;color:var( --e-global-color-primary );}.elementor-2459 .elementor-element.elementor-element-p1grd04{--display:grid;--e-con-grid-template-columns:repeat(4,1fr);--e-con-grid-template-rows:auto;--gap:18px 18px;--row-gap:18px;--column-gap:18px;--grid-auto-flow:row;--align-items:stretch;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-2459 .elementor-element.elementor-element-p1crd01{--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;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-2459 .elementor-element.elementor-element-p1cim01{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:26px 0px 6px 0px;text-align:center;}.elementor-2459 .elementor-element.elementor-element-p1cim01 img{width:75px;}.elementor-2459 .elementor-element.elementor-element-p1cbd01{--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;border-style:solid;--border-style:solid;border-width:0px 1px 1px 1px;--border-top-width:0px;--border-right-width:1px;--border-bottom-width:1px;--border-left-width:1px;border-color:var( --e-global-color-fcslate30 );--border-color:var( --e-global-color-fcslate30 );--border-radius:0px 0px 12px 12px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:32px;--padding-bottom:22px;--padding-left:20px;--padding-right:20px;}.elementor-2459 .elementor-element.elementor-element-p1cbd01:not(.elementor-motion-effects-element-type-background), .elementor-2459 .elementor-element.elementor-element-p1cbd01 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-fcwhite );}.elementor-2459 .elementor-element.elementor-element-p1cbd01.e-con{--flex-grow:1;--flex-shrink:1;}.elementor-2459 .elementor-element.elementor-element-p1ctl01{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-2459 .elementor-element.elementor-element-p1ctl01 .elementor-heading-title{font-family:"Roboto Condensed", Sans-serif;font-size:1.16rem;font-weight:700;text-transform:uppercase;line-height:1.1em;letter-spacing:0.01em;color:var( --e-global-color-primary );}.elementor-2459 .elementor-element.elementor-element-p1cln01{margin:11px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;font-family:"Open Sans", Sans-serif;font-size:0.92rem;font-weight:400;line-height:1.55em;color:var( --e-global-color-secondary );}.elementor-2459 .elementor-element.elementor-element-p1cln01.elementor-element{--flex-grow:1;--flex-shrink:1;}.elementor-2459 .elementor-element.elementor-element-p1cmr01{margin:16px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:16px 0px 0px 0px;}.elementor-2459 .elementor-element.elementor-element-p1cmr01 .elementor-heading-title{font-family:"Roboto Condensed", Sans-serif;font-size:0.84rem;font-weight:700;text-transform:uppercase;line-height:normal;letter-spacing:0.06em;color:#E8442E;}.elementor-2459 .elementor-element.elementor-element-p1crd02{--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;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-2459 .elementor-element.elementor-element-p1cim02{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:26px 0px 6px 0px;text-align:center;}.elementor-2459 .elementor-element.elementor-element-p1cim02 img{width:75px;}.elementor-2459 .elementor-element.elementor-element-p1cbd02{--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;border-style:solid;--border-style:solid;border-width:0px 1px 1px 1px;--border-top-width:0px;--border-right-width:1px;--border-bottom-width:1px;--border-left-width:1px;border-color:var( --e-global-color-fcslate30 );--border-color:var( --e-global-color-fcslate30 );--border-radius:0px 0px 12px 12px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:32px;--padding-bottom:22px;--padding-left:20px;--padding-right:20px;}.elementor-2459 .elementor-element.elementor-element-p1cbd02:not(.elementor-motion-effects-element-type-background), .elementor-2459 .elementor-element.elementor-element-p1cbd02 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-fcwhite );}.elementor-2459 .elementor-element.elementor-element-p1cbd02.e-con{--flex-grow:1;--flex-shrink:1;}.elementor-2459 .elementor-element.elementor-element-p1ctl02{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-2459 .elementor-element.elementor-element-p1ctl02 .elementor-heading-title{font-family:"Roboto Condensed", Sans-serif;font-size:1.16rem;font-weight:700;text-transform:uppercase;line-height:1.1em;letter-spacing:0.01em;color:var( --e-global-color-primary );}.elementor-2459 .elementor-element.elementor-element-p1cln02{margin:11px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;font-family:"Open Sans", Sans-serif;font-size:0.92rem;font-weight:400;line-height:1.55em;color:var( --e-global-color-secondary );}.elementor-2459 .elementor-element.elementor-element-p1cln02.elementor-element{--flex-grow:1;--flex-shrink:1;}.elementor-2459 .elementor-element.elementor-element-p1cmr02{margin:16px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:16px 0px 0px 0px;}.elementor-2459 .elementor-element.elementor-element-p1cmr02 .elementor-heading-title{font-family:"Roboto Condensed", Sans-serif;font-size:0.84rem;font-weight:700;text-transform:uppercase;line-height:normal;letter-spacing:0.06em;color:#E8442E;}.elementor-2459 .elementor-element.elementor-element-p1crd03{--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;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-2459 .elementor-element.elementor-element-p1cim03{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:26px 0px 6px 0px;text-align:center;}.elementor-2459 .elementor-element.elementor-element-p1cim03 img{width:75px;}.elementor-2459 .elementor-element.elementor-element-p1cbd03{--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;border-style:solid;--border-style:solid;border-width:0px 1px 1px 1px;--border-top-width:0px;--border-right-width:1px;--border-bottom-width:1px;--border-left-width:1px;border-color:var( --e-global-color-fcslate30 );--border-color:var( --e-global-color-fcslate30 );--border-radius:0px 0px 12px 12px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:32px;--padding-bottom:22px;--padding-left:20px;--padding-right:20px;}.elementor-2459 .elementor-element.elementor-element-p1cbd03:not(.elementor-motion-effects-element-type-background), .elementor-2459 .elementor-element.elementor-element-p1cbd03 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-fcwhite );}.elementor-2459 .elementor-element.elementor-element-p1cbd03.e-con{--flex-grow:1;--flex-shrink:1;}.elementor-2459 .elementor-element.elementor-element-p1ctl03{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-2459 .elementor-element.elementor-element-p1ctl03 .elementor-heading-title{font-family:"Roboto Condensed", Sans-serif;font-size:1.16rem;font-weight:700;text-transform:uppercase;line-height:1.1em;letter-spacing:0.01em;color:var( --e-global-color-primary );}.elementor-2459 .elementor-element.elementor-element-p1cln03{margin:11px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;font-family:"Open Sans", Sans-serif;font-size:0.92rem;font-weight:400;line-height:1.55em;color:var( --e-global-color-secondary );}.elementor-2459 .elementor-element.elementor-element-p1cln03.elementor-element{--flex-grow:1;--flex-shrink:1;}.elementor-2459 .elementor-element.elementor-element-p1cmr03{margin:16px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:16px 0px 0px 0px;}.elementor-2459 .elementor-element.elementor-element-p1cmr03 .elementor-heading-title{font-family:"Roboto Condensed", Sans-serif;font-size:0.84rem;font-weight:700;text-transform:uppercase;line-height:normal;letter-spacing:0.06em;color:#E8442E;}.elementor-2459 .elementor-element.elementor-element-p1crd04{--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;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-2459 .elementor-element.elementor-element-p1cim04{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:26px 0px 6px 0px;text-align:center;}.elementor-2459 .elementor-element.elementor-element-p1cim04 img{width:75px;}.elementor-2459 .elementor-element.elementor-element-p1cbd04{--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;border-style:solid;--border-style:solid;border-width:0px 1px 1px 1px;--border-top-width:0px;--border-right-width:1px;--border-bottom-width:1px;--border-left-width:1px;border-color:var( --e-global-color-fcslate30 );--border-color:var( --e-global-color-fcslate30 );--border-radius:0px 0px 12px 12px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:32px;--padding-bottom:22px;--padding-left:20px;--padding-right:20px;}.elementor-2459 .elementor-element.elementor-element-p1cbd04:not(.elementor-motion-effects-element-type-background), .elementor-2459 .elementor-element.elementor-element-p1cbd04 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-fcwhite );}.elementor-2459 .elementor-element.elementor-element-p1cbd04.e-con{--flex-grow:1;--flex-shrink:1;}.elementor-2459 .elementor-element.elementor-element-p1ctl04{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-2459 .elementor-element.elementor-element-p1ctl04 .elementor-heading-title{font-family:"Roboto Condensed", Sans-serif;font-size:1.16rem;font-weight:700;text-transform:uppercase;line-height:1.1em;letter-spacing:0.01em;color:var( --e-global-color-primary );}.elementor-2459 .elementor-element.elementor-element-p1cln04{margin:11px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;font-family:"Open Sans", Sans-serif;font-size:0.92rem;font-weight:400;line-height:1.55em;color:var( --e-global-color-secondary );}.elementor-2459 .elementor-element.elementor-element-p1cln04.elementor-element{--flex-grow:1;--flex-shrink:1;}.elementor-2459 .elementor-element.elementor-element-p1cmr04{margin:16px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:16px 0px 0px 0px;}.elementor-2459 .elementor-element.elementor-element-p1cmr04 .elementor-heading-title{font-family:"Roboto Condensed", Sans-serif;font-size:0.84rem;font-weight:700;text-transform:uppercase;line-height:normal;letter-spacing:0.06em;color:#E8442E;}.elementor-2459 .elementor-element.elementor-element-p1sect3{--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;--overflow:hidden;--padding-top:4%;--padding-bottom:4%;--padding-left:4%;--padding-right:4%;}.elementor-2459 .elementor-element.elementor-element-p1sect3:not(.elementor-motion-effects-element-type-background), .elementor-2459 .elementor-element.elementor-element-p1sect3 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-fcpaper );}.elementor-2459 .elementor-element.elementor-element-p1ehd01{--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:flex-end;--gap:26px 26px;--row-gap:26px;--column-gap:26px;--flex-wrap:wrap;--margin-top:0px;--margin-bottom:clamp(36px,4.5vw,52px);--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-2459 .elementor-element.elementor-element-p1ehl01{--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;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-2459 .elementor-element.elementor-element-p1eyb03{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-2459 .elementor-element.elementor-element-p1eyb03 .elementor-heading-title{font-family:"Roboto Condensed", Sans-serif;font-size:0.8rem;font-weight:700;text-transform:uppercase;line-height:normal;letter-spacing:0.12em;color:#E8442E;}.elementor-2459 .elementor-element.elementor-element-p1hed03{margin:15px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-2459 .elementor-element.elementor-element-p1hed03 .elementor-heading-title{font-family:"Roboto Condensed", Sans-serif;font-size:clamp(1.8rem,3.4vw,2.6rem);font-weight:700;text-transform:uppercase;line-height:1.04em;letter-spacing:0.015em;color:var( --e-global-color-primary );}.elementor-2459 .elementor-element.elementor-element-p1btn03:hover{--e-transform-translateY:-2px;}.elementor-2459 .elementor-element.elementor-element-p1btn03{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;--e-transform-transition-duration:0.25ms;}.elementor-2459 .elementor-element.elementor-element-p1btn03 .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-2459 .elementor-element.elementor-element-p1btn03 .elementor-button .elementor-button-content-wrapper{gap:0.5em;}.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 );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-widget-icon-list .elementor-icon-list-text{color:var( --e-global-color-secondary );}.elementor-2459 .elementor-element.elementor-element-p1plt01{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-2459 .elementor-element.elementor-element-p1plt01 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child){padding-block-end:calc(0px/2);}.elementor-2459 .elementor-element.elementor-element-p1plt01 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:first-child){margin-block-start:calc(0px/2);}.elementor-2459 .elementor-element.elementor-element-p1plt01 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item{margin-inline:calc(0px/2);}.elementor-2459 .elementor-element.elementor-element-p1plt01 .elementor-icon-list-items.elementor-inline-items{margin-inline:calc(-0px/2);}.elementor-2459 .elementor-element.elementor-element-p1plt01 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after{inset-inline-end:calc(-0px/2);}.elementor-2459 .elementor-element.elementor-element-p1plt01 .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-2459 .elementor-element.elementor-element-p1plt01 .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-2459 .elementor-element.elementor-element-p1plt01 .elementor-icon-list-item > .elementor-icon-list-text, .elementor-2459 .elementor-element.elementor-element-p1plt01 .elementor-icon-list-item > a{font-family:"Open Sans", Sans-serif;font-size:0.94rem;font-weight:400;line-height:1.35em;}.elementor-2459 .elementor-element.elementor-element-p1plt01 .elementor-icon-list-text{color:var( --e-global-color-text );transition:color 0.3s;}.elementor-2459 .elementor-element.elementor-element-p1sect4{--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;--overflow:hidden;--overlay-opacity:1;--padding-top:4%;--padding-bottom:4%;--padding-left:4%;--padding-right:4%;}.elementor-2459 .elementor-element.elementor-element-p1sect4:not(.elementor-motion-effects-element-type-background), .elementor-2459 .elementor-element.elementor-element-p1sect4 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://fastcilitycorp.webappbuild.com/wp-content/uploads/2026/07/fc-p1-cta-bg-kitchen.jpg");background-position:center center;background-repeat:no-repeat;background-size:cover;}.elementor-2459 .elementor-element.elementor-element-p1sect4::before, .elementor-2459 .elementor-element.elementor-element-p1sect4 > .elementor-background-video-container::before, .elementor-2459 .elementor-element.elementor-element-p1sect4 > .e-con-inner > .elementor-background-video-container::before, .elementor-2459 .elementor-element.elementor-element-p1sect4 > .elementor-background-slideshow::before, .elementor-2459 .elementor-element.elementor-element-p1sect4 > .e-con-inner > .elementor-background-slideshow::before, .elementor-2459 .elementor-element.elementor-element-p1sect4 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:rgba(0,0,0,0.4);--background-overlay:'';}.elementor-2459 .elementor-element.elementor-element-p1cin01{--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;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;--z-index:1;}.elementor-2459 .elementor-element.elementor-element-p1eyb04{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-2459 .elementor-element.elementor-element-p1eyb04 .elementor-heading-title{font-family:"Roboto Condensed", Sans-serif;font-size:0.8rem;font-weight:700;text-transform:uppercase;line-height:normal;letter-spacing:0.12em;color:#FFFFFF;}.elementor-2459 .elementor-element.elementor-element-p1hed04{margin:15px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-2459 .elementor-element.elementor-element-p1hed04 .elementor-heading-title{font-family:"Roboto Condensed", Sans-serif;font-size:clamp(2.2rem,4.8vw,3.6rem);font-weight:700;text-transform:uppercase;line-height:1.02em;letter-spacing:0.01em;text-shadow:0px 0px 0px rgba(0,0,0,0.3);color:#FFFFFF;}.elementor-2459 .elementor-element.elementor-element-p1sub04{width:var( --container-widget-width, 520px );max-width:520px;margin:16px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;--container-widget-width:520px;--container-widget-flex-grow:0;font-family:"Open Sans", Sans-serif;font-size:1.1rem;font-weight:400;line-height:1.55em;text-shadow:0px 0px 0px rgba(0,0,0,0.3);color:#FFFFFF;}.elementor-2459 .elementor-element.elementor-element-p1cbr01{--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;--gap:15px 15px;--row-gap:15px;--column-gap:15px;--flex-wrap:wrap;--margin-top:30px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-2459 .elementor-element.elementor-element-p1btn04 .elementor-button{background-color:rgba(0,0,0,0);fill:#FFFFFF;color:#FFFFFF;border-style:solid;border-width:2px 2px 2px 2px;border-color:#FFFFFF;border-radius:3px 3px 3px 3px;}.elementor-2459 .elementor-element.elementor-element-p1btn04:hover{--e-transform-translateY:-2px;}.elementor-2459 .elementor-element.elementor-element-p1btn04{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;--e-transform-transition-duration:0.25ms;}.elementor-2459 .elementor-element.elementor-element-p1btn04 .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-2459 .elementor-element.elementor-element-p1btn04 .elementor-button .elementor-button-content-wrapper{gap:0.5em;}.elementor-2459 .elementor-element.elementor-element-p1btn05 .elementor-button{background-color:rgba(0,0,0,0);fill:#FFFFFF;color:#FFFFFF;border-style:solid;border-width:2px 2px 2px 2px;border-color:#FFFFFF;border-radius:3px 3px 3px 3px;}.elementor-2459 .elementor-element.elementor-element-p1btn05:hover{--e-transform-translateY:-2px;}.elementor-2459 .elementor-element.elementor-element-p1btn05{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;--e-transform-transition-duration:0.25ms;}.elementor-2459 .elementor-element.elementor-element-p1btn05 .elementor-button-content-wrapper{flex-direction:row;}.elementor-2459 .elementor-element.elementor-element-p1btn05 .elementor-button .elementor-button-content-wrapper{gap:0.5em;}@media(min-width:768px){.elementor-2459 .elementor-element.elementor-element-p1sect1{--content-width:1152px;}.elementor-2459 .elementor-element.elementor-element-p1medi1{--width:min(100%,520px);}.elementor-2459 .elementor-element.elementor-element-p1sect2{--content-width:1152px;}.elementor-2459 .elementor-element.elementor-element-p1hwrp1{--width:min(100%,660px);}.elementor-2459 .elementor-element.elementor-element-p1sect3{--content-width:1152px;}.elementor-2459 .elementor-element.elementor-element-p1sect4{--content-width:1152px;}.elementor-2459 .elementor-element.elementor-element-p1cin01{--width:min(100%,720px);}}@media(max-width:1220px) and (min-width:768px){.elementor-2459 .elementor-element.elementor-element-p1medi1{--width:min(100%,520px);}.elementor-2459 .elementor-element.elementor-element-p1hwrp1{--width:min(100%,660px);}.elementor-2459 .elementor-element.elementor-element-p1cin01{--width:min(100%,720px);}}@media(min-width:1221px){.elementor-2459 .elementor-element.elementor-element-p1sect1:not(.elementor-motion-effects-element-type-background), .elementor-2459 .elementor-element.elementor-element-p1sect1 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-attachment:scroll;}.elementor-2459 .elementor-element.elementor-element-p1sect4:not(.elementor-motion-effects-element-type-background), .elementor-2459 .elementor-element.elementor-element-p1sect4 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-attachment:scroll;}}@media(max-width:1220px){.elementor-2459 .elementor-element.elementor-element-p1grid1{--grid-auto-flow:row;}.elementor-widget-heading .elementor-heading-title{line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-widget-text-editor{line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-widget-button .elementor-button{line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-widget-image .widget-image-caption{line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-2459 .elementor-element.elementor-element-p1grd04{--grid-auto-flow:row;}.elementor-widget-icon-list .elementor-icon-list-item > .elementor-icon-list-text, .elementor-widget-icon-list .elementor-icon-list-item > a{line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}}@media(max-width:767px){.elementor-2459 .elementor-element.elementor-element-p1sect1{--padding-top:8%;--padding-bottom:8%;--padding-left:4%;--padding-right:4%;}.elementor-2459 .elementor-element.elementor-element-p1grid1{--e-con-grid-template-columns:1fr;--grid-auto-flow:row;}.elementor-widget-heading .elementor-heading-title{line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-2459 .elementor-element.elementor-element-p1hed01 .elementor-heading-title{font-size:clamp(2rem,7vw,2.6rem);}.elementor-widget-text-editor{line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-2459 .elementor-element.elementor-element-p1led01{width:var( --container-widget-width, 100% );max-width:100%;--container-widget-width:100%;--container-widget-flex-grow:0;}.elementor-widget-button .elementor-button{line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-2459 .elementor-element.elementor-element-p1medi1{--width:min(100%,520px);}.elementor-widget-image .widget-image-caption{line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-2459 .elementor-element.elementor-element-p1sect2{--padding-top:8%;--padding-bottom:8%;--padding-left:4%;--padding-right:4%;}.elementor-2459 .elementor-element.elementor-element-p1hwrp1{--width:min(100%,660px);}.elementor-2459 .elementor-element.elementor-element-p1grd04{--e-con-grid-template-columns:repeat(2,1fr);--grid-auto-flow:row;}.elementor-2459 .elementor-element.elementor-element-p1sect3{--padding-top:8%;--padding-bottom:8%;--padding-left:4%;--padding-right:4%;}.elementor-2459 .elementor-element.elementor-element-p1ehd01{--align-items:flex-start;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-widget-icon-list .elementor-icon-list-item > .elementor-icon-list-text, .elementor-widget-icon-list .elementor-icon-list-item > a{line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-2459 .elementor-element.elementor-element-p1sect4{--padding-top:8%;--padding-bottom:8%;--padding-left:4%;--padding-right:4%;}.elementor-2459 .elementor-element.elementor-element-p1cin01{--width:min(100%,720px);}.elementor-2459 .elementor-element.elementor-element-p1sub04{width:var( --container-widget-width, 100% );max-width:100%;--container-widget-width:100%;--container-widget-flex-grow:0;}}/* Start custom CSS for heading, class: .elementor-element-p1eyb01 *//* WHY (b) PSEUDO-ELEMENT + DESCENDANT SELECTOR: the 28x3 gradient bar has no control of any kind (the Heading widget has no Background section at all), and no control reaches .elementor-heading-title to make it inline-flex with a gap. Not a container pseudo, so L1 does not apply (INFO at most).
   The bar is styled INSIDE each eyebrow and is deliberately NOT promoted to a shared kit class: Home S4's eyebrow is a 48x4 bar answering to a similar name (drift D3) and the two treatments would collide again.
   line-height:normal is set NATIVELY ({unit:'custom',size:'normal'}) because the mock writes font:700 .8rem var(--font-head), a SHORTHAND, which resets line-height - it is not in this block. */
.elementor-2459 .elementor-element.elementor-element-p1eyb01 .elementor-heading-title{display:inline-flex;align-items:center;gap:10px}
.elementor-2459 .elementor-element.elementor-element-p1eyb01 .elementor-heading-title::before{content:"";flex:none;width:28px;height:3px;border-radius:2px;background:var(--steel-md)}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-p1hed01 *//* WHY (d) DESCENDANT SELECTOR: text-wrap has no Elementor control at any level and must land on .elementor-heading-title, not on the widget wrapper. The mobile font-size step is NOT here - it is the native typography_font_size_mobile control (decision D3). */
.elementor-2459 .elementor-element.elementor-element-p1hed01 .elementor-heading-title{text-wrap:balance}/* End custom CSS */
/* Start custom CSS for button, class: .elementor-element-p1btn01 *//* WHY (h) (i) DESCENDANT SELECTOR: _css_classes lands on the widget WRAPPER, so a gradient class there paints a full-width bar BEHIND the button instead of the button itself - BUILD-RECIPE 3a blesses exactly this .elementor-2459 .elementor-element.elementor-element-p1btn01 for gradient CTAs. (ii) @KEYFRAMES: the mock's gradShift hover sweep is a keyframe animation, which has no control of any kind.
   The button's resting background_color is set NATIVELY to fully transparent so nothing shows through the gradient; text colour, padding, radius, typography, icon and the hover LIFT are all native controls and none is restated here.
   Duplicate identical @keyframes across the two gradient buttons are harmless - same name, same body. */
.elementor-2459 .elementor-element.elementor-element-p1btn01 .elementor-button{background-image:var(--grad);background-size:150% 150%}
.elementor-2459 .elementor-element.elementor-element-p1btn01 .elementor-button:hover{animation:gradShift 1.6s ease infinite}
@keyframes gradShift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-p1ctar1 *//* WHY (q) (i) NON-BUCKET @media: 480 is not a breakpoint on this site; the mobile bucket fires at 767 and would wrongly stretch the buttons across 481-767, which the mock does not do. (ii) DESCENDANT SELECTOR: the target is the .elementor-button inside each CHILD widget, not this row, and no control on the row reaches it.
   TRAP 12 / L10: specificity is raised through the row's second class to (0,2,0) so this rule beats Elementor's own 767 block regardless of source order. No !important.
   The row's own direction, wrap, 15px gap and top margin are ALL native controls and none is restated here. */
@media (max-width:480px){.elementor-2459 .elementor-element.elementor-element-p1ctar1.sv-cta-row .elementor-widget-button{width:100%}.elementor-2459 .elementor-element.elementor-element-p1ctar1.sv-cta-row .elementor-button{width:100%;justify-content:center}}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-p1intr1 */.elementor-2459 .elementor-element.elementor-element-p1intr1{grid-column:1/-1;max-width:1043px;margin-left:auto;margin-right:auto;text-align:center;}/* End custom CSS */
/* Start custom CSS for image, class: .elementor-element-p1img01 *//* WHY (g) DESCENDANT SELECTOR into the widget's own <img>: aspect-ratio, object-fit and filter have no proven control on this stack (the css_filters_* group is absent from PROVEN-KEY-VOCAB and from the 3b probe), and image_border_radius is likewise unproven (spec [PENDING] #11), so the four properties that must apply to the SAME box are declared together.
   LESSON #20 GUARD, AND IT IS NOT OPTIONAL: G2 filed s4img01-04 - "the image widget's height:100% resolves against an auto-height Elementor wrapper, so object-fit:cover never engages and the photos are top-cropped". This block therefore sizes the box with aspect-ratio + height:auto and NEVER writes height:100%. */
.elementor-2459 .elementor-element.elementor-element-p1img01 img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:11px;filter:grayscale(0) contrast(1.05) brightness(.9)}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-p1fram1 *//* WHY (f) PSEUDO-ELEMENT carrying mix-blend-mode, for which Elementor has NO control at all - the Background Overlay control paints a layer but cannot blend it. The frame's own gradient background, 14px radius, 3px padding and lift shadow are ALL native controls and none of them is restated here.
   TRAP 3 / LINT L1 COUNTER-DECLARATIONS, BOTH AXES: inset:3px specifies right AND bottom, and the base rule supplies width:max(100% + border-left + border-right,100%) and height. Without width:auto AND height:auto the browser keeps the base sizes and the veil overhangs. This is the round-3 s4card1-4 +1.00px defect verbatim (linter case L1-NEG). */
.elementor-2459 .elementor-element.elementor-element-p1fram1::after{content:"";position:absolute;inset:3px;width:auto;height:auto;border-radius:11px;background:var(--steel);mix-blend-mode:multiply;opacity:.26;pointer-events:none}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-p1medi1 *//* WHY (e) (i) PSEUDO-ELEMENT: the 54x54 gradient chip carrying a wrench glyph is unreachable from any control - SVG upload is disabled on this site and the Background>Image picker takes media-library items, not a data URI. (ii) NON-BUCKET @media: the 980 max-width step has no bucket; the tablet bucket fires at 1220 and would wrongly shrink 981-1220.
   TRAP 3 / LINT L1 COUNTER-DECLARATION: the chip anchors BOTTOM, so top:auto is LOAD-BEARING (height:54px is the value being reproduced, so top:auto is the correct counter, not height:auto). The horizontal axis needs none - the base rule sets left, which is the axis this chip uses.
   TRAP 12 / L10: the @media raises specificity through the second class, as every raw block on this page does.
   The glyph rides as the FIRST background layer over --grad as the second - one pseudo, two layers, no extra element. */
.elementor-2459 .elementor-element.elementor-element-p1medi1::after{content:"";position:absolute;left:-16px;bottom:30px;top:auto;width:54px;height:54px;border-radius:13px;z-index:2;pointer-events:none;box-shadow:0 12px 26px rgba(232,68,46,.45);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23FFFFFF'%3E%3Cpath d='M21.7 8.5l-2.2-2.2a1 1 0 00-1.4 0l-1 1-3-3a3.5 3.5 0 00-4.6 4.6l-6 6a1 1 0 000 1.4l2.2 2.2a1 1 0 001.4 0l6-6a3.5 3.5 0 004.6-4.6l1-1a1 1 0 000-1.4z'/%3E%3C/svg%3E"),var(--steel-md);background-size:27px 27px,auto;background-position:center,center;background-repeat:no-repeat,no-repeat}
@media (max-width:980px){.elementor-2459 .elementor-element.elementor-element-p1medi1.sv-intro-media{width:min(100%,460px)}}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-p1grid1 *//* WHY (c) NON-BUCKET @media: 980 is not a breakpoint on this site (mobile 767 / tablet 1220 ONLY). The tablet bucket fires at 1220 and would wrongly stack 981-1220, which the mock does not do. The desktop track list 1.06fr .94fr and the desktop gap are BOTH on the native controls - nothing control-expressible is restated here outside the @media.
   TRAP 12 / LINT L10: element custom_css is emitted in Elementor's DESKTOP group, i.e. BEFORE the 1220 and 767 blocks, so a bare '.elementor-2459 .elementor-element.elementor-element-p1grid1' (0,1,0) would LOSE to Elementor's own 1220 rule at 980. Specificity is raised through the element's SECOND class to (0,2,0). NEVER !important.
   This container is content_width:'full' (.e-con-full, no inner), so M1 does not apply and these properties land on the element itself. */
@media (max-width:980px){.elementor-2459 .elementor-element.elementor-element-p1grid1.sv-intro-grid{--e-con-grid-template-columns:1fr;gap:34px}}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-p1sect1 *//* WHY (a) TWO PSEUDO-ELEMENTS: (i) no control paints a rotated, sub-6%-opacity decorative texture layer behind a container's children, and no control emits transform on a pseudo; (ii) no control paints a 4px full-bleed gradient rule inside a container's border box. Clipping the watermark's bleed is the NATIVE Layout>Overflow:Hidden control, not CSS.
   TRAP 3 / LINT L1 COUNTER-DECLARATIONS, one per pseudo. ::before anchors RIGHT -> left:auto is LOAD-BEARING: the .e-con pseudo base rule in custom-frontend.min.css hard-sets top/left/width/height and declares right ZERO times, so without it the browser silently discards right:-80px and the watermark paints from the LEFT edge (the T-40 F2 defect verbatim). ::after anchors BOTTOM -> top:auto is LOAD-BEARING, and it is the correct counter rather than height:auto because height:4px is the value being reproduced.
   repeating-linear-gradient is a TEXTURE and is excluded from the gradient tally (spec 9).
   MOCK-FAITHFUL, FLAGGED (spec [PENDING] #9): --ink at .05 on an ink section renders effectively invisible. .sv-intro .speedlines overrides only geometry, never the colour. Recolouring it would be inventing a value no approved source carries. */

.elementor-2459 .elementor-element.elementor-element-p1sect1::after{content:"";position:absolute;left:0;bottom:0;top:auto;width:100%;height:4px;background:var(--steel-md)}

/* Diagonal hatch watermark REMOVED 2026-07-29 on Rupesh's instruction (same as homepage).
   Frees ::before so Elementor's NATIVE background-overlay can be used on this section. *//* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-p1eyb02 *//* WHY (b) PSEUDO-ELEMENT + DESCENDANT SELECTOR: the 28x3 gradient bar has no control of any kind (the Heading widget has no Background section at all), and no control reaches .elementor-heading-title to make it inline-flex with a gap. Not a container pseudo, so L1 does not apply (INFO at most).
   The bar is styled INSIDE each eyebrow and is deliberately NOT promoted to a shared kit class: Home S4's eyebrow is a 48x4 bar answering to a similar name (drift D3) and the two treatments would collide again.
   line-height:normal is set NATIVELY ({unit:'custom',size:'normal'}) because the mock writes font:700 .8rem var(--font-head), a SHORTHAND, which resets line-height - it is not in this block. */
.elementor-2459 .elementor-element.elementor-element-p1eyb02 .elementor-heading-title{display:inline-flex;align-items:center;gap:10px}
.elementor-2459 .elementor-element.elementor-element-p1eyb02 .elementor-heading-title::before{content:"";flex:none;width:28px;height:3px;border-radius:2px;background:var(--steel-md)}/* End custom CSS */
/* Start custom CSS for image, class: .elementor-element-p1cim01 */.elementor-2459 .elementor-element.elementor-element-p1cim01{position:relative;display:block;overflow:visible;text-align:center}
.elementor-2459 .elementor-element.elementor-element-p1cim01 img{display:block;width:75px;height:75px;object-fit:contain;margin:0 auto}/* End custom CSS */
/* Start custom CSS for text-editor, class: .elementor-element-p1cln01 *//* EQUAL TEXT BLOCK 2026-07-29 (Rupesh): card copy runs 4/5/4/6 lines, which made the gap
   above "Learn More" 97/74/97/51px even though the cards are already equal height. Floor the
   copy block at the tallest (6 lines = 9.3em) so the gap is identical. Desktop only - below
   1221px the cards stack and a floor would add dead space. em keeps it font-size relative. */
@media(min-width:1221px){.elementor-2459 .elementor-element.elementor-element-p1cln01{min-height:9.3em}}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-p1cmr01 *//* WHY (m) PSEUDO-ELEMENT + DESCENDANT SELECTOR: the arrow is a bespoke path with no Font Awesome equivalent that can also be nudged from the CARD's hover, and no control makes .elementor-heading-title an inline-flex with a gap. The transform itself is applied by block (j) on the card - only the transition easing lives here, with the element it eases.
   This is a HEADING, not a Button and not a link, so it emits no <a> of its own and adds no duplicate tab stop inside the card anchor (a nested <a> would be invalid HTML). */
.elementor-2459 .elementor-element.elementor-element-p1cmr01 .elementor-heading-title{display:inline-flex;align-items:center;gap:7px}
.elementor-2459 .elementor-element.elementor-element-p1cmr01 .elementor-heading-title::after{content:"";flex:none;width:15px;height:15px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23E8442E'%3E%3Cpath d='M5 12h12l-5-5 1.4-1.4L21 12l-7.6 6.4L12 17l5-5H5z'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;background-position:center;transition:transform .25s}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-p1crd01 *//* WHY (j) ANCESTOR-HOVER DESCENDANT SELECTORS: the mock lifts .sv-cbody and nudges the arrow from the CARD's hover, not from the element's own. A native self-hover transform on the body would not fire while the pointer is over the photo, which is most of the card. No control expresses an ancestor-hover. The trailing rule zeroes the text-decoration this container inherits as an <a>, which no container control reaches either.
   The body's own bg/border/radius/padding/flex-grow and the more-label's typography are ALL native controls and none is restated here - only the hover deltas and their easing. */
.elementor-2459 .elementor-element.elementor-element-p1crd01{text-decoration:none}
.elementor-2459 .elementor-element.elementor-element-p1crd01 .sv-cbody{transition:transform .3s,box-shadow .3s}
.elementor-2459 .elementor-element.elementor-element-p1crd01:hover .sv-cbody{transform:translateY(-6px);box-shadow:var(--shadow-lift)}
.elementor-2459 .elementor-element.elementor-element-p1crd01:hover .sv-more .elementor-heading-title::after{transform:translateX(4px)}/* End custom CSS */
/* Start custom CSS for image, class: .elementor-element-p1cim02 */.elementor-2459 .elementor-element.elementor-element-p1cim02{position:relative;display:block;overflow:visible;text-align:center}
.elementor-2459 .elementor-element.elementor-element-p1cim02 img{display:block;width:75px;height:75px;object-fit:contain;margin:0 auto}/* End custom CSS */
/* Start custom CSS for text-editor, class: .elementor-element-p1cln02 *//* EQUAL TEXT BLOCK 2026-07-29 (Rupesh): card copy runs 4/5/4/6 lines, which made the gap
   above "Learn More" 97/74/97/51px even though the cards are already equal height. Floor the
   copy block at the tallest (6 lines = 9.3em) so the gap is identical. Desktop only - below
   1221px the cards stack and a floor would add dead space. em keeps it font-size relative. */
@media(min-width:1221px){.elementor-2459 .elementor-element.elementor-element-p1cln02{min-height:9.3em}}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-p1cmr02 *//* WHY (m) PSEUDO-ELEMENT + DESCENDANT SELECTOR: the arrow is a bespoke path with no Font Awesome equivalent that can also be nudged from the CARD's hover, and no control makes .elementor-heading-title an inline-flex with a gap. The transform itself is applied by block (j) on the card - only the transition easing lives here, with the element it eases.
   This is a HEADING, not a Button and not a link, so it emits no <a> of its own and adds no duplicate tab stop inside the card anchor (a nested <a> would be invalid HTML). */
.elementor-2459 .elementor-element.elementor-element-p1cmr02 .elementor-heading-title{display:inline-flex;align-items:center;gap:7px}
.elementor-2459 .elementor-element.elementor-element-p1cmr02 .elementor-heading-title::after{content:"";flex:none;width:15px;height:15px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23E8442E'%3E%3Cpath d='M5 12h12l-5-5 1.4-1.4L21 12l-7.6 6.4L12 17l5-5H5z'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;background-position:center;transition:transform .25s}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-p1crd02 *//* WHY (j) ANCESTOR-HOVER DESCENDANT SELECTORS: the mock lifts .sv-cbody and nudges the arrow from the CARD's hover, not from the element's own. A native self-hover transform on the body would not fire while the pointer is over the photo, which is most of the card. No control expresses an ancestor-hover. The trailing rule zeroes the text-decoration this container inherits as an <a>, which no container control reaches either.
   The body's own bg/border/radius/padding/flex-grow and the more-label's typography are ALL native controls and none is restated here - only the hover deltas and their easing. */
.elementor-2459 .elementor-element.elementor-element-p1crd02{text-decoration:none}
.elementor-2459 .elementor-element.elementor-element-p1crd02 .sv-cbody{transition:transform .3s,box-shadow .3s}
.elementor-2459 .elementor-element.elementor-element-p1crd02:hover .sv-cbody{transform:translateY(-6px);box-shadow:var(--shadow-lift)}
.elementor-2459 .elementor-element.elementor-element-p1crd02:hover .sv-more .elementor-heading-title::after{transform:translateX(4px)}/* End custom CSS */
/* Start custom CSS for image, class: .elementor-element-p1cim03 */.elementor-2459 .elementor-element.elementor-element-p1cim03{position:relative;display:block;overflow:visible;text-align:center}
.elementor-2459 .elementor-element.elementor-element-p1cim03 img{display:block;width:75px;height:75px;object-fit:contain;margin:0 auto}/* End custom CSS */
/* Start custom CSS for text-editor, class: .elementor-element-p1cln03 *//* EQUAL TEXT BLOCK 2026-07-29 (Rupesh): card copy runs 4/5/4/6 lines, which made the gap
   above "Learn More" 97/74/97/51px even though the cards are already equal height. Floor the
   copy block at the tallest (6 lines = 9.3em) so the gap is identical. Desktop only - below
   1221px the cards stack and a floor would add dead space. em keeps it font-size relative. */
@media(min-width:1221px){.elementor-2459 .elementor-element.elementor-element-p1cln03{min-height:9.3em}}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-p1cmr03 *//* WHY (m) PSEUDO-ELEMENT + DESCENDANT SELECTOR: the arrow is a bespoke path with no Font Awesome equivalent that can also be nudged from the CARD's hover, and no control makes .elementor-heading-title an inline-flex with a gap. The transform itself is applied by block (j) on the card - only the transition easing lives here, with the element it eases.
   This is a HEADING, not a Button and not a link, so it emits no <a> of its own and adds no duplicate tab stop inside the card anchor (a nested <a> would be invalid HTML). */
.elementor-2459 .elementor-element.elementor-element-p1cmr03 .elementor-heading-title{display:inline-flex;align-items:center;gap:7px}
.elementor-2459 .elementor-element.elementor-element-p1cmr03 .elementor-heading-title::after{content:"";flex:none;width:15px;height:15px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23E8442E'%3E%3Cpath d='M5 12h12l-5-5 1.4-1.4L21 12l-7.6 6.4L12 17l5-5H5z'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;background-position:center;transition:transform .25s}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-p1crd03 *//* WHY (j) ANCESTOR-HOVER DESCENDANT SELECTORS: the mock lifts .sv-cbody and nudges the arrow from the CARD's hover, not from the element's own. A native self-hover transform on the body would not fire while the pointer is over the photo, which is most of the card. No control expresses an ancestor-hover. The trailing rule zeroes the text-decoration this container inherits as an <a>, which no container control reaches either.
   The body's own bg/border/radius/padding/flex-grow and the more-label's typography are ALL native controls and none is restated here - only the hover deltas and their easing. */
.elementor-2459 .elementor-element.elementor-element-p1crd03{text-decoration:none}
.elementor-2459 .elementor-element.elementor-element-p1crd03 .sv-cbody{transition:transform .3s,box-shadow .3s}
.elementor-2459 .elementor-element.elementor-element-p1crd03:hover .sv-cbody{transform:translateY(-6px);box-shadow:var(--shadow-lift)}
.elementor-2459 .elementor-element.elementor-element-p1crd03:hover .sv-more .elementor-heading-title::after{transform:translateX(4px)}/* End custom CSS */
/* Start custom CSS for image, class: .elementor-element-p1cim04 */.elementor-2459 .elementor-element.elementor-element-p1cim04{position:relative;display:block;overflow:visible;text-align:center}
.elementor-2459 .elementor-element.elementor-element-p1cim04 img{display:block;width:75px;height:75px;object-fit:contain;margin:0 auto}/* End custom CSS */
/* Start custom CSS for text-editor, class: .elementor-element-p1cln04 *//* EQUAL TEXT BLOCK 2026-07-29 (Rupesh): card copy runs 4/5/4/6 lines, which made the gap
   above "Learn More" 97/74/97/51px even though the cards are already equal height. Floor the
   copy block at the tallest (6 lines = 9.3em) so the gap is identical. Desktop only - below
   1221px the cards stack and a floor would add dead space. em keeps it font-size relative. */
@media(min-width:1221px){.elementor-2459 .elementor-element.elementor-element-p1cln04{min-height:9.3em}}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-p1cmr04 *//* WHY (m) PSEUDO-ELEMENT + DESCENDANT SELECTOR: the arrow is a bespoke path with no Font Awesome equivalent that can also be nudged from the CARD's hover, and no control makes .elementor-heading-title an inline-flex with a gap. The transform itself is applied by block (j) on the card - only the transition easing lives here, with the element it eases.
   This is a HEADING, not a Button and not a link, so it emits no <a> of its own and adds no duplicate tab stop inside the card anchor (a nested <a> would be invalid HTML). */
.elementor-2459 .elementor-element.elementor-element-p1cmr04 .elementor-heading-title{display:inline-flex;align-items:center;gap:7px}
.elementor-2459 .elementor-element.elementor-element-p1cmr04 .elementor-heading-title::after{content:"";flex:none;width:15px;height:15px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23E8442E'%3E%3Cpath d='M5 12h12l-5-5 1.4-1.4L21 12l-7.6 6.4L12 17l5-5H5z'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;background-position:center;transition:transform .25s}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-p1crd04 *//* WHY (j) ANCESTOR-HOVER DESCENDANT SELECTORS: the mock lifts .sv-cbody and nudges the arrow from the CARD's hover, not from the element's own. A native self-hover transform on the body would not fire while the pointer is over the photo, which is most of the card. No control expresses an ancestor-hover. The trailing rule zeroes the text-decoration this container inherits as an <a>, which no container control reaches either.
   The body's own bg/border/radius/padding/flex-grow and the more-label's typography are ALL native controls and none is restated here - only the hover deltas and their easing. */
.elementor-2459 .elementor-element.elementor-element-p1crd04{text-decoration:none}
.elementor-2459 .elementor-element.elementor-element-p1crd04 .sv-cbody{transition:transform .3s,box-shadow .3s}
.elementor-2459 .elementor-element.elementor-element-p1crd04:hover .sv-cbody{transform:translateY(-6px);box-shadow:var(--shadow-lift)}
.elementor-2459 .elementor-element.elementor-element-p1crd04:hover .sv-more .elementor-heading-title::after{transform:translateX(4px)}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-p1grd04 *//* WHY (i) NON-BUCKET @media x2: 980 and 480 are not breakpoints on this site. The tablet bucket fires at 1220 and would wrongly 2-up 981-1220; the mobile bucket fires at 767 and would wrongly 1-up 481-767. Both steps live in ONE block so their cascade order is deterministic in source order.
   The desktop track list repeat(4,1fr) is on the NATIVE grid_columns_grid control and the 481-767 value on grid_columns_grid_mobile - putting a track list in Custom CSS is the exact BUILD-10 defect (lint L5) that G2 filed against s8grid1/s10grid1.
   TRAP 12 / L10: both rules raise specificity through the second class to (0,2,0), which beats Elementor's own 1220/767 rules at (0,1,0) regardless of source order. No !important. */
@media (max-width:980px){.elementor-2459 .elementor-element.elementor-element-p1grd04.sv-grid4{--e-con-grid-template-columns:repeat(2,1fr)}}
@media (max-width:480px){.elementor-2459 .elementor-element.elementor-element-p1grd04.sv-grid4{--e-con-grid-template-columns:1fr}}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-p1eyb03 *//* WHY (b) PSEUDO-ELEMENT + DESCENDANT SELECTOR: the 28x3 gradient bar has no control of any kind (the Heading widget has no Background section at all), and no control reaches .elementor-heading-title to make it inline-flex with a gap. Not a container pseudo, so L1 does not apply (INFO at most).
   The bar is styled INSIDE each eyebrow and is deliberately NOT promoted to a shared kit class: Home S4's eyebrow is a 48x4 bar answering to a similar name (drift D3) and the two treatments would collide again.
   line-height:normal is set NATIVELY ({unit:'custom',size:'normal'}) because the mock writes font:700 .8rem var(--font-head), a SHORTHAND, which resets line-height - it is not in this block. */
.elementor-2459 .elementor-element.elementor-element-p1eyb03 .elementor-heading-title{display:inline-flex;align-items:center;gap:10px}
.elementor-2459 .elementor-element.elementor-element-p1eyb03 .elementor-heading-title::before{content:"";flex:none;width:28px;height:3px;border-radius:2px;background:var(--steel-md)}/* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-p1plt01 *//* WHY (l) (i) DESCENDANT SELECTORS: the Icon List exposes NO control for display:grid / grid-template-columns on the <ul>, and none for per-item background, border, border-radius, padding or box-shadow - the entire plate chrome is unreachable. (ii) PSEUDO-ELEMENT: the marker is an 8x8 2px-radius GRADIENT square, which no Font Awesome glyph can be (a glyph takes neither border-radius nor a gradient fill). (iii) STATE SELECTOR: :hover transform / box-shadow have no controls on this widget. (iv) NON-BUCKET @media x2: 980 and 480 are not breakpoints here.
   THE NATIVE CONTROL CANNOT PRODUCE THE VALUE either: Space Between emits padding-bottom on :not(:last-child) plus margin-top on :not(:first-child), which is a stacked-list rhythm, not a symmetric 13px grid gap - so it is pinned to 0 natively and never fights this rule.
   --shadow-card / --shadow-lift are read from the kit :root rather than via .fc-shadow-card/.fc-shadow-lift, because a descendant .elementor-2459 .elementor-element.elementor-element-p1plt01 already justifies this block and a utility class cannot be attached to a repeater row.
   TRAP 12 / L10: both @media rules raise specificity through the second class. Text colour and text typography ARE native controls and are set natively - deliberately not duplicated here.
   ONE rule styles all 18 plates: a padding change is ONE edit, not 18 (spec 5). */
.elementor-2459 .elementor-element.elementor-element-p1plt01 .elementor-icon-list-items{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}
.elementor-2459 .elementor-element.elementor-element-p1plt01 .elementor-icon-list-item{position:relative;margin:0;padding:4px 0;display:flex;align-items:center;gap:12px}
.elementor-2459 .elementor-element.elementor-element-p1plt01 .elementor-icon-list-item::before{content:"";flex:none;width:8px;height:8px;border-radius:2px;background:var(--steel-md)}
@media (max-width:980px){.elementor-2459 .elementor-element.elementor-element-p1plt01.sv-plate-grid .elementor-icon-list-items{grid-template-columns:repeat(2,1fr)}}
@media (max-width:480px){.elementor-2459 .elementor-element.elementor-element-p1plt01.sv-plate-grid .elementor-icon-list-items{grid-template-columns:1fr}}/* End custom CSS */
/* Start custom CSS for text-editor, class: .elementor-element-baec7150 */.elementor-2459 .elementor-element.elementor-element-baec7150{margin-top:28px}
.elementor-2459 .elementor-element.elementor-element-baec7150 p{margin:0 0 14px}
.elementor-2459 .elementor-element.elementor-element-baec7150 p:last-child{margin-bottom:0}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-p1eyb04 *//* WHY (b4) Same two reasons as (b1-b3) - pseudo-element + descendant .elementor-2459 .elementor-element.elementor-element-p1eyb04. The ONLY difference is the bar colour: .sv-cta .eyebrow::before overrides the gradient with a flat #FFFFFF, because the band behind it is already the gradient. This bar is therefore NOT a gradient element and does not count against the ceiling. */
.elementor-2459 .elementor-element.elementor-element-p1eyb04 .elementor-heading-title{display:inline-flex;align-items:center;gap:10px}
.elementor-2459 .elementor-element.elementor-element-p1eyb04 .elementor-heading-title::before{content:"";flex:none;width:28px;height:3px;border-radius:2px;background:#FFFFFF}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-p1hed04 *//* WHY (o) DESCENDANT SELECTOR: text-wrap has no control at any level, and the Heading text-shadow control key is unproven on this stack (absent from PROVEN-KEY-VOCAB and from the 3b probe - spec [PENDING] #7), so it is written here rather than guessed into a control that might silently no-op. If the probe confirms text_shadow_text_shadow at build time, move the shadow to the control and leave this block as the text-wrap rule. */
.elementor-2459 .elementor-element.elementor-element-p1hed04 .elementor-heading-title{text-wrap:balance;text-shadow:0 2px 24px rgba(16,20,24,.6)}/* End custom CSS */
/* Start custom CSS for text-editor, class: .elementor-element-p1sub04 *//* WHY (p) DESCENDANT SELECTOR: the shadow must land on the Text Editor's inner <p>, which no widget control reaches. The Text Editor has no text-shadow control at all. */
.elementor-2459 .elementor-element.elementor-element-p1sub04 p{text-shadow:0 1px 8px rgba(16,20,24,.3)}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-p1cbr01 *//* WHY (q) (i) NON-BUCKET @media: 480 is not a breakpoint on this site; the mobile bucket fires at 767 and would wrongly stretch the buttons across 481-767, which the mock does not do. (ii) DESCENDANT SELECTOR: the target is the .elementor-button inside each CHILD widget, not this row, and no control on the row reaches it.
   TRAP 12 / L10: specificity is raised through the row's second class to (0,2,0) so this rule beats Elementor's own 767 block regardless of source order. No !important.
   The row's own direction, wrap, 15px gap and top margin are ALL native controls and none is restated here. */
@media (max-width:480px){.elementor-2459 .elementor-element.elementor-element-p1cbr01.sv-cta-btns .elementor-widget-button{width:100%}.elementor-2459 .elementor-element.elementor-element-p1cbr01.sv-cta-btns .elementor-button{width:100%;justify-content:center}}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-p1sect4 */.elementor-2459 .elementor-element.elementor-element-p1sect4::after{z-index:-1;pointer-events:none;content:"";position:absolute;inset:0;width:auto;height:auto;pointer-events:none;}

/* Diagonal hatch REMOVED 2026-07-29 (Rupesh). Background is now a photo + native gradient overlay. *//* End custom CSS */