.elementor-443 .elementor-element.elementor-element-62de20f{--display:flex;--position:fixed;--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:5px 5px;--row-gap:5px;--column-gap:5px;border-style:solid;--border-style:solid;border-width:0px 0px 0px 0px;--border-top-width:0px;--border-right-width:0px;--border-bottom-width:0px;--border-left-width:0px;border-color:var( --e-global-color-primary );--border-color:var( --e-global-color-primary );--border-radius:0px 0px 0px 0px;--margin-top:50px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:10px;--padding-bottom:10px;--padding-left:0px;--padding-right:0px;top:-30px;--z-index:999;}body:not(.rtl) .elementor-443 .elementor-element.elementor-element-62de20f{left:0px;}body.rtl .elementor-443 .elementor-element.elementor-element-62de20f{right:0px;}.elementor-443 .elementor-element.elementor-element-e202e36{--display:flex;--justify-content:center;--border-radius:25px 25px 25px 25px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-widget-image .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-443 .elementor-element.elementor-element-fcce8ef{text-align:start;}.elementor-443 .elementor-element.elementor-element-fcce8ef img{width:72%;}.elementor-443 .elementor-element.elementor-element-251033e{--display:flex;--justify-content:center;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--gap:0px 0px;--row-gap:0px;--column-gap:0px;--border-radius:25px 25px 25px 25px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-widget-mega-menu > .e-n-menu > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title, .elementor-widget-mega-menu > .e-n-menu > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title > .e-n-menu-title-container, .elementor-widget-mega-menu > .e-n-menu > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title > .e-n-menu-title-container > span{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-widget-mega-menu{--n-menu-divider-color:var( --e-global-color-text );}.elementor-443 .elementor-element.elementor-element-7c791d2{--display:flex;}.elementor-443 .elementor-element.elementor-element-5f0fb81{--display:flex;}.elementor-443 .elementor-element.elementor-element-d246222{--display:flex;}.elementor-443 .elementor-element.elementor-element-4d9305b{--display:flex;}.elementor-443 .elementor-element.elementor-element-73b82bd{--display:flex;}.elementor-443 .elementor-element.elementor-element-c8b644a{--display:flex;}.elementor-443 .elementor-element.elementor-element-0ab4523{--n-menu-dropdown-content-max-width:initial;--n-menu-heading-justify-content:initial;--n-menu-title-flex-grow:initial;--n-menu-title-justify-content:initial;--n-menu-title-justify-content-mobile:initial;--n-menu-heading-wrap:wrap;--n-menu-heading-overflow-x:initial;--n-menu-title-distance-from-content:0px;--n-menu-open-animation-duration:1100ms;--n-menu-toggle-icon-wrapper-animation-duration:500ms;--n-menu-title-space-between:10px;--n-menu-title-font-size:14px;--n-menu-title-color-normal:var( --e-global-color-text );--n-menu-title-transition:100ms;--n-menu-icon-size:16px;--n-menu-toggle-icon-size:20px;--n-menu-toggle-icon-color:var( --e-global-color-text );--n-menu-toggle-icon-hover-duration:500ms;--n-menu-toggle-icon-distance-from-dropdown:0px;--n-menu-title-normal-color-dropdown:#FFFFFF;--n-menu-title-active-color-dropdown:var( --e-global-color-primary );--n-menu-dropdown-content-box-border-radius:0px 0px 0px 0px;}.elementor-443 .elementor-element.elementor-element-0ab4523 > .e-n-menu > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title:not( .e-current ):not( :hover ){background-color:var( --e-global-color-astglobalcolor4 );border-style:solid;border-color:var( --e-global-color-astglobalcolor4 );}.elementor-443 .elementor-element.elementor-element-0ab4523 > .e-n-menu > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title:hover:not( .e-current ){background-color:var( --e-global-color-primary );}.elementor-443 .elementor-element.elementor-element-0ab4523 > .e-n-menu > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title.e-current{background-color:var( --e-global-color-primary );}:where( .elementor-443 .elementor-element.elementor-element-0ab4523 > .e-n-menu > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-content ) > .e-con{background-color:var( --e-global-color-primary );}.elementor-443 .elementor-element.elementor-element-0ab4523 > .e-n-menu[data-layout='dropdown'] > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title:not( .e-current ){background:var( --e-global-color-primary );}.elementor-443 .elementor-element.elementor-element-0ab4523 > .e-n-menu[data-layout='dropdown'] > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title.e-current{background-color:var( --e-global-color-astglobalcolor4 );}.elementor-443 .elementor-element.elementor-element-0ab4523.elementor-element{--align-self:center;}.elementor-443 .elementor-element.elementor-element-0ab4523 > .e-n-menu > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title, .elementor-443 .elementor-element.elementor-element-0ab4523 > .e-n-menu > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title > .e-n-menu-title-container, .elementor-443 .elementor-element.elementor-element-0ab4523 > .e-n-menu > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title > .e-n-menu-title-container > span{font-family:"Roboto", Sans-serif;font-weight:600;text-transform:uppercase;}.elementor-443 .elementor-element.elementor-element-0ab4523 {--n-menu-title-color-hover:var( --e-global-color-astglobalcolor4 );--n-menu-title-color-active:var( --e-global-color-astglobalcolor4 );}.elementor-443 .elementor-element.elementor-element-0ab4523 > .e-n-menu > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title{border-radius:15px 15px 15px 15px;}.elementor-widget-icon.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-primary );}.elementor-widget-icon.elementor-view-framed .elementor-icon, .elementor-widget-icon.elementor-view-default .elementor-icon{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-widget-icon.elementor-view-framed .elementor-icon, .elementor-widget-icon.elementor-view-default .elementor-icon svg{fill:var( --e-global-color-primary );}.elementor-443 .elementor-element.elementor-element-8305189 .elementor-icon-wrapper{text-align:center;}.elementor-443 .elementor-element.elementor-element-1a0419d{--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;--gap:10px 10px;--row-gap:10px;--column-gap:10px;--border-radius:25px 25px 25px 25px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-443 .elementor-element.elementor-element-1a0419d.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-443 .elementor-element.elementor-element-b956052{margin:2% 0% calc(var(--kit-widget-spacing, 0px) + 0%) 0%;}.elementor-443 .elementor-element.elementor-element-b956052 .elementor-icon-wrapper{text-align:center;}.elementor-443 .elementor-element.elementor-element-b956052 .elementor-icon{font-size:22px;}.elementor-443 .elementor-element.elementor-element-b956052 .elementor-icon svg{height:22px;}.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__toggle .elementor-button{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-name a{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-price{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__footer-buttons .elementor-button{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__footer-buttons a.elementor-button--view-cart{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__footer-buttons a.elementor-button--checkout{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-woocommerce-menu-cart .woocommerce-mini-cart__empty-message{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-443 .elementor-element.elementor-element-545e6b5 .elementor-menu-cart__close-button, .elementor-443 .elementor-element.elementor-element-545e6b5 .elementor-menu-cart__close-button-custom{margin-left:auto;}.elementor-443 .elementor-element.elementor-element-545e6b5{--main-alignment:center;--divider-style:solid;--subtotal-divider-style:solid;--elementor-remove-from-cart-button:none;--remove-from-cart-button:block;--toggle-button-icon-color:var( --e-global-color-primary );--toggle-button-icon-hover-color:var( --e-global-color-primary );--toggle-button-border-width:0px;--toggle-icon-size:24px;--items-indicator-text-color:var( --e-global-color-astglobalcolor4 );--items-indicator-background-color:#464646;--cart-border-style:none;--cart-close-button-color:var( --e-global-color-primary );--cart-close-button-hover-color:var( --e-global-color-secondary );--remove-item-button-size:22px;--remove-item-button-color:var( --e-global-color-primary );--remove-item-button-hover-color:var( --e-global-color-secondary );--cart-footer-layout:1fr;--products-max-height-sidecart:calc(100vh - 300px);--products-max-height-minicart:calc(100vh - 450px);--cart-footer-buttons-border-radius:15px;--view-cart-button-text-color:var( --e-global-color-astglobalcolor4 );--view-cart-button-background-color:var( --e-global-color-primary );--view-cart-button-hover-background-color:var( --e-global-color-secondary );--checkout-button-text-color:var( --e-global-color-astglobalcolor4 );--checkout-button-background-color:var( --e-global-color-primary );--checkout-button-hover-background-color:var( --e-global-color-secondary );}.elementor-443 .elementor-element.elementor-element-545e6b5 .widget_shopping_cart_content{--subtotal-divider-left-width:0;--subtotal-divider-right-width:0;}.elementor-443 .elementor-element.elementor-element-bcb21f0{--display:flex;--justify-content:flex-start;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-widget-button .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-443 .elementor-element.elementor-element-f7cc893 .elementor-button{background-color:var( --e-global-color-text );font-family:"Fraunces", Sans-serif;font-size:16px;font-weight:600;text-transform:uppercase;fill:var( --e-global-color-astglobalcolor4 );color:var( --e-global-color-astglobalcolor4 );border-style:solid;border-width:2px 2px 2px 2px;border-radius:15px 15px 15px 15px;}.elementor-443 .elementor-element.elementor-element-f7cc893 .elementor-button:hover, .elementor-443 .elementor-element.elementor-element-f7cc893 .elementor-button:focus{background-color:var( --e-global-color-astglobalcolor4 );color:#111111;border-color:#111111;}.elementor-443 .elementor-element.elementor-element-f7cc893{width:auto;max-width:auto;}.elementor-443 .elementor-element.elementor-element-f7cc893 .elementor-button-content-wrapper{flex-direction:row;}.elementor-443 .elementor-element.elementor-element-f7cc893 .elementor-button:hover svg, .elementor-443 .elementor-element.elementor-element-f7cc893 .elementor-button:focus svg{fill:#111111;}.elementor-443 .elementor-element.elementor-element-505f723 .elementor-button{background-color:var( --e-global-color-astglobalcolor4 );font-family:"Fraunces", Sans-serif;font-size:16px;font-weight:600;text-transform:uppercase;fill:#111111;color:#111111;border-style:solid;border-width:2px 2px 2px 2px;border-radius:15px 15px 15px 15px;}.elementor-443 .elementor-element.elementor-element-505f723 .elementor-button:hover, .elementor-443 .elementor-element.elementor-element-505f723 .elementor-button:focus{background-color:var( --e-global-color-astglobalcolor6 );color:var( --e-global-color-astglobalcolor4 );}.elementor-443 .elementor-element.elementor-element-505f723{width:var( --container-widget-width, 35% );max-width:35%;--container-widget-width:35%;--container-widget-flex-grow:0;}.elementor-443 .elementor-element.elementor-element-505f723 .elementor-button:hover svg, .elementor-443 .elementor-element.elementor-element-505f723 .elementor-button:focus svg{fill:var( --e-global-color-astglobalcolor4 );}.elementor-443 .elementor-element.elementor-element-c9abb8a .elementor-icon-wrapper{text-align:center;}.elementor-443 .elementor-element.elementor-element-c9abb8a.elementor-view-stacked .elementor-icon{background-color:#082F54;}.elementor-443 .elementor-element.elementor-element-c9abb8a.elementor-view-framed .elementor-icon, .elementor-443 .elementor-element.elementor-element-c9abb8a.elementor-view-default .elementor-icon{color:#082F54;border-color:#082F54;}.elementor-443 .elementor-element.elementor-element-c9abb8a.elementor-view-framed .elementor-icon, .elementor-443 .elementor-element.elementor-element-c9abb8a.elementor-view-default .elementor-icon svg{fill:#082F54;}.elementor-443 .elementor-element.elementor-element-7c2adf9 .elementor-icon-wrapper{text-align:center;}.elementor-443 .elementor-element.elementor-element-7c2adf9.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-astglobalcolor4 );}.elementor-443 .elementor-element.elementor-element-7c2adf9.elementor-view-framed .elementor-icon, .elementor-443 .elementor-element.elementor-element-7c2adf9.elementor-view-default .elementor-icon{color:var( --e-global-color-astglobalcolor4 );border-color:var( --e-global-color-astglobalcolor4 );}.elementor-443 .elementor-element.elementor-element-7c2adf9.elementor-view-framed .elementor-icon, .elementor-443 .elementor-element.elementor-element-7c2adf9.elementor-view-default .elementor-icon svg{fill:var( --e-global-color-astglobalcolor4 );}.elementor-443 .elementor-element.elementor-element-f7a4311 .elementor-icon-wrapper{text-align:center;}.elementor-443 .elementor-element.elementor-element-f7a4311.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-astglobalcolor0 );}.elementor-443 .elementor-element.elementor-element-f7a4311.elementor-view-framed .elementor-icon, .elementor-443 .elementor-element.elementor-element-f7a4311.elementor-view-default .elementor-icon{color:var( --e-global-color-astglobalcolor0 );border-color:var( --e-global-color-astglobalcolor0 );}.elementor-443 .elementor-element.elementor-element-f7a4311.elementor-view-framed .elementor-icon, .elementor-443 .elementor-element.elementor-element-f7a4311.elementor-view-default .elementor-icon svg{fill:var( --e-global-color-astglobalcolor0 );}.elementor-443 .elementor-element.elementor-element-370bc69{--display:flex;--align-items:flex-end;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--padding-top:20px;--padding-bottom:20px;--padding-left:20px;--padding-right:20px;}.elementor-443 .elementor-element.elementor-element-174348d{--display:flex;--align-items:flex-start;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--padding-top:20px;--padding-bottom:20px;--padding-left:20px;--padding-right:20px;}.elementor-443 .elementor-element.elementor-element-67b77d3{--display:flex;--align-items:flex-start;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--padding-top:20px;--padding-bottom:20px;--padding-left:20px;--padding-right:20px;}.elementor-443 .elementor-element.elementor-element-1ec6477{--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:0px;--padding-right:0px;}.elementor-443 .elementor-element.elementor-element-8a2cd77{--display:flex;--min-height:100vh;--justify-content:center;--z-index:999;}.elementor-443 .elementor-element.elementor-element-797fec3{padding:10px 10px 10px 10px;}.elementor-443 .elementor-element.elementor-element-c046425{--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-443 .elementor-element.elementor-element-caf8906{--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:05px 05px;--row-gap:05px;--column-gap:05px;--overlay-opacity:0.24;border-style:solid;--border-style:solid;border-width:2px 0px 2px 0px;--border-top-width:2px;--border-right-width:0px;--border-bottom-width:2px;--border-left-width:0px;border-color:var( --e-global-color-text );--border-color:var( --e-global-color-text );--border-radius:0px 0px 0px 0px;--z-index:9999;}.elementor-443 .elementor-element.elementor-element-caf8906:not(.elementor-motion-effects-element-type-background), .elementor-443 .elementor-element.elementor-element-caf8906 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-astglobalcolor4 );}.elementor-443 .elementor-element.elementor-element-caf8906::before, .elementor-443 .elementor-element.elementor-element-caf8906 > .elementor-background-video-container::before, .elementor-443 .elementor-element.elementor-element-caf8906 > .e-con-inner > .elementor-background-video-container::before, .elementor-443 .elementor-element.elementor-element-caf8906 > .elementor-background-slideshow::before, .elementor-443 .elementor-element.elementor-element-caf8906 > .e-con-inner > .elementor-background-slideshow::before, .elementor-443 .elementor-element.elementor-element-caf8906 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-image:url("https://peptico.com/wp-content/uploads/2026/04/image-removebg-preview-3.png");--background-overlay:'';background-repeat:repeat;background-size:15% auto;}.elementor-443 .elementor-element.elementor-element-8ccf1ed{--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;--padding-top:15px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-443 .elementor-element.elementor-element-f51bce5{--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:0px;--padding-right:0px;}.elementor-443 .elementor-element.elementor-element-2846b28{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-443 .elementor-element.elementor-element-7f541cc{width:var( --container-widget-width, 62% );max-width:62%;padding:0px 0px 0px 0px;--container-widget-width:62%;--container-widget-flex-grow:0;text-align:center;}.elementor-443 .elementor-element.elementor-element-7f541cc.elementor-element{--align-self:center;}.elementor-443 .elementor-element.elementor-element-7f541cc img{width:100%;}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-443 .elementor-element.elementor-element-50f9ce0{font-family:"Fraunces", Sans-serif;font-size:14px;font-weight:400;color:#111111;}.elementor-443 .elementor-element.elementor-element-4fc1d30{--display:grid;--e-con-grid-template-columns:repeat(4, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--grid-auto-flow:row;}.elementor-443 .elementor-element.elementor-element-9e751c3{--display:flex;--justify-content:flex-start;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--gap:10px 10px;--row-gap:10px;--column-gap:10px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-443 .elementor-element.elementor-element-a3a360d{text-align:start;}.elementor-443 .elementor-element.elementor-element-a3a360d .elementor-heading-title{font-family:"Fraunces", Sans-serif;font-size:16px;font-weight:600;text-decoration:underline;color:#111111;}.elementor-443 .elementor-element.elementor-element-4d0110c .elementor-heading-title{font-family:"Fraunces", Sans-serif;font-size:14px;font-weight:600;color:#111111;}.elementor-443 .elementor-element.elementor-element-4d0110c .elementor-heading-title a:hover, .elementor-443 .elementor-element.elementor-element-4d0110c .elementor-heading-title a:focus{color:#006958;}.elementor-443 .elementor-element.elementor-element-083a0ab .elementor-heading-title{font-family:"Fraunces", Sans-serif;font-size:14px;font-weight:600;color:#111111;}.elementor-443 .elementor-element.elementor-element-083a0ab .elementor-heading-title a:hover, .elementor-443 .elementor-element.elementor-element-083a0ab .elementor-heading-title a:focus{color:#006958;}.elementor-443 .elementor-element.elementor-element-0807a8a .elementor-heading-title{font-family:"Fraunces", Sans-serif;font-size:14px;font-weight:600;color:#111111;}.elementor-443 .elementor-element.elementor-element-0807a8a .elementor-heading-title a:hover, .elementor-443 .elementor-element.elementor-element-0807a8a .elementor-heading-title a:focus{color:#006958;}.elementor-443 .elementor-element.elementor-element-0c2bd82 .elementor-heading-title{font-family:"Fraunces", Sans-serif;font-size:14px;font-weight:600;color:#111111;}.elementor-443 .elementor-element.elementor-element-0c2bd82 .elementor-heading-title a:hover, .elementor-443 .elementor-element.elementor-element-0c2bd82 .elementor-heading-title a:focus{color:#006958;}.elementor-443 .elementor-element.elementor-element-e0419bd{--display:flex;--justify-content:flex-start;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--gap:10px 10px;--row-gap:10px;--column-gap:10px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-443 .elementor-element.elementor-element-2695e0d{text-align:start;}.elementor-443 .elementor-element.elementor-element-2695e0d .elementor-heading-title{font-family:"Fraunces", Sans-serif;font-size:16px;font-weight:600;text-decoration:underline;color:#111111;}.elementor-443 .elementor-element.elementor-element-6f29145 .elementor-heading-title{font-family:"Fraunces", Sans-serif;font-size:14px;font-weight:600;color:#111111;}.elementor-443 .elementor-element.elementor-element-6f29145 .elementor-heading-title a:hover, .elementor-443 .elementor-element.elementor-element-6f29145 .elementor-heading-title a:focus{color:#006958;}.elementor-443 .elementor-element.elementor-element-b1f99af .elementor-heading-title{font-family:"Fraunces", Sans-serif;font-size:14px;font-weight:600;color:#111111;}.elementor-443 .elementor-element.elementor-element-b1f99af .elementor-heading-title a:hover, .elementor-443 .elementor-element.elementor-element-b1f99af .elementor-heading-title a:focus{color:#006958;}.elementor-443 .elementor-element.elementor-element-5557505 .elementor-heading-title{font-family:"Fraunces", Sans-serif;font-size:14px;font-weight:600;color:#111111;}.elementor-443 .elementor-element.elementor-element-5557505 .elementor-heading-title a:hover, .elementor-443 .elementor-element.elementor-element-5557505 .elementor-heading-title a:focus{color:#006958;}.elementor-443 .elementor-element.elementor-element-088ddac .elementor-heading-title{font-family:"Fraunces", Sans-serif;font-size:14px;font-weight:600;color:#111111;}.elementor-443 .elementor-element.elementor-element-088ddac .elementor-heading-title a:hover, .elementor-443 .elementor-element.elementor-element-088ddac .elementor-heading-title a:focus{color:#006958;}.elementor-443 .elementor-element.elementor-element-835dcf9{--display:flex;--justify-content:flex-start;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--gap:10px 10px;--row-gap:10px;--column-gap:10px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-443 .elementor-element.elementor-element-2673349{text-align:start;}.elementor-443 .elementor-element.elementor-element-2673349 .elementor-heading-title{font-family:"Fraunces", Sans-serif;font-size:16px;font-weight:600;text-decoration:underline;color:#111111;}.elementor-443 .elementor-element.elementor-element-6a08a7d .elementor-heading-title{font-family:"Fraunces", Sans-serif;font-size:14px;font-weight:600;color:#111111;}.elementor-443 .elementor-element.elementor-element-6a08a7d .elementor-heading-title a:hover, .elementor-443 .elementor-element.elementor-element-6a08a7d .elementor-heading-title a:focus{color:#006958;}.elementor-443 .elementor-element.elementor-element-8a380f6 .elementor-heading-title{font-family:"Fraunces", Sans-serif;font-size:14px;font-weight:600;color:#111111;}.elementor-443 .elementor-element.elementor-element-8a380f6 .elementor-heading-title a:hover, .elementor-443 .elementor-element.elementor-element-8a380f6 .elementor-heading-title a:focus{color:#006958;}.elementor-443 .elementor-element.elementor-element-1c2313f .elementor-heading-title{font-family:"Fraunces", Sans-serif;font-size:14px;font-weight:600;color:#111111;}.elementor-443 .elementor-element.elementor-element-1c2313f .elementor-heading-title a:hover, .elementor-443 .elementor-element.elementor-element-1c2313f .elementor-heading-title a:focus{color:#006958;}.elementor-443 .elementor-element.elementor-element-a94b245 .elementor-heading-title{font-family:"Fraunces", Sans-serif;font-size:14px;font-weight:600;color:#111111;}.elementor-443 .elementor-element.elementor-element-a94b245 .elementor-heading-title a:hover, .elementor-443 .elementor-element.elementor-element-a94b245 .elementor-heading-title a:focus{color:#006958;}.elementor-443 .elementor-element.elementor-element-d24f769{--display:flex;--justify-content:flex-start;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--gap:10px 10px;--row-gap:10px;--column-gap:10px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-443 .elementor-element.elementor-element-96dcd36{text-align:start;}.elementor-443 .elementor-element.elementor-element-96dcd36 .elementor-heading-title{font-family:"Fraunces", Sans-serif;font-size:16px;font-weight:600;text-decoration:underline;color:#111111;}.elementor-443 .elementor-element.elementor-element-11e2559 .elementor-heading-title{font-family:"Fraunces", Sans-serif;font-size:14px;font-weight:600;color:#111111;}.elementor-443 .elementor-element.elementor-element-11e2559 .elementor-heading-title a:hover, .elementor-443 .elementor-element.elementor-element-11e2559 .elementor-heading-title a:focus{color:#006958;}.elementor-443 .elementor-element.elementor-element-7b3491f .elementor-heading-title{font-family:"Fraunces", Sans-serif;font-size:14px;font-weight:600;color:#111111;}.elementor-443 .elementor-element.elementor-element-7b3491f .elementor-heading-title a:hover, .elementor-443 .elementor-element.elementor-element-7b3491f .elementor-heading-title a:focus{color:#006958;}.elementor-443 .elementor-element.elementor-element-bbe7c55 .elementor-heading-title{font-family:"Fraunces", Sans-serif;font-size:14px;font-weight:600;color:#111111;}.elementor-443 .elementor-element.elementor-element-bbe7c55 .elementor-heading-title a:hover, .elementor-443 .elementor-element.elementor-element-bbe7c55 .elementor-heading-title a:focus{color:#006958;}.elementor-443 .elementor-element.elementor-element-40ca4bf .elementor-heading-title{font-family:"Fraunces", Sans-serif;font-size:14px;font-weight:600;color:#111111;}.elementor-443 .elementor-element.elementor-element-40ca4bf .elementor-heading-title a:hover, .elementor-443 .elementor-element.elementor-element-40ca4bf .elementor-heading-title a:focus{color:#006958;}.elementor-443 .elementor-element.elementor-element-0c7af5e{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:flex-end;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-443 .elementor-element.elementor-element-a8e937d{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:flex-start;--align-items:center;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-443 .elementor-element.elementor-element-aaa7b09{--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-end;--gap:5px 5px;--row-gap:5px;--column-gap:5px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-443 .elementor-element.elementor-element-a8becd4{--grid-template-columns:repeat(0, auto);text-align:left;--icon-size:16px;--grid-column-gap:5px;--grid-row-gap:0px;}.elementor-443 .elementor-element.elementor-element-643a204{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:flex-end;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-widget-icon-list .elementor-icon-list-item:not(:last-child):after{border-color:var( --e-global-color-text );}.elementor-widget-icon-list .elementor-icon-list-icon i{color:var( --e-global-color-primary );}.elementor-widget-icon-list .elementor-icon-list-icon svg{fill:var( --e-global-color-primary );}.elementor-widget-icon-list .elementor-icon-list-item > .elementor-icon-list-text, .elementor-widget-icon-list .elementor-icon-list-item > a{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-icon-list .elementor-icon-list-text{color:var( --e-global-color-secondary );}.elementor-443 .elementor-element.elementor-element-171f3ed{width:var( --container-widget-width, 100% );max-width:100%;margin:0% 0% calc(var(--kit-widget-spacing, 0px) + -2%) 0%;--container-widget-width:100%;--container-widget-flex-grow:0;--e-icon-list-icon-size:48px;}.elementor-443 .elementor-element.elementor-element-171f3ed.elementor-element{--align-self:center;}.elementor-443 .elementor-element.elementor-element-171f3ed .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child){padding-block-end:calc(0px/2);}.elementor-443 .elementor-element.elementor-element-171f3ed .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:first-child){margin-block-start:calc(0px/2);}.elementor-443 .elementor-element.elementor-element-171f3ed .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item{margin-inline:calc(0px/2);}.elementor-443 .elementor-element.elementor-element-171f3ed .elementor-icon-list-items.elementor-inline-items{margin-inline:calc(-0px/2);}.elementor-443 .elementor-element.elementor-element-171f3ed .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after{inset-inline-end:calc(-0px/2);}.elementor-443 .elementor-element.elementor-element-171f3ed .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-443 .elementor-element.elementor-element-171f3ed .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-443 .elementor-element.elementor-element-171f3ed .elementor-icon-list-text{transition:color 0.3s;}.elementor-443 .elementor-element.elementor-element-c075619{--display:flex;--justify-content:flex-end;--align-items:flex-end;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-443 .elementor-element.elementor-element-8721154 .elementor-heading-title{font-family:"Jost", Sans-serif;font-size:14px;font-weight:600;}.elementor-443 .elementor-element.elementor-element-101274a{--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;border-style:solid;--border-style:solid;border-width:0px 0px 02px 0px;--border-top-width:0px;--border-right-width:0px;--border-bottom-width:02px;--border-left-width:0px;border-color:var( --e-global-color-primary );--border-color:var( --e-global-color-primary );--border-radius:0px 0px 0px 0px;--z-index:9999;}.elementor-443 .elementor-element.elementor-element-101274a:not(.elementor-motion-effects-element-type-background), .elementor-443 .elementor-element.elementor-element-101274a > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-astglobalcolor1 );}.elementor-443 .elementor-element.elementor-element-4a61386{--display:flex;--gap:10px 10px;--row-gap:10px;--column-gap:10px;border-style:none;--border-style:none;--border-radius:15px 15px 15px 15px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-443 .elementor-element.elementor-element-5e7a13c{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;text-align:center;}.elementor-443 .elementor-element.elementor-element-5e7a13c .elementor-heading-title{font-family:"Fraunces", Sans-serif;font-size:18px;font-weight:600;color:var( --e-global-color-primary );}.elementor-443 .elementor-element.elementor-element-54b23a7{text-align:center;font-family:"Fraunces", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-primary );}:root{--page-title-display:none;}body.elementor-page-443{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}@media(min-width:768px){.elementor-443 .elementor-element.elementor-element-62de20f{--content-width:90vw;}.elementor-443 .elementor-element.elementor-element-e202e36{--width:21%;}.elementor-443 .elementor-element.elementor-element-251033e{--width:100%;}.elementor-443 .elementor-element.elementor-element-1a0419d{--width:23%;}.elementor-443 .elementor-element.elementor-element-caf8906{--content-width:1400px;}.elementor-443 .elementor-element.elementor-element-8ccf1ed{--content-width:1400px;}.elementor-443 .elementor-element.elementor-element-f51bce5{--width:25%;}.elementor-443 .elementor-element.elementor-element-4fc1d30{--width:75%;}.elementor-443 .elementor-element.elementor-element-a8e937d{--width:35%;}.elementor-443 .elementor-element.elementor-element-aaa7b09{--width:100%;}.elementor-443 .elementor-element.elementor-element-643a204{--width:33%;}.elementor-443 .elementor-element.elementor-element-c075619{--width:33%;}}@media(max-width:1366px) and (min-width:768px){.elementor-443 .elementor-element.elementor-element-e202e36{--width:33%;}.elementor-443 .elementor-element.elementor-element-251033e{--width:30%;}.elementor-443 .elementor-element.elementor-element-1a0419d{--width:30%;}.elementor-443 .elementor-element.elementor-element-a8e937d{--width:40%;}}@media(max-width:1200px) and (min-width:768px){.elementor-443 .elementor-element.elementor-element-a8e937d{--width:33%;}}@media(max-width:1024px) and (min-width:768px){.elementor-443 .elementor-element.elementor-element-62de20f{--content-width:90vw;}.elementor-443 .elementor-element.elementor-element-e202e36{--width:33%;}.elementor-443 .elementor-element.elementor-element-251033e{--width:33%;}.elementor-443 .elementor-element.elementor-element-1a0419d{--width:33%;}}@media(max-width:880px) and (min-width:768px){.elementor-443 .elementor-element.elementor-element-e202e36{--width:33%;}.elementor-443 .elementor-element.elementor-element-251033e{--width:33%;}.elementor-443 .elementor-element.elementor-element-1a0419d{--width:33%;}}@media(min-width:2400px){.elementor-443 .elementor-element.elementor-element-4fc1d30{--grid-auto-flow:row;}}@media(max-width:1366px){.elementor-443 .elementor-element.elementor-element-e202e36{--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--z-index:10;}.elementor-443 .elementor-element.elementor-element-fcce8ef{text-align:center;}.elementor-443 .elementor-element.elementor-element-fcce8ef img{width:42%;}.elementor-443 .elementor-element.elementor-element-251033e{--align-items:flex-start;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-443 .elementor-element.elementor-element-251033e.e-con{--order:-99999 /* order start hack */;}.elementor-443 .elementor-element.elementor-element-0ab4523{--n-menu-title-space-between:0px;--n-menu-title-font-size:13px;--n-menu-toggle-icon-size:2rem;}.elementor-443 .elementor-element.elementor-element-0ab4523 > .e-n-menu > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title:not( .e-current ):not( :hover ){border-width:1px 1px 1px 1px;}.elementor-443 .elementor-element.elementor-element-0ab4523 > .e-n-menu > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title{border-radius:0px 0px 0px 0px;}:where( .elementor-443 .elementor-element.elementor-element-0ab4523 > .e-n-menu > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-content ) > .e-con{--border-radius:0px 0px 0px 0px;}.elementor-443 .elementor-element.elementor-element-1a0419d{--z-index:10;}.elementor-443 .elementor-element.elementor-element-bcb21f0.e-con{--align-self:flex-start;}.elementor-443 .elementor-element.elementor-element-8a2cd77{--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-443 .elementor-element.elementor-element-4fc1d30{--grid-auto-flow:row;}.elementor-443 .elementor-element.elementor-element-088ddac{text-align:center;}.elementor-443 .elementor-element.elementor-element-a94b245{text-align:center;}.elementor-443 .elementor-element.elementor-element-40ca4bf{text-align:center;}}@media(max-width:1200px){.elementor-443 .elementor-element.elementor-element-fcce8ef{text-align:center;}.elementor-443 .elementor-element.elementor-element-fcce8ef img{width:50%;}.elementor-443 .elementor-element.elementor-element-251033e{--align-items:flex-start;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-443 .elementor-element.elementor-element-251033e.e-con{--order:-99999 /* order start hack */;}.elementor-443 .elementor-element.elementor-element-0ab4523{--n-menu-title-space-between:0px;--n-menu-title-font-size:16px;--n-menu-toggle-icon-size:2rem;}.elementor-443 .elementor-element.elementor-element-0ab4523 > .e-n-menu > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title{border-radius:0px 0px 0px 0px;}.elementor-443 .elementor-element.elementor-element-1a0419d{--justify-content:flex-end;}.elementor-443 .elementor-element.elementor-element-4fc1d30{--grid-auto-flow:row;}.elementor-443 .elementor-element.elementor-element-a8becd4{--icon-size:18px;}.elementor-443 .elementor-element.elementor-element-8721154 .elementor-heading-title{font-size:10px;}}@media(max-width:1024px){.elementor-443 .elementor-element.elementor-element-62de20f{--justify-content:space-between;--z-index:99;}.elementor-443 .elementor-element.elementor-element-e202e36{--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-443 .elementor-element.elementor-element-e202e36.e-con{--align-self:center;}.elementor-443 .elementor-element.elementor-element-fcce8ef{text-align:center;}.elementor-443 .elementor-element.elementor-element-fcce8ef img{width:60%;}.elementor-443 .elementor-element.elementor-element-251033e{--align-items:flex-start;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-443 .elementor-element.elementor-element-251033e.e-con{--order:-99999 /* order start hack */;}.elementor-443 .elementor-element.elementor-element-0ab4523{--n-menu-heading-justify-content:center;--n-menu-title-flex-grow:initial;--n-menu-title-justify-content:initial;--n-menu-title-justify-content-mobile:center;--n-menu-title-space-between:0px;}.elementor-443 .elementor-element.elementor-element-0ab4523 > .e-n-menu > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title:not( .e-current ):not( :hover ){border-width:1px 1px 1px 1px;}.elementor-443 .elementor-element.elementor-element-1a0419d{--justify-content:flex-end;}.elementor-443 .elementor-element.elementor-element-4fc1d30{--grid-auto-flow:row;}.elementor-443 .elementor-element.elementor-element-a8becd4{--icon-size:12px;}}@media(max-width:880px){.elementor-443 .elementor-element.elementor-element-62de20f{--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-443 .elementor-element.elementor-element-fcce8ef img{width:81%;}.elementor-443 .elementor-element.elementor-element-0ab4523{--n-menu-icon-size:20px;--n-menu-toggle-icon-size:2rem;}.elementor-443 .elementor-element.elementor-element-1a0419d{--justify-content:flex-end;}.elementor-443 .elementor-element.elementor-element-4fc1d30{--grid-auto-flow:row;}.elementor-443 .elementor-element.elementor-element-0807a8a{text-align:center;}.elementor-443 .elementor-element.elementor-element-0c2bd82{text-align:center;}.elementor-443 .elementor-element.elementor-element-5557505{text-align:center;}.elementor-443 .elementor-element.elementor-element-1c2313f{text-align:center;}}@media(max-width:767px){.elementor-443 .elementor-element.elementor-element-62de20f{--content-width:90vw;--min-height:50px;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--z-index:9999;}.elementor-443 .elementor-element.elementor-element-e202e36{--width:33%;--z-index:10;}.elementor-443 .elementor-element.elementor-element-fcce8ef img{width:100px;}.elementor-443 .elementor-element.elementor-element-251033e{--width:33%;--justify-content:center;--align-items:flex-start;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-443 .elementor-element.elementor-element-0ab4523{--n-menu-heading-justify-content:space-between;--n-menu-title-flex-grow:1;--n-menu-title-justify-content:center;--n-menu-title-justify-content-mobile:center;--n-menu-title-distance-from-content:0px;--n-menu-toggle-align:flex-start;--n-menu-title-space-between:0px;--n-menu-icon-size:24px;--n-menu-toggle-icon-size:20px;--n-menu-toggle-icon-distance-from-dropdown:19px;}.elementor-443 .elementor-element.elementor-element-0ab4523 > .e-n-menu > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title{border-radius:0px 0px 0px 0px;}.elementor-443 .elementor-element.elementor-element-8305189 .elementor-icon{font-size:24px;}.elementor-443 .elementor-element.elementor-element-8305189 .elementor-icon svg{height:24px;}.elementor-443 .elementor-element.elementor-element-1a0419d{--width:33%;--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-end;--gap:05px 05px;--row-gap:05px;--column-gap:05px;--z-index:10;}.elementor-443 .elementor-element.elementor-element-b956052.elementor-element{--align-self:center;--order:99999 /* order end hack */;}.elementor-443 .elementor-element.elementor-element-545e6b5{--toggle-icon-size:24px;}.elementor-443 .elementor-element.elementor-element-45cf012{width:var( --container-widget-width, 35% );max-width:35%;--container-widget-width:35%;--container-widget-flex-grow:0;}.elementor-443 .elementor-element.elementor-element-45cf012.elementor-element{--order:-99999 /* order start hack */;}.elementor-443 .elementor-element.elementor-element-bcb21f0{--justify-content:flex-start;}.elementor-443 .elementor-element.elementor-element-f7cc893 .elementor-button{font-size:12px;}.elementor-443 .elementor-element.elementor-element-505f723{width:100%;max-width:100%;}.elementor-443 .elementor-element.elementor-element-505f723 .elementor-button{font-size:12px;}.elementor-443 .elementor-element.elementor-element-370bc69{--justify-content:flex-start;}.elementor-443 .elementor-element.elementor-element-174348d{--justify-content:flex-start;}.elementor-443 .elementor-element.elementor-element-67b77d3{--justify-content:flex-start;}.elementor-443 .elementor-element.elementor-element-caf8906{--gap:10px 10px;--row-gap:10px;--column-gap:10px;}.elementor-443 .elementor-element.elementor-element-2846b28{--justify-content:center;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-443 .elementor-element.elementor-element-7f541cc{text-align:center;}.elementor-443 .elementor-element.elementor-element-50f9ce0{text-align:center;}.elementor-443 .elementor-element.elementor-element-4fc1d30{--e-con-grid-template-columns:repeat(2, 1fr);--grid-auto-flow:row;}.elementor-443 .elementor-element.elementor-element-6f29145{text-align:center;}.elementor-443 .elementor-element.elementor-element-b1f99af{text-align:center;}.elementor-443 .elementor-element.elementor-element-088ddac{text-align:center;}.elementor-443 .elementor-element.elementor-element-a94b245{text-align:center;}.elementor-443 .elementor-element.elementor-element-40ca4bf{text-align:center;}.elementor-443 .elementor-element.elementor-element-a8e937d{--justify-content:center;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-443 .elementor-element.elementor-element-aaa7b09{--justify-content:center;}.elementor-443 .elementor-element.elementor-element-a8becd4{text-align:center;}.elementor-443 .elementor-element.elementor-element-171f3ed{--container-widget-width:100%;--container-widget-flex-grow:0;width:var( --container-widget-width, 100% );max-width:100%;--e-icon-list-icon-size:40px;--e-icon-list-icon-align:center;--e-icon-list-icon-margin:0 calc(var(--e-icon-list-icon-size, 1em) * 0.125);}.elementor-443 .elementor-element.elementor-element-171f3ed .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child){padding-block-end:calc(0px/2);}.elementor-443 .elementor-element.elementor-element-171f3ed .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:first-child){margin-block-start:calc(0px/2);}.elementor-443 .elementor-element.elementor-element-171f3ed .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item{margin-inline:calc(0px/2);}.elementor-443 .elementor-element.elementor-element-171f3ed .elementor-icon-list-items.elementor-inline-items{margin-inline:calc(-0px/2);}.elementor-443 .elementor-element.elementor-element-171f3ed .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after{inset-inline-end:calc(-0px/2);}.elementor-443 .elementor-element.elementor-element-8721154.elementor-element{--align-self:center;}.elementor-443 .elementor-element.elementor-element-4a61386{--padding-top:15px;--padding-bottom:15px;--padding-left:15px;--padding-right:15px;}.elementor-443 .elementor-element.elementor-element-5e7a13c{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;text-align:center;}.elementor-443 .elementor-element.elementor-element-54b23a7{text-align:center;font-size:9px;}}/* Start custom CSS for icon, class: .elementor-element-8305189 */@media (min-width: 1367px) {
    .elementor-443 .elementor-element.elementor-element-8305189 {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        width: 0 !important;
        height: 0 !important;
        min-width: 0 !important;
        min-height: 0 !important;
        max-width: 0 !important;
        max-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
        pointer-events: none !important;
    }

    .elementor-443 .elementor-element.elementor-element-8305189 .elementor-widget-container {
        display: none !important;
        width: 0 !important;
        height: 0 !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
    }
}/* End custom CSS */
/* Start custom CSS for shortcode, class: .elementor-element-76f362b */.elementor-443 .elementor-element.elementor-element-76f362b{
    height: 0;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-bcb21f0 */<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/gsap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/ScrollTrigger.min.js"></script>

<section id="scroll-video-container">
  <div id="scroll-video-sticky">
    <video
      id="scroll-video"
      muted
      playsinline
      webkit-playsinline
      preload="auto"
      disablepictureinpicture
    ></video>

    <div id="scroll-video-overlay"></div>
  </div>
</section>

<style>
  html,
  body {
    overflow-x: hidden;
  }

  #scroll-video-container {
    /*
      =========================
      EASY POPUP SIZE CONTROLS
      =========================
    */
    --peptico-pop-desktop-width: min(90vw, 900px);
    --peptico-pop-desktop-max-width: 900px;
    --peptico-pop-desktop-min-height: 0px;

    /* MOBILE POPUP CONTROLS */
    --peptico-pop-mobile-left: 20px;
    --peptico-pop-mobile-right: 20px;
    --peptico-pop-mobile-top: 24px;
    --peptico-pop-mobile-bottom: 32px;

    position: relative;
    width: 100%;
    height: 1800vh;
    overflow: visible !important;
    background: #000;
    margin: 0;
    padding: 0;
  }

  #scroll-video-sticky {
    position: sticky;
    top: 0;
    width: 100%;
    height: 100vh;
    overflow: hidden;
    background: #000;
  }

  #scroll-video {
    position: absolute;
    inset: 0;
    width: 100%;
    max-width: none;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    display: block;
    background: #000;
    margin: 0;
    padding: 0;
    border: 0;
    transform: translate3d(0, 0, 0);
    backface-visibility: hidden;
    will-change: transform;
    pointer-events: none; 
  }

  #scroll-video-overlay {
    position: absolute;
    inset: 0;
    z-index: 5;
    pointer-events: none;
  }

  body:not(.elementor-editor-active):not(.elementor-editor-preview) .peptico-scroll-pop-block {
    display: none !important;
  }

  body.elementor-editor-active #scroll-video-container,
  body.elementor-editor-preview #scroll-video-container {
    display: none !important;
  }

  body.elementor-editor-active .peptico-scroll-pop-block,
  body.elementor-editor-preview .peptico-scroll-pop-block {
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    pointer-events: auto !important;
  }

  #scroll-video-overlay .peptico-scroll-pop-block {
    display: flex !important;
    width: 100%;
    max-width: 100%;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
  }

  .peptico-pop-slot {
    position: absolute;
    z-index: 10;
    width: var(--peptico-pop-desktop-width);
    max-width: var(--peptico-pop-desktop-max-width);
    min-height: var(--peptico-pop-desktop-min-height);
    opacity: 0;
    transform: translateY(22px) scale(0.985);
    transition:
      opacity 0.4s ease,
      transform 0.4s ease;
    pointer-events: none;
    will-change: opacity, transform;
  }

  .peptico-pop-slot.is-active {
    opacity: 1;
    transform: translateY(0) scale(1);
    pointer-events: auto;
  }

  /* DESKTOP POSITIONS */
  .peptico-pop-slot[data-position="bottom-left"] { left: clamp(20px, 6vw, 90px); bottom: clamp(32px, 8vh, 110px); }
  .peptico-pop-slot[data-position="bottom-right"] { right: clamp(20px, 6vw, 90px); bottom: clamp(32px, 8vh, 110px); }
  .peptico-pop-slot[data-position="top-left"] { left: clamp(20px, 6vw, 90px); top: clamp(32px, 12vh, 120px); }
  .peptico-pop-slot[data-position="top-right"] { right: clamp(20px, 6vw, 90px); top: clamp(32px, 12vh, 120px); }
  .peptico-pop-slot[data-position="top-center"] { left: 50%; top: clamp(32px, 10vh, 96px); transform: translate(-50%, 22px) scale(0.985); }
  .peptico-pop-slot[data-position="top-center"].is-active { transform: translate(-50%, 0) scale(1); }
  .peptico-pop-slot[data-position="center-left"] { left: clamp(20px, 6vw, 90px); top: 50%; transform: translateY(calc(-50% + 22px)) scale(0.985); }
  .peptico-pop-slot[data-position="center-left"].is-active { transform: translateY(-50%) scale(1); }
  .peptico-pop-slot[data-position="center-right"] { right: clamp(20px, 6vw, 90px); top: 50%; transform: translateY(calc(-50% + 22px)) scale(0.985); }
  .peptico-pop-slot[data-position="center-right"].is-active { transform: translateY(-50%) scale(1); }
  .peptico-pop-slot[data-position="center"] { left: 50%; top: 50%; transform: translate(-50%, calc(-50% + 22px)) scale(0.985); }
  .peptico-pop-slot[data-position="center"].is-active { transform: translate(-50%, -50%) scale(1); }

  @media (max-width: 768px) {
    #scroll-video-container {
      height: 1100vh;
      background: #000;
    }

    #scroll-video-sticky {
      height: 100vh;
      height: 100dvh;
      min-height: 100dvh;
    }

    #scroll-video {
      height: 100%;
      object-fit: cover;
      object-position: center center;
    }

    /* Keep popups sizing naturally without cutting off */
    .peptico-pop-slot {
      width: auto;
      max-width: none;
      height: auto;
      min-height: auto;
      max-height: 85dvh;
      overflow: visible; 
    }

    .peptico-pop-slot .peptico-scroll-pop-block {
      height: auto !important;
      max-height: none !important;
      overflow: visible !important;
    }

    /* =========================================
      HIDE SPECIFIC ICON BOXES IN POPUP 1 ONLY
      =========================================
      This targets common Elementor icon box widgets inside the first block.
    */
    .peptico-pop-1 .elementor-widget-icon-box,
    .peptico-pop-1 .elementor-widget-icon,
    .peptico-pop-1 .elementor-icon-list-item {
      display: none !important;
    }

    .peptico-pop-slot[data-mobile-position="top-left"],
    .peptico-pop-slot[data-mobile-position="top-center"],
    .peptico-pop-slot[data-mobile-position="top-right"] {
      left: var(--peptico-pop-mobile-left);
      right: var(--peptico-pop-mobile-right);
      top: var(--peptico-pop-mobile-top);
      bottom: auto;
      transform: translateY(18px) scale(0.985);
    }

    .peptico-pop-slot[data-mobile-position="top-left"].is-active,
    .peptico-pop-slot[data-mobile-position="top-center"].is-active,
    .peptico-pop-slot[data-mobile-position="top-right"].is-active {
      transform: translateY(0) scale(1);
    }

    .peptico-pop-slot[data-mobile-position="center"] {
      left: var(--peptico-pop-mobile-left);
      right: var(--peptico-pop-mobile-right);
      top: 50%;
      bottom: auto;
      transform: translateY(calc(-50% + 18px)) scale(0.985);
    }

    .peptico-pop-slot[data-mobile-position="center"].is-active {
      transform: translateY(-50%) scale(1);
    }

    .peptico-pop-slot[data-mobile-position="bottom-left"],
    .peptico-pop-slot[data-mobile-position="bottom-center"],
    .peptico-pop-slot[data-mobile-position="bottom-right"] {
      left: var(--peptico-pop-mobile-left);
      right: var(--peptico-pop-mobile-right);
      top: auto;
      bottom: var(--peptico-pop-mobile-bottom);
      transform: translateY(18px) scale(0.985);
    }

    .peptico-pop-slot[data-mobile-position="bottom-left"].is-active,
    .peptico-pop-slot[data-mobile-position="bottom-center"].is-active,
    .peptico-pop-slot[data-mobile-position="bottom-right"].is-active {
      transform: translateY(0) scale(1);
    }
  }

  @supports not (height: 100dvh) {
    @media (max-width: 768px) {
      #scroll-video-sticky {
        height: 100vh;
        min-height: 100vh;
      }
    }
  }
</style>

<script>
document.addEventListener("DOMContentLoaded", function () {
  const isElementorEditing =
    document.body.classList.contains("elementor-editor-active") ||
    document.body.classList.contains("elementor-editor-preview") ||
    window.location.href.indexOf("elementor-preview") !== -1 ||
    window.location.href.indexOf("action=elementor") !== -1;

  if (isElementorEditing) {
    const editorVideo = document.querySelector("#scroll-video");

    if (editorVideo) {
      try {
        editorVideo.pause();
        editorVideo.removeAttribute("src");
        editorVideo.load();
      } catch (error) {}
    }

    return;
  }

  /*
    =========================
    EDIT EVERYTHING HERE
    =========================
  */

  const CONFIG = {
    desktopVideoUrl: "https://peptico.com/wp-content/uploads/2026/06/Peptico-Home-Animation-V01-Final-Nomotionblur-7-Nyx3-Full.mp4",
    mobileVideoUrl: "https://peptico.com/wp-content/uploads/2026/06/Peptico-Home-Animation-V01-Final-Nomotionblur-7-Nyx3-Full-1.mp4",

    videoDurationSeconds: 21.5,

    mobileBreakpoint: 768,

    desktopVhPerSecond: 75,
    desktopMinVh: 1800,
    desktopExtraVh: 150,
    desktopScrub: 0.7,
    desktopSmooth: 0.22,
    desktopSeekFps: 30,

    mobileVhPerSecond: 44,
    mobileMinVh: 1100,
    mobileExtraVh: 120,
    mobileScrub: 0.35,
    mobileSmooth: 0.15,
    mobileSeekFps: 24,

    endpointLockStart: 0.004,
    endpointLockEnd: 0.996,

    popBlocks: [
      { .elementor-443 .elementor-element.elementor-element-bcb21f0: ".peptico-pop-1", position: "top-left", mobilePosition: "top-center", desktopStartSec: 1.0, desktopEndSec: 3.8, mobileStartSec: 1.0, mobileEndSec: 3.8 },
      { .elementor-443 .elementor-element.elementor-element-bcb21f0: ".peptico-pop-2", position: "top-right", mobilePosition: "top-center", desktopStartSec: 3.4, desktopEndSec: 5.6, mobileStartSec: 3.4, mobileEndSec: 5.6 },
      { .elementor-443 .elementor-element.elementor-element-bcb21f0: ".peptico-pop-3", position: "bottom-right", mobilePosition: "top-center", desktopStartSec: 5.8, desktopEndSec: 8.0, mobileStartSec: 5.8, mobileEndSec: 8.0 },
      { .elementor-443 .elementor-element.elementor-element-bcb21f0: ".peptico-pop-4", position: "center-left", mobilePosition: "top-center", desktopStartSec: 8.2, desktopEndSec: 10.7, mobileStartSec: 8.2, mobileEndSec: 10.7 },
      { .elementor-443 .elementor-element.elementor-element-bcb21f0: ".peptico-pop-5", position: "top-left", mobilePosition: "top-center", desktopStartSec: 10.9, desktopEndSec: 13.3, mobileStartSec: 10.9, mobileEndSec: 13.3 },
      { .elementor-443 .elementor-element.elementor-element-bcb21f0: ".peptico-pop-6", position: "center-right", mobilePosition: "top-center", desktopStartSec: 13.5, desktopEndSec: 16.1, mobileStartSec: 13.5, mobileEndSec: 16.1 },
      { .elementor-443 .elementor-element.elementor-element-bcb21f0: ".peptico-pop-7", position: "bottom-left", mobilePosition: "top-center", desktopStartSec: 16.3, desktopEndSec: 18.6, mobileStartSec: 16.3, mobileEndSec: 18.6 },
      { .elementor-443 .elementor-element.elementor-element-bcb21f0: ".peptico-pop-8", position: "bottom-right", mobilePosition: "top-center", desktopStartSec: 18.8, desktopEndSec: 20.8, mobileStartSec: 18.8, mobileEndSec: 20.8 }
    ]
  };

  /*
    =========================
    DO NOT EDIT BELOW
    =========================
  */

  if (!window.gsap || !window.ScrollTrigger) {
    console.warn("Scroll video: GSAP or ScrollTrigger not loaded.");
    return;
  }

  gsap.registerPlugin(ScrollTrigger);

  ScrollTrigger.config({
    ignoreMobileResize: true
  });

  const container = document.querySelector("#scroll-video-container");
  const sticky = document.querySelector("#scroll-video-sticky");
  const video = document.querySelector("#scroll-video");
  const overlay = document.querySelector("#scroll-video-overlay");

  if (!container || !sticky || !video || !overlay) {
    console.warn("Scroll video: required elements not found.");
    return;
  }

  let duration = CONFIG.videoDurationSeconds;
  let targetTime = 0;
  let currentTime = 0;
  let lastAppliedTime = -1;
  let lastProgress = 0;
  let rafId = null;
  let scrollTrigger = null;
  let resizeTimer = null;
  let lastWindowWidth = window.innerWidth;
  let currentMode = "";
  let currentSourceUrl = "";
  let mountedPopItems = [];

  video.muted = true;
  video.defaultMuted = true;
  video.playsInline = true;
  video.preload = "auto";
  video.controls = false;
  video.loop = false;
  video.autoplay = false;

  video.setAttribute("muted", "");
  video.setAttribute("defaultMuted", "");
  video.setAttribute("playsinline", "");
  video.setAttribute("webkit-playsinline", "");
  video.setAttribute("preload", "auto");
  video.removeAttribute("loop");
  video.removeAttribute("autoplay");

  try {
    video.disablePictureInPicture = true;
  } catch (error) {}

  function isMobile() {
    return window.matchMedia("(max-width: " + CONFIG.mobileBreakpoint + "px)").matches;
  }

  function isTouchDevice() {
    return window.matchMedia("(pointer: coarse)").matches;
  }

  function getWantedMode() {
    return isMobile() ? "mobile" : "desktop";
  }

  function getWantedVideoUrl() {
    if (isMobile() && CONFIG.mobileVideoUrl) {
      return CONFIG.mobileVideoUrl;
    }
    return CONFIG.desktopVideoUrl;
  }

  function getViewportHeight() {
    if (isTouchDevice() && window.visualViewport && window.visualViewport.height) {
      return Math.round(window.visualViewport.height);
    }
    return window.innerHeight;
  }

  function getDuration() {
    if (video.duration && !isNaN(video.duration) && isFinite(video.duration)) {
      return video.duration;
    }
    return CONFIG.videoDurationSeconds;
  }

  function getActiveSmooth() {
    return isMobile() ? CONFIG.mobileSmooth : CONFIG.desktopSmooth;
  }

  function getActiveSeekFps() {
    return isMobile() ? CONFIG.mobileSeekFps : CONFIG.desktopSeekFps;
  }

  function getActiveScrub() {
    return isMobile() ? CONFIG.mobileScrub : CONFIG.desktopScrub;
  }

  function secondsToProgress(seconds) {
    return Math.min(1, Math.max(0, seconds / CONFIG.videoDurationSeconds));
  }

  function setContainerHeight() {
    const activeDuration = getDuration();
    let totalVh;

    if (isMobile()) {
      totalVh = Math.max(
        CONFIG.mobileMinVh,
        Math.round(activeDuration * CONFIG.mobileVhPerSecond + CONFIG.mobileExtraVh)
      );
    } else {
      totalVh = Math.max(
        CONFIG.desktopMinVh,
        Math.round(activeDuration * CONFIG.desktopVhPerSecond + CONFIG.desktopExtraVh)
      );
    }

    container.style.height = Math.round(getViewportHeight() * (totalVh / 100)) + "px";
  }

  function restoreMountedPopBlocks() {
    mountedPopItems.forEach(function (item) {
      if (item.block && item.placeholder && item.placeholder.parentNode) {
        item.placeholder.parentNode.insertBefore(item.block, item.placeholder);
      }
      if (item.placeholder && item.placeholder.parentNode) {
        item.placeholder.remove();
      }
      if (item.slot && item.slot.parentNode) {
        item.slot.remove();
      }
    });
    mountedPopItems = [];
  }

  function mountElementorPopBlocks() {
    restoreMountedPopBlocks();

    CONFIG.popBlocks.forEach(function (blockConfig, index) {
      const block = document.querySelector(blockConfig..elementor-443 .elementor-element.elementor-element-bcb21f0);
      if (!block) return;

      const placeholder = document.createComment("peptico-pop-placeholder-" + index);
      const slot = document.createElement("div");

      slot.className = "peptico-pop-slot";
      slot.setAttribute("data-position", blockConfig.position || "bottom-left");
      slot.setAttribute("data-mobile-position", blockConfig.mobilePosition || "top-center");
      slot.setAttribute("data-pop-index", String(index));

      block.parentNode.insertBefore(placeholder, block);
      block.classList.add("peptico-mounted-pop");

      slot.appendChild(block);
      overlay.appendChild(slot);

      mountedPopItems.push({
        block: block,
        placeholder: placeholder,
        slot: slot
      });
    });
  }

  function updatePops(progress) {
    CONFIG.popBlocks.forEach(function (blockConfig, index) {
      const item = mountedPopItems[index];
      const slot = item ? item.slot : null;
      if (!slot) return;

      const startSec = isMobile() ? blockConfig.mobileStartSec : blockConfig.desktopStartSec;
      const endSec = isMobile() ? blockConfig.mobileEndSec : blockConfig.desktopEndSec;

      const startProgress = secondsToProgress(startSec);
      const endProgress = secondsToProgress(endSec);

      if (progress >= startProgress && progress <= endProgress) {
        slot.classList.add("is-active");
      } else {
        slot.classList.remove("is-active");
      }
    });
  }

  function stopVideoMotion() {
    video.loop = false;
    video.autoplay = false;
    video.removeAttribute("loop");
    video.removeAttribute("autoplay");

    try {
      if (!video.paused) {
        video.pause();
      }
    } catch (error) {}
  }

  function applyVideoTime(time) {
    const fps = getActiveSeekFps();
    const safeTime = Math.min(duration, Math.max(0, time));
    const snappedTime = Math.round(safeTime * fps) / fps;

    if (snappedTime === lastAppliedTime) {
      return;
    }

    if (isMobile() && video.seeking) {
      return;
    }

    try {
      if (!video.paused) {
        video.pause();
      }
      video.currentTime = snappedTime;
      lastAppliedTime = snappedTime;
    } catch (error) {}
  }

  function primeVideo() {
    const restoreTime = Math.min(
      duration || CONFIG.videoDurationSeconds,
      Math.max(0.001, video.currentTime || currentTime || targetTime || 0.001)
    );

    try {
      video.muted = true;
      video.defaultMuted = true;
      video.playsInline = true;
      video.loop = false;
      video.autoplay = false;

      video.setAttribute("muted", "");
      video.setAttribute("defaultMuted", "");
      video.setAttribute("playsinline", "");
      video.setAttribute("webkit-playsinline", "");
      video.removeAttribute("loop");
      video.removeAttribute("autoplay");

      const promise = video.play();

      if (promise && typeof promise.then === "function") {
        promise
          .then(function () {
            try {
              video.pause();
              video.currentTime = restoreTime;
            } catch (error) {}
          })
          .catch(function () {});
      }
    } catch (error) {}
  }

  document.addEventListener("touchstart", primeVideo, { once: true, passive: true });
  document.addEventListener("touchend", primeVideo, { once: true, passive: true });
  document.addEventListener("pointerdown", primeVideo, { once: true, passive: true });
  document.addEventListener("click", primeVideo, { once: true });

  function killCurrentTrigger() {
    if (scrollTrigger) {
      scrollTrigger.kill();
      scrollTrigger = null;
    }
  }

  function createScrollTrigger() {
    killCurrentTrigger();
    setContainerHeight();

    scrollTrigger = ScrollTrigger.create({
      trigger: container,
      start: "top top",
      end: "bottom bottom",
      scrub: getActiveScrub(),
      invalidateOnRefresh: true,

      onUpdate: function (self) {
        lastProgress = self.progress;
        updatePops(self.progress);

        if (self.progress <= CONFIG.endpointLockStart) {
          targetTime = 0;
          currentTime = 0;
          applyVideoTime(0);
          return;
        }

        if (self.progress >= CONFIG.endpointLockEnd) {
          targetTime = duration;
          currentTime = duration;
          applyVideoTime(duration);
          return;
        }

        const fps = getActiveSeekFps();
        const rawTime = self.progress * duration;
        const frame = Math.round(rawTime * fps);

        targetTime = Math.min(duration, Math.max(0, frame / fps));
      }
    });

    ScrollTrigger.refresh();
  }

  function renderScrollScrub() {
    const smooth = getActiveSmooth();

    if (lastProgress <= CONFIG.endpointLockStart) {
      currentTime = 0;
      targetTime = 0;
      applyVideoTime(0);
    } else if (lastProgress >= CONFIG.endpointLockEnd) {
      currentTime = duration;
      targetTime = duration;
      applyVideoTime(duration);
    } else {
      currentTime += (targetTime - currentTime) * smooth;

      if (Math.abs(targetTime - currentTime) < 1 / getActiveSeekFps()) {
        currentTime = targetTime;
      }

      applyVideoTime(currentTime);
    }

    rafId = requestAnimationFrame(renderScrollScrub);
  }

  function resetAnimationState() {
    duration = getDuration();
    stopVideoMotion();

    try {
      video.currentTime = 0.001;
    } catch (error) {}

    targetTime = 0;
    currentTime = 0;
    lastAppliedTime = -1;
    lastProgress = 0;

    updatePops(0);
  }

  function loadCorrectVideo(callback) {
    const wantedUrl = getWantedVideoUrl();
    const wantedMode = getWantedMode();

    if (!wantedUrl) {
      console.warn("Scroll video: video URL is missing.");
      return;
    }

    if (currentSourceUrl === wantedUrl && currentMode === wantedMode && video.readyState >= 1) {
      callback();
      return;
    }

    currentSourceUrl = wantedUrl;
    currentMode = wantedMode;

    killCurrentTrigger();

    if (rafId) {
      cancelAnimationFrame(rafId);
      rafId = null;
    }

    stopVideoMotion();

    video.removeAttribute("src");
    video.setAttribute("src", wantedUrl);

    try {
      video.load();
    } catch (error) {}

    let done = false;

    function finish() {
      if (done) return;
      done = true;
      callback();
    }

    if (video.readyState >= 1) {
      finish();
      return;
    }

    video.addEventListener("loadedmetadata", finish, { once: true });
    video.addEventListener("loadeddata", finish, { once: true });
    video.addEventListener("canplay", finish, { once: true });

    setTimeout(finish, 2500);
  }

  function initScrollVideo() {
    mountElementorPopBlocks();

    loadCorrectVideo(function () {
      resetAnimationState();
      createScrollTrigger();

      if (rafId) {
        cancelAnimationFrame(rafId);
      }

      renderScrollScrub();

      setTimeout(function () {
        duration = getDuration();
        setContainerHeight();
        ScrollTrigger.refresh();
      }, 500);

      setTimeout(function () {
        duration = getDuration();
        setContainerHeight();
        ScrollTrigger.refresh();
      }, 1200);

      setTimeout(function () {
        duration = getDuration();
        setContainerHeight();
        ScrollTrigger.refresh();
      }, 2200);
    });
  }

  initScrollVideo();

  video.addEventListener("durationchange", function () {
    duration = getDuration();
    setContainerHeight();
    ScrollTrigger.refresh();
  });

  video.addEventListener("loadedmetadata", function () {
    duration = getDuration();
    setContainerHeight();
    ScrollTrigger.refresh();
  });

  video.addEventListener("error", function () {
    console.warn("Scroll video: video failed to load or decode.", video.error);
  });

  window.addEventListener("resize", function () {
    clearTimeout(resizeTimer);

    resizeTimer = setTimeout(function () {
      const currentWidth = window.innerWidth;
      const newMode = getWantedMode();

      if (newMode !== currentMode) {
        lastWindowWidth = currentWidth;
        initScrollVideo();
        return;
      }

      if (isTouchDevice() && Math.abs(currentWidth - lastWindowWidth) < 30) {
        return;
      }

      lastWindowWidth = currentWidth;
      setContainerHeight();
      ScrollTrigger.refresh();
    }, 350);
  });

  window.addEventListener("orientationchange", function () {
    setTimeout(function () {
      lastWindowWidth = window.innerWidth;
      initScrollVideo();
    }, 700);
  });

  window.addEventListener("pageshow", function () {
    setTimeout(function () {
      duration = getDuration();
      setContainerHeight();
      primeVideo();
      ScrollTrigger.refresh();
    }, 300);
  });
});
</script>/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-370bc69 */<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/gsap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/ScrollTrigger.min.js"></script>

<section id="scroll-video-container">
  <div id="scroll-video-sticky">
    <video
      id="scroll-video"
      muted
      playsinline
      webkit-playsinline
      preload="auto"
      disablepictureinpicture
    ></video>

    <div id="scroll-video-overlay"></div>
  </div>
</section>

<style>
  html,
  body {
    overflow-x: hidden;
  }

  #scroll-video-container {
    /*
      =========================
      EASY POPUP SIZE CONTROLS
      =========================
    */
    --peptico-pop-desktop-width: min(90vw, 900px);
    --peptico-pop-desktop-max-width: 900px;
    --peptico-pop-desktop-min-height: 0px;

    /* MOBILE POPUP CONTROLS */
    --peptico-pop-mobile-left: 20px;
    --peptico-pop-mobile-right: 20px;
    --peptico-pop-mobile-top: 24px;
    --peptico-pop-mobile-bottom: 32px;

    position: relative;
    width: 100%;
    height: 1800vh;
    overflow: visible !important;
    background: #000;
    margin: 0;
    padding: 0;
  }

  #scroll-video-sticky {
    position: sticky;
    top: 0;
    width: 100%;
    height: 100vh;
    overflow: hidden;
    background: #000;
  }

  #scroll-video {
    position: absolute;
    inset: 0;
    width: 100%;
    max-width: none;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    display: block;
    background: #000;
    margin: 0;
    padding: 0;
    border: 0;
    transform: translate3d(0, 0, 0);
    backface-visibility: hidden;
    will-change: transform;
    pointer-events: none; 
  }

  #scroll-video-overlay {
    position: absolute;
    inset: 0;
    z-index: 5;
    pointer-events: none;
  }

  body:not(.elementor-editor-active):not(.elementor-editor-preview) .peptico-scroll-pop-block {
    display: none !important;
  }

  body.elementor-editor-active #scroll-video-container,
  body.elementor-editor-preview #scroll-video-container {
    display: none !important;
  }

  body.elementor-editor-active .peptico-scroll-pop-block,
  body.elementor-editor-preview .peptico-scroll-pop-block {
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    pointer-events: auto !important;
  }

  #scroll-video-overlay .peptico-scroll-pop-block {
    display: flex !important;
    width: 100%;
    max-width: 100%;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
  }

  .peptico-pop-slot {
    position: absolute;
    z-index: 10;
    width: var(--peptico-pop-desktop-width);
    max-width: var(--peptico-pop-desktop-max-width);
    min-height: var(--peptico-pop-desktop-min-height);
    opacity: 0;
    transform: translateY(22px) scale(0.985);
    transition:
      opacity 0.4s ease,
      transform 0.4s ease;
    pointer-events: none;
    will-change: opacity, transform;
  }

  .peptico-pop-slot.is-active {
    opacity: 1;
    transform: translateY(0) scale(1);
    pointer-events: auto;
  }

  /* DESKTOP POSITIONS */
  .peptico-pop-slot[data-position="bottom-left"] { left: clamp(20px, 6vw, 90px); bottom: clamp(32px, 8vh, 110px); }
  .peptico-pop-slot[data-position="bottom-right"] { right: clamp(20px, 6vw, 90px); bottom: clamp(32px, 8vh, 110px); }
  .peptico-pop-slot[data-position="top-left"] { left: clamp(20px, 6vw, 90px); top: clamp(32px, 12vh, 120px); }
  .peptico-pop-slot[data-position="top-right"] { right: clamp(20px, 6vw, 90px); top: clamp(32px, 12vh, 120px); }
  .peptico-pop-slot[data-position="top-center"] { left: 50%; top: clamp(32px, 10vh, 96px); transform: translate(-50%, 22px) scale(0.985); }
  .peptico-pop-slot[data-position="top-center"].is-active { transform: translate(-50%, 0) scale(1); }
  .peptico-pop-slot[data-position="center-left"] { left: clamp(20px, 6vw, 90px); top: 50%; transform: translateY(calc(-50% + 22px)) scale(0.985); }
  .peptico-pop-slot[data-position="center-left"].is-active { transform: translateY(-50%) scale(1); }
  .peptico-pop-slot[data-position="center-right"] { right: clamp(20px, 6vw, 90px); top: 50%; transform: translateY(calc(-50% + 22px)) scale(0.985); }
  .peptico-pop-slot[data-position="center-right"].is-active { transform: translateY(-50%) scale(1); }
  .peptico-pop-slot[data-position="center"] { left: 50%; top: 50%; transform: translate(-50%, calc(-50% + 22px)) scale(0.985); }
  .peptico-pop-slot[data-position="center"].is-active { transform: translate(-50%, -50%) scale(1); }

  @media (max-width: 768px) {
    #scroll-video-container {
      height: 1100vh;
      background: #000;
    }

    #scroll-video-sticky {
      height: 100vh;
      height: 100dvh;
      min-height: 100dvh;
    }

    #scroll-video {
      height: 100%;
      object-fit: cover;
      object-position: center center;
    }

    /* Keep popups sizing naturally without cutting off */
    .peptico-pop-slot {
      width: auto;
      max-width: none;
      height: auto;
      min-height: auto;
      max-height: 85dvh;
      overflow: visible; 
    }

    .peptico-pop-slot .peptico-scroll-pop-block {
      height: auto !important;
      max-height: none !important;
      overflow: visible !important;
    }

    /* =========================================
      HIDE SPECIFIC ICON BOXES IN POPUP 1 ONLY
      =========================================
      This targets common Elementor icon box widgets inside the first block.
    */
    .peptico-pop-1 .elementor-widget-icon-box,
    .peptico-pop-1 .elementor-widget-icon,
    .peptico-pop-1 .elementor-icon-list-item {
      display: none !important;
    }

    .peptico-pop-slot[data-mobile-position="top-left"],
    .peptico-pop-slot[data-mobile-position="top-center"],
    .peptico-pop-slot[data-mobile-position="top-right"] {
      left: var(--peptico-pop-mobile-left);
      right: var(--peptico-pop-mobile-right);
      top: var(--peptico-pop-mobile-top);
      bottom: auto;
      transform: translateY(18px) scale(0.985);
    }

    .peptico-pop-slot[data-mobile-position="top-left"].is-active,
    .peptico-pop-slot[data-mobile-position="top-center"].is-active,
    .peptico-pop-slot[data-mobile-position="top-right"].is-active {
      transform: translateY(0) scale(1);
    }

    .peptico-pop-slot[data-mobile-position="center"] {
      left: var(--peptico-pop-mobile-left);
      right: var(--peptico-pop-mobile-right);
      top: 50%;
      bottom: auto;
      transform: translateY(calc(-50% + 18px)) scale(0.985);
    }

    .peptico-pop-slot[data-mobile-position="center"].is-active {
      transform: translateY(-50%) scale(1);
    }

    .peptico-pop-slot[data-mobile-position="bottom-left"],
    .peptico-pop-slot[data-mobile-position="bottom-center"],
    .peptico-pop-slot[data-mobile-position="bottom-right"] {
      left: var(--peptico-pop-mobile-left);
      right: var(--peptico-pop-mobile-right);
      top: auto;
      bottom: var(--peptico-pop-mobile-bottom);
      transform: translateY(18px) scale(0.985);
    }

    .peptico-pop-slot[data-mobile-position="bottom-left"].is-active,
    .peptico-pop-slot[data-mobile-position="bottom-center"].is-active,
    .peptico-pop-slot[data-mobile-position="bottom-right"].is-active {
      transform: translateY(0) scale(1);
    }
  }

  @supports not (height: 100dvh) {
    @media (max-width: 768px) {
      #scroll-video-sticky {
        height: 100vh;
        min-height: 100vh;
      }
    }
  }
</style>

<script>
document.addEventListener("DOMContentLoaded", function () {
  const isElementorEditing =
    document.body.classList.contains("elementor-editor-active") ||
    document.body.classList.contains("elementor-editor-preview") ||
    window.location.href.indexOf("elementor-preview") !== -1 ||
    window.location.href.indexOf("action=elementor") !== -1;

  if (isElementorEditing) {
    const editorVideo = document.querySelector("#scroll-video");

    if (editorVideo) {
      try {
        editorVideo.pause();
        editorVideo.removeAttribute("src");
        editorVideo.load();
      } catch (error) {}
    }

    return;
  }

  /*
    =========================
    EDIT EVERYTHING HERE
    =========================
  */

  const CONFIG = {
    desktopVideoUrl: "https://peptico.com/wp-content/uploads/2026/06/Peptico-Home-Animation-V01-Final-Nomotionblur-7-Nyx3-Full.mp4",
    mobileVideoUrl: "https://peptico.com/wp-content/uploads/2026/06/Peptico-Home-Animation-V01-Final-Nomotionblur-7-Nyx3-Full-1.mp4",

    videoDurationSeconds: 21.5,

    mobileBreakpoint: 768,

    desktopVhPerSecond: 75,
    desktopMinVh: 1800,
    desktopExtraVh: 150,
    desktopScrub: 0.7,
    desktopSmooth: 0.22,
    desktopSeekFps: 30,

    mobileVhPerSecond: 44,
    mobileMinVh: 1100,
    mobileExtraVh: 120,
    mobileScrub: 0.35,
    mobileSmooth: 0.15,
    mobileSeekFps: 24,

    endpointLockStart: 0.004,
    endpointLockEnd: 0.996,

    popBlocks: [
      { .elementor-443 .elementor-element.elementor-element-370bc69: ".peptico-pop-1", position: "top-left", mobilePosition: "top-center", desktopStartSec: 1.0, desktopEndSec: 3.8, mobileStartSec: 1.0, mobileEndSec: 3.8 },
      { .elementor-443 .elementor-element.elementor-element-370bc69: ".peptico-pop-2", position: "top-right", mobilePosition: "top-center", desktopStartSec: 3.4, desktopEndSec: 5.6, mobileStartSec: 3.4, mobileEndSec: 5.6 },
      { .elementor-443 .elementor-element.elementor-element-370bc69: ".peptico-pop-3", position: "bottom-right", mobilePosition: "top-center", desktopStartSec: 5.8, desktopEndSec: 8.0, mobileStartSec: 5.8, mobileEndSec: 8.0 },
      { .elementor-443 .elementor-element.elementor-element-370bc69: ".peptico-pop-4", position: "center-left", mobilePosition: "top-center", desktopStartSec: 8.2, desktopEndSec: 10.7, mobileStartSec: 8.2, mobileEndSec: 10.7 },
      { .elementor-443 .elementor-element.elementor-element-370bc69: ".peptico-pop-5", position: "top-left", mobilePosition: "top-center", desktopStartSec: 10.9, desktopEndSec: 13.3, mobileStartSec: 10.9, mobileEndSec: 13.3 },
      { .elementor-443 .elementor-element.elementor-element-370bc69: ".peptico-pop-6", position: "center-right", mobilePosition: "top-center", desktopStartSec: 13.5, desktopEndSec: 16.1, mobileStartSec: 13.5, mobileEndSec: 16.1 },
      { .elementor-443 .elementor-element.elementor-element-370bc69: ".peptico-pop-7", position: "bottom-left", mobilePosition: "top-center", desktopStartSec: 16.3, desktopEndSec: 18.6, mobileStartSec: 16.3, mobileEndSec: 18.6 },
      { .elementor-443 .elementor-element.elementor-element-370bc69: ".peptico-pop-8", position: "bottom-right", mobilePosition: "top-center", desktopStartSec: 18.8, desktopEndSec: 20.8, mobileStartSec: 18.8, mobileEndSec: 20.8 }
    ]
  };

  /*
    =========================
    DO NOT EDIT BELOW
    =========================
  */

  if (!window.gsap || !window.ScrollTrigger) {
    console.warn("Scroll video: GSAP or ScrollTrigger not loaded.");
    return;
  }

  gsap.registerPlugin(ScrollTrigger);

  ScrollTrigger.config({
    ignoreMobileResize: true
  });

  const container = document.querySelector("#scroll-video-container");
  const sticky = document.querySelector("#scroll-video-sticky");
  const video = document.querySelector("#scroll-video");
  const overlay = document.querySelector("#scroll-video-overlay");

  if (!container || !sticky || !video || !overlay) {
    console.warn("Scroll video: required elements not found.");
    return;
  }

  let duration = CONFIG.videoDurationSeconds;
  let targetTime = 0;
  let currentTime = 0;
  let lastAppliedTime = -1;
  let lastProgress = 0;
  let rafId = null;
  let scrollTrigger = null;
  let resizeTimer = null;
  let lastWindowWidth = window.innerWidth;
  let currentMode = "";
  let currentSourceUrl = "";
  let mountedPopItems = [];

  video.muted = true;
  video.defaultMuted = true;
  video.playsInline = true;
  video.preload = "auto";
  video.controls = false;
  video.loop = false;
  video.autoplay = false;

  video.setAttribute("muted", "");
  video.setAttribute("defaultMuted", "");
  video.setAttribute("playsinline", "");
  video.setAttribute("webkit-playsinline", "");
  video.setAttribute("preload", "auto");
  video.removeAttribute("loop");
  video.removeAttribute("autoplay");

  try {
    video.disablePictureInPicture = true;
  } catch (error) {}

  function isMobile() {
    return window.matchMedia("(max-width: " + CONFIG.mobileBreakpoint + "px)").matches;
  }

  function isTouchDevice() {
    return window.matchMedia("(pointer: coarse)").matches;
  }

  function getWantedMode() {
    return isMobile() ? "mobile" : "desktop";
  }

  function getWantedVideoUrl() {
    if (isMobile() && CONFIG.mobileVideoUrl) {
      return CONFIG.mobileVideoUrl;
    }
    return CONFIG.desktopVideoUrl;
  }

  function getViewportHeight() {
    if (isTouchDevice() && window.visualViewport && window.visualViewport.height) {
      return Math.round(window.visualViewport.height);
    }
    return window.innerHeight;
  }

  function getDuration() {
    if (video.duration && !isNaN(video.duration) && isFinite(video.duration)) {
      return video.duration;
    }
    return CONFIG.videoDurationSeconds;
  }

  function getActiveSmooth() {
    return isMobile() ? CONFIG.mobileSmooth : CONFIG.desktopSmooth;
  }

  function getActiveSeekFps() {
    return isMobile() ? CONFIG.mobileSeekFps : CONFIG.desktopSeekFps;
  }

  function getActiveScrub() {
    return isMobile() ? CONFIG.mobileScrub : CONFIG.desktopScrub;
  }

  function secondsToProgress(seconds) {
    return Math.min(1, Math.max(0, seconds / CONFIG.videoDurationSeconds));
  }

  function setContainerHeight() {
    const activeDuration = getDuration();
    let totalVh;

    if (isMobile()) {
      totalVh = Math.max(
        CONFIG.mobileMinVh,
        Math.round(activeDuration * CONFIG.mobileVhPerSecond + CONFIG.mobileExtraVh)
      );
    } else {
      totalVh = Math.max(
        CONFIG.desktopMinVh,
        Math.round(activeDuration * CONFIG.desktopVhPerSecond + CONFIG.desktopExtraVh)
      );
    }

    container.style.height = Math.round(getViewportHeight() * (totalVh / 100)) + "px";
  }

  function restoreMountedPopBlocks() {
    mountedPopItems.forEach(function (item) {
      if (item.block && item.placeholder && item.placeholder.parentNode) {
        item.placeholder.parentNode.insertBefore(item.block, item.placeholder);
      }
      if (item.placeholder && item.placeholder.parentNode) {
        item.placeholder.remove();
      }
      if (item.slot && item.slot.parentNode) {
        item.slot.remove();
      }
    });
    mountedPopItems = [];
  }

  function mountElementorPopBlocks() {
    restoreMountedPopBlocks();

    CONFIG.popBlocks.forEach(function (blockConfig, index) {
      const block = document.querySelector(blockConfig..elementor-443 .elementor-element.elementor-element-370bc69);
      if (!block) return;

      const placeholder = document.createComment("peptico-pop-placeholder-" + index);
      const slot = document.createElement("div");

      slot.className = "peptico-pop-slot";
      slot.setAttribute("data-position", blockConfig.position || "bottom-left");
      slot.setAttribute("data-mobile-position", blockConfig.mobilePosition || "top-center");
      slot.setAttribute("data-pop-index", String(index));

      block.parentNode.insertBefore(placeholder, block);
      block.classList.add("peptico-mounted-pop");

      slot.appendChild(block);
      overlay.appendChild(slot);

      mountedPopItems.push({
        block: block,
        placeholder: placeholder,
        slot: slot
      });
    });
  }

  function updatePops(progress) {
    CONFIG.popBlocks.forEach(function (blockConfig, index) {
      const item = mountedPopItems[index];
      const slot = item ? item.slot : null;
      if (!slot) return;

      const startSec = isMobile() ? blockConfig.mobileStartSec : blockConfig.desktopStartSec;
      const endSec = isMobile() ? blockConfig.mobileEndSec : blockConfig.desktopEndSec;

      const startProgress = secondsToProgress(startSec);
      const endProgress = secondsToProgress(endSec);

      if (progress >= startProgress && progress <= endProgress) {
        slot.classList.add("is-active");
      } else {
        slot.classList.remove("is-active");
      }
    });
  }

  function stopVideoMotion() {
    video.loop = false;
    video.autoplay = false;
    video.removeAttribute("loop");
    video.removeAttribute("autoplay");

    try {
      if (!video.paused) {
        video.pause();
      }
    } catch (error) {}
  }

  function applyVideoTime(time) {
    const fps = getActiveSeekFps();
    const safeTime = Math.min(duration, Math.max(0, time));
    const snappedTime = Math.round(safeTime * fps) / fps;

    if (snappedTime === lastAppliedTime) {
      return;
    }

    if (isMobile() && video.seeking) {
      return;
    }

    try {
      if (!video.paused) {
        video.pause();
      }
      video.currentTime = snappedTime;
      lastAppliedTime = snappedTime;
    } catch (error) {}
  }

  function primeVideo() {
    const restoreTime = Math.min(
      duration || CONFIG.videoDurationSeconds,
      Math.max(0.001, video.currentTime || currentTime || targetTime || 0.001)
    );

    try {
      video.muted = true;
      video.defaultMuted = true;
      video.playsInline = true;
      video.loop = false;
      video.autoplay = false;

      video.setAttribute("muted", "");
      video.setAttribute("defaultMuted", "");
      video.setAttribute("playsinline", "");
      video.setAttribute("webkit-playsinline", "");
      video.removeAttribute("loop");
      video.removeAttribute("autoplay");

      const promise = video.play();

      if (promise && typeof promise.then === "function") {
        promise
          .then(function () {
            try {
              video.pause();
              video.currentTime = restoreTime;
            } catch (error) {}
          })
          .catch(function () {});
      }
    } catch (error) {}
  }

  document.addEventListener("touchstart", primeVideo, { once: true, passive: true });
  document.addEventListener("touchend", primeVideo, { once: true, passive: true });
  document.addEventListener("pointerdown", primeVideo, { once: true, passive: true });
  document.addEventListener("click", primeVideo, { once: true });

  function killCurrentTrigger() {
    if (scrollTrigger) {
      scrollTrigger.kill();
      scrollTrigger = null;
    }
  }

  function createScrollTrigger() {
    killCurrentTrigger();
    setContainerHeight();

    scrollTrigger = ScrollTrigger.create({
      trigger: container,
      start: "top top",
      end: "bottom bottom",
      scrub: getActiveScrub(),
      invalidateOnRefresh: true,

      onUpdate: function (self) {
        lastProgress = self.progress;
        updatePops(self.progress);

        if (self.progress <= CONFIG.endpointLockStart) {
          targetTime = 0;
          currentTime = 0;
          applyVideoTime(0);
          return;
        }

        if (self.progress >= CONFIG.endpointLockEnd) {
          targetTime = duration;
          currentTime = duration;
          applyVideoTime(duration);
          return;
        }

        const fps = getActiveSeekFps();
        const rawTime = self.progress * duration;
        const frame = Math.round(rawTime * fps);

        targetTime = Math.min(duration, Math.max(0, frame / fps));
      }
    });

    ScrollTrigger.refresh();
  }

  function renderScrollScrub() {
    const smooth = getActiveSmooth();

    if (lastProgress <= CONFIG.endpointLockStart) {
      currentTime = 0;
      targetTime = 0;
      applyVideoTime(0);
    } else if (lastProgress >= CONFIG.endpointLockEnd) {
      currentTime = duration;
      targetTime = duration;
      applyVideoTime(duration);
    } else {
      currentTime += (targetTime - currentTime) * smooth;

      if (Math.abs(targetTime - currentTime) < 1 / getActiveSeekFps()) {
        currentTime = targetTime;
      }

      applyVideoTime(currentTime);
    }

    rafId = requestAnimationFrame(renderScrollScrub);
  }

  function resetAnimationState() {
    duration = getDuration();
    stopVideoMotion();

    try {
      video.currentTime = 0.001;
    } catch (error) {}

    targetTime = 0;
    currentTime = 0;
    lastAppliedTime = -1;
    lastProgress = 0;

    updatePops(0);
  }

  function loadCorrectVideo(callback) {
    const wantedUrl = getWantedVideoUrl();
    const wantedMode = getWantedMode();

    if (!wantedUrl) {
      console.warn("Scroll video: video URL is missing.");
      return;
    }

    if (currentSourceUrl === wantedUrl && currentMode === wantedMode && video.readyState >= 1) {
      callback();
      return;
    }

    currentSourceUrl = wantedUrl;
    currentMode = wantedMode;

    killCurrentTrigger();

    if (rafId) {
      cancelAnimationFrame(rafId);
      rafId = null;
    }

    stopVideoMotion();

    video.removeAttribute("src");
    video.setAttribute("src", wantedUrl);

    try {
      video.load();
    } catch (error) {}

    let done = false;

    function finish() {
      if (done) return;
      done = true;
      callback();
    }

    if (video.readyState >= 1) {
      finish();
      return;
    }

    video.addEventListener("loadedmetadata", finish, { once: true });
    video.addEventListener("loadeddata", finish, { once: true });
    video.addEventListener("canplay", finish, { once: true });

    setTimeout(finish, 2500);
  }

  function initScrollVideo() {
    mountElementorPopBlocks();

    loadCorrectVideo(function () {
      resetAnimationState();
      createScrollTrigger();

      if (rafId) {
        cancelAnimationFrame(rafId);
      }

      renderScrollScrub();

      setTimeout(function () {
        duration = getDuration();
        setContainerHeight();
        ScrollTrigger.refresh();
      }, 500);

      setTimeout(function () {
        duration = getDuration();
        setContainerHeight();
        ScrollTrigger.refresh();
      }, 1200);

      setTimeout(function () {
        duration = getDuration();
        setContainerHeight();
        ScrollTrigger.refresh();
      }, 2200);
    });
  }

  initScrollVideo();

  video.addEventListener("durationchange", function () {
    duration = getDuration();
    setContainerHeight();
    ScrollTrigger.refresh();
  });

  video.addEventListener("loadedmetadata", function () {
    duration = getDuration();
    setContainerHeight();
    ScrollTrigger.refresh();
  });

  video.addEventListener("error", function () {
    console.warn("Scroll video: video failed to load or decode.", video.error);
  });

  window.addEventListener("resize", function () {
    clearTimeout(resizeTimer);

    resizeTimer = setTimeout(function () {
      const currentWidth = window.innerWidth;
      const newMode = getWantedMode();

      if (newMode !== currentMode) {
        lastWindowWidth = currentWidth;
        initScrollVideo();
        return;
      }

      if (isTouchDevice() && Math.abs(currentWidth - lastWindowWidth) < 30) {
        return;
      }

      lastWindowWidth = currentWidth;
      setContainerHeight();
      ScrollTrigger.refresh();
    }, 350);
  });

  window.addEventListener("orientationchange", function () {
    setTimeout(function () {
      lastWindowWidth = window.innerWidth;
      initScrollVideo();
    }, 700);
  });

  window.addEventListener("pageshow", function () {
    setTimeout(function () {
      duration = getDuration();
      setContainerHeight();
      primeVideo();
      ScrollTrigger.refresh();
    }, 300);
  });
});
</script>/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-174348d */<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/gsap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/ScrollTrigger.min.js"></script>

<section id="scroll-video-container">
  <div id="scroll-video-sticky">
    <video
      id="scroll-video"
      muted
      playsinline
      webkit-playsinline
      preload="auto"
      disablepictureinpicture
    ></video>

    <div id="scroll-video-overlay"></div>
  </div>
</section>

<style>
  html,
  body {
    overflow-x: hidden;
  }

  #scroll-video-container {
    /*
      =========================
      EASY POPUP SIZE CONTROLS
      =========================
    */
    --peptico-pop-desktop-width: min(90vw, 900px);
    --peptico-pop-desktop-max-width: 900px;
    --peptico-pop-desktop-min-height: 0px;

    /* MOBILE POPUP CONTROLS */
    --peptico-pop-mobile-left: 20px;
    --peptico-pop-mobile-right: 20px;
    --peptico-pop-mobile-top: 24px;
    --peptico-pop-mobile-bottom: 32px;

    position: relative;
    width: 100%;
    height: 1800vh;
    overflow: visible !important;
    background: #000;
    margin: 0;
    padding: 0;
  }

  #scroll-video-sticky {
    position: sticky;
    top: 0;
    width: 100%;
    height: 100vh;
    overflow: hidden;
    background: #000;
  }

  #scroll-video {
    position: absolute;
    inset: 0;
    width: 100%;
    max-width: none;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    display: block;
    background: #000;
    margin: 0;
    padding: 0;
    border: 0;
    transform: translate3d(0, 0, 0);
    backface-visibility: hidden;
    will-change: transform;
    pointer-events: none; 
  }

  #scroll-video-overlay {
    position: absolute;
    inset: 0;
    z-index: 5;
    pointer-events: none;
  }

  body:not(.elementor-editor-active):not(.elementor-editor-preview) .peptico-scroll-pop-block {
    display: none !important;
  }

  body.elementor-editor-active #scroll-video-container,
  body.elementor-editor-preview #scroll-video-container {
    display: none !important;
  }

  body.elementor-editor-active .peptico-scroll-pop-block,
  body.elementor-editor-preview .peptico-scroll-pop-block {
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    pointer-events: auto !important;
  }

  #scroll-video-overlay .peptico-scroll-pop-block {
    display: flex !important;
    width: 100%;
    max-width: 100%;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
  }

  .peptico-pop-slot {
    position: absolute;
    z-index: 10;
    width: var(--peptico-pop-desktop-width);
    max-width: var(--peptico-pop-desktop-max-width);
    min-height: var(--peptico-pop-desktop-min-height);
    opacity: 0;
    transform: translateY(22px) scale(0.985);
    transition:
      opacity 0.4s ease,
      transform 0.4s ease;
    pointer-events: none;
    will-change: opacity, transform;
  }

  .peptico-pop-slot.is-active {
    opacity: 1;
    transform: translateY(0) scale(1);
    pointer-events: auto;
  }

  /* DESKTOP POSITIONS */
  .peptico-pop-slot[data-position="bottom-left"] { left: clamp(20px, 6vw, 90px); bottom: clamp(32px, 8vh, 110px); }
  .peptico-pop-slot[data-position="bottom-right"] { right: clamp(20px, 6vw, 90px); bottom: clamp(32px, 8vh, 110px); }
  .peptico-pop-slot[data-position="top-left"] { left: clamp(20px, 6vw, 90px); top: clamp(32px, 12vh, 120px); }
  .peptico-pop-slot[data-position="top-right"] { right: clamp(20px, 6vw, 90px); top: clamp(32px, 12vh, 120px); }
  .peptico-pop-slot[data-position="top-center"] { left: 50%; top: clamp(32px, 10vh, 96px); transform: translate(-50%, 22px) scale(0.985); }
  .peptico-pop-slot[data-position="top-center"].is-active { transform: translate(-50%, 0) scale(1); }
  .peptico-pop-slot[data-position="center-left"] { left: clamp(20px, 6vw, 90px); top: 50%; transform: translateY(calc(-50% + 22px)) scale(0.985); }
  .peptico-pop-slot[data-position="center-left"].is-active { transform: translateY(-50%) scale(1); }
  .peptico-pop-slot[data-position="center-right"] { right: clamp(20px, 6vw, 90px); top: 50%; transform: translateY(calc(-50% + 22px)) scale(0.985); }
  .peptico-pop-slot[data-position="center-right"].is-active { transform: translateY(-50%) scale(1); }
  .peptico-pop-slot[data-position="center"] { left: 50%; top: 50%; transform: translate(-50%, calc(-50% + 22px)) scale(0.985); }
  .peptico-pop-slot[data-position="center"].is-active { transform: translate(-50%, -50%) scale(1); }

  @media (max-width: 768px) {
    #scroll-video-container {
      height: 1100vh;
      background: #000;
    }

    #scroll-video-sticky {
      height: 100vh;
      height: 100dvh;
      min-height: 100dvh;
    }

    #scroll-video {
      height: 100%;
      object-fit: cover;
      object-position: center center;
    }

    /* Keep popups sizing naturally without cutting off */
    .peptico-pop-slot {
      width: auto;
      max-width: none;
      height: auto;
      min-height: auto;
      max-height: 85dvh;
      overflow: visible; 
    }

    .peptico-pop-slot .peptico-scroll-pop-block {
      height: auto !important;
      max-height: none !important;
      overflow: visible !important;
    }

    /* =========================================
      HIDE SPECIFIC ICON BOXES IN POPUP 1 ONLY
      =========================================
      This targets common Elementor icon box widgets inside the first block.
    */
    .peptico-pop-1 .elementor-widget-icon-box,
    .peptico-pop-1 .elementor-widget-icon,
    .peptico-pop-1 .elementor-icon-list-item {
      display: none !important;
    }

    .peptico-pop-slot[data-mobile-position="top-left"],
    .peptico-pop-slot[data-mobile-position="top-center"],
    .peptico-pop-slot[data-mobile-position="top-right"] {
      left: var(--peptico-pop-mobile-left);
      right: var(--peptico-pop-mobile-right);
      top: var(--peptico-pop-mobile-top);
      bottom: auto;
      transform: translateY(18px) scale(0.985);
    }

    .peptico-pop-slot[data-mobile-position="top-left"].is-active,
    .peptico-pop-slot[data-mobile-position="top-center"].is-active,
    .peptico-pop-slot[data-mobile-position="top-right"].is-active {
      transform: translateY(0) scale(1);
    }

    .peptico-pop-slot[data-mobile-position="center"] {
      left: var(--peptico-pop-mobile-left);
      right: var(--peptico-pop-mobile-right);
      top: 50%;
      bottom: auto;
      transform: translateY(calc(-50% + 18px)) scale(0.985);
    }

    .peptico-pop-slot[data-mobile-position="center"].is-active {
      transform: translateY(-50%) scale(1);
    }

    .peptico-pop-slot[data-mobile-position="bottom-left"],
    .peptico-pop-slot[data-mobile-position="bottom-center"],
    .peptico-pop-slot[data-mobile-position="bottom-right"] {
      left: var(--peptico-pop-mobile-left);
      right: var(--peptico-pop-mobile-right);
      top: auto;
      bottom: var(--peptico-pop-mobile-bottom);
      transform: translateY(18px) scale(0.985);
    }

    .peptico-pop-slot[data-mobile-position="bottom-left"].is-active,
    .peptico-pop-slot[data-mobile-position="bottom-center"].is-active,
    .peptico-pop-slot[data-mobile-position="bottom-right"].is-active {
      transform: translateY(0) scale(1);
    }
  }

  @supports not (height: 100dvh) {
    @media (max-width: 768px) {
      #scroll-video-sticky {
        height: 100vh;
        min-height: 100vh;
      }
    }
  }
</style>

<script>
document.addEventListener("DOMContentLoaded", function () {
  const isElementorEditing =
    document.body.classList.contains("elementor-editor-active") ||
    document.body.classList.contains("elementor-editor-preview") ||
    window.location.href.indexOf("elementor-preview") !== -1 ||
    window.location.href.indexOf("action=elementor") !== -1;

  if (isElementorEditing) {
    const editorVideo = document.querySelector("#scroll-video");

    if (editorVideo) {
      try {
        editorVideo.pause();
        editorVideo.removeAttribute("src");
        editorVideo.load();
      } catch (error) {}
    }

    return;
  }

  /*
    =========================
    EDIT EVERYTHING HERE
    =========================
  */

  const CONFIG = {
    desktopVideoUrl: "https://peptico.com/wp-content/uploads/2026/06/Peptico-Home-Animation-V01-Final-Nomotionblur-7-Nyx3-Full.mp4",
    mobileVideoUrl: "https://peptico.com/wp-content/uploads/2026/06/Peptico-Home-Animation-V01-Final-Nomotionblur-7-Nyx3-Full-1.mp4",

    videoDurationSeconds: 21.5,

    mobileBreakpoint: 768,

    desktopVhPerSecond: 75,
    desktopMinVh: 1800,
    desktopExtraVh: 150,
    desktopScrub: 0.7,
    desktopSmooth: 0.22,
    desktopSeekFps: 30,

    mobileVhPerSecond: 44,
    mobileMinVh: 1100,
    mobileExtraVh: 120,
    mobileScrub: 0.35,
    mobileSmooth: 0.15,
    mobileSeekFps: 24,

    endpointLockStart: 0.004,
    endpointLockEnd: 0.996,

    popBlocks: [
      { .elementor-443 .elementor-element.elementor-element-174348d: ".peptico-pop-1", position: "top-left", mobilePosition: "top-center", desktopStartSec: 1.0, desktopEndSec: 3.8, mobileStartSec: 1.0, mobileEndSec: 3.8 },
      { .elementor-443 .elementor-element.elementor-element-174348d: ".peptico-pop-2", position: "top-right", mobilePosition: "top-center", desktopStartSec: 3.4, desktopEndSec: 5.6, mobileStartSec: 3.4, mobileEndSec: 5.6 },
      { .elementor-443 .elementor-element.elementor-element-174348d: ".peptico-pop-3", position: "bottom-right", mobilePosition: "top-center", desktopStartSec: 5.8, desktopEndSec: 8.0, mobileStartSec: 5.8, mobileEndSec: 8.0 },
      { .elementor-443 .elementor-element.elementor-element-174348d: ".peptico-pop-4", position: "center-left", mobilePosition: "top-center", desktopStartSec: 8.2, desktopEndSec: 10.7, mobileStartSec: 8.2, mobileEndSec: 10.7 },
      { .elementor-443 .elementor-element.elementor-element-174348d: ".peptico-pop-5", position: "top-left", mobilePosition: "top-center", desktopStartSec: 10.9, desktopEndSec: 13.3, mobileStartSec: 10.9, mobileEndSec: 13.3 },
      { .elementor-443 .elementor-element.elementor-element-174348d: ".peptico-pop-6", position: "center-right", mobilePosition: "top-center", desktopStartSec: 13.5, desktopEndSec: 16.1, mobileStartSec: 13.5, mobileEndSec: 16.1 },
      { .elementor-443 .elementor-element.elementor-element-174348d: ".peptico-pop-7", position: "bottom-left", mobilePosition: "top-center", desktopStartSec: 16.3, desktopEndSec: 18.6, mobileStartSec: 16.3, mobileEndSec: 18.6 },
      { .elementor-443 .elementor-element.elementor-element-174348d: ".peptico-pop-8", position: "bottom-right", mobilePosition: "top-center", desktopStartSec: 18.8, desktopEndSec: 20.8, mobileStartSec: 18.8, mobileEndSec: 20.8 }
    ]
  };

  /*
    =========================
    DO NOT EDIT BELOW
    =========================
  */

  if (!window.gsap || !window.ScrollTrigger) {
    console.warn("Scroll video: GSAP or ScrollTrigger not loaded.");
    return;
  }

  gsap.registerPlugin(ScrollTrigger);

  ScrollTrigger.config({
    ignoreMobileResize: true
  });

  const container = document.querySelector("#scroll-video-container");
  const sticky = document.querySelector("#scroll-video-sticky");
  const video = document.querySelector("#scroll-video");
  const overlay = document.querySelector("#scroll-video-overlay");

  if (!container || !sticky || !video || !overlay) {
    console.warn("Scroll video: required elements not found.");
    return;
  }

  let duration = CONFIG.videoDurationSeconds;
  let targetTime = 0;
  let currentTime = 0;
  let lastAppliedTime = -1;
  let lastProgress = 0;
  let rafId = null;
  let scrollTrigger = null;
  let resizeTimer = null;
  let lastWindowWidth = window.innerWidth;
  let currentMode = "";
  let currentSourceUrl = "";
  let mountedPopItems = [];

  video.muted = true;
  video.defaultMuted = true;
  video.playsInline = true;
  video.preload = "auto";
  video.controls = false;
  video.loop = false;
  video.autoplay = false;

  video.setAttribute("muted", "");
  video.setAttribute("defaultMuted", "");
  video.setAttribute("playsinline", "");
  video.setAttribute("webkit-playsinline", "");
  video.setAttribute("preload", "auto");
  video.removeAttribute("loop");
  video.removeAttribute("autoplay");

  try {
    video.disablePictureInPicture = true;
  } catch (error) {}

  function isMobile() {
    return window.matchMedia("(max-width: " + CONFIG.mobileBreakpoint + "px)").matches;
  }

  function isTouchDevice() {
    return window.matchMedia("(pointer: coarse)").matches;
  }

  function getWantedMode() {
    return isMobile() ? "mobile" : "desktop";
  }

  function getWantedVideoUrl() {
    if (isMobile() && CONFIG.mobileVideoUrl) {
      return CONFIG.mobileVideoUrl;
    }
    return CONFIG.desktopVideoUrl;
  }

  function getViewportHeight() {
    if (isTouchDevice() && window.visualViewport && window.visualViewport.height) {
      return Math.round(window.visualViewport.height);
    }
    return window.innerHeight;
  }

  function getDuration() {
    if (video.duration && !isNaN(video.duration) && isFinite(video.duration)) {
      return video.duration;
    }
    return CONFIG.videoDurationSeconds;
  }

  function getActiveSmooth() {
    return isMobile() ? CONFIG.mobileSmooth : CONFIG.desktopSmooth;
  }

  function getActiveSeekFps() {
    return isMobile() ? CONFIG.mobileSeekFps : CONFIG.desktopSeekFps;
  }

  function getActiveScrub() {
    return isMobile() ? CONFIG.mobileScrub : CONFIG.desktopScrub;
  }

  function secondsToProgress(seconds) {
    return Math.min(1, Math.max(0, seconds / CONFIG.videoDurationSeconds));
  }

  function setContainerHeight() {
    const activeDuration = getDuration();
    let totalVh;

    if (isMobile()) {
      totalVh = Math.max(
        CONFIG.mobileMinVh,
        Math.round(activeDuration * CONFIG.mobileVhPerSecond + CONFIG.mobileExtraVh)
      );
    } else {
      totalVh = Math.max(
        CONFIG.desktopMinVh,
        Math.round(activeDuration * CONFIG.desktopVhPerSecond + CONFIG.desktopExtraVh)
      );
    }

    container.style.height = Math.round(getViewportHeight() * (totalVh / 100)) + "px";
  }

  function restoreMountedPopBlocks() {
    mountedPopItems.forEach(function (item) {
      if (item.block && item.placeholder && item.placeholder.parentNode) {
        item.placeholder.parentNode.insertBefore(item.block, item.placeholder);
      }
      if (item.placeholder && item.placeholder.parentNode) {
        item.placeholder.remove();
      }
      if (item.slot && item.slot.parentNode) {
        item.slot.remove();
      }
    });
    mountedPopItems = [];
  }

  function mountElementorPopBlocks() {
    restoreMountedPopBlocks();

    CONFIG.popBlocks.forEach(function (blockConfig, index) {
      const block = document.querySelector(blockConfig..elementor-443 .elementor-element.elementor-element-174348d);
      if (!block) return;

      const placeholder = document.createComment("peptico-pop-placeholder-" + index);
      const slot = document.createElement("div");

      slot.className = "peptico-pop-slot";
      slot.setAttribute("data-position", blockConfig.position || "bottom-left");
      slot.setAttribute("data-mobile-position", blockConfig.mobilePosition || "top-center");
      slot.setAttribute("data-pop-index", String(index));

      block.parentNode.insertBefore(placeholder, block);
      block.classList.add("peptico-mounted-pop");

      slot.appendChild(block);
      overlay.appendChild(slot);

      mountedPopItems.push({
        block: block,
        placeholder: placeholder,
        slot: slot
      });
    });
  }

  function updatePops(progress) {
    CONFIG.popBlocks.forEach(function (blockConfig, index) {
      const item = mountedPopItems[index];
      const slot = item ? item.slot : null;
      if (!slot) return;

      const startSec = isMobile() ? blockConfig.mobileStartSec : blockConfig.desktopStartSec;
      const endSec = isMobile() ? blockConfig.mobileEndSec : blockConfig.desktopEndSec;

      const startProgress = secondsToProgress(startSec);
      const endProgress = secondsToProgress(endSec);

      if (progress >= startProgress && progress <= endProgress) {
        slot.classList.add("is-active");
      } else {
        slot.classList.remove("is-active");
      }
    });
  }

  function stopVideoMotion() {
    video.loop = false;
    video.autoplay = false;
    video.removeAttribute("loop");
    video.removeAttribute("autoplay");

    try {
      if (!video.paused) {
        video.pause();
      }
    } catch (error) {}
  }

  function applyVideoTime(time) {
    const fps = getActiveSeekFps();
    const safeTime = Math.min(duration, Math.max(0, time));
    const snappedTime = Math.round(safeTime * fps) / fps;

    if (snappedTime === lastAppliedTime) {
      return;
    }

    if (isMobile() && video.seeking) {
      return;
    }

    try {
      if (!video.paused) {
        video.pause();
      }
      video.currentTime = snappedTime;
      lastAppliedTime = snappedTime;
    } catch (error) {}
  }

  function primeVideo() {
    const restoreTime = Math.min(
      duration || CONFIG.videoDurationSeconds,
      Math.max(0.001, video.currentTime || currentTime || targetTime || 0.001)
    );

    try {
      video.muted = true;
      video.defaultMuted = true;
      video.playsInline = true;
      video.loop = false;
      video.autoplay = false;

      video.setAttribute("muted", "");
      video.setAttribute("defaultMuted", "");
      video.setAttribute("playsinline", "");
      video.setAttribute("webkit-playsinline", "");
      video.removeAttribute("loop");
      video.removeAttribute("autoplay");

      const promise = video.play();

      if (promise && typeof promise.then === "function") {
        promise
          .then(function () {
            try {
              video.pause();
              video.currentTime = restoreTime;
            } catch (error) {}
          })
          .catch(function () {});
      }
    } catch (error) {}
  }

  document.addEventListener("touchstart", primeVideo, { once: true, passive: true });
  document.addEventListener("touchend", primeVideo, { once: true, passive: true });
  document.addEventListener("pointerdown", primeVideo, { once: true, passive: true });
  document.addEventListener("click", primeVideo, { once: true });

  function killCurrentTrigger() {
    if (scrollTrigger) {
      scrollTrigger.kill();
      scrollTrigger = null;
    }
  }

  function createScrollTrigger() {
    killCurrentTrigger();
    setContainerHeight();

    scrollTrigger = ScrollTrigger.create({
      trigger: container,
      start: "top top",
      end: "bottom bottom",
      scrub: getActiveScrub(),
      invalidateOnRefresh: true,

      onUpdate: function (self) {
        lastProgress = self.progress;
        updatePops(self.progress);

        if (self.progress <= CONFIG.endpointLockStart) {
          targetTime = 0;
          currentTime = 0;
          applyVideoTime(0);
          return;
        }

        if (self.progress >= CONFIG.endpointLockEnd) {
          targetTime = duration;
          currentTime = duration;
          applyVideoTime(duration);
          return;
        }

        const fps = getActiveSeekFps();
        const rawTime = self.progress * duration;
        const frame = Math.round(rawTime * fps);

        targetTime = Math.min(duration, Math.max(0, frame / fps));
      }
    });

    ScrollTrigger.refresh();
  }

  function renderScrollScrub() {
    const smooth = getActiveSmooth();

    if (lastProgress <= CONFIG.endpointLockStart) {
      currentTime = 0;
      targetTime = 0;
      applyVideoTime(0);
    } else if (lastProgress >= CONFIG.endpointLockEnd) {
      currentTime = duration;
      targetTime = duration;
      applyVideoTime(duration);
    } else {
      currentTime += (targetTime - currentTime) * smooth;

      if (Math.abs(targetTime - currentTime) < 1 / getActiveSeekFps()) {
        currentTime = targetTime;
      }

      applyVideoTime(currentTime);
    }

    rafId = requestAnimationFrame(renderScrollScrub);
  }

  function resetAnimationState() {
    duration = getDuration();
    stopVideoMotion();

    try {
      video.currentTime = 0.001;
    } catch (error) {}

    targetTime = 0;
    currentTime = 0;
    lastAppliedTime = -1;
    lastProgress = 0;

    updatePops(0);
  }

  function loadCorrectVideo(callback) {
    const wantedUrl = getWantedVideoUrl();
    const wantedMode = getWantedMode();

    if (!wantedUrl) {
      console.warn("Scroll video: video URL is missing.");
      return;
    }

    if (currentSourceUrl === wantedUrl && currentMode === wantedMode && video.readyState >= 1) {
      callback();
      return;
    }

    currentSourceUrl = wantedUrl;
    currentMode = wantedMode;

    killCurrentTrigger();

    if (rafId) {
      cancelAnimationFrame(rafId);
      rafId = null;
    }

    stopVideoMotion();

    video.removeAttribute("src");
    video.setAttribute("src", wantedUrl);

    try {
      video.load();
    } catch (error) {}

    let done = false;

    function finish() {
      if (done) return;
      done = true;
      callback();
    }

    if (video.readyState >= 1) {
      finish();
      return;
    }

    video.addEventListener("loadedmetadata", finish, { once: true });
    video.addEventListener("loadeddata", finish, { once: true });
    video.addEventListener("canplay", finish, { once: true });

    setTimeout(finish, 2500);
  }

  function initScrollVideo() {
    mountElementorPopBlocks();

    loadCorrectVideo(function () {
      resetAnimationState();
      createScrollTrigger();

      if (rafId) {
        cancelAnimationFrame(rafId);
      }

      renderScrollScrub();

      setTimeout(function () {
        duration = getDuration();
        setContainerHeight();
        ScrollTrigger.refresh();
      }, 500);

      setTimeout(function () {
        duration = getDuration();
        setContainerHeight();
        ScrollTrigger.refresh();
      }, 1200);

      setTimeout(function () {
        duration = getDuration();
        setContainerHeight();
        ScrollTrigger.refresh();
      }, 2200);
    });
  }

  initScrollVideo();

  video.addEventListener("durationchange", function () {
    duration = getDuration();
    setContainerHeight();
    ScrollTrigger.refresh();
  });

  video.addEventListener("loadedmetadata", function () {
    duration = getDuration();
    setContainerHeight();
    ScrollTrigger.refresh();
  });

  video.addEventListener("error", function () {
    console.warn("Scroll video: video failed to load or decode.", video.error);
  });

  window.addEventListener("resize", function () {
    clearTimeout(resizeTimer);

    resizeTimer = setTimeout(function () {
      const currentWidth = window.innerWidth;
      const newMode = getWantedMode();

      if (newMode !== currentMode) {
        lastWindowWidth = currentWidth;
        initScrollVideo();
        return;
      }

      if (isTouchDevice() && Math.abs(currentWidth - lastWindowWidth) < 30) {
        return;
      }

      lastWindowWidth = currentWidth;
      setContainerHeight();
      ScrollTrigger.refresh();
    }, 350);
  });

  window.addEventListener("orientationchange", function () {
    setTimeout(function () {
      lastWindowWidth = window.innerWidth;
      initScrollVideo();
    }, 700);
  });

  window.addEventListener("pageshow", function () {
    setTimeout(function () {
      duration = getDuration();
      setContainerHeight();
      primeVideo();
      ScrollTrigger.refresh();
    }, 300);
  });
});
</script>/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-67b77d3 */<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/gsap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/ScrollTrigger.min.js"></script>

<section id="scroll-video-container">
  <div id="scroll-video-sticky">
    <video
      id="scroll-video"
      muted
      playsinline
      webkit-playsinline
      preload="auto"
      disablepictureinpicture
    ></video>

    <div id="scroll-video-overlay"></div>
  </div>
</section>

<style>
  html,
  body {
    overflow-x: hidden;
  }

  #scroll-video-container {
    /*
      =========================
      EASY POPUP SIZE CONTROLS
      =========================
    */
    --peptico-pop-desktop-width: min(90vw, 900px);
    --peptico-pop-desktop-max-width: 900px;
    --peptico-pop-desktop-min-height: 0px;

    /* MOBILE POPUP CONTROLS */
    --peptico-pop-mobile-left: 20px;
    --peptico-pop-mobile-right: 20px;
    --peptico-pop-mobile-top: 24px;
    --peptico-pop-mobile-bottom: 32px;

    position: relative;
    width: 100%;
    height: 1800vh;
    overflow: visible !important;
    background: #000;
    margin: 0;
    padding: 0;
  }

  #scroll-video-sticky {
    position: sticky;
    top: 0;
    width: 100%;
    height: 100vh;
    overflow: hidden;
    background: #000;
  }

  #scroll-video {
    position: absolute;
    inset: 0;
    width: 100%;
    max-width: none;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    display: block;
    background: #000;
    margin: 0;
    padding: 0;
    border: 0;
    transform: translate3d(0, 0, 0);
    backface-visibility: hidden;
    will-change: transform;
    pointer-events: none; 
  }

  #scroll-video-overlay {
    position: absolute;
    inset: 0;
    z-index: 5;
    pointer-events: none;
  }

  body:not(.elementor-editor-active):not(.elementor-editor-preview) .peptico-scroll-pop-block {
    display: none !important;
  }

  body.elementor-editor-active #scroll-video-container,
  body.elementor-editor-preview #scroll-video-container {
    display: none !important;
  }

  body.elementor-editor-active .peptico-scroll-pop-block,
  body.elementor-editor-preview .peptico-scroll-pop-block {
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    pointer-events: auto !important;
  }

  #scroll-video-overlay .peptico-scroll-pop-block {
    display: flex !important;
    width: 100%;
    max-width: 100%;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
  }

  .peptico-pop-slot {
    position: absolute;
    z-index: 10;
    width: var(--peptico-pop-desktop-width);
    max-width: var(--peptico-pop-desktop-max-width);
    min-height: var(--peptico-pop-desktop-min-height);
    opacity: 0;
    transform: translateY(22px) scale(0.985);
    transition:
      opacity 0.4s ease,
      transform 0.4s ease;
    pointer-events: none;
    will-change: opacity, transform;
  }

  .peptico-pop-slot.is-active {
    opacity: 1;
    transform: translateY(0) scale(1);
    pointer-events: auto;
  }

  /* DESKTOP POSITIONS */
  .peptico-pop-slot[data-position="bottom-left"] { left: clamp(20px, 6vw, 90px); bottom: clamp(32px, 8vh, 110px); }
  .peptico-pop-slot[data-position="bottom-right"] { right: clamp(20px, 6vw, 90px); bottom: clamp(32px, 8vh, 110px); }
  .peptico-pop-slot[data-position="top-left"] { left: clamp(20px, 6vw, 90px); top: clamp(32px, 12vh, 120px); }
  .peptico-pop-slot[data-position="top-right"] { right: clamp(20px, 6vw, 90px); top: clamp(32px, 12vh, 120px); }
  .peptico-pop-slot[data-position="top-center"] { left: 50%; top: clamp(32px, 10vh, 96px); transform: translate(-50%, 22px) scale(0.985); }
  .peptico-pop-slot[data-position="top-center"].is-active { transform: translate(-50%, 0) scale(1); }
  .peptico-pop-slot[data-position="center-left"] { left: clamp(20px, 6vw, 90px); top: 50%; transform: translateY(calc(-50% + 22px)) scale(0.985); }
  .peptico-pop-slot[data-position="center-left"].is-active { transform: translateY(-50%) scale(1); }
  .peptico-pop-slot[data-position="center-right"] { right: clamp(20px, 6vw, 90px); top: 50%; transform: translateY(calc(-50% + 22px)) scale(0.985); }
  .peptico-pop-slot[data-position="center-right"].is-active { transform: translateY(-50%) scale(1); }
  .peptico-pop-slot[data-position="center"] { left: 50%; top: 50%; transform: translate(-50%, calc(-50% + 22px)) scale(0.985); }
  .peptico-pop-slot[data-position="center"].is-active { transform: translate(-50%, -50%) scale(1); }

  @media (max-width: 768px) {
    #scroll-video-container {
      height: 1100vh;
      background: #000;
    }

    #scroll-video-sticky {
      height: 100vh;
      height: 100dvh;
      min-height: 100dvh;
    }

    #scroll-video {
      height: 100%;
      object-fit: cover;
      object-position: center center;
    }

    /* Keep popups sizing naturally without cutting off */
    .peptico-pop-slot {
      width: auto;
      max-width: none;
      height: auto;
      min-height: auto;
      max-height: 85dvh;
      overflow: visible; 
    }

    .peptico-pop-slot .peptico-scroll-pop-block {
      height: auto !important;
      max-height: none !important;
      overflow: visible !important;
    }

    /* =========================================
      HIDE SPECIFIC ICON BOXES IN POPUP 1 ONLY
      =========================================
      This targets common Elementor icon box widgets inside the first block.
    */
    .peptico-pop-1 .elementor-widget-icon-box,
    .peptico-pop-1 .elementor-widget-icon,
    .peptico-pop-1 .elementor-icon-list-item {
      display: none !important;
    }

    .peptico-pop-slot[data-mobile-position="top-left"],
    .peptico-pop-slot[data-mobile-position="top-center"],
    .peptico-pop-slot[data-mobile-position="top-right"] {
      left: var(--peptico-pop-mobile-left);
      right: var(--peptico-pop-mobile-right);
      top: var(--peptico-pop-mobile-top);
      bottom: auto;
      transform: translateY(18px) scale(0.985);
    }

    .peptico-pop-slot[data-mobile-position="top-left"].is-active,
    .peptico-pop-slot[data-mobile-position="top-center"].is-active,
    .peptico-pop-slot[data-mobile-position="top-right"].is-active {
      transform: translateY(0) scale(1);
    }

    .peptico-pop-slot[data-mobile-position="center"] {
      left: var(--peptico-pop-mobile-left);
      right: var(--peptico-pop-mobile-right);
      top: 50%;
      bottom: auto;
      transform: translateY(calc(-50% + 18px)) scale(0.985);
    }

    .peptico-pop-slot[data-mobile-position="center"].is-active {
      transform: translateY(-50%) scale(1);
    }

    .peptico-pop-slot[data-mobile-position="bottom-left"],
    .peptico-pop-slot[data-mobile-position="bottom-center"],
    .peptico-pop-slot[data-mobile-position="bottom-right"] {
      left: var(--peptico-pop-mobile-left);
      right: var(--peptico-pop-mobile-right);
      top: auto;
      bottom: var(--peptico-pop-mobile-bottom);
      transform: translateY(18px) scale(0.985);
    }

    .peptico-pop-slot[data-mobile-position="bottom-left"].is-active,
    .peptico-pop-slot[data-mobile-position="bottom-center"].is-active,
    .peptico-pop-slot[data-mobile-position="bottom-right"].is-active {
      transform: translateY(0) scale(1);
    }
  }

  @supports not (height: 100dvh) {
    @media (max-width: 768px) {
      #scroll-video-sticky {
        height: 100vh;
        min-height: 100vh;
      }
    }
  }
</style>

<script>
document.addEventListener("DOMContentLoaded", function () {
  const isElementorEditing =
    document.body.classList.contains("elementor-editor-active") ||
    document.body.classList.contains("elementor-editor-preview") ||
    window.location.href.indexOf("elementor-preview") !== -1 ||
    window.location.href.indexOf("action=elementor") !== -1;

  if (isElementorEditing) {
    const editorVideo = document.querySelector("#scroll-video");

    if (editorVideo) {
      try {
        editorVideo.pause();
        editorVideo.removeAttribute("src");
        editorVideo.load();
      } catch (error) {}
    }

    return;
  }

  /*
    =========================
    EDIT EVERYTHING HERE
    =========================
  */

  const CONFIG = {
    desktopVideoUrl: "https://peptico.com/wp-content/uploads/2026/06/Peptico-Home-Animation-V01-Final-Nomotionblur-7-Nyx3-Full.mp4",
    mobileVideoUrl: "https://peptico.com/wp-content/uploads/2026/06/Peptico-Home-Animation-V01-Final-Nomotionblur-7-Nyx3-Full-1.mp4",

    videoDurationSeconds: 21.5,

    mobileBreakpoint: 768,

    desktopVhPerSecond: 75,
    desktopMinVh: 1800,
    desktopExtraVh: 150,
    desktopScrub: 0.7,
    desktopSmooth: 0.22,
    desktopSeekFps: 30,

    mobileVhPerSecond: 44,
    mobileMinVh: 1100,
    mobileExtraVh: 120,
    mobileScrub: 0.35,
    mobileSmooth: 0.15,
    mobileSeekFps: 24,

    endpointLockStart: 0.004,
    endpointLockEnd: 0.996,

    popBlocks: [
      { .elementor-443 .elementor-element.elementor-element-67b77d3: ".peptico-pop-1", position: "top-left", mobilePosition: "top-center", desktopStartSec: 1.0, desktopEndSec: 3.8, mobileStartSec: 1.0, mobileEndSec: 3.8 },
      { .elementor-443 .elementor-element.elementor-element-67b77d3: ".peptico-pop-2", position: "top-right", mobilePosition: "top-center", desktopStartSec: 3.4, desktopEndSec: 5.6, mobileStartSec: 3.4, mobileEndSec: 5.6 },
      { .elementor-443 .elementor-element.elementor-element-67b77d3: ".peptico-pop-3", position: "bottom-right", mobilePosition: "top-center", desktopStartSec: 5.8, desktopEndSec: 8.0, mobileStartSec: 5.8, mobileEndSec: 8.0 },
      { .elementor-443 .elementor-element.elementor-element-67b77d3: ".peptico-pop-4", position: "center-left", mobilePosition: "top-center", desktopStartSec: 8.2, desktopEndSec: 10.7, mobileStartSec: 8.2, mobileEndSec: 10.7 },
      { .elementor-443 .elementor-element.elementor-element-67b77d3: ".peptico-pop-5", position: "top-left", mobilePosition: "top-center", desktopStartSec: 10.9, desktopEndSec: 13.3, mobileStartSec: 10.9, mobileEndSec: 13.3 },
      { .elementor-443 .elementor-element.elementor-element-67b77d3: ".peptico-pop-6", position: "center-right", mobilePosition: "top-center", desktopStartSec: 13.5, desktopEndSec: 16.1, mobileStartSec: 13.5, mobileEndSec: 16.1 },
      { .elementor-443 .elementor-element.elementor-element-67b77d3: ".peptico-pop-7", position: "bottom-left", mobilePosition: "top-center", desktopStartSec: 16.3, desktopEndSec: 18.6, mobileStartSec: 16.3, mobileEndSec: 18.6 },
      { .elementor-443 .elementor-element.elementor-element-67b77d3: ".peptico-pop-8", position: "bottom-right", mobilePosition: "top-center", desktopStartSec: 18.8, desktopEndSec: 20.8, mobileStartSec: 18.8, mobileEndSec: 20.8 }
    ]
  };

  /*
    =========================
    DO NOT EDIT BELOW
    =========================
  */

  if (!window.gsap || !window.ScrollTrigger) {
    console.warn("Scroll video: GSAP or ScrollTrigger not loaded.");
    return;
  }

  gsap.registerPlugin(ScrollTrigger);

  ScrollTrigger.config({
    ignoreMobileResize: true
  });

  const container = document.querySelector("#scroll-video-container");
  const sticky = document.querySelector("#scroll-video-sticky");
  const video = document.querySelector("#scroll-video");
  const overlay = document.querySelector("#scroll-video-overlay");

  if (!container || !sticky || !video || !overlay) {
    console.warn("Scroll video: required elements not found.");
    return;
  }

  let duration = CONFIG.videoDurationSeconds;
  let targetTime = 0;
  let currentTime = 0;
  let lastAppliedTime = -1;
  let lastProgress = 0;
  let rafId = null;
  let scrollTrigger = null;
  let resizeTimer = null;
  let lastWindowWidth = window.innerWidth;
  let currentMode = "";
  let currentSourceUrl = "";
  let mountedPopItems = [];

  video.muted = true;
  video.defaultMuted = true;
  video.playsInline = true;
  video.preload = "auto";
  video.controls = false;
  video.loop = false;
  video.autoplay = false;

  video.setAttribute("muted", "");
  video.setAttribute("defaultMuted", "");
  video.setAttribute("playsinline", "");
  video.setAttribute("webkit-playsinline", "");
  video.setAttribute("preload", "auto");
  video.removeAttribute("loop");
  video.removeAttribute("autoplay");

  try {
    video.disablePictureInPicture = true;
  } catch (error) {}

  function isMobile() {
    return window.matchMedia("(max-width: " + CONFIG.mobileBreakpoint + "px)").matches;
  }

  function isTouchDevice() {
    return window.matchMedia("(pointer: coarse)").matches;
  }

  function getWantedMode() {
    return isMobile() ? "mobile" : "desktop";
  }

  function getWantedVideoUrl() {
    if (isMobile() && CONFIG.mobileVideoUrl) {
      return CONFIG.mobileVideoUrl;
    }
    return CONFIG.desktopVideoUrl;
  }

  function getViewportHeight() {
    if (isTouchDevice() && window.visualViewport && window.visualViewport.height) {
      return Math.round(window.visualViewport.height);
    }
    return window.innerHeight;
  }

  function getDuration() {
    if (video.duration && !isNaN(video.duration) && isFinite(video.duration)) {
      return video.duration;
    }
    return CONFIG.videoDurationSeconds;
  }

  function getActiveSmooth() {
    return isMobile() ? CONFIG.mobileSmooth : CONFIG.desktopSmooth;
  }

  function getActiveSeekFps() {
    return isMobile() ? CONFIG.mobileSeekFps : CONFIG.desktopSeekFps;
  }

  function getActiveScrub() {
    return isMobile() ? CONFIG.mobileScrub : CONFIG.desktopScrub;
  }

  function secondsToProgress(seconds) {
    return Math.min(1, Math.max(0, seconds / CONFIG.videoDurationSeconds));
  }

  function setContainerHeight() {
    const activeDuration = getDuration();
    let totalVh;

    if (isMobile()) {
      totalVh = Math.max(
        CONFIG.mobileMinVh,
        Math.round(activeDuration * CONFIG.mobileVhPerSecond + CONFIG.mobileExtraVh)
      );
    } else {
      totalVh = Math.max(
        CONFIG.desktopMinVh,
        Math.round(activeDuration * CONFIG.desktopVhPerSecond + CONFIG.desktopExtraVh)
      );
    }

    container.style.height = Math.round(getViewportHeight() * (totalVh / 100)) + "px";
  }

  function restoreMountedPopBlocks() {
    mountedPopItems.forEach(function (item) {
      if (item.block && item.placeholder && item.placeholder.parentNode) {
        item.placeholder.parentNode.insertBefore(item.block, item.placeholder);
      }
      if (item.placeholder && item.placeholder.parentNode) {
        item.placeholder.remove();
      }
      if (item.slot && item.slot.parentNode) {
        item.slot.remove();
      }
    });
    mountedPopItems = [];
  }

  function mountElementorPopBlocks() {
    restoreMountedPopBlocks();

    CONFIG.popBlocks.forEach(function (blockConfig, index) {
      const block = document.querySelector(blockConfig..elementor-443 .elementor-element.elementor-element-67b77d3);
      if (!block) return;

      const placeholder = document.createComment("peptico-pop-placeholder-" + index);
      const slot = document.createElement("div");

      slot.className = "peptico-pop-slot";
      slot.setAttribute("data-position", blockConfig.position || "bottom-left");
      slot.setAttribute("data-mobile-position", blockConfig.mobilePosition || "top-center");
      slot.setAttribute("data-pop-index", String(index));

      block.parentNode.insertBefore(placeholder, block);
      block.classList.add("peptico-mounted-pop");

      slot.appendChild(block);
      overlay.appendChild(slot);

      mountedPopItems.push({
        block: block,
        placeholder: placeholder,
        slot: slot
      });
    });
  }

  function updatePops(progress) {
    CONFIG.popBlocks.forEach(function (blockConfig, index) {
      const item = mountedPopItems[index];
      const slot = item ? item.slot : null;
      if (!slot) return;

      const startSec = isMobile() ? blockConfig.mobileStartSec : blockConfig.desktopStartSec;
      const endSec = isMobile() ? blockConfig.mobileEndSec : blockConfig.desktopEndSec;

      const startProgress = secondsToProgress(startSec);
      const endProgress = secondsToProgress(endSec);

      if (progress >= startProgress && progress <= endProgress) {
        slot.classList.add("is-active");
      } else {
        slot.classList.remove("is-active");
      }
    });
  }

  function stopVideoMotion() {
    video.loop = false;
    video.autoplay = false;
    video.removeAttribute("loop");
    video.removeAttribute("autoplay");

    try {
      if (!video.paused) {
        video.pause();
      }
    } catch (error) {}
  }

  function applyVideoTime(time) {
    const fps = getActiveSeekFps();
    const safeTime = Math.min(duration, Math.max(0, time));
    const snappedTime = Math.round(safeTime * fps) / fps;

    if (snappedTime === lastAppliedTime) {
      return;
    }

    if (isMobile() && video.seeking) {
      return;
    }

    try {
      if (!video.paused) {
        video.pause();
      }
      video.currentTime = snappedTime;
      lastAppliedTime = snappedTime;
    } catch (error) {}
  }

  function primeVideo() {
    const restoreTime = Math.min(
      duration || CONFIG.videoDurationSeconds,
      Math.max(0.001, video.currentTime || currentTime || targetTime || 0.001)
    );

    try {
      video.muted = true;
      video.defaultMuted = true;
      video.playsInline = true;
      video.loop = false;
      video.autoplay = false;

      video.setAttribute("muted", "");
      video.setAttribute("defaultMuted", "");
      video.setAttribute("playsinline", "");
      video.setAttribute("webkit-playsinline", "");
      video.removeAttribute("loop");
      video.removeAttribute("autoplay");

      const promise = video.play();

      if (promise && typeof promise.then === "function") {
        promise
          .then(function () {
            try {
              video.pause();
              video.currentTime = restoreTime;
            } catch (error) {}
          })
          .catch(function () {});
      }
    } catch (error) {}
  }

  document.addEventListener("touchstart", primeVideo, { once: true, passive: true });
  document.addEventListener("touchend", primeVideo, { once: true, passive: true });
  document.addEventListener("pointerdown", primeVideo, { once: true, passive: true });
  document.addEventListener("click", primeVideo, { once: true });

  function killCurrentTrigger() {
    if (scrollTrigger) {
      scrollTrigger.kill();
      scrollTrigger = null;
    }
  }

  function createScrollTrigger() {
    killCurrentTrigger();
    setContainerHeight();

    scrollTrigger = ScrollTrigger.create({
      trigger: container,
      start: "top top",
      end: "bottom bottom",
      scrub: getActiveScrub(),
      invalidateOnRefresh: true,

      onUpdate: function (self) {
        lastProgress = self.progress;
        updatePops(self.progress);

        if (self.progress <= CONFIG.endpointLockStart) {
          targetTime = 0;
          currentTime = 0;
          applyVideoTime(0);
          return;
        }

        if (self.progress >= CONFIG.endpointLockEnd) {
          targetTime = duration;
          currentTime = duration;
          applyVideoTime(duration);
          return;
        }

        const fps = getActiveSeekFps();
        const rawTime = self.progress * duration;
        const frame = Math.round(rawTime * fps);

        targetTime = Math.min(duration, Math.max(0, frame / fps));
      }
    });

    ScrollTrigger.refresh();
  }

  function renderScrollScrub() {
    const smooth = getActiveSmooth();

    if (lastProgress <= CONFIG.endpointLockStart) {
      currentTime = 0;
      targetTime = 0;
      applyVideoTime(0);
    } else if (lastProgress >= CONFIG.endpointLockEnd) {
      currentTime = duration;
      targetTime = duration;
      applyVideoTime(duration);
    } else {
      currentTime += (targetTime - currentTime) * smooth;

      if (Math.abs(targetTime - currentTime) < 1 / getActiveSeekFps()) {
        currentTime = targetTime;
      }

      applyVideoTime(currentTime);
    }

    rafId = requestAnimationFrame(renderScrollScrub);
  }

  function resetAnimationState() {
    duration = getDuration();
    stopVideoMotion();

    try {
      video.currentTime = 0.001;
    } catch (error) {}

    targetTime = 0;
    currentTime = 0;
    lastAppliedTime = -1;
    lastProgress = 0;

    updatePops(0);
  }

  function loadCorrectVideo(callback) {
    const wantedUrl = getWantedVideoUrl();
    const wantedMode = getWantedMode();

    if (!wantedUrl) {
      console.warn("Scroll video: video URL is missing.");
      return;
    }

    if (currentSourceUrl === wantedUrl && currentMode === wantedMode && video.readyState >= 1) {
      callback();
      return;
    }

    currentSourceUrl = wantedUrl;
    currentMode = wantedMode;

    killCurrentTrigger();

    if (rafId) {
      cancelAnimationFrame(rafId);
      rafId = null;
    }

    stopVideoMotion();

    video.removeAttribute("src");
    video.setAttribute("src", wantedUrl);

    try {
      video.load();
    } catch (error) {}

    let done = false;

    function finish() {
      if (done) return;
      done = true;
      callback();
    }

    if (video.readyState >= 1) {
      finish();
      return;
    }

    video.addEventListener("loadedmetadata", finish, { once: true });
    video.addEventListener("loadeddata", finish, { once: true });
    video.addEventListener("canplay", finish, { once: true });

    setTimeout(finish, 2500);
  }

  function initScrollVideo() {
    mountElementorPopBlocks();

    loadCorrectVideo(function () {
      resetAnimationState();
      createScrollTrigger();

      if (rafId) {
        cancelAnimationFrame(rafId);
      }

      renderScrollScrub();

      setTimeout(function () {
        duration = getDuration();
        setContainerHeight();
        ScrollTrigger.refresh();
      }, 500);

      setTimeout(function () {
        duration = getDuration();
        setContainerHeight();
        ScrollTrigger.refresh();
      }, 1200);

      setTimeout(function () {
        duration = getDuration();
        setContainerHeight();
        ScrollTrigger.refresh();
      }, 2200);
    });
  }

  initScrollVideo();

  video.addEventListener("durationchange", function () {
    duration = getDuration();
    setContainerHeight();
    ScrollTrigger.refresh();
  });

  video.addEventListener("loadedmetadata", function () {
    duration = getDuration();
    setContainerHeight();
    ScrollTrigger.refresh();
  });

  video.addEventListener("error", function () {
    console.warn("Scroll video: video failed to load or decode.", video.error);
  });

  window.addEventListener("resize", function () {
    clearTimeout(resizeTimer);

    resizeTimer = setTimeout(function () {
      const currentWidth = window.innerWidth;
      const newMode = getWantedMode();

      if (newMode !== currentMode) {
        lastWindowWidth = currentWidth;
        initScrollVideo();
        return;
      }

      if (isTouchDevice() && Math.abs(currentWidth - lastWindowWidth) < 30) {
        return;
      }

      lastWindowWidth = currentWidth;
      setContainerHeight();
      ScrollTrigger.refresh();
    }, 350);
  });

  window.addEventListener("orientationchange", function () {
    setTimeout(function () {
      lastWindowWidth = window.innerWidth;
      initScrollVideo();
    }, 700);
  });

  window.addEventListener("pageshow", function () {
    setTimeout(function () {
      duration = getDuration();
      setContainerHeight();
      primeVideo();
      ScrollTrigger.refresh();
    }, 300);
  });
});
</script>/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-088ddac */.elementor-443 .elementor-element.elementor-element-088ddac *{
    margin: 0 !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-a94b245 */.elementor-443 .elementor-element.elementor-element-a94b245 *{
    margin: 0 !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-40ca4bf */.elementor-443 .elementor-element.elementor-element-40ca4bf *{
    margin: 0 !important;
}/* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-171f3ed */.elementor-443 .elementor-element.elementor-element-171f3ed svg{
    background-color: white;
    padding: 5px;
    border-radius: 10px;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-8721154 */.elementor-443 .elementor-element.elementor-element-8721154 *{
    margin: 0 !important;
}/* End custom CSS */
/* Start custom CSS */.bottle {
  --rotate: 0deg;
  animation: float 2.5s ease-in-out infinite;
}

.bottle-left {
  --rotate: 15deg;
  animation-duration: 3.4s;
}

.bottle-center {

  animation-duration: 2.5s;
}

.bottle-right {
  --rotate: -15deg;
  animation-duration: 3.4s;
}
.bottle-second {
  --rotate: 15deg;
  animation-duration: 3.4s;
}

@keyframes float {
  0%, 100% {
    transform: translate(0, 0) rotate(var(--rotate));
  }

  50% {
    transform: translate(0, -10px) rotate(var(--rotate));
  }
}/* End custom CSS */