.elementor-8312 .elementor-element.elementor-element-71712b53 > .elementor-background-overlay{background-color:#000000;opacity:0.4;transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-8312 .elementor-element.elementor-element-71712b53 > .elementor-container{max-width:980px;min-height:960px;}.elementor-8312 .elementor-element.elementor-element-71712b53{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;z-index:3;}.elementor-8312 .elementor-element.elementor-element-c17baa2 > .elementor-element-populated{padding:0px 30px 142px 30px;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;color:var( --e-global-color-primary );}.elementor-8312 .elementor-element.elementor-element-1f8e351d{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 40px) 0px;text-align:center;}.elementor-8312 .elementor-element.elementor-element-1f8e351d .elementor-heading-title{font-family:"Archivo", Sans-serif;font-size:20px;font-weight:700;color:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-6587204d{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 40px) 0px;text-align:center;}.elementor-8312 .elementor-element.elementor-element-6587204d .elementor-heading-title{font-size:60px;color:#FFFFFF;}.elementor-widget-button .elementor-button{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;}.elementor-8312 .elementor-element.elementor-element-38bc94ba.elementor-widget-button .elementor-button{background-color:var( --e-global-color-primary );background-image:var( --e-global-color-primary );}.elementor-8312 .elementor-element.elementor-element-38bc94ba.elementor-widget-button.elementor-button-outline .elementor-button{border-color:var( --e-global-color-primary );background-color:var( --e-global-color-primary );}.elementor-8312 .elementor-element.elementor-element-38bc94ba .elementor-button:hover, .elementor-8312 .elementor-element.elementor-element-38bc94ba .elementor-button:focus{background-color:var( --e-global-color-primary_hover );color:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-38bc94ba .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-8312 .elementor-element.elementor-element-38bc94ba .elementor-button{fill:var( --e-global-color-lighter );color:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-38bc94ba.elementor-button-link .elementor-button .elementor-button-text:after,.elementor-8312 .elementor-element.elementor-element-38bc94ba.elementor-button-link .elementor-button .elementor-button-text:before{background-color:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-38bc94ba .elementor-button:hover svg, .elementor-8312 .elementor-element.elementor-element-38bc94ba .elementor-button:focus svg{fill:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-38bc94ba.elementor-button-link .elementor-button:hover .elementor-button-text:after, .elementor-8312 .elementor-element.elementor-element-38bc94ba.elementor-button-link .elementor-button:hover .elementor-button-text:before{background-color:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-6cd80701{margin-top:90px;margin-bottom:45px;padding:0px 30px 0px 30px;}.elementor-8312 .elementor-element.elementor-element-427f86ff > .elementor-widget-wrap > .elementor-widget:not(.elementor-widget__width-auto):not(.elementor-widget__width-initial):not(:last-child):not(.elementor-absolute){--kit-widget-spacing:0px;}.elementor-8312 .elementor-element.elementor-element-d9dc945{--spacer-size:35px;}.elementor-8312 .elementor-element.elementor-element-324bafff{width:auto;max-width:auto;margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;align-self:center;}.elementor-8312 .elementor-element.elementor-element-324bafff .elementor-heading-title{font-family:var( --e-global-typography-heading_title-font-family ), Sans-serif;font-size:var( --e-global-typography-heading_title-font-size );font-weight:var( --e-global-typography-heading_title-font-weight );line-height:var( --e-global-typography-heading_title-line-height );color:var( --e-global-color-accent );}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-8312 .elementor-element.elementor-element-eb2293e{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + -5px) 0px;font-size:20px;font-weight:500;color:var( --e-global-color-text_lighter );}.elementor-bc-flex-widget .elementor-8312 .elementor-element.elementor-element-72bb2ec2.elementor-column .elementor-widget-wrap{align-items:flex-end;}.elementor-8312 .elementor-element.elementor-element-72bb2ec2.elementor-column.elementor-element[data-element_type="column"] > .elementor-widget-wrap.elementor-element-populated{align-content:flex-end;align-items:flex-end;}.elementor-8312 .elementor-element.elementor-element-72bb2ec2 > .elementor-widget-wrap > .elementor-widget:not(.elementor-widget__width-auto):not(.elementor-widget__width-initial):not(:last-child):not(.elementor-absolute){--kit-widget-spacing:0px;}.elementor-8312 .elementor-element.elementor-element-92f80b1{--display:flex;}.elementor-8312 .elementor-element.elementor-element-106bbefe{--display:flex;}.elementor-8312 .elementor-element.elementor-element-65233b98{--display:flex;--min-height:715px;--overflow:hidden;--overlay-opacity:0.5;}.elementor-8312 .elementor-element.elementor-element-65233b98:not(.elementor-motion-effects-element-type-background), .elementor-8312 .elementor-element.elementor-element-65233b98 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://smartavillas.com/wp-content/uploads/2026/07/Find-The-Best-Apartments-For-Holidays-in-Eastern-Algarve.webp");background-position:center center;background-repeat:no-repeat;background-size:cover;}.elementor-8312 .elementor-element.elementor-element-65233b98::before, .elementor-8312 .elementor-element.elementor-element-65233b98 > .elementor-background-video-container::before, .elementor-8312 .elementor-element.elementor-element-65233b98 > .e-con-inner > .elementor-background-video-container::before, .elementor-8312 .elementor-element.elementor-element-65233b98 > .elementor-background-slideshow::before, .elementor-8312 .elementor-element.elementor-element-65233b98 > .e-con-inner > .elementor-background-slideshow::before, .elementor-8312 .elementor-element.elementor-element-65233b98 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:transparent;--background-overlay:'';background-image:linear-gradient(180deg, #000000 0, #00000000 40%);}.elementor-8312 .elementor-element.elementor-element-6d6d29ee{margin:40px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 40px;padding:0px 0px 0px 0px;}.elementor-8312 .elementor-element.elementor-element-6d6d29ee .elementor-heading-title{font-family:"Archivo", Sans-serif;font-size:42px;font-weight:100;text-shadow:0px 0px 10px rgba(0,0,0,0.3);color:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-40460892{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 40px;padding:0px 0px 0px 0px;}.elementor-8312 .elementor-element.elementor-element-40460892 .elementor-heading-title{font-family:"Archivo", Sans-serif;font-size:24px;font-weight:300;text-shadow:0px 0px 10px rgba(0,0,0,0.3);color:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-5028db7f{--display:flex;}.elementor-8312 .elementor-element.elementor-element-696c5b4c{--display:flex;--min-height:715px;--overflow:hidden;--overlay-opacity:0.5;}.elementor-8312 .elementor-element.elementor-element-696c5b4c:not(.elementor-motion-effects-element-type-background), .elementor-8312 .elementor-element.elementor-element-696c5b4c > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://smartavillas.com/wp-content/uploads/2026/10/Smartavillas-Winter-Sun-in-Algarve.webp");background-position:center center;background-repeat:no-repeat;background-size:cover;}.elementor-8312 .elementor-element.elementor-element-696c5b4c::before, .elementor-8312 .elementor-element.elementor-element-696c5b4c > .elementor-background-video-container::before, .elementor-8312 .elementor-element.elementor-element-696c5b4c > .e-con-inner > .elementor-background-video-container::before, .elementor-8312 .elementor-element.elementor-element-696c5b4c > .elementor-background-slideshow::before, .elementor-8312 .elementor-element.elementor-element-696c5b4c > .e-con-inner > .elementor-background-slideshow::before, .elementor-8312 .elementor-element.elementor-element-696c5b4c > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:transparent;--background-overlay:'';background-image:linear-gradient(180deg, #000000 0, #00000000 40%);}.elementor-8312 .elementor-element.elementor-element-6a7d081a{margin:40px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 40px;padding:0px 0px 0px 0px;}.elementor-8312 .elementor-element.elementor-element-6a7d081a .elementor-heading-title{font-family:"Archivo", Sans-serif;font-size:42px;font-weight:100;text-shadow:0px 0px 10px rgba(0,0,0,0.3);color:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-dd26aac{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 40px;padding:0px 0px 0px 0px;}.elementor-8312 .elementor-element.elementor-element-dd26aac .elementor-heading-title{font-family:"Archivo", Sans-serif;font-size:24px;font-weight:300;text-shadow:0px 0px 10px rgba(0,0,0,0.3);color:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-2c0f1a93{--display:flex;}.elementor-8312 .elementor-element.elementor-element-18acaa99{--display:flex;--min-height:715px;--overflow:hidden;--overlay-opacity:0.5;}.elementor-8312 .elementor-element.elementor-element-18acaa99:not(.elementor-motion-effects-element-type-background), .elementor-8312 .elementor-element.elementor-element-18acaa99 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://smartavillas.com/wp-content/uploads/2026/07/Find-The-Best-Countryside-Retreats-For-Holidays-in-Eastern-Algarve.webp");background-position:center center;background-repeat:no-repeat;background-size:cover;}.elementor-8312 .elementor-element.elementor-element-18acaa99::before, .elementor-8312 .elementor-element.elementor-element-18acaa99 > .elementor-background-video-container::before, .elementor-8312 .elementor-element.elementor-element-18acaa99 > .e-con-inner > .elementor-background-video-container::before, .elementor-8312 .elementor-element.elementor-element-18acaa99 > .elementor-background-slideshow::before, .elementor-8312 .elementor-element.elementor-element-18acaa99 > .e-con-inner > .elementor-background-slideshow::before, .elementor-8312 .elementor-element.elementor-element-18acaa99 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:transparent;--background-overlay:'';background-image:linear-gradient(180deg, #000000 0, #00000000 40%);}.elementor-8312 .elementor-element.elementor-element-3ba5d044{margin:40px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 40px;padding:0px 0px 0px 0px;}.elementor-8312 .elementor-element.elementor-element-3ba5d044 .elementor-heading-title{font-family:"Archivo", Sans-serif;font-size:42px;font-weight:100;text-shadow:0px 0px 10px rgba(0,0,0,0.3);color:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-661af8b7{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 40px;padding:0px 0px 0px 0px;}.elementor-8312 .elementor-element.elementor-element-661af8b7 .elementor-heading-title{font-family:"Archivo", Sans-serif;font-size:24px;font-weight:300;text-shadow:0px 0px 10px rgba(0,0,0,0.3);color:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-3a6e993{--display:flex;}.elementor-8312 .elementor-element.elementor-element-1793fe7{--display:flex;--min-height:715px;--overflow:hidden;--overlay-opacity:0.5;}.elementor-8312 .elementor-element.elementor-element-1793fe7:not(.elementor-motion-effects-element-type-background), .elementor-8312 .elementor-element.elementor-element-1793fe7 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://smartavillas.com/wp-content/uploads/2026/07/Find-The-Best-Large-Villas-For-Holidays-in-Eastern-Algarve.webp");background-position:center center;background-repeat:no-repeat;background-size:cover;}.elementor-8312 .elementor-element.elementor-element-1793fe7::before, .elementor-8312 .elementor-element.elementor-element-1793fe7 > .elementor-background-video-container::before, .elementor-8312 .elementor-element.elementor-element-1793fe7 > .e-con-inner > .elementor-background-video-container::before, .elementor-8312 .elementor-element.elementor-element-1793fe7 > .elementor-background-slideshow::before, .elementor-8312 .elementor-element.elementor-element-1793fe7 > .e-con-inner > .elementor-background-slideshow::before, .elementor-8312 .elementor-element.elementor-element-1793fe7 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:transparent;--background-overlay:'';background-image:linear-gradient(180deg, #000000 0, #00000000 40%);}.elementor-8312 .elementor-element.elementor-element-f374bc9{margin:40px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 40px;padding:0px 0px 0px 0px;}.elementor-8312 .elementor-element.elementor-element-f374bc9 .elementor-heading-title{font-family:"Archivo", Sans-serif;font-size:42px;font-weight:100;text-shadow:0px 0px 10px rgba(0,0,0,0.3);color:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-9e1588f{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 40px;padding:0px 0px 0px 0px;}.elementor-8312 .elementor-element.elementor-element-9e1588f .elementor-heading-title{font-family:"Archivo", Sans-serif;font-size:24px;font-weight:300;text-shadow:0px 0px 10px rgba(0,0,0,0.3);color:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-384c3e59{--display:flex;}.elementor-8312 .elementor-element.elementor-element-7e8b690{--display:flex;--min-height:715px;--overflow:hidden;--overlay-opacity:0.5;}.elementor-8312 .elementor-element.elementor-element-7e8b690:not(.elementor-motion-effects-element-type-background), .elementor-8312 .elementor-element.elementor-element-7e8b690 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://smartavillas.com/wp-content/uploads/2026/08/Cozy-Corner-in-the-Algarve​.webp");background-position:center center;background-repeat:no-repeat;background-size:cover;}.elementor-8312 .elementor-element.elementor-element-7e8b690::before, .elementor-8312 .elementor-element.elementor-element-7e8b690 > .elementor-background-video-container::before, .elementor-8312 .elementor-element.elementor-element-7e8b690 > .e-con-inner > .elementor-background-video-container::before, .elementor-8312 .elementor-element.elementor-element-7e8b690 > .elementor-background-slideshow::before, .elementor-8312 .elementor-element.elementor-element-7e8b690 > .e-con-inner > .elementor-background-slideshow::before, .elementor-8312 .elementor-element.elementor-element-7e8b690 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:transparent;--background-overlay:'';background-image:linear-gradient(180deg, #000000 0, #00000000 40%);}.elementor-8312 .elementor-element.elementor-element-32c031c1{margin:40px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 40px;padding:0px 0px 0px 0px;}.elementor-8312 .elementor-element.elementor-element-32c031c1 .elementor-heading-title{font-family:"Archivo", Sans-serif;font-size:42px;font-weight:100;text-shadow:0px 0px 10px rgba(0,0,0,0.3);color:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-3501cb2f{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 40px;padding:0px 0px 0px 0px;}.elementor-8312 .elementor-element.elementor-element-3501cb2f .elementor-heading-title{font-family:"Archivo", Sans-serif;font-size:24px;font-weight:300;text-shadow:0px 0px 10px rgba(0,0,0,0.3);color:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-2d3d912f{--display:flex;}.elementor-8312 .elementor-element.elementor-element-53e26838{--display:flex;--min-height:715px;--overflow:hidden;--overlay-opacity:0.5;}.elementor-8312 .elementor-element.elementor-element-53e26838:not(.elementor-motion-effects-element-type-background), .elementor-8312 .elementor-element.elementor-element-53e26838 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://smartavillas.com/wp-content/uploads/2026/08/Casa-Catatina-Best-Townhouses-for-your-holiday-rentals-in-the-Algarve-with-Smartavillas.webp");background-position:center center;background-repeat:no-repeat;background-size:cover;}.elementor-8312 .elementor-element.elementor-element-53e26838::before, .elementor-8312 .elementor-element.elementor-element-53e26838 > .elementor-background-video-container::before, .elementor-8312 .elementor-element.elementor-element-53e26838 > .e-con-inner > .elementor-background-video-container::before, .elementor-8312 .elementor-element.elementor-element-53e26838 > .elementor-background-slideshow::before, .elementor-8312 .elementor-element.elementor-element-53e26838 > .e-con-inner > .elementor-background-slideshow::before, .elementor-8312 .elementor-element.elementor-element-53e26838 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:transparent;--background-overlay:'';background-image:linear-gradient(180deg, #000000 0, #00000000 40%);}.elementor-8312 .elementor-element.elementor-element-67316d15{margin:40px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 40px;padding:0px 0px 0px 0px;}.elementor-8312 .elementor-element.elementor-element-67316d15 .elementor-heading-title{font-family:"Archivo", Sans-serif;font-size:42px;font-weight:100;text-shadow:0px 0px 10px rgba(0,0,0,0.3);color:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-10dec9f2{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 40px;padding:0px 0px 0px 0px;}.elementor-8312 .elementor-element.elementor-element-10dec9f2 .elementor-heading-title{font-family:"Archivo", Sans-serif;font-size:24px;font-weight:300;text-shadow:0px 0px 10px rgba(0,0,0,0.3);color:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-6e8cb6c6{--display:flex;}.elementor-8312 .elementor-element.elementor-element-5af13970{--display:flex;--min-height:715px;--overflow:hidden;--overlay-opacity:0.5;}.elementor-8312 .elementor-element.elementor-element-5af13970:not(.elementor-motion-effects-element-type-background), .elementor-8312 .elementor-element.elementor-element-5af13970 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://smartavillas.com/wp-content/uploads/2026/07/Find-The-Best-Villas-Near-The-Beach-For-Holidays-in-Eastern-Algarve.webp");background-position:center center;background-repeat:no-repeat;background-size:cover;}.elementor-8312 .elementor-element.elementor-element-5af13970::before, .elementor-8312 .elementor-element.elementor-element-5af13970 > .elementor-background-video-container::before, .elementor-8312 .elementor-element.elementor-element-5af13970 > .e-con-inner > .elementor-background-video-container::before, .elementor-8312 .elementor-element.elementor-element-5af13970 > .elementor-background-slideshow::before, .elementor-8312 .elementor-element.elementor-element-5af13970 > .e-con-inner > .elementor-background-slideshow::before, .elementor-8312 .elementor-element.elementor-element-5af13970 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:transparent;--background-overlay:'';background-image:linear-gradient(180deg, #000000 0, #00000000 40%);}.elementor-8312 .elementor-element.elementor-element-383f1a37{margin:40px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 40px;padding:0px 0px 0px 0px;}.elementor-8312 .elementor-element.elementor-element-383f1a37 .elementor-heading-title{font-family:"Archivo", Sans-serif;font-size:42px;font-weight:100;text-shadow:0px 0px 10px rgba(0,0,0,0.3);color:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-544cbc9c{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 40px;padding:0px 0px 0px 0px;}.elementor-8312 .elementor-element.elementor-element-544cbc9c .elementor-heading-title{font-family:"Archivo", Sans-serif;font-size:24px;font-weight:300;text-shadow:0px 0px 10px rgba(0,0,0,0.3);color:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-49c37944{--display:flex;}.elementor-8312 .elementor-element.elementor-element-3ca367f6{--display:flex;--min-height:715px;--overflow:hidden;--overlay-opacity:0.5;}.elementor-8312 .elementor-element.elementor-element-3ca367f6:not(.elementor-motion-effects-element-type-background), .elementor-8312 .elementor-element.elementor-element-3ca367f6 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://smartavillas.com/wp-content/uploads/2026/07/Find-The-Best-Luxury-Villas-For-Holidays-in-Eastern-Algarve.webp");background-position:center center;background-repeat:no-repeat;background-size:cover;}.elementor-8312 .elementor-element.elementor-element-3ca367f6::before, .elementor-8312 .elementor-element.elementor-element-3ca367f6 > .elementor-background-video-container::before, .elementor-8312 .elementor-element.elementor-element-3ca367f6 > .e-con-inner > .elementor-background-video-container::before, .elementor-8312 .elementor-element.elementor-element-3ca367f6 > .elementor-background-slideshow::before, .elementor-8312 .elementor-element.elementor-element-3ca367f6 > .e-con-inner > .elementor-background-slideshow::before, .elementor-8312 .elementor-element.elementor-element-3ca367f6 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:transparent;--background-overlay:'';background-image:linear-gradient(180deg, #000000 0, #00000000 40%);}.elementor-8312 .elementor-element.elementor-element-69a0c6d0{margin:40px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 40px;padding:0px 0px 0px 0px;}.elementor-8312 .elementor-element.elementor-element-69a0c6d0 .elementor-heading-title{font-family:"Archivo", Sans-serif;font-size:42px;font-weight:100;text-shadow:0px 0px 10px rgba(0,0,0,0.3);color:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-3c0e6187{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 40px;padding:0px 0px 0px 0px;}.elementor-8312 .elementor-element.elementor-element-3c0e6187 .elementor-heading-title{font-family:"Archivo", Sans-serif;font-size:24px;font-weight:300;text-shadow:0px 0px 10px rgba(0,0,0,0.3);color:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-2e06026e{--display:flex;}.elementor-8312 .elementor-element.elementor-element-388afeb5{--display:flex;--min-height:715px;--overflow:hidden;--overlay-opacity:0.5;}.elementor-8312 .elementor-element.elementor-element-388afeb5:not(.elementor-motion-effects-element-type-background), .elementor-8312 .elementor-element.elementor-element-388afeb5 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://smartavillas.com/wp-content/uploads/2026/08/Casa-Leao-Preto-for-Golf-Holidays-.webp");background-position:center center;background-repeat:no-repeat;background-size:cover;}.elementor-8312 .elementor-element.elementor-element-388afeb5::before, .elementor-8312 .elementor-element.elementor-element-388afeb5 > .elementor-background-video-container::before, .elementor-8312 .elementor-element.elementor-element-388afeb5 > .e-con-inner > .elementor-background-video-container::before, .elementor-8312 .elementor-element.elementor-element-388afeb5 > .elementor-background-slideshow::before, .elementor-8312 .elementor-element.elementor-element-388afeb5 > .e-con-inner > .elementor-background-slideshow::before, .elementor-8312 .elementor-element.elementor-element-388afeb5 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:transparent;--background-overlay:'';background-image:linear-gradient(180deg, #000000 0, #00000000 40%);}.elementor-8312 .elementor-element.elementor-element-6df3b492{margin:40px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 40px;padding:0px 0px 0px 0px;}.elementor-8312 .elementor-element.elementor-element-6df3b492 .elementor-heading-title{font-family:"Archivo", Sans-serif;font-size:42px;font-weight:100;text-shadow:0px 0px 10px rgba(0,0,0,0.3);color:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-3fe2c115{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 40px;padding:0px 0px 0px 0px;}.elementor-8312 .elementor-element.elementor-element-3fe2c115 .elementor-heading-title{font-family:"Archivo", Sans-serif;font-size:24px;font-weight:300;text-shadow:0px 0px 10px rgba(0,0,0,0.3);color:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-74b40c46{--display:flex;}.elementor-8312 .elementor-element.elementor-element-16e6a068{--display:flex;--min-height:715px;--overflow:hidden;--overlay-opacity:0.5;}.elementor-8312 .elementor-element.elementor-element-16e6a068:not(.elementor-motion-effects-element-type-background), .elementor-8312 .elementor-element.elementor-element-16e6a068 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://smartavillas.com/wp-content/uploads/2026/07/Find-The-Best-Rural-Villas-For-Holidays-in-Eastern-Algarve-1.webp");background-position:center center;background-repeat:no-repeat;background-size:cover;}.elementor-8312 .elementor-element.elementor-element-16e6a068::before, .elementor-8312 .elementor-element.elementor-element-16e6a068 > .elementor-background-video-container::before, .elementor-8312 .elementor-element.elementor-element-16e6a068 > .e-con-inner > .elementor-background-video-container::before, .elementor-8312 .elementor-element.elementor-element-16e6a068 > .elementor-background-slideshow::before, .elementor-8312 .elementor-element.elementor-element-16e6a068 > .e-con-inner > .elementor-background-slideshow::before, .elementor-8312 .elementor-element.elementor-element-16e6a068 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:transparent;--background-overlay:'';background-image:linear-gradient(180deg, #000000 0, #00000000 40%);}.elementor-8312 .elementor-element.elementor-element-73d312ab{margin:40px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 40px;padding:0px 0px 0px 0px;}.elementor-8312 .elementor-element.elementor-element-73d312ab .elementor-heading-title{font-family:"Archivo", Sans-serif;font-size:42px;font-weight:100;text-shadow:0px 0px 10px rgba(0,0,0,0.3);color:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-7fbd7951{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 40px;padding:0px 0px 0px 0px;}.elementor-8312 .elementor-element.elementor-element-7fbd7951 .elementor-heading-title{font-family:"Archivo", Sans-serif;font-size:24px;font-weight:300;text-shadow:0px 0px 10px rgba(0,0,0,0.3);color:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-78d32903{--e-n-carousel-swiper-slides-gap:0px;--e-n-carousel-slide-height:auto;--e-n-carousel-slide-container-height:100%;--e-n-carousel-arrow-prev-left-align:0%;--e-n-carousel-arrow-prev-translate-x:0px;--e-n-carousel-arrow-prev-left-position:30px;--e-n-carousel-arrow-prev-top-align:50%;--e-n-carousel-arrow-prev-translate-y:-50%;--e-n-carousel-arrow-prev-top-position:0px;--e-n-carousel-arrow-next-right-align:0%;--e-n-carousel-arrow-next-translate-x:0%;--e-n-carousel-arrow-next-right-position:30px;--e-n-carousel-arrow-next-top-align:50%;--e-n-carousel-arrow-next-translate-y:-50%;--e-n-carousel-arrow-next-top-position:0px;--e-n-carousel-arrow-size:46px;--e-n-carousel-arrow-normal-color:var( --e-global-color-primary );--e-n-carousel-arrow-hover-color:var( --e-global-color-primary );--e-n-carousel-swiper-pagination-size:3px;--e-n-carousel-progressbar-normal-color:var( --e-global-color-primary );}.elementor-8312 .elementor-element.elementor-element-5554d72e > .elementor-container > .elementor-column > .elementor-widget-wrap{align-content:center;align-items:center;}.elementor-8312 .elementor-element.elementor-element-5554d72e{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;margin-top:75px;margin-bottom:0px;padding:0px 30px 0px 30px;}.elementor-8312 .elementor-element.elementor-element-5554d72e > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-8312 .elementor-element.elementor-element-30f10015 > .elementor-widget-wrap > .elementor-widget:not(.elementor-widget__width-auto):not(.elementor-widget__width-initial):not(:last-child):not(.elementor-absolute){--kit-widget-spacing:0px;}.elementor-widget-divider .elementor-divider__text{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;}.elementor-8312 .elementor-element.elementor-element-54c10cf0{--divider-border-style:solid;--divider-color:var( --e-global-color-primary );--divider-border-width:1px;width:auto;max-width:auto;margin:0px 20px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-8312 .elementor-element.elementor-element-54c10cf0 .elementor-divider-separator{width:50px;}.elementor-8312 .elementor-element.elementor-element-54c10cf0 .elementor-divider{padding-block-start:15px;padding-block-end:15px;}.elementor-8312 .elementor-element.elementor-element-6d06d9f9{width:auto;max-width:auto;align-self:center;}.elementor-8312 .elementor-element.elementor-element-6d06d9f9 .elementor-heading-title{font-family:var( --e-global-typography-35a2a4f-font-family ), Sans-serif;font-size:var( --e-global-typography-35a2a4f-font-size );font-weight:var( --e-global-typography-35a2a4f-font-weight );text-transform:var( --e-global-typography-35a2a4f-text-transform );color:#B8722E;}.elementor-8312 .elementor-element.elementor-element-79a13c4d{margin:35px 0px calc(var(--kit-widget-spacing, 0px) + 35px) 0px;}.elementor-8312 .elementor-element.elementor-element-79a13c4d .elementor-heading-title{font-family:var( --e-global-typography-heading_title-font-family ), Sans-serif;font-size:var( --e-global-typography-heading_title-font-size );font-weight:var( --e-global-typography-heading_title-font-weight );line-height:var( --e-global-typography-heading_title-line-height );color:var( --e-global-color-accent );}.elementor-8312 .elementor-element.elementor-element-450d541d{font-size:20px;font-weight:500;color:var( --e-global-color-text_lighter );}.elementor-bc-flex-widget .elementor-8312 .elementor-element.elementor-element-15bfe372.elementor-column .elementor-widget-wrap{align-items:flex-end;}.elementor-8312 .elementor-element.elementor-element-15bfe372.elementor-column.elementor-element[data-element_type="column"] > .elementor-widget-wrap.elementor-element-populated{align-content:flex-end;align-items:flex-end;}.elementor-8312 .elementor-element.elementor-element-15bfe372 > .elementor-widget-wrap > .elementor-widget:not(.elementor-widget__width-auto):not(.elementor-widget__width-initial):not(:last-child):not(.elementor-absolute){--kit-widget-spacing:0px;}.elementor-8312 .elementor-element.elementor-element-6bc95991{--display:grid;--e-con-grid-template-columns:repeat(3, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--grid-auto-flow:row;--margin-top:045px;--margin-bottom:75px;--margin-left:0px;--margin-right:0px;}.elementor-8312 .elementor-element.elementor-element-318b11d4{--display:grid;--e-con-grid-template-columns:repeat(1, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--grid-auto-flow:row;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8312 .elementor-element.elementor-element-ba04399{--e-image-carousel-slides-to-show:1;margin:10px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-8312 .elementor-element.elementor-element-ba04399.elementor-element{--align-self:center;}.elementor-8312 .elementor-element.elementor-element-ba04399 .elementor-swiper-button.elementor-swiper-button-prev, .elementor-8312 .elementor-element.elementor-element-ba04399 .elementor-swiper-button.elementor-swiper-button-next{color:var( --e-global-color-primary );}.elementor-8312 .elementor-element.elementor-element-ba04399 .elementor-swiper-button.elementor-swiper-button-prev svg, .elementor-8312 .elementor-element.elementor-element-ba04399 .elementor-swiper-button.elementor-swiper-button-next svg{fill:var( --e-global-color-primary );}.elementor-8312 .elementor-element.elementor-element-ba04399 .elementor-image-carousel-wrapper .elementor-image-carousel .swiper-slide-image{border-radius:0px 0px 0px 0px;}.elementor-8312 .elementor-element.elementor-element-3de39e7{--display:grid;--min-height:0px;--e-con-grid-template-columns:repeat(3, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--grid-auto-flow:row;--border-radius:0px 0px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8312 .elementor-element.elementor-element-3de39e7.e-con{--align-self:flex-start;}.elementor-8312 .elementor-element.elementor-element-45004af9{--display:grid;--min-height:0px;--e-con-grid-template-columns:repeat(2, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--gap:0px 0px;--row-gap:0px;--column-gap:0px;--grid-auto-flow:row;--border-radius:0px 0px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8312 .elementor-element.elementor-element-45004af9:not(.elementor-motion-effects-element-type-background), .elementor-8312 .elementor-element.elementor-element-45004af9 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-45004af9.e-con{--align-self:center;}.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-8312 .elementor-element.elementor-element-1b9f334d{width:var( --container-widget-width, 40% );max-width:40%;--e-transform-translateY:4px;margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 15px;--container-widget-width:40%;--container-widget-flex-grow:0;}.elementor-8312 .elementor-element.elementor-element-1b9f334d.elementor-element{--align-self:center;--flex-grow:0;--flex-shrink:0;}.elementor-8312 .elementor-element.elementor-element-1b9f334d .elementor-icon-wrapper{text-align:center;}.elementor-8312 .elementor-element.elementor-element-1b9f334d .elementor-icon{font-size:18px;}.elementor-8312 .elementor-element.elementor-element-1b9f334d .elementor-icon svg{height:18px;}.elementor-8312 .elementor-element.elementor-element-769622eb{width:var( --container-widget-width, 100% );max-width:100%;--e-transform-translateX:-20px;--e-transform-translateY:6px;margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;--container-widget-width:100%;--container-widget-flex-grow:0;column-gap:30px;text-align:center;font-family:"Archivo", Sans-serif;font-size:13px;}.elementor-8312 .elementor-element.elementor-element-2b29e748{--display:grid;--min-height:0px;--e-con-grid-template-columns:repeat(2, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--gap:0px 0px;--row-gap:0px;--column-gap:0px;--grid-auto-flow:row;--justify-items:center;--align-items:center;--border-radius:0px 0px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8312 .elementor-element.elementor-element-2b29e748:not(.elementor-motion-effects-element-type-background), .elementor-8312 .elementor-element.elementor-element-2b29e748 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-2b29e748.e-con{--align-self:flex-start;}.elementor-8312 .elementor-element.elementor-element-51b1b90a{width:var( --container-widget-width, 40% );max-width:40%;--e-transform-translateY:4px;--container-widget-width:40%;--container-widget-flex-grow:0;}.elementor-8312 .elementor-element.elementor-element-51b1b90a.elementor-element{--align-self:center;--flex-grow:0;--flex-shrink:0;}.elementor-8312 .elementor-element.elementor-element-51b1b90a .elementor-icon-wrapper{text-align:center;}.elementor-8312 .elementor-element.elementor-element-51b1b90a .elementor-icon{font-size:18px;}.elementor-8312 .elementor-element.elementor-element-51b1b90a .elementor-icon svg{height:18px;}.elementor-8312 .elementor-element.elementor-element-44344580{width:var( --container-widget-width, 100% );max-width:100%;--e-transform-translateX:-20px;--e-transform-translateY:6px;margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;--container-widget-width:100%;--container-widget-flex-grow:0;column-gap:30px;text-align:center;font-family:"Archivo", Sans-serif;font-size:13px;}.elementor-8312 .elementor-element.elementor-element-7c0f6f5e{--display:grid;--min-height:0px;--e-con-grid-template-columns:repeat(2, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--gap:0px 0px;--row-gap:0px;--column-gap:0px;--grid-auto-flow:row;--justify-items:center;--align-items:center;--border-radius:0px 0px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8312 .elementor-element.elementor-element-7c0f6f5e:not(.elementor-motion-effects-element-type-background), .elementor-8312 .elementor-element.elementor-element-7c0f6f5e > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-7c0f6f5e.e-con{--align-self:flex-start;}.elementor-8312 .elementor-element.elementor-element-1c34e46b{width:var( --container-widget-width, 40% );max-width:40%;--e-transform-translateY:4px;--container-widget-width:40%;--container-widget-flex-grow:0;}.elementor-8312 .elementor-element.elementor-element-1c34e46b.elementor-element{--align-self:center;--flex-grow:0;--flex-shrink:0;}.elementor-8312 .elementor-element.elementor-element-1c34e46b .elementor-icon-wrapper{text-align:center;}.elementor-8312 .elementor-element.elementor-element-1c34e46b .elementor-icon{font-size:18px;}.elementor-8312 .elementor-element.elementor-element-1c34e46b .elementor-icon svg{height:18px;}.elementor-8312 .elementor-element.elementor-element-2b6a7ccb{width:var( --container-widget-width, 100% );max-width:100%;--e-transform-translateX:-20px;--e-transform-translateY:6px;margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;--container-widget-width:100%;--container-widget-flex-grow:0;column-gap:30px;text-align:center;font-family:"Archivo", Sans-serif;font-size:13px;}.elementor-8312 .elementor-element.elementor-element-333ab785{margin:-15px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;}.elementor-8312 .elementor-element.elementor-element-4a2a7a91{--display:grid;--e-con-grid-template-columns:repeat(1, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--grid-auto-flow:row;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8312 .elementor-element.elementor-element-1644a450{--e-image-carousel-slides-to-show:1;margin:010px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-8312 .elementor-element.elementor-element-1644a450.elementor-element{--align-self:center;}.elementor-8312 .elementor-element.elementor-element-1644a450 .elementor-swiper-button.elementor-swiper-button-prev, .elementor-8312 .elementor-element.elementor-element-1644a450 .elementor-swiper-button.elementor-swiper-button-next{color:var( --e-global-color-primary );}.elementor-8312 .elementor-element.elementor-element-1644a450 .elementor-swiper-button.elementor-swiper-button-prev svg, .elementor-8312 .elementor-element.elementor-element-1644a450 .elementor-swiper-button.elementor-swiper-button-next svg{fill:var( --e-global-color-primary );}.elementor-8312 .elementor-element.elementor-element-1644a450 .elementor-image-carousel-wrapper .elementor-image-carousel .swiper-slide-image{border-radius:0px 0px 0px 0px;}.elementor-8312 .elementor-element.elementor-element-43f2ff9a{--display:grid;--min-height:0px;--e-con-grid-template-columns:repeat(3, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--grid-auto-flow:row;--border-radius:0px 0px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8312 .elementor-element.elementor-element-43f2ff9a.e-con{--align-self:flex-start;}.elementor-8312 .elementor-element.elementor-element-528bda89{--display:grid;--min-height:0px;--e-con-grid-template-columns:repeat(2, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--gap:0px 0px;--row-gap:0px;--column-gap:0px;--grid-auto-flow:row;--border-radius:0px 0px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8312 .elementor-element.elementor-element-528bda89:not(.elementor-motion-effects-element-type-background), .elementor-8312 .elementor-element.elementor-element-528bda89 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-528bda89.e-con{--align-self:center;}.elementor-8312 .elementor-element.elementor-element-4ef0fbf3{width:var( --container-widget-width, 40% );max-width:40%;--e-transform-translateY:4px;margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 15px;--container-widget-width:40%;--container-widget-flex-grow:0;}.elementor-8312 .elementor-element.elementor-element-4ef0fbf3.elementor-element{--align-self:center;--flex-grow:0;--flex-shrink:0;}.elementor-8312 .elementor-element.elementor-element-4ef0fbf3 .elementor-icon-wrapper{text-align:center;}.elementor-8312 .elementor-element.elementor-element-4ef0fbf3 .elementor-icon{font-size:18px;}.elementor-8312 .elementor-element.elementor-element-4ef0fbf3 .elementor-icon svg{height:18px;}.elementor-8312 .elementor-element.elementor-element-681e2665{width:var( --container-widget-width, 100% );max-width:100%;--e-transform-translateX:-20px;--e-transform-translateY:6px;margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;--container-widget-width:100%;--container-widget-flex-grow:0;column-gap:30px;text-align:center;font-family:"Archivo", Sans-serif;font-size:13px;}.elementor-8312 .elementor-element.elementor-element-651692d{--display:grid;--min-height:0px;--e-con-grid-template-columns:repeat(2, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--gap:0px 0px;--row-gap:0px;--column-gap:0px;--grid-auto-flow:row;--justify-items:center;--align-items:center;--border-radius:0px 0px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8312 .elementor-element.elementor-element-651692d:not(.elementor-motion-effects-element-type-background), .elementor-8312 .elementor-element.elementor-element-651692d > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-651692d.e-con{--align-self:flex-start;}.elementor-8312 .elementor-element.elementor-element-301d52ae{width:var( --container-widget-width, 40% );max-width:40%;--e-transform-translateY:4px;--container-widget-width:40%;--container-widget-flex-grow:0;}.elementor-8312 .elementor-element.elementor-element-301d52ae.elementor-element{--align-self:center;--flex-grow:0;--flex-shrink:0;}.elementor-8312 .elementor-element.elementor-element-301d52ae .elementor-icon-wrapper{text-align:center;}.elementor-8312 .elementor-element.elementor-element-301d52ae .elementor-icon{font-size:18px;}.elementor-8312 .elementor-element.elementor-element-301d52ae .elementor-icon svg{height:18px;}.elementor-8312 .elementor-element.elementor-element-4a05f9c3{width:var( --container-widget-width, 100% );max-width:100%;--e-transform-translateX:-20px;--e-transform-translateY:6px;margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;--container-widget-width:100%;--container-widget-flex-grow:0;column-gap:30px;text-align:center;font-family:"Archivo", Sans-serif;font-size:13px;}.elementor-8312 .elementor-element.elementor-element-6aabe32{--display:grid;--min-height:0px;--e-con-grid-template-columns:repeat(2, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--gap:0px 0px;--row-gap:0px;--column-gap:0px;--grid-auto-flow:row;--justify-items:center;--align-items:center;--border-radius:0px 0px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8312 .elementor-element.elementor-element-6aabe32:not(.elementor-motion-effects-element-type-background), .elementor-8312 .elementor-element.elementor-element-6aabe32 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-6aabe32.e-con{--align-self:flex-start;}.elementor-8312 .elementor-element.elementor-element-3239af57{width:var( --container-widget-width, 40% );max-width:40%;--e-transform-translateY:4px;--container-widget-width:40%;--container-widget-flex-grow:0;}.elementor-8312 .elementor-element.elementor-element-3239af57.elementor-element{--align-self:center;--flex-grow:0;--flex-shrink:0;}.elementor-8312 .elementor-element.elementor-element-3239af57 .elementor-icon-wrapper{text-align:center;}.elementor-8312 .elementor-element.elementor-element-3239af57 .elementor-icon{font-size:18px;}.elementor-8312 .elementor-element.elementor-element-3239af57 .elementor-icon svg{height:18px;}.elementor-8312 .elementor-element.elementor-element-5fd2a012{width:var( --container-widget-width, 100% );max-width:100%;--e-transform-translateX:-20px;--e-transform-translateY:6px;margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;--container-widget-width:100%;--container-widget-flex-grow:0;column-gap:30px;text-align:center;font-family:"Archivo", Sans-serif;font-size:13px;}.elementor-8312 .elementor-element.elementor-element-47e67061{margin:-15px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;}.elementor-8312 .elementor-element.elementor-element-10ce5b71{--display:grid;--e-con-grid-template-columns:repeat(1, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--grid-auto-flow:row;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8312 .elementor-element.elementor-element-6878f735{--e-image-carousel-slides-to-show:1;margin:10px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-8312 .elementor-element.elementor-element-6878f735.elementor-element{--align-self:center;}.elementor-8312 .elementor-element.elementor-element-6878f735 .elementor-swiper-button.elementor-swiper-button-prev, .elementor-8312 .elementor-element.elementor-element-6878f735 .elementor-swiper-button.elementor-swiper-button-next{color:var( --e-global-color-primary );}.elementor-8312 .elementor-element.elementor-element-6878f735 .elementor-swiper-button.elementor-swiper-button-prev svg, .elementor-8312 .elementor-element.elementor-element-6878f735 .elementor-swiper-button.elementor-swiper-button-next svg{fill:var( --e-global-color-primary );}.elementor-8312 .elementor-element.elementor-element-6878f735 .elementor-image-carousel-wrapper .elementor-image-carousel .swiper-slide-image{border-radius:0px 0px 0px 0px;}.elementor-8312 .elementor-element.elementor-element-274100d1{--display:grid;--min-height:0px;--e-con-grid-template-columns:repeat(3, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--grid-auto-flow:row;--border-radius:0px 0px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8312 .elementor-element.elementor-element-274100d1.e-con{--align-self:flex-start;}.elementor-8312 .elementor-element.elementor-element-207ba43a{--display:grid;--min-height:0px;--e-con-grid-template-columns:repeat(2, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--gap:0px 0px;--row-gap:0px;--column-gap:0px;--grid-auto-flow:row;--border-radius:0px 0px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8312 .elementor-element.elementor-element-207ba43a:not(.elementor-motion-effects-element-type-background), .elementor-8312 .elementor-element.elementor-element-207ba43a > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-207ba43a.e-con{--align-self:center;}.elementor-8312 .elementor-element.elementor-element-7023f94b{width:var( --container-widget-width, 40% );max-width:40%;--e-transform-translateY:4px;margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 15px;--container-widget-width:40%;--container-widget-flex-grow:0;}.elementor-8312 .elementor-element.elementor-element-7023f94b.elementor-element{--align-self:center;--flex-grow:0;--flex-shrink:0;}.elementor-8312 .elementor-element.elementor-element-7023f94b .elementor-icon-wrapper{text-align:center;}.elementor-8312 .elementor-element.elementor-element-7023f94b .elementor-icon{font-size:18px;}.elementor-8312 .elementor-element.elementor-element-7023f94b .elementor-icon svg{height:18px;}.elementor-8312 .elementor-element.elementor-element-6acdbcd9{width:var( --container-widget-width, 100% );max-width:100%;--e-transform-translateX:-20px;--e-transform-translateY:6px;margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;--container-widget-width:100%;--container-widget-flex-grow:0;column-gap:30px;text-align:center;font-family:"Archivo", Sans-serif;font-size:13px;}.elementor-8312 .elementor-element.elementor-element-1d7e12a2{--display:grid;--min-height:0px;--e-con-grid-template-columns:repeat(2, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--gap:0px 0px;--row-gap:0px;--column-gap:0px;--grid-auto-flow:row;--justify-items:center;--align-items:center;--border-radius:0px 0px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8312 .elementor-element.elementor-element-1d7e12a2:not(.elementor-motion-effects-element-type-background), .elementor-8312 .elementor-element.elementor-element-1d7e12a2 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-1d7e12a2.e-con{--align-self:flex-start;}.elementor-8312 .elementor-element.elementor-element-2719f363{width:var( --container-widget-width, 40% );max-width:40%;--e-transform-translateY:4px;--container-widget-width:40%;--container-widget-flex-grow:0;}.elementor-8312 .elementor-element.elementor-element-2719f363.elementor-element{--align-self:center;--flex-grow:0;--flex-shrink:0;}.elementor-8312 .elementor-element.elementor-element-2719f363 .elementor-icon-wrapper{text-align:center;}.elementor-8312 .elementor-element.elementor-element-2719f363 .elementor-icon{font-size:18px;}.elementor-8312 .elementor-element.elementor-element-2719f363 .elementor-icon svg{height:18px;}.elementor-8312 .elementor-element.elementor-element-656ddab3{width:var( --container-widget-width, 100% );max-width:100%;--e-transform-translateX:-20px;--e-transform-translateY:6px;margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;--container-widget-width:100%;--container-widget-flex-grow:0;column-gap:30px;text-align:center;font-family:"Archivo", Sans-serif;font-size:13px;}.elementor-8312 .elementor-element.elementor-element-6e2ad4f4{--display:grid;--min-height:0px;--e-con-grid-template-columns:repeat(2, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--gap:0px 0px;--row-gap:0px;--column-gap:0px;--grid-auto-flow:row;--justify-items:center;--align-items:center;--border-radius:0px 0px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8312 .elementor-element.elementor-element-6e2ad4f4:not(.elementor-motion-effects-element-type-background), .elementor-8312 .elementor-element.elementor-element-6e2ad4f4 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-lighter );}.elementor-8312 .elementor-element.elementor-element-6e2ad4f4.e-con{--align-self:flex-start;}.elementor-8312 .elementor-element.elementor-element-7b7f20a{width:var( --container-widget-width, 40% );max-width:40%;--e-transform-translateY:4px;--container-widget-width:40%;--container-widget-flex-grow:0;}.elementor-8312 .elementor-element.elementor-element-7b7f20a.elementor-element{--align-self:center;--flex-grow:0;--flex-shrink:0;}.elementor-8312 .elementor-element.elementor-element-7b7f20a .elementor-icon-wrapper{text-align:center;}.elementor-8312 .elementor-element.elementor-element-7b7f20a .elementor-icon{font-size:18px;}.elementor-8312 .elementor-element.elementor-element-7b7f20a .elementor-icon svg{height:18px;}.elementor-8312 .elementor-element.elementor-element-590c2068{width:var( --container-widget-width, 100% );max-width:100%;--e-transform-translateX:-20px;--e-transform-translateY:6px;margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;--container-widget-width:100%;--container-widget-flex-grow:0;column-gap:30px;text-align:center;font-family:"Archivo", Sans-serif;font-size:13px;}.elementor-8312 .elementor-element.elementor-element-105dd130{margin:-15px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;}.elementor-8312 .elementor-element.elementor-element-3c9cfce8 > .elementor-background-overlay{background-color:transparent;background-image:linear-gradient(90deg, #FFFFFF 18%, #F2295B00 18%);opacity:1;}.elementor-8312 .elementor-element.elementor-element-3c9cfce8{padding:150px 30px 150px 30px;}.elementor-8312 .elementor-element.elementor-element-5a720ad5 > .elementor-element-populated{padding:0% 20% 0% 0%;}.elementor-8312 .elementor-element.elementor-element-43884bd0{--divider-border-style:solid;--divider-color:var( --e-global-color-primary );--divider-border-width:1px;width:auto;max-width:auto;margin:0px 20px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-8312 .elementor-element.elementor-element-43884bd0 .elementor-divider-separator{width:50px;}.elementor-8312 .elementor-element.elementor-element-43884bd0 .elementor-divider{padding-block-start:15px;padding-block-end:15px;}.elementor-8312 .elementor-element.elementor-element-52be29c0{width:auto;max-width:auto;align-self:center;}.elementor-8312 .elementor-element.elementor-element-52be29c0 .elementor-heading-title{font-family:var( --e-global-typography-35a2a4f-font-family ), Sans-serif;font-size:var( --e-global-typography-35a2a4f-font-size );font-weight:var( --e-global-typography-35a2a4f-font-weight );text-transform:var( --e-global-typography-35a2a4f-text-transform );}.elementor-8312 .elementor-element.elementor-element-654d4e58{margin:35px 0px calc(var(--kit-widget-spacing, 0px) + 35px) 0px;text-align:start;}.elementor-8312 .elementor-element.elementor-element-654d4e58 .elementor-heading-title{font-family:var( --e-global-typography-heading_title-font-family ), Sans-serif;font-size:var( --e-global-typography-heading_title-font-size );font-weight:var( --e-global-typography-heading_title-font-weight );line-height:var( --e-global-typography-heading_title-line-height );color:var( --e-global-color-accent );}.elementor-8312 .elementor-element.elementor-element-46601d12{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 45px) 0px;font-size:20px;font-weight:500;color:var( --e-global-color-text_lighter );}.elementor-8312 .elementor-element.elementor-element-5e2fb121 .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-8312 .elementor-element.elementor-element-5e316bfb{width:var( --container-widget-width, 56vw );max-width:56vw;--container-widget-width:56vw;--container-widget-flex-grow:0;}.elementor-8312 .elementor-element.elementor-element-5e316bfb .elementor-image-carousel-item-wrapper .image{height:500px;}.elementor-8312 .elementor-element.elementor-element-5e316bfb .slick-slide-bg{animation-duration:calc(5000ms*1.2);transition-duration:calc(5000ms);}.elementor-8312 .elementor-element.elementor-element-5e316bfb .slick-dots{text-align:center;}.elementor-8312 .elementor-element.elementor-element-40a1d732:not(.elementor-motion-effects-element-type-background), .elementor-8312 .elementor-element.elementor-element-40a1d732 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://smartavillas.com/wp-content/uploads/2026/07/CASA-39-30.webp");background-position:center center;background-size:cover;}.elementor-8312 .elementor-element.elementor-element-40a1d732 > .elementor-container{max-width:630px;}.elementor-8312 .elementor-element.elementor-element-40a1d732{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;margin-top:0px;margin-bottom:150px;padding:150px 30px 150px 30px;}.elementor-8312 .elementor-element.elementor-element-40a1d732 > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-8312 .elementor-element.elementor-element-42e14d3a:not(.elementor-motion-effects-element-type-background) > .elementor-widget-wrap, .elementor-8312 .elementor-element.elementor-element-42e14d3a > .elementor-widget-wrap > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-8312 .elementor-element.elementor-element-42e14d3a.elementor-column > .elementor-widget-wrap{justify-content:center;}.elementor-8312 .elementor-element.elementor-element-42e14d3a > .elementor-widget-wrap > .elementor-widget:not(.elementor-widget__width-auto):not(.elementor-widget__width-initial):not(:last-child):not(.elementor-absolute){--kit-widget-spacing:0px;}.elementor-8312 .elementor-element.elementor-element-42e14d3a > .elementor-element-populated{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;padding:85px 50px 85px 50px;}.elementor-8312 .elementor-element.elementor-element-42e14d3a > .elementor-element-populated > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-8312 .elementor-element.elementor-element-777bf988{width:auto;max-width:auto;margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 20px) 0px;align-self:center;}.elementor-8312 .elementor-element.elementor-element-777bf988 .elementor-heading-title{font-family:var( --e-global-typography-35a2a4f-font-family ), Sans-serif;font-size:var( --e-global-typography-35a2a4f-font-size );font-weight:var( --e-global-typography-35a2a4f-font-weight );text-transform:var( --e-global-typography-35a2a4f-text-transform );}.elementor-8312 .elementor-element.elementor-element-26f302cd{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 25px) 0px;text-align:center;}.elementor-8312 .elementor-element.elementor-element-26f302cd .elementor-heading-title{font-size:48px;color:var( --e-global-color-accent );}.elementor-8312 .elementor-element.elementor-element-5257be89{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 25px) 0px;text-align:center;font-size:20px;color:var( --e-global-color-text_lighter );}.elementor-8312 .elementor-element.elementor-element-52f8c6ea .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-8312 .elementor-element.elementor-element-52f8c6ea .elementor-button .elementor-button-icon i{font-size:10px;}.elementor-8312 .elementor-element.elementor-element-52f8c6ea .elementor-button .elementor-button-icon{display:flex;align-items:center;}.elementor-8312 .elementor-element.elementor-element-52f8c6ea .elementor-button-icon{color:var( --e-global-color-accent );}.elementor-8312 .elementor-element.elementor-element-17b4f4a8{margin-top:0px;margin-bottom:45px;padding:0px 30px 0px 30px;}.elementor-8312 .elementor-element.elementor-element-2dc4db5d > .elementor-widget-wrap > .elementor-widget:not(.elementor-widget__width-auto):not(.elementor-widget__width-initial):not(:last-child):not(.elementor-absolute){--kit-widget-spacing:0px;}.elementor-8312 .elementor-element.elementor-element-6724cd5b{--divider-border-style:solid;--divider-color:var( --e-global-color-primary );--divider-border-width:1px;width:auto;max-width:auto;margin:0px 20px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-8312 .elementor-element.elementor-element-6724cd5b .elementor-divider-separator{width:50px;}.elementor-8312 .elementor-element.elementor-element-6724cd5b .elementor-divider{padding-block-start:15px;padding-block-end:15px;}.elementor-8312 .elementor-element.elementor-element-228b0068{width:auto;max-width:auto;align-self:center;}.elementor-8312 .elementor-element.elementor-element-228b0068 .elementor-heading-title{font-family:var( --e-global-typography-35a2a4f-font-family ), Sans-serif;font-size:var( --e-global-typography-35a2a4f-font-size );font-weight:var( --e-global-typography-35a2a4f-font-weight );text-transform:var( --e-global-typography-35a2a4f-text-transform );color:#B8722E;}.elementor-8312 .elementor-element.elementor-element-73237363{--spacer-size:35px;}.elementor-8312 .elementor-element.elementor-element-13dd5c39{width:auto;max-width:auto;margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 35px) 0px;align-self:center;}.elementor-8312 .elementor-element.elementor-element-13dd5c39 .elementor-heading-title{font-family:var( --e-global-typography-heading_title-font-family ), Sans-serif;font-size:var( --e-global-typography-heading_title-font-size );font-weight:var( --e-global-typography-heading_title-font-weight );line-height:var( --e-global-typography-heading_title-line-height );color:var( --e-global-color-accent );}.elementor-8312 .elementor-element.elementor-element-122d0202{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 45px) 0px;font-size:20px;font-weight:500;color:var( --e-global-color-text_lighter );}.elementor-bc-flex-widget .elementor-8312 .elementor-element.elementor-element-5c5a1f1b.elementor-column .elementor-widget-wrap{align-items:flex-end;}.elementor-8312 .elementor-element.elementor-element-5c5a1f1b.elementor-column.elementor-element[data-element_type="column"] > .elementor-widget-wrap.elementor-element-populated{align-content:flex-end;align-items:flex-end;}.elementor-8312 .elementor-element.elementor-element-5c5a1f1b > .elementor-widget-wrap > .elementor-widget:not(.elementor-widget__width-auto):not(.elementor-widget__width-initial):not(:last-child):not(.elementor-absolute){--kit-widget-spacing:0px;}.elementor-8312 .elementor-element.elementor-element-774870e9 .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-8312 .elementor-element.elementor-element-774870e9 .elementor-button .elementor-button-icon i{font-size:10px;}.elementor-8312 .elementor-element.elementor-element-774870e9 .elementor-button .elementor-button-icon{display:flex;align-items:center;}.elementor-8312 .elementor-element.elementor-element-774870e9 .elementor-button-icon{color:var( --e-global-color-accent );}.elementor-8312 .elementor-element.elementor-element-2e48a55b{margin-top:0px;margin-bottom:100px;padding:0px 30px 0px 30px;}.elementor-8312 .elementor-element.elementor-element-1cd2100a > .elementor-widget-wrap > .elementor-widget:not(.elementor-widget__width-auto):not(.elementor-widget__width-initial):not(:last-child):not(.elementor-absolute){--kit-widget-spacing:0px;}.elementor-8312 .elementor-element.elementor-element-2a024f17 .slick-dots{text-align:center;}.elementor-8312 .elementor-element.elementor-element-492b585e{--display:flex;--margin-top:0px;--margin-bottom:0100px;--margin-left:0px;--margin-right:0px;}@media(max-width:1366px){.elementor-8312 .elementor-element.elementor-element-324bafff .elementor-heading-title{font-size:var( --e-global-typography-heading_title-font-size );line-height:var( --e-global-typography-heading_title-line-height );}.elementor-8312 .elementor-element.elementor-element-6d06d9f9 .elementor-heading-title{font-size:var( --e-global-typography-35a2a4f-font-size );}.elementor-8312 .elementor-element.elementor-element-79a13c4d .elementor-heading-title{font-size:var( --e-global-typography-heading_title-font-size );line-height:var( --e-global-typography-heading_title-line-height );}.elementor-8312 .elementor-element.elementor-element-6bc95991{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-318b11d4{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-3de39e7{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-45004af9{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-769622eb{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 10px;font-size:12px;}.elementor-8312 .elementor-element.elementor-element-2b29e748{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-2b29e748.e-con{--align-self:center;}.elementor-8312 .elementor-element.elementor-element-44344580{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 10px;font-size:12px;}.elementor-8312 .elementor-element.elementor-element-7c0f6f5e{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-7c0f6f5e.e-con{--align-self:center;}.elementor-8312 .elementor-element.elementor-element-2b6a7ccb{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 10px;font-size:12px;}.elementor-8312 .elementor-element.elementor-element-4a2a7a91{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-43f2ff9a{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-528bda89{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-681e2665{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 10px;font-size:12px;}.elementor-8312 .elementor-element.elementor-element-651692d{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-651692d.e-con{--align-self:center;}.elementor-8312 .elementor-element.elementor-element-4a05f9c3{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 10px;font-size:12px;}.elementor-8312 .elementor-element.elementor-element-6aabe32{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-6aabe32.e-con{--align-self:center;}.elementor-8312 .elementor-element.elementor-element-5fd2a012{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 10px;font-size:12px;}.elementor-8312 .elementor-element.elementor-element-10ce5b71{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-274100d1{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-207ba43a{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-6acdbcd9{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 10px;font-size:12px;}.elementor-8312 .elementor-element.elementor-element-1d7e12a2{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-1d7e12a2.e-con{--align-self:center;}.elementor-8312 .elementor-element.elementor-element-656ddab3{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 10px;font-size:12px;}.elementor-8312 .elementor-element.elementor-element-6e2ad4f4{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-6e2ad4f4.e-con{--align-self:center;}.elementor-8312 .elementor-element.elementor-element-590c2068{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 10px;font-size:12px;}.elementor-8312 .elementor-element.elementor-element-52be29c0 .elementor-heading-title{font-size:var( --e-global-typography-35a2a4f-font-size );}.elementor-8312 .elementor-element.elementor-element-654d4e58 .elementor-heading-title{font-size:var( --e-global-typography-heading_title-font-size );line-height:var( --e-global-typography-heading_title-line-height );}.elementor-8312 .elementor-element.elementor-element-777bf988 .elementor-heading-title{font-size:var( --e-global-typography-35a2a4f-font-size );}.elementor-8312 .elementor-element.elementor-element-228b0068 .elementor-heading-title{font-size:var( --e-global-typography-35a2a4f-font-size );}.elementor-8312 .elementor-element.elementor-element-13dd5c39 .elementor-heading-title{font-size:var( --e-global-typography-heading_title-font-size );line-height:var( --e-global-typography-heading_title-line-height );}}@media(min-width:768px){.elementor-8312 .elementor-element.elementor-element-427f86ff{width:62.482%;}.elementor-8312 .elementor-element.elementor-element-72bb2ec2{width:37.483%;}.elementor-8312 .elementor-element.elementor-element-30f10015{width:60%;}.elementor-8312 .elementor-element.elementor-element-15bfe372{width:40%;}.elementor-8312 .elementor-element.elementor-element-3de39e7{--width:100%;}.elementor-8312 .elementor-element.elementor-element-45004af9{--width:100%;}.elementor-8312 .elementor-element.elementor-element-2b29e748{--width:100%;}.elementor-8312 .elementor-element.elementor-element-7c0f6f5e{--width:100%;}.elementor-8312 .elementor-element.elementor-element-43f2ff9a{--width:100%;}.elementor-8312 .elementor-element.elementor-element-528bda89{--width:100%;}.elementor-8312 .elementor-element.elementor-element-651692d{--width:100%;}.elementor-8312 .elementor-element.elementor-element-6aabe32{--width:100%;}.elementor-8312 .elementor-element.elementor-element-274100d1{--width:100%;}.elementor-8312 .elementor-element.elementor-element-207ba43a{--width:100%;}.elementor-8312 .elementor-element.elementor-element-1d7e12a2{--width:100%;}.elementor-8312 .elementor-element.elementor-element-6e2ad4f4{--width:100%;}}@media(min-width:2400px){.elementor-8312 .elementor-element.elementor-element-324bafff .elementor-heading-title{font-size:var( --e-global-typography-heading_title-font-size );line-height:var( --e-global-typography-heading_title-line-height );}.elementor-8312 .elementor-element.elementor-element-6d06d9f9 .elementor-heading-title{font-size:var( --e-global-typography-35a2a4f-font-size );}.elementor-8312 .elementor-element.elementor-element-79a13c4d .elementor-heading-title{font-size:var( --e-global-typography-heading_title-font-size );line-height:var( --e-global-typography-heading_title-line-height );}.elementor-8312 .elementor-element.elementor-element-6bc95991{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-318b11d4{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-3de39e7{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-45004af9{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-1b9f334d{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 15px;}.elementor-8312 .elementor-element.elementor-element-2b29e748{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-7c0f6f5e{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-4a2a7a91{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-43f2ff9a{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-528bda89{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-4ef0fbf3{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 15px;}.elementor-8312 .elementor-element.elementor-element-651692d{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-6aabe32{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-10ce5b71{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-274100d1{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-207ba43a{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-7023f94b{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 15px;}.elementor-8312 .elementor-element.elementor-element-1d7e12a2{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-6e2ad4f4{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-52be29c0 .elementor-heading-title{font-size:var( --e-global-typography-35a2a4f-font-size );}.elementor-8312 .elementor-element.elementor-element-654d4e58 .elementor-heading-title{font-size:var( --e-global-typography-heading_title-font-size );line-height:var( --e-global-typography-heading_title-line-height );}.elementor-8312 .elementor-element.elementor-element-777bf988 .elementor-heading-title{font-size:var( --e-global-typography-35a2a4f-font-size );}.elementor-8312 .elementor-element.elementor-element-228b0068 .elementor-heading-title{font-size:var( --e-global-typography-35a2a4f-font-size );}.elementor-8312 .elementor-element.elementor-element-13dd5c39 .elementor-heading-title{font-size:var( --e-global-typography-heading_title-font-size );line-height:var( --e-global-typography-heading_title-line-height );}}@media(max-width:1200px){.elementor-8312 .elementor-element.elementor-element-71712b53 > .elementor-container{min-height:700px;}.elementor-8312 .elementor-element.elementor-element-c17baa2 > .elementor-element-populated{padding:0px 30px 0px 30px;}.elementor-8312 .elementor-element.elementor-element-6587204d .elementor-heading-title{font-size:80px;}.elementor-8312 .elementor-element.elementor-element-5554d72e{padding:80px 30px 60px 30px;}.elementor-8312 .elementor-element.elementor-element-6bc95991{--e-con-grid-template-columns:repeat(2, 1fr);--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-318b11d4{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-3de39e7{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-45004af9{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-769622eb{font-size:13px;}.elementor-8312 .elementor-element.elementor-element-2b29e748{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-44344580{font-size:13px;}.elementor-8312 .elementor-element.elementor-element-7c0f6f5e{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-2b6a7ccb{font-size:13px;}.elementor-8312 .elementor-element.elementor-element-4a2a7a91{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-43f2ff9a{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-528bda89{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-681e2665{font-size:13px;}.elementor-8312 .elementor-element.elementor-element-651692d{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-4a05f9c3{font-size:13px;}.elementor-8312 .elementor-element.elementor-element-6aabe32{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-5fd2a012{font-size:13px;}.elementor-8312 .elementor-element.elementor-element-10ce5b71{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-274100d1{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-207ba43a{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-6acdbcd9{font-size:13px;}.elementor-8312 .elementor-element.elementor-element-1d7e12a2{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-656ddab3{font-size:13px;}.elementor-8312 .elementor-element.elementor-element-6e2ad4f4{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-590c2068{font-size:13px;}.elementor-8312 .elementor-element.elementor-element-3c9cfce8{padding:100px 30px 100px 30px;}.elementor-8312 .elementor-element.elementor-element-5e316bfb{width:100%;max-width:100%;}.elementor-8312 .elementor-element.elementor-element-40a1d732{margin-top:0px;margin-bottom:100px;padding:100px 30px 100px 30px;}.elementor-8312 .elementor-element.elementor-element-2e48a55b{margin-top:0px;margin-bottom:60px;}}@media(max-width:1024px){.elementor-8312 .elementor-element.elementor-element-6587204d .elementor-heading-title{font-size:60px;}.elementor-8312 .elementor-element.elementor-element-6cd80701{margin-top:0px;margin-bottom:30px;}.elementor-8312 .elementor-element.elementor-element-d9dc945{--spacer-size:20px;}.elementor-8312 .elementor-element.elementor-element-324bafff .elementor-heading-title{font-size:var( --e-global-typography-heading_title-font-size );line-height:var( --e-global-typography-heading_title-line-height );}.elementor-8312 .elementor-element.elementor-element-78d32903{--e-n-carousel-swiper-slides-to-display:2;}.elementor-8312 .elementor-element.elementor-element-5554d72e{padding:80px 30px 30px 30px;}.elementor-8312 .elementor-element.elementor-element-6d06d9f9 .elementor-heading-title{font-size:var( --e-global-typography-35a2a4f-font-size );}.elementor-8312 .elementor-element.elementor-element-79a13c4d{margin:30px 0px calc(var(--kit-widget-spacing, 0px) + 30px) 0px;}.elementor-8312 .elementor-element.elementor-element-79a13c4d .elementor-heading-title{font-size:var( --e-global-typography-heading_title-font-size );line-height:var( --e-global-typography-heading_title-line-height );}.elementor-8312 .elementor-element.elementor-element-6bc95991{--e-con-grid-template-columns:repeat(2, 1fr);--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-318b11d4{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-3de39e7{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-45004af9{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-1b9f334d{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 15px;}.elementor-8312 .elementor-element.elementor-element-1b9f334d .elementor-icon{font-size:18px;}.elementor-8312 .elementor-element.elementor-element-1b9f334d .elementor-icon svg{height:18px;}.elementor-8312 .elementor-element.elementor-element-769622eb{font-size:13px;}.elementor-8312 .elementor-element.elementor-element-2b29e748{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-51b1b90a{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 3px) 0px;}.elementor-8312 .elementor-element.elementor-element-51b1b90a .elementor-icon{font-size:18px;}.elementor-8312 .elementor-element.elementor-element-51b1b90a .elementor-icon svg{height:18px;}.elementor-8312 .elementor-element.elementor-element-44344580{font-size:13px;}.elementor-8312 .elementor-element.elementor-element-7c0f6f5e{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-1c34e46b{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-8312 .elementor-element.elementor-element-1c34e46b .elementor-icon{font-size:18px;}.elementor-8312 .elementor-element.elementor-element-1c34e46b .elementor-icon svg{height:18px;}.elementor-8312 .elementor-element.elementor-element-2b6a7ccb{font-size:13px;}.elementor-8312 .elementor-element.elementor-element-4a2a7a91{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-43f2ff9a{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-528bda89{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-4ef0fbf3{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 15px;}.elementor-8312 .elementor-element.elementor-element-4ef0fbf3 .elementor-icon{font-size:18px;}.elementor-8312 .elementor-element.elementor-element-4ef0fbf3 .elementor-icon svg{height:18px;}.elementor-8312 .elementor-element.elementor-element-681e2665{font-size:13px;}.elementor-8312 .elementor-element.elementor-element-651692d{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-301d52ae{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 3px) 0px;}.elementor-8312 .elementor-element.elementor-element-301d52ae .elementor-icon{font-size:18px;}.elementor-8312 .elementor-element.elementor-element-301d52ae .elementor-icon svg{height:18px;}.elementor-8312 .elementor-element.elementor-element-4a05f9c3{font-size:13px;}.elementor-8312 .elementor-element.elementor-element-6aabe32{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-3239af57{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-8312 .elementor-element.elementor-element-3239af57 .elementor-icon{font-size:18px;}.elementor-8312 .elementor-element.elementor-element-3239af57 .elementor-icon svg{height:18px;}.elementor-8312 .elementor-element.elementor-element-5fd2a012{font-size:13px;}.elementor-8312 .elementor-element.elementor-element-10ce5b71{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-274100d1{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-207ba43a{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-7023f94b{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 15px;}.elementor-8312 .elementor-element.elementor-element-7023f94b .elementor-icon{font-size:18px;}.elementor-8312 .elementor-element.elementor-element-7023f94b .elementor-icon svg{height:18px;}.elementor-8312 .elementor-element.elementor-element-6acdbcd9{font-size:13px;}.elementor-8312 .elementor-element.elementor-element-1d7e12a2{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-2719f363{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 3px) 0px;}.elementor-8312 .elementor-element.elementor-element-2719f363 .elementor-icon{font-size:18px;}.elementor-8312 .elementor-element.elementor-element-2719f363 .elementor-icon svg{height:18px;}.elementor-8312 .elementor-element.elementor-element-656ddab3{font-size:13px;}.elementor-8312 .elementor-element.elementor-element-6e2ad4f4{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-7b7f20a{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-8312 .elementor-element.elementor-element-7b7f20a .elementor-icon{font-size:18px;}.elementor-8312 .elementor-element.elementor-element-7b7f20a .elementor-icon svg{height:18px;}.elementor-8312 .elementor-element.elementor-element-590c2068{font-size:13px;}.elementor-8312 .elementor-element.elementor-element-3c9cfce8{padding:80px 30px 80px 30px;}.elementor-8312 .elementor-element.elementor-element-52be29c0 .elementor-heading-title{font-size:var( --e-global-typography-35a2a4f-font-size );}.elementor-8312 .elementor-element.elementor-element-654d4e58{margin:30px 0px calc(var(--kit-widget-spacing, 0px) + 30px) 0px;}.elementor-8312 .elementor-element.elementor-element-654d4e58 .elementor-heading-title{font-size:var( --e-global-typography-heading_title-font-size );line-height:var( --e-global-typography-heading_title-line-height );}.elementor-8312 .elementor-element.elementor-element-40a1d732{margin-top:0px;margin-bottom:80px;padding:80px 30px 80px 30px;}.elementor-8312 .elementor-element.elementor-element-777bf988 .elementor-heading-title{font-size:var( --e-global-typography-35a2a4f-font-size );}.elementor-8312 .elementor-element.elementor-element-26f302cd .elementor-heading-title{font-size:42px;}.elementor-8312 .elementor-element.elementor-element-17b4f4a8{margin-top:0px;margin-bottom:30px;}.elementor-8312 .elementor-element.elementor-element-228b0068 .elementor-heading-title{font-size:var( --e-global-typography-35a2a4f-font-size );}.elementor-8312 .elementor-element.elementor-element-73237363{--spacer-size:30px;}.elementor-8312 .elementor-element.elementor-element-13dd5c39 .elementor-heading-title{font-size:var( --e-global-typography-heading_title-font-size );line-height:var( --e-global-typography-heading_title-line-height );}.elementor-8312 .elementor-element.elementor-element-2e48a55b{margin-top:0px;margin-bottom:30px;}}@media(max-width:880px){.elementor-8312 .elementor-element.elementor-element-71712b53 > .elementor-container{min-height:500px;}.elementor-8312 .elementor-element.elementor-element-6587204d .elementor-heading-title{font-size:48px;}.elementor-8312 .elementor-element.elementor-element-5554d72e{padding:60px 30px 30px 30px;}.elementor-8312 .elementor-element.elementor-element-6bc95991{--e-con-grid-template-columns:repeat(2, 1fr);--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-318b11d4{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-3de39e7{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-45004af9{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-1b9f334d{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 16px;}.elementor-8312 .elementor-element.elementor-element-769622eb{font-size:11px;}.elementor-8312 .elementor-element.elementor-element-2b29e748{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-44344580{font-size:11px;}.elementor-8312 .elementor-element.elementor-element-7c0f6f5e{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-2b6a7ccb{font-size:11px;}.elementor-8312 .elementor-element.elementor-element-4a2a7a91{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-43f2ff9a{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-528bda89{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-4ef0fbf3{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 16px;}.elementor-8312 .elementor-element.elementor-element-681e2665{font-size:11px;}.elementor-8312 .elementor-element.elementor-element-651692d{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-4a05f9c3{font-size:11px;}.elementor-8312 .elementor-element.elementor-element-6aabe32{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-5fd2a012{font-size:11px;}.elementor-8312 .elementor-element.elementor-element-10ce5b71{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-274100d1{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-207ba43a{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-7023f94b{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 16px;}.elementor-8312 .elementor-element.elementor-element-6acdbcd9{font-size:11px;}.elementor-8312 .elementor-element.elementor-element-1d7e12a2{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-656ddab3{font-size:11px;}.elementor-8312 .elementor-element.elementor-element-6e2ad4f4{--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-590c2068{font-size:11px;}.elementor-8312 .elementor-element.elementor-element-3c9cfce8{padding:60px 30px 60px 30px;}.elementor-8312 .elementor-element.elementor-element-40a1d732{margin-top:0px;margin-bottom:60px;padding:60px 30px 60px 30px;}.elementor-8312 .elementor-element.elementor-element-42e14d3a > .elementor-element-populated{padding:60px 30px 60px 30px;}.elementor-8312 .elementor-element.elementor-element-2e48a55b{margin-top:0px;margin-bottom:10px;}}@media(max-width:767px){.elementor-8312 .elementor-element.elementor-element-c17baa2 > .elementor-element-populated{padding:0px 15px 0px 15px;}.elementor-8312 .elementor-element.elementor-element-6587204d .elementor-heading-title{font-size:36px;}.elementor-8312 .elementor-element.elementor-element-6cd80701{padding:0px 15px 0px 15px;}.elementor-8312 .elementor-element.elementor-element-427f86ff.elementor-column > .elementor-widget-wrap{justify-content:center;}.elementor-8312 .elementor-element.elementor-element-427f86ff > .elementor-element-populated{margin:0px 0px 30px 0px;--e-column-margin-right:0px;--e-column-margin-left:0px;}.elementor-8312 .elementor-element.elementor-element-324bafff .elementor-heading-title{font-size:var( --e-global-typography-heading_title-font-size );line-height:var( --e-global-typography-heading_title-line-height );}.elementor-8312 .elementor-element.elementor-element-eb2293e{text-align:center;}.elementor-8312 .elementor-element.elementor-element-78d32903{--e-n-carousel-swiper-slides-to-display:1;}.elementor-8312 .elementor-element.elementor-element-5554d72e{padding:60px 15px 40px 15px;}.elementor-8312 .elementor-element.elementor-element-30f10015.elementor-column > .elementor-widget-wrap{justify-content:center;}.elementor-8312 .elementor-element.elementor-element-30f10015 > .elementor-element-populated{margin:0px 0px 30px 0px;--e-column-margin-right:0px;--e-column-margin-left:0px;}.elementor-8312 .elementor-element.elementor-element-6d06d9f9 .elementor-heading-title{font-size:var( --e-global-typography-35a2a4f-font-size );}.elementor-8312 .elementor-element.elementor-element-79a13c4d{margin:15px 0px calc(var(--kit-widget-spacing, 0px) + 15px) 0px;text-align:center;}.elementor-8312 .elementor-element.elementor-element-79a13c4d .elementor-heading-title{font-size:var( --e-global-typography-heading_title-font-size );line-height:var( --e-global-typography-heading_title-line-height );}.elementor-8312 .elementor-element.elementor-element-450d541d{text-align:center;}.elementor-8312 .elementor-element.elementor-element-6bc95991{--e-con-grid-template-columns:repeat(1, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-318b11d4{--e-con-grid-template-columns:repeat(1, 1fr);--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-3de39e7{--e-con-grid-template-columns:repeat(3, 1fr);--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-45004af9{--e-con-grid-template-columns:repeat(1, 1fr);--grid-auto-flow:row;--justify-items:center;--align-items:center;}.elementor-8312 .elementor-element.elementor-element-1b9f334d{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-8312 .elementor-element.elementor-element-769622eb{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 39px;}.elementor-8312 .elementor-element.elementor-element-769622eb.elementor-element{--align-self:center;}.elementor-8312 .elementor-element.elementor-element-2b29e748{--e-con-grid-template-columns:repeat(1, 1fr);--grid-auto-flow:row;--justify-items:center;--align-items:center;}.elementor-8312 .elementor-element.elementor-element-44344580{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 40px;}.elementor-8312 .elementor-element.elementor-element-44344580.elementor-element{--align-self:center;}.elementor-8312 .elementor-element.elementor-element-7c0f6f5e{--e-con-grid-template-columns:repeat(1, 1fr);--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-2b6a7ccb{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 39px;}.elementor-8312 .elementor-element.elementor-element-2b6a7ccb.elementor-element{--align-self:center;}.elementor-8312 .elementor-element.elementor-element-4a2a7a91{--e-con-grid-template-columns:repeat(1, 1fr);--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-43f2ff9a{--e-con-grid-template-columns:repeat(3, 1fr);--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-528bda89{--e-con-grid-template-columns:repeat(1, 1fr);--grid-auto-flow:row;--justify-items:center;--align-items:center;}.elementor-8312 .elementor-element.elementor-element-4ef0fbf3{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-8312 .elementor-element.elementor-element-681e2665{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 39px;}.elementor-8312 .elementor-element.elementor-element-681e2665.elementor-element{--align-self:center;}.elementor-8312 .elementor-element.elementor-element-651692d{--e-con-grid-template-columns:repeat(1, 1fr);--grid-auto-flow:row;--justify-items:center;--align-items:center;}.elementor-8312 .elementor-element.elementor-element-4a05f9c3{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 40px;}.elementor-8312 .elementor-element.elementor-element-4a05f9c3.elementor-element{--align-self:center;}.elementor-8312 .elementor-element.elementor-element-6aabe32{--e-con-grid-template-columns:repeat(1, 1fr);--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-5fd2a012{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 39px;}.elementor-8312 .elementor-element.elementor-element-5fd2a012.elementor-element{--align-self:center;}.elementor-8312 .elementor-element.elementor-element-10ce5b71{--e-con-grid-template-columns:repeat(1, 1fr);--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-274100d1{--e-con-grid-template-columns:repeat(3, 1fr);--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-207ba43a{--e-con-grid-template-columns:repeat(1, 1fr);--grid-auto-flow:row;--justify-items:center;--align-items:center;}.elementor-8312 .elementor-element.elementor-element-7023f94b{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-8312 .elementor-element.elementor-element-6acdbcd9{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 39px;}.elementor-8312 .elementor-element.elementor-element-6acdbcd9.elementor-element{--align-self:center;}.elementor-8312 .elementor-element.elementor-element-1d7e12a2{--e-con-grid-template-columns:repeat(1, 1fr);--grid-auto-flow:row;--justify-items:center;--align-items:center;}.elementor-8312 .elementor-element.elementor-element-656ddab3{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 40px;}.elementor-8312 .elementor-element.elementor-element-656ddab3.elementor-element{--align-self:center;}.elementor-8312 .elementor-element.elementor-element-6e2ad4f4{--e-con-grid-template-columns:repeat(1, 1fr);--grid-auto-flow:row;}.elementor-8312 .elementor-element.elementor-element-590c2068{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 39px;}.elementor-8312 .elementor-element.elementor-element-590c2068.elementor-element{--align-self:center;}.elementor-8312 .elementor-element.elementor-element-3c9cfce8{padding:60px 15px 60px 15px;}.elementor-8312 .elementor-element.elementor-element-5a720ad5.elementor-column > .elementor-widget-wrap{justify-content:center;}.elementor-8312 .elementor-element.elementor-element-5a720ad5 > .elementor-element-populated{padding:0px 0px 30px 0px;}.elementor-8312 .elementor-element.elementor-element-52be29c0 .elementor-heading-title{font-size:var( --e-global-typography-35a2a4f-font-size );}.elementor-8312 .elementor-element.elementor-element-654d4e58{text-align:center;}.elementor-8312 .elementor-element.elementor-element-654d4e58 .elementor-heading-title{font-size:var( --e-global-typography-heading_title-font-size );line-height:var( --e-global-typography-heading_title-line-height );}.elementor-8312 .elementor-element.elementor-element-46601d12{text-align:center;}.elementor-8312 .elementor-element.elementor-element-5e316bfb .elementor-image-carousel-item-wrapper .image{height:300px;}.elementor-8312 .elementor-element.elementor-element-40a1d732{padding:60px 15px 60px 15px;}.elementor-8312 .elementor-element.elementor-element-777bf988 .elementor-heading-title{font-size:var( --e-global-typography-35a2a4f-font-size );}.elementor-8312 .elementor-element.elementor-element-26f302cd .elementor-heading-title{font-size:36px;}.elementor-8312 .elementor-element.elementor-element-17b4f4a8{padding:0px 15px 0px 15px;}.elementor-8312 .elementor-element.elementor-element-2dc4db5d.elementor-column > .elementor-widget-wrap{justify-content:center;}.elementor-8312 .elementor-element.elementor-element-228b0068 .elementor-heading-title{font-size:var( --e-global-typography-35a2a4f-font-size );}.elementor-8312 .elementor-element.elementor-element-73237363{--spacer-size:15px;}.elementor-8312 .elementor-element.elementor-element-13dd5c39 .elementor-heading-title{font-size:var( --e-global-typography-heading_title-font-size );line-height:var( --e-global-typography-heading_title-line-height );}.elementor-8312 .elementor-element.elementor-element-122d0202{text-align:center;}.elementor-8312 .elementor-element.elementor-element-2e48a55b{margin-top:0px;margin-bottom:60px;padding:0px 15px 0px 15px;}}/* Start custom CSS for section, class: .elementor-element-71712b53 */.seccao-video-oculto {
    position: relative !important;
    width: 100% !important;
    aspect-ratio: 16 / 9 !important; /* Mantém a proporção exata em telemóveis e PC */
    overflow: hidden !important;
    background-color: #000000 !important;
}

/* 2. Força o iframe do YouTube a preencher toda a secção background */
.seccao-video-oculto iframe {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    z-index: 1 !important;
}

/* 3. Cria a máscara do Topo (Esconde Título/Autor) */
.seccao-video-oculto::before {
    content: "" !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 15% !important; /* Altura em % para ser totalmente responsiva */
    background: #000000 !important;
    z-index: 10 !important;
    pointer-events: none !important;
}

/* 4. Cria a máscara da Base (Esconde Controlos/Links) */
.seccao-video-oculto::after {
    content: "" !important;
    position: absolute !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 13% !important; /* Ajuste proporcional para ecrãs mais pequenos */
    background: #000000 !important;
    z-index: 10 !important;
    pointer-events: none !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-40460892 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-40460892 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-40460892 a, 
.elementor-8312 .elementor-element.elementor-element-40460892 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-40460892 a::after, 
.elementor-8312 .elementor-element.elementor-element-40460892 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-40460892:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-40460892:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-65233b98 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-65233b98 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-65233b98:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-dd26aac *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-dd26aac .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-dd26aac a, 
.elementor-8312 .elementor-element.elementor-element-dd26aac .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-dd26aac a::after, 
.elementor-8312 .elementor-element.elementor-element-dd26aac .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-dd26aac:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-dd26aac:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-696c5b4c */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-696c5b4c {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-696c5b4c:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-661af8b7 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-661af8b7 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-661af8b7 a, 
.elementor-8312 .elementor-element.elementor-element-661af8b7 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-661af8b7 a::after, 
.elementor-8312 .elementor-element.elementor-element-661af8b7 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-661af8b7:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-661af8b7:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-18acaa99 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-18acaa99 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-18acaa99:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-9e1588f *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-9e1588f .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-9e1588f a, 
.elementor-8312 .elementor-element.elementor-element-9e1588f .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-9e1588f a::after, 
.elementor-8312 .elementor-element.elementor-element-9e1588f .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-9e1588f:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-9e1588f:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-1793fe7 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-1793fe7 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-1793fe7:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-3501cb2f *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-3501cb2f .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-3501cb2f a, 
.elementor-8312 .elementor-element.elementor-element-3501cb2f .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-3501cb2f a::after, 
.elementor-8312 .elementor-element.elementor-element-3501cb2f .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-3501cb2f:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-3501cb2f:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-7e8b690 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-7e8b690 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-7e8b690:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-10dec9f2 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-10dec9f2 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-10dec9f2 a, 
.elementor-8312 .elementor-element.elementor-element-10dec9f2 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-10dec9f2 a::after, 
.elementor-8312 .elementor-element.elementor-element-10dec9f2 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-10dec9f2:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-10dec9f2:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-53e26838 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-53e26838 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-53e26838:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-544cbc9c *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-544cbc9c .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-544cbc9c a, 
.elementor-8312 .elementor-element.elementor-element-544cbc9c .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-544cbc9c a::after, 
.elementor-8312 .elementor-element.elementor-element-544cbc9c .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-544cbc9c:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-544cbc9c:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-5af13970 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-5af13970 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-5af13970:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-3c0e6187 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-3c0e6187 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-3c0e6187 a, 
.elementor-8312 .elementor-element.elementor-element-3c0e6187 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-3c0e6187 a::after, 
.elementor-8312 .elementor-element.elementor-element-3c0e6187 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-3c0e6187:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-3c0e6187:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-3ca367f6 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-3ca367f6 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-3ca367f6:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-3fe2c115 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-3fe2c115 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-3fe2c115 a, 
.elementor-8312 .elementor-element.elementor-element-3fe2c115 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-3fe2c115 a::after, 
.elementor-8312 .elementor-element.elementor-element-3fe2c115 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-3fe2c115:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-3fe2c115:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-388afeb5 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-388afeb5 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-388afeb5:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-7fbd7951 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-7fbd7951 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-7fbd7951 a, 
.elementor-8312 .elementor-element.elementor-element-7fbd7951 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-7fbd7951 a::after, 
.elementor-8312 .elementor-element.elementor-element-7fbd7951 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-7fbd7951:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-7fbd7951:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-16e6a068 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-16e6a068 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-16e6a068:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-40460892 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-40460892 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-40460892 a, 
.elementor-8312 .elementor-element.elementor-element-40460892 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-40460892 a::after, 
.elementor-8312 .elementor-element.elementor-element-40460892 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-40460892:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-40460892:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-65233b98 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-65233b98 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-65233b98:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-dd26aac *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-dd26aac .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-dd26aac a, 
.elementor-8312 .elementor-element.elementor-element-dd26aac .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-dd26aac a::after, 
.elementor-8312 .elementor-element.elementor-element-dd26aac .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-dd26aac:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-dd26aac:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-696c5b4c */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-696c5b4c {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-696c5b4c:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-661af8b7 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-661af8b7 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-661af8b7 a, 
.elementor-8312 .elementor-element.elementor-element-661af8b7 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-661af8b7 a::after, 
.elementor-8312 .elementor-element.elementor-element-661af8b7 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-661af8b7:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-661af8b7:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-18acaa99 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-18acaa99 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-18acaa99:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-9e1588f *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-9e1588f .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-9e1588f a, 
.elementor-8312 .elementor-element.elementor-element-9e1588f .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-9e1588f a::after, 
.elementor-8312 .elementor-element.elementor-element-9e1588f .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-9e1588f:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-9e1588f:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-1793fe7 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-1793fe7 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-1793fe7:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-3501cb2f *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-3501cb2f .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-3501cb2f a, 
.elementor-8312 .elementor-element.elementor-element-3501cb2f .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-3501cb2f a::after, 
.elementor-8312 .elementor-element.elementor-element-3501cb2f .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-3501cb2f:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-3501cb2f:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-7e8b690 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-7e8b690 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-7e8b690:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-10dec9f2 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-10dec9f2 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-10dec9f2 a, 
.elementor-8312 .elementor-element.elementor-element-10dec9f2 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-10dec9f2 a::after, 
.elementor-8312 .elementor-element.elementor-element-10dec9f2 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-10dec9f2:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-10dec9f2:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-53e26838 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-53e26838 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-53e26838:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-544cbc9c *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-544cbc9c .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-544cbc9c a, 
.elementor-8312 .elementor-element.elementor-element-544cbc9c .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-544cbc9c a::after, 
.elementor-8312 .elementor-element.elementor-element-544cbc9c .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-544cbc9c:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-544cbc9c:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-5af13970 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-5af13970 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-5af13970:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-3c0e6187 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-3c0e6187 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-3c0e6187 a, 
.elementor-8312 .elementor-element.elementor-element-3c0e6187 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-3c0e6187 a::after, 
.elementor-8312 .elementor-element.elementor-element-3c0e6187 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-3c0e6187:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-3c0e6187:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-3ca367f6 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-3ca367f6 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-3ca367f6:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-3fe2c115 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-3fe2c115 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-3fe2c115 a, 
.elementor-8312 .elementor-element.elementor-element-3fe2c115 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-3fe2c115 a::after, 
.elementor-8312 .elementor-element.elementor-element-3fe2c115 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-3fe2c115:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-3fe2c115:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-388afeb5 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-388afeb5 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-388afeb5:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-7fbd7951 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-7fbd7951 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-7fbd7951 a, 
.elementor-8312 .elementor-element.elementor-element-7fbd7951 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-7fbd7951 a::after, 
.elementor-8312 .elementor-element.elementor-element-7fbd7951 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-7fbd7951:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-7fbd7951:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-16e6a068 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-16e6a068 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-16e6a068:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-40460892 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-40460892 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-40460892 a, 
.elementor-8312 .elementor-element.elementor-element-40460892 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-40460892 a::after, 
.elementor-8312 .elementor-element.elementor-element-40460892 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-40460892:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-40460892:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-65233b98 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-65233b98 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-65233b98:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-dd26aac *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-dd26aac .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-dd26aac a, 
.elementor-8312 .elementor-element.elementor-element-dd26aac .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-dd26aac a::after, 
.elementor-8312 .elementor-element.elementor-element-dd26aac .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-dd26aac:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-dd26aac:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-696c5b4c */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-696c5b4c {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-696c5b4c:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-661af8b7 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-661af8b7 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-661af8b7 a, 
.elementor-8312 .elementor-element.elementor-element-661af8b7 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-661af8b7 a::after, 
.elementor-8312 .elementor-element.elementor-element-661af8b7 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-661af8b7:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-661af8b7:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-18acaa99 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-18acaa99 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-18acaa99:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-9e1588f *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-9e1588f .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-9e1588f a, 
.elementor-8312 .elementor-element.elementor-element-9e1588f .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-9e1588f a::after, 
.elementor-8312 .elementor-element.elementor-element-9e1588f .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-9e1588f:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-9e1588f:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-1793fe7 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-1793fe7 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-1793fe7:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-3501cb2f *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-3501cb2f .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-3501cb2f a, 
.elementor-8312 .elementor-element.elementor-element-3501cb2f .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-3501cb2f a::after, 
.elementor-8312 .elementor-element.elementor-element-3501cb2f .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-3501cb2f:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-3501cb2f:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-7e8b690 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-7e8b690 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-7e8b690:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-10dec9f2 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-10dec9f2 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-10dec9f2 a, 
.elementor-8312 .elementor-element.elementor-element-10dec9f2 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-10dec9f2 a::after, 
.elementor-8312 .elementor-element.elementor-element-10dec9f2 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-10dec9f2:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-10dec9f2:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-53e26838 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-53e26838 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-53e26838:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-544cbc9c *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-544cbc9c .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-544cbc9c a, 
.elementor-8312 .elementor-element.elementor-element-544cbc9c .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-544cbc9c a::after, 
.elementor-8312 .elementor-element.elementor-element-544cbc9c .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-544cbc9c:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-544cbc9c:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-5af13970 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-5af13970 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-5af13970:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-3c0e6187 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-3c0e6187 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-3c0e6187 a, 
.elementor-8312 .elementor-element.elementor-element-3c0e6187 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-3c0e6187 a::after, 
.elementor-8312 .elementor-element.elementor-element-3c0e6187 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-3c0e6187:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-3c0e6187:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-3ca367f6 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-3ca367f6 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-3ca367f6:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-3fe2c115 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-3fe2c115 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-3fe2c115 a, 
.elementor-8312 .elementor-element.elementor-element-3fe2c115 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-3fe2c115 a::after, 
.elementor-8312 .elementor-element.elementor-element-3fe2c115 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-3fe2c115:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-3fe2c115:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-388afeb5 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-388afeb5 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-388afeb5:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-7fbd7951 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-7fbd7951 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-7fbd7951 a, 
.elementor-8312 .elementor-element.elementor-element-7fbd7951 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-7fbd7951 a::after, 
.elementor-8312 .elementor-element.elementor-element-7fbd7951 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-7fbd7951:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-7fbd7951:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-16e6a068 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-16e6a068 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-16e6a068:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-40460892 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-40460892 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-40460892 a, 
.elementor-8312 .elementor-element.elementor-element-40460892 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-40460892 a::after, 
.elementor-8312 .elementor-element.elementor-element-40460892 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-40460892:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-40460892:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-65233b98 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-65233b98 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-65233b98:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-dd26aac *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-dd26aac .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-dd26aac a, 
.elementor-8312 .elementor-element.elementor-element-dd26aac .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-dd26aac a::after, 
.elementor-8312 .elementor-element.elementor-element-dd26aac .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-dd26aac:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-dd26aac:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-696c5b4c */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-696c5b4c {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-696c5b4c:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-661af8b7 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-661af8b7 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-661af8b7 a, 
.elementor-8312 .elementor-element.elementor-element-661af8b7 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-661af8b7 a::after, 
.elementor-8312 .elementor-element.elementor-element-661af8b7 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-661af8b7:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-661af8b7:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-18acaa99 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-18acaa99 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-18acaa99:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-9e1588f *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-9e1588f .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-9e1588f a, 
.elementor-8312 .elementor-element.elementor-element-9e1588f .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-9e1588f a::after, 
.elementor-8312 .elementor-element.elementor-element-9e1588f .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-9e1588f:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-9e1588f:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-1793fe7 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-1793fe7 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-1793fe7:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-3501cb2f *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-3501cb2f .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-3501cb2f a, 
.elementor-8312 .elementor-element.elementor-element-3501cb2f .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-3501cb2f a::after, 
.elementor-8312 .elementor-element.elementor-element-3501cb2f .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-3501cb2f:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-3501cb2f:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-7e8b690 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-7e8b690 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-7e8b690:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-10dec9f2 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-10dec9f2 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-10dec9f2 a, 
.elementor-8312 .elementor-element.elementor-element-10dec9f2 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-10dec9f2 a::after, 
.elementor-8312 .elementor-element.elementor-element-10dec9f2 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-10dec9f2:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-10dec9f2:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-53e26838 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-53e26838 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-53e26838:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-544cbc9c *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-544cbc9c .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-544cbc9c a, 
.elementor-8312 .elementor-element.elementor-element-544cbc9c .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-544cbc9c a::after, 
.elementor-8312 .elementor-element.elementor-element-544cbc9c .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-544cbc9c:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-544cbc9c:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-5af13970 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-5af13970 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-5af13970:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-3c0e6187 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-3c0e6187 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-3c0e6187 a, 
.elementor-8312 .elementor-element.elementor-element-3c0e6187 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-3c0e6187 a::after, 
.elementor-8312 .elementor-element.elementor-element-3c0e6187 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-3c0e6187:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-3c0e6187:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-3ca367f6 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-3ca367f6 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-3ca367f6:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-3fe2c115 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-3fe2c115 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-3fe2c115 a, 
.elementor-8312 .elementor-element.elementor-element-3fe2c115 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-3fe2c115 a::after, 
.elementor-8312 .elementor-element.elementor-element-3fe2c115 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-3fe2c115:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-3fe2c115:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-388afeb5 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-388afeb5 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-388afeb5:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-7fbd7951 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-7fbd7951 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-7fbd7951 a, 
.elementor-8312 .elementor-element.elementor-element-7fbd7951 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-7fbd7951 a::after, 
.elementor-8312 .elementor-element.elementor-element-7fbd7951 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-7fbd7951:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-7fbd7951:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-16e6a068 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-16e6a068 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-16e6a068:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-40460892 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-40460892 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-40460892 a, 
.elementor-8312 .elementor-element.elementor-element-40460892 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-40460892 a::after, 
.elementor-8312 .elementor-element.elementor-element-40460892 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-40460892:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-40460892:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-65233b98 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-65233b98 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-65233b98:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-dd26aac *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-dd26aac .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-dd26aac a, 
.elementor-8312 .elementor-element.elementor-element-dd26aac .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-dd26aac a::after, 
.elementor-8312 .elementor-element.elementor-element-dd26aac .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-dd26aac:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-dd26aac:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-696c5b4c */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-696c5b4c {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-696c5b4c:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-661af8b7 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-661af8b7 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-661af8b7 a, 
.elementor-8312 .elementor-element.elementor-element-661af8b7 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-661af8b7 a::after, 
.elementor-8312 .elementor-element.elementor-element-661af8b7 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-661af8b7:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-661af8b7:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-18acaa99 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-18acaa99 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-18acaa99:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-9e1588f *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-9e1588f .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-9e1588f a, 
.elementor-8312 .elementor-element.elementor-element-9e1588f .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-9e1588f a::after, 
.elementor-8312 .elementor-element.elementor-element-9e1588f .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-9e1588f:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-9e1588f:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-1793fe7 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-1793fe7 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-1793fe7:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-3501cb2f *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-3501cb2f .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-3501cb2f a, 
.elementor-8312 .elementor-element.elementor-element-3501cb2f .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-3501cb2f a::after, 
.elementor-8312 .elementor-element.elementor-element-3501cb2f .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-3501cb2f:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-3501cb2f:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-7e8b690 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-7e8b690 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-7e8b690:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-10dec9f2 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-10dec9f2 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-10dec9f2 a, 
.elementor-8312 .elementor-element.elementor-element-10dec9f2 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-10dec9f2 a::after, 
.elementor-8312 .elementor-element.elementor-element-10dec9f2 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-10dec9f2:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-10dec9f2:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-53e26838 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-53e26838 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-53e26838:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-544cbc9c *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-544cbc9c .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-544cbc9c a, 
.elementor-8312 .elementor-element.elementor-element-544cbc9c .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-544cbc9c a::after, 
.elementor-8312 .elementor-element.elementor-element-544cbc9c .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-544cbc9c:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-544cbc9c:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-5af13970 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-5af13970 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-5af13970:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-3c0e6187 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-3c0e6187 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-3c0e6187 a, 
.elementor-8312 .elementor-element.elementor-element-3c0e6187 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-3c0e6187 a::after, 
.elementor-8312 .elementor-element.elementor-element-3c0e6187 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-3c0e6187:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-3c0e6187:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-3ca367f6 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-3ca367f6 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-3ca367f6:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-3fe2c115 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-3fe2c115 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-3fe2c115 a, 
.elementor-8312 .elementor-element.elementor-element-3fe2c115 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-3fe2c115 a::after, 
.elementor-8312 .elementor-element.elementor-element-3fe2c115 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-3fe2c115:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-3fe2c115:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-388afeb5 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-388afeb5 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-388afeb5:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-7fbd7951 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-7fbd7951 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-7fbd7951 a, 
.elementor-8312 .elementor-element.elementor-element-7fbd7951 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-7fbd7951 a::after, 
.elementor-8312 .elementor-element.elementor-element-7fbd7951 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-7fbd7951:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-7fbd7951:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-16e6a068 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-16e6a068 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-16e6a068:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-40460892 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-40460892 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-40460892 a, 
.elementor-8312 .elementor-element.elementor-element-40460892 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-40460892 a::after, 
.elementor-8312 .elementor-element.elementor-element-40460892 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-40460892:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-40460892:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-65233b98 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-65233b98 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-65233b98:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-dd26aac *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-dd26aac .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-dd26aac a, 
.elementor-8312 .elementor-element.elementor-element-dd26aac .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-dd26aac a::after, 
.elementor-8312 .elementor-element.elementor-element-dd26aac .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-dd26aac:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-dd26aac:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-696c5b4c */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-696c5b4c {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-696c5b4c:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-661af8b7 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-661af8b7 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-661af8b7 a, 
.elementor-8312 .elementor-element.elementor-element-661af8b7 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-661af8b7 a::after, 
.elementor-8312 .elementor-element.elementor-element-661af8b7 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-661af8b7:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-661af8b7:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-18acaa99 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-18acaa99 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-18acaa99:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-9e1588f *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-9e1588f .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-9e1588f a, 
.elementor-8312 .elementor-element.elementor-element-9e1588f .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-9e1588f a::after, 
.elementor-8312 .elementor-element.elementor-element-9e1588f .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-9e1588f:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-9e1588f:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-1793fe7 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-1793fe7 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-1793fe7:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-3501cb2f *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-3501cb2f .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-3501cb2f a, 
.elementor-8312 .elementor-element.elementor-element-3501cb2f .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-3501cb2f a::after, 
.elementor-8312 .elementor-element.elementor-element-3501cb2f .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-3501cb2f:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-3501cb2f:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-7e8b690 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-7e8b690 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-7e8b690:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-10dec9f2 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-10dec9f2 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-10dec9f2 a, 
.elementor-8312 .elementor-element.elementor-element-10dec9f2 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-10dec9f2 a::after, 
.elementor-8312 .elementor-element.elementor-element-10dec9f2 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-10dec9f2:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-10dec9f2:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-53e26838 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-53e26838 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-53e26838:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-544cbc9c *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-544cbc9c .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-544cbc9c a, 
.elementor-8312 .elementor-element.elementor-element-544cbc9c .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-544cbc9c a::after, 
.elementor-8312 .elementor-element.elementor-element-544cbc9c .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-544cbc9c:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-544cbc9c:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-5af13970 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-5af13970 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-5af13970:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-3c0e6187 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-3c0e6187 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-3c0e6187 a, 
.elementor-8312 .elementor-element.elementor-element-3c0e6187 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-3c0e6187 a::after, 
.elementor-8312 .elementor-element.elementor-element-3c0e6187 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-3c0e6187:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-3c0e6187:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-3ca367f6 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-3ca367f6 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-3ca367f6:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-3fe2c115 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-3fe2c115 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-3fe2c115 a, 
.elementor-8312 .elementor-element.elementor-element-3fe2c115 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-3fe2c115 a::after, 
.elementor-8312 .elementor-element.elementor-element-3fe2c115 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-3fe2c115:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-3fe2c115:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-388afeb5 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-388afeb5 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-388afeb5:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-7fbd7951 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-7fbd7951 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-7fbd7951 a, 
.elementor-8312 .elementor-element.elementor-element-7fbd7951 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-7fbd7951 a::after, 
.elementor-8312 .elementor-element.elementor-element-7fbd7951 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-7fbd7951:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-7fbd7951:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-16e6a068 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-16e6a068 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-16e6a068:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-40460892 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-40460892 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-40460892 a, 
.elementor-8312 .elementor-element.elementor-element-40460892 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-40460892 a::after, 
.elementor-8312 .elementor-element.elementor-element-40460892 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-40460892:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-40460892:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-65233b98 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-65233b98 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-65233b98:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-dd26aac *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-dd26aac .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-dd26aac a, 
.elementor-8312 .elementor-element.elementor-element-dd26aac .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-dd26aac a::after, 
.elementor-8312 .elementor-element.elementor-element-dd26aac .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-dd26aac:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-dd26aac:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-696c5b4c */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-696c5b4c {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-696c5b4c:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-661af8b7 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-661af8b7 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-661af8b7 a, 
.elementor-8312 .elementor-element.elementor-element-661af8b7 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-661af8b7 a::after, 
.elementor-8312 .elementor-element.elementor-element-661af8b7 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-661af8b7:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-661af8b7:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-18acaa99 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-18acaa99 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-18acaa99:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-9e1588f *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-9e1588f .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-9e1588f a, 
.elementor-8312 .elementor-element.elementor-element-9e1588f .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-9e1588f a::after, 
.elementor-8312 .elementor-element.elementor-element-9e1588f .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-9e1588f:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-9e1588f:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-1793fe7 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-1793fe7 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-1793fe7:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-3501cb2f *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-3501cb2f .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-3501cb2f a, 
.elementor-8312 .elementor-element.elementor-element-3501cb2f .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-3501cb2f a::after, 
.elementor-8312 .elementor-element.elementor-element-3501cb2f .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-3501cb2f:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-3501cb2f:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-7e8b690 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-7e8b690 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-7e8b690:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-10dec9f2 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-10dec9f2 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-10dec9f2 a, 
.elementor-8312 .elementor-element.elementor-element-10dec9f2 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-10dec9f2 a::after, 
.elementor-8312 .elementor-element.elementor-element-10dec9f2 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-10dec9f2:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-10dec9f2:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-53e26838 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-53e26838 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-53e26838:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-544cbc9c *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-544cbc9c .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-544cbc9c a, 
.elementor-8312 .elementor-element.elementor-element-544cbc9c .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-544cbc9c a::after, 
.elementor-8312 .elementor-element.elementor-element-544cbc9c .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-544cbc9c:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-544cbc9c:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-5af13970 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-5af13970 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-5af13970:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-3c0e6187 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-3c0e6187 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-3c0e6187 a, 
.elementor-8312 .elementor-element.elementor-element-3c0e6187 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-3c0e6187 a::after, 
.elementor-8312 .elementor-element.elementor-element-3c0e6187 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-3c0e6187:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-3c0e6187:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-3ca367f6 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-3ca367f6 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-3ca367f6:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-3fe2c115 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-3fe2c115 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-3fe2c115 a, 
.elementor-8312 .elementor-element.elementor-element-3fe2c115 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-3fe2c115 a::after, 
.elementor-8312 .elementor-element.elementor-element-3fe2c115 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-3fe2c115:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-3fe2c115:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-388afeb5 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-388afeb5 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-388afeb5:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-7fbd7951 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-7fbd7951 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-7fbd7951 a, 
.elementor-8312 .elementor-element.elementor-element-7fbd7951 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-7fbd7951 a::after, 
.elementor-8312 .elementor-element.elementor-element-7fbd7951 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-7fbd7951:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-7fbd7951:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-16e6a068 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-16e6a068 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-16e6a068:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-40460892 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-40460892 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-40460892 a, 
.elementor-8312 .elementor-element.elementor-element-40460892 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-40460892 a::after, 
.elementor-8312 .elementor-element.elementor-element-40460892 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-40460892:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-40460892:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-65233b98 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-65233b98 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-65233b98:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-dd26aac *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-dd26aac .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-dd26aac a, 
.elementor-8312 .elementor-element.elementor-element-dd26aac .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-dd26aac a::after, 
.elementor-8312 .elementor-element.elementor-element-dd26aac .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-dd26aac:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-dd26aac:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-696c5b4c */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-696c5b4c {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-696c5b4c:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-661af8b7 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-661af8b7 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-661af8b7 a, 
.elementor-8312 .elementor-element.elementor-element-661af8b7 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-661af8b7 a::after, 
.elementor-8312 .elementor-element.elementor-element-661af8b7 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-661af8b7:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-661af8b7:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-18acaa99 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-18acaa99 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-18acaa99:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-9e1588f *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-9e1588f .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-9e1588f a, 
.elementor-8312 .elementor-element.elementor-element-9e1588f .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-9e1588f a::after, 
.elementor-8312 .elementor-element.elementor-element-9e1588f .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-9e1588f:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-9e1588f:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-1793fe7 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-1793fe7 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-1793fe7:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-3501cb2f *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-3501cb2f .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-3501cb2f a, 
.elementor-8312 .elementor-element.elementor-element-3501cb2f .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-3501cb2f a::after, 
.elementor-8312 .elementor-element.elementor-element-3501cb2f .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-3501cb2f:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-3501cb2f:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-7e8b690 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-7e8b690 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-7e8b690:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-10dec9f2 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-10dec9f2 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-10dec9f2 a, 
.elementor-8312 .elementor-element.elementor-element-10dec9f2 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-10dec9f2 a::after, 
.elementor-8312 .elementor-element.elementor-element-10dec9f2 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-10dec9f2:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-10dec9f2:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-53e26838 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-53e26838 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-53e26838:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-544cbc9c *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-544cbc9c .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-544cbc9c a, 
.elementor-8312 .elementor-element.elementor-element-544cbc9c .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-544cbc9c a::after, 
.elementor-8312 .elementor-element.elementor-element-544cbc9c .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-544cbc9c:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-544cbc9c:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-5af13970 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-5af13970 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-5af13970:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-3c0e6187 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-3c0e6187 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-3c0e6187 a, 
.elementor-8312 .elementor-element.elementor-element-3c0e6187 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-3c0e6187 a::after, 
.elementor-8312 .elementor-element.elementor-element-3c0e6187 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-3c0e6187:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-3c0e6187:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-3ca367f6 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-3ca367f6 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-3ca367f6:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-3fe2c115 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-3fe2c115 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-3fe2c115 a, 
.elementor-8312 .elementor-element.elementor-element-3fe2c115 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-3fe2c115 a::after, 
.elementor-8312 .elementor-element.elementor-element-3fe2c115 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-3fe2c115:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-3fe2c115:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-388afeb5 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-388afeb5 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-388afeb5:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-7fbd7951 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-7fbd7951 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-7fbd7951 a, 
.elementor-8312 .elementor-element.elementor-element-7fbd7951 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-7fbd7951 a::after, 
.elementor-8312 .elementor-element.elementor-element-7fbd7951 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-7fbd7951:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-7fbd7951:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-16e6a068 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-16e6a068 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-16e6a068:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-40460892 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-40460892 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-40460892 a, 
.elementor-8312 .elementor-element.elementor-element-40460892 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-40460892 a::after, 
.elementor-8312 .elementor-element.elementor-element-40460892 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-40460892:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-40460892:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-65233b98 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-65233b98 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-65233b98:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-dd26aac *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-dd26aac .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-dd26aac a, 
.elementor-8312 .elementor-element.elementor-element-dd26aac .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-dd26aac a::after, 
.elementor-8312 .elementor-element.elementor-element-dd26aac .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-dd26aac:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-dd26aac:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-696c5b4c */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-696c5b4c {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-696c5b4c:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-661af8b7 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-661af8b7 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-661af8b7 a, 
.elementor-8312 .elementor-element.elementor-element-661af8b7 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-661af8b7 a::after, 
.elementor-8312 .elementor-element.elementor-element-661af8b7 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-661af8b7:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-661af8b7:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-18acaa99 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-18acaa99 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-18acaa99:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-9e1588f *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-9e1588f .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-9e1588f a, 
.elementor-8312 .elementor-element.elementor-element-9e1588f .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-9e1588f a::after, 
.elementor-8312 .elementor-element.elementor-element-9e1588f .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-9e1588f:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-9e1588f:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-1793fe7 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-1793fe7 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-1793fe7:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-3501cb2f *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-3501cb2f .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-3501cb2f a, 
.elementor-8312 .elementor-element.elementor-element-3501cb2f .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-3501cb2f a::after, 
.elementor-8312 .elementor-element.elementor-element-3501cb2f .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-3501cb2f:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-3501cb2f:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-7e8b690 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-7e8b690 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-7e8b690:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-10dec9f2 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-10dec9f2 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-10dec9f2 a, 
.elementor-8312 .elementor-element.elementor-element-10dec9f2 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-10dec9f2 a::after, 
.elementor-8312 .elementor-element.elementor-element-10dec9f2 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-10dec9f2:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-10dec9f2:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-53e26838 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-53e26838 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-53e26838:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-544cbc9c *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-544cbc9c .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-544cbc9c a, 
.elementor-8312 .elementor-element.elementor-element-544cbc9c .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-544cbc9c a::after, 
.elementor-8312 .elementor-element.elementor-element-544cbc9c .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-544cbc9c:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-544cbc9c:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-5af13970 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-5af13970 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-5af13970:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-3c0e6187 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-3c0e6187 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-3c0e6187 a, 
.elementor-8312 .elementor-element.elementor-element-3c0e6187 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-3c0e6187 a::after, 
.elementor-8312 .elementor-element.elementor-element-3c0e6187 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-3c0e6187:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-3c0e6187:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-3ca367f6 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-3ca367f6 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-3ca367f6:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-3fe2c115 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-3fe2c115 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-3fe2c115 a, 
.elementor-8312 .elementor-element.elementor-element-3fe2c115 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-3fe2c115 a::after, 
.elementor-8312 .elementor-element.elementor-element-3fe2c115 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-3fe2c115:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-3fe2c115:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-388afeb5 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-388afeb5 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-388afeb5:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-7fbd7951 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-7fbd7951 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-7fbd7951 a, 
.elementor-8312 .elementor-element.elementor-element-7fbd7951 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-7fbd7951 a::after, 
.elementor-8312 .elementor-element.elementor-element-7fbd7951 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-7fbd7951:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-7fbd7951:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-16e6a068 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-16e6a068 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-16e6a068:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-40460892 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-40460892 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-40460892 a, 
.elementor-8312 .elementor-element.elementor-element-40460892 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-40460892 a::after, 
.elementor-8312 .elementor-element.elementor-element-40460892 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-40460892:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-40460892:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-65233b98 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-65233b98 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-65233b98:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-dd26aac *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-dd26aac .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-dd26aac a, 
.elementor-8312 .elementor-element.elementor-element-dd26aac .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-dd26aac a::after, 
.elementor-8312 .elementor-element.elementor-element-dd26aac .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-dd26aac:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-dd26aac:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-696c5b4c */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-696c5b4c {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-696c5b4c:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-661af8b7 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-661af8b7 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-661af8b7 a, 
.elementor-8312 .elementor-element.elementor-element-661af8b7 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-661af8b7 a::after, 
.elementor-8312 .elementor-element.elementor-element-661af8b7 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-661af8b7:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-661af8b7:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-18acaa99 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-18acaa99 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-18acaa99:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-9e1588f *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-9e1588f .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-9e1588f a, 
.elementor-8312 .elementor-element.elementor-element-9e1588f .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-9e1588f a::after, 
.elementor-8312 .elementor-element.elementor-element-9e1588f .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-9e1588f:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-9e1588f:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-1793fe7 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-1793fe7 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-1793fe7:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-3501cb2f *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-3501cb2f .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-3501cb2f a, 
.elementor-8312 .elementor-element.elementor-element-3501cb2f .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-3501cb2f a::after, 
.elementor-8312 .elementor-element.elementor-element-3501cb2f .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-3501cb2f:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-3501cb2f:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-7e8b690 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-7e8b690 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-7e8b690:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-10dec9f2 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-10dec9f2 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-10dec9f2 a, 
.elementor-8312 .elementor-element.elementor-element-10dec9f2 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-10dec9f2 a::after, 
.elementor-8312 .elementor-element.elementor-element-10dec9f2 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-10dec9f2:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-10dec9f2:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-53e26838 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-53e26838 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-53e26838:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-544cbc9c *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-544cbc9c .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-544cbc9c a, 
.elementor-8312 .elementor-element.elementor-element-544cbc9c .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-544cbc9c a::after, 
.elementor-8312 .elementor-element.elementor-element-544cbc9c .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-544cbc9c:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-544cbc9c:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-5af13970 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-5af13970 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-5af13970:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-3c0e6187 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-3c0e6187 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-3c0e6187 a, 
.elementor-8312 .elementor-element.elementor-element-3c0e6187 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-3c0e6187 a::after, 
.elementor-8312 .elementor-element.elementor-element-3c0e6187 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-3c0e6187:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-3c0e6187:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-3ca367f6 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-3ca367f6 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-3ca367f6:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-3fe2c115 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-3fe2c115 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-3fe2c115 a, 
.elementor-8312 .elementor-element.elementor-element-3fe2c115 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-3fe2c115 a::after, 
.elementor-8312 .elementor-element.elementor-element-3fe2c115 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-3fe2c115:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-3fe2c115:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-388afeb5 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-388afeb5 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-388afeb5:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-7fbd7951 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-7fbd7951 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-7fbd7951 a, 
.elementor-8312 .elementor-element.elementor-element-7fbd7951 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-7fbd7951 a::after, 
.elementor-8312 .elementor-element.elementor-element-7fbd7951 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-7fbd7951:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-7fbd7951:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-16e6a068 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-16e6a068 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-16e6a068:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-40460892 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-40460892 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-40460892 a, 
.elementor-8312 .elementor-element.elementor-element-40460892 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-40460892 a::after, 
.elementor-8312 .elementor-element.elementor-element-40460892 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-40460892:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-40460892:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-65233b98 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-65233b98 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-65233b98:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-dd26aac *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-dd26aac .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-dd26aac a, 
.elementor-8312 .elementor-element.elementor-element-dd26aac .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-dd26aac a::after, 
.elementor-8312 .elementor-element.elementor-element-dd26aac .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-dd26aac:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-dd26aac:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-696c5b4c */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-696c5b4c {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-696c5b4c:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-661af8b7 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-661af8b7 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-661af8b7 a, 
.elementor-8312 .elementor-element.elementor-element-661af8b7 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-661af8b7 a::after, 
.elementor-8312 .elementor-element.elementor-element-661af8b7 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-661af8b7:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-661af8b7:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-18acaa99 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-18acaa99 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-18acaa99:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-9e1588f *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-9e1588f .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-9e1588f a, 
.elementor-8312 .elementor-element.elementor-element-9e1588f .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-9e1588f a::after, 
.elementor-8312 .elementor-element.elementor-element-9e1588f .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-9e1588f:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-9e1588f:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-1793fe7 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-1793fe7 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-1793fe7:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-3501cb2f *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-3501cb2f .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-3501cb2f a, 
.elementor-8312 .elementor-element.elementor-element-3501cb2f .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-3501cb2f a::after, 
.elementor-8312 .elementor-element.elementor-element-3501cb2f .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-3501cb2f:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-3501cb2f:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-7e8b690 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-7e8b690 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-7e8b690:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-10dec9f2 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-10dec9f2 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-10dec9f2 a, 
.elementor-8312 .elementor-element.elementor-element-10dec9f2 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-10dec9f2 a::after, 
.elementor-8312 .elementor-element.elementor-element-10dec9f2 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-10dec9f2:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-10dec9f2:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-53e26838 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-53e26838 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-53e26838:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-544cbc9c *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-544cbc9c .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-544cbc9c a, 
.elementor-8312 .elementor-element.elementor-element-544cbc9c .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-544cbc9c a::after, 
.elementor-8312 .elementor-element.elementor-element-544cbc9c .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-544cbc9c:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-544cbc9c:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-5af13970 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-5af13970 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-5af13970:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-3c0e6187 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-3c0e6187 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-3c0e6187 a, 
.elementor-8312 .elementor-element.elementor-element-3c0e6187 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-3c0e6187 a::after, 
.elementor-8312 .elementor-element.elementor-element-3c0e6187 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-3c0e6187:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-3c0e6187:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-3ca367f6 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-3ca367f6 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-3ca367f6:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-3fe2c115 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-3fe2c115 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-3fe2c115 a, 
.elementor-8312 .elementor-element.elementor-element-3fe2c115 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-3fe2c115 a::after, 
.elementor-8312 .elementor-element.elementor-element-3fe2c115 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-3fe2c115:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-3fe2c115:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-388afeb5 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-388afeb5 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-388afeb5:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-7fbd7951 *//* 1. Animação ajustada ao ritmo exato do Oliver's Travels */
@keyframes underlineReveal {
  0% {
    width: 100%;
  }
  15% {
    width: 0%; /* Apaga rapidamente num piscar de olhos */
  }
  100% {
    width: 100%; /* Expande de forma fluida até ao fim */
  }
}

/* 2. Anula a linha duplicada gerada pelo <a> da hiperligação */
.elementor-8312 .elementor-element.elementor-element-7fbd7951 .elementor-heading-title a::after {
    display: none !important;
}

/* 3. Limpeza de links e preparação para a linha */
.elementor-8312 .elementor-element.elementor-element-7fbd7951 a, 
.elementor-8312 .elementor-element.elementor-element-7fbd7951 .elementor-heading-title {
    position: relative;
    text-decoration: none !important;
    padding-bottom: 2px !important; /* Espaçamento justo */
    display: inline-block;
}

/* 4. Underline inicial visível (100%) */
.elementor-8312 .elementor-element.elementor-element-7fbd7951 a::after, 
.elementor-8312 .elementor-element.elementor-element-7fbd7951 .elementor-heading-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* 5. No HOVER: Animação a 0.45s para um deslize suave */
.elementor-8312 .elementor-element.elementor-element-7fbd7951:hover a::after, 
.elementor-8312 .elementor-element.elementor-element-7fbd7951:hover .elementor-heading-title::after {
    animation: underlineReveal 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-16e6a068 */@property --zoom {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

.elementor-8312 .elementor-element.elementor-element-16e6a068 {
  overflow: hidden !important;
  background-position: center !important;
  
  /* Usa a variável para controlar o zoom sobre o cover */
  --zoom: 100%;
  background-size: auto var(--zoom) !important;
  
  /* Anima a VARIÁVEL com a transição suave (1.2 segundos) */
  transition: --zoom 1.2s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.elementor-8312 .elementor-element.elementor-element-16e6a068:hover {
  /* Altera a variável em vez da propriedade direta */
  --zoom: 107% !important;
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-1653b9db */a.weatherwidget-io {
    pointer-events: none;
    cursor: default;
}/* End custom CSS */