.elementor-9291 .elementor-element.elementor-element-abhhero{--display:flex;--min-height:660px;--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;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhhero:not(.elementor-motion-effects-element-type-background), .elementor-9291 .elementor-element.elementor-element-abhhero > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhheropn{--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;--justify-content:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:96px;--padding-bottom:96px;--padding-left:56px;--padding-right:56px;}.elementor-9291 .elementor-element.elementor-element-abhhe1 .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12.5px;font-weight:700;text-transform:uppercase;line-height:1.4em;letter-spacing:2.4px;color:#5C9D5E;}.elementor-9291 .elementor-element.elementor-element-abhhe2{--divider-border-style:solid;--divider-color:#5C9D5E;--divider-border-width:4px;}.elementor-9291 .elementor-element.elementor-element-abhhe2 .elementor-divider-separator{width:84px;margin:0 auto;margin-left:0;}.elementor-9291 .elementor-element.elementor-element-abhhe2 .elementor-divider{text-align:left;padding-block-start:6px;padding-block-end:6px;}.elementor-9291 .elementor-element.elementor-element-abhhe3 .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:62px;font-weight:700;line-height:1.04em;letter-spacing:-1.8px;color:#FFFFFF;}.elementor-9291 .elementor-element.elementor-element-abhhe4{font-family:"Poppins", Sans-serif;font-size:18px;font-weight:400;line-height:1.66em;color:#FFFFFF;}.elementor-9291 .elementor-element.elementor-element-abhheromd{--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;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhstory{--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;--padding-top:112px;--padding-bottom:112px;--padding-left:32px;--padding-right:32px;}.elementor-9291 .elementor-element.elementor-element-abhstory:not(.elementor-motion-effects-element-type-background), .elementor-9291 .elementor-element.elementor-element-abhstory > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#F0F2F4;}.elementor-9291 .elementor-element.elementor-element-abhstin{--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;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhste .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12.5px;font-weight:700;text-transform:uppercase;line-height:1.4em;letter-spacing:2.4px;color:#487A49;}.elementor-9291 .elementor-element.elementor-element-abhsth .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:48px;font-weight:700;line-height:1.08em;letter-spacing:-1.2px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhstd{font-family:"Poppins", Sans-serif;font-size:19px;font-weight:400;line-height:1.65em;color:#3E3E3E;}.elementor-9291 .elementor-element.elementor-element-abhbeats{--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:36px 36px;--row-gap:36px;--column-gap:36px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhbt1{--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;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhbt1e .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;line-height:1.4em;letter-spacing:2.2px;color:#487A49;}.elementor-9291 .elementor-element.elementor-element-abhbt1h .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:21px;font-weight:700;line-height:1.28em;letter-spacing:0.2px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhbt1p{font-family:"Poppins", Sans-serif;font-size:16px;font-weight:400;line-height:1.65em;color:#3E3E3E;}.elementor-9291 .elementor-element.elementor-element-abhbt2{--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;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhbt2e .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;line-height:1.4em;letter-spacing:2.2px;color:#487A49;}.elementor-9291 .elementor-element.elementor-element-abhbt2h .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:21px;font-weight:700;line-height:1.28em;letter-spacing:0.2px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhbt2p{font-family:"Poppins", Sans-serif;font-size:16px;font-weight:400;line-height:1.65em;color:#3E3E3E;}.elementor-9291 .elementor-element.elementor-element-abhbt3{--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;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhbt3e .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;line-height:1.4em;letter-spacing:2.2px;color:#487A49;}.elementor-9291 .elementor-element.elementor-element-abhbt3h .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:21px;font-weight:700;line-height:1.28em;letter-spacing:0.2px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhbt3p{font-family:"Poppins", Sans-serif;font-size:16px;font-weight:400;line-height:1.65em;color:#3E3E3E;}.elementor-9291 .elementor-element.elementor-element-abhvent{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:40px 64px;--row-gap:40px;--column-gap:64px;--padding-top:112px;--padding-bottom:112px;--padding-left:32px;--padding-right:32px;}.elementor-9291 .elementor-element.elementor-element-abhvent:not(.elementor-motion-effects-element-type-background), .elementor-9291 .elementor-element.elementor-element-abhvent > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#F2F6F1;}.elementor-9291 .elementor-element.elementor-element-abhvem{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhvec{--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;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhve1 .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12.5px;font-weight:700;text-transform:uppercase;line-height:1.4em;letter-spacing:2.4px;color:#487A49;}.elementor-9291 .elementor-element.elementor-element-abhve2 .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:48px;font-weight:700;line-height:1.08em;letter-spacing:-1.2px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhve3{font-family:"Poppins", Sans-serif;font-size:19px;font-weight:400;line-height:1.65em;color:#3E3E3E;}.elementor-9291 .elementor-element.elementor-element-abhve4 .elementor-button{background-color:#5C9D5E;font-family:"Poppins", Sans-serif;font-size:13.5px;font-weight:700;text-transform:uppercase;letter-spacing:1.1px;fill:#FFFFFF;color:#FFFFFF;border-style:solid;border-width:2px 2px 2px 2px;border-color:#5C9D5E;border-radius:999px 999px 999px 999px;padding:13px 22px 13px 22px;}.elementor-9291 .elementor-element.elementor-element-abhcs{--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;--padding-top:112px;--padding-bottom:112px;--padding-left:32px;--padding-right:32px;}.elementor-9291 .elementor-element.elementor-element-abhcs:not(.elementor-motion-effects-element-type-background), .elementor-9291 .elementor-element.elementor-element-abhcs > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhcsrow{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:40px 64px;--row-gap:40px;--column-gap:64px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhcsc{--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;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhcs1 .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12.5px;font-weight:700;text-transform:uppercase;line-height:1.4em;letter-spacing:2.4px;color:#EF7D48;}.elementor-9291 .elementor-element.elementor-element-abhcs3 .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:48px;font-weight:700;line-height:1.08em;letter-spacing:-1.2px;color:#FFFFFF;}.elementor-9291 .elementor-element.elementor-element-abhcs4{font-family:"Poppins", Sans-serif;font-size:19px;font-weight:400;line-height:1.65em;color:#FFFFFF;}.elementor-9291 .elementor-element.elementor-element-abhcsm{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhcspl{--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;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhcsp1{--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;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhcsp1n .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:26px;font-weight:700;line-height:1.15em;letter-spacing:-0.6px;color:#FFFFFF;}.elementor-9291 .elementor-element.elementor-element-abhcsp1r .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:15px;font-weight:700;text-transform:uppercase;line-height:1.4em;letter-spacing:1.3px;color:#EF7D48;}.elementor-9291 .elementor-element.elementor-element-abhcsp1b{font-family:"Poppins", Sans-serif;font-size:16px;font-weight:400;line-height:1.62em;color:#FFFFFF;}.elementor-9291 .elementor-element.elementor-element-abhcsp2{--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;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhcsp2n .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:26px;font-weight:700;line-height:1.15em;letter-spacing:-0.6px;color:#FFFFFF;}.elementor-9291 .elementor-element.elementor-element-abhcsp2r .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:15px;font-weight:700;text-transform:uppercase;line-height:1.4em;letter-spacing:1.3px;color:#EF7D48;}.elementor-9291 .elementor-element.elementor-element-abhcsp2b{font-family:"Poppins", Sans-serif;font-size:16px;font-weight:400;line-height:1.62em;color:#FFFFFF;}.elementor-9291 .elementor-element.elementor-element-abhcsp3{--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;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhcsp3n .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:26px;font-weight:700;line-height:1.15em;letter-spacing:-0.6px;color:#FFFFFF;}.elementor-9291 .elementor-element.elementor-element-abhcsp3r .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:15px;font-weight:700;text-transform:uppercase;line-height:1.4em;letter-spacing:1.3px;color:#EF7D48;}.elementor-9291 .elementor-element.elementor-element-abhcsp3b{font-family:"Poppins", Sans-serif;font-size:16px;font-weight:400;line-height:1.62em;color:#FFFFFF;}.elementor-9291 .elementor-element.elementor-element-abhline{--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;--padding-top:112px;--padding-bottom:72px;--padding-left:32px;--padding-right:32px;}.elementor-9291 .elementor-element.elementor-element-abhline:not(.elementor-motion-effects-element-type-background), .elementor-9291 .elementor-element.elementor-element-abhline > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-9291 .elementor-element.elementor-element-abhlnhd{--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;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhln1 .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12.5px;font-weight:700;text-transform:uppercase;line-height:1.4em;letter-spacing:2.4px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhln2 .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:48px;font-weight:700;line-height:1.08em;letter-spacing:-1.2px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhln3{font-family:"Poppins", Sans-serif;font-size:19px;font-weight:400;line-height:1.65em;color:#3E3E3E;}.elementor-9291 .elementor-element.elementor-element-abhlngr{--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:56px 36px;--row-gap:56px;--column-gap:36px;--flex-wrap:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhpc1{--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;--padding-top:0px;--padding-bottom:30px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhpc1m{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhpc1n .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:27px;font-weight:700;line-height:1.12em;letter-spacing:-0.8px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhpc1l .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;line-height:1.4em;letter-spacing:2.2px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhpc1h .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:20px;font-weight:700;line-height:1.3em;letter-spacing:-0.3px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhpc1b{font-family:"Poppins", Sans-serif;font-size:16px;font-weight:400;line-height:1.65em;color:#3E3E3E;}.elementor-9291 .elementor-element.elementor-element-abhpc1k .elementor-button{background-color:#FFFFFF;font-family:"Poppins", Sans-serif;font-size:13.5px;font-weight:700;text-transform:uppercase;letter-spacing:1.1px;fill:#051124;color:#051124;border-style:solid;border-width:2px 2px 2px 2px;border-color:#051124;border-radius:999px 999px 999px 999px;padding:13px 22px 13px 22px;}.elementor-9291 .elementor-element.elementor-element-abhpc2{--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;--padding-top:0px;--padding-bottom:30px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhpc2m{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhpc2n .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:27px;font-weight:700;line-height:1.12em;letter-spacing:-0.8px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhpc2l .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;line-height:1.4em;letter-spacing:2.2px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhpc2h .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:20px;font-weight:700;line-height:1.3em;letter-spacing:-0.3px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhpc2b{font-family:"Poppins", Sans-serif;font-size:16px;font-weight:400;line-height:1.65em;color:#3E3E3E;}.elementor-9291 .elementor-element.elementor-element-abhpc2k .elementor-button{background-color:#FFFFFF;font-family:"Poppins", Sans-serif;font-size:13.5px;font-weight:700;text-transform:uppercase;letter-spacing:1.1px;fill:#051124;color:#051124;border-style:solid;border-width:2px 2px 2px 2px;border-color:#051124;border-radius:999px 999px 999px 999px;padding:13px 22px 13px 22px;}.elementor-9291 .elementor-element.elementor-element-abhpc3{--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;--padding-top:0px;--padding-bottom:30px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhpc3m{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhpc3n .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:27px;font-weight:700;line-height:1.12em;letter-spacing:-0.8px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhpc3l .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;line-height:1.4em;letter-spacing:2.2px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhpc3h .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:20px;font-weight:700;line-height:1.3em;letter-spacing:-0.3px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhpc3b{font-family:"Poppins", Sans-serif;font-size:16px;font-weight:400;line-height:1.65em;color:#3E3E3E;}.elementor-9291 .elementor-element.elementor-element-abhpc3k .elementor-button{background-color:#FFFFFF;font-family:"Poppins", Sans-serif;font-size:13.5px;font-weight:700;text-transform:uppercase;letter-spacing:1.1px;fill:#051124;color:#051124;border-style:solid;border-width:2px 2px 2px 2px;border-color:#051124;border-radius:999px 999px 999px 999px;padding:13px 22px 13px 22px;}.elementor-9291 .elementor-element.elementor-element-abhproof{--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;--padding-top:72px;--padding-bottom:112px;--padding-left:32px;--padding-right:32px;}.elementor-9291 .elementor-element.elementor-element-abhproof:not(.elementor-motion-effects-element-type-background), .elementor-9291 .elementor-element.elementor-element-abhproof > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-9291 .elementor-element.elementor-element-abhprhd{--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;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhpr1 .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12.5px;font-weight:700;text-transform:uppercase;line-height:1.4em;letter-spacing:2.4px;color:#487A49;}.elementor-9291 .elementor-element.elementor-element-abhpr2 .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:48px;font-weight:700;line-height:1.08em;letter-spacing:-1.2px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhpr3{font-family:"Poppins", Sans-serif;font-size:19px;font-weight:400;line-height:1.65em;color:#3E3E3E;}.elementor-9291 .elementor-element.elementor-element-abhprgr{--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:32px 32px;--row-gap:32px;--column-gap:32px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhsthome{--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;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhsthome:not(.elementor-motion-effects-element-type-background), .elementor-9291 .elementor-element.elementor-element-abhsthome > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-9291 .elementor-element.elementor-element-abhstbhome{--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;--justify-content:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:40px;--padding-bottom:40px;--padding-left:28px;--padding-right:26px;}.elementor-9291 .elementor-element.elementor-element-abhstehome .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12.5px;font-weight:700;text-transform:uppercase;line-height:1.4em;letter-spacing:2.4px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhsthhome .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:31px;font-weight:700;line-height:1.14em;letter-spacing:-0.8px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhstqhome{font-family:"Poppins", Sans-serif;font-size:17.5px;font-weight:400;line-height:1.62em;letter-spacing:-0.1px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhstwhome{font-family:"Poppins", Sans-serif;font-size:14.5px;font-weight:400;line-height:1.5em;color:#3E3E3E;}.elementor-9291 .elementor-element.elementor-element-abhstchome .elementor-button{background-color:#487A49;font-family:"Poppins", Sans-serif;font-size:13.5px;font-weight:700;text-transform:uppercase;letter-spacing:1.1px;fill:#FFFFFF;color:#FFFFFF;border-style:solid;border-width:2px 2px 2px 2px;border-color:#487A49;border-radius:999px 999px 999px 999px;padding:13px 22px 13px 22px;}.elementor-9291 .elementor-element.elementor-element-abhstmhome{--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;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhstpro{--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;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhstpro:not(.elementor-motion-effects-element-type-background), .elementor-9291 .elementor-element.elementor-element-abhstpro > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-9291 .elementor-element.elementor-element-abhstbpro{--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;--justify-content:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:40px;--padding-bottom:40px;--padding-left:28px;--padding-right:26px;}.elementor-9291 .elementor-element.elementor-element-abhstepro .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12.5px;font-weight:700;text-transform:uppercase;line-height:1.4em;letter-spacing:2.4px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhsthpro .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:31px;font-weight:700;line-height:1.14em;letter-spacing:-0.8px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhstqpro{font-family:"Poppins", Sans-serif;font-size:17.5px;font-weight:400;line-height:1.62em;letter-spacing:-0.1px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhstwpro{font-family:"Poppins", Sans-serif;font-size:14.5px;font-weight:400;line-height:1.5em;color:#3E3E3E;}.elementor-9291 .elementor-element.elementor-element-abhstcpro .elementor-button{background-color:#EF7D48;font-family:"Poppins", Sans-serif;font-size:13.5px;font-weight:700;text-transform:uppercase;letter-spacing:1.1px;fill:#FFFFFF;color:#FFFFFF;border-style:solid;border-width:2px 2px 2px 2px;border-color:#EF7D48;border-radius:999px 999px 999px 999px;padding:13px 22px 13px 22px;}.elementor-9291 .elementor-element.elementor-element-abhstmpro{--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;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhprv{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhvhh{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:flex-start;--gap:18px 18px;--row-gap:18px;--column-gap:18px;--padding-top:0px;--padding-bottom:0px;--padding-left:34px;--padding-right:34px;}.elementor-9291 .elementor-element.elementor-element-abhvthh{--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;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhvhhh .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:18px;font-weight:700;text-transform:uppercase;line-height:1.18em;letter-spacing:0.2px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhvphh{font-family:"Poppins", Sans-serif;font-size:15px;font-weight:400;line-height:1.6em;color:#3E3E3E;}.elementor-9291 .elementor-element.elementor-element-abhvci{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:flex-start;--gap:18px 18px;--row-gap:18px;--column-gap:18px;--padding-top:0px;--padding-bottom:0px;--padding-left:34px;--padding-right:34px;}.elementor-9291 .elementor-element.elementor-element-abhvtci{--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;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhvhci .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:18px;font-weight:700;text-transform:uppercase;line-height:1.18em;letter-spacing:0.2px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhvpci{font-family:"Poppins", Sans-serif;font-size:15px;font-weight:400;line-height:1.6em;color:#3E3E3E;}.elementor-9291 .elementor-element.elementor-element-abhvsp{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:flex-start;--gap:18px 18px;--row-gap:18px;--column-gap:18px;--padding-top:0px;--padding-bottom:0px;--padding-left:34px;--padding-right:34px;}.elementor-9291 .elementor-element.elementor-element-abhvtsp{--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;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhvhsp .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:18px;font-weight:700;text-transform:uppercase;line-height:1.18em;letter-spacing:0.2px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhvpsp{font-family:"Poppins", Sans-serif;font-size:15px;font-weight:400;line-height:1.6em;color:#3E3E3E;}.elementor-9291 .elementor-element.elementor-element-abhtrade{--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;--padding-top:112px;--padding-bottom:112px;--padding-left:32px;--padding-right:32px;}.elementor-9291 .elementor-element.elementor-element-abhtrade:not(.elementor-motion-effects-element-type-background), .elementor-9291 .elementor-element.elementor-element-abhtrade > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhtrrow{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:40px 64px;--row-gap:40px;--column-gap:64px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhtrc{--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;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhtr1 .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12.5px;font-weight:700;text-transform:uppercase;line-height:1.4em;letter-spacing:2.4px;color:#EF7D48;}.elementor-9291 .elementor-element.elementor-element-abhtr2 .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:48px;font-weight:700;line-height:1.08em;letter-spacing:-1.2px;color:#FFFFFF;}.elementor-9291 .elementor-element.elementor-element-abhtr3{font-family:"Poppins", Sans-serif;font-size:19px;font-weight:400;line-height:1.65em;color:#FFFFFF;}.elementor-9291 .elementor-element.elementor-element-abhtrbt{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:14px 14px;--row-gap:14px;--column-gap:14px;--flex-wrap:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhtr4 .elementor-button{background-color:#EF7D48;font-family:"Poppins", Sans-serif;font-size:13.5px;font-weight:700;text-transform:uppercase;letter-spacing:1.1px;fill:#FFFFFF;color:#FFFFFF;border-style:solid;border-width:2px 2px 2px 2px;border-color:#EF7D48;border-radius:999px 999px 999px 999px;padding:13px 22px 13px 22px;}.elementor-9291 .elementor-element.elementor-element-abhtr5 .elementor-button{font-family:"Poppins", Sans-serif;font-size:13.5px;font-weight:700;text-transform:uppercase;letter-spacing:1.1px;fill:#FFFFFF;color:#FFFFFF;border-style:solid;border-width:2px 2px 2px 2px;border-color:rgba(255,255,255,0.45);border-radius:999px 999px 999px 999px;padding:13px 22px 13px 22px;}.elementor-9291 .elementor-element.elementor-element-abhtrm{--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;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhsupp{--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;--flex-wrap:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhsp1{--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;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhsp1t .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;line-height:1.4em;letter-spacing:2.2px;color:#FFFFFF;}.elementor-9291 .elementor-element.elementor-element-abhsp1l .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:20px;font-weight:700;line-height:1.32em;letter-spacing:-0.3px;color:#EF7D48;}.elementor-9291 .elementor-element.elementor-element-abhsp1b{font-family:"Poppins", Sans-serif;font-size:16px;font-weight:400;line-height:1.62em;color:#FFFFFF;}.elementor-9291 .elementor-element.elementor-element-abhsp2{--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;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhsp2t .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;line-height:1.4em;letter-spacing:2.2px;color:#FFFFFF;}.elementor-9291 .elementor-element.elementor-element-abhsp2l .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:20px;font-weight:700;line-height:1.32em;letter-spacing:-0.3px;color:#EF7D48;}.elementor-9291 .elementor-element.elementor-element-abhsp2b{font-family:"Poppins", Sans-serif;font-size:16px;font-weight:400;line-height:1.62em;color:#FFFFFF;}.elementor-9291 .elementor-element.elementor-element-abhsp3{--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;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhsp3t .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;line-height:1.4em;letter-spacing:2.2px;color:#FFFFFF;}.elementor-9291 .elementor-element.elementor-element-abhsp3l .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:20px;font-weight:700;line-height:1.32em;letter-spacing:-0.3px;color:#EF7D48;}.elementor-9291 .elementor-element.elementor-element-abhsp3b{font-family:"Poppins", Sans-serif;font-size:16px;font-weight:400;line-height:1.62em;color:#FFFFFF;}.elementor-9291 .elementor-element.elementor-element-abhsp4{--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;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhsp4t .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;line-height:1.4em;letter-spacing:2.2px;color:#FFFFFF;}.elementor-9291 .elementor-element.elementor-element-abhsp4l .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:20px;font-weight:700;line-height:1.32em;letter-spacing:-0.3px;color:#EF7D48;}.elementor-9291 .elementor-element.elementor-element-abhsp4b{font-family:"Poppins", Sans-serif;font-size:16px;font-weight:400;line-height:1.62em;color:#FFFFFF;}.elementor-9291 .elementor-element.elementor-element-abhappr{--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:44px 64px;--row-gap:44px;--column-gap:64px;--padding-top:112px;--padding-bottom:112px;--padding-left:32px;--padding-right:32px;}.elementor-9291 .elementor-element.elementor-element-abhappr:not(.elementor-motion-effects-element-type-background), .elementor-9291 .elementor-element.elementor-element-abhappr > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-9291 .elementor-element.elementor-element-abhapc{--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;--justify-content:flex-end;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhap1 .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12.5px;font-weight:700;text-transform:uppercase;line-height:1.4em;letter-spacing:2.4px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhap2 .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:42px;font-weight:700;line-height:1.1em;letter-spacing:-1px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhap3{font-family:"Poppins", Sans-serif;font-size:19px;font-weight:400;line-height:1.65em;color:#3E3E3E;}.elementor-9291 .elementor-element.elementor-element-abhap3b{font-family:"Poppins", Sans-serif;font-size:19px;font-weight:400;line-height:1.65em;color:#3E3E3E;}.elementor-9291 .elementor-element.elementor-element-abhapr{--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:34px 0px;--row-gap:34px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhapft{--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;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhap4 .elementor-button{background-color:#EF7D48;font-family:"Poppins", Sans-serif;font-size:13.5px;font-weight:700;text-transform:uppercase;letter-spacing:1.1px;fill:#FFFFFF;color:#FFFFFF;border-style:solid;border-width:2px 2px 2px 2px;border-color:#EF7D48;border-radius:999px 999px 999px 999px;padding:13px 22px 13px 22px;}.elementor-9291 .elementor-element.elementor-element-abhap5{font-family:"Poppins", Sans-serif;font-size:13.5px;font-weight:400;line-height:1.6em;color:#3E3E3E;}.elementor-9291 .elementor-element.elementor-element-abhcHD{--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;--padding-top:112px;--padding-bottom:44px;--padding-left:32px;--padding-right:32px;}.elementor-9291 .elementor-element.elementor-element-abhcHD:not(.elementor-motion-effects-element-type-background), .elementor-9291 .elementor-element.elementor-element-abhcHD > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#F5F7F8;}.elementor-9291 .elementor-element.elementor-element-abhch1 .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12.5px;font-weight:700;text-transform:uppercase;line-height:1.4em;letter-spacing:2.4px;color:#EF7D48;}.elementor-9291 .elementor-element.elementor-element-abhch2 .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:54px;font-weight:700;line-height:1.06em;letter-spacing:-1.4px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhcGR{--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;--padding-top:0px;--padding-bottom:112px;--padding-left:32px;--padding-right:32px;}.elementor-9291 .elementor-element.elementor-element-abhcGR:not(.elementor-motion-effects-element-type-background), .elementor-9291 .elementor-element.elementor-element-abhcGR > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#F5F7F8;}.elementor-9291 .elementor-element.elementor-element-abhcgrid{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhc1{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhc1m{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhc1c{--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;--justify-content:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:34px;--padding-bottom:34px;--padding-left:34px;--padding-right:34px;}.elementor-9291 .elementor-element.elementor-element-abhc1d{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:0px 12px;--row-gap:0px;--column-gap:12px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhc1g .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;line-height:1.4em;letter-spacing:2px;color:#487A49;}.elementor-9291 .elementor-element.elementor-element-abhc1h .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:26px;font-weight:700;line-height:1.2em;letter-spacing:-0.5px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhc1p{font-family:"Poppins", Sans-serif;font-size:16.5px;font-weight:400;line-height:1.62em;color:#3E3E3E;}.elementor-9291 .elementor-element.elementor-element-abhc1k .elementor-button{background-color:#487A49;font-family:"Poppins", Sans-serif;font-size:13.5px;font-weight:700;text-transform:uppercase;letter-spacing:1.1px;fill:#FFFFFF;color:#FFFFFF;border-style:solid;border-width:2px 2px 2px 2px;border-color:#487A49;border-radius:999px 999px 999px 999px;padding:13px 22px 13px 22px;}.elementor-9291 .elementor-element.elementor-element-abhc2{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhc2m{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhc2c{--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;--justify-content:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:34px;--padding-bottom:34px;--padding-left:34px;--padding-right:34px;}.elementor-9291 .elementor-element.elementor-element-abhc2d{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:0px 12px;--row-gap:0px;--column-gap:12px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhc2g .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;line-height:1.4em;letter-spacing:2px;color:#EF7D48;}.elementor-9291 .elementor-element.elementor-element-abhc2h .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:26px;font-weight:700;line-height:1.2em;letter-spacing:-0.5px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhc2p{font-family:"Poppins", Sans-serif;font-size:16.5px;font-weight:400;line-height:1.62em;color:#3E3E3E;}.elementor-9291 .elementor-element.elementor-element-abhc2k .elementor-button{background-color:#EF7D48;font-family:"Poppins", Sans-serif;font-size:13.5px;font-weight:700;text-transform:uppercase;letter-spacing:1.1px;fill:#FFFFFF;color:#FFFFFF;border-style:solid;border-width:2px 2px 2px 2px;border-color:#EF7D48;border-radius:999px 999px 999px 999px;padding:13px 22px 13px 22px;}.elementor-9291 .elementor-element.elementor-element-abhc3{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhc3m{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhc3c{--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;--justify-content:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:34px;--padding-bottom:34px;--padding-left:34px;--padding-right:34px;}.elementor-9291 .elementor-element.elementor-element-abhc3d{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:0px 12px;--row-gap:0px;--column-gap:12px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhc3g .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;line-height:1.4em;letter-spacing:2px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhc3h .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:26px;font-weight:700;line-height:1.2em;letter-spacing:-0.5px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhc3p{font-family:"Poppins", Sans-serif;font-size:16.5px;font-weight:400;line-height:1.62em;color:#3E3E3E;}.elementor-9291 .elementor-element.elementor-element-abhc3k .elementor-button{background-color:#051124;font-family:"Poppins", Sans-serif;font-size:13.5px;font-weight:700;text-transform:uppercase;letter-spacing:1.1px;fill:#FFFFFF;color:#FFFFFF;border-style:solid;border-width:2px 2px 2px 2px;border-color:#051124;border-radius:999px 999px 999px 999px;padding:13px 22px 13px 22px;}.elementor-9291 .elementor-element.elementor-element-abhc4{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhc4m{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhc4c{--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;--justify-content:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:34px;--padding-bottom:34px;--padding-left:34px;--padding-right:34px;}.elementor-9291 .elementor-element.elementor-element-abhc4d{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:0px 12px;--row-gap:0px;--column-gap:12px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhc4g .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;line-height:1.4em;letter-spacing:2px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhc4h .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:26px;font-weight:700;line-height:1.2em;letter-spacing:-0.5px;color:#051124;}.elementor-9291 .elementor-element.elementor-element-abhc4p{font-family:"Poppins", Sans-serif;font-size:16.5px;font-weight:400;line-height:1.62em;color:#3E3E3E;}.elementor-9291 .elementor-element.elementor-element-abhc4k .elementor-button{background-color:#051124;font-family:"Poppins", Sans-serif;font-size:13.5px;font-weight:700;text-transform:uppercase;letter-spacing:1.1px;fill:#FFFFFF;color:#FFFFFF;border-style:solid;border-width:2px 2px 2px 2px;border-color:#051124;border-radius:999px 999px 999px 999px;padding:13px 22px 13px 22px;}.elementor-9291 .elementor-element.elementor-element-abhmr{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}:root{--page-title-display:none;}@media(max-width:1024px){.elementor-9291 .elementor-element.elementor-element-abhhero{--flex-direction:column-reverse;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-9291 .elementor-element.elementor-element-abhheropn{--padding-top:64px;--padding-bottom:64px;--padding-left:24px;--padding-right:24px;}.elementor-9291 .elementor-element.elementor-element-abhhe3 .elementor-heading-title{font-size:46px;}.elementor-9291 .elementor-element.elementor-element-abhstory{--padding-top:80px;--padding-bottom:80px;--padding-left:24px;--padding-right:24px;}.elementor-9291 .elementor-element.elementor-element-abhsth .elementor-heading-title{font-size:38px;}.elementor-9291 .elementor-element.elementor-element-abhstd{font-size:18px;}.elementor-9291 .elementor-element.elementor-element-abhbt1h .elementor-heading-title{font-size:20px;}.elementor-9291 .elementor-element.elementor-element-abhbt2h .elementor-heading-title{font-size:20px;}.elementor-9291 .elementor-element.elementor-element-abhbt3h .elementor-heading-title{font-size:20px;}.elementor-9291 .elementor-element.elementor-element-abhvent{--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:flex-start;--padding-top:80px;--padding-bottom:80px;--padding-left:24px;--padding-right:24px;}.elementor-9291 .elementor-element.elementor-element-abhve2 .elementor-heading-title{font-size:38px;}.elementor-9291 .elementor-element.elementor-element-abhve3{font-size:18px;}.elementor-9291 .elementor-element.elementor-element-abhcs{--padding-top:80px;--padding-bottom:80px;--padding-left:24px;--padding-right:24px;}.elementor-9291 .elementor-element.elementor-element-abhcsrow{--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:flex-start;}.elementor-9291 .elementor-element.elementor-element-abhcs3 .elementor-heading-title{font-size:38px;}.elementor-9291 .elementor-element.elementor-element-abhcs4{font-size:18px;}.elementor-9291 .elementor-element.elementor-element-abhcspl{--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-9291 .elementor-element.elementor-element-abhcsp1n .elementor-heading-title{font-size:23px;}.elementor-9291 .elementor-element.elementor-element-abhcsp2n .elementor-heading-title{font-size:23px;}.elementor-9291 .elementor-element.elementor-element-abhcsp3n .elementor-heading-title{font-size:23px;}.elementor-9291 .elementor-element.elementor-element-abhline{--padding-top:80px;--padding-bottom:52px;--padding-left:24px;--padding-right:24px;}.elementor-9291 .elementor-element.elementor-element-abhln2 .elementor-heading-title{font-size:38px;}.elementor-9291 .elementor-element.elementor-element-abhln3{font-size:18px;}.elementor-9291 .elementor-element.elementor-element-abhpc1n .elementor-heading-title{font-size:23px;}.elementor-9291 .elementor-element.elementor-element-abhpc1h .elementor-heading-title{font-size:18px;}.elementor-9291 .elementor-element.elementor-element-abhpc2n .elementor-heading-title{font-size:23px;}.elementor-9291 .elementor-element.elementor-element-abhpc2h .elementor-heading-title{font-size:18px;}.elementor-9291 .elementor-element.elementor-element-abhpc3n .elementor-heading-title{font-size:23px;}.elementor-9291 .elementor-element.elementor-element-abhpc3h .elementor-heading-title{font-size:18px;}.elementor-9291 .elementor-element.elementor-element-abhproof{--padding-top:52px;--padding-bottom:80px;--padding-left:24px;--padding-right:24px;}.elementor-9291 .elementor-element.elementor-element-abhpr2 .elementor-heading-title{font-size:38px;}.elementor-9291 .elementor-element.elementor-element-abhpr3{font-size:18px;}.elementor-9291 .elementor-element.elementor-element-abhprgr{--gap:24px 24px;--row-gap:24px;--column-gap:24px;}.elementor-9291 .elementor-element.elementor-element-abhsthome{--flex-direction:column-reverse;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-9291 .elementor-element.elementor-element-abhstbhome{--padding-top:32px;--padding-bottom:32px;--padding-left:26px;--padding-right:24px;}.elementor-9291 .elementor-element.elementor-element-abhsthhome .elementor-heading-title{font-size:26px;}.elementor-9291 .elementor-element.elementor-element-abhstqhome{font-size:16.5px;}.elementor-9291 .elementor-element.elementor-element-abhstpro{--flex-direction:column-reverse;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-9291 .elementor-element.elementor-element-abhstbpro{--padding-top:32px;--padding-bottom:32px;--padding-left:26px;--padding-right:24px;}.elementor-9291 .elementor-element.elementor-element-abhsthpro .elementor-heading-title{font-size:26px;}.elementor-9291 .elementor-element.elementor-element-abhstqpro{font-size:16.5px;}.elementor-9291 .elementor-element.elementor-element-abhvhh{--padding-top:0px;--padding-bottom:0px;--padding-left:22px;--padding-right:22px;}.elementor-9291 .elementor-element.elementor-element-abhvci{--padding-top:0px;--padding-bottom:0px;--padding-left:22px;--padding-right:22px;}.elementor-9291 .elementor-element.elementor-element-abhvsp{--padding-top:0px;--padding-bottom:0px;--padding-left:22px;--padding-right:22px;}.elementor-9291 .elementor-element.elementor-element-abhtrade{--padding-top:80px;--padding-bottom:80px;--padding-left:24px;--padding-right:24px;}.elementor-9291 .elementor-element.elementor-element-abhtrrow{--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:flex-start;}.elementor-9291 .elementor-element.elementor-element-abhtr2 .elementor-heading-title{font-size:38px;}.elementor-9291 .elementor-element.elementor-element-abhtr3{font-size:18px;}.elementor-9291 .elementor-element.elementor-element-abhsp1l .elementor-heading-title{font-size:18px;}.elementor-9291 .elementor-element.elementor-element-abhsp2l .elementor-heading-title{font-size:18px;}.elementor-9291 .elementor-element.elementor-element-abhsp3l .elementor-heading-title{font-size:18px;}.elementor-9291 .elementor-element.elementor-element-abhsp4l .elementor-heading-title{font-size:18px;}.elementor-9291 .elementor-element.elementor-element-abhappr{--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:flex-start;--padding-top:80px;--padding-bottom:80px;--padding-left:24px;--padding-right:24px;}.elementor-9291 .elementor-element.elementor-element-abhap2 .elementor-heading-title{font-size:36px;}.elementor-9291 .elementor-element.elementor-element-abhap3{font-size:18px;}.elementor-9291 .elementor-element.elementor-element-abhap3b{font-size:18px;}.elementor-9291 .elementor-element.elementor-element-abhapr{--gap:28px 0px;--row-gap:28px;--column-gap:0px;}.elementor-9291 .elementor-element.elementor-element-abhcHD{--padding-top:80px;--padding-bottom:36px;--padding-left:24px;--padding-right:24px;}.elementor-9291 .elementor-element.elementor-element-abhch2 .elementor-heading-title{font-size:40px;}.elementor-9291 .elementor-element.elementor-element-abhcGR{--padding-top:0px;--padding-bottom:80px;--padding-left:24px;--padding-right:24px;}.elementor-9291 .elementor-element.elementor-element-abhc1c{--padding-top:32px;--padding-bottom:32px;--padding-left:32px;--padding-right:32px;}.elementor-9291 .elementor-element.elementor-element-abhc1h .elementor-heading-title{font-size:25px;}.elementor-9291 .elementor-element.elementor-element-abhc2c{--padding-top:32px;--padding-bottom:32px;--padding-left:32px;--padding-right:32px;}.elementor-9291 .elementor-element.elementor-element-abhc2h .elementor-heading-title{font-size:25px;}.elementor-9291 .elementor-element.elementor-element-abhc3c{--padding-top:32px;--padding-bottom:32px;--padding-left:32px;--padding-right:32px;}.elementor-9291 .elementor-element.elementor-element-abhc3h .elementor-heading-title{font-size:25px;}.elementor-9291 .elementor-element.elementor-element-abhc4c{--padding-top:32px;--padding-bottom:32px;--padding-left:32px;--padding-right:32px;}.elementor-9291 .elementor-element.elementor-element-abhc4h .elementor-heading-title{font-size:25px;}}@media(max-width:767px){.elementor-9291 .elementor-element.elementor-element-abhhero{--flex-direction:column-reverse;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-9291 .elementor-element.elementor-element-abhheropn{--width:100%;--padding-top:48px;--padding-bottom:56px;--padding-left:20px;--padding-right:20px;}.elementor-9291 .elementor-element.elementor-element-abhhe1 .elementor-heading-title{font-size:12px;}.elementor-9291 .elementor-element.elementor-element-abhhe3 .elementor-heading-title{font-size:34px;}.elementor-9291 .elementor-element.elementor-element-abhhe4{font-size:16.5px;}.elementor-9291 .elementor-element.elementor-element-abhheromd{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhstory{--padding-top:60px;--padding-bottom:60px;--padding-left:20px;--padding-right:20px;}.elementor-9291 .elementor-element.elementor-element-abhste .elementor-heading-title{font-size:12px;}.elementor-9291 .elementor-element.elementor-element-abhsth .elementor-heading-title{font-size:30px;}.elementor-9291 .elementor-element.elementor-element-abhstd{font-size:17px;}.elementor-9291 .elementor-element.elementor-element-abhbt1{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhbt1h .elementor-heading-title{font-size:20px;}.elementor-9291 .elementor-element.elementor-element-abhbt2{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhbt2h .elementor-heading-title{font-size:20px;}.elementor-9291 .elementor-element.elementor-element-abhbt3{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhbt3h .elementor-heading-title{font-size:20px;}.elementor-9291 .elementor-element.elementor-element-abhvent{--padding-top:60px;--padding-bottom:60px;--padding-left:20px;--padding-right:20px;}.elementor-9291 .elementor-element.elementor-element-abhvem{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhvec{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhve1 .elementor-heading-title{font-size:12px;}.elementor-9291 .elementor-element.elementor-element-abhve2 .elementor-heading-title{font-size:30px;}.elementor-9291 .elementor-element.elementor-element-abhve3{font-size:17px;}.elementor-9291 .elementor-element.elementor-element-abhcs{--padding-top:60px;--padding-bottom:60px;--padding-left:20px;--padding-right:20px;}.elementor-9291 .elementor-element.elementor-element-abhcsc{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhcs1 .elementor-heading-title{font-size:12px;}.elementor-9291 .elementor-element.elementor-element-abhcs3 .elementor-heading-title{font-size:30px;}.elementor-9291 .elementor-element.elementor-element-abhcs4{font-size:17px;}.elementor-9291 .elementor-element.elementor-element-abhcsm{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhcsp1{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhcsp1n .elementor-heading-title{font-size:21px;}.elementor-9291 .elementor-element.elementor-element-abhcsp1r .elementor-heading-title{font-size:14px;}.elementor-9291 .elementor-element.elementor-element-abhcsp2{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhcsp2n .elementor-heading-title{font-size:21px;}.elementor-9291 .elementor-element.elementor-element-abhcsp2r .elementor-heading-title{font-size:14px;}.elementor-9291 .elementor-element.elementor-element-abhcsp3{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhcsp3n .elementor-heading-title{font-size:21px;}.elementor-9291 .elementor-element.elementor-element-abhcsp3r .elementor-heading-title{font-size:14px;}.elementor-9291 .elementor-element.elementor-element-abhline{--padding-top:60px;--padding-bottom:40px;--padding-left:20px;--padding-right:20px;}.elementor-9291 .elementor-element.elementor-element-abhln1 .elementor-heading-title{font-size:12px;}.elementor-9291 .elementor-element.elementor-element-abhln2 .elementor-heading-title{font-size:30px;}.elementor-9291 .elementor-element.elementor-element-abhln3{font-size:17px;}.elementor-9291 .elementor-element.elementor-element-abhpc1{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhpc1n .elementor-heading-title{font-size:24px;}.elementor-9291 .elementor-element.elementor-element-abhpc1h .elementor-heading-title{font-size:19px;}.elementor-9291 .elementor-element.elementor-element-abhpc2{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhpc2n .elementor-heading-title{font-size:24px;}.elementor-9291 .elementor-element.elementor-element-abhpc2h .elementor-heading-title{font-size:19px;}.elementor-9291 .elementor-element.elementor-element-abhpc3{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhpc3n .elementor-heading-title{font-size:24px;}.elementor-9291 .elementor-element.elementor-element-abhpc3h .elementor-heading-title{font-size:19px;}.elementor-9291 .elementor-element.elementor-element-abhproof{--padding-top:40px;--padding-bottom:60px;--padding-left:20px;--padding-right:20px;}.elementor-9291 .elementor-element.elementor-element-abhpr1 .elementor-heading-title{font-size:12px;}.elementor-9291 .elementor-element.elementor-element-abhpr2 .elementor-heading-title{font-size:30px;}.elementor-9291 .elementor-element.elementor-element-abhpr3{font-size:17px;}.elementor-9291 .elementor-element.elementor-element-abhsthome{--width:100%;--flex-direction:column-reverse;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-9291 .elementor-element.elementor-element-abhstbhome{--width:100%;--padding-top:28px;--padding-bottom:32px;--padding-left:24px;--padding-right:24px;}.elementor-9291 .elementor-element.elementor-element-abhstehome .elementor-heading-title{font-size:12px;}.elementor-9291 .elementor-element.elementor-element-abhsthhome .elementor-heading-title{font-size:26px;}.elementor-9291 .elementor-element.elementor-element-abhstqhome{font-size:16.5px;}.elementor-9291 .elementor-element.elementor-element-abhstmhome{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhstpro{--width:100%;--flex-direction:column-reverse;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-9291 .elementor-element.elementor-element-abhstbpro{--width:100%;--padding-top:28px;--padding-bottom:32px;--padding-left:24px;--padding-right:24px;}.elementor-9291 .elementor-element.elementor-element-abhstepro .elementor-heading-title{font-size:12px;}.elementor-9291 .elementor-element.elementor-element-abhsthpro .elementor-heading-title{font-size:26px;}.elementor-9291 .elementor-element.elementor-element-abhstqpro{font-size:16.5px;}.elementor-9291 .elementor-element.elementor-element-abhstmpro{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhvhh{--width:100%;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhvhhh .elementor-heading-title{font-size:17px;}.elementor-9291 .elementor-element.elementor-element-abhvci{--width:100%;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhvhci .elementor-heading-title{font-size:17px;}.elementor-9291 .elementor-element.elementor-element-abhvsp{--width:100%;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9291 .elementor-element.elementor-element-abhvhsp .elementor-heading-title{font-size:17px;}.elementor-9291 .elementor-element.elementor-element-abhtrade{--padding-top:60px;--padding-bottom:60px;--padding-left:20px;--padding-right:20px;}.elementor-9291 .elementor-element.elementor-element-abhtrc{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhtr1 .elementor-heading-title{font-size:12px;}.elementor-9291 .elementor-element.elementor-element-abhtr2 .elementor-heading-title{font-size:30px;}.elementor-9291 .elementor-element.elementor-element-abhtr3{font-size:17px;}.elementor-9291 .elementor-element.elementor-element-abhtrm{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhsp1{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhsp1l .elementor-heading-title{font-size:19px;}.elementor-9291 .elementor-element.elementor-element-abhsp2{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhsp2l .elementor-heading-title{font-size:19px;}.elementor-9291 .elementor-element.elementor-element-abhsp3{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhsp3l .elementor-heading-title{font-size:19px;}.elementor-9291 .elementor-element.elementor-element-abhsp4{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhsp4l .elementor-heading-title{font-size:19px;}.elementor-9291 .elementor-element.elementor-element-abhappr{--padding-top:60px;--padding-bottom:60px;--padding-left:20px;--padding-right:20px;}.elementor-9291 .elementor-element.elementor-element-abhapc{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhap1 .elementor-heading-title{font-size:12px;}.elementor-9291 .elementor-element.elementor-element-abhap2 .elementor-heading-title{font-size:29px;}.elementor-9291 .elementor-element.elementor-element-abhap3{font-size:17px;}.elementor-9291 .elementor-element.elementor-element-abhap3b{font-size:17px;}.elementor-9291 .elementor-element.elementor-element-abhapr{--width:100%;--gap:26px 0px;--row-gap:26px;--column-gap:0px;}.elementor-9291 .elementor-element.elementor-element-abhcHD{--padding-top:60px;--padding-bottom:28px;--padding-left:20px;--padding-right:20px;}.elementor-9291 .elementor-element.elementor-element-abhch1 .elementor-heading-title{font-size:12px;}.elementor-9291 .elementor-element.elementor-element-abhch2 .elementor-heading-title{font-size:31px;}.elementor-9291 .elementor-element.elementor-element-abhcGR{--padding-top:0px;--padding-bottom:60px;--padding-left:20px;--padding-right:20px;}.elementor-9291 .elementor-element.elementor-element-abhc1c{--padding-top:28px;--padding-bottom:30px;--padding-left:24px;--padding-right:24px;}.elementor-9291 .elementor-element.elementor-element-abhc1h .elementor-heading-title{font-size:22px;}.elementor-9291 .elementor-element.elementor-element-abhc1p{font-size:16px;}.elementor-9291 .elementor-element.elementor-element-abhc2c{--padding-top:28px;--padding-bottom:30px;--padding-left:24px;--padding-right:24px;}.elementor-9291 .elementor-element.elementor-element-abhc2h .elementor-heading-title{font-size:22px;}.elementor-9291 .elementor-element.elementor-element-abhc2p{font-size:16px;}.elementor-9291 .elementor-element.elementor-element-abhc3c{--padding-top:28px;--padding-bottom:30px;--padding-left:24px;--padding-right:24px;}.elementor-9291 .elementor-element.elementor-element-abhc3h .elementor-heading-title{font-size:22px;}.elementor-9291 .elementor-element.elementor-element-abhc3p{font-size:16px;}.elementor-9291 .elementor-element.elementor-element-abhc4c{--padding-top:28px;--padding-bottom:30px;--padding-left:24px;--padding-right:24px;}.elementor-9291 .elementor-element.elementor-element-abhc4h .elementor-heading-title{font-size:22px;}.elementor-9291 .elementor-element.elementor-element-abhc4p{font-size:16px;}}@media(min-width:768px){.elementor-9291 .elementor-element.elementor-element-abhheropn{--width:46%;}.elementor-9291 .elementor-element.elementor-element-abhheromd{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhstory{--content-width:1600px;}.elementor-9291 .elementor-element.elementor-element-abhbt1{--width:31%;}.elementor-9291 .elementor-element.elementor-element-abhbt2{--width:31%;}.elementor-9291 .elementor-element.elementor-element-abhbt3{--width:31%;}.elementor-9291 .elementor-element.elementor-element-abhvent{--content-width:1600px;}.elementor-9291 .elementor-element.elementor-element-abhvem{--width:46%;}.elementor-9291 .elementor-element.elementor-element-abhvec{--width:54%;}.elementor-9291 .elementor-element.elementor-element-abhcs{--content-width:1600px;}.elementor-9291 .elementor-element.elementor-element-abhcsc{--width:48%;}.elementor-9291 .elementor-element.elementor-element-abhcsm{--width:52%;}.elementor-9291 .elementor-element.elementor-element-abhcsp1{--width:33.33%;}.elementor-9291 .elementor-element.elementor-element-abhcsp2{--width:33.33%;}.elementor-9291 .elementor-element.elementor-element-abhcsp3{--width:33.33%;}.elementor-9291 .elementor-element.elementor-element-abhline{--content-width:1600px;}.elementor-9291 .elementor-element.elementor-element-abhpc1{--width:31%;}.elementor-9291 .elementor-element.elementor-element-abhpc2{--width:31%;}.elementor-9291 .elementor-element.elementor-element-abhpc3{--width:31%;}.elementor-9291 .elementor-element.elementor-element-abhproof{--content-width:1600px;}.elementor-9291 .elementor-element.elementor-element-abhsthome{--width:50%;}.elementor-9291 .elementor-element.elementor-element-abhstbhome{--width:52%;}.elementor-9291 .elementor-element.elementor-element-abhstmhome{--width:48%;}.elementor-9291 .elementor-element.elementor-element-abhstpro{--width:50%;}.elementor-9291 .elementor-element.elementor-element-abhstbpro{--width:52%;}.elementor-9291 .elementor-element.elementor-element-abhstmpro{--width:48%;}.elementor-9291 .elementor-element.elementor-element-abhvhh{--width:33.33%;}.elementor-9291 .elementor-element.elementor-element-abhvci{--width:33.33%;}.elementor-9291 .elementor-element.elementor-element-abhvsp{--width:33.33%;}.elementor-9291 .elementor-element.elementor-element-abhtrade{--content-width:1600px;}.elementor-9291 .elementor-element.elementor-element-abhtrc{--width:54%;}.elementor-9291 .elementor-element.elementor-element-abhtrm{--width:46%;}.elementor-9291 .elementor-element.elementor-element-abhsp1{--width:25%;}.elementor-9291 .elementor-element.elementor-element-abhsp2{--width:25%;}.elementor-9291 .elementor-element.elementor-element-abhsp3{--width:25%;}.elementor-9291 .elementor-element.elementor-element-abhsp4{--width:25%;}.elementor-9291 .elementor-element.elementor-element-abhappr{--content-width:1600px;}.elementor-9291 .elementor-element.elementor-element-abhapc{--width:48%;}.elementor-9291 .elementor-element.elementor-element-abhapr{--width:52%;}.elementor-9291 .elementor-element.elementor-element-abhcHD{--content-width:1600px;}.elementor-9291 .elementor-element.elementor-element-abhcGR{--content-width:1600px;}}@media(max-width:1024px) and (min-width:768px){.elementor-9291 .elementor-element.elementor-element-abhheropn{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhheromd{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhbt1{--width:31%;}.elementor-9291 .elementor-element.elementor-element-abhbt2{--width:31%;}.elementor-9291 .elementor-element.elementor-element-abhbt3{--width:31%;}.elementor-9291 .elementor-element.elementor-element-abhvem{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhvec{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhcsc{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhcsm{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhcsp1{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhcsp2{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhcsp3{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhpc1{--width:47%;}.elementor-9291 .elementor-element.elementor-element-abhpc2{--width:47%;}.elementor-9291 .elementor-element.elementor-element-abhpc3{--width:47%;}.elementor-9291 .elementor-element.elementor-element-abhstbhome{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhstmhome{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhstbpro{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhstmpro{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhtrc{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhtrm{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhsp1{--width:50%;}.elementor-9291 .elementor-element.elementor-element-abhsp2{--width:50%;}.elementor-9291 .elementor-element.elementor-element-abhsp3{--width:50%;}.elementor-9291 .elementor-element.elementor-element-abhsp4{--width:50%;}.elementor-9291 .elementor-element.elementor-element-abhapc{--width:100%;}.elementor-9291 .elementor-element.elementor-element-abhapr{--width:100%;}}/* Start custom CSS *//* ============================================================
   ATTIC BREEZE HOMEPAGE — page-scoped design system
   Scoped to .ab-home, which sits on each of the nine top-level
   Elementor containers on this page only. Layout that Elementor
   can express (direction, widths, gaps, padding, colour, type)
   is set in Elementor; this file carries the visual system.
   Built 2026-09-21.
   ============================================================ */

.ab-home{
  --abh-navy:#051124;
  --abh-navy2:#152745;
  --abh-orange:#EF7D48;
  --abh-green:#5C9D5E;
  --abh-green-d:#487A49;
  --abh-blue:#346AC1;
  --abh-ink:#3E3E3E;
  --abh-line:#CACBCC;
  --abh-rule:rgba(255,255,255,.18);
  --abh-r:4px;
  --abh-shadow:0 18px 44px rgba(5,17,36,.13);

  /* ---- the page content rail: ONE source of truth --------------------
     Sections 02-11 each carry these same numbers in their own Elementor
     container settings (boxed 1600 / padding 32 / 24 / 20) and measure
     identically at every breakpoint. These variables exist so anything
     COMPUTED in CSS - the hero below, and anything added later - derives
     from the rail instead of restating it. Change the rail here. */
  --abh-rail:1600px;
  --abh-gut:32px;

  /* ---- shared mobile swipe rail ----
     One card width, one gap, one snap behaviour for every phone carousel on
     this page. 86% leaves a visible sliver of the next card inside the content
     rail, so the first slide still starts on the page's left edge. */
  --abh-mcard:86%;
  --abh-mgap:14px;
}
@media (max-width:1024px){ .ab-home{ --abh-gut:24px } }
@media (max-width:767px){  .ab-home{ --abh-gut:20px } }

/* ---- widget spacing reset: this page drives its own rhythm ----
   NOTE: do not reintroduce a `.elementor-widget:not(:last-child)` reset here.
   The pseudo-class pushes it to (0,3,0), which silently outranks every
   `.ab-home .ab-thing{margin-bottom:...}` rule below and zeroes the whole
   spacing scale. The single-class reset is enough. */
.ab-home .elementor-widget{ margin:0 }
.ab-home p{ margin:0 }
.ab-home .elementor-widget-text-editor p + p{ margin-top:16px }

/* ---- shared type rhythm ---- */
.ab-home .ab-eyebrow.elementor-widget{ margin-bottom:18px }
.ab-home .ab-h2.elementor-widget{ margin-bottom:22px; text-wrap:balance }
.ab-home .ab-h2--tight .elementor-heading-title{ max-width:19ch }
.ab-home .ab-h2--center .elementor-heading-title{ max-width:22ch; margin-inline:auto }
/* The repeated class is a specificity weight, not a typo. Elementor caps every
   widget in a container with

       .e-con.e-con > .e-con-inner > .elementor-widget{ max-width:100% }

   which is (0,4,0). Written the obvious way these two rules are (0,2,0) and
   lost silently, so the section decks ran the full content rail - about 120
   characters a line at the old 1200px rail and 168 at 1600. Doubling .ab-deck
   makes them (0,4,0) as well and page CSS loads after frontend.min.css, so
   they win on source order. It is deliberately NOT written as
   ".ab-home .e-con-inner > .ab-deck" because some decks sit one container
   deeper and that body.elementor-page-9291 would skip them.

   Same family of trap as the widget margin rules above: the page looked merely
   wide rather than broken, and only a measured getComputedStyle().maxWidth
   coming back "100%" gave it away. Measure; do not read the body.elementor-page-9291 and
   assume. A first attempt at (0,3,0) also lost. */
.ab-home .ab-deck.ab-deck.elementor-widget{ max-width:60ch }
.ab-home .ab-deck--center.ab-deck--center.elementor-widget{ margin-inline:auto; text-align:center; max-width:66ch }

/* ---- buttons: the canonical Attic Breeze pill ------------------------
   Measured off Contractor Programs 8770 at 1440, not read off its CSS header.
   The rendered 8770 CTA is:

       border-radius 999px | border 2px solid | padding 13px 22px
       min-height 48 (52 at <=767) | Poppins 700 / 13.5px / line-height 1.25
       letter-spacing 1.1px | UPPERCASE | inline-flex centred
       transition background-color/border-color/color .2s   <- no transform

   Radius, padding, border width and typography are set on each button widget
   in Elementor (see RADIUS_PILL in lib.js) so the team can edit them there,
   and because Elementor writes per-widget rules at (0,4,0) that this file
   could not override anyway. This block carries only what a widget control
   cannot express: shared height, flex centring, the phone step, hover.

   HOVER IS FLAT, deliberately. There is a site-wide
   .elementor-button:hover{transform:translateY(-2px);box-shadow:...}; 8770
   cancels it for its CTAs with
   .ab-loyalty .ab-cta .elementor-button:hover{transform:none;box-shadow:none}
   and the homepage now does the same. The polish is colour inversion, already
   declared per section below. */
.ab-home .ab-cta .elementor-button,
.ab-home .ab-ctabox .elementor-button{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:48px; line-height:1.25;
  white-space:normal; overflow-wrap:break-word;
  text-decoration:none;
  transition:background-color .2s ease, color .2s ease, border-color .2s ease;
}
/* Stated for :hover AND :focus so the site-wide lift cannot reach either. */
.ab-home .ab-cta .elementor-button:hover,
.ab-home .ab-cta .elementor-button:focus,
.ab-home .ab-ctabox .elementor-button:hover,
.ab-home .ab-ctabox .elementor-button:focus{ transform:none; box-shadow:none }
/* .ab-cta--noshift used to be the one CTA pinned against the hover lift.
   Every CTA is flat now, so only its focus treatment is still needed: the
   global orange focus ring is invisible on an orange button, so the fill flips
   first and the ring then reads at 3:1 against the white face. The class stays
   on the widget - it is referenced in the tree - it just no longer has a
   transform to fight. */
.ab-home.ab-trade .ab-cta--noshift .elementor-button:focus-visible{
  background-color:#fff; border-color:#fff; color:var(--abh-navy);
}
.ab-home .ab-cta--green .elementor-button:hover{ background-color:var(--abh-navy); border-color:var(--abh-navy); color:#fff }
.ab-home.ab-trade .ab-cta:not(.ab-cta--ghost) .elementor-button:hover{ background-color:#fff; border-color:#fff; color:var(--abh-navy) }
.ab-home.ab-appr .ab-cta .elementor-button:hover,
.ab-home.ab-appr .ab-cta .elementor-button:focus,
.ab-home.ab-appr .ab-cta .elementor-button:focus-visible,
.ab-home.ab-appr .ab-cta .elementor-button:active{ background-color:var(--abh-navy); border-color:var(--abh-navy); color:#fff }
.ab-home .ab-cta--ghost .elementor-button{ background-color:transparent }
.ab-home .ab-cta--ghost .elementor-button:hover{ background-color:#fff; border-color:#fff; color:var(--abh-navy) }

/* ---- secondary CTA boxes ----------------------------------------
   One contained treatment, three context variants. No underline, no
   arrow glyph, no shadow, no gradient. Colours/padding/radius are set
   on each button in Elementor so the team can edit them there; this
   block only carries the states and the shared geometry. */
.ab-home .ab-ctabox .elementor-button-text{ text-decoration:none }

/* on white sections (product cards) */
.ab-home .ab-ctabox--light .elementor-button:hover{
  background-color:var(--abh-navy); border-color:var(--abh-navy); color:#fff;
}
/* hero: lighter than a primary CTA, still a contained action */
.ab-home .ab-ctabox--hero .elementor-button:hover{
  background-color:#fff; border-color:#fff; color:var(--abh-navy);
}

/* ---- focus visibility (keyboard) ---- */
.ab-home a:focus-visible,
.ab-home .elementor-button:focus-visible{ outline:3px solid var(--abh-orange); outline-offset:3px }

/* ============================================================
   01 · HERO
   ============================================================ */
/* isolation:isolate CONTAINS the hero's internal layering. Without it the two
   z-index:2 rules below (the navy panel, and the gradient on .ab-hero__media
   ::after) land in the ROOT stacking context - and the desktop nav dropdown is
   ALSO capped at z-index 2, because Elementor ships
   .elementor-nav-menu{ position:relative; z-index:2 } and <header> itself is
   position:static / z-index:auto, so it creates no layer of its own.

   Three elements at z-index 2 in one context means DOM ORDER breaks the tie,
   and the hero comes after the header - so the navy panel and its gradient
   painted straight over the open dropdown. That is the "white menu goes dark
   over the hero" bug.

   Isolating here fixes it at the parent level: the panel and the gradient keep
   their z-index 2 relative to EACH OTHER inside the hero, while the hero as a
   whole sits at z-index auto in the root and can never reach the nav's layer.
   Nothing moves visually.

   Do not "fix" this by raising z-index on the panel or the gradient - that
   re-enters the root context and the bug comes straight back. */
.ab-home.ab-hero{ position:relative; overflow:hidden; isolation:isolate }
.ab-home .ab-hero__panel{ position:relative; z-index:2 }
.ab-home .ab-hero__rule.elementor-widget{ margin:0 0 50px }
.ab-home .ab-hero__eyebrow.elementor-widget{ margin-bottom:8px }
.ab-home .ab-hero__h1.elementor-widget{ margin-bottom:26px }
/* THE MASTER ALIGNMENT RULE. The hero copy starts on the same vertical line
   as every section below it, by deriving its inset from the shared rail:
   120px at 1440, 40px at 1280, 32px at 1025 - always identical to the boxed
   1200 container the rest of the page uses. 100% resolves against the hero
   row = the page content box, so this is scrollbar-safe, unlike 100vw.

   The width compensation is not decoration. Moving the inset from 48px to
   120px at 1440 would have cost the panel 72px of measure and pushed the H1
   from two lines to four. Growing the panel by the same delta keeps the text
   column - and therefore the headline's line count and the hero's height -
   exactly what it was; the photograph absorbs the difference.

   TRADE-OFF, on the record: this used to align to the LOGO INK in header 1402
   (1600px boxed + 32px padding + 16px ink offset = a fixed 48px). The header
   rail is 1600 and the page rail is 1200, so the hero can sit on one or the
   other, never both. It now follows the page. To put it back on the logo,
   restore: padding-left:max(48px, calc((100% - 1600px) / 2 + 16px)) and drop
   the width line. */
@media (min-width:1025px){
  .ab-home .elementor-element.ab-hero__panel{
    padding-left:max(var(--abh-gut), calc((100% - var(--abh-rail)) / 2));
    width:calc(46% + max(var(--abh-gut), (100% - var(--abh-rail)) / 2) - 48px);
  }
}
.ab-home .ab-hero__panel > .elementor-widget{ width:100%; max-width:540px }
.ab-home .ab-hero__h1 .elementor-heading-title{ max-width:13ch }
/* ATTEMPTED and REVERTED 2026-09-22: these values were moved to Elementor's
   Advanced > Margin control (_margin) on abhhe1/abhhe2/abhhe3 (and abhhe5, the
   hero CTA, which was removed on 2026-09-23). Elementor 4.2.4 generated NO
   margin CSS for them even after a forced ElementorCoreFilesCSSPost rebuild -
   measured 0px/18px instead of 8/50/26, and the hero header gap regressed
   14px -> 32px. The control key is
   right (_margin, confirmed against page 58 which does generate margin CSS), so
   something about these widgets stops it emitting. Do not retry without checking
   the RENDERED margin afterwards.

   Eyebrow + green rule read as ONE header group: 8px widget margin + the
   divider's own 6px top padding = 14px, down from 20 + 26 = 46px.

   The 26px came from the divider's Elementor "gap" control, which emits
   .elementor-804 .elementor-element.elementor-element-abhhe2 .elementor-divider
   at (0,4,0). A page-CSS rule here cannot reach it - there used to be a
   padding-block:0 on this element at (0,3,0) and it had never once applied.
   Set the gap in Elementor (sections.js), not here.

   That gap is symmetric, so the rule's margin-bottom absorbs the 20px it lost
   underneath: 6 + 50 keeps the rule-to-H1 distance at the same 56px. */
.ab-home .ab-hero__deck p{ max-width:44ch }

.ab-home .ab-hero__media{ position:relative; min-height:420px }
.ab-home .ab-hero__media .elementor-widget-html,
.ab-home .ab-hero__media .elementor-widget-html > .elementor-widget-container,
.ab-home .ab-hero__pic{ height:100%; width:100%; display:block }
/* 1491x1055 in a 769x689 desktop frame: cover is height-driven, so the full
   height shows and 1177px of the 1491 width does. 50% centres the house, keeps
   BOTH roof fans in frame and leaves the white wing on the left where the navy
   join gradient sits. The old 68% was framed for the previous photograph. */
/* Desktop framing: 1800x768 in a 1440x660 hero is a 0.859 height-driven cover,
   so 1547 of the scaled width shows and ~53px is trimmed each side. The baked
   transition lands at ~47% of the viewport, which is where the copy panel ends
   - so the crop must stay centred or the gradient walks away from the copy. */
.ab-home .ab-hero__pic img{
  width:100%; height:100%; object-fit:cover; object-position:50% 50%; display:block;
}
/* REMOVED 2026-09-23: a 90px navy->transparent gradient used to sit on the
   left edge of the photograph. Against a 769px photo that is a hard edge, not
   a blend - it is what read as the harsh vertical line. The replacement
   desktop file has the transition painted into it (measured: solid #070A15 to
   x=750, resolving to photography by x=950 of 1800), so keeping this overlay
   would stack a second gradient on top of the intended one.
   It was already display:none at <=1024, so nothing about mobile changes. */

/* ---- desktop: the photograph is the whole hero -----------------------
   The new composition contains the navy, the gradient AND the house, so it
   spans the full hero and the copy sits on top of its dark left third. Taking
   it out of flow keeps the hero's height governed by the copy panel exactly as
   before (660px at 1440), and keeps the panel's rail alignment untouched.
   z-index 0 puts it under the panel's z-index 2 - inside .ab-hero's
   isolation:isolate, so the nav-dropdown layering fix still holds. */
@media (min-width:1025px){
  .ab-home .ab-hero__media{
    position:absolute; inset:0; width:100%; min-height:0; z-index:0;
  }
}
/* the explore cue: a contained CTA, deliberately lighter than a primary button */

/* ============================================================
   02 · WHAT'S HAPPENING UP THERE — one left-to-right sequence
   1 home works harder → 2 heat builds above → 3 it shows up below
   Desktop/large tablet: three equal columns.
   Under 900px: a CSS-only scroll-snap rail (no slider library).
   ============================================================ */
.ab-home.ab-story{ scroll-margin-top:118px }
.ab-home .ab-story__intro{ margin-bottom:60px; width:100% }

.ab-home .ab-beats{ width:100% }
.ab-home .ab-beat{ min-width:0 }
.ab-home .ab-beat__img.elementor-widget{ margin-bottom:30px }
.ab-home .ab-beat__img img{
  width:100%; aspect-ratio:4/5; object-fit:cover; display:block; border-radius:var(--abh-r);
}
.ab-home .ab-beat__eyebrow.elementor-widget{ margin-bottom:18px }
.ab-home .ab-beat__title.elementor-widget{ margin-bottom:14px }
.ab-home .ab-beat__title .elementor-heading-title{ max-width:20ch }
.ab-home .ab-beat__copy p{ max-width:38ch }


/* closing thought: short centred rule, then the conclusion */

/* ============================================================
   03 · GIVE TRAPPED HEAT SOMEWHERE TO GO
   ============================================================ */
.ab-home .ab-vent__img img{
  width:100%; height:auto; display:block;
  border-radius:var(--abh-r); box-shadow:0 22px 52px rgba(5,17,36,.14);
}
.ab-home .ab-vent__body .ab-deck.elementor-widget{ margin-bottom:34px }

/* ============================================================
   04 · CORESHIELD
   ============================================================ */
.ab-home .ab-cs__mark.elementor-widget{ margin-bottom:26px }
.ab-home .ab-cs__mark img{ height:52px; width:auto; display:block }
.ab-home .ab-cs__img img{ width:100%; height:auto; display:block; border-radius:var(--abh-r) }
.ab-home .ab-cs__pillars{ margin-top:86px; border-top:1px solid var(--abh-rule); width:100% }
.ab-home .ab-pillar{ padding:34px 34px 0 34px; border-right:1px solid var(--abh-rule) }
.ab-home .ab-pillar:first-child{ padding-left:0 }
.ab-home .ab-pillar:last-child{ border-right:0; padding-right:0 }
.ab-home .ab-pillar__icon.elementor-widget{ margin-bottom:20px }
.ab-home .ab-pillar__icon img{ height:64px; width:auto; display:block }
.ab-home .ab-pillar__name.elementor-widget{ margin-bottom:8px }
.ab-home .ab-pillar__role.elementor-widget{ margin-bottom:16px }

/* ============================================================
   05 · ONE STANDARD. THREE OPTIONS FOR YOUR ROOF.
   ============================================================ */
.ab-home .ab-line__head{ margin-bottom:60px; width:100% }
.ab-home .ab-pcard{
  border:1px solid var(--abh-line); border-radius:var(--abh-r);
  padding:0 0 30px; background:#fff; overflow:hidden;
  transition:border-color .2s ease;
}
.ab-home .ab-pcard:hover{ border-color:#9AA3AF }
.ab-home .ab-pcard__media{ width:100% }
.ab-home .ab-pcard__img img{ width:100%; aspect-ratio:4/3; object-fit:cover; display:block }
.ab-home .ab-pcard > .elementor-widget{ padding-inline:30px }
.ab-home .ab-pcard__name.elementor-widget{ margin-top:30px; margin-bottom:12px }
.ab-home .ab-pcard__label.elementor-widget{ margin-bottom:18px; position:relative; padding-top:14px }
.ab-home .ab-pcard__label::before{
  content:""; position:absolute; top:0; left:30px; width:30px; height:3px; background:var(--abh-orange);
}
.ab-home .ab-pcard__head.elementor-widget{ margin-bottom:14px; min-height:2.6em }
.ab-home .ab-pcard__copy.elementor-widget{ margin-bottom:30px }
.ab-home .ab-pcard__link.elementor-widget{ margin-top:auto }

/* ============================================================
   06 · FOUR PERSPECTIVES — editorial proof panel
   ============================================================ */
/* No text-align: left is the default and .ab-line__head above carries none
   either. The intro is left-aligned at every width now, desktop included. */
.ab-home .ab-proof__head{ margin-bottom:60px; width:100% }

.ab-home .ab-proof__grid{ width:100% }

/* ---- the two story panels --------------------------------------------
   One composition per panel, not a text widget beside an image widget: the
   photograph bleeds to the panel edge and a short white seam fades it into
   the copy. Everything here is scoped to .ab-st / .ab-val.

   --abst-accent is the only thing that differs between the two panels, so
   the eyebrow rule, the CTA arrow and the hover colour all follow from one
   declaration per side. */
.ab-home .ab-proof__hl{ color:var(--abh-orange) }

/* The section background is white now, so a white panel on white needs an edge
   to read as a panel. A single hairline - not a card border, no radius, no
   shadow. */
.ab-home .ab-st{
  overflow:hidden; --abst-accent:var(--abh-navy);
  border:1px solid rgba(5,17,36,.09);
}
.ab-home .ab-st--home{ --abst-accent:var(--abh-green-d) }
.ab-home .ab-st--pro{  --abst-accent:var(--abh-orange) }

.ab-home .ab-st__tag.elementor-widget{ margin-bottom:20px }
.ab-home .ab-st__tag .elementor-heading-title::after{
  content:''; display:inline-block; vertical-align:middle;
  width:52px; height:2px; margin-left:14px; background:var(--abst-accent);
}
.ab-home .ab-st__head.elementor-widget{ margin-bottom:20px }
.ab-home .ab-st__quote.elementor-widget{ margin-bottom:20px }
/* quotes:none because the quotation marks are IN the copy - an editor can see
   and change them. A CSS open-quote would be invisible in the text field. */
.ab-home .ab-st__quote blockquote{ margin:0; padding:0; border:0; quotes:none }
.ab-home .ab-st__who.elementor-widget{ margin-bottom:24px }
.ab-home .ab-st__who p{ margin:0 }
.ab-home .ab-st__who strong{ color:var(--abh-navy); font-weight:600 }
.ab-home .ab-st__who span{ opacity:.7 }

/* margin-top:auto keeps both buttons on one baseline however long the quotes
   are. Everything else about the button comes from btnSolid and the shared
   .ab-cta rules, so it matches the other homepage buttons exactly. */
.ab-home .ab-st__cta.elementor-widget{ margin-top:auto; margin-bottom:0 }

.ab-home .ab-st__media{ position:relative; overflow:hidden; min-height:430px }
.ab-home .ab-st__img.elementor-widget{ height:100%; margin-bottom:0 }
.ab-home .ab-st__img .elementor-widget-container,
.ab-home .ab-st__img figure,
.ab-home .ab-st__img .elementor-image{ height:100%; margin:0 }
.ab-home .ab-st__img img{ width:100%; height:100%; object-fit:cover; display:block }
/* Framed against the WIDER 318x578 media column (was 286x533): the panel now
   splits 52/48 instead of 57/43, so each window shows more of its source.
   Homeowner: 552px of 1200 = 46% (was 41%). 50% centres the room on the
   window light, the olive tree, the lamp and the bed rather than pushing right.
   Re-rendered at 42/50/58/66 at the real frame size before choosing. */
.ab-home .ab-st--home .ab-st__img img{ object-position:50% 50% }
/* Professional: 1721x914 landscape in a portrait frame, so cover is
   height-driven - the full height shows and 504px of the 1721 width does
   (was 444). 64% lands that window on the fan front, both hands, the drill
   and the installer's head. Re-rendered at 50/56/62/68. */
.ab-home .ab-st--pro  .ab-st__img img{ object-position:64% 50% }
/* the seam. 86px of panel-white fading out, which is enough to soften the
   edge of the photograph without reading as a gradient over it. */
.ab-home .ab-st__media::before{
  content:''; position:absolute; top:0; bottom:0; left:0; width:86px; z-index:1;
  background:linear-gradient(to right,#fff 0%,rgba(255,255,255,0) 100%);
  pointer-events:none;
}

/* ---- the three brand reinforcers ---- */
.ab-home .ab-proof__vals{ width:100%; margin-top:76px }
.ab-home .ab-val{ --abst-accent:var(--abh-navy) }
.ab-home .ab-val--hh{ --abst-accent:var(--abh-green-d) }
.ab-home .ab-val--ci{ --abst-accent:var(--abh-orange) }
/* AB Blue. The brief asked for #3993D5 "Sky", which the brand standard lists
   as retired and in no Attic Breeze property; --abh-blue (#346AC1) is the
   approved secondary and is already this page's blue. Flagged in the report. */
.ab-home .ab-val--sp{ --abst-accent:var(--abh-blue) }
.ab-home .ab-val + .ab-val{ border-left:1px solid rgba(5,17,36,.10) }
.ab-home .ab-val:first-child{ padding-left:0 }
.ab-home .ab-val:last-child{ padding-right:0 }
.ab-home .ab-val__ico.elementor-widget{ flex:0 0 auto; width:auto; margin-bottom:0 }
.ab-home .ab-val__ico svg{ width:52px; height:52px; display:block; color:var(--abst-accent) }
.ab-home .ab-val__h.elementor-widget{ margin-bottom:10px }
.ab-home .ab-val__p p{ margin:0 }

/* ============================================================
   07 · WE DON'T STOP AT THE PRODUCT
   ============================================================ */
.ab-home .ab-trade__media{ position:relative }
.ab-home .ab-trade__img img{
  width:100%; aspect-ratio:4/3; object-fit:cover; display:block; border-radius:var(--abh-r);
}
.ab-home .ab-support{
  margin-top:90px; padding-top:56px; border-top:1px solid var(--abh-rule); width:100%;
}
.ab-home .ab-support__item{ padding:0 32px; border-right:1px solid var(--abh-rule) }
.ab-home .ab-support__item:first-child{ padding-left:0 }
.ab-home .ab-support__item:last-child{ border-right:0; padding-right:0 }
.ab-home .ab-support__tag.elementor-widget{ margin-bottom:18px }
.ab-home .ab-support__lead.elementor-widget{ margin-bottom:16px }
.ab-home .ab-trade__btns{ margin-top:32px }

/* ============================================================
   08 · BUILT FOR DEMANDING ROOFS
   ============================================================ */
/* ---- approvals: a continuous certification loop (pure CSS, no library) ----
   The track carries the four marks TWICE and slides 0 -> -50%. At -50% the
   duplicate set occupies exactly the first set's starting position, so the
   restart is invisible.

   That identity only holds while both halves are identical in width, which is
   why the spacing is margin-right on EVERY mark, last one included. A flex
   'gap' on the track would leave a half-gap at the seam and the loop would
   visibly jump once per cycle.

   Marks are sized by HEIGHT with width:auto, so every lockup shares one cap
   height and none is distorted - their natural widths (2.40 to 3.32 aspect)
   just differ. max-width:none is required because the theme sets
   img{max-width:100%} and these are wider than their flex item. */
.ab-home .ab-appr__loop{
  /* Mark cap height, 92 -> 120 -> 150px (+63% on the original).
     150 is the practical ceiling for this column. The widest lockup (IBHS,
     aspect 3.321) renders 498px inside a 636px window, leaving 138px of slack
     so it can never sit hard against both edges; the best pair still shows
     207px of the second mark. At 160 the worst pair drops to a 37px sliver and
     at 170+ the widest mark starts cropping. Recompute before raising it:
       markWidth = capHeight x 3.321   must stay well under the column width.

     Duration rises with size so travel stays ~23px/s - a longer track at the
     same duration moves FASTER, which is exactly what makes a marquee cheap.
       duration = setWidth / 23 */
  --abappr-h:150px;
  --abappr-gap:68px;
  --abappr-dur:87s;
  overflow:hidden;
  width:100%;
  /* 26 rather than 32: brings the first mark row up nearer the headline it sits
     beside without shrinking the marks. The old value existed to keep the loop
     BOX at exactly 214px, which the CTA's margin offset used to be derived
     from; the grid removed that dependency, so the box is now simply
     cap + 52 and each cap band below sets only its height and duration. */
  /* Top only. The space BELOW the marks is the right column's row-gap, so that
     gap is the real badge-to-CTA distance instead of 26px of padding plus
     whatever the gap says. */
  padding:26px 0 0;
  /* A marquee is never showing whole marks at its edges - there is always one
     part-way in and one part-way out. Hard-cut, that reads as a broken image:
     on the right the cut landed exactly on the page's right content rail, so
     the strip looked like it ran off the layout, and on the left a mark was
     sliced mid-lockup against nothing.

     The fade dissolves marks at both ends instead, which is what makes the
     motion read as continuous rather than clipped. It is applied to this
     viewport only and changes no artwork, no geometry and no timing.

     Both ends, not just the right: an earlier asymmetric version kept the left
     hard on the theory that it doubled as the column's alignment line, and the
     frozen frame showed a Miami-Dade lockup chopped in half there. The
     alignment line is carried by the CTA and the disclaimer, whose left edges
     are real and crisp; the loop does not need to hold it with a guillotine.

     80px is about a fifth of the narrowest lockup - enough to dissolve, short
     enough that a mark is at full opacity well before the middle of the
     window. */
  --abappr-fade:80px;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 var(--abappr-fade),#000 calc(100% - var(--abappr-fade)),transparent 100%);
  mask-image:linear-gradient(to right,transparent 0,#000 var(--abappr-fade),#000 calc(100% - var(--abappr-fade)),transparent 100%);
  /* the loop is a scroll container on phones and under reduced motion, so it
     is focusable; that focus also pauses the animation */
  outline-offset:6px;
}
.ab-home .ab-appr__loop:focus-visible{ outline:3px solid var(--abh-orange) }



.ab-home .ab-appr__track{
  display:flex;
  width:max-content;
  animation:ab-apprloop var(--abappr-dur) linear infinite;
  will-change:transform;
}
@keyframes ab-apprloop{
  from{ transform:translateX(0) }
  to  { transform:translateX(-50%) }
}

/* pause while someone is inspecting a mark, or while anything in the right
   column (the CTA) holds keyboard focus */
.ab-home .ab-appr__loop:hover .ab-appr__track,
.ab-home .ab-appr__right:focus-within .ab-appr__track{ animation-play-state:paused }

.ab-home .ab-appr__set{
  display:flex; align-items:center;
  margin:0; padding:0; list-style:none;
}
.ab-home .ab-appr__mark{
  flex:0 0 auto;
  display:flex; align-items:center; justify-content:flex-start;
  height:var(--abappr-h);
  margin-right:var(--abappr-gap);
}
.ab-home .ab-appr__mark img{
  height:var(--abappr-h); width:auto; max-width:none; display:block;
}

/* No margin-top: the space above the CTA is the right column's own Elementor
   row-gap (34 desktop / 28 tablet / 26 phone). One control, visible in the
   editor, instead of a margin here that had to be zeroed again per breakpoint. */
.ab-home .ab-appr__foot{ align-items:flex-start; width:100% }

/* ---- approvals: two columns, both top-aligned -----------------------------
   The section is one grid: 48fr / 52fr with a 64px column gap, and the two
   columns are ordinary Elementor flex containers that both START on the same
   line. Left runs eyebrow / headline / paragraph one / paragraph two; right
   runs certification rail / CTA / disclaimer.

   This replaced a subgrid that mapped the right column's items onto the left
   column's text rows, so the rail sat on the headline's row and the CTA on
   paragraph two's. It aligned exactly - measured 0px - but it also pinned the
   right-hand group to the BOTTOM of the section: the rail could not start until
   the headline's row did, which left the whole right side sitting 35px low
   against the left block with dead space above it. Top-aligning the two columns
   is the simpler reading of "the same grid" and needs no row plumbing at all.

   Consequences, so nobody re-derives them later:
     - the CTA is no longer on paragraph two's text line. That was a deliberate
       trade: the right column's internal stack (rail -> CTA -> disclaimer) now
       governs, and the cross-column line does not.
     - vertical spacing inside the right column is an ELEMENTOR row-gap on the
       container (34 desktop / 28 tablet / 26 phone), not a margin in here.
     - both columns are plain containers again: selectable, nameable, and with
       no CSS deciding what row anything lands on.
   -------------------------------------------------------------------------- */
@media (min-width:1025px){
  .ab-home.ab-appr > .e-con-inner{
    display:grid;
    /* 48/52 in fr, not %. Percentages would be taken of the FULL inner width and
       then the 64px gap added on top, overflowing the rail by 64px; fr divides
       what is left after the gap, so the two columns plus the gap are exactly
       the master rail. Left 622px / right 675px at a 1440 viewport. */
    grid-template-columns:48fr 52fr;
    column-gap:64px;
    /* stretch, with the LEFT column bottom-anchored (its Elementor justify is
       flex-end). That makes the bottoms resolve together without a single
       measured offset, and it is self-correcting in both directions:

         left column SHORTER than right (wide screens - 291 vs 331 at 1843)
           -> the left block drops to sit on the right column's baseline, so
              "...most demanding building environments." lands level with
              "...specifying or installing."
         left column TALLER than right (narrow desktop - 463 vs 333 at 1100)
           -> there is nothing to drop into, the left simply fills its box and
              the layout is exactly as it was.

       A fixed "push the left down 40px" would have been right at 1843 and wrong
       everywhere else: the delta measured +40 at 1843, +8 at 1600, -23 at 1366,
       -79 at 1200 and -130 at 1100. It crosses zero around 1560. */
    align-items:stretch;
  }
  /* Right column stays top-anchored so the certification rail keeps its
     position - only the left block moves. */
  .ab-home.ab-appr .ab-appr__right{ justify-content:flex-start }
  /* width:auto because Elementor still carries 48%/52% on these containers for
     the editor and the tablet path; inside an already-48fr track that would
     apply a second time. */
  .ab-home.ab-appr .ab-appr__copy,
  .ab-home.ab-appr .ab-appr__right{ width:auto }
  /* The disclaimer fills the right column instead of the 62ch reading measure
     used elsewhere. At 13.5px that measure came to 526px inside a 674px column,
     which read as a narrow scrap dropped under a 358px button rather than the
     column's closing block. */
  .ab-home.ab-appr .ab-appr__note p{ max-width:none }
}
/* Paragraph one keeps the 16px it had when both paragraphs still shared one
   text-editor widget. This sits OUTSIDE the desktop query on purpose: the split
   into two widgets applies at every width, so on tablet and phone - where there
   is no grid at all - the two paragraphs ran together with no gap. Elementor
   zeroes widget margin-block-end at (0,3,0), hence .elementor-widget here. */
.ab-home.ab-appr .ab-appr__p1.elementor-widget{ margin-bottom:16px }

/* Cap height shrinks on narrower desktops so the widest lockup keeps ~100px of
   horizontal slack. It is no longer tied to any foot offset - only to how much
   room the mark has inside the loop window.

   These bands OVERLAP by design: every one is min-width:1025px (so nothing
   leaks onto tablet or phone) with only a max-width, each narrower than the
   last, so the later rule wins as the screen gets smaller. Do NOT rewrite them
   as adjacent 1139/1140-style pairs. Viewport width is FRACTIONAL under browser
   zoom and Windows display scaling, and a viewport of 1199.5px matches neither
   max-width:1199px nor min-width:1200px - it drops into a 1px hole and falls
   back to the base 150px, which at that width leaves only 33px of slack. That
   is exactly the bug this replaced; the .98 endpoints close it. */
@media (min-width:1025px) and (max-width:1199.98px){   /* rightW ~567 */
  .ab-home.ab-appr .ab-appr__loop{ --abappr-h:140px; --abappr-dur:82s }
}
@media (min-width:1025px) and (max-width:1139.98px){   /* rightW ~533 */
  .ab-home.ab-appr .ab-appr__loop{ --abappr-h:130px; --abappr-dur:77s }
}
@media (min-width:1025px) and (max-width:1079.98px){   /* rightW ~503 */
  .ab-home.ab-appr .ab-appr__loop{ --abappr-h:120px; --abappr-dur:72s }
}
.ab-home .ab-appr__note{ margin-top:24px; opacity:.68 }

/* ---- disclaimer: one line-break's worth of tracking, wide desktop only -----
   The disclaimer already spans 100% of the right column. It broke after "and"
   because the next word, "documentation", is 13 characters: line one needed
   830px and the column gives 799. A 31px shortfall, measured with a nowrap
   probe in the live font.

   13.2px with -0.2px tracking needs 787px - a 12px margin inside the column.
   That is -2.2% on the size and -0.015em on the tracking, which is the
   smallest pair that clears it with room to spare. Measured alternatives, all
   needing 787 for the same result: 13.0/-0.1 and 12.8/0. The size was kept as
   high as possible and the tracking made to do the rest, because a 0.3px size
   step is invisible and 0.7px is not.

   Line-height is pinned to the 21.6px it already computed to, instead of
   inheriting 1.6em of a now-smaller size. The leading is therefore unchanged,
   and so is the block's height - which matters, because the right column's
   height is what the left column bottom-aligns to.

   1680px is where the content rail has finished growing (it caps at 1600, so
   the right column is a constant 799px from here up) and the 12px margin is
   guaranteed. Below it the column is 757px at 1600 and 674 at 1440 - no
   typography this side of unreadable fits "documentation" on line one there,
   so the disclaimer stays at its normal 13.5px and wraps.

   This is page CSS rather than an Elementor control because Elementor would
   need a custom breakpoint at 1680, and breakpoints live in the global kit -
   a site-wide change for one paragraph. NOT white-space:nowrap, which would
   overflow the column. */
@media (min-width:1680px){
  .ab-home.ab-appr .ab-appr__note.elementor-widget p{
    font-size:13.2px;
    letter-spacing:-0.2px;
    line-height:21.6px;
  }
}
.ab-home .ab-appr__note p{ max-width:62ch }
/* The trade section used to widen its two CTAs to 26px a side. Removed with
   the pill system: horizontal padding is 22px everywhere now, which is the
   whole point of standardising it. */

/* ============================================================
   RESPONSIVE  (Elementor breakpoints: tablet <=1024, mobile <=767)
   ============================================================ */
/* ---- three-step rail: 2-up with peek, then 1-up with peek ---- */
/* Shared three-column guard. 31% x3 only clears a 36px gutter once the
   boxed container is ~1100 wide, so between 900 and 1100 BOTH three-up rows
   step the gutter down to 28px. Without this the row wraps 2+1. */
@media (min-width:900px) and (max-width:1100px){
  .ab-home .ab-beats,
  .ab-home .ab-line__grid{ column-gap:28px }
}
@media (max-width:899px){
  .ab-home .ab-beats.elementor-element{ flex-wrap:nowrap }
  .ab-home .ab-beats{
    overflow-x:auto; scroll-snap-type:x mandatory; scroll-padding-inline:24px;
    -webkit-overflow-scrolling:touch; scrollbar-width:none;
    margin-inline:-24px; padding-inline:24px; padding-bottom:6px; width:auto;
  }
  .ab-home .ab-beats::-webkit-scrollbar{ display:none }
  .ab-home .ab-beat{ flex:0 0 44%; scroll-snap-align:start }
  /* The three-step rail turns .ab-beats into a 2-up snap rail from 899px down,
     but the shared [<-] dots [->] row only displays at <=767px - so 768-899 was
     a horizontally scrolling component with no visual affordance. This exposes
     the SAME control row for exactly the band where this rail is active.

     max-width:899.98 (not 899) and no min-width on purpose: a fractional
     viewport of 899.5 matches neither 899 nor 900, and below 768 the general
     .ab-mnav rule already shows the row - so there is no gap at either end.
     The rail script builds the dots at every width already; only display was
     hiding them. */
  .ab-home .ab-story__intro{ margin-bottom:46px }
}
@media (max-width:899.98px){
  .ab-home .ab-beats + .ab-mnav{ display:flex }

  /* ---- the three reinforcers become a swipe rail ------------------------
     Same breakpoint as .ab-beats rather than the 767 the other rails use:
     at 768 the three columns are only 235px wide, which is where the headings
     start breaking badly. The row is in MRAIL_JS's body.elementor-page-9291 list, so the
     arrows and dots are the shared component - no new script. */
  .ab-home .ab-proof__vals{
    display:flex; flex-direction:row; flex-wrap:nowrap; align-items:stretch;
    gap:var(--abh-mgap);
    overflow-x:auto; scroll-snap-type:x mandatory; overscroll-behavior-x:contain;
    scrollbar-width:none; -webkit-overflow-scrolling:touch; padding-bottom:2px;
  }
  .ab-home .ab-proof__vals::-webkit-scrollbar{ display:none }
  .ab-home .ab-proof__vals > .ab-val{
    flex:0 0 var(--abh-mcard); min-width:0; scroll-snap-align:start;
    padding:0; border-left:0;
  }
  .ab-home .ab-proof__vals + .ab-mnav{ display:flex }
}
@media (max-width:767px){
  /* no bleed on phones: every rail on the page stops at the content gutter,
     so the peek is a deliberate sliver rather than a card running off-screen */
  .ab-home .ab-beats{ scroll-padding-inline:0; margin-inline:0; padding-inline:0; width:100% }
  .ab-home .ab-story__intro{ margin-bottom:40px }
}
@media (max-width:599px){
}

@media (max-width:1024px){
  .ab-home .ab-hero__panel > .elementor-widget{ max-width:none }
  .ab-home .ab-hero__media{ min-height:0 }
  /* At 16/10 the frame is wider than the source, so cover shows the full WIDTH
     and crops height - only Y matters here. 38% lifts the band so the two roof
     fans sit clear of the top edge instead of grazing it, and keeps the pool
     from taking the bottom third. Rendered at 38 and 50 before choosing. */
  .ab-home .ab-hero__pic img{ aspect-ratio:16/10; height:auto; object-position:50% 38% }

  .ab-home .ab-vent__media{ max-width:480px }
  .ab-home .ab-pillar{ padding:28px 0 0; border-right:0; border-top:1px solid var(--abh-rule) }
  .ab-home .ab-pillar:first-child{ padding-top:0; border-top:0 }
  .ab-home .ab-cs__pillars{ margin-top:56px; border-top:0 }

  /* Two panels still side by side, but each one stacks (the photo is on top,
     via flex_direction_tablet in Elementor) - a 57% copy column inside a
     ~468px panel is too narrow to set a 26px headline against. */
  .ab-home .ab-st__media{ min-height:0; height:230px }
  .ab-home .ab-st__media::before{ display:none }

  /* Pin the photograph to the top of its panel for the whole tablet range.
     From 768 to 1024 the two panels are still side by side with
     align-items:stretch, so both take the taller one's height, and the panel
     is flex-direction:column-reverse (image above copy). In column-reverse
     main-start is the BOTTOM, so the default packing pushed the leftover space
     to the top - measured at 768 as 108px of white above the professional
     image while the homeowner image started at 1px. flex-end is main-end,
     which is the top. The spare space now falls below the CTA instead, where
     it reads as ordinary card padding.
     Scoped to <=1024 deliberately: above that the panel is flex-direction:row
     and justify-content would push the columns around instead. */
  .ab-home .ab-proof__grid > .ab-st{ justify-content:flex-end }
  .ab-home .ab-proof__vals{ margin-top:56px }
  .ab-home .ab-val__ico svg{ width:46px; height:46px }

  .ab-home .ab-support{ margin-top:66px }
  .ab-home .ab-support__item{ padding:0 28px }
  .ab-home .ab-support__item:nth-child(odd){ padding-left:0 }
  .ab-home .ab-support__item:nth-child(even){ border-right:0; padding-right:0 }
  .ab-home .ab-support__item:nth-child(3){ border-top:1px solid var(--abh-rule); padding-top:38px }
  .ab-home .ab-support__item:nth-child(4){ border-top:1px solid var(--abh-rule); padding-top:38px }

  .ab-home .ab-pcard__head.elementor-widget{ min-height:0 }
}

@media (max-width:767px){

  .ab-home .ab-line__head{ margin-bottom:40px }

  .ab-home .ab-proof__head{ margin-bottom:34px }

  /* ---- the two stories stack; they do NOT swipe -------------------------
     They used to ride the shared rail. Two problems with that, both measured
     at 375 before this change:
       1. one story was hidden until you swiped;
       2. the rail's align-items:stretch forced both panels to the taller
          one's height (806px). The panels are flex-direction:column-reverse
          so the image sits on top - and in column-reverse the free space
          packs to the TOP. The professional panel's content was 671px, so it
          carried 135px of blank white above its image while the homeowner
          panel's image started at 1px. That was the offset, not a padding bug.
     Stacking removes the cause: each panel is its own row at its natural
     height, so both images start at 0. The top-pinning itself lives in the
     <=1024 block above (justify-content:flex-end), which covers phones too and
     is what fixes the same offset at tablet, where the panels are still side
     by side and still equal height. */
  .ab-home .ab-proof__grid{
    display:flex; flex-direction:column; align-items:stretch;
    gap:28px;
    overflow:visible; scroll-snap-type:none;
  }
  .ab-home .ab-proof__grid > .ab-st{
    flex:0 0 auto; width:100%; min-width:0;
  }
  /* One shared image height for BOTH stories, so the two panels read as the
     same component. The source photographs are different shapes (1200x1001
     and 1721x914) so each keeps its own object-position, set further up; the
     frame is identical. */
  .ab-home .ab-st__media{ min-height:0; height:220px }
  .ab-home .ab-st__media::before{ display:none }
  .ab-home .ab-st__tag .elementor-heading-title::after{ width:40px; margin-left:12px }
  .ab-home .ab-proof__vals{ margin-top:48px }
  .ab-home .ab-val__ico svg{ width:46px; height:46px }

  /* Each support item is its own slide, so its eyebrow reads as the label for
     THAT item rather than floating under the section intro. Containment is the
     desktop vertical rule plus its own padding - no new box, no new colour. */
  .ab-home .ab-support__item,
  .ab-home .ab-support__item:nth-child(odd),
  .ab-home .ab-support__item:nth-child(even){
    padding:0 18px 0 0;
    border-right:1px solid var(--abh-rule);
  }
  .ab-home .ab-support__item:nth-child(3),
  .ab-home .ab-support__item:nth-child(4){ border-top:0; padding-top:0 }
  .ab-home .ab-support__item:last-child{ border-right:0; padding-right:0 }
  .ab-home .ab-support{ margin-top:52px; padding-top:40px }

  /* 8770 steps its pills to 52px on phones. Padding stays 13/22 because
     min-height governs either way (13+13+16.875 = 42.9 < 52), so the rendered
     height matches 8770 without a second padding value on every widget. */
  .ab-home .ab-cta .elementor-button,
  .ab-home .ab-ctabox .elementor-button{ min-height:52px }
  .ab-home .ab-cta .elementor-button{ width:100%; justify-content:center }
  .ab-home .ab-trade__btns > .elementor-widget{ width:100% }
  /* card CTAs go full width on phones; the hero cue stays compact */
  .ab-home .ab-pcard__link .elementor-button{ width:100% }


  /* Phones get touch control instead of a ticker: the loop becomes a
     snap rail, the animation stops and the duplicate set is removed so the
     four marks are not repeated inside a manually scrolled list. */
  /* One mark at a time, so matching WIDTH beats matching cap height: every
     lockup fills the slot and each is seen in isolation. Height-matching here
     would peg all four to the widest one's ratio (3.32) and cap them at ~84px.
     Width-matching gives 85-117px at 375 - the artwork is the proof, so it gets
     the room. */
  .ab-home .ab-appr__loop{
    --abappr-gap:14px;
    overflow-x:auto; overflow-y:hidden;
    padding:0;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .ab-home .ab-appr__loop::-webkit-scrollbar{ display:none }
  /* No fade on phones. The desktop fade exists because the marquee's edges are
     an animation artifact; here the loop is a real swipe scroller, so its edges
     are live affordances and a faded one would read as the end of the content.
     (This pair first went into the 768-1024 block by mistake - that band still
     runs the CSS marquee and does want the fade. Check the enclosing @media,
     not the nearest similar-looking rule.) */
  .ab-home .ab-appr__loop{ -webkit-mask-image:none; mask-image:none }
  /* Full-width CTA in the mobile rail, disclaimer flush beneath it.
     The foot's alignment is what does it, not a width override: the foot is a
     flex column with align-items:flex-start, so the button WIDGET shrink-wrapped
     to its text and every width:100% underneath resolved to 100% of that
     358px. Switching the foot to stretch lets the widget fill the rail and the
     button then fills the widget. Measured 390px at 430 and 335px at 375, both
     exactly the mobile content width, with the disclaimer on the same left edge. */
  .ab-home.ab-appr .ab-appr__foot{ align-items:stretch }
  .ab-home.ab-appr .ab-appr__foot .elementor-button{ width:100%; justify-content:center }
  /* The marks must size against the SCROLL BOX, not the track. The track is
     width:max-content, so a percentage on a mark resolves against a
     content-derived width and blows up (78% measured 708px in a 335px rail).
     Collapsing track and set with display:contents makes the marks direct flex
     children of .ab-appr__loop, which has a definite width, so 78% is 78% of
     what the visitor actually sees. */
  .ab-home .ab-appr__loop{ display:flex; align-items:center }
  .ab-home .ab-appr__track{ display:contents; animation:none; will-change:auto }
  .ab-home .ab-appr__set{ display:contents }
  .ab-home .ab-appr__set--dup{ display:none }

  /* ---- auto-motion on phones ----
     Desktop slides a transformed track inside overflow:hidden. That cannot work
     here: a CSS transform and native touch scrolling fight each other, and the
     strip has to stay swipeable. So on phones the same container is a real
     scroller and ab-appr-auto.js drives scrollLeft instead - swipe, momentum and
     auto-motion all live in one mechanism.

     Both of the rules below only apply once the script is actually running
     (it sets data-abappr-auto on <html>), so with JS off, or under reduced
     motion, the strip stays exactly as it was: one set, snapping, manual. */
  html[data-abappr-auto] .ab-home .ab-appr__set--dup{ display:contents }
  /* Snapping fights a continuously scrolling container - it drags the strip back
     to the nearest mark every frame. It comes back the moment auto-motion is off. */
  html[data-abappr-auto] .ab-home .ab-appr__loop{
    scroll-snap-type:none;
    scroll-behavior:auto;
  }
  html[data-abappr-auto] .ab-home .ab-appr__mark{ scroll-snap-align:none }
  .ab-home .ab-appr__mark{
    flex:0 0 84%;
    height:auto;
    justify-content:center;
    scroll-snap-align:start;
  }
  .ab-home .ab-appr__mark img{ width:100%; height:auto; max-width:100% }

  .ab-home .ab-cs__pillars{ margin-top:46px }
  /* each pillar is its own slide; separation is the desktop vertical rule,
     so it stays integrated in the navy section - no card, no new colour. */
  .ab-home .ab-pillar,
  .ab-home .ab-pillar:first-child{
    padding:0 18px 0 0; border-top:0;
    border-right:1px solid var(--abh-rule);
  }
  .ab-home .ab-pillar:last-child{ border-right:0; padding-right:0 }
}

/* ---- motion preferences ---- */
@media (prefers-reduced-motion:reduce){
  .ab-home .ab-cta .elementor-button,
  .ab-home .ab-ctabox .elementor-button{ transition:none }
}

/* ============================================================
/* ============================================================
   EXPERIMENT C · destination grid (2x2, image-led)
   Appended below the live four-card section 09, which is untouched.

   Nothing here invents a type scale or a button. The cards use the
   page's own `.ab-cta` geometry and focus ring; only the fills and
   the hover flip are stated per variant, in the same language the
   rest of the page already uses.
   ============================================================ */

/* ---- the rail --------------------------------------------------------
   A native horizontal scroller with CSS scroll-snap, NOT a slider library.
   Nothing on this page loads Swiper, Slick or Glide (checked on the rendered
   page), and section 02's story rail already uses this pattern, so the touch
   swipe, the momentum and the snapping are the browser's. The script only
   adds arrows, dots and keyboard support on top.
   Stated at .elementor-element so it beats Elementor's display:flex. */
.ab-home .ab-navgrid.elementor-element{
  display:flex;
  /* Elementor containers default to --flex-direction:column. display:grid used
     to mask that; a flex rail must state the row direction itself. */
  flex-direction:row;
  flex-wrap:nowrap;
  align-items:stretch;
  gap:28px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  overscroll-behavior-x:contain;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
  /* overflow-x also clips vertically, which would cut the card hover shadow.
     Pad the scroll box and pull the padding back off with a negative margin. */
  padding-block:6px 20px;
  margin-block:-6px -20px;
}
.ab-home .ab-navgrid::-webkit-scrollbar{ display:none }
.ab-home .ab-navc.elementor-element{
  flex:0 0 calc((100% - 28px) / 2);
  /* A flex item defaults to min-width:auto, i.e. its min-content width. The
     card's stacked phone layout makes that ~950px, which blew the basis wide
     open. The old CSS Grid had minmax(0,1fr) doing this job implicitly. */
  min-width:0;
  scroll-snap-align:start;
}
@media (prefers-reduced-motion:no-preference){
  .ab-home .ab-navgrid.elementor-element{ scroll-behavior:smooth }
}

/* ---- carousel controls ----------------------------------------------- */
.ab-home .ab-navnavw.elementor-widget{ margin-top:34px; margin-bottom:0 }
.ab-home .ab-navnav{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
}
.ab-home .ab-navnav.is-static{ display:none }
.ab-home .ab-navdots{ display:flex; align-items:center; gap:9px }
.ab-home .ab-navdot{
  appearance:none; border:0; padding:0; min-width:0; line-height:1; cursor:pointer;
  width:9px; height:9px; border-radius:50%;
  background:var(--abh-line);
  transition:background-color .2s ease, transform .2s ease;
}
.ab-home .ab-navdot.is-on{ background:var(--abh-navy); transform:scale(1.25) }
.ab-home .ab-navdot:focus-visible{ outline:3px solid var(--abh-orange); outline-offset:3px }
.ab-home .ab-navarrows{ display:flex; align-items:center; gap:10px }
.ab-home .ab-navbtn{
  appearance:none; cursor:pointer;
  /* the kit gives every <button> padding:32px 48px; with border-box that is a
     floor the width cannot go under, so the disc came out 97x65. */
  padding:0; min-width:0; line-height:1;
  width:46px; height:46px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  background:transparent; color:var(--abh-navy);
  border:1px solid rgba(5,17,36,.22);
  transition:background-color .2s ease, border-color .2s ease, color .2s ease, opacity .2s ease;
}
.ab-home .ab-navbtn svg{ width:20px; height:20px; display:block }
.ab-home .ab-navbtn:hover:not(:disabled){
  background:var(--abh-navy); border-color:var(--abh-navy); color:#fff;
}
.ab-home .ab-navbtn:focus-visible{ outline:3px solid var(--abh-orange); outline-offset:3px }
.ab-home .ab-navbtn:disabled{ opacity:.3; cursor:default }

/* ---- the card -------------------------------------------------------- */
.ab-home .ab-navc.elementor-element{
  flex-wrap:nowrap;
  background:#fff;
  border:1px solid rgba(5,17,36,.09);
  border-radius:var(--abh-r);
  overflow:hidden;
  min-height:352px;
  transition:border-color .22s ease, box-shadow .22s ease;
}
@media (hover:hover){
  .ab-home .ab-navc.elementor-element:hover{
    border-color:rgba(5,17,36,.18);
    box-shadow:0 10px 28px rgba(5,17,36,.07);
  }
  .ab-home .ab-navc:hover .ab-navc__img img{ transform:scale(1.035) }
}

/* ---- media half ------------------------------------------------------
   The wrapper owns the box and the image fills it with object-fit. Do NOT
   size the <img> with width/height:auto + max-height — Elementor ships a
   srcset and the density-corrected intrinsic size then wins. */
.ab-home .ab-navc__media.elementor-element{
  flex:0 0 40%;
  width:40%;
  align-self:stretch;
  position:relative;
  background:#EEF1F3;
  overflow:hidden;
}
.ab-home .ab-navc__img.elementor-widget{ margin-bottom:0; height:100% }
.ab-home .ab-navc__img .elementor-widget-container,
.ab-home .ab-navc__img figure,
.ab-home .ab-navc__img .elementor-image{ height:100%; margin:0 }
.ab-home .ab-navc__img img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .4s cubic-bezier(.4,0,.2,1);
}
/* per-image framing, so nothing important sits on a crop line */
.ab-home .ab-navc--home  .ab-navc__img img{ object-position:52% 58% }
/* The curb-mount install shot (9292) is PORTRAIT, 1114x1412, where the old
   contractor image was landscape - so the framing rules change completely.
   Desktop 266x388 and tablet 226x407 are both taller than the source's 0.789
   aspect, so cover uses the FULL height and only crops horizontally: the Y
   value is inert there and 50% centres the man and the fan together.
   The 68% the landscape image needed (it had a baked-in white fade on its left
   third) would now cut his leg off - measured, not assumed. */
.ab-home .ab-navc--trade .ab-navc__img img{ object-position:50% 50% }
.ab-home .ab-navc--res   .ab-navc__img img{ object-position:16% 50% }
/* framed so the navy branding panel on the box sits fully inside the crop */
.ab-home .ab-navc--shop  .ab-navc__img img{ object-position:52% 50% }

/* ---- content half ---------------------------------------------------- */
.ab-home .ab-navc__body.elementor-element{
  flex:1 1 auto;
  width:60%;
  min-width:0;
}
/* category badge: a 40px accent disc with a white 2px-stroke icon, sized so
   it sits on the cap-height of the label beside it. The icons are the site's
   own ab-icon-* set (Lucide, 24 viewBox, 2px stroke). */
.ab-home .ab-navc__badge.elementor-element{ flex-wrap:nowrap; margin-bottom:16px }
.ab-home .ab-navc__tag.elementor-widget{ margin-bottom:0 }
.ab-home .ab-navc__ico.elementor-widget{ margin-bottom:0; flex:0 0 auto; line-height:0 }
.ab-home .ab-navc__ico .elementor-widget-container{ line-height:0 }
.ab-home .ab-navc__ico svg{
  display:block; width:19px; height:19px; color:#fff;
  padding:10.5px; box-sizing:content-box; border-radius:50%;
}
.ab-home .ab-navc--home  .ab-navc__ico svg{ background:var(--abh-green-d) }
.ab-home .ab-navc--trade .ab-navc__ico svg{ background:var(--abh-orange) }
.ab-home .ab-navc--res   .ab-navc__ico svg{ background:var(--abh-navy) }
.ab-home .ab-navc--shop  .ab-navc__ico svg{ background:var(--abh-navy) }
.ab-home .ab-navc__head.elementor-widget{ margin-bottom:12px }
.ab-home .ab-navc__head .elementor-heading-title{ max-width:22ch }
.ab-home .ab-navc__copy.elementor-widget{ margin-bottom:24px }
.ab-home .ab-navc__copy p{ max-width:46ch; margin:0 }
/* The text column is TOP aligned (flex-start), so the icon+label row starts
   at the same distance from the top of every card regardless of how many lines
   its headline runs to. The CTA then bottom-anchors with margin-top:auto - the
   same convention .ab-pcard__link already uses on the lineup cards - so the
   buttons line up too. Vertical centring was what made both rows sit at four
   different heights (badge 35/66/79/93, button 358/327/314/300). */
.ab-home .ab-navc__cta.elementor-widget{ margin-top:auto; margin-bottom:0 }
.ab-home .ab-navc__cta .elementor-button{ align-self:flex-start; white-space:nowrap }

/* CTA states — same vocabulary as the rest of the page's .ab-cta rules.
   .ab-cta--green already flips to navy on hover; the other two are stated
   here so every card behaves the same way. */
.ab-home .ab-cta--navy .elementor-button:hover,
.ab-home .ab-cta--navy .elementor-button:focus-visible{
  background-color:var(--abh-orange); border-color:var(--abh-orange);
}
.ab-home .ab-cta--orange .elementor-button:hover,
.ab-home .ab-cta--orange .elementor-button:focus-visible{
  background-color:var(--abh-navy); border-color:var(--abh-navy);
}

/* The card CTA label is white in EVERY state. Scoped to .ab-navc__cta, which
   only exists in this section, so no other button on the page is touched. */
.ab-home .ab-navc__cta .elementor-button,
.ab-home .ab-navc__cta .elementor-button:hover,
.ab-home .ab-navc__cta .elementor-button:focus,
.ab-home .ab-navc__cta .elementor-button:focus-visible,
.ab-home .ab-navc__cta .elementor-button:active,
.ab-home .ab-navc__cta .elementor-button .elementor-button-text{ color:#fff }

/* ---- tablet: ~1.6 cards, so the next one peeks -----------------------
   Two FULL cards below 1025 would leave the photo about 155px wide, which
   stops reading as photography. A 62% card keeps the image large and the
   peek does the "there is more" work instead.
   width:auto is required: the negative inline margins that bleed the rail to
   the band edges cannot widen a box that Elementor has set to width:100%. */
@media (max-width:1024px){
  .ab-home .ab-navgrid.elementor-element{
    gap:22px;
    /* NOT width:auto. The rail is a flex item of .e-con-inner, and an auto
       width there resolves to fit-content, i.e. the full 4-card strip. State
       the bleed explicitly instead. */
    width:calc(100% + 48px);
    margin-inline:-24px; padding-inline:24px;
    scroll-padding-inline:24px;
  }
  .ab-home .ab-navc.elementor-element{ flex:0 0 62%; min-height:300px }
  .ab-home .ab-navc__media.elementor-element{ flex:0 0 38%; width:38% }
  .ab-home .ab-navc__body.elementor-element{ width:62% }
  .ab-home .ab-navc__copy p{ max-width:60ch }
}

/* ============================================================
   SHARED CAROUSEL CONTROL ROW   [ < ]  * o o  [ > ]
   One look for every carousel on the page. The mobile rails show it only
   under 767px; the approvals carousel shows it at every width. Defined
   outside the media query so both can share it.
   ============================================================ */
.ab-home .ab-mnav{
  display:none;
  align-items:center; justify-content:center; gap:14px;
  margin-top:26px; width:100%;
}
.ab-home .ab-mdots{ display:flex; align-items:center; gap:8px }
.ab-home .ab-mdot{
  appearance:none; border:0; padding:0; min-width:0; line-height:1; cursor:pointer;
  width:8px; height:8px; border-radius:50%;
  background:var(--abh-line);
  transition:background-color .2s ease, transform .2s ease;
}
.ab-home .ab-mdot.is-on{ background:var(--abh-navy); transform:scale(1.3) }
.ab-home .ab-mdot:focus-visible{ outline:3px solid var(--abh-orange); outline-offset:3px }
.ab-home .ab-mbtn{
  appearance:none; cursor:pointer;
  /* the kit gives every <button> padding:32px 48px - a border-box floor */
  padding:0; min-width:0; line-height:1;
  width:40px; height:40px; border-radius:50%; flex:0 0 auto;
  display:inline-flex; align-items:center; justify-content:center;
  background:transparent; color:var(--abh-navy);
  border:1px solid rgba(5,17,36,.22);
  transition:background-color .2s ease, border-color .2s ease, color .2s ease, opacity .2s ease;
}
.ab-home .ab-mbtn svg{ width:17px; height:17px; display:block }
.ab-home .ab-mbtn:hover:not(:disabled){
  background:var(--abh-navy); border-color:var(--abh-navy); color:#fff;
}
.ab-home .ab-mbtn:focus-visible{ outline:3px solid var(--abh-orange); outline-offset:3px }
.ab-home .ab-mbtn:disabled{ opacity:.38; cursor:default }

/* NAVY sections: the shared navy dot and navy arrow are invisible there */
.ab-home.ab-cs .ab-mdot,
.ab-home.ab-trade .ab-mdot{ background:rgba(255,255,255,.34) }
.ab-home.ab-cs .ab-mdot.is-on,
.ab-home.ab-trade .ab-mdot.is-on{ background:#fff }
.ab-home.ab-cs .ab-mbtn,
.ab-home.ab-trade .ab-mbtn{ color:#fff; border-color:rgba(255,255,255,.34) }
.ab-home.ab-cs .ab-mbtn:hover:not(:disabled),
.ab-home.ab-trade .ab-mbtn:hover:not(:disabled){
  background:#fff; border-color:#fff; color:var(--abh-navy);
}


@media (max-width:767px){
  /* comfortable tap targets on phones */
  .ab-home .ab-mbtn{ width:44px; height:44px }
  .ab-home .ab-mbtn svg{ width:18px; height:18px }
}

/* ============================================================
   SHARED MOBILE SWIPE RAILS  (<=767 only)
   The Attic Breeze lineup, Four perspectives and the four support items
   all become horizontal scroll-snap rails on phones. Same card width,
   same gap, same snap, same dots - one system, three rails.

   The rail IS the existing grid container, so the swipe works with NO
   JavaScript; the script only adds the pagination dots. Nothing here
   escapes the media query, so desktop and tablet are untouched.
   ============================================================ */
.ab-home.ab-mrailjs{ display:none }

@media (max-width:767px){
  .ab-home .ab-beats,
  .ab-home .ab-cs__pillars,
  .ab-home .ab-line__grid,
  .ab-home .ab-support{
    display:flex;
    flex-direction:row;
    flex-wrap:nowrap;
    align-items:stretch;
    gap:var(--abh-mgap);
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    overscroll-behavior-x:contain;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
    padding-bottom:2px;
  }
  .ab-home .ab-beats::-webkit-scrollbar,
  .ab-home .ab-cs__pillars::-webkit-scrollbar,
  .ab-home .ab-line__grid::-webkit-scrollbar,
  .ab-home .ab-support::-webkit-scrollbar{ display:none }

  /* min-width:0 matters: a flex item defaults to its min-content width,
     which for these cards is far wider than the basis we want. */
  .ab-home .ab-beats > .ab-beat,
  .ab-home .ab-cs__pillars > .ab-pillar,
  .ab-home .ab-line__grid > .ab-pcard,
  .ab-home .ab-support > .ab-support__item{
    flex:0 0 var(--abh-mcard);
    min-width:0;
    scroll-snap-align:start;
  }

  /* the rails only SHOW the row on phones; its look is defined once, below */
  .ab-home .ab-mnav{ display:flex }

  /* destination carousel: same centred pattern on phones. display:contents
     lifts the two buttons out of their wrapper so order can interleave them
     around the dots - desktop keeps its dots-left / arrows-right row. */
  .ab-home .ab-navnav{ justify-content:center; gap:14px }
  .ab-home .ab-navarrows{ display:contents }
  .ab-home .ab-navdots{ order:2 }
  .ab-home .ab-navbtn[data-abnav="-1"]{ order:1 }
  .ab-home .ab-navbtn[data-abnav="1"]{ order:3 }
  .ab-home .ab-navbtn{ width:38px; height:38px }
  .ab-home .ab-navbtn svg{ width:17px; height:17px }
}
@media (max-width:767px) and (prefers-reduced-motion:no-preference){
  .ab-home .ab-beats,
  .ab-home .ab-cs__pillars,
  .ab-home .ab-line__grid,
  .ab-home .ab-support{ scroll-behavior:smooth }
}

/* ---- phone: one card at a time, next one peeking --------------------- */
@media (max-width:767px){
  .ab-home .ab-navgrid.elementor-element{
    gap:var(--abh-mgap);
    width:100%;
    margin-inline:0; padding-inline:0;
    scroll-padding-inline:0;
  }
  .ab-home .ab-navc.elementor-element{
    flex:0 0 var(--abh-mcard);
    flex-direction:column;
    flex-wrap:nowrap;
    min-height:0;
  }
  .ab-home .ab-navnavw.elementor-widget{ margin-top:26px }
  .ab-home .ab-navbtn{ width:44px; height:44px }
  .ab-home .ab-navc__media.elementor-element{
    flex:0 0 auto; width:100%; height:196px;
  }
  /* The phone frame is the only LANDSCAPE one (334x196), so here the portrait
     contractor shot crops vertically instead - it shows a 654px band of a
     1412px image, 46% of it. At the desktop 50% that band lands on his back
     and the fan with his head cut off; 10% keeps the cap, the torso, both arms
     and the top edge of the fan. Rendered at every value from 0 to 75% before
     picking it. The other three cards are unaffected. */
  .ab-home .ab-navc--trade .ab-navc__img img{ object-position:50% 10% }
  .ab-home .ab-navc__body.elementor-element{ width:100% }
  .ab-home .ab-navc__head .elementor-heading-title{ max-width:none }
  .ab-home .ab-navc__copy p{ max-width:none }
  .ab-home .ab-navc__cta .elementor-button{ width:100%; justify-content:center }
}

@media (prefers-reduced-motion:reduce){
  .ab-home .ab-navc.elementor-element,
  .ab-home .ab-navc__img img{ transition:none }
  .ab-home .ab-navc:hover .ab-navc__img img{ transform:none }
}



/* ---- certification loop: tablet sizing and reduced motion ---- */
@media (min-width:768px) and (max-width:1024px){
  /* stacked at this width, so no cross-column alignment applies here */
  .ab-home .ab-appr__loop{ --abappr-h:130px; --abappr-gap:76px; --abappr-dur:78s; padding:20px 0 }
}

/* Reduced motion: no automatic loop at all. The marks stay in a static row
   that is still reachable horizontally by scroll, touch or keyboard, and the
   duplicate set is dropped so each approval appears exactly once. */
@media (prefers-reduced-motion:reduce){
  .ab-home .ab-appr__track{ animation:none; will-change:auto }
  .ab-home .ab-appr__set--dup{ display:none }
  .ab-home .ab-appr__loop{
    overflow-x:auto; overflow-y:hidden;
    scroll-snap-type:x proximity;
    scrollbar-width:none;
  }
  .ab-home .ab-appr__loop::-webkit-scrollbar{ display:none }
  .ab-home .ab-appr__mark{ scroll-snap-align:start }
}

/* ============================================================
   HOMEPAGE NAV ACCENT  (migrated out of Novamira, 2026-09-22)
   Was emitted by the sandbox module ab-homeowner-green.php, whose only job on
   this page was this one hover colour. Moving it here removes the homepage's
   last page-specific Novamira dependency; the module keeps serving the four
   homeowner pages, where it does much more.

   On the homepage the Homeowners item is WHITE by default (the header's own
   styling) and turns AB sage on hover/focus. Menu item 4000 = "Homeowners".
   !important is required: Elementor's kit writes the nav link colour with
   higher specificity than a page stylesheet can reach.
   ============================================================ */
/* No scoping class: the nav lives in the HEADER, outside every .ab-home
   container, and this stylesheet only loads on page 804 - the file is the scope. */
li.menu-item-4000:hover > a,
li.menu-item-4000:focus-within > a,
li.menu-item-4000:hover > a .sub-arrow,
li.menu-item-4000:hover > a .sub-arrow svg,
li.menu-item-4000:focus-within > a .sub-arrow svg{
  color:#5C9D5E !important; fill:#5C9D5E !important;
}/* End custom CSS */