.elementor-17 .elementor-element.elementor-element-2787202{--display:flex;--position:fixed;--min-height:80px;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:center;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;top:0px;--z-index:9999;}body:not(.rtl) .elementor-17 .elementor-element.elementor-element-2787202{left:0px;}body.rtl .elementor-17 .elementor-element.elementor-element-2787202{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-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-17 .elementor-element.elementor-element-126c94e img{width:175px;}.elementor-widget-nav-menu .elementor-nav-menu .elementor-item{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 );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item{color:var( --e-global-color-text );fill:var( --e-global-color-text );}.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:hover,
					.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.elementor-item-active,
					.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.highlighted,
					.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:focus{color:var( --e-global-color-accent );fill:var( --e-global-color-accent );}.elementor-widget-nav-menu .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:before,
					.elementor-widget-nav-menu .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:after{background-color:var( --e-global-color-accent );}.elementor-widget-nav-menu .e--pointer-framed .elementor-item:before,
					.elementor-widget-nav-menu .e--pointer-framed .elementor-item:after{border-color:var( --e-global-color-accent );}.elementor-widget-nav-menu{--e-nav-menu-divider-color:var( --e-global-color-text );}.elementor-widget-nav-menu .elementor-nav-menu--dropdown .elementor-item, .elementor-widget-nav-menu .elementor-nav-menu--dropdown  .elementor-sub-item{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 );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-17 .elementor-element.elementor-element-3905815 > .elementor-widget-container{margin:0px 28px 0px 0px;}.elementor-17 .elementor-element.elementor-element-3905815.elementor-element{--flex-grow:1;--flex-shrink:0;}.elementor-17 .elementor-element.elementor-element-3905815 .elementor-nav-menu .elementor-item{font-family:"Lato", Sans-serif;font-size:13px;font-weight:700;line-height:1.75em;letter-spacing:2px;}.elementor-17 .elementor-element.elementor-element-3905815 .elementor-nav-menu--main .elementor-item{color:var( --e-global-color-880ffa6 );fill:var( --e-global-color-880ffa6 );padding-left:0px;padding-right:0px;padding-top:0px;padding-bottom:0px;}.elementor-17 .elementor-element.elementor-element-3905815{--e-nav-menu-horizontal-menu-item-margin:calc( 48px / 2 );}.elementor-17 .elementor-element.elementor-element-3905815 .elementor-nav-menu--main:not(.elementor-nav-menu--layout-horizontal) .elementor-nav-menu > li:not(:last-child){margin-bottom:48px;}.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-17 .elementor-element.elementor-element-b859f30 .elementor-icon-wrapper{text-align:center;}.elementor-17 .elementor-element.elementor-element-b859f30.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-eb3b023 );}.elementor-17 .elementor-element.elementor-element-b859f30.elementor-view-framed .elementor-icon, .elementor-17 .elementor-element.elementor-element-b859f30.elementor-view-default .elementor-icon{color:var( --e-global-color-eb3b023 );border-color:var( --e-global-color-eb3b023 );}.elementor-17 .elementor-element.elementor-element-b859f30.elementor-view-framed .elementor-icon, .elementor-17 .elementor-element.elementor-element-b859f30.elementor-view-default .elementor-icon svg{fill:var( --e-global-color-eb3b023 );}.elementor-17 .elementor-element.elementor-element-b859f30 .elementor-icon{padding:6px;}.elementor-17 .elementor-element.elementor-element-4a5e3d0{--display:flex;border-style:solid;--border-style:solid;border-width:1px 1px 1px 1px;--border-top-width:1px;--border-right-width:1px;--border-bottom-width:1px;--border-left-width:1px;border-color:#EAEAEA17;--border-color:#EAEAEA17;--padding-top:64px;--padding-bottom:64px;--padding-left:64px;--padding-right:64px;}body:not(.rtl) .elementor-17 .elementor-element.elementor-element-8b102b0{right:64px;}body.rtl .elementor-17 .elementor-element.elementor-element-8b102b0{left:64px;}.elementor-17 .elementor-element.elementor-element-8b102b0{top:64px;}.elementor-17 .elementor-element.elementor-element-8b102b0 .elementor-icon-wrapper{text-align:center;}.elementor-17 .elementor-element.elementor-element-8b102b0.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-880ffa6 );}.elementor-17 .elementor-element.elementor-element-8b102b0.elementor-view-framed .elementor-icon, .elementor-17 .elementor-element.elementor-element-8b102b0.elementor-view-default .elementor-icon{color:var( --e-global-color-880ffa6 );border-color:var( --e-global-color-880ffa6 );}.elementor-17 .elementor-element.elementor-element-8b102b0.elementor-view-framed .elementor-icon, .elementor-17 .elementor-element.elementor-element-8b102b0.elementor-view-default .elementor-icon svg{fill:var( --e-global-color-880ffa6 );}.elementor-17 .elementor-element.elementor-element-8b102b0 .elementor-icon{font-size:32px;}.elementor-17 .elementor-element.elementor-element-8b102b0 .elementor-icon svg{height:32px;}.elementor-17 .elementor-element.elementor-element-c21c5b0.elementor-element{--align-self:flex-start;}.elementor-17 .elementor-element.elementor-element-c21c5b0{text-align:start;}.elementor-17 .elementor-element.elementor-element-c21c5b0 img{width:225px;max-width:225px;}.elementor-widget-divider{--divider-color:var( --e-global-color-secondary );}.elementor-widget-divider .elementor-divider__text{color:var( --e-global-color-secondary );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 );text-transform:var( --e-global-typography-secondary-text-transform );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-widget-divider.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-secondary );}.elementor-widget-divider.elementor-view-framed .elementor-icon, .elementor-widget-divider.elementor-view-default .elementor-icon{color:var( --e-global-color-secondary );border-color:var( --e-global-color-secondary );}.elementor-widget-divider.elementor-view-framed .elementor-icon, .elementor-widget-divider.elementor-view-default .elementor-icon svg{fill:var( --e-global-color-secondary );}.elementor-17 .elementor-element.elementor-element-b97175a{--divider-border-style:solid;--divider-color:#DCC8AA24;--divider-border-width:1px;}.elementor-17 .elementor-element.elementor-element-b97175a .elementor-divider-separator{width:100%;}.elementor-17 .elementor-element.elementor-element-b97175a .elementor-divider{padding-block-start:15px;padding-block-end:15px;}.elementor-17 .elementor-element.elementor-element-79bc761.elementor-element{--align-self:flex-start;}.elementor-17 .elementor-element.elementor-element-79bc761 .elementor-nav-menu--dropdown a, .elementor-17 .elementor-element.elementor-element-79bc761 .elementor-menu-toggle{color:var( --e-global-color-e45b8f2 );fill:var( --e-global-color-e45b8f2 );}.elementor-17 .elementor-element.elementor-element-79bc761 .elementor-nav-menu--dropdown{background-color:#02010100;}.elementor-17 .elementor-element.elementor-element-79bc761 .elementor-nav-menu--dropdown a:hover,
					.elementor-17 .elementor-element.elementor-element-79bc761 .elementor-nav-menu--dropdown a:focus,
					.elementor-17 .elementor-element.elementor-element-79bc761 .elementor-nav-menu--dropdown a.elementor-item-active,
					.elementor-17 .elementor-element.elementor-element-79bc761 .elementor-nav-menu--dropdown a.highlighted,
					.elementor-17 .elementor-element.elementor-element-79bc761 .elementor-menu-toggle:hover,
					.elementor-17 .elementor-element.elementor-element-79bc761 .elementor-menu-toggle:focus{color:var( --e-global-color-accent );}.elementor-17 .elementor-element.elementor-element-79bc761 .elementor-nav-menu--dropdown a:hover,
					.elementor-17 .elementor-element.elementor-element-79bc761 .elementor-nav-menu--dropdown a:focus,
					.elementor-17 .elementor-element.elementor-element-79bc761 .elementor-nav-menu--dropdown a.elementor-item-active,
					.elementor-17 .elementor-element.elementor-element-79bc761 .elementor-nav-menu--dropdown a.highlighted{background-color:#02010100;}.elementor-17 .elementor-element.elementor-element-79bc761 .elementor-nav-menu--dropdown a.elementor-item-active{color:var( --e-global-color-accent );background-color:#02010100;}.elementor-17 .elementor-element.elementor-element-79bc761 .elementor-nav-menu--dropdown .elementor-item, .elementor-17 .elementor-element.elementor-element-79bc761 .elementor-nav-menu--dropdown  .elementor-sub-item{font-family:var( --e-global-typography-becd162-font-family ), Sans-serif;font-size:var( --e-global-typography-becd162-font-size );font-weight:var( --e-global-typography-becd162-font-weight );letter-spacing:var( --e-global-typography-becd162-letter-spacing );}.elementor-17 .elementor-element.elementor-element-79bc761 .elementor-nav-menu--dropdown a{padding-left:0px;padding-right:0px;padding-top:12px;padding-bottom:12px;}.elementor-17 .elementor-element.elementor-element-8f4f10d{--divider-border-style:solid;--divider-color:#DCC8AA24;--divider-border-width:1px;}.elementor-17 .elementor-element.elementor-element-8f4f10d .elementor-divider-separator{width:100%;}.elementor-17 .elementor-element.elementor-element-8f4f10d .elementor-divider{padding-block-start:15px;padding-block-end:15px;}.elementor-17 .elementor-element.elementor-element-2e1b19a{--grid-template-columns:repeat(0, auto);--icon-size:20px;--grid-column-gap:5px;--grid-row-gap:0px;}.elementor-17 .elementor-element.elementor-element-2e1b19a .elementor-widget-container{text-align:left;}.elementor-17 .elementor-element.elementor-element-2e1b19a.elementor-element{--align-self:flex-start;}.elementor-17 .elementor-element.elementor-element-2e1b19a .elementor-social-icon{background-color:#76697300;--icon-padding:10px;border-style:solid;border-width:1px 1px 1px 1px;border-color:#E1DFE059;}.elementor-17 .elementor-element.elementor-element-e014787{--display:flex;--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-17 .elementor-element.elementor-element-562f7f4{--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;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:160px;--padding-bottom:128px;--padding-left:32px;--padding-right:32px;--z-index:5;}.elementor-17 .elementor-element.elementor-element-562f7f4:not(.elementor-motion-effects-element-type-background), .elementor-17 .elementor-element.elementor-element-562f7f4 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-880ffa6 );}.elementor-17 .elementor-element.elementor-element-6bc239f{--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:64px 64px;--row-gap:64px;--column-gap:64px;}.elementor-17 .elementor-element.elementor-element-6bc239f.e-con{--align-self:center;}.elementor-17 .elementor-element.elementor-element-bb9e876{--display:flex;--justify-content:center;}.elementor-17 .elementor-element.elementor-element-bb9e876.e-con{--order:-99999 /* order start hack */;}.elementor-17 .elementor-element.elementor-element-462152c > .elementor-widget-container{margin:-128px 0px -128px 0px;padding:0px 0px 0px 0px;}.elementor-17 .elementor-element.elementor-element-462152c.elementor-element{--align-self:flex-start;}.elementor-17 .elementor-element.elementor-element-592ad81{--display:flex;--justify-content:center;--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-17 .elementor-element.elementor-element-22f61e4{--display:flex;}.elementor-17 .elementor-element.elementor-element-7c550cd{--display:flex;--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-17 .elementor-element.elementor-element-02af2b6{--display:flex;--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-17 .elementor-element.elementor-element-e0e566d{--display:flex;--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-17 .elementor-element.elementor-element-1162f67{--display:flex;}@media(min-width:768px){.elementor-17 .elementor-element.elementor-element-6bc239f{--width:100%;}.elementor-17 .elementor-element.elementor-element-bb9e876{--width:50%;}}@media(min-width:2400px){.elementor-widget-image .widget-image-caption{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-widget-nav-menu .elementor-nav-menu .elementor-item{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-widget-nav-menu .elementor-nav-menu--dropdown .elementor-item, .elementor-widget-nav-menu .elementor-nav-menu--dropdown  .elementor-sub-item{font-size:var( --e-global-typography-accent-font-size );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-widget-divider .elementor-divider__text{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-17 .elementor-element.elementor-element-79bc761 .elementor-nav-menu--dropdown .elementor-item, .elementor-17 .elementor-element.elementor-element-79bc761 .elementor-nav-menu--dropdown  .elementor-sub-item{font-size:var( --e-global-typography-becd162-font-size );letter-spacing:var( --e-global-typography-becd162-letter-spacing );}}@media(max-width:1366px){.elementor-17 .elementor-element.elementor-element-2787202{--padding-top:0px;--padding-bottom:0px;--padding-left:32px;--padding-right:32px;}.elementor-widget-image .widget-image-caption{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-widget-nav-menu .elementor-nav-menu .elementor-item{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-widget-nav-menu .elementor-nav-menu--dropdown .elementor-item, .elementor-widget-nav-menu .elementor-nav-menu--dropdown  .elementor-sub-item{font-size:var( --e-global-typography-accent-font-size );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-widget-divider .elementor-divider__text{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-17 .elementor-element.elementor-element-79bc761 .elementor-nav-menu--dropdown .elementor-item, .elementor-17 .elementor-element.elementor-element-79bc761 .elementor-nav-menu--dropdown  .elementor-sub-item{font-size:var( --e-global-typography-becd162-font-size );letter-spacing:var( --e-global-typography-becd162-letter-spacing );}.elementor-17 .elementor-element.elementor-element-562f7f4{--padding-top:96px;--padding-bottom:96px;--padding-left:32px;--padding-right:32px;}}@media(max-width:1024px){.elementor-widget-image .widget-image-caption{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-widget-nav-menu .elementor-nav-menu .elementor-item{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-widget-nav-menu .elementor-nav-menu--dropdown .elementor-item, .elementor-widget-nav-menu .elementor-nav-menu--dropdown  .elementor-sub-item{font-size:var( --e-global-typography-accent-font-size );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-17 .elementor-element.elementor-element-4a5e3d0{--padding-top:32px;--padding-bottom:32px;--padding-left:32px;--padding-right:32px;}body:not(.rtl) .elementor-17 .elementor-element.elementor-element-8b102b0{right:32px;}body.rtl .elementor-17 .elementor-element.elementor-element-8b102b0{left:32px;}.elementor-17 .elementor-element.elementor-element-8b102b0{top:64px;}.elementor-17 .elementor-element.elementor-element-8b102b0 .elementor-icon{font-size:32px;}.elementor-17 .elementor-element.elementor-element-8b102b0 .elementor-icon svg{height:32px;}.elementor-widget-divider .elementor-divider__text{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-17 .elementor-element.elementor-element-79bc761.elementor-element{--align-self:flex-start;}.elementor-17 .elementor-element.elementor-element-79bc761 .elementor-nav-menu--dropdown .elementor-item, .elementor-17 .elementor-element.elementor-element-79bc761 .elementor-nav-menu--dropdown  .elementor-sub-item{font-size:var( --e-global-typography-becd162-font-size );letter-spacing:var( --e-global-typography-becd162-letter-spacing );}.elementor-17 .elementor-element.elementor-element-79bc761 .elementor-nav-menu--dropdown a{padding-left:0px;padding-right:0px;padding-top:16px;padding-bottom:16px;}}@media(max-width:767px){.elementor-17 .elementor-element.elementor-element-2787202{--min-height:60px;--padding-top:0px;--padding-bottom:0px;--padding-left:20px;--padding-right:20px;}.elementor-widget-image .widget-image-caption{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-17 .elementor-element.elementor-element-126c94e img{width:125px;}.elementor-widget-nav-menu .elementor-nav-menu .elementor-item{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-widget-nav-menu .elementor-nav-menu--dropdown .elementor-item, .elementor-widget-nav-menu .elementor-nav-menu--dropdown  .elementor-sub-item{font-size:var( --e-global-typography-accent-font-size );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-17 .elementor-element.elementor-element-b859f30 .elementor-icon{font-size:24px;}.elementor-17 .elementor-element.elementor-element-b859f30 .elementor-icon svg{height:24px;}.elementor-17 .elementor-element.elementor-element-4a5e3d0{border-width:1px 1px 1px 1px;--border-top-width:1px;--border-right-width:1px;--border-bottom-width:1px;--border-left-width:1px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:32px;--padding-bottom:32px;--padding-left:32px;--padding-right:32px;}body:not(.rtl) .elementor-17 .elementor-element.elementor-element-8b102b0{right:32px;}body.rtl .elementor-17 .elementor-element.elementor-element-8b102b0{left:32px;}.elementor-17 .elementor-element.elementor-element-8b102b0{top:32px;}.elementor-17 .elementor-element.elementor-element-8b102b0 .elementor-icon{font-size:24px;}.elementor-17 .elementor-element.elementor-element-8b102b0 .elementor-icon svg{height:24px;}.elementor-17 .elementor-element.elementor-element-c21c5b0 img{width:200px;max-width:200px;}.elementor-widget-divider .elementor-divider__text{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-17 .elementor-element.elementor-element-b97175a .elementor-divider{padding-block-start:5px;padding-block-end:5px;}.elementor-17 .elementor-element.elementor-element-79bc761 > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-17 .elementor-element.elementor-element-79bc761.elementor-element{--align-self:flex-start;}.elementor-17 .elementor-element.elementor-element-79bc761 .elementor-nav-menu--dropdown .elementor-item, .elementor-17 .elementor-element.elementor-element-79bc761 .elementor-nav-menu--dropdown  .elementor-sub-item{font-size:var( --e-global-typography-becd162-font-size );letter-spacing:var( --e-global-typography-becd162-letter-spacing );}.elementor-17 .elementor-element.elementor-element-79bc761 .elementor-nav-menu--dropdown a{padding-left:0px;padding-right:0px;padding-top:12px;padding-bottom:12px;}.elementor-17 .elementor-element.elementor-element-8f4f10d .elementor-divider{padding-block-start:5px;padding-block-end:5px;}.elementor-17 .elementor-element.elementor-element-2e1b19a{--icon-size:16px;}.elementor-17 .elementor-element.elementor-element-562f7f4{--padding-top:64px;--padding-bottom:64px;--padding-left:20px;--padding-right:20px;}.elementor-17 .elementor-element.elementor-element-6bc239f{--gap:32px 32px;--row-gap:32px;--column-gap:32px;}.elementor-17 .elementor-element.elementor-element-bb9e876.e-con{--order:99999 /* order end hack */;}.elementor-17 .elementor-element.elementor-element-462152c{width:100%;max-width:100%;}.elementor-17 .elementor-element.elementor-element-462152c > .elementor-widget-container{margin:0px 0px 0px 0px;}.elementor-17 .elementor-element.elementor-element-592ad81.e-con{--order:-99999 /* order start hack */;}}/* Start custom CSS for nav-menu, class: .elementor-element-3905815 *//* ═══════════════════════════════════════
   ORGÂNICO COMUNICAÇÃO — MENU
   CSS personalizado do WIDGET DE MENU.
   Aqui  .elementor-17 .elementor-element.elementor-element-3905815  é o próprio widget, então nada disso escapa para
   outros menus da página.

   O cabeçalho é transparente sobre o hero e roxo depois de rolar, então
   os itens são claros o tempo todo — não há troca de cor.
   ═══════════════════════════════════════ */

.elementor-17 .elementor-element.elementor-element-3905815 .elementor-item {
  position: relative;
  font-family: 'Lato', sans-serif;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #f5f5f7 !important;
  transition: color .45s cubic-bezier(.16, 1, .3, 1);
}

/* sublinhado que abre do centro para as laterais */
.elementor-17 .elementor-element.elementor-element-3905815 .elementor-item::after {
  content: '';
  position: absolute;
  bottom: -3px;
  left: 0;
  right: 0;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: center;
  transition: transform .4s cubic-bezier(.16, 1, .3, 1);
}
.elementor-17 .elementor-element.elementor-element-3905815 .elementor-item:hover::after,
.elementor-17 .elementor-element.elementor-element-3905815 .elementor-item.elementor-item-active::after,
.elementor-17 .elementor-element.elementor-element-3905815 .elementor-item.highlighted::after { transform: scaleX(1); }

/* o tema adora repintar <a>: todos os estados travados */
.elementor-17 .elementor-element.elementor-element-3905815 .elementor-item,
.elementor-17 .elementor-element.elementor-element-3905815 .elementor-item:hover,
.elementor-17 .elementor-element.elementor-element-3905815 .elementor-item:focus,
.elementor-17 .elementor-element.elementor-element-3905815 .elementor-item:active,
.elementor-17 .elementor-element.elementor-element-3905815 .elementor-item:visited,
.elementor-17 .elementor-element.elementor-element-3905815 .elementor-item.elementor-item-active,
.elementor-17 .elementor-element.elementor-element-3905815 .elementor-item.highlighted {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  text-decoration: none !important;
  outline: none;
  -webkit-tap-highlight-color: transparent;
}

.elementor-17 .elementor-element.elementor-element-3905815 .elementor-item:focus-visible {
  outline: 2px solid var(--e-global-color-accent, #4f9ecd);
  outline-offset: 4px;
}

/* ── menu aberto no mobile ── */
.elementor-17 .elementor-element.elementor-element-3905815 .elementor-nav-menu--dropdown {
  background: var(--e-global-color-primary, #393166);
}
.elementor-17 .elementor-element.elementor-element-3905815 .elementor-nav-menu--dropdown .elementor-item,
html.og-scrolled .elementor-17 .elementor-element.elementor-element-3905815 .elementor-nav-menu--dropdown .elementor-item {
  color: #f5f5f7 !important;
  font-size: 16px;
  letter-spacing: .04em;
}
.elementor-17 .elementor-element.elementor-element-3905815 .elementor-nav-menu--dropdown .elementor-item::after { display: none; }

@media (prefers-reduced-motion: reduce) {
  .elementor-17 .elementor-element.elementor-element-3905815 .elementor-item,
  .elementor-17 .elementor-element.elementor-element-3905815 .elementor-item::after { transition-duration: .001ms !important; }
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-d1117de *//* ═══════════════════════════════════════
   ORGÂNICO COMUNICAÇÃO — BOTÃO DO CABEÇALHO
   CSS personalizado do widget do botão.

   O cabeçalho é roxo do começo ao fim, então o botão é PAPEL cheio com
   texto roxo o tempo todo. No hover o preenchimento SAI pelo topo com a
   aresta diagonal e sobra o vazado — o inverso do botão do hero.
   ═══════════════════════════════════════ */

.elementor-17 .elementor-element.elementor-element-d1117de .og-cta {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  gap: 11px;
  padding: 12px 12px 12px 24px;
  border: 1px solid transparent;
  border-radius: 100px;
  background: transparent;
  font-family: 'Lato', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  line-height: 1;
  white-space: nowrap;
  box-shadow: none;
  transition: transform .45s cubic-bezier(.16,1,.3,1),
              border-color .45s cubic-bezier(.16,1,.3,1);
}

.elementor-17 .elementor-element.elementor-element-d1117de .og-cta:link,
.elementor-17 .elementor-element.elementor-element-d1117de .og-cta:visited,
.elementor-17 .elementor-element.elementor-element-d1117de .og-cta:hover,
.elementor-17 .elementor-element.elementor-element-d1117de .og-cta:focus,
.elementor-17 .elementor-element.elementor-element-d1117de .og-cta:active { text-decoration: none !important; }

/* preenchimento: papel sobre o hero, roxo depois de rolar */
.elementor-17 .elementor-element.elementor-element-d1117de .og-cta::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  background: #f5f5f7;
  clip-path: polygon(0% -20%, 100% 0%, 100% 100%, 0% 100%);
  transition: clip-path .62s cubic-bezier(.76,0,.24,1), background .45s ease;
}
/* no hover o preenchimento sai pelo topo e sobra o vazado */
.elementor-17 .elementor-element.elementor-element-d1117de .og-cta:hover::before,
.elementor-17 .elementor-element.elementor-element-d1117de .og-cta:focus-visible::before {
  clip-path: polygon(0% -120%, 100% -100%, 100% 0%, 0% -20%);
}
.elementor-17 .elementor-element.elementor-element-d1117de .og-cta:hover,
.elementor-17 .elementor-element.elementor-element-d1117de .og-cta:focus-visible {
  transform: translateY(-2px);
  border-color: #f5f5f7;
}

/* rolo do rótulo: o de cima sai, o de baixo entra já na cor certa */
.elementor-17 .elementor-element.elementor-element-d1117de .og-cta__l { display: block; position: relative; overflow: hidden; }
.elementor-17 .elementor-element.elementor-element-d1117de .og-cta__l > span {
  display: block;
  color: var(--e-global-color-primary, #393166);
  transition: transform .62s cubic-bezier(.76,0,.24,1), color .45s ease;
}
.elementor-17 .elementor-element.elementor-element-d1117de .og-cta__l > span:nth-child(2) { position: absolute; top: 100%; left: 0; color: #f5f5f7; }
.elementor-17 .elementor-element.elementor-element-d1117de .og-cta:hover .og-cta__l > span,
.elementor-17 .elementor-element.elementor-element-d1117de .og-cta:focus-visible .og-cta__l > span { transform: translateY(-100%); }

.elementor-17 .elementor-element.elementor-element-d1117de .og-cta i {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid transparent;
  background: var(--e-global-color-accent, #4f9ecd);
  color: #fff;
  display: grid;
  place-items: center;
  flex: none;
  transition: transform .55s cubic-bezier(.76,0,.24,1), background .5s ease,
              color .5s ease, border-color .5s ease;
}
.elementor-17 .elementor-element.elementor-element-d1117de .og-cta:hover i,
.elementor-17 .elementor-element.elementor-element-d1117de .og-cta:focus-visible i {
  transform: translateX(4px);
  background: transparent;
  border-color: #f5f5f7;
  color: #f5f5f7;
}

.elementor-17 .elementor-element.elementor-element-d1117de .og-cta:focus-visible {
  outline: 2px solid var(--e-global-color-accent, #4f9ecd);
  outline-offset: 3px;
}

@media (max-width: 767px) {
  .elementor-17 .elementor-element.elementor-element-d1117de .og-cta { padding: 10px 10px 10px 18px; font-size: 11px; }
  .elementor-17 .elementor-element.elementor-element-d1117de .og-cta i { width: 28px; height: 28px; }
}

@media (prefers-reduced-motion: reduce) {
  .elementor-17 .elementor-element.elementor-element-d1117de .og-cta,
  .elementor-17 .elementor-element.elementor-element-d1117de .og-cta::before,
  .elementor-17 .elementor-element.elementor-element-d1117de .og-cta__l > span,
  .elementor-17 .elementor-element.elementor-element-d1117de .og-cta i { transition-duration: .001ms !important; }
  .elementor-17 .elementor-element.elementor-element-d1117de .og-cta:hover { transform: none; }
}/* End custom CSS */
/* Start custom CSS for icon, class: .elementor-element-8b102b0 */.elementor-17 .elementor-element.elementor-element-8b102b0{
    
    cursor: pointer;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-4a5e3d0 *//* ═══════════════════════════════════════
   ORGÂNICO COMUNICAÇÃO — POPUP
   Configurações do site → CSS personalizado, abaixo do hero.css
   Só entrada e saída. Formatação é no Elementor.
     gatilho   .open-popup
     painel    #popup-overlay
     fechar    #close-button
   ═══════════════════════════════════════ */

body.popup-open {
  overflow: hidden !important;
}

/* ── PAINEL ──
   Revelação por clip-path em diagonal, não por deslizamento.
   O conteúdo fica parado e a máscara passa por cima, o que dá
   leitura de cortina em vez de gaveta empurrada. A aresta de cima
   chega 22% antes da de baixo, e é isso que cria a diagonal. */
#popup-overlay {
  position: fixed;
  top: 0;
  right: 0;
  width: 30vw;
  height: 100vh;
  height: 100svh;
  z-index: 999;
  background: rgba(57, 49, 102, .97);
  -webkit-backdrop-filter: blur(20px);
          backdrop-filter: blur(20px);
  display: flex;
  justify-content: center;
  align-items: center;
  visibility: hidden;
  will-change: clip-path;
  clip-path: polygon(100% 0, 100% 0, 122% 100%, 122% 100%);
  transition:
    clip-path  .9s cubic-bezier(.76, 0, .24, 1),
    visibility .9s;
}
#popup-overlay.active {
  visibility: visible;
  clip-path: polygon(-22% 0, 100% 0, 100% 100%, -22% 100%);
}
#popup-overlay.closing {
  visibility: hidden;
  clip-path: polygon(100% 0, 100% 0, 122% 100%, 122% 100%);
  transition:
    clip-path  .55s cubic-bezier(.76, 0, .24, 1),
    visibility .55s;
}

/* ── ITENS ──
   Sobem em cascata depois que a cortina passa.
   Mexe só em opacidade e deslocamento, nada de formatação. */
#popup-overlay .elementor-widget {
  opacity: 0;
  transform: translateY(18px);
  transition:
    opacity   .65s cubic-bezier(.16, 1, .3, 1),
    transform .65s cubic-bezier(.16, 1, .3, 1);
}
#popup-overlay.active .elementor-widget {
  opacity: 1;
  transform: none;
}
#popup-overlay.active .elementor-widget:nth-child(1) { transition-delay: .34s; }
#popup-overlay.active .elementor-widget:nth-child(2) { transition-delay: .41s; }
#popup-overlay.active .elementor-widget:nth-child(3) { transition-delay: .48s; }
#popup-overlay.active .elementor-widget:nth-child(4) { transition-delay: .55s; }
#popup-overlay.active .elementor-widget:nth-child(5) { transition-delay: .62s; }
#popup-overlay.active .elementor-widget:nth-child(6) { transition-delay: .69s; }
#popup-overlay.active .elementor-widget:nth-child(7) { transition-delay: .76s; }
#popup-overlay.active .elementor-widget:nth-child(8) { transition-delay: .83s; }

/* Na saída todos vão juntos e rápido, senão a cascata invertida
   segura a cortina e a animação parece travada.
   O :nth-child(n) existe só para empatar a especificidade com as
   regras de cascata acima. */
#popup-overlay.closing .elementor-widget:nth-child(n) {
  opacity: 0;
  transform: translateY(8px);
  transition-duration: .22s;
  transition-delay: 0s;
}

/* ── LARGURA ── */
@media (max-width: 1280px) { #popup-overlay { width: 40vw; } }
@media (max-width: 1024px) { #popup-overlay { width: 60vw; } }
@media (max-width: 767px)  { #popup-overlay { width: 85vw; } }

@media (prefers-reduced-motion: reduce) {
  #popup-overlay,
  #popup-overlay.closing,
  #popup-overlay .elementor-widget {
    transition-duration: .001ms !important;
    transition-delay: 0s !important;
  }
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-2787202 *//* ═══════════════════════════════════════
   ORGÂNICO COMUNICAÇÃO — HEADER
   CSS personalizado do CONTAINER FIXO.
   O container precisa ter a classe  header-menu
   (o JS procura por ela para aplicar .scrolled).
   ═══════════════════════════════════════ */

.elementor-17 .elementor-element.elementor-element-2787202 {
  background: transparent;
  /* backdrop-filter fica FORA da transição: animar desfoque obriga o
     navegador a refazer o borrão a cada quadro, e este cabeçalho fica
     visível a página inteira. A propriedade continua, só não transiciona. */
  transition: background .4s var(--og-ease, cubic-bezier(.16, 1, .3, 1)),
              box-shadow .4s var(--og-ease, cubic-bezier(.16, 1, .3, 1));
}

/* Overlay de fundo do Elementor vira um ::before opaco POR CIMA do
   background — causa nº 1 de "o cabeçalho não muda de cor". */
.elementor-17 .elementor-element.elementor-element-2787202 > .elementor-background-overlay { display: none !important; }

/* Transparente sobre o hero e ROXO depois de rolar. O cabeçalho não
   muda de cor com o fundo da página: ele mantém a cor da marca do
   começo ao fim, e os itens continuam claros o tempo todo. */
.elementor-17 .elementor-element.elementor-element-2787202.scrolled {
  background: rgba(57, 49, 102, .94);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  box-shadow: 0 10px 30px -18px rgba(33, 28, 60, .55);
}

/* Logo encolhe ao rolar */
.elementor-17 .elementor-element.elementor-element-2787202 .elementor-widget-theme-site-logo img,
.elementor-17 .elementor-element.elementor-element-2787202 .elementor-widget-image img {
  transition: transform .4s var(--og-ease, cubic-bezier(.16, 1, .3, 1));
  transform-origin: left center;
}
.elementor-17 .elementor-element.elementor-element-2787202.scrolled .elementor-widget-theme-site-logo img,
.elementor-17 .elementor-element.elementor-element-2787202.scrolled .elementor-widget-image img { transform: scale(.9); }

@media (prefers-reduced-motion: reduce) {
  .elementor-17 .elementor-element.elementor-element-2787202,
  .elementor-17 .elementor-element.elementor-element-2787202 .elementor-widget-image img,
  .elementor-17 .elementor-element.elementor-element-2787202 .elementor-widget-theme-site-logo img { transition: none !important; }
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-2034f64 *//* ═══════════════════════════════════════════════════════════
   ORGÂNICO COMUNICAÇÃO — HERO
   Configurações do site → CSS personalizado.
   Tudo escopado em #hero-organico para não vazar no tema.
   ═══════════════════════════════════════════════════════════ */

/* O widget HTML do Elementor corta por padrão. Sem isto o selo, que é
   absoluto e sai da caixa, some. */
.elementor-widget-html{overflow:visible !important}

/* O cabeçalho entra no FIM da coreografia, e quem comanda é o JS.
   A regra abaixo é só o estado inicial. */
/* ⚠ Só opacidade, sem transform: quem posiciona é o GSAP. Um transform
   aqui competiria com o inline dele e, se a cena falhasse, o cabeçalho
   ficaria fora da tela. */
html.og-cena .header-menu{opacity:0}

/* Âncora não para embaixo do cabeçalho fixo, sem depender de JS. */
[id]{scroll-margin-top:calc(var(--og-head-h, 80px) + 24px)}

/* Lenis precisa destas três linhas para o scroll suave não brigar com
   scroll-behavior do tema. */
.lenis.lenis-smooth{scroll-behavior:auto !important}
.lenis.lenis-stopped{overflow:hidden}
html{scrollbar-gutter:stable}
/* A folha do hero sangra para fora da seção — de propósito. Quem
   segura a rolagem lateral é o documento, não o hero. clip e não
   hidden: hidden quebraria position:sticky mais adiante. */
html{overflow-x:clip}

/* Revelação ao entrar na tela — classe og-rv em qualquer widget do
   Elementor (campo Avançado → Classes CSS). Atraso opcional por --d.
   data-og-split faz a mesma coisa palavra a palavra.

   O desfoque de entrada segue a mesma escala dos planos de
   profundidade: --b vale plano × 2px e é escrito pelo JS. Quem está
   no plano 0 entra sem desfoque, só subindo. */
.og-rv{opacity:0;transform:translateY(26px);
  transition:opacity 1.05s cubic-bezier(.16,1,.3,1) var(--d,0s),
             transform 1.05s cubic-bezier(.16,1,.3,1) var(--d,0s),
             filter .75s cubic-bezier(.16,1,.3,1) var(--d,0s)}
.og-rv.in{opacity:1;transform:none}

/* ⚠ O desfoque vive em classe SEPARADA, aplicada pelo JS só a quem tem
   plano maior que zero, e some para `none` ao revelar. Motivo: qualquer
   filter diferente de none — inclusive blur(0px) — cria bloco de
   contenção e faz position:fixed de qualquer filho passar a se referir
   a este elemento em vez da janela. Foi o que quebrou o cursor do
   vídeo quando o blur estava dentro de .og-rv. */
.og-rvb{filter:blur(var(--b,0px))}
.og-rvb.in{filter:none}

/* Grupo: o container recebe data-og-grupo e o JS revela os filhos em
   cascata, sem precisar escrever --d um por um. */
[data-og-grupo] > *{opacity:0}
.og-w{display:inline-block;opacity:0;transform:translateY(.45em);
  transition:opacity .85s cubic-bezier(.16,1,.3,1),transform .85s cubic-bezier(.16,1,.3,1)}
.og-w.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.og-rv,.og-w{opacity:1 !important;transform:none !important}}

#hero-organico{
  /* --- cores ---
     Hero em roxo cheio, fazendo par com o contato: a página clara fica
     entre os dois. --bg é o tom MÉDIO do gradiente, não o gradiente:
     ele é a cor com que o selo é pintado para sumir fora das fotos. */
  --roxo:  var(--e-global-color-primary,   #393166);
  --bg:    #332c5e;
  --fg:    #f5f5f7;

  --hair:  rgba(255,255,255,.26);
  /* Cores escolhidas pela cliente no painel:
       headline ....... papel
       subtítulo ...... cinza da logo
       frase final .... cinza da logo
       seta do botão .. azul */
  --azul:  var(--e-global-color-accent, #82bfe8);
  --cinza: #d6dbdf;
  /* ponte: sombra em baixo-relevo */
  --pn:       rgba(16,12,38,.20);
  --ponte:    url('https://organicocomunicacao.com.br/wp-content/uploads/2026/08/ponte-final.svg');
  --pn-tam:   108% auto;
  --pn-pos:   -4% 14%;
  /* 14% para baixo: a ponte nasce mais baixa e sobra estrutura abaixo
     da dobra. Sem essa folga, o deslize do scroll levanta a base e ela
     parece flutuar. */
  --container:1280px;
  --gutter:32px;
  /* altura do cabeçalho: 80px no desktop, 60px no mobile.
     O JS remede e sobrescreve em --og-head-h se o cabeçalho for
     sobreposto; se estiver no fluxo, escreve 0. Estes valores são o
     primeiro paint, antes da medição. */
  --navh:var(--og-head-h, 80px);
  --raio:48px;
  --ease:cubic-bezier(.16,1,.3,1);

  /* --- pilha de fotos --- */
  --cw:clamp(230px,25vw,340px);      /* largura da carta da frente */

  /* --- tipografia do display --- */

  /* --- carrossel --- */

  --folha:url("https://organicocomunicacao.com.br/wp-content/uploads/2026/08/folha-organico.svg");

  position:relative;
  /* 100svh mais o raio: os cantos arredondados ficam logo abaixo da
     dobra, então a primeira tela é toda reta. O padding de baixo devolve
     essa altura extra, para o conteúdo continuar centrado no que se vê. */
  min-height:calc(100svh + var(--raio));
  display:flex;
  flex-direction:column;
  justify-content:center;          /* centro exato do espaço abaixo da nav */
  padding-block:var(--navh) var(--raio);
  /* só os cantos de baixo: o hero e o contato são os dois blocos roxos
     da página, e arredondar as bordas internas faz a parte clara se
     encaixar entre eles em vez de ser cortada por duas faixas retas */
  border-radius:0 0 var(--raio) var(--raio);
  overflow:clip;   /* corta os pés da ponte na borda de baixo */
  /* sem clip: a folha precisa atravessar para a seção seguinte.
     O z-index põe o hero acima das seções de baixo, que têm fundo
     opaco e cobririam a folha. */
  z-index:2;
  color:var(--fg);
  /* Lavagem de roxo no alto à esquerda, caindo para o cinza da logo no
     canto oposto — mesma ideia dos stories, em dose bem menor.
     Os dois números para calibrar são as opacidades: .13 do roxo e .7
     do cinza. Acima de .18 o roxo deixa de ser fundo e vira cor. */
  /* Mesma diagonal do contato, invertida: o tom mais claro fica no alto
     à esquerda, onde nasce a headline, e escurece descendo. */
  background:var(--bg);
  background-image:
    linear-gradient(168deg, var(--roxo) 0%, #332c5e 56%, #241f45 100%);
  font-family:'Lato',sans-serif;
}
@media(max-width:767px){ #hero-organico{ --gutter:20px; --navh:var(--og-head-h, 60px); --raio:24px } }

#hero-organico *{box-sizing:border-box}
#hero-organico img{display:block;max-width:100%}
#hero-organico a{text-decoration:none;color:inherit}

/* Container. O conteúdo trava em 1280 nas telas largas e vira
   "largura da tela menos o gutter" nas estreitas.
   ⚠ border-box e max-width somando o gutter, NÃO content-box: com
   content-box, width:100% + padding faz a caixa medir 100% + 40px e
   transbordar para a direita — o conteúdo inteiro sai do eixo e o
   filete passa da margem. */
#hero-organico .og-inner{
  box-sizing:border-box;
  width:100%;
  max-width:calc(var(--container) + 2 * var(--gutter));
  margin-inline:auto;
  padding-inline:var(--gutter);
  position:relative;z-index:3;
}

/* ---------- PONTE ----------
   Arquivo SVG externo, entrando por MÁSCARA e não como imagem: a
   máscara usa só a silhueta do arquivo, e quem pinta é o background.
   Duas vantagens: a cor é nossa (o arquivo é preto e sobre roxo ficaria
   preto mesmo) e trocar o desenho é trocar o arquivo no servidor.

   ⚠ O espelho mora no PALCO e não na ponte: o GSAP reescreve o
   transform da ponte a cada quadro e apagaria um scaleX declarado lá. */
#hero-organico .og-palco{
  position:absolute;inset:0;
  z-index:0;pointer-events:none;
  transform:scaleX(-1);
  perspective:1600px;
  perspective-origin:44% 46%;
}
#hero-organico .og-ponte{
  position:absolute;inset:0;
  background:var(--pn);
  -webkit-mask:var(--ponte) var(--pn-pos) / var(--pn-tam) no-repeat;
          mask:var(--ponte) var(--pn-pos) / var(--pn-tam) no-repeat;
  will-change:transform,clip-path;
}
@media(max-width:900px){
  #hero-organico .og-palco{opacity:.5}
  #hero-organico .og-ponte{--pn-tam:auto 100%;--pn-pos:65% 65%}
}

/* ---------- TEXTO ---------- */
#hero-organico .og-col{padding-right:calc(var(--cw) + clamp(46px,5.5vw,96px))}

/* Corpo muito menor e caixa baixa: em Black e 115px a headline lia
   como anúncio. Primeira linha em peso normal, segunda em bold — a
   estrutura da referência aprovada. */
#hero-organico .og-h1{
  margin:0;
  font-size:clamp(1.9rem,3.9vw,3.4rem);
  font-weight:400;line-height:1.14;letter-spacing:-.03em;
  color:var(--fg);text-wrap:balance;
}
#hero-organico .og-forte > span{font-weight:700}
#hero-organico .og-line{display:block;overflow:hidden}
#hero-organico .og-line > span{
  display:block;
}
/* ⚠ Só opacidade aqui, e nada de transform: quem posiciona as linhas é
   o GSAP, com from(). Um transform declarado no CSS competiria com o
   inline do GSAP e, se a cena falhasse, deixaria a headline escondida
   para sempre. */
html.og-cena #hero-organico .og-line > span{opacity:0}

/* ⚠ Sem opacidade. Cor lavada por opacity vira um tom sujo e
   imprevisível; o que segura é o valor cheio. */
#hero-organico .og-sub{
  margin:clamp(16px,1.8vw,24px) 0 0;
  font-size:clamp(15px,1.5vw,17px);line-height:1.7;
  color:var(--cinza);max-width:44ch;text-wrap:pretty;
}

/* Abaixo do filete ficam só o botão, à esquerda, e o selo, à direita.
   A terceira frase saiu — a headline e o subtítulo já dizem o que
   precisa, e ela virava um terceiro bloco de texto no mesmo tom. */
#hero-organico .og-foot{
  --selo:clamp(84px,8vw,120px);
  /* O respiro do topo é calculado, não escolhido: ele precisa ser
     grande o bastante para a metade de cima do selo caber abaixo do
     filete. Metade do selo, menos a metade da altura do botão, mais
     14px de folga. */
  --pt:max(26px, calc(var(--selo) / 2 - 26px + 14px));
  margin-top:clamp(34px,5.5vw,68px);padding-top:var(--pt);
  position:relative;z-index:5;
  display:flex;align-items:center;
  min-height:calc(var(--pt) + 26px + var(--selo) / 2);
}
#hero-organico .og-foot::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;background:var(--hair);
  transform-origin:left center;
  /* o GSAP anima --fil no .og-foot e o pseudo lê aqui: pseudo-elemento
     não se anima direto */
  transform:scaleX(var(--fil,1));
}


/* botão — preenchimento sobe com aresta diagonal e o rótulo rola.
   Curva .76,0,.24,1 nas duas coisas: é a mesma do popup, então a
   página inteira fala o mesmo dialeto de movimento. */
/* Branco cheio, e não vazado: sobre o desenho da ponte um botão só de
   contorno se perdia no meio das linhas. */
/* ⚠ Altura e alinhamento fixos, e nenhuma transição de transform.

@media(prefers-reduced-motion:reduce){
}


/* botão — preenchimento branco cheio que sai pelo topo com a aresta
   diagonal no hover, e o rótulo rola. Curva .76,0,.24,1 nas duas
   coisas: é a mesma do popup, então a página fala o mesmo dialeto.

   ⚠ Altura fixa e nenhuma transição de transform: o botão muda de cor
   e de recorte, nunca de caixa. */
#hero-organico .og-ghost{
  position:relative;isolation:isolate;overflow:hidden;
  display:inline-flex;align-items:center;gap:16px;white-space:nowrap;
  flex:none;
  height:52px;box-sizing:border-box;
  border:1px solid transparent;color:var(--roxo);border-radius:100px;
  padding:0 7px 0 24px;
  font-size:12px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;
  transition:border-color .5s var(--ease);
}
#hero-organico .og-ghost::before{
  content:'';position:absolute;inset:0;z-index:-1;border-radius:inherit;
  background:var(--fg);
  clip-path:polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  transition:clip-path .62s cubic-bezier(.76,0,.24,1);
}
#hero-organico .og-ghost:hover::before,
#hero-organico .og-ghost:focus-visible::before{
  clip-path:polygon(0% -118%, 100% -100%, 100% 0%, 0% -18%);
}
#hero-organico .og-ghost:hover,
#hero-organico .og-ghost:focus-visible{border-color:var(--fg)}

/* rolo do rótulo: o de cima sai, o de baixo entra já na cor nova */
#hero-organico .og-ghost__l{display:block;position:relative;overflow:hidden;height:1.2em;line-height:1.2}
#hero-organico .og-ghost__l > span{
  display:block;
  transition:transform .62s cubic-bezier(.76,0,.24,1);
}
#hero-organico .og-ghost__l > span:nth-child(2){
  position:absolute;top:100%;left:0;color:var(--fg);
}
#hero-organico .og-ghost:hover .og-ghost__l > span,
#hero-organico .og-ghost:focus-visible .og-ghost__l > span{transform:translateY(-100%)}

/* a seta é o único ponto de cor do botão: círculo azul cheio sobre o
   papel, invertendo no hover junto com o resto */
#hero-organico .og-ghost i{
  width:36px;height:36px;border-radius:50%;display:grid;place-items:center;text-decoration:none;
  border:1px solid transparent;background:var(--azul);color:#fff;
  transform:rotate(-45deg);
  transition:transform .55s var(--ease),background .5s var(--ease),
              border-color .5s var(--ease),color .5s var(--ease);
}
#hero-organico .og-ghost:hover i,
#hero-organico .og-ghost:focus-visible i{
  transform:rotate(0deg);
  background:transparent;border-color:var(--hair);color:var(--fg);
}
#hero-organico .og-ghost:focus-visible{outline:2px solid #82bfe8;outline-offset:3px}

@media(prefers-reduced-motion:reduce){
  #hero-organico .og-ghost::before,
  #hero-organico .og-ghost__l > span,
  #hero-organico .og-ghost i{transition-duration:.001ms}
}

/* ---------- ESTADO INICIAL DA COREOGRAFIA ----------
   A classe og-cena é posta no <html> por um script curto dentro do
   próprio widget, antes da primeira pintura. Se o JS não rodar, a
   classe nunca aparece e a página se comporta como se não houvesse
   animação nenhuma — nada some. */
/* o filete nasce com --fil:0 para não piscar: sem isto ele é o único
   elemento visível no primeiro quadro, antes de a cena assumir */
html.og-cena #hero-organico .og-foot{--fil:0}
html.og-cena #hero-organico .og-sub,
html.og-cena #hero-organico .og-ghost,
html.og-cena #hero-organico .og-seal{opacity:0}
html.og-cena #hero-organico .og-ponte{opacity:0}
html.og-cena #hero-organico .og-card{opacity:0}
html.og-cena #hero-organico .og-stack{--halo:0}


/* ---------- PILHA ----------
   Carrossel em profundidade: as cartas ocupam a mesma célula e trocam
   de slot por classe (.s0 a .s4), escritas pelo JS.

   ⚠ ATMOSFERA — três camadas que fazem a pilha pertencer à cena em vez
   de pousar sobre o roxo:
   1 · um halo radial atrás dela, que finge luz vindo do fundo;
   2 · as bordas da carta da frente se dissolvendo no topo e no pé;
   3 · um véu roxo suave por cima, tirando a foto do lugar de "único
       ponto de cor solto na tela".
   As três são discretas de propósito: juntas somam presença, e
   qualquer uma delas sozinha em dose alta apaga a foto. */
#hero-organico .og-stack{
  position:absolute;top:50%;right:var(--gutter);
  transform:translateY(-50%);
  width:var(--cw);height:calc(var(--cw) * 1.5);
  perspective:1500px;
  z-index:4;
}
/* 1 · halo: luz difusa saindo de trás da pilha.
   ⚠ A opacidade é lida de --halo, não fixa: o halo é pseudo-elemento e
   não se anima direto, e sem estado inicial ele acenderia sozinho no
   primeiro quadro, antes das cartas existirem. O GSAP move a variável
   no .og-stack e o pseudo lê aqui. */
#hero-organico .og-stack::before{
  content:'';position:absolute;z-index:-1;pointer-events:none;
  inset:-38% -32%;
  opacity:var(--halo,1);
  background:radial-gradient(closest-side,
    rgba(255,255,255,.09), rgba(255,255,255,.03) 55%, transparent 78%);
}
#hero-organico .og-deck{position:absolute;inset:0;transform-style:preserve-3d}

#hero-organico .og-card{
  position:absolute;inset:0;
  border-radius:14px;overflow:hidden;
  background:#2a2450;
  box-shadow:0 30px 68px rgba(12,9,30,.36);
  transition:transform .9s var(--ease),opacity .9s var(--ease),filter .9s var(--ease);
  cursor:pointer;
}
#hero-organico .og-card img{width:100%;height:100%;object-fit:cover;display:block}
/* 2 · as bordas se dissolvem: a carta emerge do fundo em vez de ser
   recortada contra ele */
#hero-organico .og-card{
  -webkit-mask:linear-gradient(to bottom,
    transparent 0%, #000 6%, #000 91%, transparent 100%);
          mask:linear-gradient(to bottom,
    transparent 0%, #000 6%, #000 91%, transparent 100%);
}
/* 3 · véu roxo e degradê do rótulo, na mesma camada */
#hero-organico .og-card::after{
  content:'';position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(to top, rgba(12,9,30,.52), transparent 44%),
    linear-gradient(rgba(57,49,102,.16), rgba(57,49,102,.16));
}
#hero-organico .og-card b{
  position:absolute;left:18px;bottom:9%;z-index:2;
  font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.6);
}

/* slots: a da frente e as quatro atrás, recuando e escurecendo */
#hero-organico .s0{transform:translate3d(0,0,0) rotate(0)}
#hero-organico .s1{transform:translate3d(-11%,-9%,-160px) rotate(-7deg);filter:brightness(.9)}
#hero-organico .s2{transform:translate3d(6%,-18%,-320px) rotate(6deg); filter:brightness(.82) saturate(.9);opacity:.85}
#hero-organico .s3{transform:translate3d(-4%,-26%,-500px) rotate(-4deg);filter:brightness(.74) saturate(.82);opacity:.6}
#hero-organico .s4{transform:translate3d(3%,-32%,-660px) rotate(5deg);  filter:brightness(.68) saturate(.78);opacity:.38}

/* ---------- SELO ---------- */
/* ⚠ O selo é filho da FILEIRA do rodapé, não do container: é assim que
   ele fica na mesma altura da frase e do botão sem depender de conta em
   pixel. Absoluto, então não empurra ninguém — quem abre espaço para
   ele é o padding-right da fileira. */
/* ⚠ O centro do selo alinha com o centro do BOTÃO, não com o da
   fileira. Como a fileira tem altura mínima igual à do selo e o botão
   tem 52px, centrar na fileira deixava os dois desencontrados — e o
   selo, sendo maior, encostava no filete.
   A conta: metade da altura do botão, contada a partir do topo do
   conteúdo da fileira. */
#hero-organico .og-seal{
  position:absolute;z-index:20;pointer-events:none;
  right:0;top:calc(var(--pt) + 26px);
  transform:translateY(-50%);
  width:var(--selo);aspect-ratio:1;color:var(--fg);
}
#hero-organico .og-seal svg{width:100%;height:100%;animation:ogSpin 26s linear infinite}
/* O texto dá a volta INTEIRA no anel: o textLength no HTML vale a
   circunferência (465 unidades) e o lengthAdjust distribui a sobra
   entre as letras. Sem isso o texto ocupava 385 e deixava um vão de 80
   unidades sem nada — o anel lia como incompleto.
   ⚠ Por isso o tracking sai daqui: quem espaça as letras agora é o
   textLength, e os dois juntos brigariam. */
#hero-organico .og-seal text{
  font-family:'Lato',sans-serif;font-size:13.4px;font-weight:700;
  text-transform:uppercase;fill:currentColor;
}
/* ⚠ 48.75% e não 50%, e isto é de propósito.

   O caminho do anel é um círculo em 100,100 — o meio exato. Mas o que
   se enxerga não é o caminho, é a TINTA das letras, e ela não fica
   centrada nele: medindo o desenho renderizado, o conjunto do texto
   assenta 1,25% acima do centro da caixa. Com o disco em 50% ele fica
   geometricamente certo e visualmente baixo.

   Este valor é calibragem óptica, não conta. Mexer no corpo do texto
   do selo ou trocar a fonte pede reconferir.
   Para voltar ao centro geométrico: 50%. */
#hero-organico .og-seal-core{
  position:absolute;left:50%;top:48.75%;transform:translate(-50%,-50%);
  /* disco cheio, não só contorno: com o selo em papel, o miolo vazado
     deixava passar a foto e o roxo, e lia como um furo */
  width:40%;aspect-ratio:1;border-radius:50%;background:currentColor;
  display:grid;place-items:center;
}
/* A folha é centrada pela CAIXA do desenho, que é o certo para arte de
   contorno: o olho lê o contorno, não a massa de tinta.

   ⚠ Ela é assimétrica por natureza — a nervura central e os três
   traços diagonais ficam só do lado direito —, então pode parecer
   deslocada mesmo estando centrada. Se quiser calibrar no olho, os
   dois valores abaixo movem só a folha, sem tocar no disco:
     --folha-x  positivo empurra para a direita
     --folha-y  positivo empurra para baixo
   Uns 2% já são perceptíveis. */
#hero-organico .og-seal-leaf{
  width:34%;aspect-ratio:165/253;background:var(--bg);
  transform:translate(var(--folha-x, 0), var(--folha-y, 0));
  -webkit-mask:var(--folha) center/contain no-repeat;
          mask:var(--folha) center/contain no-repeat;
}
@keyframes ogSpin{from{transform:rotate(0)}to{transform:rotate(360deg)}}

/* ---------- MOBILE ---------- */
@media(max-width:900px){
  /* ── VERSÃO MOBILE ──
     Tipografia sobre a ponte e a pilha logo abaixo. */
  #hero-organico{
    min-height:calc(100svh + var(--raio));
    justify-content:center;
    padding-block:calc(var(--navh) + clamp(20px,5vh,40px)) calc(var(--raio) + clamp(24px,5vh,44px));
  }
  /* o selo sai no mobile: ao lado do botão, numa fileira estreita, ele
     não tem espaço */
  #hero-organico .og-seal{display:none}

  /* tudo alinhado à esquerda, no mesmo eixo do gutter */
  #hero-organico .og-col{padding-right:0;text-align:left}

  /* a pilha desce para baixo do texto, centrada. A margem de topo cobre
     o avanço da carta mais alta, que sobe 32% da largura. */
  #hero-organico{--cw:min(56vw,230px)}
  #hero-organico .og-stack{
    position:relative;right:auto;top:auto;transform:none;
    margin:calc(var(--cw) * .34 + clamp(20px,4vh,38px)) auto 0;
  }
  /* leque simétrico, porque a pilha está centrada */
  #hero-organico .s1{transform:translate3d(-9%,-7%,-150px) rotate(-8deg)}
  #hero-organico .s2{transform:translate3d(9%,-14%,-300px) rotate(7deg)}
  #hero-organico .s3{transform:translate3d(-5%,-21%,-460px) rotate(-4deg)}
  #hero-organico .s4{transform:translate3d(4%,-27%,-610px) rotate(5deg)}

  /* a headline cresce: sem a foto ao lado ela é o elemento principal */
  #hero-organico .og-h1{font-size:clamp(2.1rem,8.8vw,3.2rem);line-height:1.1}
  #hero-organico .og-sub{max-width:32ch;font-size:clamp(14px,3.8vw,17px)}

  #hero-organico .og-foot{min-height:0;padding-top:24px}
  #hero-organico .og-ghost{height:46px;padding:0 6px 0 20px;font-size:11px;gap:12px}
  #hero-organico .og-ghost i{width:32px;height:32px}
}

@media(prefers-reduced-motion:reduce){
  .header-menu,
  #hero-organico .og-line > span,
  #hero-organico .og-foot::before,
  #hero-organico .og-seal{animation:none}
  #hero-organico .og-card{transition-duration:.001ms}
  #hero-organico .og-seal svg{animation:none}
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-462152c *//* Vídeo vertical da segunda dobra.

   Capa: o primeiro quadro do próprio arquivo — sem atributo poster e
   com preload="metadata", o navegador desenha o frame sozinho.
   Hover: o cursor vira um rótulo "ver vídeo completo".
   Clique: o vídeo se prende à tela e voa para o centro, ampliado, com
   um véu claro por trás. Sem lightbox e sem fundo preto.

   A frase que corria por trás saiu daqui: ela agora é um elemento
   próprio da seção, montado no Elementor. */

/* O respiro existia para a frase em loop passar por trás sem encostar
   no vídeo. Com a frase saindo daqui, ele vira espaço morto: quem
   controla a distância passa a ser a container do Elementor. */
.ag-reel {
  position: relative;
  display: grid;
  place-items: center;
}

/* ── vídeo ── */
/* Largura 100%: quem define o tamanho é a container do Elementor.
   O vídeo ampliado no portal não depende disso — lá ele é medido pela
   altura da janela. */
.ag-vid { position: relative; z-index: 2; margin: 0; width: 100%; }
.ag-vid__box {
  position: relative;
  transform-origin: center center;
  transition: transform .82s cubic-bezier(.16, 1, .3, 1);
  box-shadow: 0 30px 68px rgba(33, 28, 60, .22), 0 0 0 1px rgba(57, 49, 102, .08);
  border-radius: 12px;
  overflow: hidden;
  background: #000;
  will-change: transform;
}
.ag-vid__box video { display: block; width: 100%; height: auto; }

/* Aviso de que o vídeo está mudo. Fica só enquanto ele roda em loop
   no lugar: aberto, o áudio entra e o ícone não faz mais sentido. */
/* Mesmo desenho do Instagram: círculo preto pequeno no canto inferior
   direito, sem borda e sem desfoque, com o alto-falante cheio e o
   corte em X. */
.ag-mute{
  position:absolute;
  right:12px; bottom:12px;
  z-index:4;
  width:30px; height:30px;
  border-radius:50%;
  background:rgba(0,0,0,.55);
  color:#fff;
  display:grid; place-items:center;
  pointer-events:none;
  transition:opacity .4s ease;
}
.ag-mute svg{display:block}
body.ag-lb-open .ag-mute{opacity:0}

/* Botões: o kit do Elementor pinta <button> com a cor do tema, então
   todos os estados são zerados aqui — inclusive hover e focus. */
.ag-reel button,
.ag-reel button:hover,
.ag-reel button:focus,
.ag-reel button:active {
  background: none !important;
  border: 0;
  box-shadow: none !important;
  padding: 0;
  color: inherit;
  border-radius: 0;
}

/* área de clique cobrindo o vídeo enquanto ele está fechado */
.ag-vid__hit {
  position: absolute; inset: 0; z-index: 3;
  cursor: none;                      /* o rótulo substitui o cursor */
}
@media (hover: none), (pointer: coarse) { .ag-vid__hit { cursor: pointer; } }




/* ── círculo que substitui o cursor ──
   Bola roxa cheia com texto branco. As cores são literais e não
   variáveis do Elementor: com var() ele herdava a cor do kit. */
.ag-cur {
  position: fixed; top: 0; left: 0; z-index: 1001;
  width: 156px; height: 156px;
  margin: -78px 0 0 -78px;           /* centraliza no ponteiro */
  border-radius: 50%;
  border: 0;
  background: #393166;
  box-shadow: 0 18px 40px rgba(33, 28, 60, .34);
  color: #fff;
  display: grid; place-items: center; text-align: center;
  font-family: 'Lato', sans-serif;
  font-size: 11px; font-weight: 700; letter-spacing: .16em; line-height: 1.6;
  text-transform: uppercase;
  pointer-events: none;
  opacity: 0; scale: .72;
  transition: opacity .35s ease, scale .5s cubic-bezier(.16, 1, .3, 1);
}
.ag-cur.on { opacity: 1; scale: 1; }
@media (hover: none), (pointer: coarse) { .ag-cur { display: none; } }

@media (prefers-reduced-motion: reduce) {
  .ag-vid__box { transition-duration: .001ms; }
}

/* ── PORTAL DO VÍDEO ──
   Vive preso ao <body>, fora de qualquer container. É o que garante
   que position:fixed valha em relação à janela mesmo com transform ou
   efeito de movimento em algum ancestral do widget. */
.ag-lb {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  padding: clamp(16px, 4vh, 48px);
  background: rgba(245, 245, 247, .88);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  opacity: 0;
  visibility: hidden;
  transition: opacity .45s ease, visibility .45s;
}
.ag-lb.on { opacity: 1; visibility: visible; }

.ag-lb__in {
  transform: scale(.94);
  transition: transform .6s cubic-bezier(.16, 1, .3, 1);
  line-height: 0;
}
.ag-lb.on .ag-lb__in { transform: none; }

.ag-lb video {
  display: block;
  height: min(86svh, 900px);
  width: auto;
  max-width: 92vw;
  border-radius: 12px;
  background: #000;
  box-shadow: 0 40px 90px rgba(33, 28, 60, .3);
}

.ag-lb__x {
  position: absolute;
  top: clamp(14px, 3vh, 28px);
  right: clamp(14px, 3vw, 28px);
  width: 44px; height: 44px;
  border-radius: 50% !important;
  border: 1px solid rgba(57, 49, 102, .3) !important;
  background: rgba(255, 255, 255, .7) !important;
  color: #393166;
  display: grid; place-items: center; cursor: pointer;
  transition: background .3s ease, transform .4s cubic-bezier(.16, 1, .3, 1);
}
.ag-lb__x:hover { background: #fff !important; transform: rotate(90deg); }
.ag-lb__x img { display: block; width: 18px; height: 18px; }

body.ag-lb-open { overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
  .ag-lb, .ag-lb__in { transition-duration: .001ms; }
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-5834526 *//* Frase principal da segunda dobra — widget de texto, coluna esquerda.
   É ela que diz o que a agência é, então é a de maior peso da página
   depois da headline do hero.
   O grid-column só vale dentro de um grid de 12 colunas; montando com
   container do Elementor, apague essa linha. */

.ag-lead {
  grid-column: 1 / span 6;
  margin: 0;
  font-family: 'Lato', sans-serif;
  font-size: clamp(1.35rem, 2.6vw, 2.15rem);
  font-weight: 400;
  line-height: 1.22;
  letter-spacing: -.03em;
  color: var(--e-global-color-primary, #393166);
  /* pretty e não balance: balance encurta todas as linhas e a quebra
     passa a cair DENTRO do bloco roxo, que então vira uma escadinha de
     retângulos. Quem resolve a palavra solta no fim é o espaço fixo
     entre "de" e "marcas" no HTML. */
  text-wrap: pretty;
}

/* Destaque só por PESO, sem bloco.

   O bloco sólido pesava: ele é o único retângulo cheio da página, e
   num corpo grande virava o elemento mais forte da tela, na frente da
   própria frase. Em Black o destaque continua existindo e a leitura
   segue corrida.

   ⚠ As caixas atômicas continuam: cada trecho é um inline-block, que
   nunca se parte. Não é mais necessário para o bloco, mas mantém a
   quebra previsível — e volta a valer na hora se o bloco voltar.

   Para testar o bloco de novo, é descomentar as três linhas de fundo. */
.ag-lead__b{ display:inline; }
.ag-lead mark{
  display:inline-block;
  background:none;
  color:inherit;
  font-weight:900;
  letter-spacing:-.04em;
  padding:0 .04em;

  /* bloco sólido — descomentar para testar
  background:var(--og-cor-bloco, var(--e-global-color-primary, #393166));
  color:#f5f5f7;
  padding:.04em .17em .1em;
  */
}

/* "de marcas." nunca se separa: nowrap no PAI vale mesmo depois de a
   revelação fatiar o texto em spans, o que o espaço inseparável não
   garantia — o divisor trocava o caractere e a quebra voltava. */
.ag-lead .ag-junto{white-space:nowrap}

/* a revelação palavra a palavra não pode cortar o bloco */
.ag-lead .og-w { padding-bottom: .06em; }/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-9b45a81 *//* Texto de apoio da segunda dobra — os dois parágrafos, com filete em
   cima. Dentro de uma container do Elementor, apague o grid-column. */

.ag-apoio {
  grid-column: 9 / span 4;
  padding-top: clamp(14px, 1.6vw, 20px);
  border-top: 1px solid rgba(57, 49, 102, .26);
  font-family: 'Lato', sans-serif;
  font-size: clamp(15px, 1.5vw, 17px);
  font-weight: 400;
  line-height: 1.75;
  color: var(--e-global-color-primary, #393166);
  text-wrap: pretty;
}
.ag-apoio p { margin: 0; }
.ag-apoio p + p { margin-top: clamp(14px, 1.4vw, 20px); }/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-6bc239f *//* ═══════════════════════════════════════════════════════════
   ORGÂNICO COMUNICAÇÃO — DOBRA 2 · CONTAINER PAI
   CSS personalizado do CONTAINER PAI.
   Aqui  .elementor-17 .elementor-element.elementor-element-6bc239f  é o próprio container.

   ⚠ SÓ APARÊNCIA. Nada de largura, colunas, ordem ou posição dos
   filhos — a divisão e a margem negativa do vídeo ficam com você, no
   painel do Elementor.
   ═══════════════════════════════════════════════════════════ */

.elementor-17 .elementor-element.elementor-element-6bc239f {
  /* Caixa quase invisível, no mesmo espírito da dos depoimentos.
     São quatro camadas de pouca intensidade, e a soma é que levanta o
     bloco sem virar cartão:

     1 · fundo branco a 55% sobre o papel — quase não muda a cor
     2 · borda de 1px em roxo a 7%
     3 · sombra larga e difusa, com pouco deslocamento
     4 · filete de luz na aresta de cima, por dentro

     Sombra dura ou fundo mais forte transformariam isto num cartão, e
     nenhuma outra seção da página tem um. */
  background: rgba(255, 255, 255, .55);
  border: 1px solid rgba(57, 49, 102, .07);
  border-radius: 20px;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, .9) inset,
    0 28px 70px -30px rgba(33, 28, 60, .16);

  /* Respiro interno. O de cima e o de baixo é maior de propósito: é
     dele que o vídeo precisa para ter de onde sair quando você aplicar
     a margem negativa. */
  padding: clamp(48px, 6vw, 88px) clamp(28px, 4vw, 64px);

  /* ⚠ overflow VISÍVEL. Com hidden o arredondamento pegaria todo o
     conteúdo, mas cortaria justamente a parte do vídeo que deve vazar.
     O arredondamento do vídeo fica no widget dele. */
  overflow: visible;
}

@media (max-width: 900px) {
  .elementor-17 .elementor-element.elementor-element-6bc239f {
    border-radius: 16px;
    padding: clamp(34px, 8vw, 56px) clamp(20px, 5vw, 30px);
  }
}

/* ── PARA CALIBRAR ──────────────────────────────────────────
   fundo mais presente  →  rgba(255,255,255,.75)
   fundo invisível      →  rgba(255,255,255,.35)
   borda mais marcada   →  rgba(57,49,102,.12)
   sombra mais funda    →  0 34px 80px -30px rgba(33,28,60,.22)
   cantos mais retos    →  border-radius: 12px
   ─────────────────────────────────────────────────────────── *//* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-7627920 *//* ═══════════════════════════════════════
   ORGÂNICO COMUNICAÇÃO — CASES
   Configurações do site → CSS personalizado, depois do hero.css.
   Bloco inteiro em widget HTML: as setas comandam o trilho, e o
   trilho sangra até a borda da tela a partir do grid.
   ═══════════════════════════════════════ */

#og-cases{
  --roxo:var(--e-global-color-primary, #393166);
  --dot:var(--e-global-color-accent, #4f9ecd);
  --grafite:var(--e-global-color-text, #3f3f3f);
  --hair:rgba(57,49,102,.20);
  --container:1280px;
  --gutter:32px;
  --sy:128px;
  --ease:cubic-bezier(.16,1,.3,1);

  position:relative;
  /* Sem padding embaixo: a seção seguinte é a dos pilares, que tem
     100svh de altura mínima e o conteúdo centrado — o vazio dela já
     faz o papel do respiro. Somados, davam 328px contra os 256 do
     resto da página. */
  padding-block:var(--sy) 0;
  overflow:hidden;
  background:#f5f5f7;
  font-family:'Lato',sans-serif;
  color:var(--roxo);
}
@media(max-width:1024px){ #og-cases{ --sy:96px } }
@media(max-width:767px){  #og-cases{ --sy:64px; --gutter:20px } }

#og-cases *{box-sizing:border-box}

#og-cases .cs-in{
  width:100%;
  max-width:calc(var(--container) + 2 * var(--gutter));
  margin-inline:auto;
  padding-inline:var(--gutter);
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:0 32px;
  align-items:end;
}

/* ---------- COLUNA DA ESQUERDA ---------- */
/* A coluna alinha pela base da FOTO, não da legenda: a margem de baixo
   corresponde à altura do bloco de nome e serviços. */
#og-cases .cs-lado{
  grid-column:1 / span 4;margin-bottom:clamp(48px,4.6vw,68px);
  display:grid;
  grid-template-areas:'ctrl' 't' 'd' 'cta';
  justify-items:start;
}
#og-cases .cs-ctrl{grid-area:ctrl}
#og-cases .cs-t{grid-area:t}
#og-cases .cs-d{grid-area:d}
#og-cases .cs-cta{grid-area:cta}
#og-cases .cs-t{
  margin:0;
  font-size:clamp(1.9rem,3.4vw,3rem);
  font-weight:900;line-height:1.02;letter-spacing:-.035em;
  text-transform:uppercase;
}
#og-cases .cs-t em{font-style:normal;color:transparent;-webkit-text-stroke:1.2px var(--roxo)}
#og-cases .cs-d{
  margin:clamp(14px,1.8vw,22px) 0 0;
  font-size:clamp(14px,1.45vw,16px);line-height:1.7;
  color:var(--grafite);max-width:32ch;text-wrap:pretty;
}

#og-cases .cs-ctrl{display:flex;align-items:center;gap:12px;
  margin-bottom:clamp(22px,2.8vw,34px);justify-self:end}
#og-cases .cs-seta{
  width:48px;height:48px;padding:0;
  border:1px solid var(--hair) !important;
  border-radius:50% !important;
  background:none !important;
  color:var(--roxo);
  display:grid;place-items:center;cursor:pointer;
  transition:background .45s var(--ease),border-color .45s var(--ease),color .45s var(--ease);
}
#og-cases .cs-seta:hover:not(:disabled){
  background:var(--roxo) !important;border-color:var(--roxo) !important;color:#fff;
}
#og-cases .cs-seta:disabled{opacity:.28;cursor:default}

/* botão: o mesmo do menu — roxo cheio, e no hover o preenchimento sai
   pelo topo com a aresta diagonal, deixando o vazado */
#og-cases .cs-cta{
  position:relative;isolation:isolate;overflow:hidden;
  display:inline-flex;align-items:center;gap:11px;white-space:nowrap;
  margin-top:clamp(20px,2.6vw,30px);
  padding:12px 12px 12px 24px;
  border:1px solid transparent;
  border-radius:100px;
  background:transparent;
  font-size:12px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;
  line-height:1;text-decoration:none;
  transition:transform .45s var(--ease),border-color .45s var(--ease);
}
#og-cases .cs-cta::before{
  content:'';position:absolute;inset:0;z-index:-1;border-radius:inherit;
  background:var(--roxo);
  clip-path:polygon(0% -20%, 100% 0%, 100% 100%, 0% 100%);
  transition:clip-path .62s cubic-bezier(.76,0,.24,1);
}
#og-cases .cs-cta:hover::before,
#og-cases .cs-cta:focus-visible::before{clip-path:polygon(0% -120%, 100% -100%, 100% 0%, 0% -20%)}
#og-cases .cs-cta:hover,
#og-cases .cs-cta:focus-visible{border-color:var(--roxo);transform:translateY(-2px)}

#og-cases .cs-cta__l{display:block;position:relative;overflow:hidden}
#og-cases .cs-cta__l > span{display:block;color:#fff;transition:transform .62s cubic-bezier(.76,0,.24,1)}
#og-cases .cs-cta__l > span:nth-child(2){position:absolute;top:100%;left:0;color:var(--roxo)}
#og-cases .cs-cta:hover .cs-cta__l > span,
#og-cases .cs-cta:focus-visible .cs-cta__l > span{transform:translateY(-100%)}

#og-cases .cs-cta i{
  width:32px;height:32px;border-radius:50%;flex:none;
  border:1px solid transparent;
  background:var(--dot);color:#fff;
  display:grid;place-items:center;
  transition:transform .55s cubic-bezier(.76,0,.24,1),background .5s var(--ease),
             color .5s ease,border-color .5s ease;
}
#og-cases .cs-cta:hover i,
#og-cases .cs-cta:focus-visible i{
  transform:translateX(4px);
  background:transparent;border-color:var(--roxo);color:var(--roxo);
}

/* ---------- TRILHO ---------- */
#og-cases .cs-vp{
  /* começa na coluna 5, a mesma em que começa o texto da seção de
     pilares: as duas seções passam a compartilhar o mesmo eixo */
  grid-column:5 / span 8;
  overflow-x:auto;
  scroll-snap-type:x proximity;
  scrollbar-width:none;
  cursor:grab;
  /* Sangria até a borda da tela: as fotos precisam vazar por ali.
     100vw INCLUI a barra de rolagem, por isso desconta --og-sb. */
  margin-right:calc(-1 * max(var(--gutter), (100vw - var(--og-sb, 0px) - var(--container)) / 2));
  /* o cursor arrasta a imagem por padrão; isso atrapalha o arrasto do
     trilho, então a seleção e o arrasto nativo saem de cena */
  user-select:none;
  -webkit-user-select:none;
}
#og-cases .cs-vp::-webkit-scrollbar{display:none}
#og-cases .cs-vp.arrastando{cursor:grabbing;scroll-snap-type:none}
#og-cases .cs-vp.deslizando{scroll-snap-type:none}
#og-cases .cs-tk{display:flex;gap:clamp(16px,2vw,30px)}
/* Espaçador no fim do trilho: o Chromium ignora o padding final de um
   container flex ao medir a área rolável, então padding-right aqui não
   funciona. Este bloco vazio é contado e faz o último card parar um
   gutter antes da borda. */
#og-cases .cs-tk::after{content:'';flex:none;width:var(--gutter)}

/* Altura fixa, largura variando com a proporção: é o que deixa
   retratos e paisagens no mesmo trilho sem parecer bagunça. E as
   pares descem um degrau, para a linha não ficar reta demais. */
#og-cases{--cs-h:clamp(340px,58vh,620px)}
#og-cases .cs-card{
  flex:none;scroll-snap-align:start;
  --r:.75;                                   /* retrato 3:4 */
  width:calc(var(--cs-h) * var(--r));
}
#og-cases .cs-card--h{--r:1.5}               /* paisagem 3:2 */
#og-cases .cs-card:nth-child(even){margin-top:clamp(26px,5vh,72px)}
#og-cases .cs-card figure{
  position:relative;
  margin:0;border-radius:12px;overflow:hidden;background:#e6e6ea;
  height:var(--cs-h);
}
/* ── A CAMADA QUE SE MOVE ──
   O parallax vive aqui, num <span>, e não na <img>. Motivo: imagem é
   elemento substituído, e nela `height:auto` usa a proporção do arquivo
   em vez de obedecer topo e base — foi o que deixava vazio embaixo das
   paisagens, que são mais largas e portanto mais curtas.
   O span não é substituído: declarando topo e base, ele preenche.
   A folga é 4% em cada ponta e o movimento vai de -3.2% a +3.2%. */
#og-cases .cs-mov{
  position:absolute;
  inset:-4% 0;
  display:block;
}
#og-cases .cs-card img{
  width:100%;height:100%;
  object-fit:cover;display:block;
  transition:transform 1.2s var(--ease);
  -webkit-user-drag:none;user-drag:none;
}
#og-cases .cs-card:hover img{transform:scale(1.05)}
#og-cases .cs-meta{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:baseline;
  gap:4px 14px;
  padding-top:16px;margin-top:16px;border-top:1px solid var(--hair);
}
#og-cases .cs-meta h3{margin:0;font-size:clamp(14px,1.4vw,18px);font-weight:900;text-transform:uppercase}
#og-cases .cs-meta span{font-size:10.5px;opacity:.5;text-align:right;line-height:1.4;max-width:16ch}
/* crédito da foto, na linha de baixo e alinhado pela esquerda */
#og-cases .cs-meta small{
  grid-column:1 / -1;
  font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;opacity:.34;
}

/* ---------- MOBILE ---------- */
@media(max-width:900px){
  #og-cases .cs-in{grid-template-columns:1fr;gap:26px;align-items:start}
  #og-cases .cs-lado,
  #og-cases .cs-vp{grid-column:auto}
  #og-cases .cs-vp{margin-right:calc(-1 * var(--gutter))}
  #og-cases{--cs-h:clamp(280px,46vh,400px)}
  #og-cases .cs-card{max-width:82vw}
  #og-cases .cs-card:nth-child(even){margin-top:0}
  /* as setas descem para o lado do botão: arrastar continua valendo,
     mas quem não descobre o gesto tem o controle à vista */
  #og-cases .cs-lado{
    margin-bottom:0;
    grid-template-areas:'t t' 'd d' 'cta ctrl';
    grid-template-columns:1fr auto;
    align-items:center;
    gap:0 14px;
  }
  /* o botão perde a margem de cima: quem separa as linhas agora é o
     gap do grid, e sem isso as setas e o botão ficam desalinhados */
  #og-cases .cs-cta{margin-top:0}
  #og-cases .cs-lado{row-gap:clamp(20px,2.6vw,30px)}
  #og-cases .cs-ctrl{margin-bottom:0;justify-self:end;align-self:center}
  #og-cases .cs-seta{width:42px;height:42px}
}

/* Abaixo de 420 o botão não cabe na mesma linha das setas: ele tem o
   rótulo em linha única e acabava passando por cima delas. */
@media(max-width:420px){
  #og-cases .cs-lado{
    grid-template-areas:'t' 'd' 'cta' 'ctrl';
    grid-template-columns:1fr;
  }
  #og-cases .cs-ctrl{justify-self:start}
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-eb4fea2 *//* ═══════════════════════════════════════
   ORGÂNICO COMUNICAÇÃO — O QUE FAZEMOS
   Configurações do site → CSS personalizado, depois do hero.css.
   Bloco inteiro em widget HTML: a seção é pinada e a roda gira com o
   scroll, então não dá para montar em containers separadas.

   ⚠ A container que envolve este widget não pode ter overflow: hidden
     nem Motion Effects — a folha de fundo transborda a seção, e o pin
     precisa medir a altura real.
   ═══════════════════════════════════════ */

#og-pilares{
  --roxo:var(--e-global-color-primary, #393166);
  --grafite:var(--e-global-color-text, #3f3f3f);
  --papel:#f5f5f7;
  --hair:rgba(57,49,102,.20);
  --container:1280px;
  --gutter:32px;
  --folha:url('https://organicocomunicacao.com.br/wp-content/uploads/2026/08/folha-organico.svg');
  /* mesmo mecanismo do hero: o JS mede o cabeçalho em --og-head-h e só
     compensa se ele for sobreposto; senão escreve 0 */
  --navh:var(--og-head-h, 80px);
  /* altura da faixa onde os blocos deslizam */
  --pl-h:clamp(360px,52vh,480px);

  position:relative;
  /* acima das vizinhas: sem isto, a seção seguinte tem fundo opaco e
     cobre a parte da folha que transborda para baixo */
  z-index:1;
  min-height:100svh;
  display:flex;
  align-items:center;
  padding-top:var(--navh);
  /* ⚠ sem corte: a folha de fundo precisa transbordar em cima e embaixo.
     Quem segura a rolagem lateral é o overflow-x:clip do documento. */
  background:var(--papel);
  font-family:'Lato',sans-serif;
  color:var(--roxo);
}
@media(max-width:767px){ #og-pilares{ --gutter:20px; --navh:var(--og-head-h, 60px) } }

#og-pilares *{box-sizing:border-box}

/* ---------- ARCO ----------
   Camada de tela inteira: o círculo é maior que o grid de propósito,
   para o arco parecer parte de uma roda muito maior. O conteúdo é que
   fica preso ao grid. */
#og-pilares .pl-arc{position:absolute;inset:0;z-index:1;pointer-events:none}
#og-pilares .pl-arc svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
/* O arco e os números ficam em grafite: com tudo roxo a seção
   empastava. O roxo sobra só para a bolinha do ativo, que passa a ser
   o único ponto de cor da roda. */
#og-pilares .pl-line{fill:none;stroke:rgba(63,63,63,.22);stroke-width:1;vector-effect:non-scaling-stroke}
/* marcador do ativo: ponto cheio e um anel pulsando em volta */
#og-pilares .pl-dot{fill:var(--roxo)}
#og-pilares .pl-halo{
  fill:none;stroke:var(--roxo);stroke-width:1;
  transform-box:fill-box;transform-origin:center;
  animation:plPulso 2.8s ease-in-out infinite;
}
@keyframes plPulso{
  0%,100%{transform:scale(1);opacity:.3}
  50%    {transform:scale(1.24);opacity:.08}
}
/* Uma palavra no lugar do número: número lia como etapa de um
   processo, e os três são serviços independentes. */
/* Uma palavra por pilar, correndo SOBRE o caminho do arco. O corpo e o
   peso são escritos pelo JS conforme cada uma se aproxima do ativo;
   aqui fica só a base.
   ⚠ text-anchor e dominant-baseline também estão como ATRIBUTO no HTML:
   em texto sobre caminho, vários navegadores ignoram o text-anchor
   vindo de folha de estilo e a palavra começa no ponto em vez de
   centrar nele. */
#og-pilares .pl-lab{
  font-family:'Lato',sans-serif;font-weight:700;
  fill:var(--grafite);
  text-transform:uppercase;letter-spacing:.06em;
  text-anchor:middle;
  dominant-baseline:middle;
}



/* ---------- GRID ---------- */
#og-pilares .pl-in{
  position:relative;z-index:2;
  width:100%;
  max-width:calc(var(--container) + 2 * var(--gutter));
  margin-inline:auto;
  padding-inline:var(--gutter);
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:0 32px;
  align-items:center;
}

/* ---------- TEXTO ----------
   Os três blocos ocupam a mesma célula e são empilhados: o ativo fica
   no centro, o anterior sobe atravessando a faixa e o seguinte espera
   embaixo. Quem corta a entrada e a saída é a própria seção. */
#og-pilares .pl-txt{
  /* coluna 5: o mesmo eixo em que começa o trilho dos cases */
  grid-column:5 / span 5;
  position:relative;
  height:var(--pl-h);
}
#og-pilares .pl-item{
  position:absolute;left:0;right:0;top:50%;
  transform:translateY(-50%);
  will-change:transform,opacity,filter;
}
#og-pilares .pl-t{
  margin:0;
  font-size:clamp(1.9rem,3.4vw,2.9rem);
  font-weight:900;line-height:1.42;letter-spacing:-.035em;
  text-transform:uppercase;
}
/* Bloco sólido na segunda linha, mesmo desenho e mesma técnica do
   destaque da dobra 2: cada trecho é uma CAIXA ATÔMICA, que cabe
   inteira na linha ou desce inteira. Sem espaço entre elas no HTML. */
#og-pilares .pl-t mark{
  display:inline-block;
  background:var(--roxo);
  color:var(--papel);
  padding:.04em .17em .1em;
}
/* A copy voltou à versão original da cliente, que é bem mais longa:
   uns 300 caracteres contra 200. Em 40ch e corpo 17 ela ocuparia sete
   linhas e meia e estouraria a faixa. Medida mais larga e corpo um
   ponto menor trazem para seis. */
#og-pilares .pl-d{
  margin:clamp(14px,1.6vw,22px) 0 0;
  font-size:clamp(14px,1.35vw,16px);line-height:1.65;max-width:48ch;
  color:var(--grafite);text-wrap:pretty;
}
#og-pilares .pl-p{display:flex;flex-wrap:wrap;gap:10px;margin-top:clamp(20px,2.4vw,30px)}
#og-pilares .pl-p span{
  border:1px solid var(--hair);border-radius:100px;padding:9px 18px;
  font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  background:rgba(255,255,255,.6);white-space:nowrap;
}

/* ---------- FOLHA DE FUNDO ----------
   Muito maior que a seção e transbordando em cima e embaixo, bem à
   direita. Opacidade baixíssima: é sombra, não desenho. Gira junto com
   a folha pequena, mas com metade da amplitude — o que está longe se
   move menos, a mesma regra do sistema de profundidade. */
#og-pilares .pl-sombra{
  position:absolute;
  right:-10vw;
  top:50%;
  height:150%;
  aspect-ratio:165/253;
  transform:translateY(-50%);
  background:var(--roxo);
  opacity:.045;
  -webkit-mask:var(--folha) center/contain no-repeat;
          mask:var(--folha) center/contain no-repeat;
  transform-origin:50% 55%;
  pointer-events:none;
  z-index:0;
  will-change:transform;
}
@media(max-width:900px){
  /* ── DESEMPENHO NO TOQUE ──
     Numa seção presa em scrub, cada camada composta a mais aparece como
     travamento. Aqui saem as que não fazem falta no celular:

     1 · o pulso do marcador — animação contínua por cima do scrub
     2 · a folha gigante de fundo — mais uma camada pintada, e ela já
         está em 3% de opacidade
     3 · o will-change com filter nos blocos — no celular não há
         desfoque nenhum, e anunciar filter faz o navegador reservar
         uma camada de composição à toa */
  #og-pilares .pl-halo{animation:none;opacity:.3}
  #og-pilares .pl-sombra{display:none}
  #og-pilares .pl-item{will-change:opacity}
  #og-pilares .pl-folha{will-change:auto}
}

/* ---------- FOLHA ----------
   Mesma caixa que os ícones ocupavam, no mesmo lugar do grid: só o
   conteúdo mudou. Entra por máscara, então a cor é nossa. */
#og-pilares .pl-r{
  grid-column:10 / span 3;
  position:relative;
  justify-self:end;
  width:100%;
  aspect-ratio:1;
  max-width:clamp(170px,20vw,268px);
}
#og-pilares .pl-folha{
  position:absolute;inset:0;
  background:var(--roxo);
  -webkit-mask:var(--folha) center/contain no-repeat;
          mask:var(--folha) center/contain no-repeat;
  transform-origin:50% 62%;   /* gira pelo talo, não pelo centro */
  will-change:transform;
}

/* ---------- MOBILE ---------- */
@media(prefers-reduced-motion:reduce){
  #og-pilares .pl-halo{animation:none;opacity:.3}
}

@media(max-width:900px){
  #og-pilares{
    align-items:flex-start;
    padding-block:calc(var(--navh) + clamp(20px,4vh,40px)) clamp(40px,7vh,72px);
    --pl-h:clamp(330px,48vh,420px);
  }
  #og-pilares .pl-in{grid-template-columns:1fr;gap:0;text-align:center;justify-items:center}
  /* respiro maior: o número agora fica abaixo da bolinha */
  #og-pilares .pl-txt{grid-column:auto;order:2;width:100%;margin-top:clamp(80px,12vh,124px)}
  #og-pilares .pl-d{margin-inline:auto;max-width:42ch}

  #og-pilares .pl-p{justify-content:center}
  #og-pilares .pl-r{grid-column:auto;order:3;justify-self:center;max-width:min(52vw,220px);margin-top:clamp(10px,3vh,28px)}
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-59737ff *//* ═══════════════════════════════════════
   ORGÂNICO COMUNICAÇÃO — DEPOIMENTOS
   Configurações do site → CSS personalizado, depois do hero.css.
   Bloco inteiro em widget HTML: as setas e os marcadores comandam o
   mesmo palco, então precisam viver juntos.
   ═══════════════════════════════════════ */

#og-depoimentos{
  --roxo:var(--e-global-color-primary, #393166);
  --hair:rgba(57,49,102,.20);
  --container:1280px;
  --gutter:32px;
  --sy:128px;
  --ease:cubic-bezier(.16,1,.3,1);

  position:relative;
  /* A seção anterior é a dos pilares, cujo vazio interno já separa as
     duas — por isso o topo não leva o ritmo cheio. Mas leva um pedaço:
     a aspa passa do topo do bloco (45px em 1920, 25px em 1440), e sem
     esse respiro ela invadia a emenda e comia o espaço visualmente. */
  padding-block:clamp(40px,4.4vw,80px) var(--sy);
  background:#f5f5f7;
  font-family:'Lato',sans-serif;
  color:var(--roxo);
}
@media(max-width:1024px){ #og-depoimentos{ --sy:96px } }
@media(max-width:767px){  #og-depoimentos{ --sy:64px; --gutter:20px } }

#og-depoimentos *{box-sizing:border-box}

#og-depoimentos .dp-in{
  width:100%;
  max-width:calc(var(--container) + 2 * var(--gutter));
  margin-inline:auto;
  padding-inline:var(--gutter);
}

/* O conjunto ocupa 10 das 12 colunas, centrado: as setas encostam mais
   no texto em vez de morarem nas bordas do grid. */
#og-depoimentos .dp-quadro{
  position:relative;
  display:grid;
  grid-template-columns:auto 1fr auto;
  grid-template-areas:'ant palco prox';
  align-items:center;
  gap:clamp(18px,3vw,44px);
  /* dez das doze colunas, com a conta do grid; no mobile o bloco
     mobile devolve 100% */
  max-width:calc((var(--container) - 11 * 32px) / 12 * 10 + 9 * 32px);
  margin-inline:auto;
}

/* aspa em marca d'água, atrás do texto */
/* ── A ASPA ──
   Ancorada no CARD (.dp-palco é quem tem position:relative), com o
   meio dela pousando na aresta de cima.

   ⚠ ZERO transform aqui, e é de propósito. Antes a posição vinha de
   translate(), e qualquer coisa que escrevesse transform neste
   elemento — o sistema de profundidade, por exemplo — apagava o
   posicionamento inteiro. Sem transform, não há o que sobrescrever.

   A centralização horizontal vem de left/right zerados mais
   text-align, não de translateX.
   A vertical vem de top em EM, que se refere ao próprio corpo da
   fonte: com line-height .7 a caixa mede .7em, e a tinta da aspa fica
   a 47% dela — ou seja .33em do topo da caixa. Um top de -.33em pousa
   a TINTA na aresta do card, em qualquer tamanho de fonte. */
#og-depoimentos .dp-aspa{
  position:absolute;
  /* ⚠ o recuo é em EM, não em pixel: assim ele encolhe junto com a
     aspa e a proporção se mantém em qualquer tela. 45px na medida do
     desktop equivalem a .31em. */
  left:0;right:0;top:calc(-.33em + .31em);
  display:block;text-align:center;
  /* ⚠ Em roxo cheio ela deixa de ser marca d'água e vira elemento
     gráfico: aí o tamanho tem que cair junto. Em 20rem sólida ela seria
     a coisa mais forte da página, na frente do próprio depoimento.
     Os dois números andam juntos — se voltar para a versão apagada,
     o corpo volta a poder crescer. */
  font-size:clamp(6.05rem,9.9vw,9.9rem);
  line-height:.7;font-weight:900;
  color:var(--dp-aspa, var(--roxo));
  pointer-events:none;user-select:none;z-index:1;
}



/* aspa em marca d'água, atrás do texto */
/* Os depoimentos ocupam a mesma célula do grid: a altura do palco é a
   do mais alto, sem precisar de min-height chutado. */
/* ---------- A CAIXA ----------
   Ela existe para separar esta seção da de pilares, que é clara e
   tipográfica como esta. Mas caixa é gesto pesado, e o resto da página
   não tem nenhuma — então ela precisa ser quase invisível.

   São quatro camadas de pouca intensidade, e a soma é que faz o papel:
   um fundo branco a 55% sobre o papel, que quase não muda a cor mas
   levanta o bloco; uma borda de 1px em roxo a 7%; uma sombra larga e
   difusa, sem deslocamento forte; e um filete de luz na aresta de
   cima, que é o que dá o acabamento de peça e não de retângulo. */
#og-depoimentos .dp-palco{
  grid-area:palco;position:relative;z-index:1;
  display:grid;place-items:center;
  padding:clamp(38px,5vw,72px) clamp(30px,5vw,80px);
  border-radius:18px;
  background:rgba(255,255,255,.55);
  border:1px solid rgba(57,49,102,.07);
  box-shadow:
    0 1px 0 rgba(255,255,255,.9) inset,
    0 28px 70px -30px rgba(33,28,60,.16);
  /* ⚠ sem overflow:hidden — a aspa transborda de propósito e o corte a
     transformaria num retângulo cinza dentro da caixa */
}
#og-depoimentos .dp-i{
  grid-area:1 / 1;
  position:relative;z-index:2;   /* o texto fica acima da aspa */
  margin:0;
  text-align:center;
  opacity:0;
  transform:translateY(12px);
  pointer-events:none;
  transition:opacity .75s var(--ease),transform .75s var(--ease);
}
#og-depoimentos .dp-i.on{opacity:1;transform:none;pointer-events:auto}

#og-depoimentos .dp-i p{
  /* Os textos novos são bem mais longos: o maior tem 373 caracteres
     contra 190 do menor. Corpo grande demais faria o mais longo ocupar
     oito linhas e empurrar a seção inteira. */
  margin:0;
  font-size:clamp(1rem,1.75vw,1.4rem);
  font-weight:400;line-height:1.55;letter-spacing:-.012em;
  max-width:52ch;margin-inline:auto;text-wrap:pretty;
}
#og-depoimentos .dp-i footer{margin-top:clamp(24px,2.8vw,38px)}
#og-depoimentos .dp-i strong{
  font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
}
#og-depoimentos .dp-i em{
  font-style:normal;display:block;margin-top:7px;
  font-size:11.5px;font-weight:400;letter-spacing:.09em;text-transform:uppercase;
  opacity:.5;
}

/* setas nas laterais, centradas na altura do depoimento */
#og-depoimentos .dp-seta{
  width:46px;height:46px;padding:0;
  border:1px solid var(--hair) !important;
  border-radius:50% !important;
  background:none !important;
  color:var(--roxo);
  display:grid;place-items:center;cursor:pointer;
  transition:background .45s var(--ease),border-color .45s var(--ease),
             color .45s var(--ease),transform .5s var(--ease);
}
#og-depoimentos .dp-seta:hover{
  background:var(--roxo) !important;
  border-color:var(--roxo) !important;
  color:#f5f5f7;
}
#og-depoimentos #ogDpAnt{grid-area:ant}
#og-depoimentos #ogDpProx{grid-area:prox}
#og-depoimentos #ogDpAnt:hover{transform:translateX(-3px)}
#og-depoimentos #ogDpProx:hover{transform:translateX(3px)}

#og-depoimentos .dp-pts{display:flex;gap:8px;justify-content:center;margin-top:clamp(26px,3vw,40px)}
#og-depoimentos .dp-pts button{
  width:28px;height:2px;padding:0;border:0;border-radius:0;
  background:var(--hair);cursor:pointer;
  transition:background .4s var(--ease);
}
#og-depoimentos .dp-pts button.on{background:var(--roxo)}

/* ── TABLET ──
   Entre 768 e 900 as setas ainda cabem ao lado, mas o card fica
   apertado entre elas: o respiro interno encolhe e o vão diminui. */
@media(min-width:768px) and (max-width:900px){
  #og-depoimentos .dp-quadro{gap:clamp(10px,1.6vw,20px);max-width:100%}
  #og-depoimentos .dp-palco{padding:clamp(34px,5vw,52px) clamp(24px,3.4vw,40px)}
  #og-depoimentos .dp-i p{max-width:44ch}
}

/* ── CELULAR ──
   As setas descem para BAIXO do card, e não para cima: a aspa fica a
   cavalo na aresta de cima, e setas ali colidiriam com ela.
   Os marcadores somem — com as setas logo abaixo, os dois fazem o
   mesmo trabalho em quatro depoimentos. */
@media(max-width:767px){
  #og-depoimentos .dp-quadro{
    grid-template-areas:'palco palco' 'ant prox';
    grid-template-columns:1fr 1fr;
    gap:clamp(18px,4vh,28px) 0;
    max-width:100%;
  }
  #og-depoimentos .dp-palco{
    padding:clamp(34px,9vw,48px) clamp(18px,5vw,26px);
    border-radius:14px;
  }
  #og-depoimentos .dp-aspa{font-size:clamp(4.4rem,15vw,6.4rem)}

  #og-depoimentos #ogDpAnt{justify-self:end;margin-right:7px}
  #og-depoimentos #ogDpProx{justify-self:start;margin-left:7px}
  #og-depoimentos .dp-seta{width:44px;height:44px}
  #og-depoimentos .dp-pts{display:none}

  #og-depoimentos .dp-i p{font-size:clamp(1rem,4.2vw,1.15rem);max-width:none;line-height:1.6}
  #og-depoimentos .dp-i footer strong{font-size:11px}
  #og-depoimentos .dp-i footer em{font-size:10px}
}

@media(prefers-reduced-motion:reduce){
  #og-depoimentos .dp-i{transition-duration:.001ms}
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-d0316a5 *//* ═══════════════════════════════════════
   ORGÂNICO COMUNICAÇÃO — CONTATO
   Configurações do site → CSS personalizado, depois do hero.css.
   Bloco inteiro em widget HTML. É a única seção escura da página:
   depois de cinco telas claras, o roxo marca que ali é o fim.
   ═══════════════════════════════════════ */

#og-contato{
  --roxo:var(--e-global-color-primary, #393166);
  --roxo-deep:#241f45;
  --azul:#82bfe8;
  --hairw:rgba(255,255,255,.22);
  --container:1280px;
  --gutter:32px;
  --sy:128px;
  --raio:48px;
  --ease:cubic-bezier(.16,1,.3,1);
  /* trocar pela URL da folha enviada na biblioteca */
  --folha:url('https://organicocomunicacao.com.br/wp-content/uploads/2026/08/folha-organico.svg');

  position:relative;
  overflow:hidden;
  padding-block:var(--sy);
  /* só os cantos de cima, fazendo par com o hero */
  border-radius:var(--raio) var(--raio) 0 0;
  background:linear-gradient(168deg, var(--roxo) 0%, #332c5e 58%, var(--roxo-deep) 100%);
  color:#fff;
  font-family:'Lato',sans-serif;
}
@media(max-width:1024px){ #og-contato{ --sy:96px } }
@media(max-width:767px){  #og-contato{ --sy:64px; --gutter:20px; --raio:24px } }

#og-contato *{box-sizing:border-box}

#og-contato .ct-folha{
  position:absolute;right:-16vw;top:8%;
  height:112%;aspect-ratio:165/253;
  transform:rotate(5deg);
  background:rgba(255,255,255,.032);
  -webkit-mask:var(--folha) center/contain no-repeat;
          mask:var(--folha) center/contain no-repeat;
  pointer-events:none;
}

#og-contato .ct-in{
  position:relative;z-index:2;
  width:100%;
  max-width:calc(var(--container) + 2 * var(--gutter));
  margin-inline:auto;
  padding-inline:var(--gutter);
}

/* ---------- BAIXO ---------- */
#og-contato .ct-baixo{
  display:grid;grid-template-columns:repeat(12,1fr);gap:0 32px;
  align-items:end;margin-top:clamp(46px,6vw,86px);
}
#og-contato .ct-fala{grid-column:1 / span 5}
/* a chamada é só um pouco maior que o texto e alinhada com ele: em
   corpo gigante e piscando, ela lia como anúncio */
#og-contato .ct-chamada{
  display:inline-block;
  font-size:clamp(24px,2.8vw,38px);
  font-weight:900;line-height:1.1;letter-spacing:-.03em;
  color:var(--azul);text-decoration:none;
  border-bottom:1px solid rgba(130,191,232,.42);
  padding-bottom:.06em;
  transition:border-color .45s var(--ease),opacity .45s var(--ease);
}
#og-contato .ct-chamada:hover{border-color:var(--azul)}
/* Cores escolhidas pela cliente no painel: a chamada em azul e esta
   frase em papel. Sem opacidade — cor lavada por opacity vira um tom
   sujo e imprevisível. */
#og-contato .ct-t{
  margin:clamp(18px,2vw,26px) 0 0;
  font-size:clamp(15px,1.6vw,18px);line-height:1.7;
  color:#f5f5f7;
  max-width:34ch;text-wrap:pretty;
}
/* ---------- CONTATOS ----------
   Telefone e e-mail em texto à esquerda, três ícones em círculo à
   direita — o desenho da referência que a cliente mandou. O WhatsApp é
   o único preenchido: é o caminho que ela quer em evidência. */
#og-contato .ct-c{
  grid-column:7 / span 6;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:clamp(20px,3vw,44px);
}

#og-contato .ct-dados{display:flex;flex-direction:column;gap:6px}
#og-contato .ct-dados a{
  color:#fff;text-decoration:none;
  font-size:clamp(13px,1.35vw,15px);
  letter-spacing:.06em;text-transform:uppercase;
  transition:opacity .4s ease;
}
#og-contato .ct-dados a:hover{opacity:.7}

#og-contato .ct-redes{display:flex;gap:12px}
#og-contato .ct-rede{
  width:46px;height:46px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.3);
  color:#fff;
  display:grid;place-items:center;
  text-decoration:none;
  transition:background .45s var(--ease),border-color .45s var(--ease),
             color .45s var(--ease),transform .45s var(--ease);
}
#og-contato .ct-rede:hover{
  background:#f5f5f7;border-color:#f5f5f7;color:var(--roxo);
  transform:translateY(-2px);
}
/* o WhatsApp em evidência: preenchido e um pouco maior */
#og-contato .ct-rede--zap{
  width:54px;height:54px;
  background:var(--azul);
  border-color:var(--azul);
  color:var(--roxo-deep);
}
#og-contato .ct-rede--zap:hover{
  background:#f5f5f7;border-color:#f5f5f7;color:var(--roxo);
}
#og-contato .ct-rede:focus-visible{
  outline:2px solid var(--azul);outline-offset:3px;
}

@media(max-width:900px){
  /* em tela estreita a folha ocupa proporcionalmente muito mais área */
  #og-contato .ct-folha{background:rgba(255,255,255,.018);right:-30vw;height:80%}
  #og-contato .ct-baixo{grid-template-columns:1fr;gap:30px}
  #og-contato .ct-fala,#og-contato .ct-c{grid-column:auto}
  #og-contato .ct-t{max-width:none}
}
@media(max-width:520px){
  #og-contato .ct-c{flex-direction:column;align-items:flex-start;gap:26px}
}

@media(prefers-reduced-motion:reduce){
}

/* ---------- RODAPÉ ----------
   Extensão da mesma seção: sem troca de cor, só um filete separando. */
#og-contato .ct-pe{
  position:relative;z-index:2;
  margin-top:clamp(56px,7vw,96px);
  padding-top:clamp(26px,3vw,38px);
}
#og-contato .ct-pe__in{
  width:100%;
  max-width:calc(var(--container) + 2 * var(--gutter));
  margin-inline:auto;
  padding-inline:var(--gutter);
  border-top:1px solid var(--hairw);
  padding-top:clamp(26px,3vw,38px);
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:clamp(18px,3vw,48px);
}
#og-contato .ct-logo{height:clamp(30px,3vw,38px);width:auto;display:block;opacity:.9}
#og-contato .ct-pe p{
  margin:0;font-size:12.5px;line-height:1.6;opacity:.55;max-width:44ch;text-wrap:pretty;
}
#og-contato .ct-pe small{font-size:11px;letter-spacing:.04em;opacity:.45;white-space:nowrap}

@media(max-width:900px){
  #og-contato .ct-pe__in{grid-template-columns:1fr;gap:16px;text-align:left}
  #og-contato .ct-pe small{white-space:normal}
}/* End custom CSS */
/* Start custom CSS */html, body{
    overflow-x: hidden !important; 
    scroll-behavior: auto !important;
}/* End custom CSS */