.elementor-1561 .elementor-element.elementor-element-85056a8{--display:flex;--min-height:176px;--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-1561 .elementor-element.elementor-element-85056a8:not(.elementor-motion-effects-element-type-background), .elementor-1561 .elementor-element.elementor-element-85056a8 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-text );}.elementor-1561 .elementor-element.elementor-element-5ae7e2d{--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-1561 .elementor-element.elementor-element-5ae7e2d:not(.elementor-motion-effects-element-type-background), .elementor-1561 .elementor-element.elementor-element-5ae7e2d > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:transparent;background-image:linear-gradient(240deg, var( --e-global-color-text ) 0%, #49463F 100%);}.elementor-1561 .elementor-element.elementor-element-27347b0{--display:flex;--min-height:10vh;--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;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );text-transform:var( --e-global-typography-primary-text-transform );font-style:var( --e-global-typography-primary-font-style );line-height:var( --e-global-typography-primary-line-height );color:var( --e-global-color-primary );}.elementor-1561 .elementor-element.elementor-element-86f50e3 .elementor-heading-title{text-shadow:1px -2px 4px rgba(255, 245.97377126654064, 195.68478260869566, 0.59);color:var( --e-global-color-primary );}.elementor-1561 .elementor-element.elementor-element-96e13a6{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-widget-button .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );font-style:var( --e-global-typography-accent-font-style );}.elementor-1561 .elementor-element.elementor-element-316355a .elementor-button{background-color:var( --e-global-color-primary );font-family:"CopperplateHighlight", Sans-serif;font-size:16px;font-weight:400;font-style:normal;text-shadow:0px 0px 5px rgba(0, 0, 0, 0.76);fill:var( --e-global-color-text );color:var( --e-global-color-text );border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-text );border-radius:13px 13px 13px 13px;padding:19px 19px 19px 19px;}.elementor-1561 .elementor-element.elementor-element-316355a .elementor-button:hover, .elementor-1561 .elementor-element.elementor-element-316355a .elementor-button:focus{background-color:var( --e-global-color-accent );}.elementor-1561 .elementor-element.elementor-element-4ee8744{--display:flex;--min-height:0px;--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;--overlay-opacity:0.5;border-style:solid;--border-style:solid;border-width:2px 2px 2px 2px;--border-top-width:2px;--border-right-width:2px;--border-bottom-width:2px;--border-left-width:2px;border-color:var( --e-global-color-primary );--border-color:var( --e-global-color-primary );--border-radius:10px 10px 10px 10px;box-shadow:0px 0px 5px 0px rgba(254.97167358398437, 243.22321508944825, 213.4002050648565, 0.93);--padding-top:30px;--padding-bottom:30px;--padding-left:30px;--padding-right:30px;}.elementor-1561 .elementor-element.elementor-element-4ee8744:not(.elementor-motion-effects-element-type-background), .elementor-1561 .elementor-element.elementor-element-4ee8744 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:transparent;background-image:linear-gradient(119deg, var( --e-global-color-text ) 0%, #FFF6E547 100%);}.elementor-1561 .elementor-element.elementor-element-4ee8744::before, .elementor-1561 .elementor-element.elementor-element-4ee8744 > .elementor-background-video-container::before, .elementor-1561 .elementor-element.elementor-element-4ee8744 > .e-con-inner > .elementor-background-video-container::before, .elementor-1561 .elementor-element.elementor-element-4ee8744 > .elementor-background-slideshow::before, .elementor-1561 .elementor-element.elementor-element-4ee8744 > .e-con-inner > .elementor-background-slideshow::before, .elementor-1561 .elementor-element.elementor-element-4ee8744 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:var( --e-global-color-text );--background-overlay:'';}.elementor-1561 .elementor-element.elementor-element-4ee8744:hover::before, .elementor-1561 .elementor-element.elementor-element-4ee8744:hover > .elementor-background-video-container::before, .elementor-1561 .elementor-element.elementor-element-4ee8744:hover > .e-con-inner > .elementor-background-video-container::before, .elementor-1561 .elementor-element.elementor-element-4ee8744 > .elementor-background-slideshow:hover::before, .elementor-1561 .elementor-element.elementor-element-4ee8744 > .e-con-inner > .elementor-background-slideshow:hover::before{--background-overlay:'';}.elementor-1561 .elementor-element.elementor-element-4ee8744:hover{--overlay-opacity:0.5;box-shadow:0px 0px 16px 0px rgba(255, 243.00000000000003, 213, 0.93);}.elementor-1561 .elementor-element.elementor-element-a882728{--display:flex;--justify-content:center;}.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-1561 .elementor-element.elementor-element-7d94b59{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );color:var( --e-global-color-secondary );}.elementor-1561 .elementor-element.elementor-element-441bcea{--display:flex;border-style:solid;--border-style:solid;border-width:0px 0px 2px 0px;--border-top-width:0px;--border-right-width:0px;--border-bottom-width:2px;--border-left-width:0px;border-color:var( --e-global-color-secondary );--border-color:var( --e-global-color-secondary );--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-1561 .elementor-element.elementor-element-441bcea.e-con{--flex-grow:0;--flex-shrink:1;}.elementor-1561 .elementor-element.elementor-element-2699362{color:var( --e-global-color-primary );}.elementor-1561 .elementor-element.elementor-element-5a768a4 .elementor-button{background-color:#FDE9E900;font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );fill:var( --e-global-color-secondary );color:var( --e-global-color-secondary );border-radius:0px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-1561 .elementor-element.elementor-element-5a768a4 > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-1561 .elementor-element.elementor-element-5a768a4.elementor-element{--align-self:flex-start;--flex-grow:0;--flex-shrink:1;}.elementor-1561 .elementor-element.elementor-element-1fd8c7d{--display:flex;--justify-content:center;}.elementor-1561 .elementor-element.elementor-element-1fd8c7d.e-con{--align-self:center;}.elementor-1561 .elementor-element.elementor-element-e06026e{color:var( --e-global-color-primary );}.elementor-1561 .elementor-element.elementor-element-56de29b{--display:flex;--justify-content:space-around;--padding-top:40px;--padding-bottom:5px;--padding-left:5px;--padding-right:25px;}.elementor-1561 .elementor-element.elementor-element-56de29b.e-con{--align-self:center;}.elementor-1561 .elementor-element.elementor-element-9801013{--display:flex;--flex-direction:row-reverse;--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-reverse;--align-items:center;--margin-top:1px;--margin-bottom:1px;--margin-left:1px;--margin-right:1px;--padding-top:10px;--padding-bottom:10px;--padding-left:10px;--padding-right:10px;}.elementor-1561 .elementor-element.elementor-element-9801013.e-con{--align-self:center;--flex-grow:0;--flex-shrink:1;}.elementor-1561 .elementor-element.elementor-element-356500d{text-align:start;font-family:"Elsie Swash Caps", Sans-serif;font-size:15px;font-weight:200;font-style:normal;color:var( --e-global-color-primary );}.elementor-1561 .elementor-element.elementor-element-4e237cc{text-align:end;font-family:"Elsie Swash Caps", Sans-serif;font-size:79px;font-weight:700;font-style:normal;color:var( --e-global-color-primary );}.elementor-1561 .elementor-element.elementor-element-adf7f1c .elementor-button{background-color:#FDE9E900;font-family:"CopperplateHighlight", Sans-serif;font-size:16px;font-weight:400;fill:var( --e-global-color-primary );color:var( --e-global-color-primary );border-style:solid;border-width:2px 2px 2px 2px;border-color:var( --e-global-color-secondary );border-radius:10px 10px 10px 10px;}.elementor-1561 .elementor-element.elementor-element-adf7f1c .elementor-button:hover, .elementor-1561 .elementor-element.elementor-element-adf7f1c .elementor-button:focus{background-color:#FDE9E93B;}.elementor-1561 .elementor-element.elementor-element-45739f4{--display:flex;--min-height:0px;--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;--overlay-opacity:0.5;border-style:solid;--border-style:solid;border-width:2px 2px 2px 2px;--border-top-width:2px;--border-right-width:2px;--border-bottom-width:2px;--border-left-width:2px;border-color:var( --e-global-color-primary );--border-color:var( --e-global-color-primary );--border-radius:10px 10px 10px 10px;box-shadow:0px 0px 5px 0px rgba(254.97167358398437, 243.22321508944825, 213.4002050648565, 0.93);--padding-top:30px;--padding-bottom:30px;--padding-left:30px;--padding-right:30px;}.elementor-1561 .elementor-element.elementor-element-45739f4:not(.elementor-motion-effects-element-type-background), .elementor-1561 .elementor-element.elementor-element-45739f4 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:transparent;background-image:linear-gradient(119deg, var( --e-global-color-text ) 0%, #FFF6E547 100%);}.elementor-1561 .elementor-element.elementor-element-45739f4::before, .elementor-1561 .elementor-element.elementor-element-45739f4 > .elementor-background-video-container::before, .elementor-1561 .elementor-element.elementor-element-45739f4 > .e-con-inner > .elementor-background-video-container::before, .elementor-1561 .elementor-element.elementor-element-45739f4 > .elementor-background-slideshow::before, .elementor-1561 .elementor-element.elementor-element-45739f4 > .e-con-inner > .elementor-background-slideshow::before, .elementor-1561 .elementor-element.elementor-element-45739f4 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:var( --e-global-color-text );--background-overlay:'';}.elementor-1561 .elementor-element.elementor-element-45739f4:hover::before, .elementor-1561 .elementor-element.elementor-element-45739f4:hover > .elementor-background-video-container::before, .elementor-1561 .elementor-element.elementor-element-45739f4:hover > .e-con-inner > .elementor-background-video-container::before, .elementor-1561 .elementor-element.elementor-element-45739f4 > .elementor-background-slideshow:hover::before, .elementor-1561 .elementor-element.elementor-element-45739f4 > .e-con-inner > .elementor-background-slideshow:hover::before{--background-overlay:'';}.elementor-1561 .elementor-element.elementor-element-45739f4:hover{--overlay-opacity:0.5;box-shadow:0px 0px 16px 0px rgba(255, 243.00000000000003, 213, 0.93);}.elementor-1561 .elementor-element.elementor-element-679a68d{--display:flex;}.elementor-1561 .elementor-element.elementor-element-c1dd696{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );color:var( --e-global-color-secondary );}.elementor-1561 .elementor-element.elementor-element-a22718a{color:var( --e-global-color-primary );}.elementor-1561 .elementor-element.elementor-element-e296ab8{--display:flex;--justify-content:space-around;}.elementor-1561 .elementor-element.elementor-element-e296ab8.e-con{--align-self:center;}.elementor-1561 .elementor-element.elementor-element-7261cd8{color:var( --e-global-color-primary );}.elementor-1561 .elementor-element.elementor-element-d3388ef{--display:flex;--justify-content:space-around;--padding-top:80px;--padding-bottom:5px;--padding-left:5px;--padding-right:5px;}.elementor-1561 .elementor-element.elementor-element-d3388ef.e-con{--align-self:center;}.elementor-1561 .elementor-element.elementor-element-a216057{color:var( --e-global-color-primary );}.elementor-1561 .elementor-element.elementor-element-62c5be2{--display:flex;--min-height:0px;--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;--overlay-opacity:0.5;border-style:solid;--border-style:solid;border-width:2px 2px 2px 2px;--border-top-width:2px;--border-right-width:2px;--border-bottom-width:2px;--border-left-width:2px;border-color:var( --e-global-color-primary );--border-color:var( --e-global-color-primary );--border-radius:10px 10px 10px 10px;box-shadow:0px 0px 5px 0px rgba(254.97167358398437, 243.22321508944825, 213.4002050648565, 0.93);--padding-top:30px;--padding-bottom:30px;--padding-left:30px;--padding-right:30px;}.elementor-1561 .elementor-element.elementor-element-62c5be2:not(.elementor-motion-effects-element-type-background), .elementor-1561 .elementor-element.elementor-element-62c5be2 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:transparent;background-image:linear-gradient(119deg, var( --e-global-color-text ) 0%, #FFF6E547 100%);}.elementor-1561 .elementor-element.elementor-element-62c5be2::before, .elementor-1561 .elementor-element.elementor-element-62c5be2 > .elementor-background-video-container::before, .elementor-1561 .elementor-element.elementor-element-62c5be2 > .e-con-inner > .elementor-background-video-container::before, .elementor-1561 .elementor-element.elementor-element-62c5be2 > .elementor-background-slideshow::before, .elementor-1561 .elementor-element.elementor-element-62c5be2 > .e-con-inner > .elementor-background-slideshow::before, .elementor-1561 .elementor-element.elementor-element-62c5be2 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:var( --e-global-color-text );--background-overlay:'';}.elementor-1561 .elementor-element.elementor-element-62c5be2:hover::before, .elementor-1561 .elementor-element.elementor-element-62c5be2:hover > .elementor-background-video-container::before, .elementor-1561 .elementor-element.elementor-element-62c5be2:hover > .e-con-inner > .elementor-background-video-container::before, .elementor-1561 .elementor-element.elementor-element-62c5be2 > .elementor-background-slideshow:hover::before, .elementor-1561 .elementor-element.elementor-element-62c5be2 > .e-con-inner > .elementor-background-slideshow:hover::before{--background-overlay:'';}.elementor-1561 .elementor-element.elementor-element-62c5be2:hover{--overlay-opacity:0.5;box-shadow:0px 0px 16px 0px rgba(255, 243.00000000000003, 213, 0.93);}.elementor-1561 .elementor-element.elementor-element-bb09bd3{--display:flex;}.elementor-1561 .elementor-element.elementor-element-3bd2d50{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );color:var( --e-global-color-secondary );}.elementor-1561 .elementor-element.elementor-element-1f6e416{color:var( --e-global-color-primary );}.elementor-1561 .elementor-element.elementor-element-00e43d4{--display:flex;--justify-content:space-around;}.elementor-1561 .elementor-element.elementor-element-00e43d4.e-con{--align-self:center;}.elementor-1561 .elementor-element.elementor-element-33d92c3{color:var( --e-global-color-primary );}.elementor-1561 .elementor-element.elementor-element-564927a{--display:flex;--justify-content:space-around;--padding-top:80px;--padding-bottom:5px;--padding-left:5px;--padding-right:5px;}.elementor-1561 .elementor-element.elementor-element-564927a.e-con{--align-self:center;}.elementor-1561 .elementor-element.elementor-element-37e7410{color:var( --e-global-color-primary );}.elementor-1561 .elementor-element.elementor-element-48591d6{--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-1561 .elementor-element.elementor-element-48591d6:not(.elementor-motion-effects-element-type-background), .elementor-1561 .elementor-element.elementor-element-48591d6 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:transparent;background-image:linear-gradient(300deg, var( --e-global-color-text ) 0%, #49463F 100%);}.elementor-1561 .elementor-element.elementor-element-1c96d96{--display:flex;--min-height:8vh;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;}.elementor-1561 .elementor-element.elementor-element-671dd78.elementor-element{--align-self:center;}.elementor-1561 .elementor-element.elementor-element-671dd78 .elementor-heading-title{text-shadow:1px -2px 4px rgba(255, 245.97377126654064, 195.68478260869566, 0.59);color:var( --e-global-color-primary );}.elementor-1561 .elementor-element.elementor-element-2e2b688{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-1561 .elementor-element.elementor-element-57dd836 .elementor-button{background-color:var( --e-global-color-primary );font-family:"CopperplateHighlight", Sans-serif;font-size:16px;font-weight:400;font-style:normal;text-shadow:0px 0px 5px rgba(0, 0, 0, 0.76);fill:var( --e-global-color-text );color:var( --e-global-color-text );border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-text );border-radius:13px 13px 13px 13px;padding:19px 19px 19px 19px;}.elementor-1561 .elementor-element.elementor-element-57dd836 .elementor-button:hover, .elementor-1561 .elementor-element.elementor-element-57dd836 .elementor-button:focus{background-color:var( --e-global-color-accent );}.elementor-1561 .elementor-element.elementor-element-f2c340b{--display:flex;--min-height:0px;--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;--overlay-opacity:0.5;border-style:solid;--border-style:solid;border-width:2px 2px 2px 2px;--border-top-width:2px;--border-right-width:2px;--border-bottom-width:2px;--border-left-width:2px;border-color:var( --e-global-color-primary );--border-color:var( --e-global-color-primary );--border-radius:10px 10px 10px 10px;box-shadow:0px 0px 5px 0px rgba(254.97167358398437, 243.22321508944825, 213.4002050648565, 0.93);--padding-top:30px;--padding-bottom:30px;--padding-left:30px;--padding-right:30px;}.elementor-1561 .elementor-element.elementor-element-f2c340b:not(.elementor-motion-effects-element-type-background), .elementor-1561 .elementor-element.elementor-element-f2c340b > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:transparent;background-image:linear-gradient(119deg, var( --e-global-color-text ) 0%, #FFF6E547 100%);}.elementor-1561 .elementor-element.elementor-element-f2c340b::before, .elementor-1561 .elementor-element.elementor-element-f2c340b > .elementor-background-video-container::before, .elementor-1561 .elementor-element.elementor-element-f2c340b > .e-con-inner > .elementor-background-video-container::before, .elementor-1561 .elementor-element.elementor-element-f2c340b > .elementor-background-slideshow::before, .elementor-1561 .elementor-element.elementor-element-f2c340b > .e-con-inner > .elementor-background-slideshow::before, .elementor-1561 .elementor-element.elementor-element-f2c340b > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:var( --e-global-color-text );--background-overlay:'';}.elementor-1561 .elementor-element.elementor-element-f2c340b:hover::before, .elementor-1561 .elementor-element.elementor-element-f2c340b:hover > .elementor-background-video-container::before, .elementor-1561 .elementor-element.elementor-element-f2c340b:hover > .e-con-inner > .elementor-background-video-container::before, .elementor-1561 .elementor-element.elementor-element-f2c340b > .elementor-background-slideshow:hover::before, .elementor-1561 .elementor-element.elementor-element-f2c340b > .e-con-inner > .elementor-background-slideshow:hover::before{--background-overlay:'';}.elementor-1561 .elementor-element.elementor-element-f2c340b:hover{--overlay-opacity:0.5;box-shadow:0px 0px 16px 0px rgba(255, 243.00000000000003, 213, 0.93);}.elementor-1561 .elementor-element.elementor-element-c6ad79f{--display:flex;}.elementor-1561 .elementor-element.elementor-element-fd2d5ff{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );color:var( --e-global-color-secondary );}.elementor-1561 .elementor-element.elementor-element-579e499{color:var( --e-global-color-primary );}.elementor-1561 .elementor-element.elementor-element-040602b{--display:flex;--justify-content:space-around;}.elementor-1561 .elementor-element.elementor-element-040602b.e-con{--align-self:center;}.elementor-1561 .elementor-element.elementor-element-e1f9ae4{color:var( --e-global-color-primary );}.elementor-1561 .elementor-element.elementor-element-46e798a{--display:flex;--justify-content:space-around;--padding-top:80px;--padding-bottom:5px;--padding-left:5px;--padding-right:5px;}.elementor-1561 .elementor-element.elementor-element-46e798a.e-con{--align-self:center;}.elementor-1561 .elementor-element.elementor-element-ae4af11{color:var( --e-global-color-primary );}.elementor-1561 .elementor-element.elementor-element-b56591a{--display:flex;--min-height:0px;--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;--overlay-opacity:0.5;border-style:solid;--border-style:solid;border-width:2px 2px 2px 2px;--border-top-width:2px;--border-right-width:2px;--border-bottom-width:2px;--border-left-width:2px;border-color:var( --e-global-color-primary );--border-color:var( --e-global-color-primary );--border-radius:10px 10px 10px 10px;box-shadow:0px 0px 5px 0px rgba(254.97167358398437, 243.22321508944825, 213.4002050648565, 0.93);--padding-top:30px;--padding-bottom:30px;--padding-left:30px;--padding-right:30px;}.elementor-1561 .elementor-element.elementor-element-b56591a:not(.elementor-motion-effects-element-type-background), .elementor-1561 .elementor-element.elementor-element-b56591a > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:transparent;background-image:linear-gradient(119deg, var( --e-global-color-text ) 0%, #FFF6E547 100%);}.elementor-1561 .elementor-element.elementor-element-b56591a::before, .elementor-1561 .elementor-element.elementor-element-b56591a > .elementor-background-video-container::before, .elementor-1561 .elementor-element.elementor-element-b56591a > .e-con-inner > .elementor-background-video-container::before, .elementor-1561 .elementor-element.elementor-element-b56591a > .elementor-background-slideshow::before, .elementor-1561 .elementor-element.elementor-element-b56591a > .e-con-inner > .elementor-background-slideshow::before, .elementor-1561 .elementor-element.elementor-element-b56591a > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:var( --e-global-color-text );--background-overlay:'';}.elementor-1561 .elementor-element.elementor-element-b56591a:hover::before, .elementor-1561 .elementor-element.elementor-element-b56591a:hover > .elementor-background-video-container::before, .elementor-1561 .elementor-element.elementor-element-b56591a:hover > .e-con-inner > .elementor-background-video-container::before, .elementor-1561 .elementor-element.elementor-element-b56591a > .elementor-background-slideshow:hover::before, .elementor-1561 .elementor-element.elementor-element-b56591a > .e-con-inner > .elementor-background-slideshow:hover::before{--background-overlay:'';}.elementor-1561 .elementor-element.elementor-element-b56591a:hover{--overlay-opacity:0.5;box-shadow:0px 0px 16px 0px rgba(255, 243.00000000000003, 213, 0.93);}.elementor-1561 .elementor-element.elementor-element-8b24455{--display:flex;}.elementor-1561 .elementor-element.elementor-element-e5d3353{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );color:var( --e-global-color-secondary );}.elementor-1561 .elementor-element.elementor-element-df2065e{color:var( --e-global-color-primary );}.elementor-1561 .elementor-element.elementor-element-0495ba6{--display:flex;--justify-content:space-around;}.elementor-1561 .elementor-element.elementor-element-0495ba6.e-con{--align-self:center;}.elementor-1561 .elementor-element.elementor-element-34b362b{color:var( --e-global-color-primary );}.elementor-1561 .elementor-element.elementor-element-6a111c7{--display:flex;--justify-content:space-around;--padding-top:80px;--padding-bottom:5px;--padding-left:5px;--padding-right:5px;}.elementor-1561 .elementor-element.elementor-element-6a111c7.e-con{--align-self:center;}.elementor-1561 .elementor-element.elementor-element-aa99c60{color:var( --e-global-color-primary );}.elementor-1561 .elementor-element.elementor-element-9540472{--display:flex;--min-height:0px;--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;--overlay-opacity:0.5;border-style:solid;--border-style:solid;border-width:2px 2px 2px 2px;--border-top-width:2px;--border-right-width:2px;--border-bottom-width:2px;--border-left-width:2px;border-color:var( --e-global-color-primary );--border-color:var( --e-global-color-primary );--border-radius:10px 10px 10px 10px;box-shadow:0px 0px 5px 0px rgba(254.97167358398437, 243.22321508944825, 213.4002050648565, 0.93);--padding-top:30px;--padding-bottom:30px;--padding-left:30px;--padding-right:30px;}.elementor-1561 .elementor-element.elementor-element-9540472:not(.elementor-motion-effects-element-type-background), .elementor-1561 .elementor-element.elementor-element-9540472 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:transparent;background-image:linear-gradient(119deg, var( --e-global-color-text ) 0%, #FFF6E547 100%);}.elementor-1561 .elementor-element.elementor-element-9540472::before, .elementor-1561 .elementor-element.elementor-element-9540472 > .elementor-background-video-container::before, .elementor-1561 .elementor-element.elementor-element-9540472 > .e-con-inner > .elementor-background-video-container::before, .elementor-1561 .elementor-element.elementor-element-9540472 > .elementor-background-slideshow::before, .elementor-1561 .elementor-element.elementor-element-9540472 > .e-con-inner > .elementor-background-slideshow::before, .elementor-1561 .elementor-element.elementor-element-9540472 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:var( --e-global-color-text );--background-overlay:'';}.elementor-1561 .elementor-element.elementor-element-9540472:hover::before, .elementor-1561 .elementor-element.elementor-element-9540472:hover > .elementor-background-video-container::before, .elementor-1561 .elementor-element.elementor-element-9540472:hover > .e-con-inner > .elementor-background-video-container::before, .elementor-1561 .elementor-element.elementor-element-9540472 > .elementor-background-slideshow:hover::before, .elementor-1561 .elementor-element.elementor-element-9540472 > .e-con-inner > .elementor-background-slideshow:hover::before{--background-overlay:'';}.elementor-1561 .elementor-element.elementor-element-9540472:hover{--overlay-opacity:0.5;box-shadow:0px 0px 16px 0px rgba(255, 243.00000000000003, 213, 0.93);}.elementor-1561 .elementor-element.elementor-element-f3b6c7c{--display:flex;}.elementor-1561 .elementor-element.elementor-element-f846917{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );color:var( --e-global-color-secondary );}.elementor-1561 .elementor-element.elementor-element-a8d176b{color:var( --e-global-color-primary );}.elementor-1561 .elementor-element.elementor-element-38f753f{--display:flex;--justify-content:space-around;}.elementor-1561 .elementor-element.elementor-element-38f753f.e-con{--align-self:center;}.elementor-1561 .elementor-element.elementor-element-3183ac4{color:var( --e-global-color-primary );}.elementor-1561 .elementor-element.elementor-element-dfad8f9{--display:flex;--justify-content:space-around;--padding-top:80px;--padding-bottom:5px;--padding-left:5px;--padding-right:5px;}.elementor-1561 .elementor-element.elementor-element-dfad8f9.e-con{--align-self:center;}.elementor-1561 .elementor-element.elementor-element-cd5f9f4{color:var( --e-global-color-primary );}.elementor-1561 .elementor-element.elementor-element-a4ee333{--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-1561 .elementor-element.elementor-element-a4ee333:not(.elementor-motion-effects-element-type-background), .elementor-1561 .elementor-element.elementor-element-a4ee333 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-text );}@media(min-width:768px){.elementor-1561 .elementor-element.elementor-element-4ee8744{--width:100%;}.elementor-1561 .elementor-element.elementor-element-45739f4{--width:50%;}.elementor-1561 .elementor-element.elementor-element-62c5be2{--width:50%;}.elementor-1561 .elementor-element.elementor-element-f2c340b{--width:50%;}.elementor-1561 .elementor-element.elementor-element-b56591a{--width:50%;}.elementor-1561 .elementor-element.elementor-element-9540472{--width:50%;}}@media(max-width:1024px){.elementor-widget-heading .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );}.elementor-widget-button .elementor-button{font-size:var( --e-global-typography-accent-font-size );}.elementor-1561 .elementor-element.elementor-element-7d94b59{font-size:var( --e-global-typography-secondary-font-size );}.elementor-1561 .elementor-element.elementor-element-5a768a4 .elementor-button{font-size:var( --e-global-typography-secondary-font-size );}.elementor-1561 .elementor-element.elementor-element-c1dd696{font-size:var( --e-global-typography-secondary-font-size );}.elementor-1561 .elementor-element.elementor-element-3bd2d50{font-size:var( --e-global-typography-secondary-font-size );}.elementor-1561 .elementor-element.elementor-element-fd2d5ff{font-size:var( --e-global-typography-secondary-font-size );}.elementor-1561 .elementor-element.elementor-element-e5d3353{font-size:var( --e-global-typography-secondary-font-size );}.elementor-1561 .elementor-element.elementor-element-f846917{font-size:var( --e-global-typography-secondary-font-size );}}@media(max-width:767px){.elementor-widget-heading .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );}.elementor-widget-button .elementor-button{font-size:var( --e-global-typography-accent-font-size );}.elementor-1561 .elementor-element.elementor-element-7d94b59{font-size:var( --e-global-typography-secondary-font-size );}.elementor-1561 .elementor-element.elementor-element-5a768a4 .elementor-button{font-size:var( --e-global-typography-secondary-font-size );}.elementor-1561 .elementor-element.elementor-element-56de29b{--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-1561 .elementor-element.elementor-element-c1dd696{font-size:var( --e-global-typography-secondary-font-size );}.elementor-1561 .elementor-element.elementor-element-3bd2d50{font-size:var( --e-global-typography-secondary-font-size );}.elementor-1561 .elementor-element.elementor-element-fd2d5ff{font-size:var( --e-global-typography-secondary-font-size );}.elementor-1561 .elementor-element.elementor-element-e5d3353{font-size:var( --e-global-typography-secondary-font-size );}.elementor-1561 .elementor-element.elementor-element-f846917{font-size:var( --e-global-typography-secondary-font-size );}}/* Start custom CSS for text-editor, class: .elementor-element-e06026e */.elementor-1561 .elementor-element.elementor-element-e06026e ol {
  list-style: none;
  margin: 0;
  padding: 0;
  counter-reset: ghost;
}

.elementor-1561 .elementor-element.elementor-element-e06026e ol li {
  counter-increment: ghost;
  display: flex;
  align-items: baseline;
  gap: 18px;
  padding: 14px 0;
  line-height: 1.7;
}

.elementor-1561 .elementor-element.elementor-element-e06026e ol li::before {
  content: counter(ghost, decimal-leading-zero);
  flex: 0 0 auto;
  min-width: 1.9em;
  font-size: 2em;
  font-weight: 300;
  line-height: 1;
  opacity: .35;
}

@media (max-width: 767px) {
  .elementor-1561 .elementor-element.elementor-element-e06026e ol li { gap: 12px; }
  .elementor-1561 .elementor-element.elementor-element-e06026e ol li::before { font-size: 1.6em; }
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-5edbb36 *//* ============================================================================
   STROKES v3 — replaces odx-strokes-v2.css
   Keep odx-behaviour.css as well; this file only covers the strokes.
   No :has(), no color-mix() — Elementor's linter rejects both.

   v3 change: .odx-branch is now the wrapper SPAN, not the svg. Replaced
   elements like <svg> are not sized by opposing left/right offsets, so the
   positioning has to happen on a normal element.
   ============================================================================ */

.odx-diagram{
  --g      : 26px;      /* MUST equal the gap on .odx-row */
  --drop   : 120px;     /* height of each stroke zone */
  --w      : 3px;       /* stroke thickness */
  --stroke : #B1C6D1;   /* resting */
  --glare  : #FFFBF3;   /* hover */
  --active : #3333FF;   /* once a box is chosen */
  --fade   : .42s;
  --ease   : cubic-bezier(.4,.05,.2,1);
}

/* ---------- the zone ---------- */
.odx-strokes-in{
  position:relative;
  width:100%;
  height:var(--drop);
  pointer-events:none;
}
.odx-strokes--up .odx-strokes-in{transform:scaleY(-1);}

/* kill any margin Elementor puts on the widget — it breaks the spine */
.odx-strokes,
.odx-strokes .elementor-widget-container{margin:0;padding:0;}

/* ---------- centre ---------- */
.odx-spine{
  position:absolute;top:0;bottom:0;left:50%;
  display:block;
  width:var(--w);margin-left:calc(var(--w) / -2);
  color:var(--stroke);
  background:currentColor;
  transition:color var(--fade) var(--ease),
             box-shadow var(--fade) var(--ease),
             width var(--fade) var(--ease),
             margin-left var(--fade) var(--ease);
}

/* ---------- branches ----------
   The SPAN is positioned. Box 1's centre is calc((100% - 2*gap)/6) from the
   left — the same arithmetic the flex row is already doing — so the wrapper
   spans exactly from that centre across to the spine. */
.odx-branch{
  position:absolute;top:0;bottom:0;
  display:block;
  opacity:1;
  transition:opacity var(--fade) var(--ease);
}
.odx-branch--l{ left:calc((100% - 2 * var(--g)) / 6); right:50%; }
.odx-branch--r{ left:50%; right:calc((100% - 2 * var(--g)) / 6); }

.odx-branch svg{
  display:block;
  width:100%;
  height:100%;
  overflow:visible;
}
.odx-branch path{
  fill:none;
  color:var(--stroke);
  stroke:currentColor;
  stroke-width:var(--w);
  stroke-linecap:round;
  transition:color var(--fade) var(--ease),
             filter var(--fade) var(--ease);
}

/* ============================================================================
   STATE — classes written onto .odx-strokes by the bridge script
     is-resolved · is-hot-l · is-hot-c · is-hot-r
   ============================================================================ */

.odx-strokes.is-resolved .odx-branch{opacity:0;}

.odx-strokes.is-resolved .odx-spine{
  color:var(--active);
  width:calc(var(--w) * 1.5);
  margin-left:calc(var(--w) * -0.75);
  box-shadow:0 0 9px currentColor;
}

.odx-strokes.is-hot-l .odx-branch--l path,
.odx-strokes.is-hot-r .odx-branch--r path{
  color:var(--glare);
  filter:drop-shadow(0 0 8px currentColor);
}

.odx-strokes.is-hot-c .odx-spine{
  color:var(--glare);
  box-shadow:0 0 10px currentColor;
}

/* ---------- mobile ---------- */
@media (max-width:720px){
  .odx-diagram{--drop:56px;}
  .odx-branch{display:none;}
  .odx-spine{left:20px;}
}

@media (prefers-reduced-motion:reduce){
  .odx-diagram{--fade:.001s;}
}

/* ============================================================================
   TEMPORARY — uncomment to see the zone and branch boxes while positioning.
   Remove once the geometry is right.

   .odx-strokes-in{outline:1px dashed rgba(255,0,0,.5);}
   .odx-branch    {outline:1px dashed rgba(0,255,0,.5);}
   ============================================================================ *//* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-bdac190 *//* ============================================================================
   STROKES v3 — replaces odx-strokes-v2.css
   Keep odx-behaviour.css as well; this file only covers the strokes.
   No :has(), no color-mix() — Elementor's linter rejects both.

   v3 change: .odx-branch is now the wrapper SPAN, not the svg. Replaced
   elements like <svg> are not sized by opposing left/right offsets, so the
   positioning has to happen on a normal element.
   ============================================================================ */

.odx-diagram{
  --g      : 26px;      /* MUST equal the gap on .odx-row */
  --drop   : 120px;     /* height of each stroke zone */
  --w      : 3px;       /* stroke thickness */
  --stroke : #B1C6D1;   /* resting */
  --glare  : #FFFBF3;   /* hover */
  --active : #3333FF;   /* once a box is chosen */
  --fade   : .42s;
  --ease   : cubic-bezier(.4,.05,.2,1);
}

/* ---------- the zone ---------- */
.odx-strokes-in{
  position:relative;
  width:100%;
  height:var(--drop);
  pointer-events:none;
}
.odx-strokes--up .odx-strokes-in{transform:scaleY(-1);}

/* kill any margin Elementor puts on the widget — it breaks the spine */
.odx-strokes,
.odx-strokes .elementor-widget-container{margin:0;padding:0;}

/* ---------- centre ---------- */
.odx-spine{
  position:absolute;top:0;bottom:0;left:50%;
  display:block;
  width:var(--w);margin-left:calc(var(--w) / -2);
  color:var(--stroke);
  background:currentColor;
  transition:color var(--fade) var(--ease),
             box-shadow var(--fade) var(--ease),
             width var(--fade) var(--ease),
             margin-left var(--fade) var(--ease);
}

/* ---------- branches ----------
   The SPAN is positioned. Box 1's centre is calc((100% - 2*gap)/6) from the
   left — the same arithmetic the flex row is already doing — so the wrapper
   spans exactly from that centre across to the spine. */
.odx-branch{
  position:absolute;top:0;bottom:0;
  display:block;
  opacity:1;
  transition:opacity var(--fade) var(--ease);
}
.odx-branch--l{ left:calc((100% - 2 * var(--g)) / 6); right:50%; }
.odx-branch--r{ left:50%; right:calc((100% - 2 * var(--g)) / 6); }

.odx-branch svg{
  display:block;
  width:100%;
  height:100%;
  overflow:visible;
}
.odx-branch path{
  fill:none;
  color:var(--stroke);
  stroke:currentColor;
  stroke-width:var(--w);
  stroke-linecap:round;
  transition:color var(--fade) var(--ease),
             filter var(--fade) var(--ease);
}

/* ============================================================================
   STATE — classes written onto .odx-strokes by the bridge script
     is-resolved · is-hot-l · is-hot-c · is-hot-r
   ============================================================================ */

.odx-strokes.is-resolved .odx-branch{opacity:0;}

.odx-strokes.is-resolved .odx-spine{
  color:var(--active);
  width:calc(var(--w) * 1.5);
  margin-left:calc(var(--w) * -0.75);
  box-shadow:0 0 9px currentColor;
}

.odx-strokes.is-hot-l .odx-branch--l path,
.odx-strokes.is-hot-r .odx-branch--r path{
  color:var(--glare);
  filter:drop-shadow(0 0 8px currentColor);
}

.odx-strokes.is-hot-c .odx-spine{
  color:var(--glare);
  box-shadow:0 0 10px currentColor;
}

/* ---------- mobile ---------- */
@media (max-width:720px){
  .odx-diagram{--drop:56px;}
  .odx-branch{display:none;}
  .odx-spine{left:20px;}
}

@media (prefers-reduced-motion:reduce){
  .odx-diagram{--fade:.001s;}
}

/* ============================================================================
   TEMPORARY — uncomment to see the zone and branch boxes while positioning.
   Remove once the geometry is right.

   .odx-strokes-in{outline:1px dashed rgba(255,0,0,.5);}
   .odx-branch    {outline:1px dashed rgba(0,255,0,.5);}
   ============================================================================ *//* End custom CSS */
/* Start custom CSS *//* ============================================================================
   OFFER DIAGRAM — STYLESHEET v10
   Elementor › Site Settings › Custom CSS.
   DELETE EVERYTHING ODX-RELATED FIRST, then paste this whole file.
   No font rules — typography is entirely in the Elementor panels.

   FIXED FROM v9
   The state rules were less specific than the base rule, so flex-basis never
   left one third and the box never expanded:

     .odx-diagram .odx-row .odx-box   (0,3,0)   flex-basis: 1/3   ← won
     .odx-box.is-open                 (0,2,0)   flex-basis: 100%

   Every state body.elementor-page-1561 below now carries the full three-class prefix, so it
   outranks the base. Where Elementor writes the same property from a panel
   (padding, border-width, width) !important is kept, because Elementor's own
   body.elementor-page-1561 is also three classes and would otherwise tie on source order.

   THREE LAYOUTS
     ≥1025px    three columns, 500px tall, drawer opens to the RIGHT
     721–1024   three columns, 400px tall, drawer opens to the RIGHT
     ≤720px     stacked accordion, natural height, drawer opens DOWNWARD

   STRUCTURE
     odx-diagram
     ├ odx-head             header container
     ├ odx-strokes          HTML widget
     ├ odx-row              ├ odx-box ×3   each: one plain container
     │                      │                    + one odx-detail container
     │                      └ odx-undo     Button widget, ONE per row
     └ odx-strokes--up      HTML widget
     … repeated for rows 2 and 3

   ONE THING TO CHECK IN ELEMENTOR
   Leave the box's Layout › Width field EMPTY. Elementor writes width as an
   inline style, and inline beats !important in a stylesheet — the expansion
   would fail silently.
   ============================================================================ */


/* ============================================================================
   1. TOKENS — the single source of truth
   ============================================================================ */
.odx-diagram{
  /* geometry */
  --box-h      : 500px;     /* fixed box height, wide layouts only          */
  --g          : 26px;      /* gap between boxes                            */
  --col-gap    : 34px;      /* content ↔ drawer gap when open               */
  --split      : 42;        /* % of the open box given to visible content   */
  --head-pad   : clamp(58px, 8.5vw, 94px);

  /* strokes */
  --drop       : 120px;     /* height of each stroke zone                   */
  --stroke-gap : 14px;      /* clearance at each end of every stroke        */
  --w          : 3px;       /* stroke thickness                             */

  /* colour */
  --stroke     : #FFFBF396;
  --glare      : #FFFBF3;
  --active     : #FFFBF3;
  --lit        : #FFFBF3;
  --lit-edge   : #FFFBF3;
  --lit-op     : .22;

  /* timing */
  --dur        : .6s;       /* the width phase                              */
  --reveal     : .45s;      /* the fade that follows it                     */
  --fade       : .5s;       /* stroke transitions                           */
  --ease       : cubic-bezier(.4,.05,.2,1);

  position:relative;
}


/* ============================================================================
   2. HEADERS — position only. Size and colour come from Elementor.
   ============================================================================ */
.odx-diagram .odx-head{
  position:relative;
  z-index:3;
  padding-top:var(--head-pad);
}

.odx-diagram .odx-ghost{
  position:absolute;top:0;left:50%;
  transform:translateX(-50%);
  z-index:0;width:auto;
  pointer-events:none;user-select:none;
  opacity:.33;
  transition:opacity .5s var(--ease);
}
.odx-diagram .odx-head.is-resolved .odx-ghost{opacity:.55;}

.odx-diagram .odx-title,
.odx-diagram .odx-note{position:relative;z-index:1;}


/* ============================================================================
   3. ROWS
   ============================================================================ */
.odx-diagram .odx-row{
  position:relative;
  z-index:1;
  display:flex;
  gap:var(--g);
  transition:gap var(--dur) var(--ease);
}


/* ============================================================================
   4. BOXES — shared by every layout
   ============================================================================ */
.odx-diagram .odx-row .odx-box{
  position:relative;
  z-index:1;
  display:flex !important;
  min-width:0;
  cursor:pointer;
}
.odx-diagram .odx-row .odx-box > *{
  position:relative;
  z-index:1;
  min-height:0;
}


/* ============================================================================
   5. NEIGHBOUR ILLUMINATION
   The bridge marks both neighbours of the hovered box:
     is-lit-l  →  light at this box's LEFT edge  (it sits right of the hover)
     is-lit-r  →  light at this box's RIGHT edge (it sits left of the hover)
   A border, not an inset box-shadow — an inset shadow with an offset paints
   all four sides and wraps around the corners.
   ============================================================================ */
.odx-diagram .odx-row .odx-box::before,
.odx-diagram .odx-row .odx-box::after{
  content:"";
  position:absolute;inset:0;z-index:0;
  border-radius:inherit;
  pointer-events:none;
  opacity:0;
  transition:opacity .28s var(--ease);
}
.odx-diagram .odx-row .odx-box::before{
  background:linear-gradient(90deg,  var(--lit) 0%, transparent 45%);
  border-left:1px solid var(--lit-edge);
}
.odx-diagram .odx-row .odx-box::after{
  background:linear-gradient(270deg, var(--lit) 0%, transparent 45%);
  border-right:1px solid var(--lit-edge);
}
.odx-diagram .odx-row .odx-box.is-lit-l::before,
.odx-diagram .odx-row .odx-box.is-lit-r::after{opacity:var(--lit-op);}
.odx-diagram .odx-row.is-resolved .odx-box::before,
.odx-diagram .odx-row.is-resolved .odx-box::after{opacity:0;}


/* ============================================================================
   6. COLLAPSE BUTTON — one per row, absolutely positioned so it is not a flex
   item and cannot disturb the three-box width arithmetic.
   ============================================================================ */
.odx-diagram .odx-row > .odx-undo{
  position:absolute;
  top:24px;right:26px;
  z-index:5;width:auto;
  opacity:0;pointer-events:none;
  transform:translateY(-4px);
  transition:opacity .3s var(--ease),transform .3s var(--ease);
}
.odx-diagram .odx-row.is-resolved > .odx-undo{
  opacity:1;pointer-events:auto;transform:none;
  transition-delay:calc(var(--dur) * .8);
}
.odx-diagram .odx-box > .odx-undo{display:none;}


/* ============================================================================
   7. WIDE LAYOUT — three columns, fixed height, drawer opens to the RIGHT.
   The whole collapse lives in here, so mobile inherits none of it and has
   nothing to undo.
   ============================================================================ */
@media (min-width:721px){

  .odx-diagram .odx-row{align-items:stretch;}
  .odx-diagram .odx-row.is-resolved{gap:0;}

  /* --- the box --- */
  .odx-diagram .odx-row .odx-box{
    flex-direction:row !important;
    flex-wrap:nowrap;
    align-items:stretch;

    flex-grow:0;
    flex-shrink:0;
    flex-basis:calc((100% - 2 * var(--g)) / 3);

    height:var(--box-h) !important;
    min-height:var(--box-h) !important;
    max-height:var(--box-h) !important;
    overflow:hidden !important;

    transition:flex-basis   var(--dur) var(--ease),
               padding      var(--dur) var(--ease),
               border-width var(--dur) var(--ease),
               opacity      calc(var(--dur) * .5) var(--ease);
  }

  /* full three-class prefix so these outrank the rule above */
  .odx-diagram .odx-row .odx-box.is-open{
    flex-basis:100%;
    column-gap:var(--col-gap);
    cursor:default;
  }
  .odx-diagram .odx-row .odx-box.is-shut{
    flex-basis:0;
    padding-inline:0 !important;
    border-width:0 !important;
    opacity:0;
    pointer-events:none;
  }
  /* a box heading toward zero width would otherwise reflow one word per line,
     and its intrinsic height would drag the row */
  .odx-diagram .odx-row .odx-box.is-shut,
  .odx-diagram .odx-row .odx-box.is-shut *{white-space:nowrap;}

  /* nothing inside may drive the height */
  .odx-diagram .odx-row .odx-box > *{
    max-height:100%;
    overflow:hidden;
  }

  /* --- the split ---
     The visible content takes a fixed share; the drawer GROWS into whatever
     is left. Animating flex-grow rather than flex-basis means any number of
     drawer containers divides the remainder safely and the total can never
     exceed 100%. */
  .odx-diagram .odx-row .odx-box > *:not(.odx-detail):not(.odx-undo){
    order:1;
    flex:0 0 100%;
    min-width:0;
    transition:flex-basis var(--dur) var(--ease);
  }
  .odx-diagram .odx-row .odx-box.is-open > *:not(.odx-detail):not(.odx-undo){
    flex-basis:calc(var(--split) * 1%);
  }

  .odx-diagram .odx-row .odx-box .odx-detail{
    order:2;
    flex-grow:0;
    flex-shrink:1;
    flex-basis:0;
    min-width:0;
    overflow:hidden;
    opacity:0;
    pointer-events:none;
    transition:flex-grow var(--dur)    var(--ease),
               opacity   var(--reveal) var(--ease);
  }
  /* the fade waits out the whole width phase, then runs */
  .odx-diagram .odx-row .odx-box.is-open .odx-detail{
    flex-grow:1;
    opacity:1;
    pointer-events:auto;
    transition-delay:0s, var(--dur);
  }

  .odx-diagram .odx-row .odx-box .odx-detail > *{
    max-height:100%;
    overflow-y:auto;
  }
}


/* ============================================================================
   8. TABLET — same layout, shorter box. 500px across a third of a tablet is a
   very tall, very narrow column.
   ============================================================================ */
@media (min-width:721px) and (max-width:1024px){
  .odx-diagram{
    --box-h   : 400px;
    --g       : 18px;
    --col-gap : 22px;
    --drop    : 90px;
  }
}


/* ============================================================================
   9. MOBILE — a plain accordion. Boxes stay full width, nothing collapses,
   tapping one opens its drawer downward. Height is never fixed here.
   ============================================================================ */
@media (max-width:720px){
  .odx-diagram{
    --drop       : 56px;
    --stroke-gap : 8px;
    --head-pad   : clamp(50px, 17vw, 80px);
  }

  .odx-diagram .odx-row{
    flex-direction:column;
    align-items:stretch;
    gap:18px;
  }

  .odx-diagram .odx-row .odx-box{
    flex-direction:column !important;
    flex:0 0 auto;
    width:100%;
    height:auto;
  }

  /* 0fr → 1fr animates to the content's own height without anyone needing to
     know what that height is */
  .odx-diagram .odx-row .odx-box .odx-detail{
    display:grid !important;
    grid-template-rows:0fr;
    width:100%;
    transition:grid-template-rows var(--dur) var(--ease);
  }
  .odx-diagram .odx-row .odx-box .odx-detail > *{
    overflow:hidden;
    min-height:0;
    opacity:0;
    transition:opacity var(--reveal) var(--ease);
  }
  .odx-diagram .odx-row .odx-box.is-open .odx-detail{grid-template-rows:1fr;}
  .odx-diagram .odx-row .odx-box.is-open .odx-detail > *{
    opacity:1;
    transition-delay:calc(var(--dur) * .6);
  }

  /* neither the illumination nor the branches mean anything in one column */
  .odx-diagram .odx-row .odx-box::before,
  .odx-diagram .odx-row .odx-box::after{display:none;}
  .odx-diagram .odx-branch{display:none;}
  .odx-diagram .odx-spine{left:20px;}
  .odx-diagram .odx-ghost{left:0;transform:none;}

  .odx-diagram .odx-row > .odx-undo{top:14px;right:14px;}
}


/* ============================================================================
   10. STROKES
   ============================================================================ */
.odx-strokes,
.odx-strokes .elementor-widget-container{margin:0;padding:0;}

.odx-strokes-in{
  position:relative;
  width:100%;
  height:var(--drop);
  pointer-events:none;
}
.odx-strokes--up .odx-strokes-in{transform:scaleY(-1);}

/* centre — left:50% of a full-width parent, so it cannot lean */
.odx-spine{
  position:absolute;
  top:var(--stroke-gap);
  bottom:var(--stroke-gap);
  left:50%;
  display:block;
  width:var(--w);
  margin-left:calc(var(--w) / -2);
  background:var(--stroke);
  transition:background  var(--fade) var(--ease),
             box-shadow  var(--fade) var(--ease),
             width       var(--fade) var(--ease),
             margin-left var(--fade) var(--ease);
}

/* branches — the SPAN is positioned, not the svg. An svg is a replaced
   element and is not sized by opposing left/right offsets. */
.odx-branch{
  position:absolute;
  top:var(--stroke-gap);
  bottom:var(--stroke-gap);
  display:block;
  opacity:1;
  transition:opacity var(--fade) var(--ease);
}
.odx-branch--l{ left:calc((100% - 2 * var(--g)) / 6); right:50%; }
.odx-branch--r{ left:50%; right:calc((100% - 2 * var(--g)) / 6); }

.odx-branch svg{display:block;width:100%;height:100%;overflow:visible;}
.odx-branch path{
  fill:none;
  color:var(--stroke);
  stroke:currentColor;
  stroke-width:var(--w);
  stroke-linecap:round;
  transition:color  var(--fade) var(--ease),
             filter var(--fade) var(--ease);
}

.odx-strokes.is-resolved .odx-branch{opacity:0;}
.odx-strokes.is-resolved .odx-spine{
  background:var(--active);
  width:calc(var(--w) * 2);
  margin-left:calc(var(--w) * -1);
  box-shadow:0 0 14px var(--active);
}
.odx-strokes.is-hot-l .odx-branch--l path,
.odx-strokes.is-hot-r .odx-branch--r path{
  color:var(--glare);
  filter:drop-shadow(0 0 8px currentColor);
}
.odx-strokes.is-hot-c .odx-spine{
  background:var(--glare);
  box-shadow:0 0 10px var(--glare);
}


/* ============================================================================
   11. REDUCED MOTION
   ============================================================================ */
@media (prefers-reduced-motion:reduce){
  .odx-diagram{--dur:.001s;--reveal:.001s;--fade:.001s;}
}


/* ============================================================================
   MORE INFO BUTTON — .odx-more
   An Elementor Button widget inside the box's visible container.
   Visible while collapsed, gone once the box opens.
   ============================================================================ */
.odx-diagram .odx-row .odx-box .odx-more{
  opacity:1;
  transform:none;
  pointer-events:none;          /* see note below */
  transition:opacity .3s var(--ease),
             transform .3s var(--ease);
}

.odx-diagram .odx-row .odx-box.is-open .odx-more{
  opacity:0;
  transform:translateY(-6px);
}

@media (min-width:721px){
  .odx-diagram .odx-row .odx-box.is-open > *:not(.odx-detail):not(.odx-undo){
    flex-basis:33%;
  }
}/* End custom CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'CopperplateHighlight';
	font-style: normal;
	font-weight: normal;
	font-display: auto;
	src: url('https://ldxgallery.com/wp-content/uploads/2026/06/Copperplate-Light.ttf') format('truetype');
}
/* End Custom Fonts CSS */