.elementor-8770 .elementor-element.elementor-element-loyhead{--display:flex;--min-height:600px;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:64px;--padding-bottom:60px;--padding-left:32px;--padding-right:32px;}.elementor-8770 .elementor-element.elementor-element-loyhead:not(.elementor-motion-effects-element-type-background), .elementor-8770 .elementor-element.elementor-element-loyhead > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#051124;background-image:url("https://atticbreeze.com/wp-content/uploads/2026/08/Installer-Programs-Attic-Breeze-Hero-5-opt.jpg");background-position:center center;background-repeat:no-repeat;background-size:cover;}.elementor-8770 .elementor-element.elementor-element-loyheadw{--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:10px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loyhead1.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyhead1 .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:1.8px;color:#EF7D48;}.elementor-8770 .elementor-element.elementor-element-loyhead2.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyhead2 .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:48px;font-weight:800;text-transform:uppercase;line-height:1.08em;letter-spacing:-0.5px;color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loyhead3.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyhead3{font-family:"Poppins", Sans-serif;font-size:18px;line-height:1.6em;color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loyhead3m.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyhead3m{font-family:"Poppins", Sans-serif;font-size:18px;line-height:1.6em;color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loyhead4{--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:26px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loyhead5 .elementor-button{background-color:#EF7D48;fill:#FFFFFF;color:#FFFFFF;border-style:solid;border-color:#EF7D48;}.elementor-8770 .elementor-element.elementor-element-loyhead5 .elementor-button:hover, .elementor-8770 .elementor-element.elementor-element-loyhead5 .elementor-button:focus{background-color:#FFFFFF;color:#051124;border-color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loyhead5.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyhead5 .elementor-button:hover svg, .elementor-8770 .elementor-element.elementor-element-loyhead5 .elementor-button:focus svg{fill:#051124;}.elementor-8770 .elementor-element.elementor-element-loywrap{--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-8770 .elementor-element.elementor-element-loyjumpc{--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-8770 .elementor-element.elementor-element-loyjumpw.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loychoose{--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:84px;--padding-bottom:84px;--padding-left:32px;--padding-right:32px;}.elementor-8770 .elementor-element.elementor-element-loychoose:not(.elementor-motion-effects-element-type-background), .elementor-8770 .elementor-element.elementor-element-loychoose > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#F0F2F4;}.elementor-8770 .elementor-element.elementor-element-loychh{--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-8770 .elementor-element.elementor-element-loychhe.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loychhe .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:#EF7D48;}.elementor-8770 .elementor-element.elementor-element-loychhh.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loychhh .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:42px;font-weight:800;line-height:1.1em;letter-spacing:-0.4px;color:#051124;}.elementor-8770 .elementor-element.elementor-element-loychhl.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loychhl{font-family:"Poppins", Sans-serif;font-size:19px;line-height:1.6em;color:#3E3E3E;}.elementor-8770 .elementor-element.elementor-element-loychgrid{--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:40px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loychb{--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-8770 .elementor-element.elementor-element-loychbm{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--margin-top:0px;--margin-bottom:26px;--margin-left:0px;--margin-right:0px;--padding-top:4px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loychbmi.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loychbmi img{width:380px;}.elementor-8770 .elementor-element.elementor-element-loychbe.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loychbe .elementor-heading-title{font-family:"Poppins", Sans-serif;}.elementor-8770 .elementor-element.elementor-element-loyd1q.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyd1q .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:14px;font-weight:500;text-transform:none;font-style:italic;line-height:1.4em;letter-spacing:0px;}.elementor-8770 .elementor-element.elementor-element-loychbn.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loychbn .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:27px;font-weight:800;line-height:1.12em;letter-spacing:-0.4px;color:#051124;}.elementor-8770 .elementor-element.elementor-element-loychbs.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loychbs{font-family:"Poppins", Sans-serif;}.elementor-8770 .elementor-element.elementor-element-loyd1sub.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyd1sub{font-family:"Poppins", Sans-serif;font-size:15px;line-height:1.6em;}.elementor-8770 .elementor-element.elementor-element-loychba{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:12px 12px;--row-gap:12px;--column-gap:12px;--padding-top:24px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loychbg.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loychbg{font-family:"Poppins", Sans-serif;}.elementor-8770 .elementor-element.elementor-element-loychbl.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loychbl .elementor-button{font-family:"Poppins", Sans-serif;font-size:13.5px;font-weight:700;text-transform:uppercase;letter-spacing:1.1px;}.elementor-8770 .elementor-element.elementor-element-loychc{--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-8770 .elementor-element.elementor-element-loychcm{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--margin-top:0px;--margin-bottom:26px;--margin-left:0px;--margin-right:0px;--padding-top:4px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loychcmi.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loychcmi img{width:380px;}.elementor-8770 .elementor-element.elementor-element-loychce.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loychce .elementor-heading-title{font-family:"Poppins", Sans-serif;}.elementor-8770 .elementor-element.elementor-element-loyd2q.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyd2q .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:14px;font-weight:500;text-transform:none;font-style:italic;line-height:1.4em;letter-spacing:0px;}.elementor-8770 .elementor-element.elementor-element-loychcn.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loychcn .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:27px;font-weight:800;line-height:1.12em;letter-spacing:-0.4px;color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loychcs.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loychcs{font-family:"Poppins", Sans-serif;}.elementor-8770 .elementor-element.elementor-element-loyd2sub.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyd2sub{font-family:"Poppins", Sans-serif;font-size:15px;line-height:1.6em;}.elementor-8770 .elementor-element.elementor-element-loychca{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:12px 12px;--row-gap:12px;--column-gap:12px;--padding-top:24px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loychcg.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loychcg{font-family:"Poppins", Sans-serif;}.elementor-8770 .elementor-element.elementor-element-loychcl.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loychcl .elementor-button{font-family:"Poppins", Sans-serif;font-size:13.5px;font-weight:700;text-transform:uppercase;letter-spacing:1.1px;}.elementor-8770 .elementor-element.elementor-element-loychp{--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-8770 .elementor-element.elementor-element-loychpm{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--margin-top:0px;--margin-bottom:26px;--margin-left:0px;--margin-right:0px;--padding-top:4px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loychpmi.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loychpmi img{width:380px;}.elementor-8770 .elementor-element.elementor-element-loychpe.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loychpe .elementor-heading-title{font-family:"Poppins", Sans-serif;}.elementor-8770 .elementor-element.elementor-element-loyd3q.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyd3q .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:14px;font-weight:500;text-transform:none;font-style:italic;line-height:1.4em;letter-spacing:0px;}.elementor-8770 .elementor-element.elementor-element-loychpn.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loychpn .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:27px;font-weight:800;line-height:1.12em;letter-spacing:-0.4px;color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loychps.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loychps{font-family:"Poppins", Sans-serif;}.elementor-8770 .elementor-element.elementor-element-loyd3sub.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyd3sub{font-family:"Poppins", Sans-serif;font-size:15px;line-height:1.6em;}.elementor-8770 .elementor-element.elementor-element-loychpa{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:12px 12px;--row-gap:12px;--column-gap:12px;--padding-top:24px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loychpg.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loychpg{font-family:"Poppins", Sans-serif;}.elementor-8770 .elementor-element.elementor-element-loychpl.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loychpl .elementor-button{font-family:"Poppins", Sans-serif;font-size:13.5px;font-weight:700;text-transform:uppercase;letter-spacing:1.1px;}.elementor-8770 .elementor-element.elementor-element-loyboost{--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;--padding-top:0px;--padding-bottom:0px;--padding-left:32px;--padding-right:32px;}.elementor-8770 .elementor-element.elementor-element-loyboost:not(.elementor-motion-effects-element-type-background), .elementor-8770 .elementor-element.elementor-element-loyboost > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loybhead{--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:40px;--padding-bottom:40px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loybhrow{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:center;--gap:18px 24px;--row-gap:18px;--column-gap:24px;--flex-wrap:nowrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loybhl{--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:14px 0px;--row-gap:14px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loybms.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loybms .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:2.4px;}.elementor-8770 .elementor-element.elementor-element-loybnb{--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:6px 0px;--row-gap:6px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loybmname.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loybmname .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:42px;font-weight:800;text-transform:none;line-height:1.06em;letter-spacing:-0.4px;color:#051124;}.elementor-8770 .elementor-element.elementor-element-loybmp.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loybmp .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:21px;font-weight:600;text-transform:none;line-height:1.35em;letter-spacing:-0.2px;color:#3E3E3E;}.elementor-8770 .elementor-element.elementor-element-loybval{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:flex-start;--gap:6px 0px;--row-gap:6px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loybvn.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loybvn{text-align:start;}.elementor-8770 .elementor-element.elementor-element-loybvn .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:36px;font-weight:800;line-height:1em;letter-spacing:-1.2px;color:#051124;}.elementor-8770 .elementor-element.elementor-element-loybvl.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loybvl{text-align:start;}.elementor-8770 .elementor-element.elementor-element-loybvl .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:11px;font-weight:700;text-transform:uppercase;line-height:1.35em;letter-spacing:1.6px;color:#5C636D;}.elementor-8770 .elementor-element.elementor-element-loybchev{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loybbody{--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-8770 .elementor-element.elementor-element-loybin{--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-8770 .elementor-element.elementor-element-loybml.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loybml{font-family:"Poppins", Sans-serif;font-size:19px;line-height:1.6em;}.elementor-8770 .elementor-element.elementor-element-loybg{--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:32px 44px;--row-gap:32px;--column-gap:44px;--flex-wrap:wrap;}.elementor-8770 .elementor-element.elementor-element-loybgl{--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-8770 .elementor-element.elementor-element-loybw{--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:8px 8px;--row-gap:8px;--column-gap:8px;--padding-top:24px;--padding-bottom:24px;--padding-left:26px;--padding-right:26px;}.elementor-8770 .elementor-element.elementor-element-loybwk.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loybwk .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1.7px;color:#051124;}.elementor-8770 .elementor-element.elementor-element-loybwu.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loybwu{font-family:"Poppins", Sans-serif;font-size:16px;line-height:1.5em;color:#051124;}.elementor-8770 .elementor-element.elementor-element-loybh.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loybh .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:24px;font-weight:800;text-transform:none;line-height:1.18em;letter-spacing:-0.3px;color:#051124;}.elementor-8770 .elementor-element.elementor-element-loybl.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loybl{font-family:"Poppins", Sans-serif;font-size:16px;line-height:1.5em;color:#3E3E3E;}.elementor-8770 .elementor-element.elementor-element-loybk1.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loybk1 .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1.6px;color:#565C66;}.elementor-8770 .elementor-element.elementor-element-loybp.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loybp{font-family:"Poppins", Sans-serif;font-size:14px;line-height:1.45em;color:#3E3E3E;}.elementor-8770 .elementor-element.elementor-element-loybgr{--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-8770 .elementor-element.elementor-element-loybe{--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:4px 4px;--row-gap:4px;--column-gap:4px;--padding-top:28px;--padding-bottom:28px;--padding-left:28px;--padding-right:28px;}.elementor-8770 .elementor-element.elementor-element-loybek.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loybek .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1.7px;color:#051124;}.elementor-8770 .elementor-element.elementor-element-loybeb.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loybeb .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:46px;font-weight:800;line-height:1em;letter-spacing:-1.6px;color:#051124;}.elementor-8770 .elementor-element.elementor-element-loybeu.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loybeu .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:1.4px;color:#6F7680;}.elementor-8770 .elementor-element.elementor-element-loybep.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loybep{font-family:"Poppins", Sans-serif;font-size:15px;line-height:1.6em;color:#6F7680;}.elementor-8770 .elementor-element.elementor-element-loybs.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loybs{font-family:"Poppins", Sans-serif;color:#3E3E3E;}.elementor-8770 .elementor-element.elementor-element-loybcta{--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-8770 .elementor-element.elementor-element-loybb1 .elementor-button{background-color:#EF7D48;fill:#FFFFFF;color:#FFFFFF;border-style:solid;border-color:#EF7D48;}.elementor-8770 .elementor-element.elementor-element-loybb1 .elementor-button:hover, .elementor-8770 .elementor-element.elementor-element-loybb1 .elementor-button:focus{background-color:#051124;color:#FFFFFF;border-color:#051124;}.elementor-8770 .elementor-element.elementor-element-loybb1.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loybb1 .elementor-button:hover svg, .elementor-8770 .elementor-element.elementor-element-loybb1 .elementor-button:focus svg{fill:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loybb2 .elementor-button{background-color:rgba(255,255,255,0);fill:#051124;color:#051124;border-style:solid;border-color:#051124;}.elementor-8770 .elementor-element.elementor-element-loybb2 .elementor-button:hover, .elementor-8770 .elementor-element.elementor-element-loybb2 .elementor-button:focus{background-color:#051124;color:#FFFFFF;border-color:#051124;}.elementor-8770 .elementor-element.elementor-element-loybb2.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loybb2 .elementor-button:hover svg, .elementor-8770 .elementor-element.elementor-element-loybb2 .elementor-button:focus svg{fill:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loybtools{--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-8770 .elementor-element.elementor-element-loybk2.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loybk2 .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1.6px;color:#565C66;}.elementor-8770 .elementor-element.elementor-element-loybt{--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-8770 .elementor-element.elementor-element-loybt1 .elementor-button{background-color:#051124;fill:#FFFFFF;color:#FFFFFF;border-style:solid;border-color:#051124;}.elementor-8770 .elementor-element.elementor-element-loybt1 .elementor-button:hover, .elementor-8770 .elementor-element.elementor-element-loybt1 .elementor-button:focus{background-color:#EF7D48;color:#FFFFFF;border-color:#EF7D48;}.elementor-8770 .elementor-element.elementor-element-loybt1.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loybt1 .elementor-button:hover svg, .elementor-8770 .elementor-element.elementor-element-loybt1 .elementor-button:focus svg{fill:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loybt2 .elementor-button{background-color:#051124;fill:#FFFFFF;color:#FFFFFF;border-style:solid;border-color:#051124;}.elementor-8770 .elementor-element.elementor-element-loybt2 .elementor-button:hover, .elementor-8770 .elementor-element.elementor-element-loybt2 .elementor-button:focus{background-color:#EF7D48;color:#FFFFFF;border-color:#EF7D48;}.elementor-8770 .elementor-element.elementor-element-loybt2.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loybt2 .elementor-button:hover svg, .elementor-8770 .elementor-element.elementor-element-loybt2 .elementor-button:focus svg{fill:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loybr > .elementor-widget-container{margin:24px 0px 0px 0px;}.elementor-8770 .elementor-element.elementor-element-loybr.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loybr{font-family:"Poppins", Sans-serif;font-size:15px;font-weight:400;line-height:1.65em;color:#6F7680;}.elementor-8770 .elementor-element.elementor-element-loycert{--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;--padding-top:0px;--padding-bottom:0px;--padding-left:32px;--padding-right:32px;}.elementor-8770 .elementor-element.elementor-element-loycert:not(.elementor-motion-effects-element-type-background), .elementor-8770 .elementor-element.elementor-element-loycert > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#244984;}.elementor-8770 .elementor-element.elementor-element-loychead{--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:40px;--padding-bottom:40px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loychrow{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:center;--gap:18px 24px;--row-gap:18px;--column-gap:24px;--flex-wrap:nowrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loychl{--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:14px 0px;--row-gap:14px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loycms.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loycms .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:2.4px;}.elementor-8770 .elementor-element.elementor-element-loycnb{--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:6px 0px;--row-gap:6px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loycmname.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loycmname .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:42px;font-weight:800;text-transform:none;line-height:1.06em;letter-spacing:-0.4px;color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loycmpp.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loycmpp .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:21px;font-weight:600;text-transform:none;line-height:1.35em;letter-spacing:-0.2px;color:rgba(255,255,255,.82);}.elementor-8770 .elementor-element.elementor-element-loycval{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:flex-start;--gap:6px 0px;--row-gap:6px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loycvn.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loycvn{text-align:start;}.elementor-8770 .elementor-element.elementor-element-loycvn .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:36px;font-weight:800;line-height:1em;letter-spacing:-1.2px;color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loycvl.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loycvl{text-align:start;}.elementor-8770 .elementor-element.elementor-element-loycvl .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:11px;font-weight:700;text-transform:uppercase;line-height:1.35em;letter-spacing:1.6px;color:rgba(255,255,255,.72);}.elementor-8770 .elementor-element.elementor-element-loycchev{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loycbody{--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-8770 .elementor-element.elementor-element-loycin{--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-8770 .elementor-element.elementor-element-loycml.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loycml{font-family:"Poppins", Sans-serif;font-size:19px;line-height:1.6em;}.elementor-8770 .elementor-element.elementor-element-loycg{--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:32px 44px;--row-gap:32px;--column-gap:44px;--flex-wrap:wrap;}.elementor-8770 .elementor-element.elementor-element-loycgl{--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-8770 .elementor-element.elementor-element-loycw{--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:8px 8px;--row-gap:8px;--column-gap:8px;--padding-top:24px;--padding-bottom:24px;--padding-left:26px;--padding-right:26px;}.elementor-8770 .elementor-element.elementor-element-loycwk.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loycwk .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1.7px;color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loycwu.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loycwu{font-family:"Poppins", Sans-serif;font-size:16px;line-height:1.5em;color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loych.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loych .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:24px;font-weight:800;text-transform:none;line-height:1.18em;letter-spacing:-0.3px;color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loycl.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loycl{font-family:"Poppins", Sans-serif;font-size:16px;line-height:1.5em;color:rgba(255,255,255,.86);}.elementor-8770 .elementor-element.elementor-element-loyck1.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyck1 .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1.6px;color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loycp.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loycp{font-family:"Poppins", Sans-serif;font-size:14px;line-height:1.45em;color:rgba(255,255,255,.86);}.elementor-8770 .elementor-element.elementor-element-loycgr{--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-8770 .elementor-element.elementor-element-loyce{--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:4px 4px;--row-gap:4px;--column-gap:4px;--padding-top:28px;--padding-bottom:28px;--padding-left:28px;--padding-right:28px;}.elementor-8770 .elementor-element.elementor-element-loycek.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loycek .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1.7px;color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loyceb.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyceb .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:46px;font-weight:800;line-height:1em;letter-spacing:-1.6px;color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loyceu.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyceu .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:1.4px;color:rgba(255,255,255,.72);}.elementor-8770 .elementor-element.elementor-element-loycep.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loycep{font-family:"Poppins", Sans-serif;font-size:15px;line-height:1.6em;color:rgba(255,255,255,.72);}.elementor-8770 .elementor-element.elementor-element-loycs.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loycs{font-family:"Poppins", Sans-serif;color:rgba(255,255,255,.86);}.elementor-8770 .elementor-element.elementor-element-loyccta{--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-8770 .elementor-element.elementor-element-loycb1 .elementor-button{background-color:#EF7D48;fill:#FFFFFF;color:#FFFFFF;border-style:solid;border-color:#EF7D48;}.elementor-8770 .elementor-element.elementor-element-loycb1 .elementor-button:hover, .elementor-8770 .elementor-element.elementor-element-loycb1 .elementor-button:focus{background-color:#FFFFFF;color:#051124;border-color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loycb1.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loycb1 .elementor-button:hover svg, .elementor-8770 .elementor-element.elementor-element-loycb1 .elementor-button:focus svg{fill:#051124;}.elementor-8770 .elementor-element.elementor-element-loycb2 .elementor-button{background-color:rgba(255,255,255,0);fill:#FFFFFF;color:#FFFFFF;border-style:solid;border-color:rgba(255,255,255,0.55);}.elementor-8770 .elementor-element.elementor-element-loycb2 .elementor-button:hover, .elementor-8770 .elementor-element.elementor-element-loycb2 .elementor-button:focus{background-color:#EF7D48;color:#FFFFFF;border-color:#EF7D48;}.elementor-8770 .elementor-element.elementor-element-loycb2.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loycb2 .elementor-button:hover svg, .elementor-8770 .elementor-element.elementor-element-loycb2 .elementor-button:focus svg{fill:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loycr > .elementor-widget-container{margin:24px 0px 0px 0px;}.elementor-8770 .elementor-element.elementor-element-loycr.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loycr{font-family:"Poppins", Sans-serif;font-size:15px;font-weight:400;line-height:1.65em;color:rgba(255,255,255,.72);}.elementor-8770 .elementor-element.elementor-element-loycmore{--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-8770 .elementor-element.elementor-element-loyck3.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyck3 .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1.6px;color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loycvx{--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:16px 16px;--row-gap:16px;--column-gap:16px;}.elementor-8770 .elementor-element.elementor-element-loycv1{--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:8px 8px;--row-gap:8px;--column-gap:8px;--padding-top:22px;--padding-bottom:22px;--padding-left:22px;--padding-right:22px;}.elementor-8770 .elementor-element.elementor-element-loycv1k.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loycv1k .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.3px;color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loycv1q.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loycv1q{font-family:"Poppins", Sans-serif;font-size:16px;line-height:1.6em;color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loycv2{--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:8px 8px;--row-gap:8px;--column-gap:8px;--padding-top:22px;--padding-bottom:22px;--padding-left:22px;--padding-right:22px;}.elementor-8770 .elementor-element.elementor-element-loycv2k.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loycv2k .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.3px;color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loycv2q.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loycv2q{font-family:"Poppins", Sans-serif;font-size:16px;line-height:1.6em;color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loycv3{--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:8px 8px;--row-gap:8px;--column-gap:8px;--padding-top:22px;--padding-bottom:22px;--padding-left:22px;--padding-right:22px;}.elementor-8770 .elementor-element.elementor-element-loycv3k.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loycv3k .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.3px;color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loycv3q.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loycv3q{font-family:"Poppins", Sans-serif;font-size:16px;line-height:1.6em;color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loypro{--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;--padding-top:0px;--padding-bottom:0px;--padding-left:32px;--padding-right:32px;}.elementor-8770 .elementor-element.elementor-element-loypro:not(.elementor-motion-effects-element-type-background), .elementor-8770 .elementor-element.elementor-element-loypro > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#051124;}.elementor-8770 .elementor-element.elementor-element-loyphead{--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:40px;--padding-bottom:40px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loyphrow{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:center;--gap:18px 24px;--row-gap:18px;--column-gap:24px;--flex-wrap:nowrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loyphl{--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:14px 0px;--row-gap:14px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loypms.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loypms .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:2.4px;}.elementor-8770 .elementor-element.elementor-element-loypnb{--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:6px 0px;--row-gap:6px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loypmname.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loypmname .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:42px;font-weight:800;text-transform:none;line-height:1.06em;letter-spacing:-0.4px;color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loypmp.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loypmp .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:21px;font-weight:600;text-transform:none;line-height:1.35em;letter-spacing:-0.2px;color:rgba(255,255,255,.82);}.elementor-8770 .elementor-element.elementor-element-loypval{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:flex-start;--gap:6px 0px;--row-gap:6px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loypvn.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loypvn{text-align:start;}.elementor-8770 .elementor-element.elementor-element-loypvn .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:36px;font-weight:800;line-height:1em;letter-spacing:-1.2px;color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loypvl.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loypvl{text-align:start;}.elementor-8770 .elementor-element.elementor-element-loypvl .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:11px;font-weight:700;text-transform:uppercase;line-height:1.35em;letter-spacing:1.6px;color:rgba(255,255,255,.72);}.elementor-8770 .elementor-element.elementor-element-loypchev{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loypbody{--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-8770 .elementor-element.elementor-element-loypin{--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-8770 .elementor-element.elementor-element-loypml.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loypml{font-family:"Poppins", Sans-serif;font-size:19px;line-height:1.6em;}.elementor-8770 .elementor-element.elementor-element-loypg{--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:32px 44px;--row-gap:32px;--column-gap:44px;--flex-wrap:wrap;}.elementor-8770 .elementor-element.elementor-element-loypgl{--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-8770 .elementor-element.elementor-element-loypw{--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:8px 8px;--row-gap:8px;--column-gap:8px;--padding-top:24px;--padding-bottom:24px;--padding-left:26px;--padding-right:26px;}.elementor-8770 .elementor-element.elementor-element-loypwk.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loypwk .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1.7px;color:#EF7D48;}.elementor-8770 .elementor-element.elementor-element-loypwu.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loypwu{font-family:"Poppins", Sans-serif;font-size:16px;line-height:1.5em;color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loyph.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyph .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:24px;font-weight:800;text-transform:none;line-height:1.18em;letter-spacing:-0.3px;color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loypl.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loypl{font-family:"Poppins", Sans-serif;font-size:16px;line-height:1.5em;color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loypk3.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loypk3 .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1.6px;color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loypp.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loypp{font-family:"Poppins", Sans-serif;font-size:14px;line-height:1.45em;color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loypgr{--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-8770 .elementor-element.elementor-element-loype{--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:4px 4px;--row-gap:4px;--column-gap:4px;--padding-top:28px;--padding-bottom:28px;--padding-left:28px;--padding-right:28px;}.elementor-8770 .elementor-element.elementor-element-loypek.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loypek .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1.7px;color:#EF7D48;}.elementor-8770 .elementor-element.elementor-element-loypeb.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loypeb .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:46px;font-weight:800;line-height:1em;letter-spacing:-1.6px;color:#EF7D48;}.elementor-8770 .elementor-element.elementor-element-loypeu.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loypeu .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:1.4px;color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loypep.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loypep{font-family:"Poppins", Sans-serif;font-size:15px;line-height:1.6em;color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loyps.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyps{font-family:"Poppins", Sans-serif;color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loyest{--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:10px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loypk1.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loypk1 .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:24px;font-weight:800;text-transform:none;line-height:1.1em;letter-spacing:-0.3px;color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loyptrk.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loypfine > .elementor-widget-container{margin:22px 0px 0px 0px;}.elementor-8770 .elementor-element.elementor-element-loypfine.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loypfine{font-family:"Poppins", Sans-serif;font-size:14px;line-height:1.6em;color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loypcta{--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-8770 .elementor-element.elementor-element-loypb1 .elementor-button{background-color:#EF7D48;fill:#FFFFFF;color:#FFFFFF;border-style:solid;border-color:#EF7D48;}.elementor-8770 .elementor-element.elementor-element-loypb1 .elementor-button:hover, .elementor-8770 .elementor-element.elementor-element-loypb1 .elementor-button:focus{background-color:#FFFFFF;color:#051124;border-color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loypb1.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loypb1 .elementor-button:hover svg, .elementor-8770 .elementor-element.elementor-element-loypb1 .elementor-button:focus svg{fill:#051124;}.elementor-8770 .elementor-element.elementor-element-loypb2 .elementor-button{background-color:rgba(255,255,255,0);fill:#FFFFFF;color:#FFFFFF;border-style:solid;border-color:rgba(255,255,255,0.55);}.elementor-8770 .elementor-element.elementor-element-loypb2 .elementor-button:hover, .elementor-8770 .elementor-element.elementor-element-loypb2 .elementor-button:focus{background-color:#EF7D48;color:#FFFFFF;border-color:#EF7D48;}.elementor-8770 .elementor-element.elementor-element-loypb2.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loypb2 .elementor-button:hover svg, .elementor-8770 .elementor-element.elementor-element-loypb2 .elementor-button:focus svg{fill:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loypr > .elementor-widget-container{margin:0px 0px 0px 0px;}.elementor-8770 .elementor-element.elementor-element-loypr.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loypr{font-family:"Poppins", Sans-serif;font-size:15px;font-weight:400;line-height:1.65em;color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loyprb .elementor-button{background-color:rgba(255,255,255,0);fill:#FFFFFF;color:#FFFFFF;border-style:solid;border-color:rgba(255,255,255,0.55);}.elementor-8770 .elementor-element.elementor-element-loyprb .elementor-button:hover, .elementor-8770 .elementor-element.elementor-element-loyprb .elementor-button:focus{background-color:#EF7D48;color:#FFFFFF;border-color:#EF7D48;}.elementor-8770 .elementor-element.elementor-element-loyprb > .elementor-widget-container{margin:12px 0px 0px 0px;}.elementor-8770 .elementor-element.elementor-element-loyprb.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyprb .elementor-button:hover svg, .elementor-8770 .elementor-element.elementor-element-loyprb .elementor-button:focus svg{fill:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loyproof{--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;--padding-top:90px;--padding-bottom:90px;--padding-left:32px;--padding-right:32px;}.elementor-8770 .elementor-element.elementor-element-loyproof:not(.elementor-motion-effects-element-type-background), .elementor-8770 .elementor-element.elementor-element-loyproof > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loyprh{--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-8770 .elementor-element.elementor-element-loyprhe.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyprhe .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:1.8px;color:#051124;}.elementor-8770 .elementor-element.elementor-element-loyprhh.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyprhh .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:42px;font-weight:800;text-transform:none;line-height:1.12em;letter-spacing:-0.4px;color:#051124;}.elementor-8770 .elementor-element.elementor-element-loyprhr{--divider-border-style:solid;--divider-color:#051124;--divider-border-width:4px;}.elementor-8770 .elementor-element.elementor-element-loyprhr.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyprhr .elementor-divider-separator{width:120px;}.elementor-8770 .elementor-element.elementor-element-loyprhr .elementor-divider{padding-block-start:22px;padding-block-end:22px;}.elementor-8770 .elementor-element.elementor-element-loyprw{--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:16px 16px;--row-gap:16px;--column-gap:16px;--padding-top:30px;--padding-bottom:34px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loyprs1{--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:8px 8px;--row-gap:8px;--column-gap:8px;--padding-top:26px;--padding-bottom:26px;--padding-left:22px;--padding-right:22px;}.elementor-8770 .elementor-element.elementor-element-loyprs1b.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyprs1b .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:34px;font-weight:800;line-height:1em;letter-spacing:-1.2px;color:#051124;}.elementor-8770 .elementor-element.elementor-element-loyprs1s.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyprs1s{font-family:"Poppins", Sans-serif;font-size:12px;line-height:1.6em;color:#6F7680;}.elementor-8770 .elementor-element.elementor-element-loyprs2{--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:8px 8px;--row-gap:8px;--column-gap:8px;--padding-top:26px;--padding-bottom:26px;--padding-left:22px;--padding-right:22px;}.elementor-8770 .elementor-element.elementor-element-loyprs2b.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyprs2b .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:34px;font-weight:800;line-height:1em;letter-spacing:-1.2px;color:#051124;}.elementor-8770 .elementor-element.elementor-element-loyprs2s.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyprs2s{font-family:"Poppins", Sans-serif;font-size:12px;line-height:1.6em;color:#6F7680;}.elementor-8770 .elementor-element.elementor-element-loyprs3{--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:8px 8px;--row-gap:8px;--column-gap:8px;--padding-top:26px;--padding-bottom:26px;--padding-left:22px;--padding-right:22px;}.elementor-8770 .elementor-element.elementor-element-loyprs3b.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyprs3b .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:34px;font-weight:800;line-height:1em;letter-spacing:-1.2px;color:#051124;}.elementor-8770 .elementor-element.elementor-element-loyprs3s.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyprs3s{font-family:"Poppins", Sans-serif;font-size:12px;line-height:1.6em;color:#6F7680;}.elementor-8770 .elementor-element.elementor-element-loyprs4{--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:8px 8px;--row-gap:8px;--column-gap:8px;--padding-top:26px;--padding-bottom:26px;--padding-left:22px;--padding-right:22px;}.elementor-8770 .elementor-element.elementor-element-loyprs4b.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyprs4b .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:34px;font-weight:800;line-height:1em;letter-spacing:-1.2px;color:#051124;}.elementor-8770 .elementor-element.elementor-element-loyprs4s.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyprs4s{font-family:"Poppins", Sans-serif;font-size:12px;line-height:1.6em;color:#6F7680;}.elementor-8770 .elementor-element.elementor-element-loyprg{--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:20px 20px;--row-gap:20px;--column-gap:20px;}.elementor-8770 .elementor-element.elementor-element-loyprq{--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:6px 6px;--row-gap:6px;--column-gap:6px;--padding-top:26px;--padding-bottom:26px;--padding-left:26px;--padding-right:26px;}.elementor-8770 .elementor-element.elementor-element-loyprq1.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyprq1{font-family:"Poppins", Sans-serif;font-size:18px;line-height:1.6em;color:#051124;}.elementor-8770 .elementor-element.elementor-element-loyprq2.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyprq2 .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:16px;font-weight:700;color:#051124;}.elementor-8770 .elementor-element.elementor-element-loyprq3.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyprq3 .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:#565C66;}.elementor-8770 .elementor-element.elementor-element-loyprp1{--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:6px 6px;--row-gap:6px;--column-gap:6px;--padding-top:26px;--padding-bottom:26px;--padding-left:26px;--padding-right:26px;}.elementor-8770 .elementor-element.elementor-element-loyprp1t.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyprp1t .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:16px;font-weight:700;color:#051124;}.elementor-8770 .elementor-element.elementor-element-loyprp1n.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyprp1n{font-family:"Poppins", Sans-serif;font-size:12px;line-height:1.6em;color:#6F7680;}.elementor-8770 .elementor-element.elementor-element-loyprp2{--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:6px 6px;--row-gap:6px;--column-gap:6px;--padding-top:26px;--padding-bottom:26px;--padding-left:26px;--padding-right:26px;}.elementor-8770 .elementor-element.elementor-element-loyprp2t.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyprp2t .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:16px;font-weight:700;color:#051124;}.elementor-8770 .elementor-element.elementor-element-loyprp2n.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyprp2n{font-family:"Poppins", Sans-serif;font-size:12px;line-height:1.6em;color:#6F7680;}.elementor-8770 .elementor-element.elementor-element-loyfaq{--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;--padding-top:0px;--padding-bottom:0px;--padding-left:32px;--padding-right:32px;}.elementor-8770 .elementor-element.elementor-element-loyfaq:not(.elementor-motion-effects-element-type-background), .elementor-8770 .elementor-element.elementor-element-loyfaq > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loyfaq2 > .elementor-widget-container{padding:0px 0px 0px 0px;}.elementor-8770 .elementor-element.elementor-element-loyfaq2.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyhelp{--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;--overlay-opacity:0.5;--padding-top:90px;--padding-bottom:90px;--padding-left:32px;--padding-right:32px;}.elementor-8770 .elementor-element.elementor-element-loyhelp:not(.elementor-motion-effects-element-type-background), .elementor-8770 .elementor-element.elementor-element-loyhelp > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#051124;background-image:url("https://atticbreeze.com/wp-content/uploads/2026/08/loyalty-programs-attic-breeze-lunch-and-learn.webp");background-position:62% 82%;background-repeat:no-repeat;background-size:cover;}.elementor-8770 .elementor-element.elementor-element-loyhelp::before, .elementor-8770 .elementor-element.elementor-element-loyhelp > .elementor-background-video-container::before, .elementor-8770 .elementor-element.elementor-element-loyhelp > .e-con-inner > .elementor-background-video-container::before, .elementor-8770 .elementor-element.elementor-element-loyhelp > .elementor-background-slideshow::before, .elementor-8770 .elementor-element.elementor-element-loyhelp > .e-con-inner > .elementor-background-slideshow::before, .elementor-8770 .elementor-element.elementor-element-loyhelp > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:transparent;--background-overlay:'';background-image:linear-gradient(90deg, rgba(5,17,36,0.94) 62%, rgba(5,17,36,0.45) 100%);}.elementor-8770 .elementor-element.elementor-element-loyhrow{--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:30px 48px;--row-gap:30px;--column-gap:48px;--flex-wrap:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loyhl{--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-8770 .elementor-element.elementor-element-loyh1 > .elementor-widget-container{margin:0px 0px 10px 0px;}.elementor-8770 .elementor-element.elementor-element-loyh1.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyh1 .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:1.8px;color:#EF7D48;}.elementor-8770 .elementor-element.elementor-element-loyh2.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyh2 .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:42px;font-weight:800;text-transform:none;line-height:1.12em;letter-spacing:-0.4px;color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loyh3.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyh3{font-family:"Poppins", Sans-serif;font-size:18px;line-height:1.6em;color:#E7ECF2;}.elementor-8770 .elementor-element.elementor-element-loyh4{--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:24px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loyh5 .elementor-button{background-color:#EF7D48;fill:#FFFFFF;color:#FFFFFF;border-style:solid;border-color:#EF7D48;}.elementor-8770 .elementor-element.elementor-element-loyh5 .elementor-button:hover, .elementor-8770 .elementor-element.elementor-element-loyh5 .elementor-button:focus{background-color:#FFFFFF;color:#051124;border-color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loyh5.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loyh5 .elementor-button:hover svg, .elementor-8770 .elementor-element.elementor-element-loyh5 .elementor-button:focus svg{fill:#051124;}.elementor-8770 .elementor-element.elementor-element-loyrep{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-8770 .elementor-element.elementor-element-loyrepw.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-loypop{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;--flex-wrap:nowrap;}.elementor-8770 .elementor-element.elementor-element-loypopd{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:stretch;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:nowrap;border-style:solid;--border-style:solid;border-width:4px 0px 0px 0px;--border-top-width:4px;--border-right-width:0px;--border-bottom-width:0px;--border-left-width:0px;border-color:#EF7D48;--border-color:#EF7D48;--border-radius:6px 6px 6px 6px;box-shadow:0px 30px 80px 0px rgba(5,17,36,0.45);--padding-top:34px;--padding-bottom:34px;--padding-left:34px;--padding-right:34px;}.elementor-8770 .elementor-element.elementor-element-loypopd:not(.elementor-motion-effects-element-type-background), .elementor-8770 .elementor-element.elementor-element-loypopd > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-8770 .elementor-element.elementor-element-loypopx.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-boost{--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:8px 8px;--row-gap:8px;--column-gap:8px;--padding-top:0px;--padding-bottom:4px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-booste.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-booste .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:#EF7D48;}.elementor-8770 .elementor-element.elementor-element-boostt.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-boostt .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:28px;font-weight:800;text-transform:uppercase;line-height:1.18em;letter-spacing:-0.3px;color:#051124;}.elementor-8770 .elementor-element.elementor-element-boostc.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-boostc{font-family:"Poppins", Sans-serif;font-size:16px;line-height:1.6em;color:#051124;}.elementor-8770 .elementor-element.elementor-element-cert{--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:8px 8px;--row-gap:8px;--column-gap:8px;--padding-top:0px;--padding-bottom:4px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-certe.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-certe .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:#EF7D48;}.elementor-8770 .elementor-element.elementor-element-certt.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-certt .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:28px;font-weight:800;text-transform:uppercase;line-height:1.18em;letter-spacing:-0.3px;color:#051124;}.elementor-8770 .elementor-element.elementor-element-certc.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-certc{font-family:"Poppins", Sans-serif;font-size:16px;line-height:1.6em;color:#051124;}.elementor-8770 .elementor-element.elementor-element-pro{--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:8px 8px;--row-gap:8px;--column-gap:8px;--padding-top:0px;--padding-bottom:4px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-proe.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-proe .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:#EF7D48;}.elementor-8770 .elementor-element.elementor-element-prot.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-prot .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:28px;font-weight:800;text-transform:uppercase;line-height:1.18em;letter-spacing:-0.3px;color:#051124;}.elementor-8770 .elementor-element.elementor-element-proc.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-proc{font-family:"Poppins", Sans-serif;font-size:16px;line-height:1.6em;color:#051124;}.elementor-8770 .elementor-element.elementor-element-rep{--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:8px 8px;--row-gap:8px;--column-gap:8px;--padding-top:0px;--padding-bottom:4px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-repe.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-repe .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:#EF7D48;}.elementor-8770 .elementor-element.elementor-element-rept.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-rept .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:28px;font-weight:800;text-transform:uppercase;line-height:1.18em;letter-spacing:-0.3px;color:#051124;}.elementor-8770 .elementor-element.elementor-element-repc.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-8770 .elementor-element.elementor-element-repc{font-family:"Poppins", Sans-serif;font-size:16px;line-height:1.6em;color:#051124;}.elementor-8770 .elementor-element.elementor-element-loypopf.xpro-widget-bg-overlay:before{transition:background 0.3s;}@media(max-width:1024px){.elementor-8770 .elementor-element.elementor-element-loyhead{--min-height:480px;--padding-top:56px;--padding-bottom:52px;--padding-left:14px;--padding-right:14px;}.elementor-8770 .elementor-element.elementor-element-loyhead2 .elementor-heading-title{font-size:38px;}.elementor-8770 .elementor-element.elementor-element-loychoose{--padding-top:64px;--padding-bottom:64px;--padding-left:14px;--padding-right:14px;}.elementor-8770 .elementor-element.elementor-element-loychhh .elementor-heading-title{font-size:34px;}.elementor-8770 .elementor-element.elementor-element-loyboost{--padding-top:0px;--padding-bottom:0px;--padding-left:14px;--padding-right:14px;}.elementor-8770 .elementor-element.elementor-element-loybhead{--padding-top:32px;--padding-bottom:32px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loybhrow{--gap:16px 26px;--row-gap:16px;--column-gap:26px;}.elementor-8770 .elementor-element.elementor-element-loybmname .elementor-heading-title{font-size:34px;}.elementor-8770 .elementor-element.elementor-element-loybvn .elementor-heading-title{font-size:32px;}.elementor-8770 .elementor-element.elementor-element-loybeb .elementor-heading-title{font-size:40px;}.elementor-8770 .elementor-element.elementor-element-loycert{--padding-top:0px;--padding-bottom:0px;--padding-left:14px;--padding-right:14px;}.elementor-8770 .elementor-element.elementor-element-loychead{--padding-top:32px;--padding-bottom:32px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loychrow{--gap:16px 26px;--row-gap:16px;--column-gap:26px;}.elementor-8770 .elementor-element.elementor-element-loycmname .elementor-heading-title{font-size:34px;}.elementor-8770 .elementor-element.elementor-element-loycvn .elementor-heading-title{font-size:32px;}.elementor-8770 .elementor-element.elementor-element-loyceb .elementor-heading-title{font-size:40px;}.elementor-8770 .elementor-element.elementor-element-loypro{--padding-top:0px;--padding-bottom:0px;--padding-left:14px;--padding-right:14px;}.elementor-8770 .elementor-element.elementor-element-loyphead{--padding-top:32px;--padding-bottom:32px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loyphrow{--gap:16px 26px;--row-gap:16px;--column-gap:26px;}.elementor-8770 .elementor-element.elementor-element-loypmname .elementor-heading-title{font-size:34px;}.elementor-8770 .elementor-element.elementor-element-loypvn .elementor-heading-title{font-size:32px;}.elementor-8770 .elementor-element.elementor-element-loypeb .elementor-heading-title{font-size:40px;}.elementor-8770 .elementor-element.elementor-element-loyest{--padding-top:10px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loypk1 .elementor-heading-title{font-size:22px;}.elementor-8770 .elementor-element.elementor-element-loyproof{--padding-top:70px;--padding-bottom:70px;--padding-left:14px;--padding-right:14px;}.elementor-8770 .elementor-element.elementor-element-loyprhh .elementor-heading-title{font-size:33px;}.elementor-8770 .elementor-element.elementor-element-loyfaq{--padding-top:0px;--padding-bottom:0px;--padding-left:14px;--padding-right:14px;}.elementor-8770 .elementor-element.elementor-element-loyhelp:not(.elementor-motion-effects-element-type-background), .elementor-8770 .elementor-element.elementor-element-loyhelp > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-position:64% 80%;}.elementor-8770 .elementor-element.elementor-element-loyhelp{--padding-top:70px;--padding-bottom:70px;--padding-left:14px;--padding-right:14px;}.elementor-8770 .elementor-element.elementor-element-loyh2 .elementor-heading-title{font-size:33px;}}@media(max-width:767px){.elementor-8770 .elementor-element.elementor-element-loyhead:not(.elementor-motion-effects-element-type-background), .elementor-8770 .elementor-element.elementor-element-loyhead > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://atticbreeze.com/wp-content/uploads/2026/08/installer-programs-hero-mobile.jpg");background-position:center bottom;background-repeat:no-repeat;background-size:cover;}.elementor-8770 .elementor-element.elementor-element-loyhead{--min-height:560px;--justify-content:flex-start;--padding-top:34px;--padding-bottom:38px;--padding-left:10px;--padding-right:10px;}.elementor-8770 .elementor-element.elementor-element-loyhead2 .elementor-heading-title{font-size:30px;}.elementor-8770 .elementor-element.elementor-element-loyhead4{--gap:10px 10px;--row-gap:10px;--column-gap:10px;--flex-wrap:nowrap;--padding-top:22px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loychoose{--padding-top:52px;--padding-bottom:52px;--padding-left:20px;--padding-right:20px;}.elementor-8770 .elementor-element.elementor-element-loychhh .elementor-heading-title{font-size:28px;}.elementor-8770 .elementor-element.elementor-element-loychhl{font-size:16.5px;}.elementor-8770 .elementor-element.elementor-element-loychgrid{--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;}.elementor-8770 .elementor-element.elementor-element-loyd1q .elementor-heading-title{font-size:13px;}.elementor-8770 .elementor-element.elementor-element-loychbn .elementor-heading-title{font-size:24px;}.elementor-8770 .elementor-element.elementor-element-loyd2q .elementor-heading-title{font-size:13px;}.elementor-8770 .elementor-element.elementor-element-loychcn .elementor-heading-title{font-size:24px;}.elementor-8770 .elementor-element.elementor-element-loyd3q .elementor-heading-title{font-size:13px;}.elementor-8770 .elementor-element.elementor-element-loychpn .elementor-heading-title{font-size:24px;}.elementor-8770 .elementor-element.elementor-element-loyboost{--padding-top:0px;--padding-bottom:0px;--padding-left:20px;--padding-right:20px;}.elementor-8770 .elementor-element.elementor-element-loybhead{--padding-top:26px;--padding-bottom:26px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loybhrow{--gap:12px 12px;--row-gap:12px;--column-gap:12px;}.elementor-8770 .elementor-element.elementor-element-loybhl{--gap:10px 0px;--row-gap:10px;--column-gap:0px;}.elementor-8770 .elementor-element.elementor-element-loybmname .elementor-heading-title{font-size:28px;}.elementor-8770 .elementor-element.elementor-element-loybmp .elementor-heading-title{font-size:18px;}.elementor-8770 .elementor-element.elementor-element-loybvn .elementor-heading-title{font-size:28px;}.elementor-8770 .elementor-element.elementor-element-loybvl .elementor-heading-title{font-size:10.5px;}.elementor-8770 .elementor-element.elementor-element-loybchev{--width:34px;}.elementor-8770 .elementor-element.elementor-element-loybh .elementor-heading-title{font-size:20px;}.elementor-8770 .elementor-element.elementor-element-loybeb .elementor-heading-title{font-size:36px;}.elementor-8770 .elementor-element.elementor-element-loybr > .elementor-widget-container{margin:20px 0px 0px 0px;}.elementor-8770 .elementor-element.elementor-element-loycert{--padding-top:0px;--padding-bottom:0px;--padding-left:20px;--padding-right:20px;}.elementor-8770 .elementor-element.elementor-element-loychead{--padding-top:26px;--padding-bottom:26px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loychrow{--gap:12px 12px;--row-gap:12px;--column-gap:12px;}.elementor-8770 .elementor-element.elementor-element-loychl{--gap:10px 0px;--row-gap:10px;--column-gap:0px;}.elementor-8770 .elementor-element.elementor-element-loycmname .elementor-heading-title{font-size:28px;}.elementor-8770 .elementor-element.elementor-element-loycmpp .elementor-heading-title{font-size:18px;}.elementor-8770 .elementor-element.elementor-element-loycvn .elementor-heading-title{font-size:28px;}.elementor-8770 .elementor-element.elementor-element-loycvl .elementor-heading-title{font-size:10.5px;}.elementor-8770 .elementor-element.elementor-element-loycchev{--width:34px;}.elementor-8770 .elementor-element.elementor-element-loych .elementor-heading-title{font-size:20px;}.elementor-8770 .elementor-element.elementor-element-loyceb .elementor-heading-title{font-size:36px;}.elementor-8770 .elementor-element.elementor-element-loycr > .elementor-widget-container{margin:20px 0px 0px 0px;}.elementor-8770 .elementor-element.elementor-element-loypro{--padding-top:0px;--padding-bottom:0px;--padding-left:20px;--padding-right:20px;}.elementor-8770 .elementor-element.elementor-element-loyphead{--padding-top:26px;--padding-bottom:26px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loyphrow{--gap:12px 12px;--row-gap:12px;--column-gap:12px;}.elementor-8770 .elementor-element.elementor-element-loyphl{--gap:10px 0px;--row-gap:10px;--column-gap:0px;}.elementor-8770 .elementor-element.elementor-element-loypmname .elementor-heading-title{font-size:28px;}.elementor-8770 .elementor-element.elementor-element-loypmp .elementor-heading-title{font-size:18px;}.elementor-8770 .elementor-element.elementor-element-loypvn .elementor-heading-title{font-size:28px;}.elementor-8770 .elementor-element.elementor-element-loypvl .elementor-heading-title{font-size:10.5px;}.elementor-8770 .elementor-element.elementor-element-loypchev{--width:34px;}.elementor-8770 .elementor-element.elementor-element-loyph .elementor-heading-title{font-size:20px;}.elementor-8770 .elementor-element.elementor-element-loypeb .elementor-heading-title{font-size:36px;}.elementor-8770 .elementor-element.elementor-element-loyest{--padding-top:10px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8770 .elementor-element.elementor-element-loypk1 .elementor-heading-title{font-size:20px;}.elementor-8770 .elementor-element.elementor-element-loypfine > .elementor-widget-container{margin:18px 0px 0px 0px;}.elementor-8770 .elementor-element.elementor-element-loypr > .elementor-widget-container{margin:0px 0px 0px 0px;}.elementor-8770 .elementor-element.elementor-element-loyproof{--padding-top:56px;--padding-bottom:56px;--padding-left:20px;--padding-right:20px;}.elementor-8770 .elementor-element.elementor-element-loyprhh .elementor-heading-title{font-size:26px;}.elementor-8770 .elementor-element.elementor-element-loyprs1b .elementor-heading-title{font-size:29px;}.elementor-8770 .elementor-element.elementor-element-loyprs2b .elementor-heading-title{font-size:29px;}.elementor-8770 .elementor-element.elementor-element-loyprs3b .elementor-heading-title{font-size:29px;}.elementor-8770 .elementor-element.elementor-element-loyprs4b .elementor-heading-title{font-size:29px;}.elementor-8770 .elementor-element.elementor-element-loyfaq{--padding-top:0px;--padding-bottom:0px;--padding-left:20px;--padding-right:20px;}.elementor-8770 .elementor-element.elementor-element-loyhelp{--justify-content:flex-start;--padding-top:56px;--padding-bottom:56px;--padding-left:20px;--padding-right:20px;}.elementor-8770 .elementor-element.elementor-element-loyhelp:not(.elementor-motion-effects-element-type-background), .elementor-8770 .elementor-element.elementor-element-loyhelp > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-position:68% 50%;}.elementor-8770 .elementor-element.elementor-element-loyh2 .elementor-heading-title{font-size:26px;}.elementor-8770 .elementor-element.elementor-element-loypopd{--padding-top:26px;--padding-bottom:24px;--padding-left:20px;--padding-right:20px;}.elementor-8770 .elementor-element.elementor-element-boostt .elementor-heading-title{font-size:21px;}.elementor-8770 .elementor-element.elementor-element-certt .elementor-heading-title{font-size:21px;}.elementor-8770 .elementor-element.elementor-element-prot .elementor-heading-title{font-size:21px;}.elementor-8770 .elementor-element.elementor-element-rept .elementor-heading-title{font-size:21px;}}@media(min-width:768px){.elementor-8770 .elementor-element.elementor-element-loyhead{--content-width:1600px;}.elementor-8770 .elementor-element.elementor-element-loychoose{--content-width:1600px;}.elementor-8770 .elementor-element.elementor-element-loychbm{--width:100%;}.elementor-8770 .elementor-element.elementor-element-loychcm{--width:100%;}.elementor-8770 .elementor-element.elementor-element-loychpm{--width:100%;}.elementor-8770 .elementor-element.elementor-element-loyboost{--content-width:1600px;}.elementor-8770 .elementor-element.elementor-element-loybchev{--width:44px;}.elementor-8770 .elementor-element.elementor-element-loycert{--content-width:1600px;}.elementor-8770 .elementor-element.elementor-element-loycchev{--width:44px;}.elementor-8770 .elementor-element.elementor-element-loypro{--content-width:1600px;}.elementor-8770 .elementor-element.elementor-element-loypchev{--width:44px;}.elementor-8770 .elementor-element.elementor-element-loyproof{--content-width:1600px;}.elementor-8770 .elementor-element.elementor-element-loyfaq{--content-width:1600px;}.elementor-8770 .elementor-element.elementor-element-loyhelp{--content-width:1600px;}.elementor-8770 .elementor-element.elementor-element-loyhl{--width:62%;}.elementor-8770 .elementor-element.elementor-element-loypopd{--width:660px;}}@media(max-width:1024px) and (min-width:768px){.elementor-8770 .elementor-element.elementor-element-loyhl{--width:100%;}}@media(min-width:1025px){.elementor-8770 .elementor-element.elementor-element-loyhead:not(.elementor-motion-effects-element-type-background), .elementor-8770 .elementor-element.elementor-element-loyhead > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-attachment:scroll;}}/* Start custom CSS *//* ------------------------------------------------------------------ shared
   RADIUS SYSTEM (matched to Breeze Lab, which uses 2px on controls and 12px on
   cards): controls 2px, cards/panels 12px, pills only where a pill is the
   point. The prototype mixed 999 / 14 / 12 / 10 with no rule behind it. */
.ab-loyalty h1,.ab-loyalty h2,.ab-loyalty h3,.ab-loyalty h4,.ab-loyalty p{margin:0}
/* A measure cap plus the existing text-wrap:balance stops long H2s ragging into
   two-word lines at 1140 - the specific complaint about the old 44px uppercase. */
.ab-loyalty-h2 .elementor-heading-title{max-width:22ch}
.ab-loyalty .elementor-heading-title{text-wrap:balance}
.ab-loyalty a.elementor-button{text-decoration:none}
.ab-loyalty ul,.ab-loyalty ol{margin:0;padding:0;list-style:none}
/* Muted grey #6F7680 measures 4.83:1 on white but only 4.09:1 on the #F0F2F4
   tint, which fails AA for body text. Darken it on tint bands only, so white
   sections keep the brand grey exactly as Breeze Lab uses it. */

/* Same reason: the mstat cards and the quote sit on tint inside white sections. */
.ab-loyalty-mstat .ab-loyalty-mstat-s p,
.ab-loyalty-quote .ab-loyalty-quote-src .elementor-heading-title{color:#565C66}
.ab-loyalty-lede p{max-width:68ch;margin:0}
.ab-loyalty-subk{padding:30px 0 12px}
.ab-loyalty-fineprint p{margin:0;max-width:78ch}
.ab-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* inline links: navy with an orange underline - the sitewide pattern */
.ab-loyalty p a,.ab-loyalty li a,.ab-loyalty dd a{color:#051124;text-decoration:none}
.ab-loyalty p a:hover,.ab-loyalty li a:hover{color:#EF7D48}
.ab-loyalty--navy p a,.ab-loyalty--navy li a,.ab-loyalty--navy dd a{color:#FFFFFF}
.ab-loyalty--navy p a:hover,.ab-loyalty--navy li a:hover{color:#EF7D48}
.ab-loyalty :focus-visible{outline:3px solid #EF7D48;outline-offset:3px}
.ab-loyalty--navy :focus-visible{outline-color:#EF7D48}

/* ----------------------------------------------------------------- buttons
   Flat, like Breeze Lab. The prototype's orange glow (0 8px 24px rgba(239,125,
   72,.35)) and 2px hover lift were on 12 buttons and read as SaaS rather than
   Attic Breeze; colour transition alone is the site's hover language. */
.ab-loyalty-btn .elementor-button{display:inline-flex;align-items:center;justify-content:center;
  transition:background .18s ease,color .18s ease,border-color .18s ease}
.ab-loyalty-btns{align-items:center}

/* --------------------------------------------------------------- page head
   Photo hero. Elementor does NOT emit .elementor-background-overlay for this
   container (same as Breeze Lab's hero), so the scrim is a ::before, and the
   content needs position/z-index to sit above it. The gradient is heaviest on
   the left so the copy always has contrast regardless of how the photo crops. */
.ab-loyalty-pagehead{position:relative;overflow:hidden}
.ab-loyalty-pagehead::before{content:"";position:absolute;inset:0;z-index:0;
  background:linear-gradient(100deg,rgba(5,17,36,.95) 0%,rgba(5,17,36,.88) 38%,
    rgba(5,17,36,.62) 68%,rgba(5,17,36,.38) 100%)}
.ab-loyalty-pagehead>.e-con-inner{position:relative;z-index:1}
.ab-loyalty-h1 .elementor-heading-title{max-width:22ch;
  text-shadow:0 2px 16px rgba(5,17,36,.75)}
.ab-loyalty-h1 em{font-style:normal;color:#EF7D48}
.ab-loyalty-headlede p{max-width:56ch;margin:0;text-shadow:0 1px 12px rgba(5,17,36,.55)}
/* copy column keeps its own measure so it never runs the full 1600 */
.ab-loyalty-pagehead .e-con-inner>.e-con{max-width:760px;margin-right:auto}
.ab-loyalty-pagehead .ab-loyalty-h1{padding:12px 0 2px}
.ab-loyalty-pagehead .ab-loyalty-headlede{padding-bottom:4px}

/* ------------------------------------------------------------------- doors
   The overview row is the journey seen whole, so the three stages are wired
   together with orange connectors sitting in the grid gaps, level with the
   stage numerals. Without them this row reads as three independent cards -
   exactly what it should not be. Drawn on the ROW, not the cards, because the
   cards clip their own overflow for the 12px radius. */

@media (min-width:961px){
  /* Exact geometry, measured rather than approximated with percentages:
     column = (100% - 44px)/3, gaps are 22px. A 33.333% guess landed 4px off.
     top 70 = the row's own 38px padding-top + 33px to the centre of the 66px
     navy stage strip (18 pad + 30 numeral + 18 pad). If the door numeral size
     changes, re-measure this. */
  
  
  
}

/* the third door is the destination, so it carries the accent edge */

/* CSS Grid equalises the three door CARDS, but the inner body container keeps
   Elementor's own flex:0 1 auto, so it does not stretch to fill the card - which
   left door 2's CTA sitting 41px below the other two. Extra specificity here is
   what makes margin-top:auto on the CTA actually pin all three to one baseline. */

/* Block CTAs inside the 3-up doors and 4-up pillars sit in ~250px columns, so
   the longer labels wrap to two lines while the shorter ones do not - which left
   the row of buttons visibly uneven (52 / 69 / 52). The copy is fixed, so the
   fix is a shared min-height: every block CTA is the two-line height whether it
   needs it or not, and the row lands on one baseline. */

/* Multi-column only: on mobile every card is full width and these floors would
   just add dead space. 70px is the measured two-line height of the longest door
   label; 90px is the measured height of the tallest pillar link list (the one
   where "Lifetime limited parts warranty" wraps). */

/* ------------------------------------------- programme masthead = CHAPTER OPEN
   The masthead is the chapter title card. The stage numeral becomes the anchor:
   large, ghosted on light surfaces, solid orange on the navy destination. A
   vertical orange stub runs into the numeral so the chapter visibly hangs off
   the same journey line as the rail. */

/* Size/colour live on the widget; the stroke is the only part CSS can own. */

/* the destination chapter states its number solid, not outlined */

/* ---- NEXT UP: the hand-off at the end of chapters 01 and 02 --------------
   A short orange run of line, the label, and the stage it leads to. This is
   what makes Pro Advantage read as the end of a path rather than a third card. */

/* ---- journey recap block, just before the closing CTA ---- */

/* ------------------------------------------------------ who this is for box */
.ab-loyalty-forwho{background:#FDECE4;border-radius:12px;margin-bottom:24px}
.ab-loyalty--navy .ab-loyalty-forwho{background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.18)}
.ab-loyalty-forwho-list li{position:relative;padding-left:24px;margin-bottom:7px}
.ab-loyalty-forwho-list li:last-child{margin-bottom:0}
.ab-loyalty-forwho-list li::before{content:"";position:absolute;left:0;top:.5em;width:11px;height:11px;
  background:#EF7D48;border-radius:50%}

/* ----------------------------------------------------------- benefit list */
.ab-loyalty-h3{padding:6px 0 8px}
.ab-loyalty-plist li{position:relative;padding-left:26px;margin-bottom:11px}
.ab-loyalty-plist li::before{content:"";position:absolute;left:0;top:.55em;width:10px;height:10px;
  background:#EF7D48;border-radius:2px}
.ab-loyalty-plist b{color:#051124}
.ab-loyalty--navy .ab-loyalty-plist b{color:#FFFFFF}

/* --------------------------------------------------------------- phases ---
   Numbered discs and the connecting rail are generated from a CSS counter, so
   adding or deleting a step in the editor renumbers itself. */
.ab-loyalty-phases ol{counter-reset:abph;display:grid;grid-auto-flow:column;
  grid-auto-columns:1fr;position:relative}
.ab-loyalty-phases ol::before{content:"";position:absolute;left:17px;right:17px;top:17px;height:2px;
  background:#CACBCC;z-index:0}
.ab-loyalty--navy .ab-loyalty-phases ol::before{background:rgba(255,255,255,.18)}
.ab-loyalty-phases li{counter-increment:abph;position:relative;padding:0 18px 0 0}
.ab-loyalty-phases li::before{content:counter(abph,decimal-leading-zero);position:relative;z-index:1;
  display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;
  background:#EF7D48;color:#051124;font-family:Poppins,sans-serif;font-weight:700;font-size:13px;
  margin-bottom:14px}
.ab-loyalty-phases li b{display:block;font-family:Poppins,sans-serif;font-weight:700;font-size:16px;
  color:#051124;margin-bottom:4px;line-height:1.25}
.ab-loyalty-phases li span{display:block;font-size:14px;color:#6F7680;line-height:1.45}
.ab-loyalty--navy .ab-loyalty-phases li b{color:#FFFFFF}
.ab-loyalty--navy .ab-loyalty-phases li span{color:#FFFFFF}

/* --------------------------------------------------------------- earn box */
.ab-loyalty-earnbox{border:1px solid #CACBCC;border-radius:12px;background:#FFFFFF;
  box-shadow:0 1px 2px rgba(5,17,36,.06),0 12px 32px rgba(5,17,36,.08)}
.ab-loyalty--navy .ab-loyalty-earnbox{background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.18);box-shadow:none}
.ab-loyalty-earn-unit{padding-bottom:14px}
.ab-loyalty-earn-body p{margin:0}

/* -------------------------------------------------------------- stat list */
.ab-loyalty-statlist{padding-top:20px}
.ab-loyalty-statlist dl{margin:0;display:grid;grid-template-columns:auto 1fr;column-gap:16px}
.ab-loyalty-statlist dt{font-family:Poppins,sans-serif;font-weight:800;font-size:21px;color:#051124;
  letter-spacing:-.4px;padding:11px 0;border-bottom:1px solid #CACBCC;white-space:nowrap}
.ab-loyalty-statlist dd{margin:0;align-self:center;font-size:14px;color:#6F7680;padding:11px 0;
  border-bottom:1px solid #CACBCC}
.ab-loyalty-statlist dl>dt:last-of-type,.ab-loyalty-statlist dl>dd:last-of-type{border-bottom:0}
.ab-loyalty--navy .ab-loyalty-statlist dt{color:#EF7D48}
.ab-loyalty--navy .ab-loyalty-statlist dd{color:#FFFFFF}
.ab-loyalty--navy .ab-loyalty-statlist dt,.ab-loyalty--navy .ab-loyalty-statlist dd{
  border-bottom-color:rgba(255,255,255,.18)}

/* ------------------------------------------------------------ bridge line */

/* ------------------------------------------------------------ media panels */

/* ----------------------------------------------------- cards, tiers, tools */
.ab-loyalty-grid3,.ab-loyalty-valuex{display:grid!important;grid-template-columns:repeat(3,1fr)}

/* grid-auto-rows:1fr keeps every ROW the same height once these wrap to 2x2
   (pillars at <=1100, stats at <=900). Without it each grid row sizes itself and
   the two rows land 24px apart, which reads as a mistake. */
.ab-loyalty-tools{display:grid!important;grid-template-columns:repeat(4,1fr);
  grid-auto-rows:1fr}
.ab-loyalty-moneywall{display:grid!important;grid-template-columns:repeat(4,1fr);
  grid-auto-rows:1fr}
.ab-loyalty-proofgrid{display:grid!important;grid-template-columns:1.3fr 1fr 1fr}
.ab-loyalty-gcard,.ab-loyalty-vx{background:#FFFFFF;border:1px solid #CACBCC;border-radius:12px}
.ab-loyalty-vx-q p{margin:0;font-style:italic;color:#051124}
.ab-loyalty-tier{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.18);
  border-radius:12px}

.ab-loyalty-tool{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.18);
  border-radius:12px}

/* ------------------------------------------------ Breeze Bucks tracker ---- */
.ab-loyalty-levels{background:#FFFFFF;border:1px solid #CACBCC;border-radius:12px;padding:34px;
  box-shadow:0 1px 2px rgba(5,17,36,.06),0 12px 32px rgba(5,17,36,.08)}
.ab-loyalty-levels .lv-head{display:flex;justify-content:space-between;align-items:baseline;
  gap:16px;flex-wrap:wrap;margin-bottom:22px}
.ab-loyalty-levels .lv-head .lv-h{margin:0;font-family:Poppins,sans-serif;font-weight:700;
  font-size:19px;color:#051124}
.ab-loyalty-levels .lv-rate{font-family:Poppins,sans-serif;font-weight:800;font-size:32px;color:#EF7D48}
.ab-loyalty-levels .lv-rate i{font-style:normal;font-size:16px;color:#6F7680;font-weight:600}
.ab-loyalty-levels .lv-track{position:relative;height:18px;background:#F0F2F4;border-radius:999px;
  overflow:hidden;margin-bottom:10px}
.ab-loyalty-levels .lv-fill{position:absolute;inset:0 auto 0 0;width:0;background:#EF7D48;
  border-radius:999px;transition:width .4s ease}
.ab-loyalty-levels .lv-marks{display:flex;justify-content:space-between;gap:8px;
  font-family:Poppins,sans-serif;font-weight:600;font-size:11px;color:#6F7680;text-transform:uppercase;
  letter-spacing:.09em;margin-bottom:26px}
.ab-loyalty-levels .lv-marks b{display:block;color:#051124;font-weight:800;font-size:14px;
  text-transform:none;letter-spacing:0}
.ab-loyalty-levels .lv-inputs{display:flex;gap:24px;flex-wrap:wrap;margin-bottom:22px}
.ab-loyalty-levels .lv-field{flex:1 1 220px}
.ab-loyalty-levels .lv-field label{display:block;font-family:Poppins,sans-serif;font-weight:700;
  font-size:14px;color:#051124;margin-bottom:6px}
.ab-loyalty-levels .lv-field input{width:100%;font:600 18px/1.4 Poppins,sans-serif;padding:12px 14px;
  border:1px solid #CACBCC;border-radius:8px;color:#051124;background:#FFFFFF}
.ab-loyalty-levels .lv-field input:focus-visible{outline:3px solid #EF7D48;outline-offset:2px;
  border-color:#EF7D48}
.ab-loyalty-levels .lv-result{background:#051124;border-radius:12px;padding:24px;
  display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.ab-loyalty-levels .lv-r b{display:block;font-family:Poppins,sans-serif;font-weight:800;font-size:29px;
  color:#EF7D48;letter-spacing:-.7px}
.ab-loyalty-levels .lv-r span{font-family:Poppins,sans-serif;font-weight:600;font-size:12px;
  color:#FFFFFF;text-transform:uppercase;letter-spacing:.09em}
.ab-loyalty-levels .lv-msg{margin:16px 0 0;font-family:Poppins,sans-serif;font-weight:700;font-size:16px;
  color:#051124;min-height:1.5em}

/* --------------------------------------------------------- proof + quote -- */
.ab-loyalty-mstat{background:#F0F2F4;border:1px solid #CACBCC;border-radius:12px;text-align:center;
  align-items:center}
.ab-loyalty-mstat-s p{margin:0;font-family:Poppins,sans-serif;font-weight:600;text-transform:uppercase;
  letter-spacing:.09em;line-height:1.4}
.ab-loyalty-quote{background:#F0F2F4;border:1px solid #CACBCC;border-left:5px solid #EF7D48;
  border-radius:0 12px 12px 0}
.ab-loyalty-quote-p p{margin:0 0 10px}
.ab-loyalty-ph{background:repeating-linear-gradient(45deg,#E7EBF0,#E7EBF0 12px,#DFE4EA 12px,#DFE4EA 24px);
  border:2px dashed #CACBCC;border-radius:12px;text-align:center;min-height:200px}
.ab-loyalty-ph-n p{margin:0;font-family:Poppins,sans-serif;font-weight:600}

/* ------------------------------------------------------------ compare table */

table.ab-loyalty-cmp{width:100%;border-collapse:collapse;min-width:780px}
table.ab-loyalty-cmp caption{text-align:left;font-family:Poppins,sans-serif;font-weight:600;
  font-size:13px;color:#6F7680;padding:15px 18px;border-bottom:1px solid #CACBCC}
table.ab-loyalty-cmp th,table.ab-loyalty-cmp td{padding:15px 18px;text-align:center;font-size:15px;
  vertical-align:middle;border-bottom:1px solid #CACBCC}
table.ab-loyalty-cmp thead th{background:#051124;color:#FFFFFF;font-family:Poppins,sans-serif;
  font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.09em}
table.ab-loyalty-cmp thead th:first-child{text-align:left}
table.ab-loyalty-cmp tbody th{font-family:Poppins,sans-serif;font-weight:700;color:#051124;
  font-size:14px;text-align:left}
table.ab-loyalty-cmp tbody tr:nth-child(even){background:#F0F2F4}
table.ab-loyalty-cmp td.yes{color:#EF7D48;font-family:Poppins,sans-serif;font-weight:800;font-size:20px}
/* #CACBCC on the striped rows measured 1.45:1 - invisible rather than muted.
   The dash is still clearly the "off" state, just legible. */
table.ab-loyalty-cmp td.no{color:#767C85;font-weight:800;font-size:20px}
table.ab-loyalty-cmp td.txt{color:#565C66;font-size:14px}
table.ab-loyalty-cmp .note{display:block;font-family:Poppins,sans-serif;font-weight:600;font-size:11px;
  text-transform:uppercase;letter-spacing:.08em;color:#6F7680}

/* -------------------------------------------------------------------- FAQ */

/* ------------------------------------------------------------- need help -- */
.ab-loyalty-helpcopy p{max-width:56ch;margin:0}

/* ------------------------------------------------------------- final CTA -- */

/* ---------------------------------------------------------- floating rep -- */
.ab-loyalty-repwrap{padding:0!important}
.ab-loyalty-repcta{position:fixed;right:20px;bottom:20px;z-index:80;display:flex;align-items:center;
  gap:12px;background:#051124;border:1px solid rgba(255,255,255,.14);border-radius:999px;
  padding:10px 10px 10px 20px;box-shadow:0 14px 34px rgba(5,17,36,.4);
  transform:translateY(120px);opacity:0;pointer-events:none;
  transition:transform .35s ease,opacity .35s ease}
.ab-loyalty-repcta.is-visible{transform:translateY(0);opacity:1;pointer-events:auto}

.ab-loyalty-repcta .rep-btn{display:inline-flex;align-items:center;justify-content:center;
  background:#EF7D48;color:#051124;font-family:Poppins,sans-serif;font-weight:700;font-size:14px;
  padding:13px 20px;border-radius:2px;letter-spacing:1.1px;text-transform:uppercase;white-space:nowrap;text-decoration:none}
.ab-loyalty-repcta .rep-btn:hover{background:#E46C34;color:#FFFFFF}
/* ========================================================================== */
/* RESPONSIVE. Breakpoints follow the prototype; the two-column programme     */
/* grids stack through Elementor's own tablet width controls at 1024.         */
/* ========================================================================== */
@media (max-width:1100px){
  .ab-loyalty-tools{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:1024px){
  .ab-loyalty-proofgrid{grid-template-columns:1fr 1fr}
  /* the quote leads the proof row once it wraps */
  .ab-loyalty-quote{grid-column:1 / -1}
}
/* Doors hold three across down to ~960 (measured at 1000: 298px each, nothing
   overflows), so tablet landscape keeps the three-doors moment. */

@media (max-width:900px){
  .ab-loyalty-grid3,.ab-loyalty-valuex,.ab-loyalty-tiers{grid-template-columns:1fr}
  .ab-loyalty-moneywall{grid-template-columns:repeat(2,1fr)}
  .ab-loyalty-proofgrid{grid-template-columns:1fr}
  /* phases become a vertical timeline: rail on the left, disc beside the text */
  .ab-loyalty-phases ol{grid-auto-flow:row}
  .ab-loyalty-phases ol::before{left:17px;right:auto;top:17px;bottom:17px;height:auto;width:2px}
  .ab-loyalty-phases li{display:grid;grid-template-columns:34px 1fr;gap:14px;padding:0 0 20px 0}
  .ab-loyalty-phases li:last-child{padding-bottom:0}
  .ab-loyalty-phases li::before{margin-bottom:0}
}
@media (max-width:767px){
  .ab-loyalty-tools{grid-template-columns:1fr}
  .ab-loyalty-levels{padding:22px 18px}
  .ab-loyalty-levels .lv-result{grid-template-columns:1fr;gap:14px}
  .ab-loyalty-levels .lv-head h4{font-size:17px}
  .ab-loyalty-levels .lv-rate{font-size:27px}
  /* four threshold labels will not fit one row on a phone */
  .ab-loyalty-levels .lv-marks{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 14px;
    text-align:left}
  .ab-loyalty-subk{padding:28px 0 12px}
  .ab-loyalty-statlist dt{font-size:21px}
  
  /* full-width tap targets, and the button row must not stay a cramped row */
  .ab-loyalty-btns{flex-direction:column;align-items:stretch}
  .ab-loyalty-btn .elementor-button{width:100%}
  

  /* ---- mobile reading sizes -------------------------------------------
     19px ledes are a desktop measure; on a 350px column they run 4-5 words a
     line and stretch the page. Body copy steps down, headings keep their
     hierarchy. Copy is untouched - this is size only. */
  .ab-loyalty-lede p{font-size:17px}
  .ab-loyalty-pmast-lede p,.ab-loyalty-headlede p{font-size:16.5px}
  .ab-loyalty-helpcopy p{font-size:16.5px}

  /* ---- mobile density -------------------------------------------------
     Same section padding as Breeze Lab (56/20); the length came from internal
     spacing, so that is what tightens. */
  .ab-loyalty-subk{padding:24px 0 10px}
  
  .ab-loyalty-forwho{margin-bottom:20px}
  
  

  /* ---- touch targets --------------------------------------------------
     Every secondary link was a 19-22px line of text. There is no hover on
     touch, so these are the only affordance and they have to be thumbable. */
  .ab-loyalty-door-link p a,
  .ab-loyalty-tool-links li a,
  .ab-loyalty-helpcross p a,
  .ab-loyalty-finsub p a,
  table.ab-loyalty-cmp td.txt a{display:inline-flex;align-items:center;min-height:44px}
  /* Links that sit mid-sentence (the bridge lines between programmes) stay inline
     prose - stretching those to 44px would break the sentence they live in. */
  
  
}
@media (max-width:640px){
  .ab-loyalty-repcta{left:14px;right:14px;bottom:14px;justify-content:space-between;
    padding:10px 10px 10px 18px}
  
}
@media (max-width:460px){
  .ab-loyalty-moneywall{grid-template-columns:1fr}
}

/* ==========================================================================
   PROGRAMME SIGNUP POPUP (#ab-lym)
   Overlay geometry, the scrolling dialog and the close button mirror the Breeze
   Lab sales-rep modal (.ab-srm) so both modals move and feel identical.
   The dialog's white card, orange top rule, radius, shadow and padding are set
   on the Elementor container, not here, so they stay editable in the UI.
   ========================================================================== */
.ab-lym{display:none;position:fixed;inset:0;z-index:99990;padding:20px;
  background:rgba(5,17,36,.8)}
.ab-lym.is-open{display:flex;align-items:center;justify-content:center}
.ab-lym .ab-lym__dialog{position:relative;max-width:calc(100vw - 40px);max-height:88vh;
  overflow-y:auto;-webkit-overflow-scrolling:touch}
/* HubSpot's wrapper otherwise shrink-wraps; keep every dialog row full width */
.ab-lym__dialog>.elementor-widget,.ab-lym__dialog>.e-con{width:100%}

/* only the active programme's header shows */
.ab-lym .ab-lym-head{display:none!important}
.ab-lym.is-boost .ab-lym-head--boost,
.ab-lym.is-cert .ab-lym-head--cert,
.ab-lym.is-pro .ab-lym-head--pro,
.ab-lym.is-rep .ab-lym-head--rep{display:flex!important}
.ab-lym-eyebrow span{opacity:.55;padding:0 4px}
.ab-lym-copy p{margin:0}

/* only the active programme's form slot shows. Inactive slots stay in the DOM
   with their mounted iframe untouched, so reopening never remounts a form. */
.ab-lym-slot{display:none;margin-top:18px}
.ab-lym.is-boost #ab-lyf-boost,
.ab-lym.is-cert #ab-lyf-cert,
.ab-lym.is-pro #ab-lyf-pro,
.ab-lym.is-rep #ab-lyf-rep{display:block}
/* HubSpot mounts the form in an iframe set to height:100% and then writes an
   inline height onto .hs-form-frame from a postMessage. If that message is late,
   lost, or the frame was measured while hidden, the inline height is 0px and the
   dialog looks empty. min-height is a floor HubSpot's inline height cannot
   override, and it never truncates: the frame still grows past it. */
.ab-lym-slot .hs-form-frame{min-height:520px}
.ab-lym-slot iframe{width:100%!important;max-width:100%!important;border:0;display:block;
  min-height:inherit}
@media (max-width:768px){.ab-lym-slot .hs-form-frame{min-height:460px}}
.ab-lym-loading{margin:0;padding:28px 0;text-align:center;font-family:Poppins,sans-serif;
  font-size:14px;color:#565C66}
.ab-lym-noscript{margin:18px 0 0;font-family:Poppins,sans-serif;font-size:15px;color:#051124}

/* The X is pinned, not parked. Its wrapper is a zero-height sticky strip at the
   top of the scrolling dialog, so on a long HubSpot form the close button rides
   down with the scroll instead of disappearing off the top - measured at 390px
   with a 1400px form, where an absolutely-positioned X ended up 786px above the
   viewport. (Breeze Lab's .ab-srm__x has the same issue and the same one-line
   fix would apply there.) */
.ab-lym-xwrap{position:sticky;top:0;z-index:6;height:0;overflow:visible}
/* close button: 44px tap target, insulated from the kit's global button styling */
.ab-lym__x{position:absolute;top:4px;right:6px;z-index:5;width:44px;height:44px;min-width:44px;
  padding:0!important;border:0!important;background:transparent!important;color:#051124!important;
  font-family:inherit!important;font-size:30px!important;font-weight:400!important;
  line-height:1!important;letter-spacing:0!important;text-transform:none!important;cursor:pointer;
  border-radius:50%!important;box-shadow:none!important}
.ab-lym__x:hover,.ab-lym__x:focus{background:rgba(5,17,36,.07)!important;color:#EF7D48!important}
.ab-lym__x:focus-visible{outline:2px solid #EF7D48;outline-offset:2px}

@media (max-width:768px){
  .ab-lym{padding:12px}
  .ab-lym .ab-lym__dialog{max-width:calc(100vw - 24px);max-height:92vh}
}

/* ==========================================================================
   THE JUMP MAP + PROGRAMME PANELS (v10)

   Four ideas, one page: a Breeze Lab-style jump map, a chooser that lets a
   contractor self-select, three programmes that stay collapsed, and one
   internal skeleton shared by all three.

   Surfaces run WHITE -> BLUE -> NAVY across the three programmes. That is a
   relationship deepening, not a ladder: nothing here numbers or locks them.

   Behaviour: wp-content/novamira-sandbox/ab-loyalty-journey.php
   Colours are the Elementor kit's own (Dark Blue #051124, Tertiary #244984).
   ========================================================================== */
body{
  --nv:#051124; --blu:#244984; --blu2:#346AC1; --or:#EF7D48; --or2:#E46C34;
  --ink:#3E3E3E; --mut:#5C636D; --line:#E1E5EA; --line2:#CFD6DE;
  --pin:var(--ab-pin,0px); --jh:var(--ab-jump-h,0px);
}

/* ---------------------------------------------------------------- the hero
   Vincent: "remove the opacity on the hero and just have it be the image."
   The navy gradient scrim is off. The photograph is dark on its left third,
   which is where the copy sits, and the H1/deck keep their text-shadows - but
   this now depends on the IMAGE, not on a guaranteed overlay. Any future hero
   swap has to be checked for legibility rather than assumed. */
.ab-loyalty-pagehead::before{display:none}

/* every jump target has to clear the site header AND the sticky map */
#programs,#breeze-boost,#certified-installer,#pro-advantage,
#estimator,#proof,#faq,#help{
  scroll-margin-top:calc(var(--pin) + var(--jh) + 14px)}

/* ============================================================== JUMP MAP
   A compact contractor menu, not a second website navbar. Navy, white type,
   and orange used only to say "you are here".
   ======================================================================== */
/* ==================================== JUMP MAP = BREEZE LAB'S JOURNEY RAIL
   This IS Breeze Lab's rail, reused rather than reproduced. The markup now
   carries Breeze Lab's own class names as well as this page's, and every rule
   in this block and the item block further down is a VERBATIM COPY of the
   "Breeze Lab - Journey rail (sticky page navigation)" block in page 8682's
   custom CSS - same values, same states, same breakpoints. Swap the labels and
   the two bars are the same component.
   SOURCE OF TRUTH: page 8682 -> Page Settings -> Custom CSS. If that block
   changes, re-copy this one; do not edit one without the other.
   The ab-jump__* names are kept purely as JS hooks (scroll spy, arrows,
   auto-centring), so no behaviour had to be rewritten.
   ======================================================================== */
.ab-jumpw.jn{position:relative;display:flex;align-items:stretch;gap:0;background:#051124;
  border-top:1px solid rgba(255,255,255,.10);border-bottom:2px solid rgba(239,125,72,.55)}
/* ---- the rail box: Breeze Lab's geometry, measured off the live page ----
   There the rail sits inside a boxed 1600 container and bleeds 10px each side,
   which nets out to a 1620 box, centred, with a minimum side gutter that steps
   down with the container's own padding. This page's rail is not inside that
   container, so the same result is stated directly. Measured on 8682:
   x148/w1620 @1916, w1405 @1449, w936 @963, x12/w374 @398 - the values below
   reproduce all four. */
.ab-jumpw.jn{max-width:1620px;margin-left:auto;margin-right:auto}
.ab-jump{padding-left:22px;padding-right:22px}
@media (max-width:1024px){.ab-jump{padding-left:14px;padding-right:14px}}
@media (max-width:768px){.ab-jump{padding-left:12px;padding-right:12px}}
.jn-scroll{display:flex;align-items:stretch;gap:0;overflow-x:auto;overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;flex:1 1 auto}
.jn-scroll::-webkit-scrollbar{display:none}

/* ---- rail nudge buttons ---- */
.jn-nudge{flex:0 0 auto;width:40px;border:0;background:#051124;color:#FFFFFF;cursor:pointer;
  display:grid;place-items:center;padding:0}
.jn-nudge[hidden]{display:none}
.jn-nudge svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round}
.jn-nudge:hover{color:#EF7D48}
.jn-nudge:focus-visible{outline:2px solid #EF7D48;outline-offset:-3px}
/* The kit's global button rule bleeds into these <button>s; its 32px vertical
   padding alone inflates the whole rail. Shield the box model too. */
.ab-jumpw.jn .jn-nudge{background:#051124!important;color:#FFFFFF!important;border-radius:0!important;
  display:grid!important;place-items:center!important;padding:0!important;margin:0!important;
  min-height:0!important;height:auto!important;line-height:1!important;box-shadow:none!important}

/* =============================================================== CHOOSER
   The real entrance. Three snapshots, one family, brand blue doing the work.
   ======================================================================== */
.ab-choose__head{max-width:640px;margin:0 0 40px}
.ab-chgrid{--display:grid;display:grid;grid-template-columns:repeat(3,1fr);
  gap:22px;align-items:stretch}
.ab-ch{--width:auto;position:relative;width:auto;border-radius:14px;
  padding:32px 30px 30px;overflow:hidden;
  transition:transform .26s cubic-bezier(.2,.7,.2,1),box-shadow .26s ease}
.ab-ch:hover{transform:translateY(-3px);
  box-shadow:rgba(5,17,36,.28) 0 18px 44px}
/* surfaces + every child colour live in the chooser variant block */
.ab-ch::before{content:"";position:static;display:block;width:44px;height:3px;
  background:var(--or);margin:0 0 20px;border-radius:2px}

/* Orange reaches only 3.3:1 on brand blue, so the label goes white there. On
   the navy and white cards it clears its threshold and stays orange. */
.ab-ch__eyebrow{font:700 11px/1 Poppins,sans-serif;letter-spacing:2px;
  text-transform:uppercase;margin:0 0 14px}
.ab-ch__quote{font:500 italic 15px/1.4 Poppins,sans-serif;margin:0 0 6px}
.ab-ch__name{margin:0 0 18px}
/* _css_classes lands on the widget wrapper, so the flex has to go on the <p>
   the editor actually renders - otherwise the two spans sit inline with no gap */
.ab-ch__stat{padding:0 0 18px;margin:0 0 18px;border-bottom:1px solid}
.ab-ch__stat p{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:0}
.ab-ch__stat .n{font:800 40px/1 Poppins,sans-serif;letter-spacing:-1px}
.ab-ch__stat .l{font:600 12.5px/1.3 Poppins,sans-serif;max-width:14ch}
.ab-ch__desc p{margin:0;font-size:15px;line-height:1.55}
/* Two real actions: primary filled, secondary outlined. Same height, padding,
   type and radius, so only weight separates them. No arrows on either. */
.ab-ch__acts{margin-top:auto;padding-top:24px;display:flex;
  flex-direction:column;align-items:stretch;gap:12px}
/* the kit colours every anchor orange-on-light / navy elsewhere; these cards
   are dark surfaces, so the colour has to be forced back to white */
.ab-ch .ab-ch__go,
.ab-ch .ab-ch__signup .elementor-button{display:flex;align-items:center;
  justify-content:center;text-align:center;width:100%;min-height:50px;
  font:700 12.5px/1.25 Poppins,sans-serif;letter-spacing:1.1px;
  text-transform:uppercase;text-decoration:none!important;
  padding:13px 20px;border:2px solid;border-radius:2px;
  transition:background-color .2s ease,border-color .2s ease,color .2s ease}
.ab-ch .ab-ch__go{background:var(--ch-fill);border-color:var(--ch-fill);
  color:var(--ch-fill-ink)!important}
.ab-ch .ab-ch__go:hover{background:var(--ch-fill-h);
  border-color:var(--ch-fill-h);color:var(--ch-fill-ink)!important}
.ab-ch .ab-ch__signup .elementor-button{background:transparent!important;
  border-color:var(--ch-edge)!important;color:var(--ch-fg)!important}
.ab-ch .ab-ch__signup .elementor-button:hover{background:var(--ch-fill)!important;
  border-color:var(--ch-fill)!important;color:var(--ch-fill-ink)!important}

/* the whole snapshot is the tap target on touch; the inner links stay on top */
.ab-ch__go::before{content:"";position:absolute;inset:0;z-index:1}

.ab-ch{isolation:isolate}
/* ====================================================== PROGRAMME PANELS
   Collapsed by default. The header alone has to answer: what is it, what is
   the value, do I want to open it.
   ======================================================================== */
.ab-prog{position:relative}
.ab-prog__head{position:relative}
.ab-prog__head.is-hit{cursor:pointer}
/* Same kit bleed as the jump-map arrows: a bare <button> arrives with an
   orange fill, 32/48 padding and a radius. Here that painted a 1140x235 orange
   slab over the whole collapsed header. */
.ab-prog .ab-prog__hit{position:absolute;inset:0;width:100%!important;
  height:100%!important;min-height:0!important;
  background:none!important;background-color:transparent!important;
  border:0!important;border-radius:0!important;padding:0!important;
  margin:0!important;box-shadow:none!important;cursor:pointer;z-index:3;
  font-size:0;line-height:0}
.ab-prog__hit:focus-visible{outline:2px solid var(--or);outline-offset:-6px}
/* the chevron is drawn on the injected control, so it only exists with JS -
   which is also the only time the panel can collapse */
/* The chevron now lives in its own Elementor container, so it can be aligned
   with the container's own controls. CSS draws the glyph only. Elementor owns
   ::before on containers (position:absolute), so it has to be handed back. */
.ab-prog__chev::before{content:"";position:static;display:block;
  width:13px;height:13px;margin-top:-5px;
  border-right:2.5px solid currentColor;border-bottom:2.5px solid currentColor;
  transform:rotate(45deg);
  transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.ab-prog.is-open .ab-prog__chev::before{transform:rotate(-135deg)}

/* Layout, gaps, widths and alignment for the header are Elementor container
   settings now - nothing here positions anything. Margins are zeroed so the
   container gap controls are the single source of vertical rhythm. */
.ab-prog__eyebrow{font:700 11px/1 Poppins,sans-serif;letter-spacing:2px;
  text-transform:uppercase;margin:0}
.ab-prog__name,.ab-prog__promise{margin:0}
/* the one thing the container Width control cannot express: take the slack */
.ab-prog__row>.ab-prog__hl{flex:1 1 260px;min-width:0}
/* value figure + descriptor are two heading widgets in a container now; their
   type and colour are set per widget in Elementor */
.ab-prog__valn,.ab-prog__vall{margin:0}

/* ---- surfaces: white -> blue -> navy ---- */
.ab-prog--white{background:#FFFFFF;border-top:1px solid var(--line)}
.ab-prog--blue{background:var(--blu);color:#FFFFFF}
.ab-prog--navy{background:var(--nv);color:#FFFFFF}
.ab-prog--white .ab-prog__chev{color:var(--blu)}
.ab-prog--blue .ab-prog__chev,.ab-prog--navy .ab-prog__chev{color:rgba(255,255,255,.85)}
.ab-prog--white .ab-prog__eyebrow{color:var(--blu)}
.ab-prog--blue .ab-prog__eyebrow{color:#FFFFFF}   /* orange is 3.3:1 on blue */
.ab-prog--navy .ab-prog__eyebrow{color:var(--or)}
/* an orange rule under the open header is the only "state" colour here */
.ab-prog__head::after{content:"";position:absolute;left:0;bottom:0;height:3px;
  width:0;background:var(--or);transition:width .34s cubic-bezier(.2,.7,.2,1)}
.ab-prog.is-open .ab-prog__head::after{width:64px}

/* ---- the body ----
   Certified's expanded area is WHITE on a blue header, exactly as briefed. Its
   widgets were written for a light surface, so this keeps them legible without
   recolouring three dozen of them - and it means Boost and Certified read
   identically once open. Pro Advantage stays dark: its content was already
   rewritten for navy, and the destination is meant to feel different. */
.ab-prog__body{overflow:hidden;height:auto}
.ab-prog__inner{padding:8px 0 46px}
/* THE PROGRAM OWNS THE BACKGROUND. There is no master card behind a
   programme's body - the band's own colour runs from the header through to the
   end of the content, and individual modules sit on top of it. Certified used
   to paint its whole body white, which read as a sticky note on blue. */
.ab-prog__intro p{margin:0 0 30px;font-size:18px;line-height:1.6;max-width:70ch}
.ab-prog--white .ab-prog__intro p{color:var(--ink)}
.ab-prog--blue .ab-prog__intro p,
.ab-prog--navy .ab-prog__intro p{color:rgba(255,255,255,.86)}

/* one skeleton, three programmes: B+C+D left, E+F right, G full width */
.ab-prog__grid{--display:grid;display:grid;grid-template-columns:1fr 380px;
  gap:0 56px;align-items:start}
.ab-prog__side{--width:auto;width:auto}

/* section labels inside a panel, identical in all three */
.ab-prog__body .ab-loyalty-kicker,.ab-prog__body .ab-loyalty-h3{margin-top:34px}
.ab-prog--navy .ab-prog__body .ab-loyalty-h3 .elementor-heading-title,
.ab-prog--blue .ab-prog__body .ab-loyalty-h3 .elementor-heading-title{color:#FFFFFF}

/* ---- G: one primary action, one quiet secondary ---- */
/* The helper sentence under the actions is secondary: it gets its own
   breathing room and a quieter weight, but stays clearly readable. The two
   buttons remain one grouped row. */
.ab-prog__bridge{margin-top:24px}
.ab-prog__bridge p{margin:0;font-size:15px;line-height:1.65}
.ab-prog--white .ab-prog__bridge p{color:#5C636D}
.ab-prog--blue .ab-prog__bridge p,.ab-prog--navy .ab-prog__bridge p{
  color:rgba(255,255,255,.74)}
@media (max-width:767px){.ab-prog__bridge{margin-top:20px}}

.ab-prog__cta{--display:flex;display:flex;align-items:center;gap:20px;
  flex-wrap:wrap;margin-top:38px;padding-top:30px;
  border-top:1px solid var(--line)}
.ab-prog--navy .ab-prog__cta{border-top-color:rgba(255,255,255,.18)}
.ab-prog__tools{margin-top:26px}

/* ---- Certified's extra material is a secondary layer, not a second page ---- */
.ab-prog__more{margin-top:38px;padding-top:30px;
  border-top:1px solid var(--line)}
.ab-prog--navy .ab-prog__more{border-top-color:rgba(255,255,255,.18)}
.ab-prog--navy /* Modules on a coloured band are tonal objects, not white cards. Borders and
   a light tint do the separating so the band still owns the surface. */
.ab-prog--blue .ab-loyalty-gcard,.ab-prog--navy .ab-loyalty-gcard,
.ab-prog--blue .ab-loyalty-vx,.ab-prog--navy .ab-loyalty-vx{
  background:rgba(255,255,255,.08)!important;
  border:1px solid rgba(255,255,255,.18)!important}
.ab-prog--blue .ab-loyalty-gcard *,.ab-prog--blue .ab-loyalty-vx *{color:#FFFFFF}
.ab-prog--blue .ab-loyalty-forwho{background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.18)}

/* ------------------------------------------- Breeze Bucks: active tier --
   The orange outline follows the calculator's projected tier instead of
   living permanently on Tier 3. .is-top keeps its "TOP RATE" label but loses
   the selected look; .is-active is the state, driven by the calculator. */
.ab-loyalty-tier{transition:border-color .2s ease,box-shadow .2s ease,
  background-color .2s ease,transform .2s cubic-bezier(.2,.7,.2,1)}

.ab-loyalty-tier.is-active{border-color:#EF7D48!important;
  background:rgba(239,125,72,.10)!important;
  box-shadow:0 0 0 1px #EF7D48,0 10px 30px rgba(239,125,72,.22)!important;
  transform:translateY(-2px)}
.ab-loyalty-tier.is-active .ab-loyalty-tier-k,
.ab-loyalty-tier.is-active .elementor-heading-title{color:#EF7D48}
@media (prefers-reduced-motion:reduce){
  .ab-loyalty-tier{transition:none}
  .ab-loyalty-tier.is-active{transform:none}
}

/* =============================================================== ESTIMATOR
   Lives inside the Pro Advantage panel now, between "what you get" and the
   enrol CTA. Same divider language as the actions row so the panel still reads
   as one skeleton. */

.ab-prog .ab-est{margin-top:38px;padding-top:30px;
  border-top:1px solid rgba(255,255,255,.18)}
.ab-prog .ab-est .ab-loyalty-h3{margin-bottom:22px}
/* ==================================================== BUTTONS + LEFTOVERS
   Fills, text and borders are set on the widgets (Elementor's generated
   .elementor-element-<id> rules outbid page CSS). This block owns the arrow,
   the lift, and the places the kit still leaks orange into things that are
   not progress.
   ======================================================================== */
.ab-loyalty-btn .elementor-button{
  transition:background-color .22s ease,border-color .22s ease,color .22s ease,
    transform .22s cubic-bezier(.2,.7,.2,1),box-shadow .22s ease}
.ab-loyalty-btn .elementor-button:hover{transform:translateY(-1px);
  box-shadow:rgba(5,17,36,.16) 0 6px 18px}
.ab-loyalty-btn .elementor-button:active{transform:translateY(0);box-shadow:none}

/* orange appears in a call to action as the arrow, never as the fill */

/* secondary earns an orange hairline on hover, nothing at rest */

/* The closing band is navy now, so its inline link comes back the other way.
   Its own rule is .ab-loyalty-final .ab-loyalty-finsub p a - three classes -
   so this has to match that specificity, not merely follow it. */

/* An open FAQ answer is a selected state, which orange is allowed to mark. */
#faq .elementor-tab-title{transition:color .2s ease}
#faq .elementor-tab-title.elementor-active{color:#051124}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1024px){
  .ab-chgrid{grid-template-columns:1fr 1fr;gap:18px}
  .ab-prog__grid{grid-template-columns:1fr;gap:0}
  .ab-prog__side{margin-top:34px}
  
}
@media (max-width:860px){
  .ab-chgrid{grid-template-columns:1fr;gap:16px}
  .ab-ch{padding:28px 24px 26px}
}
@media (max-width:767px){
  .ab-prog__chev::before{width:11px;height:11px}
  .ab-prog__inner{padding:4px 0 36px}
  .ab-prog__intro p{font-size:16.5px}
  .ab-prog__cta{flex-direction:column;align-items:stretch;gap:14px}
  .ab-prog__cta .ab-loyalty-btn{width:100%}
  .ab-ch__stat .n{font-size:34px}
  
}

/* --------------------------------------------------------- reduced motion */
@media (prefers-reduced-motion:reduce){
  .ab-ch,.ab-prog__chev::before,.ab-prog__head::after,
  .ab-jump__i::after,.ab-jump__in{transition:none;scroll-behavior:auto}
  .ab-ch:hover{transform:none}
}
/* No JS: nothing collapses, so every programme is simply open and readable. */
.ab-prog__body{height:auto}
/* ------------------------------------------------------ floating rep pill */
.ab-loyalty-repcta{align-items:stretch;gap:0;padding:0;overflow:hidden;
  background:#EF7D48;border-color:rgba(255,255,255,.26);
  transition:background-color .22s ease,box-shadow .22s ease,
    transform .35s ease,opacity .35s ease}
/* one label, centred - the generic phone number is gone */
.ab-loyalty-repcta{justify-content:center}
/* the CTA is typography inside the pill now, with no fill of its own */
.ab-loyalty-repcta .rep-btn{align-self:stretch;display:flex;align-items:center;
  border-radius:0;padding:16px 30px;background:none!important;
  background-color:transparent!important;border:0!important;
  color:#FFFFFF!important;box-shadow:none!important}
.ab-loyalty-repcta .rep-btn::after{content:none!important;display:none!important}

/* hover: quiet. One step deeper, a little more lift. Not navy. */
.ab-loyalty-repcta:hover{background:#E46C34;
  box-shadow:0 18px 40px rgba(5,17,36,.46)}
.ab-loyalty-repcta:hover .rep-btn{background:none!important;color:#FFFFFF!important}

/* press = activated. The whole pill turns navy, text stays white. */
.ab-loyalty-repcta:active,
.ab-loyalty-repcta.is-activated,
.ab-loyalty-repcta:has(.rep-btn:active){background:#051124;
  box-shadow:0 10px 26px rgba(5,17,36,.5)}
.ab-loyalty-repcta:active .rep-btn,
.ab-loyalty-repcta.is-activated .rep-btn,
.ab-loyalty-repcta:has(.rep-btn:active) .rep-btn{color:#FFFFFF!important}

/* keyboard users get the same confirmation, plus a visible ring */
.ab-loyalty-repcta:focus-within{background:#051124}
.ab-loyalty-repcta .rep-btn:focus-visible{outline:2px solid #FFFFFF;
  outline-offset:-4px}

@media (max-width:767px){
  .ab-loyalty-repcta{padding:0}
  .ab-loyalty-repcta .rep-btn{padding:14px 24px}
}
/* ======================================================= CHOOSER (v10.2)
   WHITE -> BLUE -> NAVY, matching the collapsed rows underneath.
   ======================================================================== */
.ab-ch{
  /* dark surfaces are the default */
  --ch-fg:#FFFFFF;            --ch-soft:rgba(255,255,255,.82);
  --ch-quote:rgba(255,255,255,.72); --ch-line:rgba(255,255,255,.20);
  --ch-eye:#FFFFFF;           --ch-edge:rgba(255,255,255,.55);
  --ch-fill:#FFFFFF;          --ch-fill-ink:#051124;
  --ch-fill-h:#EDF0F3;
  --ch-border:transparent;
  color:var(--ch-fg);
  border:1px solid var(--ch-border);
}
.ab-ch--c{background:var(--blu)}
.ab-ch--p{background:var(--nv);--ch-eye:var(--or)}
/* the light card: one block, every child follows the variables */
.ab-ch--b{background:#FFFFFF;
  --ch-fg:#051124;            --ch-soft:#3E3E3E;
  --ch-quote:#6F7680;         --ch-line:#DCE2E9;
  --ch-eye:var(--blu);         --ch-edge:#051124;
  --ch-fill:#051124;          --ch-fill-ink:#FFFFFF;
  --ch-fill-h:#0C1D38;
  --ch-border:#DCE2E9;
}

.ab-ch__eyebrow{color:var(--ch-eye)}
.ab-ch__quote{color:var(--ch-quote)}
.ab-ch__stat{border-bottom-color:var(--ch-line)}
.ab-ch__stat .n{color:var(--ch-fg)}
.ab-ch__stat .l{color:var(--ch-quote)}
.ab-ch__desc p{color:var(--ch-soft)}
/* the primary is FILLED, so its label takes the fill's ink - not --ch-fg,
   which is the card's body colour and would match the fill exactly */
.ab-ch .ab-ch__go{color:var(--ch-fill-ink)!important;
  border-color:var(--ch-fill)!important}

/* ---- programme mark ----
   No plate. The artwork is genuinely transparent (verified: corner alpha 0),
   so the badge sits directly on the programme surface - white, blue, navy.
   Sized by visual footprint rather than by forcing identical pixel boxes,
   because the three marks have different proportions. */
/* One logo zone, same height in all three cards, mark centred inside it.
   Only the mark is centred - the orange rule and every line of copy stay on
   the left text grid. */
.ab-ch__mark{align-self:stretch;display:flex;align-items:center;
  justify-content:center;background:none;min-height:164px}
.ab-ch__mark img{display:block;width:auto;height:164px;max-width:100%;
  object-fit:contain;object-position:center}

@media (max-width:1024px){
  .ab-ch__mark,.ab-ch__mark img{height:108px}
}
@media (max-width:767px){
  .ab-ch__mark{margin-bottom:16px;min-height:92px}
  .ab-ch__mark img{height:66px}
}
/* THE STICKY CONTEXT - the one part that cannot be copied from Breeze Lab.
   There the rail is a top-level Elementor container. Here it is shortcode
   output four wrappers deep (container > widget > widget-container >
   .elementor-shortcode), each only as tall as the nav, so sticky had ~0px of
   travel. display:contents dissolves those wrapper boxes without touching the
   markup, making .ab-jump a direct child of .ab-loy-wrap. Miss any one of the
   four and sticky still has nowhere to go. */
.ab-loy-jumpwrap,
.ab-loy-jumpwrap .elementor-widget-shortcode,
.ab-loy-jumpwrap .elementor-widget-container,
.ab-loy-jumpwrap .elementor-shortcode{display:contents}

/* .ab-jump is raw markup, not an Elementor container, so it never gets the
   --width:100% every container child receives. It is the sticky element; all
   the visible chrome lives on .ab-jumpw.jn, exactly as it does on Breeze Lab. */
.ab-jump{width:100%;align-self:stretch;
  position:sticky;top:var(--pin);z-index:60;background:#051124}

/* ---- destination: icon over title, centred ---- */
.jn .jn-item{flex:1 0 auto;min-width:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;gap:8px;
  padding:15px 20px 14px;text-decoration:none!important;color:rgba(255,255,255,.72);
  border-right:1px solid rgba(255,255,255,.10);
  transition:background-color .18s ease,color .18s ease}
.jn .jn-item:last-child{border-right:0}
.jn .jn-item:hover:not([aria-current="true"]){background:rgba(255,255,255,.07);color:#FFFFFF}
.jn .jn-item[aria-current="true"]:hover{background:#E46C34}
.jn .jn-item:focus-visible{outline:2px solid #EF7D48;outline-offset:-3px}

.jn-ic{display:grid;place-items:center;width:26px;height:26px;color:#FFFFFF}
.jn-ic svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round}
.jn-t{font-family:Poppins,sans-serif;font-weight:700;font-size:12.5px;letter-spacing:.06em;
  text-transform:uppercase;line-height:1.25;color:#FFFFFF;white-space:nowrap}

/* ---- active destination ---- */
.jn .jn-item[aria-current="true"]{background:#EF7D48;color:#FFFFFF}
.jn .jn-item[aria-current="true"] .jn-ic,
.jn .jn-item[aria-current="true"] .jn-t{color:#FFFFFF}

/* ---- tablet ---- */
@media (max-width:1024px){
  .jn .jn-item{padding:13px 16px 12px;gap:7px}
  .jn-ic{width:24px;height:24px}
}
/* ---- phones: swipeable icon + title rail ---- */
@media (max-width:767px){
  .jn .jn-item{flex-direction:row;align-items:center;justify-content:flex-start;text-align:left;gap:8px;padding:12px 14px}
  .jn-ic{width:20px;height:20px}
  .jn-t{font-size:11.5px}
  .ab-jumpw.jn .jn-nudge,.ab-jumpw.jn .jn-nudge--l,.ab-jumpw.jn .jn-nudge--r{display:none!important}
}
@media (prefers-reduced-motion:reduce){
  .jn .jn-item{transition:none}
  .jn-scroll{scroll-behavior:auto}
}
/* ================================================ CTA ARROWS: OFF =======
   The typography and the fill carry the button. A decorative glyph on every
   CTA reads fussy. (Arrows written INTO copy - "Or sign up now →" - are copy
   and are left alone.) */
.ab-loyalty-btn--primary .elementor-button-text::after,
.ab-loyalty-btn--onnavy .elementor-button-text::after,
.ab-ch .ab-ch__go::after{content:none!important;display:none!important}
.ab-ch .ab-ch__go{gap:0}

/* ============================================ HOW IT WORKS (progress track)
   One interaction language in all three programmes; only the palette changes
   with the surface.
   ======================================================================== */
.ab-loyalty-phases{--ph-node:#051124;--ph-line:#DCE2E9;--ph-title:#051124;
  --ph-copy:#565C66;--ph-copy-on:#3E3E3E;--ph-num:#051124;
  /* The completed tick. This used to be a CSS unicode escape inside a content
     property; update_post_meta unslashes what it stores, the backslash was
     stripped, and every completed circle printed the bare digits instead of a
     tick. An inline SVG built with rawurlencode contains no backslash at all,
     so unslashing has nothing to strip, and it does not depend on the font
     shipping a tick glyph. Never put an escape sequence in this stylesheet. */
  --ph-tick:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23FFFFFF%22%20stroke-width%3D%223.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%2012.6l4.7%204.7L19%207.6%22%2F%3E%3C%2Fsvg%3E")}
.ab-prog--blue .ab-loyalty-phases,.ab-prog--navy .ab-loyalty-phases{
  --ph-node:rgba(255,255,255,.55);--ph-line:rgba(255,255,255,.22);
  --ph-title:#FFFFFF;--ph-copy:rgba(255,255,255,.78);
  --ph-copy-on:#FFFFFF;--ph-num:#FFFFFF}

.ab-loyalty-phases ol{counter-reset:ph;list-style:none;margin:0;padding:0;
  display:flex;gap:0;position:relative}
/* the old single grey rule behind everything is replaced by per-step segments
   so the track can fill progressively */
.ab-loyalty-phases ol::before{display:none!important}

.ab-loyalty-phases li{position:relative;flex:1 1 0;min-width:0;
  padding:0 20px 0 0;cursor:pointer;list-style:none}
.ab-loyalty-phases li::marker{content:""}
/* Connector: a SEGMENT between two nodes, with clear air either side. It no
   longer starts at the row edge and run under the circles, which is what made
   it read as a divider slicing through them. The nodes lead; the connector
   supports. It fills only once its step is behind you. */
.ab-loyalty-phases li::after{content:"";position:absolute;
  left:50px;right:12px;top:18px;height:2px;border-radius:2px;
  background:var(--ph-line);z-index:0;
  transition:background-color .22s ease}
.ab-loyalty-phases li:last-child::after{display:none}

/* node */
.ab-loyalty-phases li::before{counter-increment:ph;
  content:counter(ph,decimal-leading-zero);
  position:relative;z-index:2;display:flex;align-items:center;
  justify-content:center;width:38px;height:38px;border-radius:50%;
  border:2px solid var(--ph-node);background:transparent;color:var(--ph-num);
  font:800 12px/1 Poppins,sans-serif;letter-spacing:.4px;margin:0 0 16px;
  transition:background-color .2s ease,border-color .2s ease,color .2s ease,
    transform .2s cubic-bezier(.2,.7,.2,1)}

.ab-loyalty-phases li b{display:block;font:800 16px/1.25 Poppins,sans-serif;
  letter-spacing:-.2px;color:var(--ph-title);margin:0 0 6px;
  transition:color .2s ease}
/* Emphasis is carried by colour, never by opacity - fading the inactive copy
   dropped it to 4.03:1 on white. */
.ab-loyalty-phases li span{display:block;font-size:14.5px;line-height:1.5;
  color:var(--ph-copy);transition:color .2s ease}

/* ---- reached: node fills, numeral becomes a tick, the track behind it fills */
.ab-loyalty-phases li.is-done::before{content:"";
  background:var(--or) var(--ph-tick) center/16px 16px no-repeat;
  border-color:var(--or)}
.ab-loyalty-phases li.is-done::after{background:var(--or)}

/* ---- current: orange ring, no fill - it is where you are, not what you did */
.ab-loyalty-phases li.is-active::before{border-color:var(--or);
  color:var(--or);background:transparent;transform:scale(1.06);
  box-shadow:0 0 0 5px rgba(239,125,72,.14)}
.ab-loyalty-phases li.is-active b{color:var(--ph-title)}
.ab-loyalty-phases li.is-active span{color:var(--ph-copy-on)}

/* ---- every step behind you: the whole track locked in ---- */
.ab-loyalty-phases ol.is-complete li::before{content:"";
  background:var(--or) var(--ph-tick) center/16px 16px no-repeat;
  border-color:var(--or);transform:none;box-shadow:none}
.ab-loyalty-phases ol.is-complete li::after{background:var(--or)}
.ab-loyalty-phases ol.is-complete li:last-child::before{
  box-shadow:0 0 0 6px rgba(239,125,72,.18)}
.ab-loyalty-phases ol.is-complete li b{color:var(--ph-title)}
.ab-loyalty-phases ol.is-complete li span{color:var(--ph-copy-on)}
/* one short settle, then it rests. No confetti, no pulsing loop. */
@keyframes abPhLock{0%{filter:brightness(1)}45%{filter:brightness(1.14)}100%{filter:brightness(1)}}
.ab-loyalty-phases ol.is-complete{animation:abPhLock .62s cubic-bezier(.2,.7,.2,1) 1}

.ab-loyalty-phases li:focus-visible{outline:2px solid var(--or);
  outline-offset:4px;border-radius:4px}

/* ---- mobile: a vertical rail reads better than five cramped columns ---- */
@media (max-width:860px){
  .ab-loyalty-phases ol{flex-direction:column;gap:0}
  .ab-loyalty-phases li{display:grid;grid-template-columns:38px 1fr;
    column-gap:16px;padding:0 0 22px 0}
  .ab-loyalty-phases li::before{margin:0;grid-row:1/3}
  .ab-loyalty-phases li::after{left:18px;right:auto;top:46px;bottom:10px;
    width:2px;height:auto}
  .ab-loyalty-phases li b{grid-column:2;margin-top:9px}
  .ab-loyalty-phases li span{grid-column:2}
}
@media (prefers-reduced-motion:reduce){
  .ab-loyalty-phases li::before,.ab-loyalty-phases li::after,
  .ab-loyalty-phases li b,.ab-loyalty-phases li span{transition:none}
  .ab-loyalty-phases li.is-active::before{transform:none}
  .ab-loyalty-phases ol.is-complete{animation:none}
}

/* ============================================ PROGRAMME POLISH (v10.4) ===
   1. LOGO RAIL. Two separate things pushed the badges in from the rail.
      (a) The image box is wider than the artwork it paints: an Elementor
          widget rule (.elementor-element-loypmki img) sets width:320px while
          object-fit:contain only paints height x aspect, so on desktop a
          138px badge floated in the middle of a 320px box - ~91px of dead
          space on its left. object-position:left removes that.
      (b) Each PNG carries its own transparent padding, measured off the alpha
          channel: Boost 2%, Certified 8.75%, Pro 15.75% of image width.
      Together they inset the three logos by 94 / 101 / 113px - three
      different distances, which is why the column read as disconnected.
      The residual (b) is corrected differently in each regime because the box
      geometry differs: on desktop the box is 320x138 so the painted width is
      height-driven (138 x aspect) and a px offset is exact; at <=1024 the box
      is square and the artwork fills it edge to edge, so the offset is a plain
      percentage of the element's own width. Sizes are NOT touched - only the
      horizontal origin of the artwork moves. */       /* Boost     */ /* Certified */      /* Pro       */
@media (max-width:1024px){
  /* box is square here and the badge fills it, so the only offset left is the
     PNG's own padding - a percentage of the element's own width */
}

.ab-loyalty-forwho-list li,.ab-loyalty-plist li{padding-left:24px}
.ab-loyalty-forwho-list li::before,.ab-loyalty-plist li::before{
  width:8px;height:8px;top:.58em;border-radius:50%}

/* @ab-faq-v2-start =============================================
   TEAM (#help) - and where the FAQ CSS used to be.

   THE FAQ RULES THAT LIVED HERE ARE GONE. They styled Elementor accordion
   internals (.elementor-accordion-item / .elementor-tab-title /
   .elementor-tab-content) for the widget that has been replaced by the
   contractor-programs-faq-v2.html component. Every one of them was dead, and
   one was actively harmful: a 900px max-width bound to the shared ab-faq
   class, which the new section also carries, fighting its own 1120px.
   (Do not paste that body.elementor-page-8770 back into this comment - the write guard below
   greps the stylesheet for it and will abort on its own documentation.)
   The new component is self-contained - its <style> block ships with it.
   Old markup archived in option ab_loy_removed_faq_20260814.

   THE PHOTOGRAPH. The copy sits on a navy gradient scrim, heavy on the left
   where the text is, lifting toward the right so the room stays visible.
   Inline links are re-stated because the page default assumes a white surface.

   MIN-HEIGHT IS THE FIX FOR THE CROP, and it is worth explaining. The section
   is a short, very wide band with background-size:cover, so as the viewport
   grows the image has to scale UP to stay full-width and the visible strip of
   it gets SHORTER. Measured with the section at its natural 520px:
       1440 -> showed y 98..755 of the 768px-tall source
       1920 -> showed y 244..735
       2560 -> showed y 352..720   <- John cap top is y=280: CUT
   Lowering the focal point alone could not fix that; it just traded his head
   for the front row. Tying a floor height to the viewport width keeps the
   visible strip a constant ~490px of source at every width past 1920, so the
   composition stops drifting: 1800 * H / W is constant when H scales with W.
   27vw + the 520px floor, with background_ypos 82% set on the widget, lands
   the strip at y~227..718 from 1920 all the way up - about 50px of headroom
   above the cap, and the front table still in frame.
   ========================================================================= */
#help{min-height:520px}
@media (min-width:1281px){
  #help{min-height:max(520px,27vw)}
}

/* ---- one integration fix the new FAQ needs -----------------------------
   The supplied component styles its answer links `.ab-faq__a a` (0,2,0), but
   this page already ships `.ab-loyalty p a,.ab-loyalty li a,.ab-loyalty dd a`
   at (0,2,1) - one element more specific - and the FAQ sits inside a
   .ab-loyalty section, so every answer link came out navy instead of the
   component blue. Specificity decides before source order, so the supplied
   file could not win no matter where it loads.
   Restated here at (0,3,1) rather than editing the supplied stylesheet.
   Hover/focus already worked: `.ab-faq__a a:hover` is (0,3,1) on its own. */
/* LINK COLOUR 2026-08-14 (Vincent): FAQ answer links were rendering bright
   blue #346AC1. This rule - not the component - is what painted them: at
   (0,2,2) it outranks both `.ab-loyalty p a` and the component's own
   `.ab-faq__a a`. Now dark navy at rest, Attic Breeze orange on hover, with the
   same .18s ease used elsewhere in this FAQ. Bold and no-underline are
   unchanged. Scoped to .ab-faq__a, so only links INSIDE FAQ answers on this
   page are affected - nothing else on the site moves. */
.ab-loyalty .ab-faq__a p a,
.ab-loyalty .ab-faq__a li a,
.ab-loyalty .ab-faq__a td a{color:#051124;transition:color .18s ease}
.ab-loyalty .ab-faq__a p a:hover,
.ab-loyalty .ab-faq__a li a:hover,
.ab-loyalty .ab-faq__a td a:hover,
.ab-loyalty .ab-faq__a p a:focus-visible,
.ab-loyalty .ab-faq__a li a:focus-visible,
.ab-loyalty .ab-faq__a td a:focus-visible{color:#EF7D48}
/* @ab-faq-v2-end */

#help .ab-loyalty-helpcross a,#help .ab-loyalty-helpphone a,#help .ab-loyalty-helpcopy a{
  color:#FFFFFF;text-decoration:none}

/* @ab-help-mobile-start ==========================================
   #help ON MOBILE: A SOLID NAVY BAND, NO PHOTOGRAPH

   Desktop and tablet are untouched - the team photo, its overlay, the focal
   point and the vw-based min-height all still apply above this breakpoint.
   This is a mobile-only swap at the site's OWN breakpoint: Elementor's active
   breakpoints on this install are mobile 767 and tablet 1024, and 767 is what
   every other mobile rule on this page already uses.

   THREE things have to come off, not one, or the photo stays faintly visible:
     1. the photograph;
     2. the overlay - Elementor does NOT emit an .elementor-background-overlay
        div for these containers, it paints the gradient onto the section's
        ::before, so that is what has to go;
     3. the 520px floor, which exists only to give the photograph room. Without
        it the section sizes to its content (511px at 393) on the page's
        standard mobile 56/20 padding, same as every other mobile section.

   THE NAVY IS NOT A NEW VALUE. Elementor already carries background_color
   #051124 on this section as the fallback under the photo - the page's Dark
   Blue, the same one behind the Pro Advantage card and panel. Removing the
   image just reveals what was always underneath. It is restated below so the
   section can never fall through to transparent if that control is ever
   cleared in the builder.

   No !important anywhere: #help is an id (1,0,0) and Elementor's generated
   background rule is (0,4,0), so the cascade already favours these.

   WHAT THIS REPLACED: the old mobile block set background-position:68% center
   and re-declared the ::before scrim as a 180deg gradient tuned for contrast
   over the photo. Both are meaningless once the photo is gone.
   ======================================================================== */
@media (max-width:767px){
  #help{background-image:none;background-color:#051124;min-height:0}
  #help::before{display:none}
}
@ab-help-mobile-end */


/* =============================================== MOBILE PASS (v10.6) ====
   Measured on a real 390px viewport, not guessed:
   - the chooser logo zone was holding an image far bigger than the zone,
     because an Elementor per-widget rule (width:300px) outranks a plain
     media rule. (The collapsed programme badges were the same story; those
     rows are text only now, so those rules are gone.)
   - the floating rep CTA is fixed with nothing reserving space for it, so it
     sat on top of whatever was at the bottom of the scroll.
   The !important flags below exist only to outrank per-widget Elementor CSS;
   they are scoped to phones and to the chooser logo zone. */
@media (max-width:767px){
  .elementor-8770 .elementor-element .ab-ch__mark img{
    width:auto!important;height:72px!important;max-width:150px!important}
  .ab-ch__mark{min-height:0;margin-bottom:14px}

  /* Fixed CTA: full width thumb target, clear of the iOS home indicator, and
     the page reserves its height so the last content can always clear it. */
  .ab-loyalty-repcta{left:16px;right:16px;
    bottom:calc(14px + env(safe-area-inset-bottom,0px))}
  .ab-loyalty-repcta .rep-btn{display:flex;align-items:center;justify-content:center;
    width:100%;min-height:56px}

  /* The compare table is a horizontal scroller (780px of content in ~280px).
     It works, but nothing said so - this is the same edge cue as the jump map. */
  
  

}
/* One fixed CTA at a time - never stack it under an open form or the rep popup */
body:has(.ab-lym.is-open) .ab-loyalty-repcta,
body:has(.dialog-widget.elementor-popup-modal) .ab-loyalty-repcta{display:none}

/* @ab-ux0814-start ==========================================================
   LOYALTY UX PASS - 2026-08-14
   Page-scoped only: every body.elementor-page-8770 is one of this page's own ab-* classes.
   No kit rule, no global template and no sitewide stylesheet is touched.
   ========================================================================= */

/* --------------------------------------- 1. COLLAPSED PROGRAMME HEADERS ---
   The badge containers were deleted from the tree and the value block moved
   into the same column as the eyebrow, name and promise, so the header now
   reads down a single left edge with the chevron alone on the right.
   Layout, gaps, widths and alignment are all Elementor container controls -
   these three rules are the only parts a control cannot express. */
.ab-prog__row>.ab-prog__hl{flex:1 1 auto;min-width:0}
.ab-prog__val{--width:auto;width:auto;max-width:none;padding-top:4px}
.ab-prog__chev{flex:0 0 auto;align-self:center;margin-left:auto}

/* ------------------------------------------------------ 2. VERTICAL RHYTHM -
   Every section head on this page is eyebrow -> heading -> lede inside a
   container whose gap is 0, so the only spacing was leading and the three ran
   together. One rule set owns the rhythm now: an eyebrow belongs to the
   heading beneath it, and body copy under a heading is a new thought. */
.ab-loyalty .ab-loyalty-eyebrow{padding-bottom:16px}
.ab-loyalty .ab-loyalty-h2{padding-bottom:20px}
.ab-loyalty .ab-loyalty-h2+.elementor-widget-divider{padding-bottom:8px}
.ab-loyalty .ab-loyalty-lede p{line-height:1.62;max-width:66ch}
/* the hero deck sat 2px under the H1 - the tightest pair on the page */
.ab-loyalty-pagehead .ab-loyalty-h1{padding:10px 0 14px}
.ab-loyalty-pagehead .ab-loyalty-headlede{padding-bottom:2px}
/* a card is the same idea at a smaller size */
.ab-ch__eyebrow{padding-bottom:6px}
.ab-ch__name{padding-bottom:10px}
.ab-loyalty-tool-t{padding-bottom:4px}
@media (max-width:1024px){
  .ab-loyalty .ab-loyalty-h2{padding-bottom:17px}
}
@media (max-width:767px){
  .ab-loyalty .ab-loyalty-eyebrow{padding-bottom:13px}
  .ab-loyalty .ab-loyalty-h2{padding-bottom:14px}
  .ab-loyalty .ab-loyalty-lede p{line-height:1.6}
  /* a multi-line heading on a phone needs more leading than the desktop
     1.02-1.08, or the descenders sit on the line below */
  .ab-loyalty-h1 .elementor-heading-title{line-height:1.14}
  .ab-loyalty-h2 .elementor-heading-title{line-height:1.2}
}

/* ----------------------------------------------------------- 3. MOBILE HERO
   A phone gets its own crop (media 8824): navy at the top where the copy
   sits, blending into the contractor at his truck across the bottom. The
   copy never lands on the photograph, so no scrim is needed and the desktop
   image, crop and layout are untouched.
   The two CTAs stay on one row - the sitewide mobile rule stacks
   .ab-loyalty-btns, and it is overridden here for the hero only. */
@media (max-width:767px){
  .ab-loyalty-pagehead .ab-loyalty-btns{flex-direction:row;align-items:stretch}
  .ab-loyalty-pagehead .ab-loyalty-btns>.elementor-widget-button{flex:1 1 0;min-width:0}
  .ab-loyalty-pagehead .ab-loyalty-btn .elementor-button{width:100%;min-height:48px;
    white-space:normal;text-align:center;line-height:1.25}
  .ab-loyalty-headlede--mob p{max-width:32ch}
}

/* --------------------------------------------------------- 4. CHOOSER CARDS
   The logo starts on the same left edge as every line of copy under it, so
   the card reads as one aligned column: mark, eyebrow, name, value, copy, CTA. */
/* The mark is a COLUMN flex container, so the horizontal edge is align-items;
   justify-content is the vertical axis here and stays centred. */
.ab-ch__mark{align-items:flex-start;justify-content:center}
/* Each badge PNG carries a different amount of built-in transparent margin
   (measured with Imagick trim: Breeze Boost 2.04%, Certified 8.92%, Pro
   15.88% of the file width), so aligning the FILES left still left the three
   pieces of artwork 3px, 15px and 26px apart. The offset is the margin as a
   fraction of the rendered height, so one constant per badge covers every
   breakpoint:  offset = --logoh * --logopad,  --logopad = leftMargin% * w/h.
   Change a logo file and re-measure --logopad; nothing else moves. */
.ab-ch__mark{--logoh:164px;--logopad:0}
.ab-ch--b .ab-ch__mark{--logopad:.0204}
.ab-ch--c .ab-ch__mark{--logopad:.0927}
.ab-ch--p .ab-ch__mark{--logopad:.1588}
.ab-ch__mark img{object-position:calc(var(--logoh) * var(--logopad) * -1) center}
@media (max-width:1024px){.ab-ch__mark{--logoh:108px}}
@media (max-width:767px){.ab-ch__mark{--logoh:72px}}
/* Certified lost its 184 statistic, so that row is one line of copy now: it
   drops the big-figure baseline layout and sets at reading weight instead of
   keeping a hole where the number used to be. */
.ab-ch__stat--nonum p{display:block}
.ab-ch__stat--nonum .l{font:600 15px/1.45 Poppins,sans-serif;max-width:26ch;
  color:var(--ch-fg)}

/* ------------------------------------------------- 4b. THE TWO MOBILE TRACKS
   Three programme cards and four journey steps become horizontal tracks on a
   phone instead of a long vertical stack. Native CSS scroll-snap: the browser
   owns the physics, so a sideways swipe never fights the vertical page scroll,
   momentum feels like the rest of the OS, and every CTA inside a card stays an
   ordinary tap. Cards are 86-88% wide so the next one always peeks. */
@media (max-width:767px){
  .ab-chgrid,
  .ab-loyalty-tools{display:flex!important;flex-direction:row;flex-wrap:nowrap;
    gap:14px;grid-template-columns:none;
    overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;-ms-overflow-style:none}
  .ab-chgrid::-webkit-scrollbar,
  .ab-loyalty-tools::-webkit-scrollbar{display:none}
  .ab-chgrid>.ab-ch{flex:0 0 88%;scroll-snap-align:center;scroll-snap-stop:always}
  .ab-loyalty-tools>.ab-loyalty-tool{flex:0 0 86%;scroll-snap-align:center;
    scroll-snap-stop:always}
}

/* ------------------------------------------------- 4c. THE SHARED PAGER ----
   One control for both tracks, injected by ab-loyalty-carousels.php. The
   chooser gets plain dots; the journey gets numbered steps that tick. */
.ab-carou{display:none}
@media (max-width:767px){
  .ab-carou{display:flex;align-items:center;justify-content:center;gap:8px;
    margin:16px 0 0}
  /* kit 1333 styles every bare button: orange fill, 32/48 padding, 6px radius.
     Shield the box model as well as the paint or these render 64px tall and
     orange - the same bleed the jump-map arrows and Breeze Lab hit. */
  .ab-carou .ab-carou__b{-webkit-appearance:none;appearance:none;
    display:flex!important;align-items:center;justify-content:center;
    width:34px!important;height:34px!important;min-height:0!important;
    padding:0!important;margin:0!important;line-height:1!important;
    background:transparent!important;border:2px solid rgba(5,17,36,.22)!important;
    border-radius:50%!important;box-shadow:none!important;
    font:700 12.5px/1 Poppins,sans-serif;color:#051124;cursor:pointer;
    transition:background .18s ease,border-color .18s ease,color .18s ease,
      width .18s ease}
  .ab-carou .ab-carou__b.is-current{background:#051124!important;
    border-color:#051124!important;color:#FFFFFF}
  .ab-carou .ab-carou__b.is-done{background:#EF7D48!important;
    border-color:#EF7D48!important;color:#051124}
  .ab-carou .ab-carou__b:focus-visible{outline:2px solid #EF7D48;outline-offset:2px}
  /* on a navy band the resting state has to invert */
  .ab-loyalty--navy .ab-carou .ab-carou__b{border-color:rgba(255,255,255,.32)!important;
    color:#FFFFFF}
  .ab-loyalty--navy .ab-carou .ab-carou__b.is-current{background:#FFFFFF!important;
    border-color:#FFFFFF!important;color:#051124}
  .ab-loyalty--navy .ab-carou .ab-carou__b.is-done{background:#EF7D48!important;
    border-color:#EF7D48!important;color:#051124}
  /* the chooser is not a sequence, so its pager is dots, not numbers */
  .ab-carou--dots .ab-carou__b{width:10px!important;height:10px!important;
    font-size:0!important;border-width:0!important;
    background:rgba(5,17,36,.22)!important}
  .ab-carou--dots .ab-carou__b.is-current{width:26px!important;
    border-radius:6px!important;background:#051124!important}
}

/* -------------------------- 7. LEARN -> PLAN -> INSTALL -> GROW ------------
   ONE COMPACT BUTTON SYSTEM. Type, padding, border and radius are set on the
   widgets (all twelve now carry the Product Education spec). Width and height
   are here: stretching every CTA to its card removes the "longer label = wider
   button" raggedness, and the min-height keeps a wrapped two-line label the
   same height as a one-line one, so the twelve read as one system. */
.ab-loyalty-tool > .elementor-widget-button,
.ab-loyalty-tool-subs > .elementor-widget-button{width:100%;align-self:stretch}
/* The floor is the height a TWO-LINE label needs, not a one-line one:
   11.5px x 1.25 x 2 lines + the widget padding + the border. Below ~360px the
   longest labels wrap, and without this the wrapped ones stood 7px taller than
   the rest - exactly the raggedness this pass is removing. */
.ab-loyalty-tool .ab-loyalty-btn .elementor-button{width:100%;min-height:54px;
  white-space:normal;text-align:center;line-height:1.25}
@media (max-width:767px){
  .ab-loyalty-tool .ab-loyalty-btn .elementor-button{min-height:58px}
}

/* THE CONNECTED FOUR-STEP PATH.
   The rail is injected above the cards by ab-loyalty-carousels.php. Node
   geometry is exact rather than percentage-approximated: with four columns and
   a gap g, the centre of the first column sits (100% - 3g)/8 from the left and
   the last the same distance from the right, so the track starts and ends on a
   node instead of running past them. */
.ab-steps{--prog:0;--gap:20px;
  list-style:none;margin:0 0 26px;padding:0;position:relative;
  display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap)}
.ab-steps::before,.ab-steps::after{content:"";position:absolute;top:16px;height:2px;
  left:calc((100% - var(--gap)*3)/8);right:calc((100% - var(--gap)*3)/8);
  pointer-events:none}
.ab-steps::before{background:rgba(255,255,255,.20)}
.ab-steps::after{background:#EF7D48;transform-origin:left center;
  transform:scaleX(var(--prog));
  transition:transform .55s cubic-bezier(.4,0,.2,1)}
.ab-steps__i{display:flex;flex-direction:column;align-items:center;gap:9px;
  position:relative;z-index:1;min-width:0}
/* kit 1333 styles every bare button: orange fill, 32/48 padding, 6px radius.
   Shield the box model as well as the paint or these render 64px tall. */
.ab-steps__b{-webkit-appearance:none;appearance:none;
  display:flex!important;align-items:center;justify-content:center;
  width:34px!important;height:34px!important;min-height:0!important;
  padding:0!important;margin:0!important;line-height:1!important;
  border-radius:50%!important;box-shadow:none!important;cursor:pointer;
  background:#051124!important;border:2px solid rgba(255,255,255,.30)!important;
  font:700 13px/1 Poppins,sans-serif;color:#FFFFFF;
  transition:background .3s ease,border-color .3s ease,transform .3s ease}
.ab-steps__i.is-current .ab-steps__b{border-color:#EF7D48!important;transform:scale(1.09)}
.ab-steps__i.is-done .ab-steps__b{background:#EF7D48!important;
  border-color:#EF7D48!important;color:#FFFFFF;font-size:15px}
.ab-steps__b:focus-visible{outline:2px solid #EF7D48;outline-offset:3px}
.ab-steps__t{font:700 11.5px/1.2 Poppins,sans-serif;letter-spacing:.08em;
  text-transform:uppercase;color:rgba(255,255,255,.60);text-align:center;
  transition:color .3s ease}
.ab-steps__i.is-current .ab-steps__t,
.ab-steps__i.is-done .ab-steps__t{color:#FFFFFF}
@media (max-width:767px){
  .ab-steps{--gap:10px;margin-bottom:20px}
  .ab-steps__t{font-size:10px;letter-spacing:.05em}
}

/* --------------------------------------------- 9. THE CLOSING REACH OUR TEAM
   Same trigger as the Need help CTA and the floating pill: Elementor popup
   8800, the sales and rep form. No second form anywhere, and no arrow. */

/* ===================================================== 10. ONE CONTENT GRID
   Measured, not assumed. The site header is a max-width:1600 container inside
   a 32px section gutter, and its first column adds 10px - that 10px is where
   the Attic Breeze logo sits: x=163 @1920, 42 @1440, 42 @1024. The hero was
   already built on that line; the body sections were a 1140 box centred in the
   viewport, which is why they landed at 383 @1920 and read as a second grid.
   The sections now use the header's own box, so the page runs down one line:
   logo -> hero -> section heads -> cards.
   Box width and gutter are Elementor controls (boxed 1600, padding 32). This
   rule is only the 10px column offset, which no container control expresses.
   MOBILE IS DELIBERATELY EXCLUDED - it already had a symmetric 20px gutter and
   the offset would make it 20 left / 10 right. */
@media (min-width:768px){
  .ab-loy-wrap > .ab-loyalty > .e-con-inner{padding-left:10px;padding-right:10px}
}
/* THE JUMP MAP IS NOT ON THIS PAGE GRID, BY DESIGN.
   It is Breeze Lab's journey rail (see the JUMP MAP block in the page CSS):
   a full-bleed navy bar whose destinations are flex:1 0 auto, so they fill the
   width and divide it between themselves. That is why nothing here gives it a
   max-width, a gutter or a justify-content - matching Breeze Lab means letting
   its own rules do the work. */
/* The grid is wider than the old 1140 column, so every long-prose block needs
   its own measure or a paragraph runs the full 1580 and stops being readable.
   Headings, ledes, fineprint and the help copy already carry their own caps. */
.ab-prog__intro p,.ab-loyalty-forwho-list,.ab-loyalty-plist,.ab-loyalty-phases,
.ab-loyalty-earn-body p,.ab-loyalty-statlist,.ab-prog__bridge p,
.ab-loyalty-tier-ex p,.ab-faq .elementor-tab-content{max-width:74ch}

/* ------------------------------------------------------- reduced motion --- */
@media (prefers-reduced-motion:reduce){
  .ab-chgrid,.ab-loyalty-tools{scroll-behavior:auto}
  .ab-carou .ab-carou__b,.ab-steps__b,.ab-steps__t,.ab-steps::after{transition:none}
  /* the path does not play itself; it just states the four steps */
  .ab-steps__i.is-current .ab-steps__b{transform:none}
}
/* @ab-ux0814-end */

/* ===== INLINE LINKS: NO RULE UNDERNEATH, IN ANY STATE ====================
   Matches the Breeze Lab block of the same name. Two things kept putting the
   orange rule back: page :hover rules (fixed above, at source) and a SITEWIDE
   `a,a:visited{text-decoration:underline}` from the kit that cannot be edited
   from here - which is why :visited and :active are stated explicitly instead
   of trusting the rest state to hold.
   Deliberately OUTSIDE this body.elementor-page-8770: .ab-loyalty-btn CTAs, the jump rail, the
   footer, the programme accordion controls, the floating rep pill, and
   .ab-ch__alt whose 1px hairline is its own non-orange design. */
:is(.ab-loyalty p,.ab-loyalty li,.ab-loyalty dd,.ab-faq .elementor-tab-content,
  #help .ab-loyalty-helpcross,#help .ab-loyalty-helpphone,#help .ab-loyalty-helpcopy)
  a:is(:link,:visited,:hover,:focus,:focus-visible,:active){text-decoration:none!important}
/* keyboard users keep a clear indicator - a ring, never an underline */
:is(.ab-loyalty p,.ab-loyalty li,.ab-loyalty dd,.ab-faq .elementor-tab-content,
  #help .ab-loyalty-helpcross,#help .ab-loyalty-helpphone,#help .ab-loyalty-helpcopy) a:focus-visible{outline:2px solid #EF7D48;outline-offset:2px;border-radius:2px}

/* ############################################################################
   CTA SYSTEM - COPIED FROM BREEZE LAB (page 8682), 2026-08-14
   ----------------------------------------------------------------------------
   Same component, reused. Every declaration below is a verbatim copy of the
   "BREEZE LAB CTA SYSTEM" block in 8682's custom CSS, with .ab-bl swapped for
   .ab-loyalty. SOURCE OF TRUTH is 8682 - if that block changes, re-copy this.

   The split is the important part, and it is why the per-widget geometry was
   DELETED from all eleven buttons: Elementor writes per-widget rules at
   (0,4,0) and would beat anything here. So GEOMETRY lives in this block, and
   COLOUR stays in each Button widget so a variant is still editable in the
   builder. Variants map 1:1 to Breeze Lab:
     .ab-cta--primary  orange fill, white text  (hover navy; WHITE on navy
                       surfaces, or the button vanishes into the panel)
     .ab-cta--ghost    on navy: transparent, white text, white-55 border
     .ab-cta--outline  on white: transparent, navy text, navy border
     .ab-cta--navy     the quieter second action on a light card

   NOT converted, deliberately: the four pillar cards' compact button set
   (.ab-loyalty-tool-sub), which Vincent specified separately as its own
   compact system; the jump rail; the programme accordion controls; the
   comparison body.elementor-page-8770s; and the floating rep pill. Breeze Lab excludes its
   own equivalents from .ab-cta for the same reason - they are interface
   controls, not actions.
   ######################################################################### */
.ab-loyalty .ab-cta .elementor-button{
  display:inline-flex;align-items:center;justify-content:center;text-align:center;
  min-height:48px;padding:13px 22px;
  border-style:solid;border-width:2px;border-radius:999px;
  font-family:Poppins,sans-serif;font-weight:700;font-size:13.5px;line-height:1.25;
  letter-spacing:1.1px;text-transform:uppercase;text-decoration:none;
  white-space:normal;overflow-wrap:break-word;box-shadow:none;
  transition:background-color .2s ease,border-color .2s ease,color .2s ease}
/* Colour only ever transitions - nothing here changes the box, so a hover can
   never resize the button or shift the layout around it. */
.ab-loyalty .ab-cta .elementor-button:hover,
.ab-loyalty .ab-cta .elementor-button:focus{transform:none;box-shadow:none}
/* Focus ring: orange on light surfaces, white where the button sits on navy
   and an orange ring would sit on an orange fill. */
.ab-loyalty .ab-cta .elementor-button:focus-visible{outline:3px solid #EF7D48;outline-offset:3px}
.ab-loyalty .ab-cta--ghost .elementor-button:focus-visible{outline-color:#FFFFFF}
@media (max-width:768px){
  .ab-loyalty .ab-cta .elementor-button{min-height:52px;padding:14px 22px}
}
@media (prefers-reduced-motion:reduce){
  .ab-loyalty .ab-cta .elementor-button{transition:none}
}
/* the chooser card CTAs are token-coloured per card, but they join the same
   geometry so the page reads as one button system */
.ab-ch .ab-ch__go,
.ab-ch .ab-ch__signup .elementor-button{border-radius:999px;min-height:48px;
  padding:13px 22px;font-size:13.5px;letter-spacing:1.1px;line-height:1.25;
  border-width:2px;border-style:solid}
@media (max-width:768px){
  .ab-ch .ab-ch__go,
  .ab-ch .ab-ch__signup .elementor-button{min-height:52px;padding:14px 22px}
}
/* The rep intake mounts inline, like Breeze Lab's. Field styling comes from the
   shared module wp-content/novamira-sandbox/ab-hubspot-classic-form.php (root
   body.elementor-page-8770 "#ab-lyf-rep .ab-rep-form") - do NOT add field rules here, or this
   modal and Breeze Lab's drift apart. The 18px gap above the form is already on
   .ab-lym-slot, matching Breeze Lab's #ab-srf-hs{margin-top:18px}, so this adds
   nothing further. */
.ab-lym .ab-rep-form{margin-top:0}

/* ##########################################################################
   CHOOSER CTA INTERACTION 2026-08-14
   ##########################################################################
   The six card CTAs already shared one geometry (999px pill, 48px, 13/22
   padding, Poppins 700, 1.1px tracking, 2px border, .2s colour transition).
   What they did NOT share was a hover: each card resolved --ch-fill-h from its
   own palette, which gave navy -> #0C1D38 on the white card and white ->
   #EDF0F3 on the blue and navy cards. Both are a two-or-three-percent shift -
   a state change you cannot actually see - and the outlined buttons filled
   with the card's own light, which on the blue and navy cards read as the
   outline dissolving.
   Now all six resolve to ONE state: brand orange fill, orange border, white
   label. Every value is an existing brand token (--or #EF7D48 / #FFFFFF), and
   orange separates cleanly from all three card surfaces - #FFFFFF, --blu
   #244984 and --nv #051124 - so no button can sink into its card.
   Nothing about the box changes on hover (same border width, same padding,
   same min-height), so a button can never resize or nudge the layout.
   NOTE ON CONTRAST: white on #EF7D48 measures ~2.5:1. That is the standing
   Attic Breeze rule for orange fills (orange bg always takes white text) and
   is what the brief asked for, so it is deliberate - but it is below WCAG AA
   for this text size. Navy-on-orange would measure ~7.4:1 if that rule is ever
   relaxed.
   ------------------------------------------------------------------------ */
.ab-ch{--ch-hover:var(--or);--ch-hover-ink:#FFFFFF}
.ab-ch .ab-ch__go:hover,
.ab-ch .ab-ch__go:focus-visible,
.ab-ch .ab-ch__signup .elementor-button:hover,
.ab-ch .ab-ch__signup .elementor-button:focus,
.ab-ch .ab-ch__signup .elementor-button:focus-visible{
  background:var(--ch-hover)!important;
  border-color:var(--ch-hover)!important;
  color:var(--ch-hover-ink)!important}
/* Focus ring sits OUTSIDE the pill, so it never changes the button's box
   either. White on the two dark cards, navy on the white one. */
.ab-ch .ab-ch__go:focus-visible,
.ab-ch .ab-ch__signup .elementor-button:focus-visible{
  outline:3px solid #FFFFFF;outline-offset:3px}
.ab-ch--b .ab-ch__go:focus-visible,
.ab-ch--b .ab-ch__signup .elementor-button:focus-visible{outline-color:#051124}
/* Touch devices latch :hover after a tap and would leave a button stranded in
   the orange state. Keyed off the input device, so a mouse keeps the hover. */
@media (hover:none){
  .ab-ch .ab-ch__go:hover{background:var(--ch-fill)!important;
    border-color:var(--ch-fill)!important;color:var(--ch-fill-ink)!important}
  .ab-ch .ab-ch__signup .elementor-button:hover{background:transparent!important;
    border-color:var(--ch-edge)!important;color:var(--ch-fg)!important}
}
@media (prefers-reduced-motion:reduce){
  .ab-ch .ab-ch__go,.ab-ch .ab-ch__signup .elementor-button{transition:none}
}

/* ===== Pro Advantage estimator - divider out, block tightened =============
   The thin light rule above Enroll in Pro Advantage / See the installer map
   was `.ab-prog__cta{border-top:1px solid var(--line)}` re-coloured to
   rgba(255,255,255,.18) by `.ab-prog--navy`. Removed here for the Pro
   Advantage panel ONLY - Breeze Boost and Certified Installer share the same
   component and keep their rule, per the brief's "do not remove unrelated
   dividers". The 30px padding that existed to sit under that rule goes with
   it; 28px of margin is the whole gap now.
   The estimator's own border-top (`.ab-est`, above "Breeze Bucks - see where
   you land") is a different divider and is untouched. --------------------- */
#pro-advantage .ab-prog__cta{border-top:0;padding-top:0;margin-top:28px}



/* =============================================== FIXED STEP NUMBERS
   @ab-step-number-fix-20260814
   A step's numeral is now a permanent property of that step, stamped once as
   data-step by ab-loyalty-journey.php, instead of a CSS counter that is
   re-evaluated on every render. Completed steps still swap their numeral for
   the tick via the .is-done rules above; because this rule excludes .is-done it
   never fights them, and because the number is an attribute it can never be
   recalculated by progress. The counter declaration is deliberately left in
   place as the no-JS fallback (with JS off nothing is ever completed, so the
   counter is always correct).
   =============================================================== */
.ab-loyalty-phases ol.ab-ph-fixed li:not(.is-done)::before{content:attr(data-step)}

/* @ab-chooser-mobile-start ========================================
   CHOOSER CARDS ON MOBILE  (Vincent, 2026-08-14)

   THE BUG, measured at 393px: the badge rendered 247x247 inside a 108px box
   and painted straight over the eyebrow, the tagline and the programme name -
   56px of overlap on Breeze Boost and Pro Advantage, 51px on Certified.

   ROOT CAUSE, and it is a specificity tie, not a missing rule.
   `.ab-ch__mark img` is (0,1,1) - ONE class plus one element - which merely
   TIES Elementor's own `.elementor img{height:auto}` and its
   `@media(max-width:1024px){.elementor img{height:auto}}`. Ties go to source
   order, and Elementor's sheet loads last, so height:auto won and the square
   1080x1080 badge sized itself to the column width. Every body.elementor-page-8770 below is
   (0,2,1) or better so the tie cannot come back.

   WHY THE SHAPE MATTERS (this is the bit that looks arbitrary and is not).
   Desktop works because the image element is the FULL COLUMN WIDE with a
   FIXED height - 370x164 - so `object-fit:contain` leaves horizontal slack,
   and the per-badge `object-position` nudge slides each badge left until its
   visible edge meets the text column. Once mobile lost its fixed height the
   box went square, contain had zero slack, and object-position became inert -
   which is why the artwork stopped aligning as well as overflowing. Restoring
   a fixed height restores BOTH behaviours; the existing --logopad numbers are
   still correct and are reused untouched.

   THE BADGES, re-measured with Imagick trim because the artwork was swapped
   (8839 / 8781 / 8840 are new files):
     Breeze Boost 1080x1080, content 1039x665, pad L/R 2.04/1.76%
     Certified     538x518,  content  447x365, pad L/R 8.92/7.99%
     Pro Advantage 800x800,  content  547x582, pad L/R 15.75/15.88%
   All three are horizontally symmetric in their canvas, and the existing
   --logopad values (.0204 / .0927 / .1588) still match - so alignment needs
   no new numbers.

   96px is a deliberate reduction (the tablet rule was imposing 108). It puts
   the visible artwork at 92x59 / 83x68 / 66x70, which reads as a badge over a
   text block rather than a graphic that owns the card.

   SUPERSEDED BY THIS BLOCK (left in place, all lower specificity, safe to
   delete in a later cleanup):
     .ab-ch__mark{margin-bottom:16px;min-height:92px}      @767
     .ab-ch__mark img{height:66px}                          @767
     .ab-ch__mark{--logoh:72px}                             @767
     .ab-ch__mark,.ab-ch__mark img{height:108px}            @1024
     .elementor-8770 .elementor-element .ab-ch__mark img{...!important}  @767
       - that last one was written for exactly this problem and is present in
         the stored CSS, but it is NOT in the stylesheet the browser receives.
         Flagged rather than relied on.
   ===================================================================== */
@media (max-width:767px){

  /* --- card shell: equal padding on all four sides (was 28/24/26) ------ */
  .ab-chgrid>.ab-ch{padding:24px}

  /* --- artwork area ---------------------------------------------------
     Height is driven by the image, so the box can never be shorter than what
     it holds. overflow:hidden is a belt-and-braces guarantee that artwork can
     never reach the copy again. */
  .ab-ch .ab-ch__mark{
    --logoh:96px;
    height:auto;
    min-height:0;
    margin:0 0 22px;
    overflow:hidden;
  }
  .ab-ch .ab-ch__mark img{
    height:96px;
    max-height:96px;
    max-width:100%;
    object-fit:contain;
  }

  /* --- CTA block: clear separation, stays on the content column -------- */
  .ab-ch .ab-ch__acts{padding-top:24px}
}

/* --- TABLET HAS THE SAME BUG --------------------------------------------
   Not part of the brief, which said mobile, but it is the same defect from
   the same specificity tie and it would have been left visibly broken:
   measured at 1024 the badge rendered 380x380 and overlapped the eyebrow by
   84px. `@media(max-width:1024px){.ab-ch__mark,.ab-ch__mark img{height:108px}}`
   is (0,1,1) for the img half, so it ties .elementor img{height:auto} and
   loses on source order exactly as the mobile rule did.
   108px is the size that rule already intended; this just makes it win.
   Desktop (>=1025) is untouched and still renders 164px. */
@media (min-width:768px) and (max-width:1024px){
  .ab-ch .ab-ch__mark{--logoh:108px;height:auto;min-height:0}
  .ab-ch .ab-ch__mark img{
    height:108px;
    max-height:108px;
    max-width:100%;
    object-fit:contain;
  }
}
@ab-chooser-mobile-end */

/* @ab-chooser-uniform-start =======================================================
   THREE CHOOSER CARDS, ONE RHYTHM  (Vincent, 2026-08-14)

   MEASURED BEFORE (1440, three columns): everything from the logo zone down
   to the TOP of the value band was already identical in all three cards. Two
   things were not:

   1. THE DIVIDER. Breeze Boost and Pro Advantage carry a 40px figure plus a
      two-line label, so their value band is 54.5px tall. Certified has no
      figure - one 15px sentence, 26.4px - so its rule sat 27.9px HIGHER than
      the other two, and its description then floated 28px clear of its CTAs
      while the other two butted straight up against theirs. That single
      difference is the whole "uneven" read.

   2. THE SPACING SCALE. Widget-wrapper MARGINS are zeroed on this page by
      Elementor, so of the original rules only the padding-based ones ever
      applied - leaving the real rhythm at 26 / 6 / 0 / 10 / 18 / 0 / 24. The
      0 under the divider is why the rule looked glued to the copy. Everything
      below is therefore expressed as PADDING; a margin here is a no-op.

   AFTER:  26 / 10 / 10 / 18 / 20 / 20 / 26
           mark -> eyebrow -> tagline -> name -> value -> RULE -> copy -> CTAs
           Symmetric around the rule (20/20), because that is the one line the
           eye actually tracks across the three cards, and equal 26 at the two
           outer seams. Copy is untouched.
   ======================================================================== */

/* --- the value band: one height in all three cards ----------------------
   THE FALLBACK IN var() IS LOAD-BEARING, do not simplify it away. Autoptimize
   minifies this stylesheet into autoptimize_single_*.css and it DROPS the lone
   custom-property rule below - verified in the browser CSSOM: the @media 767
   copy survives, the bare .ab-ch{--ch-statmin:55px} does not. Without the
   fallback min-height resolves to nothing and the Certified rule jumps 33px.
   (No apostrophes in this comment: the CSS block is a single-quoted PHP
   string, so one would end it and break the file.)
   55, not 54: the natural baseline-aligned band measures 54.5, so a 54 floor
   left Certified half a pixel high and the rule off on a retina panel. */
.ab-ch{--ch-statmin:55px}
.ab-ch .ab-ch__stat p{min-height:var(--ch-statmin,55px)}
/* Certified has no figure, so its one line is centred in the band rather than
   stranded at the top or bottom of it - the rule below stays put either way. */
.ab-ch .ab-ch__stat--nonum p{display:flex;align-items:center;
  min-height:var(--ch-statmin,55px)}

/* --- the rhythm (padding only - see note above) ------------------------- */
.ab-ch .ab-ch__eyebrow{padding-bottom:10px}
.ab-ch .ab-ch__quote{padding-bottom:10px}
.ab-ch .ab-ch__name{padding-bottom:18px}
.ab-ch .ab-ch__stat{padding-bottom:20px}
.ab-ch .ab-ch__desc{padding-top:20px}
.ab-ch .ab-ch__acts{padding-top:26px}

/* --- equal heights ------------------------------------------------------
   Three columns already stretch. Below 1025 the grid drops to 2-up and then
   to a single column, and auto rows self-size - so the third card came out
   short of the pair above it (2-up), and at 860 the Breeze Boost card sat
   23px shorter than the other two (1-up, one fewer line of copy). */
@media (min-width:768px) and (max-width:1024px){
  .ab-chgrid{grid-auto-rows:1fr}
}

/* --- narrow cards: keyed to the CARD, not the viewport -------------------
   The same card width turns up at several viewport widths (289px at vw1025
   in the 3-up, 382px at vw861 in the 2-up), so a viewport media query fixed
   one and missed the other. A container query asks the only question that
   actually matters: how wide is this card.

   THRESHOLDS ARE CONTENT-BOX WIDTHS, not card widths - a size container is
   measured on its content box, so subtract the card 60px padding + 2px
   border. Getting this wrong silently over-applies both rules.

   Measured single-line widths (Poppins, uppercase where it applies):
     name  "Certified Installer"              27px 237.0  |  25px 218.9
     link  "See what certification gets you"  base 276.1  |  tight 248.2
     link chrome: 44px padding + 4px border base, 28+4 tight.

   a) 325 = 276.1 + 48. Below it the longest link no longer fits one line, and
      it stops fitting at a different width on each card because the three
      labels differ in length - which is what put a two-line button beside a
      one-line one. The tighter track keeps every label to two lines even in
      the narrowest card here (content 227 at vw1025, where the base track ran
      to three), and the 63px floor gives a one-line label the same box. Above
      325 all three fit unaided and the buttons keep the shared 48px .ab-cta
      geometry untouched.

   b) 237 = the width "Certified Installer" needs at 27px. Below it that name
      wraps and drops its card rule 30px below the other two. All three names
      step to 25px TOGETHER (25px needs 219, and the narrowest card in this
      range has 227) - stepping only the one that wraps would trade a wrap for
      mismatched type across the row.
      The .elementor-8770 prefix is load-bearing: the size comes from the
      widget own typography control, whose generated body.elementor-page-8770 outranks a plain
      three-class rule.

   Phones are deliberately OUTSIDE this - they run a scroll-snap track with
   their own tuned type (24px names, 52px buttons) and are handled below. */
@media (min-width:768px){
  .ab-ch{container-type:inline-size}
  @container (max-width:325px){
    .ab-ch .ab-ch__go,
    .ab-ch .ab-ch__signup .elementor-button{letter-spacing:.2px;
      padding-left:14px;padding-right:14px}
    .ab-ch .ab-ch__go{min-height:63px}
  }
  @container (max-width:237px){
    .elementor-8770 .ab-ch .ab-ch__name .elementor-heading-title{font-size:25px}
  }
}

/* --- phones -------------------------------------------------------------
   The figure drops to 34px here, so the band natural height drops to 48.5 and
   the floor follows it (measured, not scaled). The scale steps down one notch
   to 20 / 8 / 8 / 14 / 16 / 16 / 22. Cards are a scroll-snap track at this
   width and flex stretch already equalises their heights.

   The links get the same tighter track as the narrow desktop cards plus a
   66px floor (two lines at the phone 52px button metrics). Below 375 even
   that is not enough for the longest label, so the type steps once more.
   At 320 "See what certification gets you" still needs three lines - noted
   and left, because closing it would mean type small enough to hurt. */
@media (max-width:767px){
  /* re-measured 2026-08-14 after the artwork was resized: the natural band is
     49.5 here, so a 49 floor left Certified half a pixel high. 50 makes all
     three land on exactly the same line. */
  .ab-ch{--ch-statmin:50px}
  .ab-ch .ab-ch__eyebrow{padding-bottom:8px}
  .ab-ch .ab-ch__quote{padding-bottom:8px}
  .ab-ch .ab-ch__name{padding-bottom:14px}
  .ab-ch .ab-ch__stat{padding-bottom:16px}
  .ab-ch .ab-ch__desc{padding-top:16px}
  .ab-ch .ab-ch__acts{padding-top:22px}
  .ab-ch .ab-ch__go,
  .ab-ch .ab-ch__signup .elementor-button{letter-spacing:.2px;
    padding-left:14px;padding-right:14px}
  .ab-ch .ab-ch__go{min-height:66px}
}
@media (max-width:374px){
  .ab-ch .ab-ch__go,
  .ab-ch .ab-ch__signup .elementor-button{font-size:12.5px;
    padding-left:10px;padding-right:10px}
}
@ab-chooser-uniform-end */

/* ==================================================== 2026-08-20 ORANGE GLOW
   Shared Attic Breeze interaction language: navy + white + a controlled orange
   illumination. This block is IDENTICAL on page 8770 and page 7288 - same rule
   as the journey-rail block above: do not edit one without the other. It is
   mirrored on the Resource Center rail in
   wp-content/novamira-sandbox/ab-resource-center-draft.php.

   Structure, dimensions, dividers, icons, labels and destinations are untouched;
   this block only adds hover / focus styling. Shapes and hierarchy are kept -
   filled orange stays a filled orange primary, ghosts stay ghosts, the rail
   stays a segmented rail.

   The rail glow is INSET: .jn-scroll is an overflow-x scroller, so an outer
   halo would be clipped at the bar's top and bottom edges.
   ========================================================================== */
.ab-jumpw.jn .jn-item{transition:background-color .18s ease,color .18s ease,box-shadow .18s ease!important}
.jn .jn-item:hover:not([aria-current="true"]){transition:background-color .18s ease,color .18s ease,box-shadow .18s ease;background:rgba(239,125,72,.12);color:#FFFFFF;
  box-shadow:inset 0 0 0 1px rgba(239,125,72,.75),inset 0 0 18px rgba(239,125,72,.28)}
.jn .jn-item:hover:not([aria-current="true"]) .jn-ic{color:#FFFFFF}
.jn .jn-item[aria-current="true"]:hover{transition:background-color .18s ease,box-shadow .18s ease;background:#E46C34;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.28),inset 0 0 20px rgba(239,125,72,.45)}
.jn .jn-item:focus-visible{outline:2px solid #EF7D48;outline-offset:-3px}

/* filled orange primary: one step deeper + halo. No lift, no reshape. */
.ab-cta--primary .elementor-button:hover,
.ab-cta--primary .elementor-button:focus-visible{background:#E46C34!important;
  border-color:#E46C34!important;color:#FFFFFF!important;
  box-shadow:0 0 14px rgba(239,125,72,.45)!important;transform:none!important}
/* filled navy: keeps its navy body, gains an orange edge + halo */
.ab-cta--navy .elementor-button:hover,
.ab-cta--navy .elementor-button:focus-visible{background:#051124!important;
  border-color:#EF7D48!important;color:#FFFFFF!important;
  box-shadow:0 0 12px rgba(239,125,72,.38)!important;transform:none!important}
/* ghost (white .55 edge on navy): orange edge, orange wash, white label */
.ab-cta--ghost .elementor-button:hover,
.ab-cta--ghost .elementor-button:focus-visible{background:rgba(239,125,72,.14)!important;
  border-color:#EF7D48!important;color:#FFFFFF!important;
  box-shadow:0 0 12px rgba(239,125,72,.38)!important;transform:none!important}
/* outline (navy edge on a LIGHT surface) must FILL on hover - a white label on
   an orange wash over near-white would fail contrast. Orange fill + white label. */
.ab-cta--outline .elementor-button:hover,
.ab-cta--outline .elementor-button:focus-visible{background:#EF7D48!important;
  border-color:#EF7D48!important;color:#FFFFFF!important;
  box-shadow:0 0 12px rgba(239,125,72,.38)!important;transform:none!important}
/* chooser-card CTAs already invert through their own --ch-* variables, so they
   take the halo only and keep their existing colour logic intact */
.ab-ch__signup .elementor-button:hover,
.ab-ch__signup .elementor-button:focus-visible{box-shadow:0 0 12px rgba(239,125,72,.38)!important}
/* "Why Attic Breeze" text-actions keep their ::before fill; edge + halo only */
.ab-adv-btn .elementor-button:hover{border-color:#EF7D48!important;
  box-shadow:0 0 12px rgba(239,125,72,.38)!important}
@media (prefers-reduced-motion:reduce){.jn .jn-item{transition:none}}/* End custom CSS */