.elementor-1122 .elementor-element.elementor-element-9e88b79{--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;--overlay-opacity:0.8;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:200px;--padding-bottom:200px;--padding-left:0px;--padding-right:0px;}.elementor-1122 .elementor-element.elementor-element-9e88b79:not(.elementor-motion-effects-element-type-background), .elementor-1122 .elementor-element.elementor-element-9e88b79 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-astglobalcolor2 );}.elementor-1122 .elementor-element.elementor-element-9e88b79::before, .elementor-1122 .elementor-element.elementor-element-9e88b79 > .elementor-background-video-container::before, .elementor-1122 .elementor-element.elementor-element-9e88b79 > .e-con-inner > .elementor-background-video-container::before, .elementor-1122 .elementor-element.elementor-element-9e88b79 > .elementor-background-slideshow::before, .elementor-1122 .elementor-element.elementor-element-9e88b79 > .e-con-inner > .elementor-background-slideshow::before, .elementor-1122 .elementor-element.elementor-element-9e88b79 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:var( --e-global-color-astglobalcolor2 );--background-overlay:'';}.elementor-1122 .elementor-element.elementor-element-9e88b79 > .elementor-shape-bottom .elementor-shape-fill, .elementor-1122 .elementor-element.elementor-element-9e88b79 > .e-con-inner > .elementor-shape-bottom .elementor-shape-fill{fill:#FFFFFF;}.elementor-1122 .elementor-element.elementor-element-9e88b79 > .elementor-shape-bottom svg, .elementor-1122 .elementor-element.elementor-element-9e88b79 > .e-con-inner > .elementor-shape-bottom svg{width:calc(0 + 1.3px);height:3em;}.elementor-1122 .elementor-element.elementor-element-ab8e243{--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;--justify-content:space-between;--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-1122 .elementor-element.elementor-element-1a5981b{--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;--justify-content:center;--align-items:flex-start;--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-1122 .elementor-element.elementor-element-9be0db5 .elementor-heading-title{color:#FFFFFF;}.elementor-1122 .elementor-element.elementor-element-507e1d3{--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:14px 14px;--row-gap:14px;--column-gap:14px;--flex-wrap:wrap;--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-1122 .elementor-element.elementor-element-507e1d3.e-con{--align-self:flex-start;}.elementor-1122 .elementor-element.elementor-element-6691216{--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:stretch;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-1122 .elementor-element.elementor-element-427e6c1{--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;--justify-content:center;--align-items:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-1122 .elementor-element.elementor-element-3c1f5e8 .elementor-heading-title{color:#FFFFFF;}.elementor-1122 .elementor-element.elementor-element-683cb96 .elementor-heading-title{font-family:"Open Sans", Sans-serif;font-weight:400;color:#FFFFFF;}.elementor-1122 .elementor-element.elementor-element-49d037a{--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;--justify-content:center;--align-items:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-1122 .elementor-element.elementor-element-bf46163 .elementor-heading-title{color:#FFFFFF;}.elementor-1122 .elementor-element.elementor-element-238fc11 .elementor-heading-title{font-family:"Open Sans", Sans-serif;font-weight:400;color:#FFFFFF;}.elementor-1122 .elementor-element.elementor-element-6cf8132{--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;--justify-content:center;--align-items:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-1122 .elementor-element.elementor-element-457f925 .elementor-heading-title{color:#FFFFFF;}.elementor-1122 .elementor-element.elementor-element-32cf8ac .elementor-heading-title{font-family:"Open Sans", Sans-serif;font-weight:400;color:#FFFFFF;}.elementor-1122 .elementor-element.elementor-element-5b6ab08{--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;--justify-content:flex-start;--align-items:stretch;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:nowrap;--overlay-opacity:0.02;--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-1122 .elementor-element.elementor-element-5b6ab08::before, .elementor-1122 .elementor-element.elementor-element-5b6ab08 > .elementor-background-video-container::before, .elementor-1122 .elementor-element.elementor-element-5b6ab08 > .e-con-inner > .elementor-background-video-container::before, .elementor-1122 .elementor-element.elementor-element-5b6ab08 > .elementor-background-slideshow::before, .elementor-1122 .elementor-element.elementor-element-5b6ab08 > .e-con-inner > .elementor-background-slideshow::before, .elementor-1122 .elementor-element.elementor-element-5b6ab08 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-image:url("https://hein.ca/wp-content/uploads/2026/07/HEIN_BluePrint_Background_Blue-scaled-1.webp");--background-overlay:'';background-repeat:no-repeat;background-size:contain;}.elementor-1122 .elementor-element.elementor-element-920de37{--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;--gap:50px 80px;--row-gap:50px;--column-gap:80px;--flex-wrap:nowrap;}.elementor-1122 .elementor-element.elementor-element-57332f4{--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;--justify-content:flex-end;--align-items:flex-end;--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-1122 .elementor-element.elementor-element-4c5d677{--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-1122 .elementor-element.elementor-element-c973018{--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;--justify-content:center;--align-items:flex-start;--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-1122 .elementor-element.elementor-element-c68093c .elementor-heading-title{text-transform:none;}.elementor-1122 .elementor-element.elementor-element-e37813c{--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;--justify-content:center;--align-items:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:nowrap;--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-1122 .elementor-element.elementor-element-aa7aeb2 .elementor-heading-title{font-weight:400;}.elementor-1122 .elementor-element.elementor-element-1ac0533{--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;--justify-content:flex-start;--align-items:stretch;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:nowrap;--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-1122 .elementor-element.elementor-element-99f57dd{--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:flex-start;--gap:10px 17px;--row-gap:10px;--column-gap:17px;--flex-wrap:nowrap;--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-1122 .elementor-element.elementor-element-6b4270e{--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;--justify-content:flex-start;--align-items:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-1122 .elementor-element.elementor-element-ba6bf10{--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:flex-start;--gap:10px 17px;--row-gap:10px;--column-gap:17px;--flex-wrap:nowrap;--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-1122 .elementor-element.elementor-element-21a4086{--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;--justify-content:flex-start;--align-items:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-1122 .elementor-element.elementor-element-2b1b199{--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:flex-start;--gap:10px 17px;--row-gap:10px;--column-gap:17px;--flex-wrap:nowrap;--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-1122 .elementor-element.elementor-element-74911f4{--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;--justify-content:flex-start;--align-items:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-1122 .elementor-element.elementor-element-d782afe{--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;--justify-content:flex-start;--align-items:stretch;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:nowrap;--overflow:hidden;--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-1122 .elementor-element.elementor-element-ce13847{--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;--justify-content:flex-start;--align-items:stretch;--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-1122 .elementor-element.elementor-element-9b940aa{--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:24px 40px;--row-gap:24px;--column-gap:40px;--flex-wrap:nowrap;--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-1122 .elementor-element.elementor-element-64c6a3a{--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;--justify-content:flex-start;--align-items:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:nowrap;--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-1122 .elementor-element.elementor-element-025aa2f .elementor-heading-title{font-family:"aller", Sans-serif;font-weight:400;text-transform:uppercase;}.elementor-1122 .elementor-element.elementor-element-ff91f48{--display:flex;}.elementor-1122 .elementor-element.elementor-element-baba38b > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-1122 .elementor-element.elementor-element-2221a5e{--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:stretch;--flex-wrap:nowrap;--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-1122 .elementor-element.elementor-element-91d21db{--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;--justify-content:space-between;--align-items:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:nowrap;--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-1122 .elementor-element.elementor-element-48cb740 .elementor-heading-title{font-size:26px;}.elementor-1122 .elementor-element.elementor-element-a8b22a1{--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;--justify-content:space-between;--align-items:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:nowrap;--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-1122 .elementor-element.elementor-element-6ee5649 .elementor-heading-title{font-size:26px;}.elementor-1122 .elementor-element.elementor-element-ec85525{--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;--justify-content:space-between;--align-items:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:nowrap;--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-1122 .elementor-element.elementor-element-f124da5 .elementor-heading-title{font-size:26px;}.elementor-1122 .elementor-element.elementor-element-69db89b{--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;--justify-content:flex-start;--align-items:stretch;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:nowrap;--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-1122 .elementor-element.elementor-element-7d26e80{--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;--justify-content:flex-start;--align-items:stretch;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:nowrap;--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-1122 .elementor-element.elementor-element-8c481be{--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:24px 30px;--row-gap:24px;--column-gap:30px;--flex-wrap:nowrap;--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-1122 .elementor-element.elementor-element-f663d42{--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;--justify-content:flex-start;--align-items:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:nowrap;--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-1122 .elementor-element.elementor-element-874bfff .elementor-heading-title{font-weight:400;text-transform:uppercase;}.elementor-1122 .elementor-element.elementor-element-c1bf093{--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;--justify-content:flex-start;--align-items:stretch;--flex-wrap:nowrap;--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-1122 .elementor-element.elementor-element-ae0f6be{--grid-columns:3;}.elementor-1122 .elementor-element.elementor-element-ae0f6be .elementor-pagination{text-align:center;}.elementor-1122 .elementor-element.elementor-element-ae0f6be .elementor-pagination .page-numbers:not(.dots){color:#003057;}.elementor-1122 .elementor-element.elementor-element-ae0f6be .elementor-pagination a.page-numbers:hover{color:#EA7600;}.elementor-1122 .elementor-element.elementor-element-ae0f6be .elementor-pagination .page-numbers.current{color:#EA7600;}body:not(.rtl) .elementor-1122 .elementor-element.elementor-element-ae0f6be .elementor-pagination .page-numbers:not(:first-child){margin-left:calc( 10px/2 );}body:not(.rtl) .elementor-1122 .elementor-element.elementor-element-ae0f6be .elementor-pagination .page-numbers:not(:last-child){margin-right:calc( 10px/2 );}body.rtl .elementor-1122 .elementor-element.elementor-element-ae0f6be .elementor-pagination .page-numbers:not(:first-child){margin-right:calc( 10px/2 );}body.rtl .elementor-1122 .elementor-element.elementor-element-ae0f6be .elementor-pagination .page-numbers:not(:last-child){margin-left:calc( 10px/2 );}.elementor-1122 .elementor-element.elementor-element-72a63d7{--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;--justify-content:flex-start;--align-items:stretch;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:nowrap;--overflow:hidden;--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-1122 .elementor-element.elementor-element-1c12569{--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;--gap:24px 24px;--row-gap:24px;--column-gap:24px;--flex-wrap:nowrap;--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-1122 .elementor-element.elementor-element-21ed311{--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;--justify-content:flex-start;--align-items:flex-start;--flex-wrap:nowrap;--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-1122 .elementor-element.elementor-element-b0aaf76 .elementor-heading-title{color:#FFFFFF;}.elementor-1122 .elementor-element.elementor-element-e1eef10 .elementor-heading-title{font-weight:400;}.elementor-1122 .elementor-element.elementor-element-8b82d99{--e-image-carousel-slides-to-show:3;}.elementor-1122 .elementor-element.elementor-element-8b82d99 .swiper-wrapper{display:flex;align-items:center;}.elementor-1122 .elementor-element.elementor-element-ac765c6{--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;--justify-content:flex-start;--align-items:stretch;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:nowrap;--overflow:hidden;--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-1122 .elementor-element.elementor-element-a2465dd{--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;--justify-content:flex-start;--align-items:stretch;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:nowrap;--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-1122 .elementor-element.elementor-element-0cab7c3{--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:28px 70px;--row-gap:28px;--column-gap:70px;--flex-wrap:nowrap;--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-1122 .elementor-element.elementor-element-8ba2170{--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;--justify-content:flex-start;--align-items:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:nowrap;--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-1122 .elementor-element.elementor-element-3cbeaa0 .elementor-heading-title{font-family:"aller", Sans-serif;font-weight:400;text-transform:uppercase;}.elementor-1122 .elementor-element.elementor-element-a7eee6d{width:var( --container-widget-width, 38% );max-width:38%;--container-widget-width:38%;--container-widget-flex-grow:0;}.elementor-1122 .elementor-element.elementor-element-a7eee6d > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-1122 .elementor-element.elementor-element-d8bc244{--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:stretch;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:nowrap;--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-1122 .elementor-element.elementor-element-94254e2{--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;--justify-content:flex-start;--align-items:flex-start;--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-1122 .elementor-element.elementor-element-75ecc4b{--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;--justify-content:flex-start;--align-items:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:nowrap;--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-1122 .elementor-element.elementor-element-43250bd{--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;--justify-content:flex-start;--align-items:flex-start;--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-1122 .elementor-element.elementor-element-411299e{--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;--justify-content:flex-start;--align-items:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:nowrap;--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-1122 .elementor-element.elementor-element-1eb5178{--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;--justify-content:flex-start;--align-items:flex-start;--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-1122 .elementor-element.elementor-element-82321ac{--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;--justify-content:flex-start;--align-items:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:nowrap;--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-1122 .elementor-element.elementor-element-7669605{--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;--justify-content:flex-start;--align-items:flex-start;--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-1122 .elementor-element.elementor-element-1a1f9a5{--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;--justify-content:flex-start;--align-items:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:nowrap;--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-1122 .elementor-element.elementor-element-cc5d2f8{--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;--justify-content:center;--align-items:stretch;--overflow:hidden;--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-1122 .elementor-element.elementor-element-cc5d2f8 > .elementor-shape-top svg, .elementor-1122 .elementor-element.elementor-element-cc5d2f8 > .e-con-inner > .elementor-shape-top svg{width:calc(110% + 1.3px);height:62px;}.elementor-1122 .elementor-element.elementor-element-5d8b0d7{--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;--justify-content:center;--align-items:center;--overlay-opacity:0.72;--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-1122 .elementor-element.elementor-element-5d8b0d7::before, .elementor-1122 .elementor-element.elementor-element-5d8b0d7 > .elementor-background-video-container::before, .elementor-1122 .elementor-element.elementor-element-5d8b0d7 > .e-con-inner > .elementor-background-video-container::before, .elementor-1122 .elementor-element.elementor-element-5d8b0d7 > .elementor-background-slideshow::before, .elementor-1122 .elementor-element.elementor-element-5d8b0d7 > .e-con-inner > .elementor-background-slideshow::before, .elementor-1122 .elementor-element.elementor-element-5d8b0d7 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{--background-overlay:'';}.elementor-1122 .elementor-element.elementor-element-13bbc8a a.elementor-button:hover, .elementor-1122 .elementor-element.elementor-element-13bbc8a .elementor-button:hover{background-color:#FFFFFF;color:#003057;}.elementor-1122 .elementor-element.elementor-element-13bbc8a .hfe-infocard{text-align:center;}.elementor-1122 .elementor-element.elementor-element-13bbc8a a.elementor-button, .elementor-1122 .elementor-element.elementor-element-13bbc8a .elementor-button{color:#FFFFFF;border-radius:24px 24px 24px 24px;}.elementor-1122 .elementor-element.elementor-element-13bbc8a .elementor-button{border-style:none;}.elementor-1122 .elementor-element.elementor-element-13bbc8a .hfe-infocard-title{color:#FFFFFF;margin:0px 0px 10px 0px;}.elementor-1122 .elementor-element.elementor-element-13bbc8a .hfe-infocard-text{color:#FFFFFF;margin:0px 0px 0px 0px;}.elementor-1122 .elementor-element.elementor-element-13bbc8a .hfe-infocard-cta-link-style, .elementor-1122 .elementor-element.elementor-element-13bbc8a .hfe-button-wrapper{margin:10px 0px 0px 0px;}:root{--page-title-display:none;}@media(max-width:1024px){.elementor-1122 .elementor-element.elementor-element-9e88b79{--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:150px;--padding-bottom:150px;--padding-left:32px;--padding-right:32px;}.elementor-1122 .elementor-element.elementor-element-ab8e243{--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-1122 .elementor-element.elementor-element-ae0f6be{--grid-columns:2;}.elementor-1122 .elementor-element.elementor-element-8b82d99{--e-image-carousel-slides-to-show:4;}}@media(min-width:768px){.elementor-1122 .elementor-element.elementor-element-9e88b79{--width:100%;}.elementor-1122 .elementor-element.elementor-element-ab8e243{--width:1200px;}.elementor-1122 .elementor-element.elementor-element-1a5981b{--content-width:1200px;}.elementor-1122 .elementor-element.elementor-element-427e6c1{--width:33.33%;}.elementor-1122 .elementor-element.elementor-element-49d037a{--width:33.33%;}.elementor-1122 .elementor-element.elementor-element-6cf8132{--width:33.33%;}.elementor-1122 .elementor-element.elementor-element-920de37{--width:1200px;}.elementor-1122 .elementor-element.elementor-element-57332f4{--content-width:46%;}.elementor-1122 .elementor-element.elementor-element-e37813c{--width:54%;}.elementor-1122 .elementor-element.elementor-element-9b940aa{--content-width:1200px;}.elementor-1122 .elementor-element.elementor-element-64c6a3a{--width:70%;}.elementor-1122 .elementor-element.elementor-element-ff91f48{--width:30%;}.elementor-1122 .elementor-element.elementor-element-c1bf093{--content-width:1200px;}.elementor-1122 .elementor-element.elementor-element-21ed311{--width:28%;}.elementor-1122 .elementor-element.elementor-element-8ba2170{--width:60%;}.elementor-1122 .elementor-element.elementor-element-94254e2{--width:25%;}.elementor-1122 .elementor-element.elementor-element-43250bd{--width:25%;}.elementor-1122 .elementor-element.elementor-element-1eb5178{--width:25%;}.elementor-1122 .elementor-element.elementor-element-7669605{--width:25%;}}@media(max-width:767px){.elementor-1122 .elementor-element.elementor-element-9e88b79{--gap:0px 0px;--row-gap:0px;--column-gap:0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:120px;--padding-bottom:120px;--padding-left:24px;--padding-right:24px;}.elementor-1122 .elementor-element.elementor-element-ab8e243{--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-1122 .elementor-element.elementor-element-507e1d3{--align-items:stretch;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-1122 .elementor-element.elementor-element-6691216{--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;--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-1122 .elementor-element.elementor-element-ae0f6be{--grid-columns:1;}.elementor-1122 .elementor-element.elementor-element-8b82d99{--e-image-carousel-slides-to-show:2;}}/* Start custom CSS for container, class: .elementor-element-9e88b79 *//* =========================================================
   HEIN HOMEPAGE HERO
   NATIVE ELEMENTOR VIDEO BACKGROUND
   ---------------------------------------------------------
   Outer container:
   hein-home-hero

   Supporting classes:
   hein-hero-shell
   hein-hero-content
   hein-hero-image
   hein-hero-eyebrow
   hein-hero-title
   hein-hero-description
   hein-hero-buttons
   hein-hero-button
   hein-hero-button-primary
   hein-hero-button-secondary
   hein-hero-facts
   hein-hero-fact
   hein-hero-fact-label
   hein-hero-fact-value
   ========================================================= */


/* =========================================================
   1. HERO ROOT
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-9e88b79 {
  --hein-blue: #003057;
  --hein-blue-dark: #001f38;
  --hein-blue-deep: #00172a;

  --hein-orange: #f58220;
  --hein-orange-dark: #d86a08;

  --hein-white: #ffffff;

  --hein-home-curve-height: 72px;

  /* =======================================================
     VIDEO POSITION

     X:
     0%   = left
     50%  = center
     100% = right

     Y:
     0%   = top
     50%  = center
     100% = bottom
     ======================================================= */

  --hein-hero-video-x: 50%;
  --hein-hero-video-y: 50%;

  /* =======================================================
     VIDEO SMOOTHING
     -------------------------------------------------------
     These values lightly soften compression / pixelation
     when the source video is enlarged across a desktop hero.

     The tiny scale prevents the blur from exposing soft
     edges around the outside of the video frame.

     Keep these values subtle. CSS cannot add real detail
     that is not present in the source file.
     ======================================================= */

  --hein-hero-video-blur: 0.35px;
  --hein-hero-video-scale: 1.008;
  --hein-hero-video-contrast: 1.015;
  --hein-hero-video-saturation: 0.97;

  position: relative;
  z-index: 1;
  isolation: isolate;

  display: flex;

  width: 100%;
  min-height: min(920px, 92svh);

  flex-direction: column;

  margin: 0;
  padding: 0 !important;

  overflow: hidden;

  color: var(--hein-white);

  background-color: var(--hein-blue-dark);

  background-position: center center !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
}


/* Predictable sizing */

.elementor-1122 .elementor-element.elementor-element-9e88b79,
.elementor-1122 .elementor-element.elementor-element-9e88b79 *,
.elementor-1122 .elementor-element.elementor-element-9e88b79 *::before,
.elementor-1122 .elementor-element.elementor-element-9e88b79 *::after {
  box-sizing: border-box;
}


/* Remove Elementor default widget spacing */

.elementor-1122 .elementor-element.elementor-element-9e88b79 .elementor-widget {
  margin-block-end: 0;
}


/* =========================================================
   2. NATIVE ELEMENTOR BACKGROUND VIDEO
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-9e88b79 > .elementor-background-video-container,
.elementor-1122 .elementor-element.elementor-element-9e88b79 > .e-con-inner > .elementor-background-video-container {
  position: absolute !important;

  inset: 0 !important;

  z-index: 0 !important;

  display: block !important;

  width: 100% !important;
  height: 100% !important;

  min-width: 100% !important;
  min-height: 100% !important;

  margin: 0 !important;
  padding: 0 !important;

  overflow: hidden !important;

  visibility: visible !important;
  opacity: 1 !important;

  pointer-events: none;

  background: var(--hein-blue-dark);

  /*
   * Keep Elementor/browser effects from softening the video layer.
   * The background video itself stays fully opaque and unfiltered.
   */
  filter: none !important;
  -webkit-filter: none !important;
  mix-blend-mode: normal !important;
  transform: none !important;
}


/* =========================================================
   3. SELF-HOSTED VIDEO
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-9e88b79 .elementor-background-video-hosted {
  position: absolute !important;

  inset: 0 !important;

  display: block !important;

  width: 100% !important;
  height: 100% !important;

  min-width: 100% !important;
  min-height: 100% !important;

  max-width: none !important;
  max-height: none !important;

  margin: 0 !important;

  /*
   * object-fit: cover gives us the required hero crop.
   * The tiny smoothing scale is applied separately below and is
   * intentionally too small to create an obvious additional zoom.
   */
  object-fit: cover !important;

  object-position:
    var(--hein-hero-video-x)
    var(--hein-hero-video-y) !important;

  visibility: visible !important;
  opacity: 1 !important;

  /*
   * Light smoothing pass for large desktop presentation.
   * This does not increase resolution. It simply reduces the
   * harsh look of scaling, macroblocking and compression edges.
   */
  filter:
    blur(var(--hein-hero-video-blur))
    contrast(var(--hein-hero-video-contrast))
    saturate(var(--hein-hero-video-saturation)) !important;

  -webkit-filter:
    blur(var(--hein-hero-video-blur))
    contrast(var(--hein-hero-video-contrast))
    saturate(var(--hein-hero-video-saturation)) !important;

  mix-blend-mode: normal !important;

  /*
   * A tiny scale hides the transparent edge that a blur can create.
   * The amount is intentionally small so the crop does not noticeably
   * change and the video is not visibly zoomed.
   */
  transform:
    translateZ(0)
    scale(var(--hein-hero-video-scale)) !important;

  transform-origin:
    center center !important;

  backface-visibility:
    hidden !important;

  -webkit-backface-visibility:
    hidden !important;

  /*
   * Keep the video on its own compositor layer. This generally gives
   * smoother playback while the browser resamples the enlarged frame.
   */
  will-change:
    transform,
    filter;

  image-rendering:
    auto;

  pointer-events: none;
}


/* =========================================================
   4. EMBEDDED VIDEO COMPATIBILITY
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-9e88b79 .elementor-background-video-embed {
  position: absolute !important;

  inset: 0 !important;

  display: block !important;

  width: 100% !important;
  height: 100% !important;

  overflow: hidden !important;

  visibility: visible !important;
  opacity: 1 !important;

  filter: none !important;
  -webkit-filter: none !important;
  mix-blend-mode: normal !important;

  pointer-events: none;
}


.elementor-1122 .elementor-element.elementor-element-9e88b79 .elementor-background-video-embed iframe {
  position: absolute !important;

  top: 50% !important;
  left: 50% !important;

  width: 177.77777778vh !important;
  min-width: 100% !important;

  height: 56.25vw !important;
  min-height: 100% !important;

  max-width: none !important;

  /*
   * Centre the player and apply the same very light smoothing used
   * for a self-hosted background video.
   *
   * Embedded providers still control the actual stream resolution,
   * so this treatment only softens visible compression / scaling.
   */
  transform:
    translate(-50%, -50%)
    translateZ(0)
    scale(var(--hein-hero-video-scale)) !important;

  filter:
    blur(var(--hein-hero-video-blur))
    contrast(var(--hein-hero-video-contrast))
    saturate(var(--hein-hero-video-saturation)) !important;

  -webkit-filter:
    blur(var(--hein-hero-video-blur))
    contrast(var(--hein-hero-video-contrast))
    saturate(var(--hein-hero-video-saturation)) !important;

  opacity: 1 !important;

  backface-visibility:
    hidden !important;

  -webkit-backface-visibility:
    hidden !important;

  will-change:
    transform,
    filter;

  pointer-events: none;
}


/* =========================================================
   5. REMOVE ELEMENTOR VIDEO'S OWN EXTRA OVERLAY
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-9e88b79
  > .elementor-background-video-container::before,
.elementor-1122 .elementor-element.elementor-element-9e88b79
  > .e-con-inner
  > .elementor-background-video-container::before {
  content: none !important;

  display: none !important;

  background: none !important;
}


/* =========================================================
   6. HEIN BLUE VIDEO WASH
   ---------------------------------------------------------
   VIDEO   = z-index 0
   OVERLAY = z-index 1
   CONTENT = z-index 3
   SHAPE   = z-index 4
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-9e88b79::before {
  content: "";

  position: absolute;

  inset: 0;

  z-index: 1;

  display: block;

  pointer-events: none;

  opacity: 1 !important;

  background:

    linear-gradient(
      90deg,
      rgba(0, 23, 42, 0.98) 0%,
      rgba(0, 31, 56, 0.94) 28%,
      rgba(0, 48, 87, 0.78) 55%,
      rgba(0, 48, 87, 0.62) 78%,
      rgba(0, 31, 56, 0.50) 100%
    ),

    linear-gradient(
      180deg,
      rgba(0, 31, 56, 0.26) 0%,
      rgba(0, 31, 56, 0.16) 46%,
      rgba(0, 23, 42, 0.86) 100%
    ) !important;
}


/* Older Elementor overlay compatibility */

.elementor-1122 .elementor-element.elementor-element-9e88b79 > .elementor-background-overlay {
  position: absolute !important;

  inset: 0 !important;

  z-index: 1 !important;

  display: block !important;

  pointer-events: none;

  opacity: 1 !important;

  background:

    linear-gradient(
      90deg,
      rgba(0, 23, 42, 0.98) 0%,
      rgba(0, 31, 56, 0.94) 28%,
      rgba(0, 48, 87, 0.78) 55%,
      rgba(0, 48, 87, 0.62) 78%,
      rgba(0, 31, 56, 0.50) 100%
    ),

    linear-gradient(
      180deg,
      rgba(0, 31, 56, 0.26) 0%,
      rgba(0, 31, 56, 0.16) 46%,
      rgba(0, 23, 42, 0.86) 100%
    ) !important;
}


/* =========================================================
   7. SHAPE DIVIDER
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-9e88b79 > .elementor-shape {
  position: absolute !important;

  left: 0 !important;

  z-index: 4 !important;

  display: block !important;

  width: 100% !important;

  overflow: hidden !important;

  pointer-events: none;

  line-height: 0;
}


.elementor-1122 .elementor-element.elementor-element-9e88b79 > .elementor-shape-bottom {
  top: auto !important;

  bottom: -1px !important;

  height:
    var(--hein-home-curve-height) !important;

  max-height:
    var(--hein-home-curve-height) !important;
}


.elementor-1122 .elementor-element.elementor-element-9e88b79 > .elementor-shape-bottom svg {
  position: relative;

  display: block;

  left: 50%;

  width:
    calc(100% + 2px) !important;

  min-width:
    calc(100% + 2px) !important;

  height:
    100% !important;

  max-height:
    100% !important;

  transform:
    translateX(-50%);
}


/* =========================================================
   8. CONTENT SHELL
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-shell {
  position: relative;

  z-index: 3;

  display: flex;

  width:
    min(calc(100% - 48px), 1200px);

  max-width: 1200px;

  min-width: 0;

  min-height:
    min(920px, 92svh);

  flex-direction: column;

  justify-content: space-between;

  align-items: stretch;

  gap: 0;

  margin-inline:
    auto;

  padding:
    clamp(165px, 17vh, 205px)
    0
    clamp(100px, 8vw, 125px);
}


/* Elementor inner-wrapper compatibility */

.elementor-1122 .elementor-element.elementor-element-9e88b79
  .hein-hero-shell
  > .e-con-inner {
  position: relative;

  z-index: 3;

  display: flex;

  width: 100%;

  max-width: none;

  min-height: inherit;

  flex-direction: column;

  justify-content: space-between;

  align-items: stretch;

  gap: 0;

  margin: 0;

  padding: 0;
}


/* =========================================================
   9. MAIN HERO CONTENT
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-content {
  display: flex;

  width:
    min(100%, 820px);

  flex:
    1 1 auto;

  flex-direction:
    column;

  justify-content:
    center;

  align-items:
    flex-start;

  gap: 0;

  margin: 0;

  padding:
    18px
    0
    58px;
}


.elementor-1122 .elementor-element.elementor-element-9e88b79
  .hein-hero-content
  .elementor-heading-title,
.elementor-1122 .elementor-element.elementor-element-9e88b79
  .hein-hero-content
  p {
  margin: 0;
}


/* =========================================================
   10. HEIN LOGO
   Class: hein-hero-image
   ---------------------------------------------------------
   Keeps the logo visually connected to the headline without
   allowing it to overpower the hero copy.
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-image {
  width:
    clamp(285px, 28vw, 360px);

  max-width:
    100%;

  margin:
    0
    0
    14px;

  padding:
    0;
}


.elementor-1122 .elementor-element.elementor-element-9e88b79
  .hein-hero-image
  > .elementor-widget-container {
  width:
    100%;

  margin:
    0;

  padding:
    0;
}


.elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-image img {
  display:
    block;

  width:
    100% !important;

  max-width:
    100% !important;

  height:
    auto !important;

  margin:
    0;

  padding:
    0;

  object-fit:
    contain;

  object-position:
    left center;
}


/* =========================================================
   11. EYEBROW
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-eyebrow {
  width:
    auto;

  margin:
    0
    0
    20px;
}


.elementor-1122 .elementor-element.elementor-element-9e88b79
  .hein-hero-eyebrow
  .elementor-heading-title {
  display:
    flex;

  align-items:
    center;

  gap:
    12px;

  margin:
    0;

  color:
    rgba(255, 255, 255, 0.92);

  font-family:
    "Open Sans",
    Arial,
    sans-serif;

  font-size:
    clamp(12px, 1vw, 14px);

  font-weight:
    700;

  line-height:
    1.4;

  letter-spacing:
    0.14em;

  text-transform:
    uppercase;
}


.elementor-1122 .elementor-element.elementor-element-9e88b79
  .hein-hero-eyebrow
  .elementor-heading-title::before {
  content:
    "";

  display:
    block;

  width:
    34px;

  height:
    3px;

  flex:
    0
    0
    34px;

  background:
    var(--hein-orange);
}


/* =========================================================
   12. MAIN H1
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-title {
  width:
    100%;

  margin:
    0
    0
    20px;
}


.elementor-1122 .elementor-element.elementor-element-9e88b79
  .hein-hero-title
  .elementor-heading-title {
  display:
    block;

  width:
    100%;

  max-width:
    820px;

  margin:
    0;

  color:
    var(--hein-white);

  font-family:
    "Aller",
    "Open Sans",
    Arial,
    sans-serif;

  font-size:
    0;

  font-weight:
    300;

  font-style:
    italic;

  line-height:
    1.12;

  letter-spacing:
    -0.022em;

  text-transform:
    none;

  overflow-wrap:
    normal;

  word-break:
    normal;

  hyphens:
    none;
}


/* Force the hero statement to remain on exactly two lines */

.elementor-1122 .elementor-element.elementor-element-9e88b79
  .hein-hero-title
  .elementor-heading-title::before,
.elementor-1122 .elementor-element.elementor-element-9e88b79
  .hein-hero-title
  .elementor-heading-title::after {
  display:
    block;

  color:
    inherit;

  font:
    inherit;

  font-size:
    clamp(32px, 3.4vw, 40px);

  font-weight:
    300;

  font-style:
    italic;

  line-height:
    1.12;

  letter-spacing:
    -0.022em;

  white-space:
    nowrap;
}


.elementor-1122 .elementor-element.elementor-element-9e88b79
  .hein-hero-title
  .elementor-heading-title::before {
  content:
    "Constructing Excellence.";
}


.elementor-1122 .elementor-element.elementor-element-9e88b79
  .hein-hero-title
  .elementor-heading-title::after {
  content:
    "Shaping Growth.";
}


/* =========================================================
   13. HERO DESCRIPTION
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-description {
  width:
    min(100%, 670px);

  margin:
    0
    0
    26px;
}


.elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-description,
.elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-description p {
  color:
    rgba(255, 255, 255, 0.86);

  font-family:
    "Open Sans",
    Arial,
    sans-serif;

  font-size:
    clamp(17px, 1.45vw, 20px);

  font-weight:
    400;

  line-height:
    1.65;

  letter-spacing:
    0;

  text-transform:
    none;
}


/* =========================================================
   14. BUTTON ROW
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-buttons {
  display:
    flex;

  width:
    auto;

  flex-direction:
    row;

  flex-wrap:
    wrap;

  justify-content:
    flex-start;

  align-items:
    center;

  gap:
    13px;

  margin:
    0;

  padding:
    0;
}


.elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-button {
  width:
    auto;

  margin:
    0;
}


.elementor-1122 .elementor-element.elementor-element-9e88b79
  .hein-hero-button
  .elementor-button {
  display:
    inline-flex;

  min-height:
    50px;

  align-items:
    center;

  justify-content:
    center;

  gap:
    11px;

  padding:
    13px
    22px;

  border:
    1px solid
    transparent;

  border-radius:
    999px;

  font-family:
    "Open Sans",
    Arial,
    sans-serif;

  font-size:
    13px;

  font-weight:
    700;

  line-height:
    1.2;

  letter-spacing:
    0.08em;

  text-transform:
    uppercase;

  box-shadow:
    none;

  transition:
    color 180ms ease,
    background-color 180ms ease,
    border-color 180ms ease,
    transform 180ms ease;
}


.elementor-1122 .elementor-element.elementor-element-9e88b79
  .hein-hero-button
  .elementor-button::after {
  content:
    "→";

  display:
    inline-block;

  font-size:
    16px;

  line-height:
    1;

  transition:
    transform 180ms ease;
}


.elementor-1122 .elementor-element.elementor-element-9e88b79
  .hein-hero-button
  .elementor-button:hover,
.elementor-1122 .elementor-element.elementor-element-9e88b79
  .hein-hero-button
  .elementor-button:focus-visible {
  transform:
    translateY(-2px);
}


.elementor-1122 .elementor-element.elementor-element-9e88b79
  .hein-hero-button
  .elementor-button:hover::after,
.elementor-1122 .elementor-element.elementor-element-9e88b79
  .hein-hero-button
  .elementor-button:focus-visible::after {
  transform:
    translateX(4px);
}


.elementor-1122 .elementor-element.elementor-element-9e88b79
  .hein-hero-button
  .elementor-button:focus-visible {
  outline:
    3px solid
    rgba(245, 130, 32, 0.55);

  outline-offset:
    4px;
}


/* =========================================================
   15. PRIMARY BUTTON
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-9e88b79
  .hein-hero-button-primary
  .elementor-button {
  color:
    var(--hein-white);

  background:
    var(--hein-orange);

  border-color:
    var(--hein-orange);

  box-shadow:
    none;
}


.elementor-1122 .elementor-element.elementor-element-9e88b79
  .hein-hero-button-primary
  .elementor-button:hover,
.elementor-1122 .elementor-element.elementor-element-9e88b79
  .hein-hero-button-primary
  .elementor-button:focus-visible {
  color:
    var(--hein-white);

  background:
    var(--hein-orange-dark);

  border-color:
    var(--hein-orange-dark);

  box-shadow:
    none;
}


/* =========================================================
   16. SECONDARY BUTTON
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-9e88b79
  .hein-hero-button-secondary
  .elementor-button {
  color:
    var(--hein-white);

  background:
    rgba(255, 255, 255, 0.04);

  border-color:
    rgba(255, 255, 255, 0.46);

  box-shadow:
    none;
}


.elementor-1122 .elementor-element.elementor-element-9e88b79
  .hein-hero-button-secondary
  .elementor-button:hover,
.elementor-1122 .elementor-element.elementor-element-9e88b79
  .hein-hero-button-secondary
  .elementor-button:focus-visible {
  color:
    var(--hein-blue);

  background:
    var(--hein-white);

  border-color:
    var(--hein-white);

  box-shadow:
    none;
}


/* =========================================================
   17. FACTS ROW
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-facts {
  display:
    grid;

  width:
    100%;

  grid-template-columns:
    repeat(3, minmax(0, 1fr));

  gap:
    0;

  margin:
    10px
    0
    0;

  padding:
    0;

  border-top:
    1px solid
    rgba(255, 255, 255, 0.22);
}


/* =========================================================
   18. INDIVIDUAL FACT COLUMN
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-fact {
  display:
    flex;

  width:
    100%;

  min-width:
    0;

  flex-direction:
    column;

  justify-content:
    flex-start;

  align-items:
    flex-start;

  gap:
    0;

  margin:
    0;

  padding:
    20px
    28px
    4px
    0;

  border:
    0;
}


.elementor-1122 .elementor-element.elementor-element-9e88b79
  .hein-hero-fact
  + .hein-hero-fact {
  padding-left:
    28px;

  border-left:
    1px solid
    rgba(255, 255, 255, 0.15);
}


/* Widget reset */

.elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-fact-label,
.elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-fact-value {
  width:
    100%;

  margin:
    0;

  padding:
    0;
}


/* =========================================================
   19. FACT LABELS
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-fact-label {
  margin-bottom:
    7px;
}


.elementor-1122 .elementor-element.elementor-element-9e88b79
  .hein-hero-fact-label
  .elementor-heading-title {
  margin:
    0;

  color:
    var(--hein-orange);

  font-family:
    "Open Sans",
    Arial,
    sans-serif;

  font-size:
    clamp(16px, 1.2vw, 18px);

  font-weight:
    800;

  line-height:
    1.3;

  letter-spacing:
    0.115em;

  text-transform:
    uppercase;
}


/* =========================================================
   20. FACT SUPPORTING TEXT
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-fact-value {
  width:
    100%;

  max-width:
    315px;
}


.elementor-1122 .elementor-element.elementor-element-9e88b79
  .hein-hero-fact-value
  .elementor-heading-title {
  margin:
    0;

  color:
    rgba(255, 255, 255, 0.82);

  font-family:
    "Open Sans",
    Arial,
    sans-serif;

  font-size:
    clamp(14px, 1.08vw, 15.5px);

  font-weight:
    500;

  line-height:
    1.5;

  letter-spacing:
    -0.004em;

  text-transform:
    none;

  text-wrap:
    pretty;

  text-shadow:
    0
    1px
    3px
    rgba(0, 23, 42, 0.16);
}


/* =========================================================
   21. ENTRANCE ANIMATION
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-content {
  animation:
    hein-hero-content-in
    700ms
    cubic-bezier(0.22, 0.72, 0.27, 1)
    80ms
    both;
}


.elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-facts {
  animation:
    hein-hero-content-in
    700ms
    cubic-bezier(0.22, 0.72, 0.27, 1)
    220ms
    both;
}


@keyframes hein-hero-content-in {

  from {
    opacity:
      0;

    transform:
      translateY(14px);
  }

  to {
    opacity:
      1;

    transform:
      translateY(0);
  }

}


/* =========================================================
   22. TABLET / SMALL DESKTOP
   ========================================================= */

@media (max-width: 1024px) {

  .elementor-1122 .elementor-element.elementor-element-9e88b79 {
    min-height:
      820px;

    --hein-home-curve-height:
      52px;

    /*
     * Slightly lighter smoothing on tablet because the video is
     * being displayed across fewer physical pixels than desktop.
     */
    --hein-hero-video-blur:
      0.22px;

    --hein-hero-video-scale:
      1.006;

    --hein-hero-video-contrast:
      1.012;

    --hein-hero-video-saturation:
      0.98;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-shell {
    width:
      min(calc(100% - 40px), 1200px);

    min-height:
      820px;

    padding:
      145px
      0
      105px;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79
    .hein-hero-title
    .elementor-heading-title::before,
  .elementor-1122 .elementor-element.elementor-element-9e88b79
    .hein-hero-title
    .elementor-heading-title::after {
    font-size:
      clamp(30px, 4vw, 38px);

    line-height:
      1.1;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-content {
    padding:
      18px
      0
      50px;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-image {
    width:
      clamp(270px, 34vw, 325px);

    margin-bottom:
      14px;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-fact {
    padding-right:
      20px;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79
    .hein-hero-fact
    + .hein-hero-fact {
    padding-left:
      20px;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79
    .hein-hero-fact-label
    .elementor-heading-title {
    font-size:
      15px;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79
    .hein-hero-fact-value
    .elementor-heading-title {
    font-size:
      13.5px;

    line-height:
      1.5;
  }

}


/* =========================================================
   23. MOBILE
   ---------------------------------------------------------
   Mobile keeps a lighter wash than desktop, but is strengthened
   enough to help disguise compression in the background video.

   Elementor's additional background overlay is disabled on
   mobile so it does not compound with the custom HEIN wash.

   Buttons and supporting information remain visible.
   ========================================================= */

@media (max-width: 767px) {

  .elementor-1122 .elementor-element.elementor-element-9e88b79 {
    min-height:
      0 !important;

    height:
      auto !important;

    --hein-home-curve-height:
      22px;

    --hein-hero-video-x:
      58%;

    --hein-hero-video-y:
      50%;

    /*
     * Mobile does not need the desktop softening pass. At this size,
     * keeping the native frame sharp generally looks better and avoids
     * spending GPU time on an unnecessary blur.
     */
    --hein-hero-video-blur:
      0px;

    --hein-hero-video-scale:
      1.002;

    --hein-hero-video-contrast:
      1;

    --hein-hero-video-saturation:
      1;

    background-position:
      58% 58% !important;
  }


  /* =======================================================
     FORCE NATIVE VIDEO VISIBLE ON MOBILE
     ======================================================= */

  .elementor-1122 .elementor-element.elementor-element-9e88b79 > .elementor-background-video-container,
  .elementor-1122 .elementor-element.elementor-element-9e88b79 > .e-con-inner > .elementor-background-video-container,
  .elementor-1122 .elementor-element.elementor-element-9e88b79 > .elementor-background-video-container.elementor-hidden-mobile,
  .elementor-1122 .elementor-element.elementor-element-9e88b79
    > .e-con-inner
    > .elementor-background-video-container.elementor-hidden-mobile {
    display:
      block !important;

    width:
      100% !important;

    height:
      100% !important;

    visibility:
      visible !important;

    opacity:
      1 !important;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79 .elementor-background-video-hosted {
    display:
      block !important;

    width:
      100% !important;

    height:
      100% !important;

    min-width:
      100% !important;

    min-height:
      100% !important;

    object-fit:
      cover !important;

    object-position:
      var(--hein-hero-video-x)
      var(--hein-hero-video-y) !important;

    visibility:
      visible !important;

    opacity:
      1 !important;

    filter:
      none !important;

    -webkit-filter:
      none !important;

    transform:
      none !important;

    will-change:
      auto !important;
  }


  /*
   * Embedded background videos still need their centring transform,
   * but the desktop smoothing pass is removed on mobile.
   */
  .elementor-1122 .elementor-element.elementor-element-9e88b79 .elementor-background-video-embed iframe {
    transform:
      translate(-50%, -50%) !important;

    filter:
      none !important;

    -webkit-filter:
      none !important;

    will-change:
      auto !important;
  }


  /* =======================================================
     MOBILE OVERLAY FIX
     -------------------------------------------------------
     Elementor's own overlay is disabled here.

     This prevents TWO blue treatments from stacking and
     making the video unnecessarily dark.
     ======================================================= */

  .elementor-1122 .elementor-element.elementor-element-9e88b79 > .elementor-background-overlay {
    display:
      none !important;
  }


  /* =======================================================
     MOBILE HEIN WASH

     Stronger than the previous mobile treatment to reduce the
     visibility of compression and scaling in the video.

     Left side remains strongest for text readability.

     Centre and right remain transparent enough for the video
     to stay visible as a moving background element.

     Bottom retains additional depth behind the supporting facts.
     ======================================================= */

  .elementor-1122 .elementor-element.elementor-element-9e88b79::before {
    background:

      linear-gradient(
        90deg,
        rgba(0, 23, 42, 0.90) 0%,
        rgba(0, 31, 56, 0.78) 44%,
        rgba(0, 48, 87, 0.60) 72%,
        rgba(0, 31, 56, 0.44) 100%
      ),

      linear-gradient(
        180deg,
        rgba(0, 31, 56, 0.08) 0%,
        rgba(0, 31, 56, 0.12) 38%,
        rgba(0, 23, 42, 0.62) 100%
      ) !important;
  }


  /* =======================================================
     MOBILE SHELL
     ======================================================= */

  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-shell {
    width:
      min(calc(100% - 32px), 1200px);

    min-height:
      0 !important;

    height:
      auto !important;

    justify-content:
      flex-start;

    align-items:
      stretch;

    padding:
      108px
      0
      48px;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79
    .hein-hero-shell
    > .e-con-inner {
    min-height:
      0 !important;

    height:
      auto !important;

    flex:
      0
      0
      auto;

    justify-content:
      flex-start;

    align-items:
      stretch;
  }


  /* =======================================================
     MOBILE MAIN CONTENT
     ======================================================= */

  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-content {
    width:
      100%;

    max-width:
      100%;

    flex:
      0
      0
      auto;

    justify-content:
      flex-start;

    align-items:
      flex-start;

    padding:
      0;
  }


  /* =======================================================
     MOBILE EYEBROW
     ======================================================= */

  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-eyebrow {
    margin-bottom:
      12px;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79
    .hein-hero-eyebrow
    .elementor-heading-title {
    font-size:
      10.5px;

    line-height:
      1.3;

    letter-spacing:
      0.13em;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79
    .hein-hero-eyebrow
    .elementor-heading-title::before {
    width:
      26px;

    height:
      2px;

    flex:
      0
      0
      26px;
  }


  /* =======================================================
     MOBILE LOGO
     ======================================================= */

  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-image {
    width:
      min(72vw, 285px);

    max-width:
      100%;

    margin:
      0
      0
      14px;
  }


  /* =======================================================
     MOBILE TITLE
     ======================================================= */

  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-title {
    width:
      100%;

    max-width:
      100%;

    margin:
      0
      0
      16px;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79
    .hein-hero-title
    .elementor-heading-title {
    width:
      100%;

    max-width:
      100%;

    text-shadow:
      0
      2px
      10px
      rgba(0, 23, 42, 0.22);
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79
    .hein-hero-title
    .elementor-heading-title::before,
  .elementor-1122 .elementor-element.elementor-element-9e88b79
    .hein-hero-title
    .elementor-heading-title::after {
    font-size:
      clamp(21px, 5.8vw, 25px);

    font-weight:
      300;

    line-height:
      1.06;

    letter-spacing:
      -0.028em;

    white-space:
      nowrap;

    text-shadow:
      0
      2px
      10px
      rgba(0, 23, 42, 0.22);
  }


  /* =======================================================
     MOBILE DESCRIPTION
     ======================================================= */

  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-description {
    width:
      100%;

    max-width:
      35ch;

    margin:
      0;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-description,
  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-description p {
    font-size:
      15px;

    line-height:
      1.54;

    text-shadow:
      0
      1px
      7px
      rgba(0, 23, 42, 0.20);
  }


  /* =======================================================
     MOBILE BUTTONS
     -------------------------------------------------------
     Hidden intentionally on mobile.

     The previous mobile rule used display:flex !important,
     which could override Elementor's responsive visibility
     setting. This rule now makes the intended mobile state
     explicit and removes the unused button spacing.
     ======================================================= */

  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-buttons,
  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-buttons.elementor-hidden-mobile {
    display:
      none !important;

    width:
      0 !important;

    height:
      0 !important;

    min-height:
      0 !important;

    margin:
      0 !important;

    padding:
      0 !important;

    overflow:
      hidden !important;
  }


  /* =======================================================
     MOBILE FACTS / SUPPORTING INFORMATION
     ======================================================= */

  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-facts {
    display:
      flex !important;

    width:
      100% !important;

    height:
      auto !important;

    min-height:
      0 !important;

    flex-direction:
      column;

    gap:
      0;

    margin:
      34px
      0
      0 !important;

    padding:
      18px
      0
      0 !important;

    overflow:
      visible !important;

    border-top:
      1px solid
      rgba(255, 255, 255, 0.26) !important;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-fact {
    display:
      flex;

    width:
      100%;

    min-width:
      0;

    flex-direction:
      column;

    align-items:
      flex-start;

    justify-content:
      flex-start;

    gap:
      0;

    margin:
      0;

    padding:
      0
      0
      14px !important;

    border:
      0 !important;

    background:
      transparent !important;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79
    .hein-hero-fact
    + .hein-hero-fact {
    margin:
      0;

    padding:
      14px
      0 !important;

    border-top:
      1px solid
      rgba(255, 255, 255, 0.14) !important;

    border-left:
      0 !important;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-fact:last-child {
    padding-bottom:
      0 !important;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-fact-label {
    width:
      100%;

    margin:
      0
      0
      6px;

    padding:
      0;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79
    .hein-hero-fact-label
    .elementor-heading-title {
    margin:
      0;

    font-size:
      16px;

    line-height:
      1.2;

    letter-spacing:
      0.08em;

    text-shadow:
      0
      1px
      6px
      rgba(0, 23, 42, 0.20);
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-fact-value {
    width:
      100%;

    max-width:
      100%;

    margin:
      0;

    padding:
      0;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79
    .hein-hero-fact-value
    .elementor-heading-title {
    margin:
      0;

    font-size:
      13px;

    font-weight:
      500;

    line-height:
      1.45;

    letter-spacing:
      -0.004em;

    text-wrap:
      pretty;

    text-shadow:
      0
      1px
      7px
      rgba(0, 23, 42, 0.22);
  }


  /* Keep unordered-list bullets fully inside the mobile content shell */

  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-fact-value ul,
  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-fact-value .elementor-heading-title ul {
    width:
      100%;

    margin:
      0 !important;

    padding:
      0 !important;

    list-style:
      none !important;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-fact-value ul li,
  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-fact-value .elementor-heading-title ul li {
    position:
      relative;

    margin:
      0;

    padding-left:
      17px !important;

    line-height:
      1.45;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-fact-value ul li::before,
  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-fact-value .elementor-heading-title ul li::before {
    content:
      "•";

    position:
      absolute;

    top:
      0;

    left:
      2px;

    display:
      block;

    width:
      10px;

    color:
      currentColor;

    font-size:
      0.82em;

    line-height:
      inherit;

    text-align:
      left;
  }


  /* Ordered lists keep their native numbering, but stay safely inset */

  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-fact-value ol,
  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-fact-value .elementor-heading-title ol {
    width:
      100%;

    margin:
      0 !important;

    padding-inline-start:
      22px !important;

    list-style-position:
      outside;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-fact-value ol li {
    margin:
      0;

    padding-left:
      2px;

    line-height:
      1.45;
  }

}


/* =========================================================
   24. SMALL MOBILE
   ========================================================= */

@media (max-width: 420px) {

  .elementor-1122 .elementor-element.elementor-element-9e88b79 {
    --hein-home-curve-height:
      20px;

    --hein-hero-video-x:
      60%;

    --hein-hero-video-y:
      50%;

    background-position:
      60% 58% !important;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-shell {
    width:
      min(calc(100% - 28px), 1200px);

    padding:
      102px
      0
      38px;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-image {
    width:
      min(74vw, 255px);

    margin-bottom:
      13px;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-title {
    margin-bottom:
      15px;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79
    .hein-hero-title
    .elementor-heading-title::before,
  .elementor-1122 .elementor-element.elementor-element-9e88b79
    .hein-hero-title
    .elementor-heading-title::after {
    font-size:
      clamp(20px, 5.6vw, 24px);

    line-height:
      1.06;

    letter-spacing:
      -0.026em;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-description {
    max-width:
      34ch;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-description,
  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-description p {
    font-size:
      14.75px;

    line-height:
      1.52;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-facts {
    margin-top:
      30px !important;

    padding-top:
      16px !important;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-fact {
    padding-bottom:
      12px !important;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79
    .hein-hero-fact
    + .hein-hero-fact {
    padding:
      12px
      0 !important;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79
    .hein-hero-fact-value
    .elementor-heading-title {
    font-size:
      12.5px;

    line-height:
      1.43;
  }

}


/* =========================================================
   25. VERY SMALL MOBILE
   ========================================================= */

@media (max-width: 360px) {

  .elementor-1122 .elementor-element.elementor-element-9e88b79 {
    --hein-home-curve-height:
      18px;

    --hein-hero-video-x:
      61%;

    --hein-hero-video-y:
      50%;

    background-position:
      61% 58% !important;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-shell {
    width:
      min(calc(100% - 24px), 1200px);

    padding:
      96px
      0
      34px;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-image {
    width:
      min(76vw, 235px);

    margin-bottom:
      12px;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79
    .hein-hero-title
    .elementor-heading-title::before,
  .elementor-1122 .elementor-element.elementor-element-9e88b79
    .hein-hero-title
    .elementor-heading-title::after {
    font-size:
      20px;

    line-height:
      1.06;

    letter-spacing:
      -0.024em;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-description,
  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-description p {
    font-size:
      14.25px;

    line-height:
      1.5;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-facts {
    margin-top:
      28px !important;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79
    .hein-hero-fact-label
    .elementor-heading-title {
    font-size:
      14.5px;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79
    .hein-hero-fact-value
    .elementor-heading-title {
    font-size:
      12px;
  }

}


/* =========================================================
   26. REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-content,
  .elementor-1122 .elementor-element.elementor-element-9e88b79 .hein-hero-facts {
    animation:
      none !important;

    transform:
      none !important;
  }


  .elementor-1122 .elementor-element.elementor-element-9e88b79
    .hein-hero-button
    .elementor-button,
  .elementor-1122 .elementor-element.elementor-element-9e88b79
    .hein-hero-button
    .elementor-button::after {
    transition:
      none !important;
  }

}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-5b6ab08 *//* =========================================================
   HEIN HOMEPAGE ABOUT SECTION
   ---------------------------------------------------------
   Outer container:
   hein-home-about

   MEDIA STRUCTURE:
   hein-about-media
     hein-about-collage
       hein-about-photo hein-about-photo--01
       hein-about-photo hein-about-photo--02
       hein-about-photo hein-about-photo--03
       hein-about-photo hein-about-photo--04
     hein-about-accent

   TYPOGRAPHY NOTE:
   This section intentionally uses CSS as the source of truth
   for typography. Elementor should be used for content and
   structure rather than individual font sizing or casing.

   This keeps the editor/front-end treatment consistent.
   ========================================================= */


/* =========================================================
   1. SECTION ROOT
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-5b6ab08 {
  --hein-blue: #003057;
  --hein-blue-dark: #001f38;

  --hein-orange: #f58220;
  --hein-orange-dark: #d86a08;

  --hein-white: #ffffff;

  --hein-body: #41596a;
  --hein-muted: #607684;

  --hein-border:
    rgba(0, 48, 87, 0.13);

  /*
   * PHOTO CROP CONTROLS
   * Change these individually if a photo needs repositioning.
   *
   * Examples:
   * 50% 20% = higher crop
   * 50% 80% = lower crop
   * 25% 50% = favour left
   * 75% 50% = favour right
   */
  --hein-about-photo-01-position: 50% 50%;
  --hein-about-photo-02-position: 50% 50%;
  --hein-about-photo-03-position: 50% 50%;
  --hein-about-photo-04-position: 50% 50%;

  position: relative;
  z-index: 2;

  display: block;

  width: 100%;

  margin: 0;

  padding:
    clamp(72px, 6vw, 92px)
    0;

  overflow: visible;

  color:
    var(--hein-body);

  background:
    var(--hein-white);
}


/* Predictable sizing */
.elementor-1122 .elementor-element.elementor-element-5b6ab08,
.elementor-1122 .elementor-element.elementor-element-5b6ab08 *,
.elementor-1122 .elementor-element.elementor-element-5b6ab08 *::before,
.elementor-1122 .elementor-element.elementor-element-5b6ab08 *::after {
  box-sizing: border-box;
}


/* Remove Elementor widget spacing */
.elementor-1122 .elementor-element.elementor-element-5b6ab08 .elementor-widget {
  margin-block-end: 0;
}


/* =========================================================
   2. CONTENT SHELL
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-shell {
  display: grid;

  width:
    min(calc(100% - 48px), 1200px);

  max-width: 1200px;
  min-width: 0;

  grid-template-columns:
    minmax(0, 0.92fr)
    minmax(0, 1.08fr);

  column-gap:
    clamp(52px, 6vw, 80px);

  row-gap: 44px;

  align-items: center;

  margin-inline: auto;

  padding: 0;
}


/* Elementor inner-container compatibility */
.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-shell > .e-con-inner {
  display: grid;

  width: 100%;
  max-width: none;
  min-width: 0;

  grid-template-columns:
    minmax(0, 0.92fr)
    minmax(0, 1.08fr);

  column-gap:
    clamp(52px, 6vw, 80px);

  row-gap: 44px;

  align-items: center;

  margin: 0;

  padding: 0;
}


/* =========================================================
   3. MEDIA COLUMN
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-media {
  position: relative;

  display: block;

  width: 100%;
  min-width: 0;

  min-height: 560px;

  margin: 0;

  padding: 0;

  overflow: visible;
}


/* =========================================================
   4. PHOTO COLLAGE
   ---------------------------------------------------------
   12-column architectural composition.

   Photo 01:
   Large primary image.

   Photo 02:
   Upper-right supporting image.

   Photo 03:
   Lower-left supporting image.

   Photo 04:
   Large lower-right image.

   The orange ownership panel overlaps the lower-right
   portion of the collage.
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-collage {
  position: absolute;

  inset:
    0
    34px
    34px
    0;

  z-index: 1;

  display: grid;

  grid-template-columns:
    repeat(12, minmax(0, 1fr));

  grid-template-rows:
    repeat(12, minmax(0, 1fr));

  gap: 12px;

  width: auto;
  min-width: 0;

  margin: 0;

  padding: 0;
}


/* =========================================================
   5. SHARED PHOTO TREATMENT
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-photo {
  position: relative;

  display: block;

  width: 100%;
  min-width: 0;

  height: 100%;
  min-height: 0;

  margin: 0;

  padding: 0;

  overflow: hidden;

  background:
    #e9eef1;

  border-radius: 18px;

  box-shadow:
    0 12px 28px
    rgba(0, 31, 56, 0.12);

  transform: none !important;
  transition: none !important;
}


/*
 * Ensure Elementor's image widget and all common wrappers
 * fill the collage grid cell.
 */
.elementor-1122 .elementor-element.elementor-element-5b6ab08
  .hein-about-photo
  > .elementor-widget-container {
  width: 100%;
  height: 100%;

  margin: 0 !important;
  padding: 0 !important;

  transform: none !important;
  transition: none !important;
}


.elementor-1122 .elementor-element.elementor-element-5b6ab08
  .hein-about-photo
  .elementor-image {
  width: 100%;
  height: 100%;

  transform: none !important;
  transition: none !important;
}


.elementor-1122 .elementor-element.elementor-element-5b6ab08
  .hein-about-photo
  a {
  display: block;

  width: 100%;
  height: 100%;

  transform: none !important;
  transition: none !important;
}


.elementor-1122 .elementor-element.elementor-element-5b6ab08
  .hein-about-photo
  img {
  display: block;

  width: 100% !important;
  max-width: none !important;

  height: 100% !important;

  margin: 0;

  object-fit: cover;

  transform: none !important;
  transition: none !important;
  filter: none;
}


/*
 * Explicitly neutralize any Elementor or theme-level
 * hover treatment on collage images.
 */
.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-photo:hover,
.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-photo:focus,
.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-photo:focus-within,
.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-photo:hover > .elementor-widget-container,
.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-photo:focus-within > .elementor-widget-container,
.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-photo:hover .elementor-image,
.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-photo:focus-within .elementor-image,
.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-photo:hover a,
.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-photo:focus-within a,
.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-photo:hover img,
.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-photo:focus-within img {
  transform: none !important;
  transition: none !important;
  filter: none !important;
}


/* Subtle image edge treatment */
.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-photo::after {
  content: "";

  position: absolute;

  inset: 0;

  z-index: 2;

  pointer-events: none;

  border:
    1px solid
    rgba(255, 255, 255, 0.16);

  border-radius:
    inherit;

  box-shadow:
    inset
    0
    -55px
    75px
    rgba(0, 31, 56, 0.06);
}


/* =========================================================
   6. PHOTO 01
   Primary large image
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-photo--01 {
  grid-column:
    1 / 8;

  grid-row:
    1 / 9;

  z-index: 1;

  border-radius: 24px;
}


.elementor-1122 .elementor-element.elementor-element-5b6ab08
  .hein-about-photo--01
  img {
  object-position:
    var(--hein-about-photo-01-position);
}


/* =========================================================
   7. PHOTO 02
   Upper-right
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-photo--02 {
  grid-column:
    8 / 13;

  grid-row:
    1 / 6;

  z-index: 2;
}


.elementor-1122 .elementor-element.elementor-element-5b6ab08
  .hein-about-photo--02
  img {
  object-position:
    var(--hein-about-photo-02-position);
}


/* =========================================================
   8. PHOTO 03
   Lower-left
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-photo--03 {
  grid-column:
    1 / 6;

  grid-row:
    9 / 13;

  z-index: 2;
}


.elementor-1122 .elementor-element.elementor-element-5b6ab08
  .hein-about-photo--03
  img {
  object-position:
    var(--hein-about-photo-03-position);
}


/* =========================================================
   9. PHOTO 04
   Lower-right
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-photo--04 {
  grid-column:
    6 / 13;

  grid-row:
    6 / 13;

  z-index: 1;

  border-radius: 22px;
}


.elementor-1122 .elementor-element.elementor-element-5b6ab08
  .hein-about-photo--04
  img {
  object-position:
    var(--hein-about-photo-04-position);
}


/* =========================================================
   10. ORANGE ACCENT PANEL
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-accent {
  position: absolute;

  right: 0;
  bottom: 0;

  z-index: 5;

  display: flex;

  width: 56%;
  min-width: 265px;

  flex-direction: column;

  align-items: flex-start;
  justify-content: center;

  gap: 0;

  margin: 0;

  padding:
    24px
    27px;

  color:
    var(--hein-white);

  background:
    linear-gradient(
      135deg,
      var(--hein-orange) 0%,
      var(--hein-orange-dark) 100%
    );

  border-radius: 18px;

  box-shadow:
    0 14px 30px
    rgba(0, 31, 56, 0.17);
}


/* =========================================================
   11. ACCENT LABEL
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-accent-label,
.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-accent-title {
  width: 100%;

  margin: 0;
}


.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-accent-label {
  margin-bottom: 6px;
}


.elementor-1122 .elementor-element.elementor-element-5b6ab08
  .hein-about-accent-label
  .elementor-heading-title {
  margin: 0;

  color:
    rgba(255, 255, 255, 0.86);

  font-family:
    "Open Sans",
    Arial,
    sans-serif;

  font-size: 11px;

  font-weight: 700;

  line-height: 1.35;

  letter-spacing: 0.115em;

  text-transform: uppercase;
}


/* =========================================================
   12. ACCENT TITLE
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-5b6ab08
  .hein-about-accent-title
  .elementor-heading-title {
  margin: 0;

  color:
    var(--hein-white);

  font-family:
    "Aller",
    "Open Sans",
    Arial,
    sans-serif;

  font-size:
    clamp(20px, 1.7vw, 24px) !important;

  font-weight: 700;

  line-height: 1.22;

  letter-spacing: -0.018em;

  text-transform: none !important;

  text-wrap: balance;
}


/* =========================================================
   13. CONTENT COLUMN
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-content {
  display: flex;

  width: 100%;
  min-width: 0;

  flex-direction: column;

  justify-content: center;
  align-items: flex-start;

  gap: 0;

  margin: 0;

  padding: 0;
}


/* =========================================================
   14. SECTION LABEL
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-section-label {
  display: block;

  width: auto;

  margin:
    0
    0
    15px;
}


/* Remove decorative elements inherited from global styles */
.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-section-label::before,
.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-section-label::after,
.elementor-1122 .elementor-element.elementor-element-5b6ab08
  .hein-section-label
  > .elementor-widget-container::before,
.elementor-1122 .elementor-element.elementor-element-5b6ab08
  .hein-section-label
  > .elementor-widget-container::after {
  content: none !important;

  display: none !important;
}


/* Label typography */
.elementor-1122 .elementor-element.elementor-element-5b6ab08
  .hein-section-label
  .elementor-heading-title {
  display: flex;

  align-items: center;

  gap: 10px;

  margin: 0;

  color:
    var(--hein-orange);

  font-family:
    "Open Sans",
    Arial,
    sans-serif;

  font-size: 12px;

  font-weight: 700;

  line-height: 1.35;

  letter-spacing: 0.13em;

  text-transform: uppercase;

  overflow-wrap: normal;

  word-break: normal;

  hyphens: none;
}


/* Single orange construction line */
.elementor-1122 .elementor-element.elementor-element-5b6ab08
  .hein-section-label
  .elementor-heading-title::before {
  content: "";

  display: block;

  width: 26px;
  height: 2px;

  flex:
    0
    0
    26px;

  background:
    var(--hein-orange);
}


/* Prevent second decorative line */
.elementor-1122 .elementor-element.elementor-element-5b6ab08
  .hein-section-label
  .elementor-heading-title::after {
  content: none !important;

  display: none !important;
}


/* =========================================================
   15. MAIN ABOUT HEADING
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-title {
  width: 100%;

  margin:
    0
    0
    19px;
}


.elementor-1122 .elementor-element.elementor-element-5b6ab08
  .hein-about-title
  .elementor-heading-title {
  width: 100%;

  max-width: 620px;

  margin: 0;

  color:
    var(--hein-blue);

  font-family:
    "Aller",
    "Open Sans",
    Arial,
    sans-serif;

  font-size:
    clamp(35px, 3.5vw, 50px);

  font-weight: 700;

  line-height: 1.08;

  letter-spacing: -0.032em;

  text-transform: none;

  text-wrap: balance;
}


/* =========================================================
   16. INTRODUCTION COPY
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-copy {
  width: 100%;

  max-width: 630px;

  margin: 0;
}


.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-copy,
.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-copy p {
  color:
    var(--hein-body);

  font-family:
    "Open Sans",
    Arial,
    sans-serif;

  font-size:
    clamp(16px, 1.15vw, 17.5px);

  font-weight: 400;

  line-height: 1.72;
}


.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-copy p {
  margin:
    0
    0
    16px;
}


.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-copy p:last-child {
  margin-bottom: 0;
}


/* =========================================================
   17. VALUES LIST
   ---------------------------------------------------------
   These are equal HEIN principles rather than sequential
   steps, so the list intentionally uses no numbering.
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-values {
  display: flex;

  width: 100%;

  flex-direction: column;

  gap: 0;

  margin:
    30px
    0
    27px;

  padding: 0;

  border-top:
    1px solid
    var(--hein-border);
}


/* =========================================================
   18. INDIVIDUAL VALUE
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-value {
  display: block;

  width: 100%;
  min-width: 0;

  margin: 0;

  padding:
    17px
    0;

  border-bottom:
    1px solid
    var(--hein-border);
}


/* =========================================================
   19. VALUE COPY
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-value-copy {
  display: flex;

  width: 100%;
  min-width: 0;

  flex-direction: column;

  gap: 0;

  margin: 0;

  padding: 0;
}


/* =========================================================
   20. VALUE TITLE
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-value-title {
  width: 100%;

  margin:
    0
    0
    5px;
}


.elementor-1122 .elementor-element.elementor-element-5b6ab08
  .hein-about-value-title
  .elementor-heading-title {
  margin: 0;

  color:
    var(--hein-blue);

  font-family:
    "Aller",
    "Open Sans",
    Arial,
    sans-serif;

  font-size: 19px;

  font-weight: 700;

  line-height: 1.28;

  letter-spacing: -0.014em;
}


/* =========================================================
   21. VALUE SUPPORTING TEXT
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-value-text,
.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-value-text p {
  margin: 0;

  color:
    var(--hein-muted);

  font-family:
    "Open Sans",
    Arial,
    sans-serif;

  font-size: 15px;

  font-weight: 400;

  line-height: 1.58;
}


/* =========================================================
   22. LEARN MORE ABOUT HEIN CTA
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-link {
  width: auto;

  flex:
    0
    0
    auto;

  margin: 0;
}


.elementor-1122 .elementor-element.elementor-element-5b6ab08
  .hein-about-link
  > .elementor-widget-container {
  margin:
    0 !important;

  padding:
    0 !important;
}


.elementor-1122 .elementor-element.elementor-element-5b6ab08
  .hein-about-link
  .elementor-button {
  display: inline-flex;

  width: auto;

  min-height: 52px;

  align-items: center;

  justify-content: center;

  gap: 10px;

  padding:
    14px
    24px;

  color:
    var(--hein-blue);

  background:
    rgba(255, 255, 255, 0.28);

  border:
    1px solid
    rgba(0, 48, 87, 0.34);

  border-radius:
    999px;

  font-family:
    "Open Sans",
    Arial,
    sans-serif;

  font-size: 13px;

  font-weight: 700;

  line-height: 1.2;

  letter-spacing:
    0.06em;

  text-transform:
    uppercase;

  white-space:
    nowrap;

  box-shadow:
    none;

  transition:
    color 180ms ease,
    background-color 180ms ease,
    border-color 180ms ease,
    transform 180ms ease;
}


/* CTA arrow */
.elementor-1122 .elementor-element.elementor-element-5b6ab08
  .hein-about-link
  .elementor-button::after {
  content: "→";

  display: inline-block;

  color:
    var(--hein-orange);

  font-size: 17px;

  line-height: 1;

  transition:
    color 180ms ease,
    transform 180ms ease;
}


/* Button hover */
.elementor-1122 .elementor-element.elementor-element-5b6ab08
  .hein-about-link
  .elementor-button:hover,
.elementor-1122 .elementor-element.elementor-element-5b6ab08
  .hein-about-link
  .elementor-button:focus-visible {
  color:
    var(--hein-white);

  background:
    var(--hein-blue);

  border-color:
    var(--hein-blue);

  transform:
    translateY(-2px);
}


.elementor-1122 .elementor-element.elementor-element-5b6ab08
  .hein-about-link
  .elementor-button:hover::after,
.elementor-1122 .elementor-element.elementor-element-5b6ab08
  .hein-about-link
  .elementor-button:focus-visible::after {
  color:
    var(--hein-white);

  transform:
    translateX(4px);
}


/* Keyboard focus */
.elementor-1122 .elementor-element.elementor-element-5b6ab08
  .hein-about-link
  .elementor-button:focus-visible {
  outline:
    3px solid
    rgba(245, 130, 32, 0.42);

  outline-offset: 4px;
}


/* =========================================================
   23. TABLET / SMALL DESKTOP
   ========================================================= */

@media (max-width: 1024px) {

  .elementor-1122 .elementor-element.elementor-element-5b6ab08 {
    padding:
      74px
      0;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-shell,
  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-shell > .e-con-inner {
    width:
      min(calc(100% - 40px), 1200px);

    grid-template-columns:
      minmax(0, 0.95fr)
      minmax(0, 1.05fr);

    column-gap: 44px;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-media {
    min-height: 520px;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-collage {
    inset:
      0
      26px
      30px
      0;

    gap: 10px;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-photo {
    border-radius: 16px;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-photo--01 {
    border-radius: 21px;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-photo--04 {
    border-radius: 19px;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-accent {
    width: 62%;

    min-width: 240px;

    padding:
      22px
      23px;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08
    .hein-about-title
    .elementor-heading-title {
    font-size:
      clamp(34px, 4vw, 45px);
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08
    .hein-about-value-title
    .elementor-heading-title {
    font-size: 18px;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-value-text,
  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-value-text p {
    font-size: 14.5px;
  }

}


/* =========================================================
   24. STACKED TABLET
   ========================================================= */

@media (max-width: 820px) {

  .elementor-1122 .elementor-element.elementor-element-5b6ab08 {
    padding:
      70px
      0;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-shell,
  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-shell > .e-con-inner {
    width:
      min(calc(100% - 36px), 1200px);

    grid-template-columns:
      1fr;

    row-gap: 50px;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-media,
  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-content {
    width: 100%;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-media {
    min-height: 570px;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-collage {
    inset:
      0
      32px
      36px
      0;

    gap: 12px;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-accent {
    width: 48%;

    min-width: 300px;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-content {
    max-width: 690px;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08
    .hein-about-title
    .elementor-heading-title {
    max-width: 650px;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-copy {
    max-width: 650px;
  }

}


/* =========================================================
   25. MOBILE
   ---------------------------------------------------------
   Mobile uses a cleaner magazine-style grid instead of
   shrinking the desktop composition.

   Photo 01:
   Full-width hero image.

   Photo 02 + 03:
   Two supporting images side by side.

   Photo 04:
   Full-width lower image.

   Accent card overlaps the top of the collage.
   ========================================================= */

@media (max-width: 767px) {

  .elementor-1122 .elementor-element.elementor-element-5b6ab08 {
    padding:
      62px
      0;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-shell,
  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-shell > .e-con-inner {
    width:
      min(calc(100% - 28px), 1200px);

    row-gap: 44px;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-media {
    min-height: 570px;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-collage {
    inset:
      72px
      0
      0
      0;

    grid-template-columns:
      repeat(2, minmax(0, 1fr));

    grid-template-rows:
      1.35fr
      0.82fr
      0.95fr;

    gap: 9px;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-photo {
    border-radius: 16px;
  }


  /* Main image */
  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-photo--01 {
    grid-column:
      1 / 3;

    grid-row:
      1 / 2;

    border-radius: 20px;
  }


  /* Middle-left */
  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-photo--02 {
    grid-column:
      1 / 2;

    grid-row:
      2 / 3;
  }


  /* Middle-right */
  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-photo--03 {
    grid-column:
      2 / 3;

    grid-row:
      2 / 3;
  }


  /* Lower image */
  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-photo--04 {
    grid-column:
      1 / 3;

    grid-row:
      3 / 4;

    border-radius: 18px;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-accent {
    top: 0;

    right: 12px;

    bottom: auto;

    width:
      calc(100% - 24px);

    min-width: 0;

    padding:
      21px
      22px;

    border-radius: 16px;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08
    .hein-about-accent-title
    .elementor-heading-title {
    font-size:
      clamp(19px, 5vw, 22px) !important;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-section-label {
    margin-bottom: 14px;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-title {
    margin-bottom: 18px;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08
    .hein-about-title
    .elementor-heading-title {
    font-size:
      clamp(33px, 8.8vw, 42px);

    line-height: 1.08;

    text-wrap: pretty;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-copy,
  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-copy p {
    font-size: 16px;

    line-height: 1.68;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-values {
    margin:
      27px
      0
      26px;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-value {
    padding:
      16px
      0;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08
    .hein-about-value-title
    .elementor-heading-title {
    font-size: 18px;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-value-text,
  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-value-text p {
    font-size: 15px;

    line-height: 1.58;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-link {
    width:
      100%;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08
    .hein-about-link
    .elementor-button {
    width:
      100%;

    min-height:
      52px;
  }

}


/* =========================================================
   26. SMALL MOBILE
   ========================================================= */

@media (max-width: 420px) {

  .elementor-1122 .elementor-element.elementor-element-5b6ab08 {
    padding:
      56px
      0;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-media {
    min-height: 530px;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-collage {
    inset:
      70px
      0
      0
      0;

    gap: 8px;

    grid-template-rows:
      1.28fr
      0.8fr
      0.9fr;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-photo {
    border-radius: 14px;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-photo--01 {
    border-radius: 18px;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-photo--04 {
    border-radius: 16px;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-accent {
    padding:
      20px
      20px;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08
    .hein-about-accent-title
    .elementor-heading-title {
    font-size: 19px !important;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08
    .hein-about-title
    .elementor-heading-title {
    font-size:
      clamp(31px, 9vw, 39px);
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08 .hein-about-value {
    padding:
      15px
      0;
  }

}


/* =========================================================
   27. REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

  .elementor-1122 .elementor-element.elementor-element-5b6ab08
    .hein-about-link
    .elementor-button,
  .elementor-1122 .elementor-element.elementor-element-5b6ab08
    .hein-about-link
    .elementor-button::after {
    transition:
      none !important;
  }


  .elementor-1122 .elementor-element.elementor-element-5b6ab08
    .hein-about-link
    .elementor-button:hover,
  .elementor-1122 .elementor-element.elementor-element-5b6ab08
    .hein-about-link
    .elementor-button:focus-visible {
    transform:
      none;
  }

}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-d782afe *//* =========================================================
   HEIN HOMEPAGE PROJECT DELIVERY SECTION
   ---------------------------------------------------------
   Apply to:
   Delivery Section

   Required classes:
   hein-home-delivery
   hein-delivery-shell
   hein-delivery-header
   hein-delivery-header-copy
   hein-delivery-label
   hein-delivery-title
   hein-delivery-intro
   hein-delivery-button
   hein-delivery-grid
   hein-delivery-card
   hein-delivery-card-title
   hein-delivery-card-text

   Optional:
   hein-section-divider

   DESIGN DIRECTION:

   - Consistent HEIN homepage typography
   - Animated architectural project background
   - Light drafting-grid service cards
   - Entire delivery card is clickable
   - Restrained card lift interaction
   - HEIN orange heading treatment on interaction
   - Subtle orange architectural card accent
   - Circular directional cue
   - Dedicated arrow rail prevents heading overlap
   - Construction Management remains one line on desktop
   - No GC / CM / DB delivery mark
   - No viewport cutouts
   - No glass panels
   ========================================================= */


/* =========================================================
   1. DESIGN TOKENS + SECTION ROOT
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-d782afe {
  --hein-blue: #003057;
  --hein-blue-dark: #001f38;
  --hein-blue-deep: #00172a;

  --hein-orange: #f58220;
  --hein-orange-dark: #d86a08;

  --hein-white: #ffffff;

  --hein-body: #41596a;
  --hein-muted: #607684;

  --hein-card-top:
    rgba(255, 255, 255, 0.985);

  --hein-card-bottom:
    rgba(241, 247, 251, 0.985);

  --hein-card-border:
    rgba(0, 48, 87, 0.12);

  --delivery-card-pad-x: 28px;
  --delivery-card-pad-y: 28px;

  /*
   * Reserved width for circular arrow at top-right.
   */
  --delivery-arrow-rail: 48px;

  position: relative;
  z-index: 2;
  isolation: isolate;

  display: block;

  width: 100%;

  margin: 0;

  padding:
    clamp(74px, 5.8vw, 94px)
    0
    clamp(64px, 5vw, 80px);

  overflow: hidden;

  color:
    var(--hein-white);

  background-color:
    var(--hein-blue);
}


/* Predictable sizing */
.elementor-1122 .elementor-element.elementor-element-d782afe,
.elementor-1122 .elementor-element.elementor-element-d782afe *,
.elementor-1122 .elementor-element.elementor-element-d782afe *::before,
.elementor-1122 .elementor-element.elementor-element-d782afe *::after {
  box-sizing: border-box;
}


/* Hide Elementor background overlay */
.elementor-1122 .elementor-element.elementor-element-d782afe .elementor-background-overlay {
  display:
    none !important;
}


/* Keep content above background layers */
.elementor-1122 .elementor-element.elementor-element-d782afe > * {
  position: relative;
  z-index: 2;
}


/* Remove Elementor widget spacing */
.elementor-1122 .elementor-element.elementor-element-d782afe .elementor-widget {
  margin-block-end: 0;
}


/* =========================================================
   2. ANIMATED PROJECT PHOTOGRAPH
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-d782afe::before {
  content: "";

  position: absolute;
  inset: 0;
  z-index: 0;

  pointer-events: none;

  background-image:
    url("/wp-content/uploads/2026/01/John-G-Mlacak-Centre-Hero.jpg");

  background-repeat:
    no-repeat;

  background-position:
    center center;

  background-size:
    cover;

  transform:
    scale(1.12);

  animation:
    heinDeliveryPhotoDrift
    40s
    ease-in-out
    infinite
    alternate;

  will-change:
    transform;
}


/* =========================================================
   3. BLUE OVERLAY + DRAFTING GRID
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-d782afe::after {
  content: "";

  position: absolute;
  inset: 0;
  z-index: 1;

  pointer-events: none;

  background-image:

    radial-gradient(
      circle at 92% -8%,
      rgba(245, 130, 32, 0.15) 0%,
      rgba(245, 130, 32, 0.055) 27%,
      transparent 48%
    ),

    linear-gradient(
      rgba(255, 255, 255, 0.024) 1px,
      transparent 1px
    ),

    linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.024) 1px,
      transparent 1px
    ),

    linear-gradient(
      90deg,
      rgba(0, 31, 56, 0.96) 0%,
      rgba(0, 48, 87, 0.92) 48%,
      rgba(0, 48, 87, 0.88) 100%
    );

  background-repeat:
    no-repeat,
    repeat,
    repeat,
    no-repeat;

  background-size:
    100% 100%,
    72px 72px,
    72px 72px,
    100% 100%;
}


/* =========================================================
   4. BACKGROUND MOTION
   ========================================================= */

@keyframes heinDeliveryPhotoDrift {

  0% {
    transform:
      scale(1.12)
      translate(0, 0);
  }

  30% {
    transform:
      scale(1.15)
      translate(-1%, 0.75%);
  }

  65% {
    transform:
      scale(1.13)
      translate(1%, -0.75%);
  }

  100% {
    transform:
      scale(1.16)
      translate(-0.75%, -0.5%);
  }

}


/* =========================================================
   5. CONTENT SHELL
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-shell {
  position: relative;
  z-index: 2;

  display:
    flex !important;

  width:
    min(calc(100% - 48px), 1200px) !important;

  max-width:
    1200px !important;

  min-width: 0;

  flex-direction:
    column;

  align-items:
    stretch;

  gap:
    0;

  margin-inline:
    auto !important;

  padding:
    0 !important;
}


.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-delivery-shell
  > .e-con-inner {
  display:
    flex !important;

  width:
    100% !important;

  max-width:
    none !important;

  flex-direction:
    column;

  align-items:
    stretch;

  gap:
    0;

  margin:
    0 !important;

  padding:
    0 !important;
}


/* =========================================================
   6. SECTION HEADER
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-header,
.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-delivery-header
  > .e-con-inner {
  display:
    grid !important;

  width:
    100% !important;

  max-width:
    none !important;

  min-width:
    0;

  grid-template-columns:
    minmax(0, 1fr)
    auto;

  column-gap:
    clamp(44px, 6vw, 80px);

  row-gap:
    24px;

  align-items:
    end;

  margin:
    0 !important;

  padding:
    0 !important;
}


.elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-header {
  margin-bottom:
    36px !important;
}


/* =========================================================
   7. HEADER COPY
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-header-copy {
  display:
    flex !important;

  width:
    min(100%, 790px) !important;

  max-width:
    790px !important;

  min-width:
    0;

  flex-direction:
    column;

  align-items:
    flex-start !important;

  justify-content:
    flex-start;

  gap:
    0;

  margin:
    0 !important;

  padding:
    0 !important;
}


.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-delivery-header-copy
  > .e-con-inner {
  display:
    flex !important;

  width:
    100% !important;

  max-width:
    none !important;

  flex-direction:
    column;

  align-items:
    flex-start !important;

  gap:
    0;

  margin:
    0 !important;

  padding:
    0 !important;
}


/* =========================================================
   8. EYEBROW
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-label {
  display:
    block;

  width:
    auto;

  margin:
    0
    0
    15px;
}


.elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-label::before,
.elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-label::after,
.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-delivery-label
  > .elementor-widget-container::before,
.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-delivery-label
  > .elementor-widget-container::after {
  content:
    none !important;

  display:
    none !important;
}


.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-delivery-label
  .elementor-heading-title {
  display:
    flex;

  align-items:
    center;

  gap:
    10px;

  margin:
    0;

  color:
    var(--hein-orange);

  font-family:
    "Open Sans",
    Arial,
    sans-serif;

  font-size:
    12px;

  font-weight:
    700;

  line-height:
    1.35;

  letter-spacing:
    0.13em;

  text-transform:
    uppercase;

  overflow-wrap:
    normal;

  word-break:
    normal;

  hyphens:
    none;
}


.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-delivery-label
  .elementor-heading-title::before {
  content: "";

  display:
    block;

  width:
    27px;

  height:
    2px;

  flex:
    0
    0
    27px;

  background:
    var(--hein-orange);
}


.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-delivery-label
  .elementor-heading-title::after {
  content:
    none !important;

  display:
    none !important;
}


/* =========================================================
   9. MAIN SECTION HEADING
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-title {
  width:
    100%;

  margin:
    0
    0
    18px;
}


.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-delivery-title
  .elementor-heading-title {
  width:
    100%;

  max-width:
    760px;

  margin:
    0;

  color:
    var(--hein-white);

  font-family:
    "Aller",
    "Open Sans",
    Arial,
    sans-serif;

  font-size:
    clamp(35px, 3.5vw, 50px);

  font-weight:
    700;

  line-height:
    1.08;

  letter-spacing:
    -0.032em;

  text-transform:
    uppercase !important;

  overflow-wrap:
    normal;

  word-break:
    normal;

  hyphens:
    none;

  text-wrap:
    balance;

  text-shadow:
    0
    2px
    18px
    rgba(0, 23, 42, 0.16);
}


/* =========================================================
   10. INTRODUCTION
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-intro {
  width:
    min(100%, 740px);

  margin:
    0;
}


.elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-intro,
.elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-intro p {
  color:
    rgba(255, 255, 255, 0.83);

  font-family:
    "Open Sans",
    Arial,
    sans-serif;

  font-size:
    clamp(16px, 1.2vw, 18px);

  font-weight:
    400;

  line-height:
    1.68;

  overflow-wrap:
    normal;

  word-break:
    normal;

  hyphens:
    none;
}


.elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-intro p {
  margin:
    0;
}


/* =========================================================
   11. EXPLORE OUR SERVICES BUTTON
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-button {
  width:
    auto;

  flex:
    0
    0
    auto;

  align-self:
    end;

  margin:
    0
    0
    5px !important;
}


.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-delivery-button
  > .elementor-widget-container {
  margin:
    0 !important;

  padding:
    0 !important;
}


.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-delivery-button
  .elementor-button {
  display:
    inline-flex;

  width:
    auto;

  min-width:
    245px;

  min-height:
    56px;

  align-items:
    center;

  justify-content:
    center;

  gap:
    11px;

  padding:
    15px
    28px;

  color:
    var(--hein-white);

  background:
    var(--hein-orange);

  border:
    1px solid
    var(--hein-orange);

  border-radius:
    999px;

  font-family:
    "Open Sans",
    Arial,
    sans-serif;

  font-size:
    13px;

  font-weight:
    700;

  line-height:
    1.2;

  letter-spacing:
    0.065em;

  text-transform:
    uppercase;

  white-space:
    nowrap;

  box-shadow:
    0
    9px
    22px
    rgba(0, 23, 42, 0.20);

  transition:
    color 180ms ease,
    background-color 180ms ease,
    border-color 180ms ease,
    box-shadow 180ms ease,
    transform 180ms ease;
}


.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-delivery-button
  .elementor-button::after {
  content:
    "→";

  display:
    inline-block;

  color:
    currentColor;

  font-size:
    17px;

  line-height:
    1;

  transition:
    transform 180ms ease;
}


.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-delivery-button
  .elementor-button:hover,
.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-delivery-button
  .elementor-button:focus-visible {
  color:
    var(--hein-white);

  background:
    var(--hein-orange-dark);

  border-color:
    var(--hein-orange-dark);

  box-shadow:
    0
    12px
    26px
    rgba(0, 23, 42, 0.26);

  transform:
    translateY(-2px);
}


.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-delivery-button
  .elementor-button:hover::after,
.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-delivery-button
  .elementor-button:focus-visible::after {
  transform:
    translateX(4px);
}


.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-delivery-button
  .elementor-button:focus-visible {
  outline:
    3px solid
    rgba(255, 255, 255, 0.52);

  outline-offset:
    4px;
}


/* =========================================================
   12. DELIVERY GRID
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-grid,
.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-delivery-grid
  > .e-con-inner {
  display:
    grid !important;

  width:
    100% !important;

  max-width:
    none !important;

  min-width:
    0;

  grid-template-columns:
    repeat(3, minmax(0, 1fr));

  column-gap:
    20px;

  row-gap:
    20px;

  align-items:
    stretch;

  margin:
    0 !important;

  padding:
    0 !important;
}


/* =========================================================
   13. DELIVERY CARD
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-card {
  position:
    relative;

  z-index:
    2;

  display:
    flex !important;

  width:
    100% !important;

  height:
    100%;

  min-width:
    0;

  min-height:
    0;

  flex-direction:
    column;

  justify-content:
    flex-start;

  align-items:
    flex-start;

  gap:
    0;

  margin:
    0 !important;

  padding:
    var(--delivery-card-pad-y)
    var(--delivery-card-pad-x)
    calc(var(--delivery-card-pad-y) + 2px)
    !important;

  background:
    transparent !important;

  border:
    0 !important;

  border-radius:
    20px;

  box-shadow:
    none !important;

  overflow:
    hidden;

  color:
    var(--hein-blue);

  cursor:
    pointer;

  text-decoration:
    none !important;

  -webkit-tap-highlight-color:
    rgba(245, 130, 32, 0.12);

  transform:
    translateY(0);

  transition:
    transform 220ms ease;
}


.elementor-1122 .elementor-element.elementor-element-d782afe a.hein-delivery-card,
.elementor-1122 .elementor-element.elementor-element-d782afe a.hein-delivery-card:visited,
.elementor-1122 .elementor-element.elementor-element-d782afe a.hein-delivery-card:hover,
.elementor-1122 .elementor-element.elementor-element-d782afe a.hein-delivery-card:focus {
  color:
    var(--hein-blue);

  text-decoration:
    none !important;
}


/* =========================================================
   14. ARCHITECTURAL CARD SURFACE
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-card::before {
  content: "";

  position:
    absolute;

  inset:
    0;

  z-index:
    0;

  pointer-events:
    none;

  background-image:

    linear-gradient(
      rgba(0, 48, 87, 0.038) 1px,
      transparent 1px
    ),

    linear-gradient(
      90deg,
      rgba(0, 48, 87, 0.038) 1px,
      transparent 1px
    ),

    radial-gradient(
      circle at 8% 5%,
      rgba(255, 255, 255, 0.86) 0%,
      rgba(255, 255, 255, 0.24) 30%,
      transparent 58%
    ),

    linear-gradient(
      145deg,
      var(--hein-card-top) 0%,
      rgba(249, 252, 254, 0.985) 48%,
      var(--hein-card-bottom) 100%
    );

  background-repeat:
    repeat,
    repeat,
    no-repeat,
    no-repeat;

  background-size:
    28px 28px,
    28px 28px,
    100% 100%,
    100% 100%;

  border:
    1px solid
    var(--hein-card-border);

  border-radius:
    20px;

  box-shadow:
    inset
    0
    1px
    0
    rgba(255, 255, 255, 0.72),

    0
    9px
    26px
    rgba(0, 23, 42, 0.20);

  transition:
    border-color 220ms ease,
    box-shadow 220ms ease;
}


/* =========================================================
   15. LOWER CARD DRAFTING DETAIL
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-card::after {
  content: "";

  position:
    absolute;

  right:
    14px;

  bottom:
    14px;

  z-index:
    1;

  width:
    70px;

  height:
    70px;

  pointer-events:
    none;

  opacity:
    0.32;

  background:

    linear-gradient(
      90deg,
      transparent 49%,
      rgba(0, 48, 87, 0.10) 50%,
      transparent 51%
    ),

    linear-gradient(
      transparent 49%,
      rgba(0, 48, 87, 0.10) 50%,
      transparent 51%
    );

  background-size:
    16px 16px;

  -webkit-mask-image:
    radial-gradient(
      circle at bottom right,
      #000 0%,
      transparent 70%
    );

  mask-image:
    radial-gradient(
      circle at bottom right,
      #000 0%,
      transparent 70%
    );
}


/* =========================================================
   16. CARD TITLE AREA
   ---------------------------------------------------------
   A dedicated right-side rail is reserved for the arrow.

   The arrow therefore cannot overlap the heading.
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-card-title {
  position:
    relative;

  z-index:
    3;

  width:
    100%;

  margin:
    0
    0
    10px;
}


.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-delivery-card-title
  .elementor-widget-container {
  width:
    100%;

  margin:
    0 !important;

  padding:
    0 !important;
}


.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-delivery-card-title
  .elementor-heading-title {
  display:
    block;

  width:
    100%;

  margin:
    0;

  padding:
    0
    var(--delivery-arrow-rail)
    0
    0;

  color:
    var(--hein-blue);

  font-family:
    "Aller",
    "Open Sans",
    Arial,
    sans-serif;

  font-size:
    clamp(23px, 1.75vw, 27px);

  font-weight:
    700;

  line-height:
    1.16;

  letter-spacing:
    -0.025em;

  text-transform:
    none;

  overflow-wrap:
    normal;

  word-break:
    normal;

  hyphens:
    none;

  text-wrap:
    pretty;

  transition:
    color 180ms ease;
}


/* =========================================================
   17. CONSTRUCTION MANAGEMENT DESKTOP FIT
   ---------------------------------------------------------
   The CM label is the longest of the three.

   It gets a very small typographic adjustment on desktop
   while remaining visually consistent with its siblings.
   ========================================================= */

@media (min-width: 1121px) {

  .elementor-1122 .elementor-element.elementor-element-d782afe
    a.hein-delivery-card[href*="#construction-management"]
    .hein-delivery-card-title
    .elementor-heading-title {
    font-size:
      clamp(22px, 1.58vw, 25.5px);

    letter-spacing:
      -0.032em;

    white-space:
      nowrap;

    text-wrap:
      nowrap;
  }

}


/* =========================================================
   18. ORANGE ARCHITECTURAL ACCENT
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-delivery-card-title::before {
  content: "";

  position:
    absolute;

  top:
    calc(0px - var(--delivery-card-pad-y));

  left:
    -10px;

  z-index:
    4;

  width:
    72px;

  height:
    3px;

  pointer-events:
    none;

  background:
    linear-gradient(
      90deg,
      var(--hein-orange) 0%,
      var(--hein-orange) 68%,
      rgba(245, 130, 32, 0.32) 88%,
      transparent 100%
    );

  border-radius:
    0
    0
    2px
    2px;

  opacity:
    0.9;

  transition:
    width 220ms ease,
    opacity 220ms ease;
}


/* =========================================================
   19. CIRCULAR DIRECTIONAL CUE
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-delivery-card-title::after {
  content:
    "→";

  position:
    absolute;

  top:
    50%;

  right:
    0;

  z-index:
    5;

  display:
    grid;

  width:
    32px;

  height:
    32px;

  place-items:
    center;

  margin:
    0;

  color:
    rgba(0, 48, 87, 0.62);

  background:
    rgba(255, 255, 255, 0.46);

  border:
    1px solid
    rgba(0, 48, 87, 0.18);

  border-radius:
    50%;

  box-shadow:
    0
    2px
    7px
    rgba(0, 23, 42, 0.04);

  font-family:
    "Open Sans",
    Arial,
    sans-serif;

  font-size:
    17px;

  font-weight:
    400;

  line-height:
    1;

  pointer-events:
    none;

  transform:
    translateY(-50%)
    translateX(0);

  transition:
    color 180ms ease,
    background-color 180ms ease,
    border-color 180ms ease,
    box-shadow 180ms ease,
    transform 180ms ease;
}


/* =========================================================
   20. CARD DESCRIPTION
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-card-text {
  position:
    relative;

  z-index:
    3;

  width:
    100%;

  margin:
    0;
}


.elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-card-text,
.elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-card-text p {
  color:
    var(--hein-muted);

  font-family:
    "Open Sans",
    Arial,
    sans-serif;

  font-size:
    15px;

  font-weight:
    400;

  line-height:
    1.62;

  overflow-wrap:
    normal;

  word-break:
    normal;

  hyphens:
    none;

  transition:
    color 180ms ease;
}


.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-delivery-card-text
  p {
  margin:
    0;
}


/* =========================================================
   21. CARD HOVER
   ========================================================= */

@media (hover: hover) and (pointer: fine) {

  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card:hover {
    transform:
      translateY(-5px);
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card:hover::before {
    border-color:
      rgba(245, 130, 32, 0.52);

    box-shadow:
      inset
      0
      1px
      0
      rgba(255, 255, 255, 0.78),

      0
      17px
      38px
      rgba(0, 23, 42, 0.28);
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card:hover
    .hein-delivery-card-title
    .elementor-heading-title {
    color:
      var(--hein-orange);
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card:hover
    .hein-delivery-card-title::before {
    width:
      104px;

    opacity:
      1;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card:hover
    .hein-delivery-card-title::after {
    color:
      var(--hein-white);

    background:
      var(--hein-orange);

    border-color:
      var(--hein-orange);

    box-shadow:
      0
      5px
      12px
      rgba(216, 106, 8, 0.22);

    transform:
      translateY(-50%)
      translateX(4px);
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card:hover
    .hein-delivery-card-text,
  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card:hover
    .hein-delivery-card-text p {
    color:
      var(--hein-body);
  }

}


/* =========================================================
   22. KEYBOARD FOCUS
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-delivery-card:focus-visible {
  transform:
    translateY(-5px);

  outline:
    3px solid
    rgba(245, 130, 32, 0.72);

  outline-offset:
    4px;
}


.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-delivery-card:focus-visible::before {
  border-color:
    rgba(245, 130, 32, 0.58);

  box-shadow:
    inset
    0
    1px
    0
    rgba(255, 255, 255, 0.78),

    0
    17px
    38px
    rgba(0, 23, 42, 0.28);
}


.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-delivery-card:focus-visible
  .hein-delivery-card-title
  .elementor-heading-title {
  color:
    var(--hein-orange);
}


.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-delivery-card:focus-visible
  .hein-delivery-card-title::before {
  width:
    104px;

  opacity:
    1;
}


.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-delivery-card:focus-visible
  .hein-delivery-card-title::after {
  color:
    var(--hein-white);

  background:
    var(--hein-orange);

  border-color:
    var(--hein-orange);

  box-shadow:
    0
    5px
    12px
    rgba(216, 106, 8, 0.22);

  transform:
    translateY(-50%)
    translateX(4px);
}


.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-delivery-card:focus-visible
  .hein-delivery-card-text,
.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-delivery-card:focus-visible
  .hein-delivery-card-text p {
  color:
    var(--hein-body);
}


/* Small tactile response when clicked */
.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-delivery-card:active {
  transform:
    translateY(-2px);
}


/* =========================================================
   23. OPTIONAL FULL-WIDTH DIVIDER
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-d782afe .hein-section-divider {
  position:
    relative !important;

  z-index:
    3 !important;

  width:
    100% !important;

  max-width:
    none !important;

  flex-shrink:
    0 !important;

  margin:
    0 !important;

  padding:
    0 !important;

  overflow:
    visible !important;
}


.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-section-divider
  > .elementor-widget-container {
  width:
    100% !important;

  max-width:
    none !important;

  margin:
    0 !important;

  padding:
    0 !important;
}


.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-section-divider
  .elementor-divider,
.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-section-divider
  .elementor-divider-separator {
  width:
    100% !important;

  max-width:
    none !important;
}


.elementor-1122 .elementor-element.elementor-element-d782afe
  .hein-section-divider
  .elementor-divider-separator {
  display:
    block !important;
}


/* =========================================================
   24. MID DESKTOP / SMALL LAPTOP
   ---------------------------------------------------------
   Switch to two columns before the cards become narrow
   enough to compromise the title / arrow relationship.
   ========================================================= */

@media (max-width: 1120px) {

  .elementor-1122 .elementor-element.elementor-element-d782afe {
    --delivery-card-pad-x:
      26px;

    --delivery-card-pad-y:
      26px;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-grid,
  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-grid
    > .e-con-inner {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card:last-child {
    grid-column:
      1 / -1;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card-title
    .elementor-heading-title {
    font-size:
      clamp(23px, 2.35vw, 27px);
  }

}


/* =========================================================
   25. LAPTOP
   ========================================================= */

@media (max-width: 1024px) {

  .elementor-1122 .elementor-element.elementor-element-d782afe {
    --delivery-card-pad-x:
      24px;

    --delivery-card-pad-y:
      25px;

    --delivery-arrow-rail:
      44px;

    padding:
      76px
      0
      68px;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-shell {
    width:
      min(calc(100% - 40px), 1200px) !important;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-header,
  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-header
    > .e-con-inner {
    column-gap:
      34px;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-header {
    margin-bottom:
      32px !important;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-title
    .elementor-heading-title {
    font-size:
      clamp(34px, 4vw, 45px);
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-button
    .elementor-button {
    min-width:
      225px;

    min-height:
      54px;

    padding:
      14px
      24px;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card-title
    .elementor-heading-title {
    font-size:
      clamp(22px, 2.4vw, 26px);
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card-title::after {
    width:
      30px;

    height:
      30px;

    font-size:
      16px;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card-text,
  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card-text p {
    font-size:
      14px;

    line-height:
      1.62;
  }

}


/* =========================================================
   26. STACKED HEADER / TABLET
   ========================================================= */

@media (max-width: 820px) {

  .elementor-1122 .elementor-element.elementor-element-d782afe {
    padding:
      70px
      0
      64px;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-shell {
    width:
      min(calc(100% - 36px), 1200px) !important;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-header,
  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-header
    > .e-con-inner {
    grid-template-columns:
      1fr;

    row-gap:
      24px;

    align-items:
      start;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-header-copy {
    width:
      100% !important;

    max-width:
      700px !important;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-button {
    align-self:
      start;

    margin:
      0 !important;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe::before {
    background-position:
      58% center;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe::after {
    background-image:

      radial-gradient(
        circle at 92% -8%,
        rgba(245, 130, 32, 0.13) 0%,
        rgba(245, 130, 32, 0.045) 27%,
        transparent 48%
      ),

      linear-gradient(
        rgba(255, 255, 255, 0.022) 1px,
        transparent 1px
      ),

      linear-gradient(
        90deg,
        rgba(255, 255, 255, 0.022) 1px,
        transparent 1px
      ),

      linear-gradient(
        180deg,
        rgba(0, 31, 56, 0.95) 0%,
        rgba(0, 48, 87, 0.91) 100%
      );
  }

}


/* =========================================================
   27. MOBILE
   ---------------------------------------------------------
   Mobile treatment is intentionally more compact than
   desktop.

   - Header CTA becomes a smaller content-width pill
   - Cards use tighter padding and smaller radii
   - Directional cues are reduced in size
   - Card descriptions are tightened
   - Service headings remain on one line
   - Construction Management receives a dedicated fit rule
   ========================================================= */

@media (max-width: 767px) {

  .elementor-1122 .elementor-element.elementor-element-d782afe {
    --delivery-card-pad-x:
      18px;

    --delivery-card-pad-y:
      19px;

    --delivery-arrow-rail:
      30px;

    padding:
      56px
      0
      52px;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe::before {
    background-position:
      60% center;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe::after {
    background-size:
      100% 100%,
      48px 48px,
      48px 48px,
      100% 100%;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-shell {
    width:
      min(calc(100% - 32px), 1200px) !important;
  }


  /* =======================================================
     MOBILE HEADER
     ======================================================= */

  .elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-header {
    margin-bottom:
      24px !important;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-header,
  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-header
    > .e-con-inner {
    row-gap:
      19px;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-label {
    margin-bottom:
      11px;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-label
    .elementor-heading-title {
    font-size:
      10.5px;

    gap:
      9px;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-label
    .elementor-heading-title::before {
    width:
      23px;

    flex:
      0
      0
      23px;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-title {
    margin-bottom:
      14px;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-title
    .elementor-heading-title {
    font-size:
      clamp(30px, 8.2vw, 38px);

    line-height:
      1.06;

    letter-spacing:
      -0.03em;

    text-wrap:
      balance;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-intro,
  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-intro p {
    font-size:
      15px;

    line-height:
      1.58;
  }


  /* =======================================================
     MOBILE EXPLORE SERVICES CTA

     The desktop pill is intentionally reduced on mobile.
     It stays prominent without reading like another large
     full-width card.
     ======================================================= */

  .elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-button {
    width:
      auto;

    max-width:
      100%;

    align-self:
      flex-start;

    margin:
      0 !important;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-button
    .elementor-button {
    width:
      auto;

    min-width:
      0;

    min-height:
      44px;

    padding:
      10px
      18px;

    gap:
      9px;

    font-size:
      11.5px;

    letter-spacing:
      0.06em;

    box-shadow:
      0
      7px
      17px
      rgba(0, 23, 42, 0.18);
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-button
    .elementor-button::after {
    font-size:
      15px;
  }


  /* =======================================================
     MOBILE CARD GRID
     ======================================================= */

  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-grid,
  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-grid
    > .e-con-inner {
    grid-template-columns:
      1fr;

    row-gap:
      12px;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card:last-child {
    grid-column:
      auto;
  }


  /* =======================================================
     MOBILE CARDS
     ======================================================= */

  .elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-card {
    height:
      auto;

    border-radius:
      16px;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-card::before {
    background-size:
      24px 24px,
      24px 24px,
      100% 100%,
      100% 100%;

    border-radius:
      16px;

    box-shadow:
      inset
      0
      1px
      0
      rgba(255, 255, 255, 0.72),

      0
      7px
      20px
      rgba(0, 23, 42, 0.17);
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-card::after {
    right:
      10px;

    bottom:
      10px;

    width:
      52px;

    height:
      52px;

    opacity:
      0.24;

    background-size:
      14px 14px;
  }


  /* =======================================================
     MOBILE CARD TITLES

     All three service names remain on one line.
     ======================================================= */

  .elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-card-title {
    margin-bottom:
      6px;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card-title
    .elementor-heading-title {
    font-size:
      clamp(18px, 5vw, 20px);

    line-height:
      1.15;

    letter-spacing:
      -0.022em;

    padding-right:
      var(--delivery-arrow-rail);

    white-space:
      nowrap;

    text-wrap:
      nowrap;

    overflow-wrap:
      normal;

    word-break:
      normal;

    hyphens:
      none;
  }


  /*
   * Construction Management is the longest service name.
   * A slight size/tracking adjustment guarantees that it
   * remains one line without making the other cards smaller.
   */
  .elementor-1122 .elementor-element.elementor-element-d782afe
    a.hein-delivery-card[href*="#construction-management"]
    .hein-delivery-card-title
    .elementor-heading-title {
    font-size:
      clamp(17.5px, 4.8vw, 19.5px);

    letter-spacing:
      -0.03em;

    white-space:
      nowrap;

    text-wrap:
      nowrap;
  }


  /* Smaller architectural accent */
  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card-title::before {
    left:
      -6px;

    width:
      50px;

    height:
      2px;
  }


  /* =======================================================
     MOBILE DIRECTIONAL CUE

     Reduced from the desktop button-like treatment so it
     reads as a directional cue rather than a second CTA.
     ======================================================= */

  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card-title::after {
    width:
      24px;

    height:
      24px;

    right:
      0;

    font-size:
      13px;

    border-color:
      rgba(0, 48, 87, 0.14);

    background:
      rgba(255, 255, 255, 0.40);

    box-shadow:
      0
      1px
      5px
      rgba(0, 23, 42, 0.035);
  }


  /* =======================================================
     MOBILE CARD COPY
     ======================================================= */

  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card-text,
  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card-text p {
    font-size:
      14px;

    line-height:
      1.5;
  }


  /* Keep tap response restrained on touch screens */
  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card:active {
    transform:
      translateY(-1px);
  }

}


/* =========================================================
   28. SMALL MOBILE
   ========================================================= */

@media (max-width: 420px) {

  .elementor-1122 .elementor-element.elementor-element-d782afe {
    --delivery-card-pad-x:
      17px;

    --delivery-card-pad-y:
      18px;

    --delivery-arrow-rail:
      28px;

    padding:
      52px
      0
      48px;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-shell {
    width:
      min(calc(100% - 28px), 1200px) !important;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-title
    .elementor-heading-title {
    font-size:
      clamp(29px, 8.5vw, 35px);
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-intro,
  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-intro p {
    font-size:
      14.75px;

    line-height:
      1.56;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-button
    .elementor-button {
    min-height:
      42px;

    padding:
      9px
      16px;

    font-size:
      11px;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-grid,
  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-grid
    > .e-con-inner {
    row-gap:
      11px;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-card {
    border-radius:
      15px;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-card::before {
    border-radius:
      15px;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card-title
    .elementor-heading-title {
    font-size:
      18px;

    line-height:
      1.14;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    a.hein-delivery-card[href*="#construction-management"]
    .hein-delivery-card-title
    .elementor-heading-title {
    font-size:
      17.5px;

    letter-spacing:
      -0.032em;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card-title::after {
    width:
      22px;

    height:
      22px;

    font-size:
      12px;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card-text,
  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card-text p {
    font-size:
      13.75px;

    line-height:
      1.48;
  }

}


/* =========================================================
   29. VERY SMALL MOBILE
   ========================================================= */

@media (max-width: 360px) {

  .elementor-1122 .elementor-element.elementor-element-d782afe {
    --delivery-card-pad-x:
      16px;

    --delivery-card-pad-y:
      17px;

    --delivery-arrow-rail:
      26px;

    padding:
      50px
      0
      46px;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe .hein-delivery-shell {
    width:
      min(calc(100% - 24px), 1200px) !important;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-title
    .elementor-heading-title {
    font-size:
      28px;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card-title
    .elementor-heading-title {
    font-size:
      17px;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    a.hein-delivery-card[href*="#construction-management"]
    .hein-delivery-card-title
    .elementor-heading-title {
    font-size:
      16.5px;

    letter-spacing:
      -0.034em;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card-title::after {
    width:
      21px;

    height:
      21px;

    font-size:
      11.5px;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card-text,
  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card-text p {
    font-size:
      13.5px;

    line-height:
      1.46;
  }

}


/* =========================================================
   29. REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

  .elementor-1122 .elementor-element.elementor-element-d782afe::before {
    animation:
      none !important;

    transform:
      scale(1.12) !important;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-button
    .elementor-button,
  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-button
    .elementor-button::after,
  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card,
  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card::before,
  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card-title::before,
  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card-title::after,
  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card-title
    .elementor-heading-title,
  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card-text,
  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card-text p {
    transition:
      none !important;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-button
    .elementor-button:hover,
  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-button
    .elementor-button:focus-visible,
  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card:hover,
  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card:focus-visible,
  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card:active {
    transform:
      none !important;
  }


  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card:hover
    .hein-delivery-card-title::after,
  .elementor-1122 .elementor-element.elementor-element-d782afe
    .hein-delivery-card:focus-visible
    .hein-delivery-card-title::after {
    transform:
      translateY(-50%) !important;
  }

}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-69db89b *//* =========================================================
   HEIN HOMEPAGE FEATURED PROJECTS
   ---------------------------------------------------------
   Apply this CSS to:
   Projects Section

   Required classes:
   Projects Section: hein-home-projects
   Projects Shell: hein-projects-shell
   Projects Header: hein-projects-header
   Projects Header Copy: hein-projects-header-copy
   Section Label: hein-projects-label
   Section Title: hein-projects-title
   Introduction: hein-projects-intro
   Header Button: hein-projects-button
   Projects Grid: hein-projects-grid
   Loop Grid Widget: project-loop-grid

   TYPOGRAPHY SYSTEM:

   Eyebrow:
   Open Sans / 12px / uppercase / tracked

   Major section heading:
   Aller / 700 / uppercase
   Desktop: clamp(35px, 3.5vw, 50px)

   Supporting copy:
   Open Sans / 16–18px

   This CSS intentionally does NOT restyle the Loop Item
   template itself.
   ========================================================= */


/* =========================================================
   1. SECTION ROOT
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-69db89b {
  --hein-blue: #003057;
  --hein-blue-dark: #001f38;

  --hein-orange: #f58220;
  --hein-orange-dark: #d86a08;

  --hein-white: #ffffff;

  --hein-body: #41596a;
  --hein-muted: #607684;

  --hein-soft-background: #f3f7f9;

  --hein-border:
    rgba(0, 48, 87, 0.13);

  position: relative;
  z-index: 2;

  display: block;

  width: 100%;

  margin: 0;

  padding:
    clamp(74px, 5.8vw, 94px)
    0;

  overflow: hidden;

  color:
    var(--hein-body);

  background:
    linear-gradient(
      180deg,
      var(--hein-soft-background) 0%,
      #ffffff 100%
    );
}


/* Predictable sizing */
.elementor-1122 .elementor-element.elementor-element-69db89b,
.elementor-1122 .elementor-element.elementor-element-69db89b *,
.elementor-1122 .elementor-element.elementor-element-69db89b *::before,
.elementor-1122 .elementor-element.elementor-element-69db89b *::after {
  box-sizing: border-box;
}


/* Remove Elementor default widget spacing */
.elementor-1122 .elementor-element.elementor-element-69db89b .elementor-widget {
  margin-block-end: 0;
}


/* =========================================================
   2. SUBTLE SECTION DIVIDER
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-69db89b::before {
  content: "";

  position: absolute;

  top: 0;
  left: 50%;

  width:
    min(calc(100% - 48px), 1200px);

  height: 1px;

  background:
    linear-gradient(
      90deg,
      transparent 0%,
      rgba(0, 48, 87, 0.12) 16%,
      rgba(0, 48, 87, 0.12) 84%,
      transparent 100%
    );

  transform:
    translateX(-50%);

  pointer-events: none;
}


/* =========================================================
   3. PROJECTS SHELL
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-69db89b .hein-projects-shell {
  position: relative;

  display: flex !important;

  width:
    min(calc(100% - 48px), 1200px) !important;

  max-width:
    1200px !important;

  min-width: 0;

  flex-direction: column;

  align-items: stretch;

  gap: 0;

  margin-inline:
    auto !important;

  padding:
    0 !important;
}


/* Elementor inner-wrapper compatibility */
.elementor-1122 .elementor-element.elementor-element-69db89b
  .hein-projects-shell
  > .e-con-inner {
  display: flex !important;

  width:
    100% !important;

  max-width:
    none !important;

  flex-direction: column;

  align-items: stretch;

  gap: 0;

  margin:
    0 !important;

  padding:
    0 !important;
}


/* =========================================================
   4. PROJECTS HEADER
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-69db89b .hein-projects-header {
  display: flex !important;

  width:
    100% !important;

  min-width: 0;

  flex-direction: row;

  align-items: flex-end;

  justify-content:
    space-between;

  column-gap:
    clamp(32px, 5vw, 70px);

  row-gap: 24px;

  margin:
    0
    0
    36px !important;

  padding:
    0 !important;
}


/* =========================================================
   5. HEADER COPY
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-69db89b .hein-projects-header-copy {
  display: flex !important;

  width:
    min(100%, 790px) !important;

  max-width:
    790px;

  min-width: 0;

  flex-direction: column;

  align-items:
    flex-start;

  gap: 0;

  margin:
    0 !important;

  padding:
    0 !important;
}


/* =========================================================
   6. SECTION EYEBROW
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-69db89b .hein-projects-label {
  display: block;

  width: auto;

  margin:
    0
    0
    15px;
}


/* Remove decorative elements inherited from other sections */
.elementor-1122 .elementor-element.elementor-element-69db89b .hein-projects-label::before,
.elementor-1122 .elementor-element.elementor-element-69db89b .hein-projects-label::after,
.elementor-1122 .elementor-element.elementor-element-69db89b
  .hein-projects-label
  > .elementor-widget-container::before,
.elementor-1122 .elementor-element.elementor-element-69db89b
  .hein-projects-label
  > .elementor-widget-container::after {
  content: none !important;

  display: none !important;
}


/* Eyebrow typography */
.elementor-1122 .elementor-element.elementor-element-69db89b
  .hein-projects-label
  .elementor-heading-title {
  display: flex;

  align-items: center;

  gap: 10px;

  margin: 0;

  color:
    var(--hein-orange);

  font-family:
    "Open Sans",
    Arial,
    sans-serif;

  font-size: 12px;

  font-weight: 700;

  line-height: 1.35;

  letter-spacing: 0.13em;

  text-transform: uppercase;

  overflow-wrap: normal;

  word-break: normal;

  hyphens: none;
}


/* Single orange construction line */
.elementor-1122 .elementor-element.elementor-element-69db89b
  .hein-projects-label
  .elementor-heading-title::before {
  content: "";

  display: block;

  width: 27px;
  height: 2px;

  flex:
    0
    0
    27px;

  background:
    var(--hein-orange);
}


.elementor-1122 .elementor-element.elementor-element-69db89b
  .hein-projects-label
  .elementor-heading-title::after {
  content: none !important;

  display: none !important;
}


/* =========================================================
   7. SECTION TITLE
   ---------------------------------------------------------
   Elementor text:
   Experience Taking Shape

   Rendered on the page as:
   EXPERIENCE TAKING SHAPE

   Same homepage display-heading scale as About and
   Project Delivery.
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-69db89b .hein-projects-title {
  width: 100%;

  margin:
    0
    0
    18px;
}


.elementor-1122 .elementor-element.elementor-element-69db89b
  .hein-projects-title
  .elementor-heading-title {
  width: 100%;

  max-width: 790px;

  margin: 0;

  color:
    var(--hein-blue);

  font-family:
    "Aller",
    "Open Sans",
    Arial,
    sans-serif;

  font-size:
    clamp(35px, 3.5vw, 50px);

  font-weight: 700;

  line-height: 1.08;

  letter-spacing:
    -0.032em;

  text-transform:
    uppercase !important;

  overflow-wrap:
    normal;

  word-break:
    normal;

  hyphens:
    none;

  text-wrap:
    balance;
}


/* =========================================================
   8. INTRODUCTION
   ---------------------------------------------------------
   Matches the supporting-copy scale used elsewhere on the
   homepage.
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-69db89b .hein-projects-intro {
  width:
    min(100%, 740px);

  margin: 0;
}


.elementor-1122 .elementor-element.elementor-element-69db89b .hein-projects-intro,
.elementor-1122 .elementor-element.elementor-element-69db89b .hein-projects-intro p {
  color:
    var(--hein-body);

  font-family:
    "Open Sans",
    Arial,
    sans-serif;

  font-size:
    clamp(16px, 1.2vw, 18px);

  font-weight: 400;

  line-height: 1.68;

  overflow-wrap:
    normal;

  word-break:
    normal;

  hyphens:
    none;
}


.elementor-1122 .elementor-element.elementor-element-69db89b
  .hein-projects-intro p {
  margin: 0;
}


/* =========================================================
   9. VIEW PROJECTS BUTTON
   ---------------------------------------------------------
   Secondary outlined CTA treatment.
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-69db89b .hein-projects-button {
  width: auto;

  flex:
    0
    0
    auto;

  margin:
    0
    0
    4px;
}


.elementor-1122 .elementor-element.elementor-element-69db89b
  .hein-projects-button
  > .elementor-widget-container {
  margin:
    0 !important;

  padding:
    0 !important;
}


.elementor-1122 .elementor-element.elementor-element-69db89b
  .hein-projects-button
  .elementor-button {
  display: inline-flex;

  width: auto;

  min-height: 52px;

  align-items: center;

  justify-content: center;

  gap: 10px;

  padding:
    14px
    24px;

  color:
    var(--hein-blue);

  background:
    rgba(255, 255, 255, 0.28);

  border:
    1px solid
    rgba(0, 48, 87, 0.34);

  border-radius:
    999px;

  font-family:
    "Open Sans",
    Arial,
    sans-serif;

  font-size: 13px;

  font-weight: 700;

  line-height: 1.2;

  letter-spacing:
    0.06em;

  text-transform:
    uppercase;

  white-space:
    nowrap;

  box-shadow:
    none;

  transition:
    color 180ms ease,
    background-color 180ms ease,
    border-color 180ms ease,
    transform 180ms ease;
}


/* CTA arrow */
.elementor-1122 .elementor-element.elementor-element-69db89b
  .hein-projects-button
  .elementor-button::after {
  content: "→";

  display: inline-block;

  color:
    var(--hein-orange);

  font-size: 17px;

  line-height: 1;

  transition:
    color 180ms ease,
    transform 180ms ease;
}


/* Button hover */
.elementor-1122 .elementor-element.elementor-element-69db89b
  .hein-projects-button
  .elementor-button:hover,
.elementor-1122 .elementor-element.elementor-element-69db89b
  .hein-projects-button
  .elementor-button:focus-visible {
  color:
    var(--hein-white);

  background:
    var(--hein-blue);

  border-color:
    var(--hein-blue);

  transform:
    translateY(-2px);
}


.elementor-1122 .elementor-element.elementor-element-69db89b
  .hein-projects-button
  .elementor-button:hover::after,
.elementor-1122 .elementor-element.elementor-element-69db89b
  .hein-projects-button
  .elementor-button:focus-visible::after {
  color:
    var(--hein-white);

  transform:
    translateX(4px);
}


/* Keyboard focus */
.elementor-1122 .elementor-element.elementor-element-69db89b
  .hein-projects-button
  .elementor-button:focus-visible {
  outline:
    3px solid
    rgba(245, 130, 32, 0.42);

  outline-offset: 4px;
}


/* =========================================================
   10. PROJECTS GRID PARENT
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-69db89b .hein-projects-grid {
  display:
    block !important;

  width:
    100% !important;

  max-width:
    none !important;

  min-width: 0;
  min-height: 0;

  margin:
    0 !important;

  padding:
    0 !important;
}


/* Elementor inner wrapper */
.elementor-1122 .elementor-element.elementor-element-69db89b
  .hein-projects-grid
  > .e-con-inner {
  display:
    block !important;

  width:
    100% !important;

  max-width:
    none !important;

  margin:
    0 !important;

  padding:
    0 !important;
}


/* =========================================================
   11. EXISTING LOOP GRID WIDGET
   ---------------------------------------------------------
   Only layout and spacing are controlled here.

   The existing Loop Item template remains untouched.
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-69db89b .project-loop-grid {
  display: block;

  width:
    100% !important;

  max-width:
    none !important;

  min-width: 0;

  margin:
    0 !important;

  padding:
    0 !important;
}


.elementor-1122 .elementor-element.elementor-element-69db89b
  .project-loop-grid
  > .elementor-widget-container {
  width: 100%;

  max-width: none;

  margin:
    0 !important;

  padding:
    0 !important;
}


/* =========================================================
   12. LOOP GRID LAYOUT
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-69db89b
  .project-loop-grid
  .elementor-loop-container {
  display:
    grid !important;

  width:
    100% !important;

  grid-template-columns:
    repeat(3, minmax(0, 1fr));

  column-gap:
    24px !important;

  row-gap:
    24px !important;

  margin:
    0 !important;

  padding:
    0 !important;
}


/* Defensive pagination reset */
.elementor-1122 .elementor-element.elementor-element-69db89b
  .project-loop-grid
  .elementor-pagination {
  display:
    none !important;
}


/* =========================================================
   13. LAPTOP / SMALL DESKTOP
   ========================================================= */

@media (max-width: 1024px) {

  .elementor-1122 .elementor-element.elementor-element-69db89b {
    padding:
      74px
      0;
  }


  .elementor-1122 .elementor-element.elementor-element-69db89b .hein-projects-shell {
    width:
      min(calc(100% - 40px), 1200px) !important;
  }


  .elementor-1122 .elementor-element.elementor-element-69db89b .hein-projects-header {
    margin-bottom:
      34px !important;
  }


  /*
   * Same responsive heading scale as About.
   */
  .elementor-1122 .elementor-element.elementor-element-69db89b
    .hein-projects-title
    .elementor-heading-title {
    font-size:
      clamp(34px, 4vw, 45px);
  }


  .elementor-1122 .elementor-element.elementor-element-69db89b
    .project-loop-grid
    .elementor-loop-container {
    column-gap:
      20px !important;

    row-gap:
      20px !important;
  }

}


/* =========================================================
   14. TABLET
   ========================================================= */

@media (max-width: 820px) {

  .elementor-1122 .elementor-element.elementor-element-69db89b {
    padding:
      70px
      0;
  }


  .elementor-1122 .elementor-element.elementor-element-69db89b .hein-projects-shell {
    width:
      min(calc(100% - 36px), 1200px) !important;
  }


  .elementor-1122 .elementor-element.elementor-element-69db89b .hein-projects-header {
    flex-direction:
      column;

    align-items:
      flex-start;

    margin-bottom:
      32px !important;
  }


  .elementor-1122 .elementor-element.elementor-element-69db89b .hein-projects-header-copy {
    width:
      100% !important;

    max-width:
      720px;
  }


  .elementor-1122 .elementor-element.elementor-element-69db89b .hein-projects-button {
    margin-bottom: 0;
  }


  .elementor-1122 .elementor-element.elementor-element-69db89b
    .project-loop-grid
    .elementor-loop-container {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));

    column-gap:
      18px !important;

    row-gap:
      18px !important;
  }

}


/* =========================================================
   15. MOBILE
   ========================================================= */

@media (max-width: 767px) {

  .elementor-1122 .elementor-element.elementor-element-69db89b {
    padding:
      62px
      0;
  }


  .elementor-1122 .elementor-element.elementor-element-69db89b::before {
    width:
      calc(100% - 28px);
  }


  .elementor-1122 .elementor-element.elementor-element-69db89b .hein-projects-shell {
    width:
      min(calc(100% - 28px), 1200px) !important;
  }


  .elementor-1122 .elementor-element.elementor-element-69db89b .hein-projects-header {
    margin-bottom:
      28px !important;
  }


  .elementor-1122 .elementor-element.elementor-element-69db89b .hein-projects-label {
    margin-bottom:
      14px;
  }


  .elementor-1122 .elementor-element.elementor-element-69db89b .hein-projects-title {
    margin-bottom:
      16px;
  }


  .elementor-1122 .elementor-element.elementor-element-69db89b
    .hein-projects-title
    .elementor-heading-title {
    font-size:
      clamp(33px, 8.8vw, 42px);

    line-height:
      1.08;

    text-transform:
      uppercase !important;

    text-wrap:
      pretty;
  }


  .elementor-1122 .elementor-element.elementor-element-69db89b .hein-projects-intro,
  .elementor-1122 .elementor-element.elementor-element-69db89b .hein-projects-intro p {
    font-size:
      16px;

    line-height:
      1.65;
  }


  .elementor-1122 .elementor-element.elementor-element-69db89b .hein-projects-button {
    width:
      100%;
  }


  .elementor-1122 .elementor-element.elementor-element-69db89b
    .hein-projects-button
    .elementor-button {
    width:
      100%;

    min-height:
      52px;
  }


  .elementor-1122 .elementor-element.elementor-element-69db89b
    .project-loop-grid
    .elementor-loop-container {
    grid-template-columns:
      1fr;

    row-gap:
      20px !important;
  }

}


/* =========================================================
   16. SMALL MOBILE
   ========================================================= */

@media (max-width: 420px) {

  .elementor-1122 .elementor-element.elementor-element-69db89b {
    padding:
      56px
      0;
  }


  .elementor-1122 .elementor-element.elementor-element-69db89b
    .hein-projects-title
    .elementor-heading-title {
    font-size:
      clamp(31px, 9vw, 39px);

    text-transform:
      uppercase !important;
  }

}


/* =========================================================
   17. REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

  .elementor-1122 .elementor-element.elementor-element-69db89b
    .hein-projects-button
    .elementor-button,
  .elementor-1122 .elementor-element.elementor-element-69db89b
    .hein-projects-button
    .elementor-button::after {
    transition:
      none !important;
  }


  .elementor-1122 .elementor-element.elementor-element-69db89b
    .hein-projects-button
    .elementor-button:hover,
  .elementor-1122 .elementor-element.elementor-element-69db89b
    .hein-projects-button
    .elementor-button:focus-visible {
    transform:
      none;
  }

}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-72a63d7 *//* =========================================================
   HEIN HOMEPAGE CLIENT LOGO BANNER
   ---------------------------------------------------------
   Apply this CSS to:
   Clients Banner Section

   Required classes:
   hein-home-clients
   hein-clients-shell
   hein-clients-copy
   hein-clients-label
   hein-clients-title
   hein-clients-carousel

   Recommended carousel settings:
   Desktop Slides to Show: 4
   Tablet Slides to Show: 4
   Mobile Slides to Show: 2

   Slides to Scroll: 1
   Autoplay: Yes
   Infinite Loop: Yes
   Navigation: None
   Link: None

   TYPOGRAPHY SYSTEM:

   EXPERIENCE
   = Standard 12px Open Sans eyebrow

   PROUD TO HAVE BUILT FOR
   = Compact Aller display heading
   = Smaller than major homepage section headings

   Client logos remain static on hover.
   ========================================================= */


/* =========================================================
   1. LOCAL DESIGN TOKENS + SECTION ROOT
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-72a63d7 {
  --hein-blue: #003057;
  --hein-blue-dark: #001f38;
  --hein-blue-deep: #00172a;

  --hein-orange: #f58220;
  --hein-orange-dark: #e17216;
  --hein-orange-deep: #cb6312;
  --hein-orange-light: #f28f36;

  --hein-white: #ffffff;

  position: relative;
  z-index: 2;
  isolation: isolate;

  display: block;

  width: 100%;

  margin: 0;

  padding:
    clamp(38px, 3.8vw, 52px)
    0;

  overflow: hidden;

  color:
    var(--hein-white);

  background-color:
    var(--hein-orange);

  border-top:
    1px solid
    rgba(255, 255, 255, 0.16);

  border-bottom:
    1px solid
    rgba(255, 255, 255, 0.10);
}


/* Predictable sizing */
.elementor-1122 .elementor-element.elementor-element-72a63d7,
.elementor-1122 .elementor-element.elementor-element-72a63d7 *,
.elementor-1122 .elementor-element.elementor-element-72a63d7 *::before,
.elementor-1122 .elementor-element.elementor-element-72a63d7 *::after {
  box-sizing: border-box;
}


/* Hide Elementor's built-in background overlay */
.elementor-1122 .elementor-element.elementor-element-72a63d7 .elementor-background-overlay {
  display:
    none !important;
}


/* Remove Elementor default widget spacing */
.elementor-1122 .elementor-element.elementor-element-72a63d7 .elementor-widget {
  margin-block-end: 0;
}


/* Keep actual content above decorative layers */
.elementor-1122 .elementor-element.elementor-element-72a63d7 > * {
  position: relative;
  z-index: 2;
}


/* =========================================================
   2. FINE DRAFTING GRID
   ---------------------------------------------------------
   Continues the restrained architectural-grid language used
   throughout the HEIN homepage.
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-72a63d7::before {
  content: "";

  position: absolute;
  inset: 0;
  z-index: 0;

  pointer-events: none;

  background-image:

    linear-gradient(
      rgba(255, 255, 255, 0.075) 1px,
      transparent 1px
    ),

    linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.075) 1px,
      transparent 1px
    );

  background-size:
    30px 30px;

  background-position:
    center center;

  opacity: 0.28;
}


/* =========================================================
   3. ORANGE GRADIENT + LIGHTING
   ---------------------------------------------------------
   Slightly deeper orange behind the copy with brighter
   orange toward the moving client logos.
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-72a63d7::after {
  content: "";

  position: absolute;
  inset: 0;
  z-index: 1;

  pointer-events: none;

  background:

    radial-gradient(
      circle at 88% 42%,
      rgba(255, 255, 255, 0.10) 0%,
      rgba(255, 255, 255, 0.03) 24%,
      transparent 52%
    ),

    radial-gradient(
      circle at 10% 108%,
      rgba(255, 255, 255, 0.045) 0%,
      transparent 40%
    ),

    linear-gradient(
      100deg,
      rgba(203, 99, 18, 0.90) 0%,
      rgba(225, 114, 22, 0.95) 34%,
      rgba(238, 124, 24, 0.98) 63%,
      rgba(245, 130, 32, 0.99) 82%,
      rgba(242, 143, 54, 0.98) 100%
    );
}


/* =========================================================
   4. CONTENT SHELL
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-72a63d7 .hein-clients-shell {
  position: relative;
  z-index: 2;

  display:
    grid !important;

  width:
    min(calc(100% - 48px), 1200px) !important;

  max-width:
    1200px !important;

  min-width: 0;

  grid-template-columns:
    minmax(245px, 0.34fr)
    minmax(0, 1fr);

  column-gap:
    clamp(34px, 4.5vw, 58px);

  row-gap: 26px;

  align-items: center;

  margin-inline:
    auto !important;

  padding:
    0 !important;
}


/* Elementor inner-container compatibility */
.elementor-1122 .elementor-element.elementor-element-72a63d7
  .hein-clients-shell
  > .e-con-inner {
  display:
    grid !important;

  width:
    100% !important;

  max-width:
    none !important;

  min-width: 0;

  grid-template-columns:
    minmax(245px, 0.34fr)
    minmax(0, 1fr);

  column-gap:
    clamp(34px, 4.5vw, 58px);

  row-gap: 26px;

  align-items: center;

  margin:
    0 !important;

  padding:
    0 !important;
}


/* =========================================================
   5. COPY CONTAINER
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-72a63d7 .hein-clients-copy {
  display:
    flex !important;

  width:
    100% !important;

  max-width:
    310px !important;

  min-width: 0;

  flex-direction: column;

  align-items:
    flex-start !important;

  justify-content: center;

  gap: 0;

  margin:
    0 !important;

  padding:
    0 !important;
}


.elementor-1122 .elementor-element.elementor-element-72a63d7
  .hein-clients-copy
  > .e-con-inner {
  display:
    flex !important;

  width:
    100% !important;

  max-width:
    none !important;

  flex-direction: column;

  align-items:
    flex-start !important;

  justify-content: center;

  gap: 0;

  margin:
    0 !important;

  padding:
    0 !important;
}


/* =========================================================
   6. EYEBROW
   ---------------------------------------------------------
   Matches the standard homepage eyebrow system.

   12px
   Open Sans
   700
   uppercase
   tracked
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-72a63d7 .hein-clients-label {
  display: block;

  width: auto;

  margin:
    0
    0
    12px;
}


/* Remove inherited decorative elements */
.elementor-1122 .elementor-element.elementor-element-72a63d7 .hein-clients-label::before,
.elementor-1122 .elementor-element.elementor-element-72a63d7 .hein-clients-label::after,
.elementor-1122 .elementor-element.elementor-element-72a63d7
  .hein-clients-label
  > .elementor-widget-container::before,
.elementor-1122 .elementor-element.elementor-element-72a63d7
  .hein-clients-label
  > .elementor-widget-container::after {
  content:
    none !important;

  display:
    none !important;
}


.elementor-1122 .elementor-element.elementor-element-72a63d7
  .hein-clients-label
  .elementor-heading-title {
  display: flex;

  align-items: center;

  gap: 10px;

  margin: 0;

  color:
    var(--hein-white);

  font-family:
    "Open Sans",
    Arial,
    sans-serif;

  font-size: 12px;

  font-weight: 700;

  line-height: 1.35;

  letter-spacing:
    0.13em;

  text-transform:
    uppercase;

  overflow-wrap:
    normal;

  word-break:
    normal;

  hyphens:
    none;
}


/* White construction line */
.elementor-1122 .elementor-element.elementor-element-72a63d7
  .hein-clients-label
  .elementor-heading-title::before {
  content: "";

  display: block;

  width: 26px;
  height: 2px;

  flex:
    0
    0
    26px;

  background:
    var(--hein-white);
}


.elementor-1122 .elementor-element.elementor-element-72a63d7
  .hein-clients-label
  .elementor-heading-title::after {
  content:
    none !important;

  display:
    none !important;
}


/* =========================================================
   7. COMPACT SECTION TITLE
   ---------------------------------------------------------
   Elementor text:
   Proud To Have Built For

   Rendered:
   PROUD TO HAVE BUILT FOR

   This intentionally uses a smaller display tier than the
   35px–50px major homepage section headings.

   The client logos are the visual focus of this banner.
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-72a63d7 .hein-clients-title {
  width: 100%;

  margin: 0;
}


.elementor-1122 .elementor-element.elementor-element-72a63d7
  .hein-clients-title
  .elementor-heading-title {
  width: 100%;

  max-width: 310px;

  margin: 0;

  color:
    var(--hein-white);

  font-family:
    "Aller",
    "Open Sans",
    Arial,
    sans-serif;

  font-size:
    clamp(27px, 2.15vw, 34px);

  font-weight: 700;

  line-height: 1.06;

  letter-spacing:
    -0.025em;

  text-transform:
    uppercase !important;

  overflow-wrap:
    normal;

  word-break:
    normal;

  hyphens:
    none;

  text-wrap:
    balance;

  text-shadow:
    0
    2px
    10px
    rgba(112, 39, 0, 0.14);
}


/* =========================================================
   8. IMAGE CAROUSEL ROOT
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-72a63d7 .hein-clients-carousel {
  width: 100%;
  min-width: 0;

  margin: 0;

  padding:
    6px
    0;
}


.elementor-1122 .elementor-element.elementor-element-72a63d7
  .hein-clients-carousel
  > .elementor-widget-container {
  width: 100%;
  min-width: 0;

  margin:
    0 !important;

  padding:
    0 !important;

  overflow: hidden;
}


/* =========================================================
   9. CAROUSEL VIEWPORT
   ---------------------------------------------------------
   Supports current and older Elementor carousel markup.
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-72a63d7
  .hein-clients-carousel
  .elementor-image-carousel-wrapper,
.elementor-1122 .elementor-element.elementor-element-72a63d7
  .hein-clients-carousel
  .swiper,
.elementor-1122 .elementor-element.elementor-element-72a63d7
  .hein-clients-carousel
  .swiper-container {
  width: 100%;
  min-width: 0;

  margin:
    0 !important;

  padding:
    0 !important;

  overflow: hidden;

  /*
   * Soft edge fade prevents client logos from appearing
   * abruptly at either side of the carousel.
   */
  -webkit-mask-image:
    linear-gradient(
      90deg,
      transparent 0%,
      #000000 5%,
      #000000 95%,
      transparent 100%
    );

  mask-image:
    linear-gradient(
      90deg,
      transparent 0%,
      #000000 5%,
      #000000 95%,
      transparent 100%
    );
}


/* Smooth carousel movement */
.elementor-1122 .elementor-element.elementor-element-72a63d7
  .hein-clients-carousel
  .swiper-wrapper {
  align-items: center;

  transition-timing-function:
    linear !important;
}


/* =========================================================
   10. INDIVIDUAL CAROUSEL SLIDES
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-72a63d7
  .hein-clients-carousel
  .swiper-slide {
  display:
    flex !important;

  height:
    auto !important;

  min-height: 104px;

  align-items: center;

  justify-content: center;

  box-sizing: border-box;

  margin:
    0 !important;

  padding:
    8px
    clamp(8px, 1.2vw, 16px) !important;

  background:
    transparent !important;

  border:
    0 !important;

  box-shadow:
    none !important;
}


/* =========================================================
   11. ELEMENTOR SLIDE INNER WRAPPER
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-72a63d7
  .hein-clients-carousel
  .swiper-slide-inner {
  display:
    flex !important;

  width: 100%;
  height: 100%;

  align-items: center;

  justify-content: center;

  margin:
    0 !important;

  padding:
    0 !important;

  background:
    transparent !important;
}


/* =========================================================
   12. OPTIONAL IMAGE LINK RESET
   ---------------------------------------------------------
   Logos are presentation content rather than navigational
   controls in this implementation.
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-72a63d7
  .hein-clients-carousel
  .swiper-slide
  a {
  display:
    flex !important;

  width: 100%;
  height: 100%;

  align-items: center;

  justify-content: center;

  text-decoration:
    none !important;

  pointer-events:
    none;
}


/* =========================================================
   13. LOGO IMAGES
   ---------------------------------------------------------
   Client logos remain intentionally static.

   No hover opacity change.
   No hover scaling.
   No image transition.

   The carousel itself continues moving normally.
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-72a63d7
  .hein-clients-carousel
  .swiper-slide
  img,
.elementor-1122 .elementor-element.elementor-element-72a63d7
  .hein-clients-carousel
  .swiper-slide-image {
  display: block;

  width:
    auto !important;

  height:
    auto !important;

  max-width:
    225px !important;

  max-height:
    74px !important;

  object-fit: contain;

  margin:
    0
    auto !important;

  opacity: 0.94;

  /*
   * Converts supplied client artwork to white for visual
   * consistency across logos.
   */
  filter:
    brightness(0)
    invert(1);

  background:
    transparent !important;

  border:
    0 !important;

  border-radius:
    0 !important;

  box-shadow:
    none !important;

  /*
   * Retain GPU compositing without introducing motion.
   */
  transform:
    translateZ(0);

  transition:
    none !important;
}


/* =========================================================
   14. HOVER NORMALIZATION
   ---------------------------------------------------------
   Prevent Elementor, Astra, or global image styles from
   changing logo appearance on hover.
   ========================================================= */

@media (hover: hover) and (pointer: fine) {

  .elementor-1122 .elementor-element.elementor-element-72a63d7
    .hein-clients-carousel
    .swiper-slide:hover
    img,
  .elementor-1122 .elementor-element.elementor-element-72a63d7
    .hein-clients-carousel
    .swiper-slide:hover
    .swiper-slide-image {
    opacity:
      0.94 !important;

    transform:
      translateZ(0) !important;
  }

}


/* =========================================================
   15. HIDE CAROUSEL CONTROLS
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-72a63d7
  .hein-clients-carousel
  .elementor-swiper-button,
.elementor-1122 .elementor-element.elementor-element-72a63d7
  .hein-clients-carousel
  .swiper-button-prev,
.elementor-1122 .elementor-element.elementor-element-72a63d7
  .hein-clients-carousel
  .swiper-button-next,
.elementor-1122 .elementor-element.elementor-element-72a63d7
  .hein-clients-carousel
  .swiper-pagination,
.elementor-1122 .elementor-element.elementor-element-72a63d7
  .hein-clients-carousel
  .swiper-scrollbar {
  display:
    none !important;
}


/* Remove image captions */
.elementor-1122 .elementor-element.elementor-element-72a63d7
  .hein-clients-carousel
  .elementor-image-carousel-caption {
  display:
    none !important;
}


/* =========================================================
   16. LAPTOP
   ========================================================= */

@media (max-width: 1024px) {

  .elementor-1122 .elementor-element.elementor-element-72a63d7 {
    padding:
      36px
      0;
  }


  .elementor-1122 .elementor-element.elementor-element-72a63d7 .hein-clients-shell {
    width:
      min(calc(100% - 40px), 1200px) !important;
  }


  .elementor-1122 .elementor-element.elementor-element-72a63d7
    .hein-clients-title
    .elementor-heading-title {
    font-size:
      clamp(26px, 2.5vw, 32px);
  }


  .elementor-1122 .elementor-element.elementor-element-72a63d7
    .hein-clients-carousel
    .swiper-slide {
    min-height: 94px;

    padding:
      7px
      12px !important;
  }


  .elementor-1122 .elementor-element.elementor-element-72a63d7
    .hein-clients-carousel
    .swiper-slide
    img,
  .elementor-1122 .elementor-element.elementor-element-72a63d7
    .hein-clients-carousel
    .swiper-slide-image {
    max-width:
      195px !important;

    max-height:
      64px !important;
  }

}


/* =========================================================
   17. TABLET
   ---------------------------------------------------------
   Copy stacks above the moving logo carousel.
   ========================================================= */

@media (max-width: 900px) {

  .elementor-1122 .elementor-element.elementor-element-72a63d7 {
    padding:
      38px
      0;
  }


  .elementor-1122 .elementor-element.elementor-element-72a63d7 .hein-clients-shell,
  .elementor-1122 .elementor-element.elementor-element-72a63d7
    .hein-clients-shell
    > .e-con-inner {
    grid-template-columns:
      1fr;

    row-gap: 26px;
  }


  .elementor-1122 .elementor-element.elementor-element-72a63d7 .hein-clients-copy {
    max-width:
      520px !important;
  }


  .elementor-1122 .elementor-element.elementor-element-72a63d7
    .hein-clients-title
    .elementor-heading-title {
    max-width: 520px;
  }


  .elementor-1122 .elementor-element.elementor-element-72a63d7 .hein-clients-carousel {
    padding-top: 0;
  }

}


/* =========================================================
   18. NARROW TABLET
   ========================================================= */

@media (max-width: 820px) {

  .elementor-1122 .elementor-element.elementor-element-72a63d7 .hein-clients-shell {
    width:
      min(calc(100% - 36px), 1200px) !important;
  }

}


/* =========================================================
   19. MOBILE
   ========================================================= */

@media (max-width: 767px) {

  .elementor-1122 .elementor-element.elementor-element-72a63d7 {
    padding:
      34px
      0
      38px;
  }


  /* Tighter drafting grid */
  .elementor-1122 .elementor-element.elementor-element-72a63d7::before {
    background-size:
      24px 24px;
  }


  .elementor-1122 .elementor-element.elementor-element-72a63d7 .hein-clients-shell {
    width:
      min(calc(100% - 28px), 1200px) !important;
  }


  .elementor-1122 .elementor-element.elementor-element-72a63d7 .hein-clients-label {
    margin-bottom:
      10px;
  }


  .elementor-1122 .elementor-element.elementor-element-72a63d7
    .hein-clients-label
    .elementor-heading-title {
    font-size: 12px;
  }


  .elementor-1122 .elementor-element.elementor-element-72a63d7
    .hein-clients-title
    .elementor-heading-title {
    font-size:
      clamp(25px, 7vw, 30px);

    line-height:
      1.07;

    letter-spacing:
      -0.024em;

    text-transform:
      uppercase !important;

    text-wrap:
      pretty;
  }


  /*
   * Reduce edge fade because the available carousel width
   * is considerably smaller.
   */
  .elementor-1122 .elementor-element.elementor-element-72a63d7
    .hein-clients-carousel
    .elementor-image-carousel-wrapper,
  .elementor-1122 .elementor-element.elementor-element-72a63d7
    .hein-clients-carousel
    .swiper,
  .elementor-1122 .elementor-element.elementor-element-72a63d7
    .hein-clients-carousel
    .swiper-container {
    -webkit-mask-image:
      linear-gradient(
        90deg,
        transparent 0%,
        #000000 3%,
        #000000 97%,
        transparent 100%
      );

    mask-image:
      linear-gradient(
        90deg,
        transparent 0%,
        #000000 3%,
        #000000 97%,
        transparent 100%
      );
  }


  .elementor-1122 .elementor-element.elementor-element-72a63d7
    .hein-clients-carousel
    .swiper-slide {
    min-height: 84px;

    padding:
      6px
      10px !important;
  }


  .elementor-1122 .elementor-element.elementor-element-72a63d7
    .hein-clients-carousel
    .swiper-slide
    img,
  .elementor-1122 .elementor-element.elementor-element-72a63d7
    .hein-clients-carousel
    .swiper-slide-image {
    max-width:
      165px !important;

    max-height:
      56px !important;
  }

}


/* =========================================================
   20. SMALL MOBILE
   ========================================================= */

@media (max-width: 420px) {

  .elementor-1122 .elementor-element.elementor-element-72a63d7
    .hein-clients-title
    .elementor-heading-title {
    font-size:
      clamp(24px, 7vw, 29px);
  }


  .elementor-1122 .elementor-element.elementor-element-72a63d7
    .hein-clients-carousel
    .swiper-slide {
    min-height: 78px;

    padding:
      5px
      8px !important;
  }


  .elementor-1122 .elementor-element.elementor-element-72a63d7
    .hein-clients-carousel
    .swiper-slide
    img,
  .elementor-1122 .elementor-element.elementor-element-72a63d7
    .hein-clients-carousel
    .swiper-slide-image {
    max-width:
      145px !important;

    max-height:
      48px !important;
  }

}


/* =========================================================
   21. REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

  .elementor-1122 .elementor-element.elementor-element-72a63d7
    .hein-clients-carousel
    .swiper-wrapper {
    transition:
      none !important;

    transform:
      translate3d(0, 0, 0) !important;
  }


  .elementor-1122 .elementor-element.elementor-element-72a63d7
    .hein-clients-carousel
    .swiper-slide
    img,
  .elementor-1122 .elementor-element.elementor-element-72a63d7
    .hein-clients-carousel
    .swiper-slide-image {
    transition:
      none !important;

    transform:
      none !important;
  }

}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-ac765c6 *//* =========================================================
   HEIN HOMEPAGE HOW WE WORK
   UNIFIED ARCHITECTURAL PROCESS BOARD
   ---------------------------------------------------------
   Apply this CSS to:
   How We Work Section

   Required classes:
   hein-home-process
   hein-process-shell
   hein-process-header
   hein-process-header-copy
   hein-process-label
   hein-process-title
   hein-process-intro
   hein-process-steps
   hein-process-step
   hein-process-marker
   hein-process-step-copy
   hein-process-step-title
   hein-process-step-text

   DESIGN DIRECTION:

   ONE UNIFIED CARD

   LEFT:
   Moving architectural photograph
   HEIN blue wash
   Drafting grid
   Orange construction details

   RIGHT:
   Clean architectural presentation sheet
   Soft blue and orange ambient washes
   Drawing-index number gutter
   Four integrated process rows
   Controlled orange accents
   No background grid
   No diagonal decoration
   No horizontal row dividers

   BACKGROUND:
   HEIN architectural watermark pushed farther right
   so the outer overhang sits largely beyond the viewport.
   Extended bottom fade maintained.
   ========================================================= */


/* =========================================================
   1. DESIGN TOKENS + SECTION ROOT
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-ac765c6 {
  --hein-blue: #003057;
  --hein-blue-dark: #001f38;
  --hein-blue-deep: #00172a;

  --hein-orange: #f58220;
  --hein-orange-dark: #d86a08;

  --hein-white: #ffffff;

  --hein-body: #41596a;
  --hein-muted: #667b89;

  --hein-soft-background: #f4f7f9;

  --hein-border:
    rgba(0, 48, 87, 0.11);

  --hein-process-photo:
    url("/wp-content/uploads/2026/06/Louise-Arbour-CEPEO-01-scaled.jpeg");

  position: relative;
  z-index: 2;
  isolation: isolate;

  display: block;

  width: 100%;

  margin: 0;

  padding:
    clamp(88px, 7vw, 116px)
    0;

  overflow: hidden;

  color:
    var(--hein-body);

  background-color:
    var(--hein-soft-background);

  background-image:

    radial-gradient(
      circle at 75% 36%,
      rgba(255, 255, 255, 0.96) 0%,
      rgba(255, 255, 255, 0.64) 34%,
      transparent 68%
    ),

    linear-gradient(
      180deg,
      #f7f9fa 0%,
      #f2f6f8 100%
    );
}


/* Predictable sizing */

.elementor-1122 .elementor-element.elementor-element-ac765c6,
.elementor-1122 .elementor-element.elementor-element-ac765c6 *,
.elementor-1122 .elementor-element.elementor-element-ac765c6 *::before,
.elementor-1122 .elementor-element.elementor-element-ac765c6 *::after {
  box-sizing: border-box;
}


/* Remove Elementor widget spacing */

.elementor-1122 .elementor-element.elementor-element-ac765c6 .elementor-widget {
  margin-block-end: 0;
}


/* Keep content above decorative section layers */

.elementor-1122 .elementor-element.elementor-element-ac765c6 > * {
  position: relative;
  z-index: 2;
}


/* =========================================================
   2. SECTION DRAFTING GRID
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-ac765c6::before {
  content: "";

  position: absolute;
  inset: 0;
  z-index: 0;

  pointer-events: none;

  background-image:

    linear-gradient(
      rgba(245, 130, 32, 0.034) 1px,
      transparent 1px
    ),

    linear-gradient(
      90deg,
      rgba(245, 130, 32, 0.034) 1px,
      transparent 1px
    );

  background-size:
    42px 42px;

  background-position:
    center top;

  opacity:
    0.72;
}


/* =========================================================
   3. HEIN BUILDINGS WATERMARK
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-ac765c6::after {
  content: "";

  position: absolute;

  right:
    clamp(-440px, -22vw, -285px);

  bottom:
    clamp(-125px, -5vw, -72px);

  z-index: 1;

  width:
    clamp(650px, 54vw, 940px);

  height:
    clamp(540px, 45vw, 780px);

  pointer-events: none;

  background-image:
    url("/wp-content/uploads/2026/07/HeinConstruction_BuildingsOnly_Colour_TransparentBkg.png");

  background-repeat:
    no-repeat;

  background-position:
    center;

  background-size:
    contain;

  opacity:
    0.072;

  filter:
    saturate(0.72)
    contrast(0.94);

  -webkit-mask-image:

    linear-gradient(
      90deg,
      rgba(0, 0, 0, 0.38) 0%,
      rgba(0, 0, 0, 0.68) 17%,
      rgba(0, 0, 0, 0.92) 37%,
      #000000 57%,
      #000000 100%
    ),

    linear-gradient(
      180deg,
      #000000 0%,
      #000000 38%,
      rgba(0, 0, 0, 0.97) 46%,
      rgba(0, 0, 0, 0.90) 55%,
      rgba(0, 0, 0, 0.76) 64%,
      rgba(0, 0, 0, 0.57) 73%,
      rgba(0, 0, 0, 0.37) 82%,
      rgba(0, 0, 0, 0.17) 91%,
      transparent 100%
    );

  mask-image:

    linear-gradient(
      90deg,
      rgba(0, 0, 0, 0.38) 0%,
      rgba(0, 0, 0, 0.68) 17%,
      rgba(0, 0, 0, 0.92) 37%,
      #000000 57%,
      #000000 100%
    ),

    linear-gradient(
      180deg,
      #000000 0%,
      #000000 38%,
      rgba(0, 0, 0, 0.97) 46%,
      rgba(0, 0, 0, 0.90) 55%,
      rgba(0, 0, 0, 0.76) 64%,
      rgba(0, 0, 0, 0.57) 73%,
      rgba(0, 0, 0, 0.37) 82%,
      rgba(0, 0, 0, 0.17) 91%,
      transparent 100%
    );

  -webkit-mask-composite:
    source-in;

  mask-composite:
    intersect;

  transform:
    translate3d(0, 0, 0);

  transform-origin:
    center center;
}


/* =========================================================
   4. UNIFIED MASTER CARD
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-shell {
  position: relative;
  z-index: 2;

  display:
    grid !important;

  width:
    min(calc(100% - 48px), 1200px) !important;

  max-width:
    1200px !important;

  min-width: 0;

  grid-template-columns:
    minmax(360px, 0.82fr)
    minmax(0, 1.18fr);

  column-gap:
    0;

  row-gap:
    0;

  align-items:
    stretch;

  margin-inline:
    auto !important;

  padding:
    0 !important;

  overflow:
    hidden;

  background:
    #ffffff;

  border:
    1px solid
    rgba(0, 48, 87, 0.11);

  border-radius:
    30px;

  box-shadow:

    0
    32px
    68px
    rgba(0, 31, 56, 0.14),

    0
    10px
    24px
    rgba(0, 31, 56, 0.065),

    inset
    0
    1px
    0
    rgba(255, 255, 255, 0.78);
}


/* Elementor inner-wrapper compatibility */

.elementor-1122 .elementor-element.elementor-element-ac765c6
  .hein-process-shell
  > .e-con-inner {
  position: relative;
  z-index: 2;

  display:
    grid !important;

  width:
    100% !important;

  max-width:
    none !important;

  min-width: 0;

  grid-template-columns:
    minmax(360px, 0.82fr)
    minmax(0, 1.18fr);

  column-gap:
    0;

  row-gap:
    0;

  align-items:
    stretch;

  margin:
    0 !important;

  padding:
    0 !important;

  overflow:
    hidden;

  border-radius:
    inherit;
}


/* =========================================================
   5. LEFT FEATURE HALF
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-header {
  position: relative;
  z-index: 3;

  display:
    flex !important;

  width:
    100% !important;

  min-width: 0;

  min-height:
    100%;

  flex-direction:
    column;

  justify-content:
    center;

  align-items:
    flex-start;

  gap:
    0;

  margin:
    0 !important;

  padding:
    clamp(54px, 5vw, 72px)
    clamp(40px, 4vw, 54px) !important;

  overflow:
    hidden;

  color:
    var(--hein-white);

  background-color:
    var(--hein-blue);

  background-image:
    var(--hein-process-photo) !important;

  background-repeat:
    no-repeat !important;

  background-size:
    cover !important;

  background-position:
    50% 50%;

  border:
    0;

  border-radius:
    0;

  box-shadow:
    none;

  animation:
    heinProcessPhotoDrift
    36s
    ease-in-out
    infinite
    alternate;
}


/* =========================================================
   6. LEFT PHOTOGRAPH MOVEMENT
   ========================================================= */

@keyframes heinProcessPhotoDrift {

  0% {
    background-position:
      50% 50%;
  }

  30% {
    background-position:
      46% 53%;
  }

  65% {
    background-position:
      53% 47%;
  }

  100% {
    background-position:
      48% 50%;
  }

}


/* =========================================================
   7. LEFT BLUE OVERLAY + GRID
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-header::before {
  content: "";

  position: absolute;
  inset: 0;
  z-index: 0;

  pointer-events: none;

  background-image:

    linear-gradient(
      rgba(255, 255, 255, 0.030) 1px,
      transparent 1px
    ),

    linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.030) 1px,
      transparent 1px
    ),

    radial-gradient(
      circle at 85% 12%,
      rgba(255, 255, 255, 0.08) 0%,
      rgba(255, 255, 255, 0.025) 23%,
      transparent 48%
    ),

    linear-gradient(
      145deg,
      rgba(0, 23, 42, 0.95) 0%,
      rgba(0, 48, 87, 0.88) 58%,
      rgba(0, 71, 120, 0.81) 100%
    );

  background-size:
    48px 48px,
    48px 48px,
    100% 100%,
    100% 100%;

  background-position:
    center center;

  background-repeat:
    repeat,
    repeat,
    no-repeat,
    no-repeat;
}


/* =========================================================
   8. LEFT ARCHITECTURAL DETAILS
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-header::after {
  content: "";

  position: absolute;
  inset: 0;
  z-index: 1;

  pointer-events: none;

  border:
    0;

  border-radius:
    0;

  background-image:

    linear-gradient(
      90deg,
      var(--hein-orange),
      var(--hein-orange)
    ),

    linear-gradient(
      var(--hein-orange),
      var(--hein-orange)
    ),

    radial-gradient(
      circle at 15% 12%,
      rgba(245, 130, 32, 0.13) 0%,
      rgba(245, 130, 32, 0.045) 18%,
      transparent 38%
    );

  background-repeat:
    no-repeat,
    no-repeat,
    no-repeat;

  background-position:
    left 40px bottom 40px,
    left 40px bottom 40px,
    center;

  background-size:
    68px 2px,
    2px 34px,
    100% 100%;

  box-shadow:
    inset
    0
    -120px
    145px
    rgba(0, 31, 56, 0.09);
}


/* =========================================================
   9. KEEP LEFT CONTENT ABOVE BACKGROUND
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-ac765c6
  .hein-process-header
  > * {
  position: relative;

  z-index: 2;
}


.elementor-1122 .elementor-element.elementor-element-ac765c6
  .hein-process-header
  > .e-con-inner {
  position: relative;
  z-index: 2;

  display:
    flex !important;

  width:
    100% !important;

  max-width:
    none !important;

  flex-direction:
    column;

  justify-content:
    center;

  align-items:
    flex-start;

  gap:
    0;

  margin:
    0 !important;

  padding:
    0 !important;
}


.elementor-1122 .elementor-element.elementor-element-ac765c6
  .hein-process-header
  > .elementor-background-overlay {
  display:
    none !important;
}


/* =========================================================
   10. HEADER COPY
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-header-copy {
  display:
    flex !important;

  width:
    100% !important;

  max-width:
    none !important;

  min-width: 0;

  flex-direction:
    column;

  align-items:
    flex-start !important;

  justify-content:
    flex-start;

  gap:
    0;

  margin:
    0 !important;

  padding:
    0 !important;
}


.elementor-1122 .elementor-element.elementor-element-ac765c6
  .hein-process-header-copy
  > .e-con-inner {
  display:
    flex !important;

  width:
    100% !important;

  max-width:
    none !important;

  flex-direction:
    column;

  align-items:
    flex-start !important;

  gap:
    0;

  margin:
    0 !important;

  padding:
    0 !important;
}


/* =========================================================
   11. EYEBROW
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-label {
  display:
    block;

  width:
    auto;

  margin:
    0
    0
    15px;
}


.elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-label::before,
.elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-label::after,
.elementor-1122 .elementor-element.elementor-element-ac765c6
  .hein-process-label
  > .elementor-widget-container::before,
.elementor-1122 .elementor-element.elementor-element-ac765c6
  .hein-process-label
  > .elementor-widget-container::after {
  content:
    none !important;

  display:
    none !important;
}


.elementor-1122 .elementor-element.elementor-element-ac765c6
  .hein-process-label
  .elementor-heading-title {
  display:
    flex;

  align-items:
    center;

  gap:
    10px;

  margin:
    0;

  color:
    var(--hein-orange);

  font-family:
    "Open Sans",
    Arial,
    sans-serif;

  font-size:
    12px;

  font-weight:
    700;

  line-height:
    1.35;

  letter-spacing:
    0.13em;

  text-transform:
    uppercase;

  overflow-wrap:
    normal;

  word-break:
    normal;

  hyphens:
    none;
}


.elementor-1122 .elementor-element.elementor-element-ac765c6
  .hein-process-label
  .elementor-heading-title::before {
  content: "";

  display: block;

  width: 27px;

  height: 2px;

  flex:
    0
    0
    27px;

  background:
    var(--hein-orange);
}


.elementor-1122 .elementor-element.elementor-element-ac765c6
  .hein-process-label
  .elementor-heading-title::after {
  content:
    none !important;

  display:
    none !important;
}


/* =========================================================
   12. MAIN HEADING
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-title {
  width:
    100%;

  margin:
    0;
}


.elementor-1122 .elementor-element.elementor-element-ac765c6
  .hein-process-title
  .elementor-heading-title {
  width:
    100%;

  max-width:
    470px;

  margin:
    0;

  color:
    var(--hein-white);

  font-family:
    "Aller",
    "Open Sans",
    Arial,
    sans-serif;

  font-size:
    clamp(35px, 3.5vw, 50px);

  font-weight:
    700;

  line-height:
    1.08;

  letter-spacing:
    -0.032em;

  text-transform:
    uppercase !important;

  overflow-wrap:
    normal;

  word-break:
    normal;

  hyphens:
    none;

  text-wrap:
    balance;

  text-shadow:
    0
    3px
    18px
    rgba(0, 23, 42, 0.24);
}


/* =========================================================
   13. INTRODUCTION
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-intro {
  width:
    100%;

  max-width:
    470px;

  margin:
    28px
    0
    0;

  padding:
    22px
    0
    0;

  border-top:
    1px solid
    rgba(255, 255, 255, 0.18);
}


.elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-intro,
.elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-intro p {
  color:
    rgba(255, 255, 255, 0.84);

  font-family:
    "Open Sans",
    Arial,
    sans-serif;

  font-size:
    clamp(16px, 1.15vw, 17.5px);

  font-weight:
    400;

  line-height:
    1.68;

  overflow-wrap:
    normal;

  word-break:
    normal;

  hyphens:
    none;
}


.elementor-1122 .elementor-element.elementor-element-ac765c6
  .hein-process-intro p {
  margin:
    0;
}


/* =========================================================
   14. RIGHT PROCESS HALF
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-steps {
  position: relative;
  z-index: 3;

  display:
    grid !important;

  width:
    100% !important;

  min-width:
    0;

  height:
    100%;

  min-height:
    100%;

  grid-template-rows:
    repeat(4, minmax(0, 1fr));

  gap:
    0;

  margin:
    0 !important;

  padding:
    20px
    0 !important;

  overflow:
    hidden;

  border:
    0;

  border-left:
    1px solid
    rgba(0, 48, 87, 0.10);

  border-radius:
    0;

  box-shadow:
    none;

  background-color:
    #fbfcfd;

  background-image:

    radial-gradient(
      circle at 94% 10%,
      rgba(0, 48, 87, 0.055) 0%,
      rgba(0, 48, 87, 0.024) 28%,
      transparent 58%
    ),

    radial-gradient(
      circle at 5% 95%,
      rgba(245, 130, 32, 0.034) 0%,
      rgba(245, 130, 32, 0.012) 26%,
      transparent 54%
    ),

    linear-gradient(
      145deg,
      rgba(255, 255, 255, 1) 0%,
      rgba(251, 253, 254, 0.995) 52%,
      rgba(246, 249, 251, 0.99) 100%
    );

  background-repeat:
    no-repeat,
    no-repeat,
    no-repeat;

  background-size:
    100% 100%,
    100% 100%,
    100% 100%;

  background-position:
    center,
    center,
    center;
}


.elementor-1122 .elementor-element.elementor-element-ac765c6
  .hein-process-steps
  > .e-con-inner {
  position:
    static;

  display:
    grid !important;

  width:
    100% !important;

  max-width:
    none !important;

  min-height:
    100%;

  grid-template-rows:
    repeat(4, minmax(0, 1fr));

  gap:
    0;

  margin:
    0 !important;

  padding:
    0 !important;
}


/* =========================================================
   15. VERTICAL PROCESS DATUM
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-steps::before {
  content: "";

  position:
    absolute;

  left:
    95px;

  top:
    42px;

  bottom:
    42px;

  z-index:
    1;

  width:
    1px;

  pointer-events:
    none;

  background:
    linear-gradient(
      180deg,
      rgba(245, 130, 32, 0.88) 0%,
      rgba(245, 130, 32, 0.38) 16%,
      rgba(0, 48, 87, 0.19) 43%,
      rgba(0, 48, 87, 0.13) 100%
    );
}


/* =========================================================
   16. PROCESS BOARD TOP DATUM
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-steps::after {
  content: "";

  position:
    absolute;

  top:
    0;

  left:
    95px;

  z-index:
    3;

  width:
    82px;

  height:
    3px;

  pointer-events:
    none;

  background:
    linear-gradient(
      90deg,
      var(--hein-orange) 0%,
      rgba(245, 130, 32, 0.42) 74%,
      transparent 100%
    );
}


/* =========================================================
   17. PROCESS ROW
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-step {
  position:
    relative;

  z-index:
    2;

  display:
    grid !important;

  width:
    100% !important;

  min-width:
    0;

  min-height:
    124px;

  grid-template-columns:
    96px
    minmax(0, 1fr);

  align-items:
    center;

  margin:
    0 !important;

  padding:
    26px
    38px
    26px
    0 !important;

  overflow:
    visible;

  background:
    transparent;

  border:
    0;

  border-radius:
    0;

  box-shadow:
    none;

  cursor:
    default;
}


/* =========================================================
   18. REMOVE ROW DIVIDERS
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-step::after {
  content:
    none !important;

  display:
    none !important;

  background:
    none !important;

  border:
    0 !important;
}


/* =========================================================
   19. DATUM CONNECTOR
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-step::before {
  content: "";

  position:
    absolute;

  left:
    86px;

  top:
    50%;

  z-index:
    3;

  width:
    19px;

  height:
    2px;

  pointer-events:
    none;

  background:
    var(--hein-orange);

  transform:
    translateY(-50%);
}


/* =========================================================
   20. NUMBER GUTTER
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-marker {
  position:
    relative;

  left:
    auto;

  top:
    auto;

  z-index:
    4;

  display:
    flex;

  width:
    96px;

  height:
    auto;

  align-items:
    center;

  justify-content:
    center;

  grid-column:
    1;

  grid-row:
    1;

  margin:
    0;

  transform:
    none;
}


.elementor-1122 .elementor-element.elementor-element-ac765c6
  .hein-process-marker
  .elementor-heading-title {
  display:
    block;

  width:
    auto;

  height:
    auto;

  margin:
    0;

  padding:
    0;

  color:
    var(--hein-orange);

  background:
    transparent;

  border:
    0;

  border-radius:
    0;

  font-family:
    "Aller",
    "Open Sans",
    Arial,
    sans-serif;

  font-size:
    19px;

  font-weight:
    700;

  line-height:
    1;

  letter-spacing:
    0.035em;

  box-shadow:
    none;

  text-align:
    center;
}


/* =========================================================
   21. STEP COPY
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-step-copy {
  position:
    relative;

  z-index:
    2;

  display:
    flex !important;

  width:
    100% !important;

  min-width:
    0;

  grid-column:
    2;

  grid-row:
    1;

  flex-direction:
    column;

  align-items:
    flex-start;

  justify-content:
    center;

  gap:
    0;

  margin:
    0 !important;

  padding:
    0
    0
    0
    30px !important;
}


.elementor-1122 .elementor-element.elementor-element-ac765c6
  .hein-process-step-copy
  > .e-con-inner {
  display:
    flex !important;

  width:
    100% !important;

  max-width:
    none !important;

  flex-direction:
    column;

  align-items:
    flex-start;

  justify-content:
    center;

  gap:
    0;

  margin:
    0 !important;

  padding:
    0 !important;
}


/* =========================================================
   22. STEP TITLE
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-step-title {
  width:
    100%;

  margin:
    0
    0
    7px;
}


.elementor-1122 .elementor-element.elementor-element-ac765c6
  .hein-process-step-title
  .elementor-heading-title {
  margin:
    0;

  color:
    var(--hein-blue);

  font-family:
    "Aller",
    "Open Sans",
    Arial,
    sans-serif;

  font-size:
    clamp(22px, 1.7vw, 27px);

  font-weight:
    700;

  line-height:
    1.15;

  letter-spacing:
    -0.022em;

  text-transform:
    none;

  overflow-wrap:
    normal;

  word-break:
    normal;

  hyphens:
    none;

  text-wrap:
    pretty;
}


/* =========================================================
   23. STEP DESCRIPTION
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-step-text {
  position:
    relative;

  z-index:
    2;

  width:
    100%;

  max-width:
    570px;

  margin:
    0;
}


.elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-step-text,
.elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-step-text p {
  margin:
    0;

  color:
    var(--hein-muted);

  font-family:
    "Open Sans",
    Arial,
    sans-serif;

  font-size:
    14.5px;

  font-weight:
    400;

  line-height:
    1.58;

  overflow-wrap:
    normal;

  word-break:
    normal;

  hyphens:
    none;
}


/* =========================================================
   24. LAPTOP
   ========================================================= */

@media (max-width: 1100px) {

  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-shell,
  .elementor-1122 .elementor-element.elementor-element-ac765c6
    .hein-process-shell
    > .e-con-inner {
    grid-template-columns:
      minmax(330px, 0.80fr)
      minmax(0, 1.20fr);
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-header {
    padding:
      48px
      40px !important;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-step {
    grid-template-columns:
      84px
      minmax(0, 1fr);

    padding-right:
      28px !important;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-steps::before {
    left:
      83px;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-steps::after {
    left:
      83px;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-step::before {
    left:
      74px;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-marker {
    width:
      84px;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-step-copy {
    padding-left:
      25px !important;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6::after {
    right:
      -310px;

    bottom:
      -82px;

    width:
      720px;

    height:
      600px;

    opacity:
      0.066;
  }

}


/* =========================================================
   25. TABLET
   ========================================================= */

@media (max-width: 1024px) {

  .elementor-1122 .elementor-element.elementor-element-ac765c6 {
    padding:
      84px
      0;
  }


  /* Hide the orange corner divider on tablet and mobile.
     Keep the subtle orange ambient glow only. */

  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-header::after {
    background-image:
      radial-gradient(
        circle at 15% 12%,
        rgba(245, 130, 32, 0.13) 0%,
        rgba(245, 130, 32, 0.045) 18%,
        transparent 38%
      ) !important;

    background-repeat:
      no-repeat !important;

    background-position:
      center !important;

    background-size:
      100% 100% !important;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-shell {
    width:
      min(calc(100% - 40px), 1200px) !important;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6
    .hein-process-title
    .elementor-heading-title {
    font-size:
      clamp(34px, 4vw, 45px);
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6
    .hein-process-step-title
    .elementor-heading-title {
    font-size:
      clamp(21px, 2.1vw, 25px);
  }

}


/* =========================================================
   26. STACKED TABLET
   ========================================================= */

@media (max-width: 900px) {

  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-shell,
  .elementor-1122 .elementor-element.elementor-element-ac765c6
    .hein-process-shell
    > .e-con-inner {
    grid-template-columns:
      1fr;

    row-gap:
      0;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-header {
    min-height:
      0;

    padding:
      50px
      44px !important;

    background-position:
      50% 46%;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6
    .hein-process-title
    .elementor-heading-title {
    max-width:
      650px;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-intro {
    max-width:
      680px;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-steps {
    min-height:
      520px;

    border-left:
      0;

    border-top:
      1px solid
      rgba(0, 48, 87, 0.10);
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6::after {
    right:
      -250px;

    bottom:
      -56px;

    width:
      590px;

    height:
      490px;

    opacity:
      0.056;
  }

}


/* =========================================================
   27. NARROW TABLET
   ========================================================= */

@media (max-width: 820px) {

  .elementor-1122 .elementor-element.elementor-element-ac765c6 {
    padding:
      76px
      0;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-shell {
    width:
      min(calc(100% - 36px), 1200px) !important;
  }

}


/* =========================================================
   28. MOBILE
   ========================================================= */

@media (max-width: 767px) {

  .elementor-1122 .elementor-element.elementor-element-ac765c6 {
    padding:
      68px
      0;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6::before {
    background-size:
      32px 32px;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6::after {
    right:
      -190px;

    bottom:
      -34px;

    width:
      430px;

    height:
      360px;

    opacity:
      0.046;

    -webkit-mask-image:

      linear-gradient(
        90deg,
        rgba(0, 0, 0, 0.34) 0%,
        rgba(0, 0, 0, 0.66) 22%,
        rgba(0, 0, 0, 0.92) 44%,
        #000000 64%,
        #000000 100%
      ),

      linear-gradient(
        180deg,
        #000000 0%,
        #000000 34%,
        rgba(0, 0, 0, 0.97) 43%,
        rgba(0, 0, 0, 0.89) 53%,
        rgba(0, 0, 0, 0.74) 64%,
        rgba(0, 0, 0, 0.55) 74%,
        rgba(0, 0, 0, 0.35) 83%,
        rgba(0, 0, 0, 0.15) 92%,
        transparent 100%
      );

    mask-image:

      linear-gradient(
        90deg,
        rgba(0, 0, 0, 0.34) 0%,
        rgba(0, 0, 0, 0.66) 22%,
        rgba(0, 0, 0, 0.92) 44%,
        #000000 64%,
        #000000 100%
      ),

      linear-gradient(
        180deg,
        #000000 0%,
        #000000 34%,
        rgba(0, 0, 0, 0.97) 43%,
        rgba(0, 0, 0, 0.89) 53%,
        rgba(0, 0, 0, 0.74) 64%,
        rgba(0, 0, 0, 0.55) 74%,
        rgba(0, 0, 0, 0.35) 83%,
        rgba(0, 0, 0, 0.15) 92%,
        transparent 100%
      );

    -webkit-mask-composite:
      source-in;

    mask-composite:
      intersect;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-shell {
    width:
      min(calc(100% - 28px), 1200px) !important;

    border-radius:
      23px;

    box-shadow:

      0
      22px
      48px
      rgba(0, 31, 56, 0.12),

      0
      7px
      18px
      rgba(0, 31, 56, 0.06);
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-header {
    padding:
      42px
      29px !important;

    border-radius:
      0;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-header::before {
    background-image:

      linear-gradient(
        rgba(255, 255, 255, 0.028) 1px,
        transparent 1px
      ),

      linear-gradient(
        90deg,
        rgba(255, 255, 255, 0.028) 1px,
        transparent 1px
      ),

      radial-gradient(
        circle at 85% 12%,
        rgba(255, 255, 255, 0.06) 0%,
        transparent 45%
      ),

      linear-gradient(
        145deg,
        rgba(0, 23, 42, 0.95) 0%,
        rgba(0, 48, 87, 0.90) 60%,
        rgba(0, 71, 120, 0.84) 100%
      );

    background-size:
      42px 42px,
      42px 42px,
      100% 100%,
      100% 100%;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-label {
    margin-bottom:
      14px;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6
    .hein-process-title
    .elementor-heading-title {
    font-size:
      clamp(33px, 8.8vw, 42px);

    line-height:
      1.08;

    text-transform:
      uppercase !important;

    text-wrap:
      pretty;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-intro {
    margin-top:
      23px;

    padding-top:
      21px;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-intro,
  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-intro p {
    font-size:
      16px;

    line-height:
      1.68;
  }


  /* =======================================================
     MOBILE PROCESS HALF
     ======================================================= */

  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-steps {
    min-height:
      0;

    padding:
      12px
      0 !important;

    border-radius:
      0;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6
    .hein-process-steps
    > .e-con-inner {
    min-height:
      0;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-steps::before {
    left:
      68px;

    top:
      30px;

    bottom:
      30px;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-steps::after {
    left:
      68px;

    width:
      60px;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-step {
    min-height:
      114px;

    grid-template-columns:
      69px
      minmax(0, 1fr);

    padding:
      23px
      21px
      23px
      0 !important;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-step::before {
    left:
      60px;

    width:
      16px;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-marker {
    width:
      69px;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6
    .hein-process-marker
    .elementor-heading-title {
    font-size:
      16px;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-step-copy {
    padding-left:
      20px !important;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-step-title {
    margin-bottom:
      6px;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6
    .hein-process-step-title
    .elementor-heading-title {
    font-size:
      clamp(20px, 5.8vw, 24px);
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-step-text,
  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-step-text p {
    font-size:
      14px;

    line-height:
      1.56;
  }

}


/* =========================================================
   29. SMALL MOBILE
   ========================================================= */

@media (max-width: 420px) {

  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-header {
    padding:
      37px
      24px !important;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6
    .hein-process-title
    .elementor-heading-title {
    font-size:
      clamp(31px, 9vw, 39px);
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-steps::before {
    left:
      61px;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-steps::after {
    left:
      61px;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-step {
    grid-template-columns:
      62px
      minmax(0, 1fr);

    padding-right:
      17px !important;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-step::before {
    left:
      54px;

    width:
      14px;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-marker {
    width:
      62px;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-step-copy {
    padding-left:
      17px !important;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6::after {
    right:
      -155px;

    bottom:
      -24px;

    width:
      350px;

    height:
      295px;

    opacity:
      0.041;
  }

}


/* =========================================================
   30. REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

  .elementor-1122 .elementor-element.elementor-element-ac765c6 .hein-process-header {
    animation:
      none !important;

    background-position:
      50% 50% !important;
  }


  .elementor-1122 .elementor-element.elementor-element-ac765c6::after {
    transform:
      none !important;
  }

}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-cc5d2f8 *//* =========================================================
   HEIN HOMEPAGE CTA
   COMPACT CLOSING SECTION
   ---------------------------------------------------------
   Apply this CSS to:
   CTA Section

   Required classes:
   hein-home-cta
   hein-cta-shell
   hein-cta-content

   DESIGN INTENT:

   - Compact closing statement
   - Moving architectural/project photograph
   - Strong HEIN blue photographic wash
   - Restrained drafting grid
   - Curved transition from How We Work
   - Clear single CTA
   ========================================================= */


/* =========================================================
   1. DESIGN TOKENS + SECTION ROOT
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-cc5d2f8 {
  --hein-blue: #003057;
  --hein-blue-dark: #001f38;
  --hein-blue-deep: #00172a;

  --hein-orange: #f58220;
  --hein-orange-dark: #d86a08;

  --hein-white: #ffffff;

  --hein-divider-fill: #f4f7f9;


  /* =======================================================
     CTA BACKGROUND PHOTOGRAPH

     Replace this URL with your chosen WordPress image.

     Example:
     /wp-content/uploads/2026/08/project-image.jpg

     A full https:// URL also works.
     ======================================================= */

  --hein-cta-photo:
    url("/wp-content/uploads/2026/09/Nicol_Building_HEIN_02.jpg");


  position: relative;
  z-index: 2;
  isolation: isolate;

  display: block;

  width: 100%;

  margin: 0;

  /*
   * Significantly tighter than the previous CTA.
   *
   * Previous:
   * roughly 96–122px top
   * roughly 72–92px bottom
   *
   * Revised:
   * roughly 72–88px top
   * roughly 54–68px bottom
   */
  padding:
    clamp(72px, 5.5vw, 88px)
    0
    clamp(54px, 4.5vw, 68px);

  overflow: hidden;

  color:
    var(--hein-white);

  background-color:
    var(--hein-blue-dark);
}


/* Predictable sizing */
.elementor-1122 .elementor-element.elementor-element-cc5d2f8,
.elementor-1122 .elementor-element.elementor-element-cc5d2f8 *,
.elementor-1122 .elementor-element.elementor-element-cc5d2f8 *::before,
.elementor-1122 .elementor-element.elementor-element-cc5d2f8 *::after {
  box-sizing: border-box;
}


/* Remove Elementor default widget spacing */
.elementor-1122 .elementor-element.elementor-element-cc5d2f8 .elementor-widget {
  margin-block-end: 0;
}


/* Hide Elementor's built-in overlay */
.elementor-1122 .elementor-element.elementor-element-cc5d2f8 .elementor-background-overlay {
  display: none !important;
}


/* Keep actual content above background layers */
.elementor-1122 .elementor-element.elementor-element-cc5d2f8 > * {
  position: relative;
  z-index: 3;
}


/* =========================================================
   2. MOVING PROJECT PHOTOGRAPH
   ---------------------------------------------------------
   Dedicated photo layer underneath the blue treatment.

   Transform animation performs more smoothly than moving
   the entire section background.
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-cc5d2f8::before {
  content: "";

  position: absolute;

  inset: -4%;

  z-index: 0;

  pointer-events: none;

  background-image:
    var(--hein-cta-photo);

  background-repeat:
    no-repeat;

  background-position:
    center 29%;

  background-size:
    cover;

  transform:
    scale(1.08)
    translate3d(0, 0, 0);

  transform-origin:
    center center;

  animation:
    heinCtaPhotoDrift
    38s
    ease-in-out
    infinite
    alternate;

  will-change:
    transform;
}


/* =========================================================
   3. PHOTOGRAPH MOVEMENT
   ---------------------------------------------------------
   Very restrained architectural drift.
   ========================================================= */

@keyframes heinCtaPhotoDrift {

  0% {
    transform:
      scale(1.08)
      translate3d(0, 0, 0);
  }

  30% {
    transform:
      scale(1.11)
      translate3d(-1%, 0.6%, 0);
  }

  65% {
    transform:
      scale(1.09)
      translate3d(0.8%, -0.5%, 0);
  }

  100% {
    transform:
      scale(1.12)
      translate3d(-0.5%, -0.4%, 0);
  }

}


/* =========================================================
   4. BLUE WASH + DRAFTING GRID
   ---------------------------------------------------------
   This combines the previous blue gradient and grid layers.

   The photograph remains visible, but deliberately subdued.
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-cc5d2f8::after {
  content: "";

  position: absolute;

  inset: 0;

  z-index: 1;

  pointer-events: none;

  background-image:

    /*
     * Fine horizontal grid
     */
    linear-gradient(
      rgba(245, 130, 32, 0.055) 1px,
      transparent 1px
    ),

    /*
     * Fine vertical grid
     */
    linear-gradient(
      90deg,
      rgba(245, 130, 32, 0.055) 1px,
      transparent 1px
    ),

    /*
     * Major horizontal drafting grid
     */
    linear-gradient(
      rgba(245, 130, 32, 0.085) 1px,
      transparent 1px
    ),

    /*
     * Major vertical drafting grid
     */
    linear-gradient(
      90deg,
      rgba(245, 130, 32, 0.085) 1px,
      transparent 1px
    ),

    /*
     * Subtle central illumination behind the copy
     */
    radial-gradient(
      circle at 50% 26%,
      rgba(255, 255, 255, 0.075) 0%,
      rgba(255, 255, 255, 0.018) 34%,
      transparent 62%
    ),

    /*
     * Restrained HEIN orange atmosphere
     */
    radial-gradient(
      circle at 92% 110%,
      rgba(245, 130, 32, 0.065) 0%,
      transparent 38%
    ),

    /*
     * Main photographic HEIN-blue wash
     */
    linear-gradient(
      115deg,
      rgba(0, 23, 42, 0.95) 0%,
      rgba(0, 48, 87, 0.88) 52%,
      rgba(0, 67, 111, 0.84) 100%
    );

  background-repeat:
    repeat,
    repeat,
    repeat,
    repeat,
    no-repeat,
    no-repeat,
    no-repeat;

  background-size:
    32px 32px,
    32px 32px,
    160px 160px,
    160px 160px,
    100% 100%,
    100% 100%,
    100% 100%;

  background-position:
    center top;

}


/* =========================================================
   5. ELEMENTOR TOP SHAPE DIVIDER
   ---------------------------------------------------------
   Elementor still controls the actual chosen shape.

   CSS controls positioning, sizing and fill.
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-cc5d2f8 > .elementor-shape-top {
  position:
    absolute !important;

  top:
    -1px !important;

  left:
    0 !important;

  z-index:
    5 !important;

  width:
    100% !important;

  /*
   * Slightly reduced so the divider does not consume as much
   * visual height.
   */
  height:
    clamp(32px, 3.5vw, 46px) !important;

  overflow:
    hidden !important;

  line-height: 0;

  pointer-events: none;
}


.elementor-1122 .elementor-element.elementor-element-cc5d2f8
  > .elementor-shape-top
  svg {
  display: block;

  width:
    calc(100% + 1.3px) !important;

  min-width:
    calc(100% + 1.3px) !important;

  height:
    100% !important;
}


.elementor-1122 .elementor-element.elementor-element-cc5d2f8
  > .elementor-shape-top
  .elementor-shape-fill {
  fill:
    var(--hein-divider-fill) !important;
}


/* =========================================================
   6. CONTENT SHELL
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-cc5d2f8 .hein-cta-shell {
  position: relative;
  z-index: 3;

  display:
    flex !important;

  width:
    min(calc(100% - 48px), 1200px) !important;

  max-width:
    1200px !important;

  min-width: 0;

  flex-direction: column;

  align-items: center;

  justify-content: center;

  gap: 0;

  margin-inline:
    auto !important;

  padding:
    0 !important;
}


/* Elementor inner-wrapper compatibility */
.elementor-1122 .elementor-element.elementor-element-cc5d2f8
  .hein-cta-shell
  > .e-con-inner {
  display:
    flex !important;

  width:
    100% !important;

  max-width:
    none !important;

  flex-direction: column;

  align-items: center;

  justify-content: center;

  gap: 0;

  margin:
    0 !important;

  padding:
    0 !important;
}


/* =========================================================
   7. CTA CONTENT
   ---------------------------------------------------------
   Reduced from the previous 940px overall width.

   This keeps the copy visually consolidated.
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-cc5d2f8 .hein-cta-content {
  position: relative;
  z-index: 3;

  display: block;

  width: 100%;

  max-width: 780px;

  margin:
    0
    auto !important;

  padding:
    0 !important;

  color:
    var(--hein-white);

  text-align:
    center;

  background:
    transparent !important;

  border:
    0 !important;

  border-radius:
    0 !important;

  box-shadow:
    none !important;
}


.elementor-1122 .elementor-element.elementor-element-cc5d2f8
  .hein-cta-content
  > .elementor-widget-container {
  width:
    100%;

  margin:
    0 !important;

  padding:
    0 !important;

  background:
    transparent !important;

  border:
    0 !important;

  border-radius:
    0 !important;

  box-shadow:
    none !important;
}


/* Reset common Info Card wrappers */
.elementor-1122 .elementor-element.elementor-element-cc5d2f8
  .hein-cta-content
  [class*="info-card"],
.elementor-1122 .elementor-element.elementor-element-cc5d2f8
  .hein-cta-content
  [class*="infocard"] {
  background:
    transparent !important;

  border:
    0 !important;

  border-radius:
    0 !important;

  box-shadow:
    none !important;
}


/* Remove any inherited decorative pseudo-elements */
.elementor-1122 .elementor-element.elementor-element-cc5d2f8 .hein-cta-content::before,
.elementor-1122 .elementor-element.elementor-element-cc5d2f8 .hein-cta-content::after {
  content:
    none !important;

  display:
    none !important;
}


/* =========================================================
   8. CTA HEADING
   ---------------------------------------------------------
   This is intentionally a slightly smaller tier than the
   major homepage section headings.

   Major homepage sections:
   maximum 50px

   Compact CTA:
   maximum 46px

   This keeps the CTA strong without making it feel like
   another full content section.
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-cc5d2f8
  .hein-cta-content
  :is(
    h1,
    h2,
    h3,
    h4,
    .elementor-heading-title,
    [class*="info-card-title"],
    [class*="info-card__title"],
    [class*="infocard-title"]
  ) {
  width: 100%;

  max-width: 760px;

  margin:
    0
    auto
    14px !important;

  color:
    var(--hein-white) !important;

  font-family:
    "Aller",
    "Open Sans",
    Arial,
    sans-serif !important;

  font-size:
    clamp(34px, 3.3vw, 46px) !important;

  font-weight:
    700 !important;

  line-height:
    1.08 !important;

  letter-spacing:
    -0.03em !important;

  /*
   * Title case works well here because this is an action
   * statement rather than an informational section heading.
   */
  text-transform:
    none !important;

  text-align:
    center !important;

  overflow-wrap:
    normal;

  word-break:
    normal;

  hyphens:
    none;

  text-wrap:
    balance;

  text-shadow:
    0
    2px
    16px
    rgba(0, 23, 42, 0.26);
}


/* =========================================================
   9. CTA DESCRIPTION
   ---------------------------------------------------------
   Narrower measure and slightly tighter line-height.
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-cc5d2f8 .hein-cta-content p {
  width: 100%;

  max-width: 700px;

  margin:
    0
    auto !important;

  color:
    rgba(255, 255, 255, 0.84) !important;

  font-family:
    "Open Sans",
    Arial,
    sans-serif !important;

  font-size:
    clamp(16px, 1.15vw, 17.5px) !important;

  font-weight:
    400 !important;

  line-height:
    1.65 !important;

  text-align:
    center !important;

  overflow-wrap:
    normal;

  word-break:
    normal;

  hyphens:
    none;

  text-wrap:
    pretty;
}


/* =========================================================
   10. CTA BUTTON
   ---------------------------------------------------------
   Slightly tighter spacing while preserving enough weight
   for the final page action.
   ========================================================= */

.elementor-1122 .elementor-element.elementor-element-cc5d2f8
  .hein-cta-content
  a[href],
.elementor-1122 .elementor-element.elementor-element-cc5d2f8
  .hein-cta-content
  button {
  display:
    inline-flex !important;

  min-width:
    225px;

  min-height:
    52px;

  align-items: center;

  justify-content: center;

  gap: 10px;

  margin:
    23px
    auto
    0 !important;

  padding:
    13px
    25px !important;

  color:
    var(--hein-white) !important;

  background:
    var(--hein-orange) !important;

  border:
    1px solid
    var(--hein-orange) !important;

  border-radius:
    999px !important;

  font-family:
    "Open Sans",
    Arial,
    sans-serif !important;

  font-size:
    13px !important;

  font-weight:
    700 !important;

  line-height:
    1.2 !important;

  letter-spacing:
    0.06em !important;

  text-transform:
    uppercase !important;

  text-decoration:
    none !important;

  text-align:
    center !important;

  white-space:
    nowrap;

  box-shadow:
    0
    8px
    20px
    rgba(0, 23, 42, 0.21) !important;

  cursor: pointer;

  transition:
    color 180ms ease,
    background-color 180ms ease,
    border-color 180ms ease,
    box-shadow 180ms ease,
    transform 180ms ease !important;
}


/* CSS arrow */
.elementor-1122 .elementor-element.elementor-element-cc5d2f8
  .hein-cta-content
  a[href]::after,
.elementor-1122 .elementor-element.elementor-element-cc5d2f8
  .hein-cta-content
  button::after {
  content: "→";

  display: inline-block;

  color:
    currentColor;

  font-size: 17px;

  line-height: 1;

  transition:
    transform 180ms ease;
}


/* Button hover */
.elementor-1122 .elementor-element.elementor-element-cc5d2f8
  .hein-cta-content
  a[href]:hover,
.elementor-1122 .elementor-element.elementor-element-cc5d2f8
  .hein-cta-content
  a[href]:focus-visible,
.elementor-1122 .elementor-element.elementor-element-cc5d2f8
  .hein-cta-content
  button:hover,
.elementor-1122 .elementor-element.elementor-element-cc5d2f8
  .hein-cta-content
  button:focus-visible {
  color:
    var(--hein-white) !important;

  background:
    var(--hein-orange-dark) !important;

  border-color:
    var(--hein-orange-dark) !important;

  box-shadow:
    0
    11px
    24px
    rgba(0, 23, 42, 0.28) !important;

  transform:
    translateY(-2px);
}


.elementor-1122 .elementor-element.elementor-element-cc5d2f8
  .hein-cta-content
  a[href]:hover::after,
.elementor-1122 .elementor-element.elementor-element-cc5d2f8
  .hein-cta-content
  a[href]:focus-visible::after,
.elementor-1122 .elementor-element.elementor-element-cc5d2f8
  .hein-cta-content
  button:hover::after,
.elementor-1122 .elementor-element.elementor-element-cc5d2f8
  .hein-cta-content
  button:focus-visible::after {
  transform:
    translateX(4px);
}


/* Keyboard focus */
.elementor-1122 .elementor-element.elementor-element-cc5d2f8
  .hein-cta-content
  a[href]:focus-visible,
.elementor-1122 .elementor-element.elementor-element-cc5d2f8
  .hein-cta-content
  button:focus-visible {
  outline:
    3px solid
    rgba(255, 255, 255, 0.50);

  outline-offset:
    4px;
}


/* Hide Elementor/widget icon because CSS supplies the arrow */
.elementor-1122 .elementor-element.elementor-element-cc5d2f8
  .hein-cta-content
  .elementor-button-icon,
.elementor-1122 .elementor-element.elementor-element-cc5d2f8
  .hein-cta-content
  [class*="button-icon"] {
  display:
    none !important;
}


/* =========================================================
   11. LAPTOP
   ========================================================= */

@media (max-width: 1024px) {

  .elementor-1122 .elementor-element.elementor-element-cc5d2f8 {
    padding:
      70px
      0
      56px;
  }


  .elementor-1122 .elementor-element.elementor-element-cc5d2f8 .hein-cta-shell {
    width:
      min(calc(100% - 40px), 1200px) !important;
  }


  .elementor-1122 .elementor-element.elementor-element-cc5d2f8 .hein-cta-content {
    max-width:
      760px;
  }


  .elementor-1122 .elementor-element.elementor-element-cc5d2f8
    .hein-cta-content
    :is(
      h1,
      h2,
      h3,
      h4,
      .elementor-heading-title,
      [class*="info-card-title"],
      [class*="info-card__title"],
      [class*="infocard-title"]
    ) {
    font-size:
      clamp(33px, 4vw, 43px) !important;
  }

}


/* =========================================================
   12. TABLET
   ========================================================= */

@media (max-width: 820px) {

  .elementor-1122 .elementor-element.elementor-element-cc5d2f8 {
    padding:
      64px
      0
      54px;
  }


  .elementor-1122 .elementor-element.elementor-element-cc5d2f8 .hein-cta-shell {
    width:
      min(calc(100% - 36px), 1200px) !important;
  }


  .elementor-1122 .elementor-element.elementor-element-cc5d2f8
    > .elementor-shape-top {
    height:
      31px !important;
  }

}


/* =========================================================
   13. MOBILE
   ========================================================= */

@media (max-width: 767px) {

  .elementor-1122 .elementor-element.elementor-element-cc5d2f8 {
    padding:
      58px
      0
      48px;
  }


  /*
   * Slightly stronger blue treatment on mobile because the
   * photograph occupies a much smaller visible area.
   */
  .elementor-1122 .elementor-element.elementor-element-cc5d2f8::after {
    background-image:

      linear-gradient(
        rgba(245, 130, 32, 0.050) 1px,
        transparent 1px
      ),

      linear-gradient(
        90deg,
        rgba(245, 130, 32, 0.050) 1px,
        transparent 1px
      ),

      linear-gradient(
        rgba(245, 130, 32, 0.075) 1px,
        transparent 1px
      ),

      linear-gradient(
        90deg,
        rgba(245, 130, 32, 0.075) 1px,
        transparent 1px
      ),

      radial-gradient(
        circle at 50% 24%,
        rgba(255, 255, 255, 0.06) 0%,
        transparent 60%
      ),

      radial-gradient(
        circle at 92% 110%,
        rgba(245, 130, 32, 0.055) 0%,
        transparent 38%
      ),

      linear-gradient(
        115deg,
        rgba(0, 23, 42, 0.96) 0%,
        rgba(0, 48, 87, 0.91) 55%,
        rgba(0, 67, 111, 0.87) 100%
      );

    background-size:
      25px 25px,
      25px 25px,
      125px 125px,
      125px 125px,
      100% 100%,
      100% 100%,
      100% 100%;
  }


  .elementor-1122 .elementor-element.elementor-element-cc5d2f8 .hein-cta-shell {
    width:
      min(calc(100% - 28px), 1200px) !important;
  }


  .elementor-1122 .elementor-element.elementor-element-cc5d2f8
    > .elementor-shape-top {
    height:
      24px !important;
  }


  .elementor-1122 .elementor-element.elementor-element-cc5d2f8
    .hein-cta-content
    :is(
      h1,
      h2,
      h3,
      h4,
      .elementor-heading-title,
      [class*="info-card-title"],
      [class*="info-card__title"],
      [class*="infocard-title"]
    ) {
    font-size:
      clamp(31px, 8.7vw, 39px) !important;

    line-height:
      1.08 !important;

    margin-bottom:
      13px !important;

    text-wrap:
      pretty;
  }


  .elementor-1122 .elementor-element.elementor-element-cc5d2f8
    .hein-cta-content
    p {
    max-width:
      580px;

    font-size:
      16px !important;

    line-height:
      1.62 !important;
  }


  .elementor-1122 .elementor-element.elementor-element-cc5d2f8
    .hein-cta-content
    a[href],
  .elementor-1122 .elementor-element.elementor-element-cc5d2f8
    .hein-cta-content
    button {
    width:
      100%;

    min-width: 0;

    min-height:
      52px;

    margin-top:
      21px !important;
  }

}


/* =========================================================
   14. SMALL MOBILE
   ========================================================= */

@media (max-width: 420px) {

  .elementor-1122 .elementor-element.elementor-element-cc5d2f8 {
    padding:
      54px
      0
      44px;
  }


  .elementor-1122 .elementor-element.elementor-element-cc5d2f8
    .hein-cta-content
    :is(
      h1,
      h2,
      h3,
      h4,
      .elementor-heading-title,
      [class*="info-card-title"],
      [class*="info-card__title"],
      [class*="infocard-title"]
    ) {
    font-size:
      clamp(29px, 8.5vw, 36px) !important;
  }


  .elementor-1122 .elementor-element.elementor-element-cc5d2f8
    .hein-cta-content
    a[href],
  .elementor-1122 .elementor-element.elementor-element-cc5d2f8
    .hein-cta-content
    button {
    padding:
      13px
      18px !important;

    font-size:
      12px !important;
  }

}


/* =========================================================
   15. REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

  .elementor-1122 .elementor-element.elementor-element-cc5d2f8::before {
    animation:
      none !important;

    transform:
      scale(1.08)
      translate3d(0, 0, 0) !important;
  }


  .elementor-1122 .elementor-element.elementor-element-cc5d2f8
    .hein-cta-content
    a[href],
  .elementor-1122 .elementor-element.elementor-element-cc5d2f8
    .hein-cta-content
    button,
  .elementor-1122 .elementor-element.elementor-element-cc5d2f8
    .hein-cta-content
    a[href]::after,
  .elementor-1122 .elementor-element.elementor-element-cc5d2f8
    .hein-cta-content
    button::after {
    transition:
      none !important;
  }


  .elementor-1122 .elementor-element.elementor-element-cc5d2f8
    .hein-cta-content
    a[href]:hover,
  .elementor-1122 .elementor-element.elementor-element-cc5d2f8
    .hein-cta-content
    a[href]:focus-visible,
  .elementor-1122 .elementor-element.elementor-element-cc5d2f8
    .hein-cta-content
    button:hover,
  .elementor-1122 .elementor-element.elementor-element-cc5d2f8
    .hein-cta-content
    button:focus-visible {
    transform:
      none;
  }

}/* End custom CSS */