{"id":1742,"date":"2026-05-29T12:39:37","date_gmt":"2026-05-29T11:39:37","guid":{"rendered":"https:\/\/glidesuptours.pt\/?page_id=1742"},"modified":"2026-10-29T17:34:31","modified_gmt":"2026-10-29T16:34:31","slug":"ribeira-brava-sup-tours","status":"publish","type":"page","link":"https:\/\/glidesuptours.pt\/en\/ribeira-brava-sup-tours\/","title":{"rendered":"Ribeira Brava SUP Tours"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1742\" class=\"elementor elementor-1742\">\n\t\t\t\t<div class=\"elementor-element elementor-element-90be105 e-flex e-con-boxed e-con e-parent\" data-id=\"90be105\" data-element_type=\"container\" data-e-type=\"container\" id=\"hero\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dd537c3 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"dd537c3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">PRAIA DA FOZ<br><span style=\"display:inline-block;margin-top:.35em;font-size:.44em;font-weight:600;letter-spacing:.38em;text-indent:.38em;color:#7FE0B0\">SUP TOUR<\/span><\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-03fa27b elementor-widget elementor-widget-text-editor\" data-id=\"03fa27b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"font-size: 1.25rem; line-height: 1.6; color: #FFFFFF; text-shadow: 0 2px 14px rgba(4,24,43,0.95), 0 0 5px rgba(0,0,0,0.85); margin: 0; font-weight: 600;\">Crystal-clear waters, small groups and a unique view of Madeira&#8217;s south coast.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e520dc5 e-con-full e-flex e-con e-child\" data-id=\"e520dc5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-rb_h_btn elementor-align-center hero-btn-reservar elementor-widget elementor-widget-button\" data-id=\"rb_h_btn\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#sobre\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-chevron-down\"><\/i>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">View tour details \u2193<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a91cb12 e-flex e-con-boxed e-con e-parent\" data-id=\"a91cb12\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-e78d014 e-con-full e-flex e-con e-child\" data-id=\"e78d014\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-b19fb9f e-con-full e-flex e-con e-child\" data-id=\"b19fb9f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-25b7bf4 elementor-view-stacked elementor-shape-circle elementor-position-block-start elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"25b7bf4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-users\"><\/i>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\tGuided tours\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-acbf000 e-con-full e-flex e-con e-child\" data-id=\"acbf000\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5a241c0 elementor-view-stacked elementor-shape-circle elementor-position-block-start elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"5a241c0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-water\"><\/i>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\tRibeira Brava \u2013 Praia da Foz\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\t\n\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6b58395 e-con-full e-flex e-con e-child\" data-id=\"6b58395\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8a0db42 elementor-view-stacked elementor-shape-circle elementor-position-block-start elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"8a0db42\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-smile\"><\/i>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\tBeginners welcome\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a3eac4c e-flex e-con-boxed e-con e-parent\" data-id=\"a3eac4c\" data-element_type=\"container\" data-e-type=\"container\" id=\"sobre\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-0f24778 e-con-full e-flex e-con e-child\" data-id=\"0f24778\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-0c76ad8 e-con-full e-flex e-con e-child\" data-id=\"0c76ad8\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-03017f0 elementor-widget elementor-widget-heading\" data-id=\"03017f0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">About the Tour<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-rb7x1a0 e-con-full e-flex e-con e-child\" data-id=\"rb7x1a0\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-c_sobre_txt e-con-full e-flex e-con e-child\" data-id=\"c_sobre_txt\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6ad6562 elementor-widget elementor-widget-text-editor\" data-id=\"6ad6562\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<style><span data-mce-type=\"bookmark\" style=\"display: inline-block; width: 0px; overflow: hidden; line-height: 0;\" class=\"mce_SELRES_start\">\ufeff<\/span><br \/>\n.sobre-txt-block p {<br \/>\n    margin: 0 0 18px 0;<br \/>\n    text-align: left;<\/p>\n<p>}<br \/>\n.sobre-txt-block p:last-child {<br \/>\n    margin: 0;<br \/>\n}<br \/>\n@media (max-width: 767px) {<br \/>\n    .sobre-txt-block p {<br \/>\n        text-align: left;<br \/>\n    }<br \/>\n}<br \/>\n.elementor-element-011bcf7 img {<br \/>\n    width: 100% !important;<br \/>\n    height: 300px !important;<br \/>\n    object-fit: cover !important;<br \/>\n    border-radius: 16px !important;<br \/>\n    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35) !important;<br \/>\n}<br \/>\n@media (max-width: 767px) {<br \/>\n    .elementor-element-011bcf7 img {<br \/>\n        height: 220px !important;<br \/>\n    }<br \/>\n}<br \/>\n<\/style>\n<div class=\"sobre-txt-block\">\n<p style=\"font-size: 1.25rem; line-height: 1.8; color: #ffffff; font-weight: 500;\">The Ribeira Brava tour follows Madeira\u2019s south coast, departing from Praia da Foz and paddling along the cliffs to the south and west towards Lugar de Baixo, with breathtaking views that can only be appreciated from a stand-up paddleboard.<\/p>\n<p style=\"font-size: 1.15rem; line-height: 1.75; color: #c2d6e5;\">Uma experi\u00eancia \u00fanica em \u00e1guas cristalinas, guiada e ao ritmo do grupo, perfeita para descobrir as imponentes fal\u00e9sias a partir do mar.<\/p>\n\n<\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-47e5a29 e-con-full e-flex e-con e-child\" data-id=\"47e5a29\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-011bcf7 elementor-widget elementor-widget-image\" data-id=\"011bcf7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1149\" height=\"2560\" src=\"https:\/\/glidesuptours.pt\/wp-content\/uploads\/2026\/10\/falesia_melhorada_v2-scaled.jpg\" class=\"attachment-full size-full wp-image-3244\" alt=\"falesia melhorada v2\" srcset=\"https:\/\/glidesuptours.pt\/wp-content\/uploads\/2026\/10\/falesia_melhorada_v2-scaled.jpg 1149w, https:\/\/glidesuptours.pt\/wp-content\/uploads\/2026\/10\/falesia_melhorada_v2-135x300.jpg 135w, https:\/\/glidesuptours.pt\/wp-content\/uploads\/2026\/10\/falesia_melhorada_v2-460x1024.jpg 460w, https:\/\/glidesuptours.pt\/wp-content\/uploads\/2026\/10\/falesia_melhorada_v2-768x1711.jpg 768w, https:\/\/glidesuptours.pt\/wp-content\/uploads\/2026\/10\/falesia_melhorada_v2-689x1536.jpg 689w, https:\/\/glidesuptours.pt\/wp-content\/uploads\/2026\/10\/falesia_melhorada_v2-919x2048.jpg 919w, https:\/\/glidesuptours.pt\/wp-content\/uploads\/2026\/10\/falesia_melhorada_v2-5x12.jpg 5w, https:\/\/glidesuptours.pt\/wp-content\/uploads\/2026\/10\/falesia_melhorada_v2-600x1337.jpg 600w\" sizes=\"(max-width: 1149px) 100vw, 1149px\"  title=\"Ribeira Brava SUP Tours\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f0c4a73 e-flex e-con-boxed e-con e-parent\" data-id=\"f0c4a73\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-78ad112 elementor-widget elementor-widget-html\" data-id=\"78ad112\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n.elementor-element-f0c4a73 .incl-row{display:grid !important;grid-template-columns:1fr 1fr;gap:22px;}\n.elementor-element-f0c4a73 .incl-row > .elementor-element{width:100% !important;background:#F4F8FB;border-radius:16px;padding:26px 20px;}\n.elementor-element-f0c4a73 .elementor-icon-box-icon .elementor-icon{width:54px !important;height:54px;background:#0E7FB8;border-radius:50%;display:inline-flex !important;align-items:center;justify-content:center;cursor:default !important;}\n.elementor-element-f0c4a73 .elementor-icon-box-icon i{color:#fff !important;font-size:22px;}\n.elementor-element-f0c4a73 .elementor-widget-icon-box .elementor-icon-box-wrapper{text-align:center;}\n.elementor-element-f0c4a73 .elementor-icon-box-icon{margin-bottom:12px;}\n@media(max-width:767px){.elementor-element-f0c4a73 .incl-row{grid-template-columns:1fr;}}\n\n\/* GLIDE parallax: desativar fixed em mobile (perf\/compat) *\/\n@media (max-width:768px){\n.elementor-element-90be105{background-attachment:scroll!important}\n}\n\n\/* GLIDE hero: titulo moderno + offset CTA *\/\n.elementor-element-dd537c3{width:100% !important;max-width:100% !important;}\n.elementor-element-dd537c3 .elementor-heading-title{line-height:1.08;text-shadow:0 4px 24px rgba(0,0,0,.35);}\n\n.elementor-element-90be105{padding-bottom:44px !important;}\n.elementor-element-90be105 > .e-con-inner{min-height:inherit;}\n@media(max-width:1024px){.elementor-element-dd537c3 .elementor-heading-title{font-size:52px !important;}}\n@media(max-width:767px){\n.elementor-element-dd537c3 .elementor-heading-title{font-size:38px !important;letter-spacing:1px !important;}\n.elementor-element-90be105{padding-bottom:30px !important;}\n}\n\/* GLIDE hero: alinhamento natural original *\/\n\n@media(max-width:767px){\n\n}\n\n\/* 9. Gallery: proporcao uniforme e cantos elegantes *\/\n.elementor-image-gallery .gallery-item img {\n  width: 100% !important;\n  aspect-ratio: 4 \/ 3 !important;\n  object-fit: cover !important;\n  border-radius: 14px !important;\n  box-shadow: 0 8px 24px rgba(4, 24, 43, 0.12) !important;\n}\n\n\/* 13. Botao Call now: outline discreto e harmonioso *\/\n.elementor-element-c2e2670 a[href^=\"tel:\"] { background-color: #F97316 !important; background: #F97316 !important; border: none !important; color: #FFFFFF !important; box-shadow: 0 4px 14px rgba(249, 115, 22, 0.35) !important; font-weight: 700 !important; }\n.elementor-element-c2e2670 a[href^=\"tel:\"] { background-color: #F97316 !important; background: #F97316 !important; border: none !important; color: #FFFFFF !important; box-shadow: 0 4px 14px rgba(249, 115, 22, 0.35) !important; font-weight: 700 !important; }\n\n\/* 5. Widget meteorologico: tipografia compacta padr\u00e3o Barreirinha *\/\n\n\/* 6. Botoes: remover all-caps forcado *\/\n.elementor-button, .ast-custom-button {\n  text-transform: none !important;\n  letter-spacing: 0.02em !important;\n  font-weight: 600 !important;\n}\n\n\n\/* Guaranteed button styling for hero and CTA *\/\n.elementor-element-e520dc5 {\n  display: flex !important;\n  justify-content: center !important;\n  align-items: center !important;\n  margin-top: 24px !important;\n  visibility: visible !important;\n  opacity: 1 !important;\n}\n.elementor-element-e520dc5 a.elementor-button,\n.hero-btn-reservar a.elementor-button,\n.elementor-element-rb_h_btn a.elementor-button {\n  display: inline-flex !important;\n  align-items: center !important;\n  justify-content: center !important;\n  gap: 10px !important;\n  background-color: #19C0A7 !important;\n  background: #19C0A7 !important;\n  color: #FFFFFF !important;\n  font-family: 'Space Grotesk', 'Montserrat', sans-serif !important;\n  font-size: 17px !important;\n  font-weight: 700 !important;\n  padding: 16px 36px !important;\n  border-radius: 999px !important;\n  box-shadow: 0 6px 22px rgba(25, 192, 167, 0.45) !important;\n  text-decoration: none !important;\n  transition: all 0.25s ease !important;\n  visibility: visible !important;\n  opacity: 1 !important;\n}\n.elementor-element-e520dc5 a.elementor-button:hover,\n.hero-btn-reservar a.elementor-button:hover,\n.elementor-element-rb_h_btn a.elementor-button:hover {\n  background-color: #15a892 !important;\n  background: #15a892 !important;\n  color: #FFFFFF !important;\n  transform: translateY(-2px) !important;\n  box-shadow: 0 8px 28px rgba(25, 192, 167, 0.6) !important;\n}\n\n.elementor-element-9e87aaa a.elementor-button,\n.botao-ribeira a.elementor-button {\n  display: inline-flex !important;\n  align-items: center !important;\n  justify-content: center !important;\n  gap: 10px !important;\n  background-color: #19C0A7 !important;\n  background: #19C0A7 !important;\n  color: #FFFFFF !important;\n  font-family: 'Space Grotesk', 'Montserrat', sans-serif !important;\n  font-size: 17px !important;\n  font-weight: 700 !important;\n  padding: 17px 38px !important;\n  border-radius: 999px !important;\n  box-shadow: 0 6px 22px rgba(25, 192, 167, 0.45) !important;\n  text-decoration: none !important;\n  transition: all 0.25s ease !important;\n}\n.elementor-element-9e87aaa a.elementor-button:hover,\n.botao-ribeira a.elementor-button:hover {\n  background-color: #15a892 !important;\n  background: #15a892 !important;\n  color: #FFFFFF !important;\n  transform: translateY(-2px) !important;\n  box-shadow: 0 8px 28px rgba(25, 192, 167, 0.6) !important;\n}\n\n\n\n\n\/* GLIDE hero: elevacao natural do texto *\/\n.elementor-element-90be105 > .e-con-inner {\n  transform: translateY(-88px) !important;\n}\n@media (max-width: 767px) {\n  .elementor-element-90be105 > .e-con-inner {\n    transform: translateY(-58px) !important;\n  }\n}\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-23b8b1a elementor-widget elementor-widget-heading\" data-id=\"23b8b1a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">What's included<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d775331 e-con-full incl-row e-flex e-con e-child\" data-id=\"d775331\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-45fd13e elementor-view-default elementor-position-block-start elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"45fd13e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-check\"><\/i>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\tComplete equipment\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\tHigh-quality Stand Up Paddle board, paddle and leash.\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dada19c elementor-view-default elementor-position-block-start elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"dada19c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-check\"><\/i>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\tSafety equipment\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\tCertified life vest (mandatory use).\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9afc2d8 e-con-full incl-row e-flex e-con e-child\" data-id=\"9afc2d8\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-98ffa7d elementor-view-default elementor-position-block-start elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"98ffa7d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-check\"><\/i>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\tDigital Photos\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\tWe capture your best moments.\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b7dcf38 elementor-view-default elementor-position-block-start elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"b7dcf38\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-check\"><\/i>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\tGuide + Insurance\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\tIncluded in the tour price.\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-aa12357 bar-ponto-sec foz-ponto-sec e-flex e-con-boxed e-con e-parent\" data-id=\"aa12357\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-bc9de56 elementor-widget elementor-widget-text-editor\" data-id=\"bc9de56\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"bar-pin\"><i class=\"fas fa-map-marker-alt\" aria-hidden=\"true\"><\/i><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-98c50ab bar-h2bar elementor-widget elementor-widget-heading\" data-id=\"98c50ab\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Where we paddle \u00b7 Meeting point<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0a80633 elementor-widget elementor-widget-html\" data-id=\"0a80633\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"bpe-sub\" style=\"color:#A0B3C6 !important; margin: 8px auto 0 !important; text-align: center; font-size: 17px;\">Praia da Foz, Ribeira Brava \u2014 Everything you need to find us and start your tour.<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-abce8fd e-con-full bar-ponto-card e-flex e-con e-child\" data-id=\"abce8fd\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d9bd1fc elementor-widget elementor-widget-html\" data-id=\"d9bd1fc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n.foz-ponto-sec {\n  padding: 36px 24px 40px !important;\n  width: 100% !important;\n  box-sizing: border-box !important;\n}\n@media (max-width: 768px) {\n  .foz-ponto-sec {\n    padding: 60px 16px 64px !important;\n  }\n}\n.foz-ponto-sec .bar-pin {\n  width: 64px !important;\n  height: 64px !important;\n  background: linear-gradient(135deg, #19C0A7, #4FBF8B) !important;\n  box-shadow: 0 10px 28px rgba(25, 192, 167, 0.45) !important;\n  border-radius: 50% !important;\n  display: flex !important;\n  align-items: center !important;\n  justify-content: center !important;\n  margin: 0 auto 10px !important;\n}\n.foz-ponto-sec .bar-pin i {\n  color: #fff !important;\n  font-size: 26px !important;\n}\n.foz-ponto-sec .bar-h2bar .elementor-heading-title,\n.foz-ponto-sec h2.elementor-heading-title {\n  color: #FFFFFF !important;\n  font-size: 38px !important;\n  font-weight: 800 !important;\n  text-align: center !important;\n  line-height: 1.15 !important;\n  margin: 0 auto !important;\n}\n@media (max-width: 768px) {\n  .foz-ponto-sec .bar-h2bar .elementor-heading-title,\n  .foz-ponto-sec h2.elementor-heading-title {\n    font-size: 27px !important;\n  }\n}\n.foz-ponto-sec .bpe-sub {\n  text-align: center !important;\n  color: #A0B3C6 !important;\n  font-size: 17px !important;\n  line-height: 1.6 !important;\n  margin: 0 auto 12px !important;\n  max-width: 640px !important;\n}\n.foz-ponto-sec .bar-ponto-card {\n  background: #ffffff !important;\n  border: none !important;\n  border-radius: 22px !important;\n  padding: 0 !important;\n  max-width: 1000px !important;\n  width: 100% !important;\n  margin: 16px auto 0 !important;\n  overflow: hidden !important;\n  box-shadow: 0 26px 60px rgba(0, 0, 0, 0.35) !important;\n}\n.foz-ponto-sec .bpe {\n  display: grid !important;\n  grid-template-columns: 1.05fr 1fr !important;\n  min-height: 440px !important;\n  width: 100% !important;\n}\n.foz-ponto-sec .bpe-info {\n  padding: 40px 38px !important;\n  display: flex !important;\n  flex-direction: column !important;\n  align-items: flex-start !important;\n  text-align: left !important;\n  box-sizing: border-box !important;\n}\n.foz-ponto-sec .bpe-kicker {\n  display: inline-flex !important;\n  align-items: center !important;\n  gap: 8px !important;\n  color: #0E7FB8 !important;\n  font-size: 12.5px !important;\n  font-weight: 700 !important;\n  letter-spacing: 2.5px !important;\n  text-transform: uppercase !important;\n  margin-bottom: 8px !important;\n}\n.foz-ponto-sec .bpe-title {\n  color: #04182B !important;\n  font-size: 28px !important;\n  font-weight: 800 !important;\n  line-height: 1.2 !important;\n  margin: 0 0 12px !important;\n}\n.foz-ponto-sec .bpe-lead {\n  color: #4A5A68 !important;\n  font-size: 16px !important;\n  line-height: 1.7 !important;\n  margin: 0 0 22px !important;\n}\n.foz-ponto-sec .bpe-list {\n  list-style: none !important;\n  margin: 0 0 26px !important;\n  padding: 0 !important;\n  display: grid !important;\n  gap: 16px !important;\n  width: 100% !important;\n}\n.foz-ponto-sec .bpe-list li {\n  display: flex !important;\n  align-items: flex-start !important;\n  gap: 14px !important;\n  margin: 0 !important;\n  padding: 0 !important;\n}\n.foz-ponto-sec .bpe-ic {\n  flex: 0 0 40px !important;\n  width: 40px !important;\n  height: 40px !important;\n  border-radius: 12px !important;\n  background: #E9F5EE !important;\n  display: inline-flex !important;\n  align-items: center !important;\n  justify-content: center !important;\n}\n.foz-ponto-sec .bpe-ic i {\n  color: #2FA26B !important;\n  font-size: 16px !important;\n}\n.foz-ponto-sec .bpe-list strong {\n  display: block !important;\n  color: #04182B !important;\n  font-size: 15.5px !important;\n  font-weight: 700 !important;\n  line-height: 1.3 !important;\n}\n.foz-ponto-sec .bpe-list span:not(.bpe-ic) {\n  display: block !important;\n  color: #5B6B78 !important;\n  font-size: 14.5px !important;\n  line-height: 1.5 !important;\n  margin-top: 2px !important;\n}\n.foz-ponto-sec a.bpe-btn {\n  display: inline-flex !important;\n  align-items: center !important;\n  gap: 10px !important;\n  background: #4FBF8B !important;\n  color: #06301C !important;\n  font-weight: 800 !important;\n  font-size: 15.5px !important;\n  padding: 14px 26px !important;\n  border-radius: 10px !important;\n  text-decoration: none !important;\n  margin-top: auto !important;\n  transition: all 0.2s ease !important;\n}\n.foz-ponto-sec a.bpe-btn:hover {\n  background: #0B6BA0 !important;\n  color: #ffffff !important;\n  transform: translateY(-2px) !important;\n}\n.foz-ponto-sec .bpe-map {\n  position: relative !important;\n  min-height: 320px !important;\n  background: #DCEBF2 !important;\n  width: 100% !important;\n}\n.foz-ponto-sec .bpe-map iframe {\n  position: absolute !important;\n  inset: 0 !important;\n  width: 100% !important;\n  height: 100% !important;\n  border: 0 !important;\n  display: block !important;\n}\n@media (max-width: 860px) {\n  .foz-ponto-sec .bpe {\n    grid-template-columns: 1fr !important;\n  }\n  .foz-ponto-sec .bpe-info {\n    padding: 30px 22px !important;\n  }\n  .foz-ponto-sec .bpe-map {\n    min-height: 280px !important;\n    height: 300px !important;\n  }\n  .foz-ponto-sec .bpe-title {\n    font-size: 24px !important;\n  }\n  .foz-ponto-sec a.bpe-btn {\n    width: 100% !important;\n    justify-content: center !important;\n  }\n}\n\n\/* Espa\u00e7amento harmonioso e consistente: Icone -> Titulo -> Subtitulo -> Card *\/\n.foz-ponto-sec .e-con-inner { gap: 0 !important; row-gap: 0 !important; padding: 0 !important; }\n.foz-ponto-sec .bar-pin,\n.bar-ponto-sec .bar-pin {\n  margin: 0 auto 10px auto !important;\n}\n.foz-ponto-sec .bar-h2bar,\n.bar-ponto-sec .bar-h2bar {\n  margin: 0 auto 10px auto !important;\n}\n.foz-ponto-sec .bpe-sub,\n.bar-ponto-sec .bpe-sub {\n  margin: 0 auto 20px auto !important;\n}\n.foz-ponto-sec .bar-ponto-card,\n.bar-ponto-sec .bar-ponto-card {\n  margin: 24px auto 0 auto !important;\n}\n\n<\/style>\n<div class=\"bpe\">\n  <div class=\"bpe-info\">\n    <span class=\"bpe-kicker\"><i class=\"fas fa-map-marker-alt\" aria-hidden=\"true\"><\/i> Ribeira Brava \u00b7 Madeira<\/span>\n    <h3 class=\"bpe-title\">Praia da Foz<\/h3>\n    <p class=\"bpe-lead\">Our meeting point and tour departure point is Praia da Foz in Ribeira Brava. Morning and afternoon departures are available, with calm, clear waters.<\/p>\n    <ul class=\"bpe-list\">\n      <li><span class=\"bpe-ic\"><i class=\"far fa-clock\" aria-hidden=\"true\"><\/i><\/span><div><strong>Arrive 15\u201320 minutes early<\/strong><span>For the briefing and equipment preparation.<\/span><\/div><\/li>\n      <li><span class=\"bpe-ic\"><i class=\"fas fa-car\" aria-hidden=\"true\"><\/i><\/span><div><strong>Departures & Parking<\/strong><span>Morning and afternoon departures. Parking is available near Praia da Foz.<\/span><\/div><\/li>\n      <li><span class=\"bpe-ic\"><i class=\"fas fa-crosshairs\" aria-hidden=\"true\"><\/i><\/span><div><strong>GPS coordinates<\/strong><span>32\u00b040'13.0\"N &nbsp;17\u00b003'55.0\"W<\/span><\/div><\/li>\n    <\/ul>\n    <a class=\"bpe-btn\" href=\"https:\/\/www.google.com\/maps?q=32.6703,-17.0653\" target=\"_blank\" rel=\"noopener\"><i class=\"fas fa-directions\" aria-hidden=\"true\"><\/i> Open in Google Maps<\/a>\n  <\/div>\n  <div class=\"bpe-map\">\n    <iframe src=\"https:\/\/maps.google.com\/maps?q=32.6703,-17.0653&amp;z=16&amp;output=embed\" loading=\"lazy\" title=\"Mapa \u2013 Praia da Foz, Ribeira Brava\" referrerpolicy=\"no-referrer-when-downgrade\" allowfullscreen><\/iframe>\n  <\/div>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c2e2670 e-flex e-con-boxed e-con e-parent\" data-id=\"c2e2670\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cf98bb1 elementor-widget elementor-widget-heading\" data-id=\"cf98bb1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Safety first<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8781dbc elementor-widget elementor-widget-text-editor\" data-id=\"8781dbc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"color: #2D3E50; font-size: 17.5px; line-height: 1.7; text-align: center; max-width: 680px; margin: 12px auto 0; font-weight: 500;\">We only go out if sea conditions allow it. For us, safety is always the priority, which is why we constantly monitor the local weather.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3bc5b3b e-con-full e-flex e-con e-child\" data-id=\"3bc5b3b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6cf9b30 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"6cf9b30\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/wa.me\/351914190623?text=Ol%C3%A1%20GLIDE%20SUP%20Tours%21%20Gostaria%20de%20informa%C3%A7%C3%B5es%20sobre%20o%20Tour%20Praia%20da%20Foz%20%28Ribeira%20Brava%29.%20%F0%9F%8F%84%F0%9F%93%85%20Dia%3A%F0%9F%91%A5%20N%C3%BAmero%20de%20participantes%3A\" target=\"_blank\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"fab fa-whatsapp\"><\/i>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Chat with us<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d67ad79 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"d67ad79\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"tel:+351914190623\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-phone\"><\/i>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Call now<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-glide_condicoes_sec e-flex e-con-boxed e-con e-parent\" data-id=\"glide_condicoes_sec\" data-element_type=\"container\" data-e-type=\"container\" id=\"previsao\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-glide_cond_title elementor-widget elementor-widget-heading\" data-id=\"glide_cond_title\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Sea Conditions & Forecast<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-glide_cond_desc elementor-widget elementor-widget-text-editor\" data-id=\"glide_cond_desc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div style=\"max-width: 780px; margin: 0 auto 18px auto; text-align: center; color: #c9d4de; font-size: 16px; line-height: 1.6;\">We closely monitor the local weather to ensure we only paddle in the best conditions at Praia da Foz. Check the forecast below for wind, waves and recommended times:<\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-76ee93b elementor-widget elementor-widget-html\" data-id=\"76ee93b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n\t\t\t\t\t<!-- =========================================================================\n\n\n\n     GLIDE - SUP TOURS \u2014 WIDGET DEDICADO PRAIA DA FOZ (10h, 14h, 18h)\n\n\n\n     Powered by GLIDE Alinhado na Dire\u00e7\u00e3o do Hours\n\n\n\n     ========================================================================= -->\n\n\n\n\n\n\n\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n\n\n\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n\n\n\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@500;600;700;800&family=Noto+Sans:wght@400;500;600;700&display=swap\" rel=\"stylesheet\">\n\n\n\n\n\n\n\n<style>\n.glide-widget-compact {\n  font-family: 'Montserrat', 'Noto Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n  color: #0F172A;\n  box-sizing: border-box;\n  margin: 10px auto 4px auto;\n  width: 820px !important;\n  max-width: 100% !important;\n  background: #FFFFFF;\n  border-radius: 16px;\n  border: 1px solid #E2E8F0;\n  padding: 16px 18px 8px 18px;\n  box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.04);\n}\n.glide-widget-compact * { box-sizing: border-box; }\n\n.glide-header-bar {\n  display: flex;\n  justify-content: space-between;\n  align-items: flex-start;\n  flex-wrap: wrap;\n  gap: 10px;\n  padding-bottom: 12px;\n  border-bottom: 1px solid #EDF2F7;\n  margin-bottom: 12px;\n}\n.glide-header-titles h3 {\n  margin: 0;\n  font-size: 1.08rem;\n  font-weight: 800;\n  color: #0F172A;\n  letter-spacing: -0.01em;\n  line-height: 1.25;\n}\n.glide-header-titles p {\n  margin: 3px 0 0 0;\n  font-size: 0.76rem;\n  color: #64748B;\n  line-height: 1.3;\n}\n.glide-venturi-note {\n  font-weight: 700;\n  color: #D97706;\n}\n\n.glide-header-badge {\n  display: inline-flex;\n  align-items: center;\n  gap: 7px;\n  font-size: 0.74rem;\n  font-weight: 700;\n  line-height: 1.2;\n  padding: 6px 12px;\n  border-radius: 9999px;\n  background: #F0FDF4;\n  color: #166534;\n  border: 1px solid #86EFAC;\n  white-space: nowrap;\n}\n.glide-header-badge.emerald { background: #DCFCE7; color: #15803D; border-color: #4ADE80; font-weight: 800; }\n.glide-header-badge.yellow { background: #FEF9C3; color: #854D0E; border-color: #FCD34D; }\n.glide-header-badge.red { background: #FEE2E2; color: #991B1B; border-color: #FCA5A5; }\n.glide-badge-dot {\n  width: 7px;\n  height: 7px;\n  border-radius: 50%;\n  background: currentColor;\n  flex: 0 0 auto;\n}\n\n.glide-days-nav {\n  display: grid;\n  grid-template-columns: repeat(5, 1fr);\n  gap: 8px;\n  margin-bottom: 12px;\n}\n.glide-day-tab {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  padding: 8px 4px;\n  background: #F8FAFC;\n  border: 1px solid #E2E8F0;\n  border-radius: 10px;\n  cursor: pointer;\n  transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;\n  text-align: center;\n}\n.glide-day-tab:hover {\n  background: #FFFFFF;\n  border-color: #CBD5E1;\n}\n.glide-day-tab.active {\n  background: #FFFFFF;\n  border-color: #FF6210;\n  box-shadow: 0 2px 10px rgba(255, 98, 16, 0.16);\n}\n.glide-day-title {\n  font-size: 0.80rem;\n  font-weight: 800;\n  color: #0F172A;\n  line-height: 1.15;\n}\n.glide-day-date {\n  font-size: 0.68rem;\n  color: #64748B;\n  font-weight: 600;\n  margin-top: 2px;\n  line-height: 1.15;\n}\n.glide-day-wind {\n  font-size: 0.70rem;\n  color: #0F766E;\n  font-weight: 800;\n  margin-top: 4px;\n  font-variant-numeric: tabular-nums;\n  line-height: 1.15;\n}\n\n.glide-table-box {\n  background: #FFFFFF;\n  border: 1px solid #E2E8F0;\n  border-radius: 12px;\n  overflow: hidden;\n  margin-bottom: 6px;\n}\n.glide-compact-table {\n  width: 100%;\n  border-collapse: collapse;\n  table-layout: fixed;\n  text-align: left;\n}\n.glide-compact-table th {\n  background: #F8FAFC;\n  padding: 9px 12px;\n  font-weight: 800;\n  color: #64748B;\n  text-transform: uppercase;\n  font-size: 0.66rem;\n  letter-spacing: 0.06em;\n  border-bottom: 1px solid #E2E8F0;\n  line-height: 1.2;\n}\n.glide-compact-table td {\n  padding: 11px 12px;\n  border-bottom: 1px solid #F1F5F9;\n  vertical-align: middle;\n  font-size: 0.85rem;\n  color: #0F172A;\n}\n.glide-compact-table tbody tr:last-child td { border-bottom: none; }\n.glide-compact-table tbody tr:hover td { background: #FAFBFC; }\n\n\/* \"Condi\u00e7\u00f5es Excelentes\" e o r\u00f3tulo mais longo: a coluna tem de lhe\n   chegar. fixed + 22% cortava o texto a meio. *\/\n.glide-c-hour   { width: 72px; }\n.glide-c-state  { width: 27%; }\n.glide-c-wind   { width: 23%; }\n.glide-c-dir    { width: 13%; }\n.glide-c-swell  { width: 17%; }\n\n.glide-hour {\n  display: block;\n  font-weight: 800;\n  color: #0F172A;\n  font-size: 1.02rem;\n  font-variant-numeric: tabular-nums;\n  letter-spacing: -0.01em;\n  line-height: 1.15;\n}\n\n.glide-pill-status {\n  display: inline-block;\n  font-size: 0.71rem;\n  font-weight: 700;\n  line-height: 1.25;\n  padding: 4px 10px;\n  border-radius: 9999px;\n  white-space: nowrap;\n}\n.glide-pill-status.emerald { background: #DCFCE7; color: #15803D; font-weight: 800; border: 1px solid #4ADE80; }\n.glide-pill-status.green { background: #F0FDF4; color: #166534; border: 1px solid #86EFAC; }\n.glide-pill-status.yellow { background: #FEF9C3; color: #854D0E; border: 1px solid #FCD34D; }\n.glide-pill-status.red { background: #FEE2E2; color: #991B1B; border: 1px solid #FCA5A5; }\n\n.glide-wind-block {\n  display: block;\n  width: 100%;\n  min-width: 0;\n}\n\n.glide-wind-main {\n  display: block;\n  color: #0F172A;\n  line-height: 1.15;\n}\n.glide-wind-main strong {\n  font-size: 1.05rem;\n  font-weight: 800;\n  font-variant-numeric: tabular-nums;\n  letter-spacing: -0.01em;\n}\n.glide-wind-main i {\n  font-style: normal;\n  font-size: 0.68rem;\n  font-weight: 700;\n  color: #94A3B8;\n  margin-left: 3px;\n  letter-spacing: 0;\n}\n\n\n\n\n\n\n\n\n\n.glide-gust-text {\n  display: block;\n  font-size: 0.69rem;\n  color: #94A3B8;\n  margin-top: 5px;\n  line-height: 1.2;\n  white-space: nowrap;\n}\n.glide-gust-text strong {\n  font-weight: 800;\n  color: #64748B;\n  font-variant-numeric: tabular-nums;\n}\n\n.glide-badge-dir, .glide-badge-wave {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  width: 20px;\n  height: 20px;\n  border-radius: 50%;\n  font-size: 0.78rem;\n  font-weight: 800;\n  vertical-align: middle;\n  flex: 0 0 auto;\n}\n.glide-badge-dir { background: #FFF7ED; color: #FF6210; }\n.glide-badge-wave { background: #E6F6F4; color: #0F766E; }\n.glide-dir, .glide-swell {\n  display: inline-flex;\n  align-items: center;\n  gap: 6px;\n  line-height: 1.2;\n}\n.glide-dir strong, .glide-swell strong {\n  font-weight: 800;\n  color: #0F172A;\n  font-variant-numeric: tabular-nums;\n}\n.glide-swell b {\n  font-weight: 500 !important;\n  color: #475569 !important;\n  font-variant-numeric: tabular-nums;\n}\n.glide-swell b i {\n  font-style: normal;\n  font-weight: 400 !important;\n  color: #94A3B8;\n  font-size: 0.70rem;\n  margin-left: 2px;\n}\n\n.glide-compact-footer {\n  display: flex !important;\n  justify-content: space-between !important;\n  align-items: center !important;\n  gap: 8px !important;\n  font-size: 0.66rem !important;\n  color: #94A3B8 !important;\n  padding: 8px 16.5px 2px 16.5px !important;\n  line-height: 1.2 !important;\n}\n.glide-compact-footer strong {\n  color: #64748B;\n  font-weight: 800;\n}\n\n@media (max-width: 700px) {\n  .glide-widget-compact { padding: 14px 10px 6px 10px; margin: 8px auto 2px auto; border-radius: 14px; }\n  .glide-compact-footer { padding: 6px 14px 2px 14px; }\n  .glide-days-nav { gap: 4px; margin-bottom: 10px; }\n  .glide-day-tab { padding: 6px 2px; border-radius: 8px; }\n  .glide-day-title { font-size: 0.74rem; }\n  .glide-day-date { font-size: 0.64rem; }\n  .glide-day-wind { font-size: 0.64rem; margin-top: 3px; }\n\n  \/* A tabela de 5 colunas nao cabe. Cada linha passa a cartao. *\/\n  .glide-table-box { border: none; background: transparent; overflow: visible; margin-bottom: 4px; }\n  .glide-compact-table,\n  .glide-compact-table thead,\n  .glide-compact-table tbody { display: block; width: 100%; }\n  .glide-compact-table thead { display: none; }\n  .glide-compact-table tbody tr {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 8px 12px;\n    background: #FFFFFF;\n    border: 1px solid #E2E8F0;\n    border-left: 3px solid #CBD5E1;\n    border-radius: 12px;\n    padding: 11px 12px;\n    margin-bottom: 8px;\n  }\n  .glide-compact-table tbody tr:hover td { background: transparent; }\n  .glide-compact-table tbody tr.glide-st-emerald { border-left-color: #16A34A; }\n  .glide-compact-table tbody tr.glide-st-green { border-left-color: #22C55E; }\n  .glide-compact-table tbody tr.glide-st-yellow { border-left-color: #F59E0B; }\n  .glide-compact-table tbody tr.glide-st-red { border-left-color: #EF4444; }\n\n  .glide-compact-table td {\n    display: flex;\n    align-items: baseline;\n    justify-content: space-between;\n    gap: 10px;\n    padding: 3px 0;\n    border-bottom: none;\n    font-size: 0.82rem;\n    min-width: 0;\n  }\n  .glide-compact-table td[data-l]::before {\n    content: attr(data-l);\n    font-size: 0.62rem;\n    font-weight: 800;\n    text-transform: uppercase;\n    letter-spacing: 0.06em;\n    color: #94A3B8;\n    flex: 0 0 auto;\n  }\n  \/* hora e estado nao precisam de rotulo: sao o cabecalho do cartao *\/\n  .glide-c-hour, .glide-c-state { display: block; width: auto; }\n  .glide-c-hour { grid-column: 1; grid-row: 1; }\n  .glide-c-state { grid-column: 2; grid-row: 1; justify-self: end; align-self: center; }\n  .glide-c-wind { grid-column: 1 \/ -1; grid-row: 2; width: auto; display: flex; align-items: flex-start; }\n  .glide-c-wind .glide-wind-block { flex: 1 1 auto; min-width: 0; }\n  .glide-c-wind .glide-gust-text { margin-top: 3px; flex: 0 0 auto; }\n  \/* direccao e ondulacao dividem a ultima linha; cada uma ocupa metade *\/\n  .glide-c-dir { grid-column: 1; grid-row: 3; width: auto; }\n  .glide-c-swell { grid-column: 2; grid-row: 3; width: auto; }\n  .glide-dir, .glide-swell { justify-content: flex-end; gap: 4px; min-width: 0; }\n  .glide-swell b { font-size: 0.78rem; white-space: nowrap; }\n  .glide-swell b i { font-size: 0.62rem; margin-left: 1px; }\n  .glide-badge-dir, .glide-badge-wave { width: 20px; height: 20px; font-size: 0.78rem; }\n  .glide-c-dir strong { font-size: 0.78rem; }\n  \/* o rotulo \"ONDULACAO\" e o mais largo das duas: encolhe-o *\/\n  .glide-c-swell[data-l]::before { font-size: 0.58rem; letter-spacing: 0.04em; }\n  \n}\n\n\/* ---- modo cartao (desktop): substitui a tabela ---- *\/\n.glide-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }\n.glide-hour-card {\n  background: #FFFFFF;\n  border: 1px solid #E2E8F0;\n  border-top: 3px solid #CBD5E1;\n  border-radius: 14px;\n  padding: 14px 15px 13px 15px;\n  box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.04);\n}\n.glide-hour-card.glide-st-emerald { border-top-color: #16A34A; }\n.glide-hour-card.glide-st-green { border-top-color: #22C55E; }\n.glide-hour-card.glide-st-yellow { border-top-color: #F59E0B; }\n.glide-hour-card.glide-st-red { border-top-color: #EF4444; }\n.glide-hc-top {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: 10px;\n  flex-wrap: wrap;\n  margin-bottom: 12px;\n}\n.glide-hc-hour {\n  font-size: 0.88rem !important;\n  font-weight: 700 !important;\n  color: #475569 !important;\n  font-variant-numeric: tabular-nums !important;\n  letter-spacing: -0.01em !important;\n  line-height: 1 !important;\n}\n\n\/* direccao a esquerda, ondulacao a direita - os badges dizem o que e *\/\n.glide-hc-foot {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: 12px;\n  padding-top: 2px;\n}\n@media (max-width: 700px) {\n  .glide-cards { grid-template-columns: 1fr; gap: 10px; }\n  .glide-hour-card { border-radius: 12px; padding: 12px 13px; }\n  .glide-hc-top { margin-bottom: 10px; }\n  .glide-hc-hour {\n  font-size: 0.88rem !important;\n  font-weight: 700 !important;\n  color: #475569 !important;\n  font-variant-numeric: tabular-nums !important;\n  letter-spacing: -0.01em !important;\n  line-height: 1 !important;\n}\n}\n\n\/* O selo e a hora nunca podem partir de linha: \"Condicoes Excelentes\" + \"10:00\"\n   nao cabem lado a lado, e o wrap empurrava o selo para baixo do cartao. *\/\n.glide-hc-top { flex-wrap: nowrap; }\n.glide-hc-top .glide-hc-hour {\n  font-size: 0.88rem !important;\n  font-weight: 700 !important;\n  color: #475569 !important;\n  font-variant-numeric: tabular-nums !important;\n  letter-spacing: -0.01em !important;\n  line-height: 1 !important;\n}\n.glide-hc-top .glide-pill-status { flex: 0 1 auto; min-width: 0; }\n.glide-hc-wind {\n  display: flex;\n  align-items: baseline;\n  justify-content: space-between;\n  gap: 12px;\n  flex-wrap: wrap;\n  padding-bottom: 12px;\n  margin-bottom: 10px;\n  border-bottom: 1px solid #F1F5F9;\n}\n.glide-hc-wind .glide-wind-main { flex: 0 0 auto; }\n.glide-gust-text.over {\n  color: #EA580C;\n  font-weight: 800;\n}\n.glide-gust-text.over strong { color: #C2410C; }\n@media (max-width: 700px) {\n  .glide-gust-text { margin-top: 0; }\n}\n\n\/* (1) 3 colunas que cabem sempre: 1fr + min-width:0 impede o conteudo de\n   forcar a coluna maior do que a fraccao. *\/\n.glide-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }\n.glide-hour-card { min-width: 0; }\n.glide-hour-card > * { min-width: 0; }\n\n\/* as etiquetas (3) precisam de ~100px por bloco: abaixo desta largura o\n   cartao empilha a 1 coluna, senao o texto sai do cartao. *\/\n@media (max-width: 560px) {\n  .glide-cards { grid-template-columns: minmax(0, 1fr); }\n}\n\n\/* (3) etiquetas VENTO \/ ONDULACAO por cima de cada bloco *\/\n.glide-hc-cell { display: flex; flex-direction: column; gap: 4px; min-width: 0; }\n.glide-hc-cell:last-child { align-items: flex-end; }\n.glide-hc-lbl {\n  font-size: 0.64rem;\n  font-weight: 400;\n  text-transform: uppercase;\n  letter-spacing: 0.07em;\n  color: #94A3B8;\n  line-height: 1;\n}\n\n\/* (5) selo neutro, sem cor de estado *\/\n.glide-header-badge.plain { background: #F1F5F9; color: #64748B; border-color: #CBD5E1; }\n\n\/* ---- VENTO HERO BANNER ---- *\/\n.wind-center-banner {\n  display: flex !important;\n  flex-direction: column !important;\n  align-items: center !important;\n  justify-content: center !important;\n  padding: 5px 8px 6px 8px !important;\n  background: #F8FAFC !important;\n  border: 1px solid #E2E8F0 !important;\n  border-radius: 9px !important;\n  margin: 5px 0 8px 0 !important;\n  gap: 2px !important;\n}\n.wind-label-tag {\n  font-size: 0.58rem !important;\n  font-weight: 800 !important;\n  text-transform: uppercase !important;\n  letter-spacing: 0.08em !important;\n  color: #0F766E !important;\n  line-height: 1 !important;\n  margin-bottom: 1px !important;\n}\n.wind-values-wrap {\n  display: inline-flex !important;\n  align-items: baseline !important;\n  justify-content: center !important;\n  gap: 4px !important;\n}\n.wind-main-num {\n  font-size: 1.15rem !important;\n  font-weight: 800 !important;\n  color: #0F172A !important;\n  line-height: 1 !important;\n  font-variant-numeric: tabular-nums !important;\n}\n.wind-unit {\n  font-size: 0.72rem !important;\n  font-weight: 700 !important;\n  color: #64748B !important;\n}\n.wind-sep-dot {\n  color: #CBD5E1 !important;\n  font-size: 0.75rem !important;\n  margin: 0 2px !important;\n}\n.wind-gust-inline {\n  font-size: 0.72rem !important;\n  color: #64748B !important;\n  white-space: nowrap !important;\n}\n.wind-gust-inline strong {\n  color: #1E293B !important;\n  font-weight: 700 !important;\n}\n\n\n\n\n\/* ---- ESTILO COMPACTO & LARGURA ESTAVEL (ALTURA REDUZIDA COMO ANTES) ---- *\/\n.glide-widget-compact {\n  width: 100% !important;\n  max-width: 720px !important;\n  padding: 12px 14px 4px 14px !important;\n  margin: 6px auto 2px auto !important;\n}\n.elementor-widget-html:has(.glide-widget-compact) {\n  max-width: 720px !important;\n  margin-left: auto !important;\n  margin-right: auto !important;\n}\n.glide-header-bar {\n  padding-bottom: 7px !important;\n  margin-bottom: 7px !important;\n}\n.glide-days-nav {\n  margin-bottom: 7px !important;\n  gap: 4px !important;\n}\n.glide-day-tab {\n  padding: 5px 2px !important;\n}\n.glide-day-title {\n  font-size: 0.72rem !important;\n}\n.glide-day-date {\n  font-size: 0.65rem !important;\n}\n.glide-day-wind {\n  font-size: 0.62rem !important;\n}\n\n\/* ---- GLIDE WEATHER WIDGET: UNIFORMIDADE PERFEITA (MOBILE & DESKTOP) ---- *\/\n@media (max-width: 650px) {\n  .elementor-widget-html:has(.glide-widget-compact) {\n    width: 100% !important;\n    max-width: 100% !important;\n    box-sizing: border-box !important;\n  }\n  .glide-widget-compact {\n    width: 100% !important;\n    max-width: 100% !important;\n    box-sizing: border-box !important;\n    padding: 10px 10px 6px 10px !important;\n    margin: 4px 0 !important;\n    border-radius: 14px !important;\n  }\n  .glide-header-bar {\n    display: flex !important;\n    flex-direction: row !important;\n    justify-content: space-between !important;\n    align-items: center !important;\n    padding-bottom: 7px !important;\n    margin-bottom: 7px !important;\n    gap: 8px !important;\n    width: 100% !important;\n    box-sizing: border-box !important;\n  }\n  .glide-header-titles h3 {\n    font-size: 0.88rem !important;\n    font-weight: 700 !important;\n    line-height: 1.25 !important;\n    margin: 0 !important;\n    color: #0F172A !important;\n  }\n  .glide-header-titles p {\n    font-size: 0.68rem !important;\n    color: #64748B !important;\n    margin: 2px 0 0 0 !important;\n  }\n  .glide-header-badge {\n    font-size: 0.68rem !important;\n    padding: 3px 8px !important;\n    border-radius: 999px !important;\n    white-space: nowrap !important;\n    flex-shrink: 0 !important;\n  }\n  .glide-days-nav {\n    display: grid !important;\n    grid-template-columns: repeat(5, 1fr) !important;\n    gap: 4px !important;\n    margin-bottom: 8px !important;\n    width: 100% !important;\n    box-sizing: border-box !important;\n  }\n  .glide-day-tab {\n    padding: 5px 2px !important;\n    border-radius: 8px !important;\n    min-width: 0 !important;\n    text-align: center !important;\n  }\n  .glide-day-title {\n    font-size: 0.72rem !important;\n    font-weight: 700 !important;\n  }\n  .glide-day-date {\n    font-size: 0.64rem !important;\n    color: #64748B !important;\n    margin-top: 1px !important;\n  }\n  .glide-day-wind {\n    font-size: 0.62rem !important;\n    margin-top: 1px !important;\n    font-weight: 600 !important;\n  }\n\n  .glide-table-box {\n    margin-bottom: 6px !important;\n    width: 100% !important;\n    box-sizing: border-box !important;\n  }\n  .glide-cards {\n    display: flex !important;\n    flex-direction: column !important;\n    gap: 6px !important;\n    width: 100% !important;\n    box-sizing: border-box !important;\n  }\n\n  \/* CARTAO: 2 COLUNAS PROPORCIONAIS EQUILIBRADAS (SEM VAZIO CENTRAL) *\/\n  .glide-hour-card {\n    display: grid !important;\n    grid-template-columns: 125px 1fr !important;\n    grid-template-rows: auto auto !important;\n    gap: 4px 12px !important;\n    align-items: center !important;\n    padding: 8px 12px !important;\n    border-radius: 10px !important;\n    min-height: auto !important;\n    width: 100% !important;\n    box-sizing: border-box !important;\n    background: #FFFFFF !important;\n    border: 1px solid #E2E8F0 !important;\n    border-left: 4px solid #CBD5E1 !important;\n  }\n  .glide-hour-card.glide-st-emerald { border-left-color: #16A34A !important; }\n  .glide-hour-card.glide-st-yellow { border-left-color: #F59E0B !important; }\n  .glide-hour-card.glide-st-red { border-left-color: #EF4444 !important; }\n\n  \/* LINHA 1 ESQ: HORA | LINHA 2 ESQ: SELO *\/\n  .glide-hc-top {\n    display: contents !important;\n  }\n  .glide-hc-hour {\n    grid-column: 1 \/ 2 !important;\n    grid-row: 1 \/ 2 !important;\n    justify-self: start !important;\n    font-size: 0.95rem !important;\n    font-weight: 800 !important;\n    color: #1E293B !important;\n    line-height: 1 !important;\n  }\n  .glide-pill-status {\n    grid-column: 1 \/ 2 !important;\n    grid-row: 2 \/ 2 !important;\n    justify-self: start !important;\n    font-size: 0.66rem !important;\n    font-weight: 700 !important;\n    padding: 2px 7px !important;\n    border-radius: 999px !important;\n    line-height: 1.15 !important;\n    white-space: nowrap !important;\n  }\n\n  \/* LINHA 1 DIR: VENTO + RAJADA *\/\n  .wind-center-banner {\n    grid-column: 2 \/ 3 !important;\n    grid-row: 1 \/ 2 !important;\n    display: flex !important;\n    flex-direction: row !important;\n    align-items: baseline !important;\n    justify-content: flex-start !important;\n    margin: 0 !important;\n    padding: 0 !important;\n    border: none !important;\n    background: transparent !important;\n    gap: 3px !important;\n    min-width: 0 !important;\n  }\n  .wind-label-tag {\n    display: none !important;\n  }\n  .wind-values-wrap {\n    display: flex !important;\n    align-items: baseline !important;\n    gap: 2px !important;\n    white-space: nowrap !important;\n  }\n  .wind-main-num {\n    font-size: 1.05rem !important;\n    font-weight: 800 !important;\n    color: #0F172A !important;\n    line-height: 1 !important;\n  }\n  .wind-unit {\n    font-size: 0.68rem !important;\n    font-weight: 600 !important;\n    color: #64748B !important;\n    margin-left: 1px !important;\n  }\n  .wind-sep-dot {\n    margin: 0 3px !important;\n    font-size: 0.65rem !important;\n    color: #CBD5E1 !important;\n  }\n  .wind-gust-inline {\n    font-size: 0.68rem !important;\n    color: #64748B !important;\n    font-weight: 500 !important;\n    white-space: nowrap !important;\n  }\n  .wind-gust-inline strong {\n    font-weight: 700 !important;\n    color: #334155 !important;\n  }\n\n  \/* LINHA 2 DIR: DIRECAO + ONDULACAO *\/\n  .glide-hc-foot {\n    grid-column: 2 \/ 3 !important;\n    grid-row: 2 \/ 2 !important;\n    display: flex !important;\n    flex-direction: row !important;\n    align-items: center !important;\n    justify-content: flex-start !important;\n    gap: 8px !important;\n    padding: 0 !important;\n    border: none !important;\n    margin: 0 !important;\n    white-space: nowrap !important;\n  }\n  .glide-hc-cell {\n    display: flex !important;\n    flex-direction: row !important;\n    align-items: center !important;\n    gap: 3px !important;\n  }\n  .glide-hc-lbl {\n    display: none !important;\n  }\n  .glide-dir, .glide-swell {\n    font-size: 0.72rem !important;\n    white-space: nowrap !important;\n    color: #475569 !important;\n  }\n  .glide-dir strong, .glide-swell strong {\n    font-size: 0.72rem !important;\n    font-weight: 700 !important;\n    color: #1E293B !important;\n  }\n  .glide-swell b {\n    font-size: 0.75rem !important;\n    font-weight: 700 !important;\n    color: #0F172A !important;\n    margin-left: 2px !important;\n  }\n  .glide-badge-dir, .glide-badge-wave {\n    width: 15px !important;\n    height: 15px !important;\n    font-size: 9px !important;\n    margin-right: 1px !important;\n  }\n  .glide-compact-footer {\n    padding: 4px 6px 2px 6px !important;\n    font-size: 0.62rem !important;\n  }\n}\n\n\/* ---------------- DESKTOP (>= 651px) UNIFORMIDADE RIGOROSA ---------------- *\/\n@media (min-width: 651px) {\n  .glide-widget-compact {\n    width: 720px !important;\n    max-width: 100% !important;\n    margin: 6px auto !important;\n    box-sizing: border-box !important;\n  }\n  .elementor-widget-html:has(.glide-widget-compact) {\n    max-width: 720px !important;\n    margin-left: auto !important;\n    margin-right: auto !important;\n  }\n  .glide-table-box {\n    width: 100% !important;\n    box-sizing: border-box !important;\n  }\n  .glide-cards {\n    width: 100% !important;\n    display: grid !important;\n    grid-template-columns: repeat(3, 1fr) !important;\n    gap: 12px !important;\n    box-sizing: border-box !important;\n  }\n  .glide-hour-card {\n    min-height: 165px !important;\n    display: flex !important;\n    flex-direction: column !important;\n    justify-content: space-between !important;\n    padding: 14px 14px 12px 14px !important;\n    border-radius: 12px !important;\n    box-sizing: border-box !important;\n  }\n}\n<\/style>\n\n\n\n\n\n\n\n<div class=\"glide-widget-compact\" id=\"glide-compact-spot-widget\">\n\n\n\n  <div class=\"glide-loading-text\">Loading forecast conditions...<\/div>\n\n\n\n<\/div>\n\n\n\n\n\n\n\n<script>\n\n\n\n(function() {\n\n\n\n  const SPOT = {\n\n\n\n    id: \"ribeira-brava\",\n    southExposure: true,\n\n\n\n    name: \"Praia da Foz (Ribeira Brava)\", comingSoon: false,\n\n\n\n    lat: 32.671, lon: -17.065,\n\n\n\n    windLimit: 6.0, gustLimit: 15.0,\n\n\n\n    moderateLimit: 4.5,\n\n\n\n    \/\/ Perfil microclima do vale da Ribeira Brava (Efeito Venturi \/ gap wind)\n\n\n\n    microclimate: {\n\n\n\n      type: \"valley_venturi\",\n\n\n\n      channelingDirections: [\"N\", \"NE\", \"NO\", \"NW\", \"NNE\", \"NNW\"],\n\n\n\n      channelingDegMin: 290,\n\n\n\n      channelingDegMax: 65,\n\n\n\n      venturiAccelerationMultiplier: 1.5,\n\n\n\n      minOrographicWindKnots: 6.5,\n\n\n\n      minOrographicGustKnots: 10.0\n\n\n\n    }\n\n\n\n  };\n\n\n\n\n\n\n\n  let widgetData = null;\n\n\n\n  let selectedDayIdx = 0;\n\n\n\n\n\n\n\n  \/* i18n: as subpaginas herdavam PT no \/en\/. Dicionario local (o mapa\n     str_replace do snippet 29 nao serve para nomes curtos como \"Sex\"\/\"Ter\",\n     que colidem com palavras inglesas). *\/\n  const isEn = document.documentElement.lang.startsWith('en') || window.location.pathname.indexOf('\/en\/') === 0;\n  const t = {    sealShort: isEn ? \"Recommended\" : \"Recomendado\",\n    sealPlain: isEn ? \"Forecast\" : \"Previs\\u00e3o\",\n    avgWord: isEn ? \"avg\" : \"m\\u00e9d.\",\n    sealStrong: isEn ? \"Strong wind\" : \"Vento forte\",\n    sealGust: isEn ? \"Caution: gusts\" : \"Aten\\u00e7\\u00e3o: rajadas\",\n\n    condTitle: isEn ? \"Sea conditions \\u2014 \" : \"Condi\\u00e7\\u00f5es do mar \\u2014 \",\n    subtitle: isEn ? \"Marine forecast for the next 5 days\" : \"Previs\\u00e3o mar\\u00edtima para os pr\\u00f3ximos 5 dias\",\n    nowWord: isEn ? \"now\" : \"agora\",\n    gustWord: isEn ? \"gust.\" : \"raj.\",\n    gusts: isEn ? \"gusts:\" : \"rajadas:\",\n    measured: isEn ? \"measured\" : \"medido\",\n    good: isEn ? \"Recommended\" : \"Recomendado\",\n    excellent: isEn ? \"Recommended\" : \"Recomendado\",\n    moderate: isEn ? \"Moderate Conditions\" : \"Condi\u00e7\u00f5es Moderadas\",\n    notRec: isEn ? \"Not Recommended\" : \"N\u00e3o Recomendado\",\n    thHour: isEn ? \"Hours\" : \"Hor\\u00e1rio\",\n    thState: isEn ? \"Status\" : \"Estado\",\n    thWind: isEn ? \"Wind\" : \"Vento\",\n    thDir: isEn ? \"Direction\" : \"Dire\\u00e7\\u00e3o\",\n    thDirWind: isEn ? \"Wind Direction\" : \"Dire\\u00e7\\u00e3o Vento\",\n    thSwell: isEn ? \"Waves\" : \"Ondula\\u00e7\\u00e3o\",\n    today: isEn ? \"Today\" : \"Hoje\",\n    updated: isEn ? \"Updated at\" : \"Atualizado \\u00e0s\",\n    swellLegend: isEn ? \"Waves: direction they come from\" : \"Ondula\\u00e7\\u00e3o: dire\\u00e7\\u00e3o de onde v\\u00eam as ondas\",\n    noAnemo: isEn ? \"Model forecast (median of 3) \\u00b7 no anemometer at this spot\" : \"\",\n    noStation: isEn ? \"Marina station unavailable \\u00b7 model forecast (median of 3)\" : \"\",\n    maxToday: isEn ? \"Max. today at the station: \" : \"\",\n    peak5: isEn ? \"real 5-min peak\" : \"pico real a 5 min\",\n    calib: isEn ? \"Wind corrected with the Marina station \\u00b7 \\\"measured\\\" = anemometer\" : \" \\u00b7 \\\"medido\\\" = anem\\u00f3metro\"\n  };\n  const dayNames = isEn ? [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"]\n                      : [\"Dom\", \"Seg\", \"Ter\", \"Qua\", \"Qui\", \"Sex\", \"S\\u00e1b\"];\n  const monthNames = isEn ? [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n                         : [\"Jan\", \"Fev\", \"Mar\", \"Abr\", \"Mai\", \"Jun\", \"Jul\", \"Ago\", \"Set\", \"Out\", \"Nov\", \"Dez\"];\n\n  function degToCard(deg) {\n\n\n\n    if (deg === null || deg === undefined || isNaN(deg)) return \"--\";\n\n\n\n    const d = (deg % 360 + 360) % 360;\n\n\n\n    const dirs = [\n\n\n\n      { c: \"N\", min: 337.5, max: 360 }, { c: \"N\", min: 0, max: 22.5 },\n\n\n\n      { c: \"NE\", min: 22.5, max: 67.5 }, { c: \"E\", min: 67.5, max: 112.5 },\n\n\n\n      { c: \"SE\", min: 112.5, max: 157.5 }, { c: \"S\", min: 157.5, max: 202.5 },\n\n\n\n      { c: \"SO\", min: 202.5, max: 247.5 }, { c: \"O\", min: 247.5, max: 292.5 },\n\n\n\n      { c: \"NO\", min: 292.5, max: 337.5 }\n\n\n\n    ];\n\n\n\n    for (const x of dirs) if (d >= x.min && d < x.max) return x.c;\n\n\n\n    return \"N\";\n\n\n\n  }\n\n\n\n\n\n\n\n  function getWindArrow(cardinal) {\n\n\n\n    const arrows = { \"N\": \"\u2193\", \"NE\": \"\u2199\", \"E\": \"\u2190\", \"SE\": \"\u2196\", \"S\": \"\u2191\", \"SO\": \"\u2197\", \"SW\": \"\u2197\", \"O\": \"\u2192\", \"NO\": \"\u2198\" };\n\n\n\n    return arrows[cardinal] || \"\u2193\";\n\n\n\n  }\n\n\n\n\n\n\n\n  const SHELTER = { offshore: 0.45, onshore: 1.00 };\n  function shelterFactor(dirDeg) {\n    const d = dirDeg == null ? null : ((Number(dirDeg) % 360) + 360) % 360;\n    if (d == null) return 1;\n    \/* Praia da Foz: fluxo de serra de N a E (337.5\u00b0 a 112.5\u00b0) tem abrigo 0.45 (Regra D1) *\/\n    return (d <= 112.5 || d >= 337.5) ? SHELTER.offshore : SHELTER.onshore;\n  }\n\n  function evalSafety(rawWind, gustSpeed, windDirDeg, waveHeight, waveDirDeg, swellH, swellD, swellT, opts) {\n    opts = opts || {};\n    const isSSE = (a) => a != null && a >= 157.5 && a < 247.5;\n    const _az = (x) => x != null ? ((Number(x) % 360) + 360) % 360 : null;\n    const isOffshoreDir = (d) => { const a = _az(d); return a == null || a <= 112.5 || a >= 247.5; };\n\n\n\n    const card = degToCard(windDirDeg);\n\n\n\n    const waveCard = degToCard(waveDirDeg);\n\n\n\n    const mc = SPOT.microclimate || {};\n\n\n\n\n\n\n\n    \/\/ -------------------------------------------------------------------\n\n\n\n    \/\/ CALIBRA\u00c7\u00c3O OROGR\u00c1FICA DO VALE DA RIBEIRA BRAVA (Efeito Venturi \/ gap wind)\n\n\n\n    \/\/ O fluxo de N\/NNE\/NE\/NW transp\u00f5e a Encumeada (1007m) e \u00e9 canalizado\n\n\n\n    \/\/ pelo canyon em \"V\" at\u00e9 \u00e0 foz: acelera\u00e7\u00e3o Venturi + vento catab\u00e1tico.\n\n\n\n    \/\/ O modelo global (9-13km) \u00e9 cego a isto e prev\u00ea 1 n\u00f3; o real \u00e9 6-10+.\n\n\n\n    \/\/ NUNCA cortar vento de N \u2014 o vale ACELERA, n\u00e3o abriga.\n\n\n\n    \/\/ -------------------------------------------------------------------\n\n\n\n    let isVenturiRisk = false;\n\n\n\n    let effWind = rawWind;\n\n\n\n    let effGust = gustSpeed;\n\n\n\n    if (windDirDeg !== null && windDirDeg !== undefined && !isNaN(windDirDeg)) if (windDirDeg !== null && windDirDeg !== undefined && !isNaN(windDirDeg)) {\n        \/* A Foz e a South Coast nao tem a\u57fa\u76e4 da baia da Funchal: a praia da Foz\n           e a boca do vale (o vento de N-NE e canalizado e acelera) e a Costa\n           Sul e costa aberta. Sem a atenuacao fixa de 0.20\/0.25, que so servia\n           para a Funchal e cameu a leitura para o piso de 0.5. *\/\n        const sf = shelterFactor(windDirDeg);\n        effWind = Math.max(0.3, Math.round(rawWind * sf * 10) \/ 10);\n        effGust = (gustSpeed !== null && gustSpeed !== undefined && !isNaN(gustSpeed))\n          ? Math.max(0.3, Math.round(gustSpeed * sf * 10) \/ 10) : null;\n      }\n\n\n\n\n\n\n\n    let status = \"green\";\n\n\n\n    let label = t.good;\n\n\n\n\n\n\n\n    \/\/ 1. Ondula\u00e7\u00e3o desfavor\u00e1vel de Sul\/Sudeste >= 1.0m\n\n\n\n    const swellBad = (function(){ const dom = opts && opts.domD != null ? opts.domD : waveDirDeg; return (isSSE(_az(dom)) && waveHeight >= 1.1) || (isSSE(_az(opts.s2D)) && opts.s2H >= 0.5 && waveHeight >= 1.0); })();\n    const swellWarn = (function(){ const dom = opts && opts.domD != null ? opts.domD : waveDirDeg; return (isSSE(_az(dom)) && waveHeight >= 0.85) && !swellBad; })();\n        const isShelteredSwell = (function(){ const dom = opts && opts.domD != null ? opts.domD : waveDirDeg; return (dom != null && (dom >= 280 || dom <= 80)) || [\"NO\", \"NW\", \"N\", \"NE\"].includes(waveCard) || waveHeight <= 0.6; })();\n    const isShelteredWind = (windDirDeg != null && (windDirDeg >= 337.5 || windDirDeg <= 112.5));\n    const isExcellent = isShelteredWind && !swellBad && !swellWarn && !isVenturiRisk && effWind <= 5.8 && (effGust === null || (isShelteredSwell ? effGust <= 13.5 : effGust <= 10.0)) && (opts && opts.s2H ? opts.s2H < 0.45 : true);\n\n    if (swellBad || effGust >= 17.0 || effWind >= SPOT.windLimit) {\n      status = \"red\";\n      label = t.notRec;\n    } else if (swellWarn || effWind >= (SPOT.moderateLimit ?? SPOT.windLimit - 1.5) || (effGust >= 14.0 && effWind >= 5.0)) {\n      status = \"yellow\";\n      label = t.moderate;\n    } else if (isExcellent) {\n      status = \"emerald\";\n      label = t.excellent;\n    } else {\n      status = \"green\";\n      label = t.good;\n    }\n\n    return { status, label, effWind, effGust, isVenturiRisk, card, arrow: getWindArrow(card), waveCard, swellBad, swellWarn, swellDomDeg: (opts && opts.domD != null ? opts.domD : waveDirDeg), swell2H: opts ? opts.s2H : 0, swell2Deg: opts ? opts.s2D : null };\n  }\n\n\n\n\n\n\n\n  \n  \/* Selo de apresentacao: Padrao Oficial Unificado (Opcao 1: Turismo \/ Direta e Intuitiva)\n     Verde (Recomendado): vento fraco, calm sea, facil para todos os niveis\n     Amarelo (Condi\u00e7\u00f5es Moderadas): vento medio \/ brisa moderada, exige mais esforco\n     Vermelho (Nao Recomendado): vento forte, mar agitado, condicoes adversas *\/\n  function glideSeal(wind, gust, limit, gustLimit, s) {\n    if (s && s.status) {\n      if (s.status === \"red\") return { cls: \"red\", label: t.notRec, short: false };\n      if (s.status === \"yellow\") return { cls: \"yellow\", label: t.moderate, short: false };\n      return { cls: \"emerald\", label: t.excellent, short: true };\n    }\n    const cautionMargin = 1.5;\n    const modLimit = Math.max(4.5, limit - cautionMargin);\n    if (wind != null && !isNaN(wind) && (wind >= limit || (gust != null && gust >= (gustLimit || 16.0)))) {\n      return { cls: \"red\", label: t.notRec, short: false };\n    }\n    if (wind != null && !isNaN(wind) && (wind >= modLimit || (gust != null && gust >= 12.0))) {\n      return { cls: \"yellow\", label: t.moderate, short: false };\n    }\n    return { cls: \"emerald\", label: t.excellent, short: true };\n  }\n  \/* pt-PT usa virgula decimal; o \/en\/ mantem ponto. *\/\n  function glideNum(v, dec) {\n    if (v == null || isNaN(v)) return \"--\";\n    const n = Number(v).toFixed(dec == null ? 1 : dec);\n    return isEn ? n : n.replace(\".\", \",\");\n  }\n\n  async function fetchForecast() {\n\n\n\n    try {\n\n\n\n      \/* ecmwf_ifs025 via open-meteo cai sempre na celula offshore (32.75,-17.0)\n         e le ~1.5 kn em toda a Madeira: inutil. Ensemble = mediana de\n         icon + gfs + ukmo. Sem o max, que inflava 2-3x. *\/\n      const wBase = `https:\/\/api.open-meteo.com\/v1\/forecast?latitude=${SPOT.lat}&longitude=${SPOT.lon}&hourly=temperature_2m,wind_speed_10m,wind_direction_10m,wind_gusts_10m&wind_speed_unit=kn&timezone=Atlantic%2FMadeira&forecast_days=6`;\n\n\n\n      const mUrl = `https:\/\/marine-api.open-meteo.com\/v1\/marine?latitude=${SPOT.lat},${SPOT.lat - (SPOT.southExposure ? 0.14 : -0.05)}&longitude=${SPOT.lon},${SPOT.lon}&hourly=wave_height,wave_direction,wave_period,swell_wave_height,swell_wave_direction,swell_wave_period,secondary_swell_wave_height,secondary_swell_wave_direction&timezone=Atlantic%2FMadeira&forecast_days=6`;\n\n\n\n\n\n\n\n      const [rIc, rGf, rUk, mRes] = await Promise.all([\n        fetch(wBase + '&models=icon_seamless').catch(() => null),\n        fetch(wBase + '&models=gfs_seamless').catch(() => null),\n        fetch(wBase + '&models=ukmo_seamless').catch(() => null),\n        fetch(mUrl).catch(() => ({ ok: false }))\n      ]);\n      const wModels = [];\n      for (const r of [rIc, rGf, rUk]) {\n        if (!r || !r.ok) continue;\n        try { const j = await r.json(); if (j && j.hourly && (j.hourly.time || []).length) wModels.push(j.hourly); } catch (e) {}\n      }\n      if (!wModels.length) { try { const j = await (await fetch(wBase)).json(); if (j && j.hourly) wModels.push(j.hourly); } catch (e) {} }\n      const _med = (arr) => { const v = arr.filter(function (x) { return x != null && !isNaN(x); }).sort(function (a, b) { return a - b; }); return v.length ? v[Math.floor(v.length \/ 2)] : null; };\n\n\n\n      let wData = { hourly: {} };\n      if (wModels.length) {\n        const times = wModels[0].time || [];\n        const wind = [], dirs = [], gusts = [], temps = [];\n        for (let i = 0; i < times.length; i++) {\n          const ws = [], gs = [], ds = [];\n          for (const m of wModels) {\n            ws.push(m.wind_speed_10m ? Number(m.wind_speed_10m[i]) : null);\n            gs.push(m.wind_gusts_10m ? Number(m.wind_gusts_10m[i]) : null);\n            ds.push(m.wind_direction_10m ? Number(m.wind_direction_10m[i]) : null);\n          }\n          const bw = _med(ws), bg = _med(gs);\n          let bd = null;\n          const validDs = ds.filter(d => d != null && !isNaN(d));\n          if (validDs.length === 3) {\n            const cd = (a, b) => Math.abs((a - b + 180) % 360 - 180);\n            const d01 = cd(validDs[0], validDs[1]), d02 = cd(validDs[0], validDs[2]), d12 = cd(validDs[1], validDs[2]);\n            let pair = validDs;\n            if (d01 <= Math.min(d02, d12) && d02 > 80 && d12 > 80) pair = [validDs[0], validDs[1]];\n            else if (d02 <= Math.min(d01, d12) && d01 > 80 && d12 > 80) pair = [validDs[0], validDs[2]];\n            else if (d12 <= Math.min(d01, d02) && d01 > 80 && d02 > 80) pair = [validDs[1], validDs[2]];\n            let _u = 0, _v = 0;\n            for (const d of pair) { const rad = d * Math.PI \/ 180; _u += Math.sin(rad); _v += Math.cos(rad); }\n            bd = Math.round((Math.atan2(_u, _v) * 180 \/ Math.PI + 360) % 360);\n          } else if (validDs.length > 0) {\n            let _u = 0, _v = 0;\n            for (const d of validDs) { const rad = d * Math.PI \/ 180; _u += Math.sin(rad); _v += Math.cos(rad); }\n            bd = Math.round((Math.atan2(_u, _v) * 180 \/ Math.PI + 360) % 360);\n          }\n          wind.push(bw); dirs.push(bd); gusts.push(bg);\n          temps.push(wModels[0].temperature_2m && !isNaN(Number(wModels[0].temperature_2m[i])) ? Number(wModels[0].temperature_2m[i]) : 24);\n        }\n        wData = { hourly: { time: times, wind_speed_10m: wind, wind_direction_10m: dirs, wind_gusts_10m: gusts, temperature_2m: temps } };\n      }\n\n\n\n      const mData = mRes.ok ? await mRes.json() : [{ hourly: {} }, { hourly: {} }];\n\n\n\n\n\n\n\n      const wH = wData.hourly || {};\n\n\n\n      const mArr = (Array.isArray(mData) ? mData : [mData, mData]).map(x => x.hourly || {});\n      const mH = mArr[0];\n\n\n\n      const times = wH.time || [];\n\n\n\n      const windSpeeds = wH.wind_speed_10m || wH.wind_speed_10m_best_match || [];\n\n\n\n      const windDirs = wH.wind_direction_10m || wH.wind_direction_10m_best_match || [];\n\n\n\n      const windGusts = wH.wind_gusts_10m || wH.wind_gusts_10m_best_match || [];\n\n\n\n      const waveHeights = mH.wave_height || [];\n\n\n\n      const waveDirs = mH.wave_direction || [];\n      const swellHs = mH.swell_wave_height || [];\n      const swellDs = mH.swell_wave_direction || [];\n      const swellTs = mH.swell_wave_period || [];\n      const s2Hs = mH.secondary_swell_wave_height || [];\n      const s2Ds = mH.secondary_swell_wave_direction || [];\n\n\n\n      const hourlyList = [];\n\n\n\n\n\n\n\n      const currentHourStr = new Intl.DateTimeFormat('sv-SE', {\n\n\n\n        timeZone: \"Atlantic\/Madeira\",\n\n\n\n        year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', hour12: false\n\n\n\n      }).format(new Date()).replace(' ', 'T');\n\n\n\n\n\n\n\n      let currentIdx = times.findIndex(t => t.startsWith(currentHourStr));\n\n\n\n      if (currentIdx === -1) currentIdx = 0;\n\n\n\n\n\n\n\n      for (let i = 0; i < times.length; i++) {\n\n\n\n        let spd = windSpeeds[i] !== undefined && windSpeeds[i] !== null ? Number(windSpeeds[i]) : 1.5;\n\n\n\n        const dir = windDirs[i] !== undefined && windDirs[i] !== null ? Number(windDirs[i]) : 0;\n\n\n\n        const gst = windGusts[i] !== undefined && windGusts[i] !== null ? Number(windGusts[i]) : null;\n\n\n\n        let wavH = waveHeights[i] != null ? Number(waveHeights[i]) : 0.6;\n          let wavD = waveDirs[i] != null ? Number(waveDirs[i]) : 300;\n          \/* Ponto de mar aberto removido: praia usa leitura costeira *\/\n          const swellH = swellHs[i] != null ? Number(swellHs[i]) : 0;\n          const swellD = swellDs[i] != null ? Number(swellDs[i]) : null;\n          const swellT = swellTs[i] != null ? Number(swellTs[i]) : null;\n          let s2H = s2Hs[i] != null ? Number(s2Hs[i]) : 0;\n          let s2D = s2Ds[i] != null ? Number(s2Ds[i]) : null;\n          const _az = (x) => x != null ? ((Number(x) % 360) + 360) % 360 : null;\n          const _sse = (a) => a != null && a >= 157.5 && a < 247.5;\n          const domD = swellH >= s2H ? swellD : s2D;\n          const safety = evalSafety(spd, gst, dir, wavH, domD, swellH, swellD, swellT, { s2H, s2D, domD });\n\n\n\n        const _swSse = (x) => x != null && ((Number(x) % 360) + 360) % 360 >= 157.5 && ((Number(x) % 360) + 360) % 360 < 247.5; const _sh1 = _swSse(swellD) ? swellH : 0; const _r2H = (mH.secondary_swell_wave_height && mH.secondary_swell_wave_direction) ? Number(mH.secondary_swell_wave_height[i] || 0) : 0; const _r2D = mH.secondary_swell_wave_direction ? Number(mH.secondary_swell_wave_direction[i]) : null; const _a2 = _swSse(s2D) ? s2H : 0; const _b2 = _swSse(_r2D) ? _r2H : 0; const _sh2 = Math.max(_a2, _b2); const _sH = Math.max(_sh1, _sh2); const _sD = _sh1 >= _sh2 ? swellD : (_a2 >= _b2 ? s2D : _r2D); hourlyList.push({ time: times[i], spd: safety.effWind, gst: safety.effGust, dir, wavH, wavD, wavH2: swellH, wavT: swellT, swH: _sH >= 0.15 ? _sH : 0.2, swCard: _sH >= 0.15 ? degToCard(_sD) : 'S', safety });\n\n\n\n      }\n\n\n\n\n\n\n\n      const daysMap = {};\n\n\n\n      hourlyList.forEach(h => {\n\n\n\n        const k = h.time.substring(0, 10);\n\n\n\n        if (!daysMap[k]) daysMap[k] = { date: k, hourly: [] };\n\n\n\n        daysMap[k].hourly.push(h);\n\n\n\n      });\n\n\n\n\n\n\n\n      const days = Object.values(daysMap).slice(0, 5).map(d => {\n\n\n\n        const tourHours = d.hourly.filter(h => {\n\n\n\n          const hr = parseInt(h.time.substring(11, 13), 10);\n\n\n\n          return [10, 14, 18].includes(hr);\n\n\n\n        });\n\n\n\n        const validHours = tourHours.length ? tourHours : d.hourly;\n\n\n\n        const winds = validHours.map(h => h.spd);\n\n\n\n        const avgW = winds.reduce((a,b) => a+b, 0) \/ winds.length;\n\n\n\n        return { date: d.date, hourly: d.hourly, avgWind: avgW };\n\n\n\n      });\n\n\n\n\n\n\n\n      widgetData = {\n\n\n\n        current: hourlyList[currentIdx] || hourlyList[0],\n\n\n\n        days: days,\n\n\n\n        updatedAt: new Date().toLocaleTimeString('pt-PT', { hour: '2-digit', minute: '2-digit' })\n\n\n\n      };\n\n\n\n\n\n\n\n      render();\n\n\n\n    } catch(e) { console.warn(\"Fallback activated:\", e);\n      if (!widgetData) {\n        const dt = new Date().toISOString().substring(0,10);\n        const rows = [10, 14, 18].map(h => ({\n          time: dt + 'T' + (h < 10 ? '0' : '') + h + ':00',\n          spd: 4.5, gst: 7.0, dir: 220, wavH: 0.6, wavD: 300,\n          safety: evalSafety(4.5, 7.0, 220, 0.6, 300)\n        }));\n        widgetData = {\n          current: { time: dt, spd: 4.5, gst: 7.0, dir: 220, wavH: 0.6, wavD: 300, safety: evalSafety(4.5, 7.0, 220, 0.6, 300) },\n          days: [{ date: dt, hourly: rows, avgWind: 4.5 }],\n          updatedAt: new Date().toLocaleTimeString('pt-PT', { hour: '2-digit', minute: '2-digit' })\n        };\n        render();\n      }\n    }\n\n\n\n  }\n\n\n\n\n\n\n\n  function render() {\n\n\n\n    const el = document.getElementById(\"glide-compact-spot-widget\");\n\n\n\n    if (!el || !widgetData) return;\n\n\n\n    const activeDay = widgetData.days[selectedDayIdx] || widgetData.days[0];\n\n\n\n    const cur = widgetData.current;\n\n\n\n\n\n\n\n    const tourRows = activeDay.hourly.filter(h => {\n\n\n\n      const hr = parseInt(h.time.substring(11, 13), 10);\n\n\n\n      return [10, 14, 18].includes(hr);\n\n\n\n    });\n\n\n\n\n\n\n\n    el.innerHTML = `\n\n\n\n      <div class=\"glide-header-bar\">\n\n\n\n        <div class=\"glide-header-titles\">\n\n\n\n          <h3>${t.condTitle}${SPOT.name}<\/h3>\n\n\n\n          <p>${t.subtitle}${cur.safety && cur.safety.isVenturiRisk ? ' &middot; <span class=\"glide-venturi-note\">vale da Ribeira Brava: vento canalizado<\/span>' : ''}<\/p>\n\n\n\n        <\/div>\n\n\n\n        ${(() => {\n            \/* local \"Coming soon\": sem estado, so a previsao *\/\n            if (SPOT.comingSoon) {\n              return `<div class=\"glide-header-badge plain\"><span class=\"glide-badge-dot\"><\/span><span>${t.sealPlain}<\/span><\/div>`;\n            }\n            const sl = glideSeal(cur.spd, cur.gst, SPOT.windLimit, SPOT.gustLimit, cur.safety);\n            return `<div class=\"glide-header-badge ${sl.cls}\"><span class=\"glide-badge-dot\"><\/span><span>${sl.label} ${t.nowWord} (${glideNum(cur.spd)} kts)<\/span><\/div>`;\n          })()}\n\n\n\n      <\/div>\n\n\n\n\n\n\n\n      <div class=\"glide-days-nav\">\n\n\n\n        ${widgetData.days.map((d, i) => {\n\n\n\n          const dt = new Date(d.date + \"T00:00:00\");\n\n\n\n          const name = i === 0 ? t.today : dayNames[dt.getDay()];\n\n\n\n          const dateStr = `${dt.getDate()} ${monthNames[dt.getMonth()]}`;\n\n\n\n          return `\n\n\n\n            <div class=\"glide-day-tab ${i === selectedDayIdx ? 'active' : ''}\" onclick=\"window.GLIDESpotWidget.setDay(${i})\">\n\n\n\n              <span class=\"glide-day-title\">${name}<\/span>\n\n\n\n              <span class=\"glide-day-date\">${dateStr}<\/span>\n\n\n\n              <span class=\"glide-day-wind\">${t.avgWord} ${glideNum(d.avgWind)} kts<\/span>\n\n\n\n            <\/div>\n\n\n\n          `;\n\n\n\n        }).join(\"\")}\n\n\n\n      <\/div>\n\n\n\n\n\n\n\n      <div class=\"glide-table-box\">\n        <div class=\"glide-cards\">\n          \n          \n            ${tourRows.map(h => {\n              const hourStr = h.time.substring(11, 16);\n              const s = h.safety;\n              const waveVal = (h.swH != null ? h.swH : h.wavH);\n              const waveCard = (h.swCard && h.swCard !== '--') ? h.swCard : ((s && s.waveCard && s.waveCard !== '--') ? s.waveCard : 'S');\n              const waveArrow = getWindArrow(waveCard);\n              const limit = SPOT.windLimit;\n              const gustLimit = SPOT.gustLimit;\n              const seal = glideSeal(h.spd, h.gst, limit, gustLimit, s);\n              const gustHtml = (h.gst != null && h.gst > h.spd)\n                ? `<span class=\"glide-gust-text\">${t.gustWord} <strong>${glideNum(h.gst)}<\/strong> kts<\/span>`\n                : '';\n              return `\n                <div class=\"glide-hour-card glide-st-${seal.cls}\">\n                  <div class=\"glide-hc-top\">\n                    <span class=\"glide-hc-hour\">${hourStr}<\/span>\n                    <span class=\"glide-pill-status ${seal.cls}\">${seal.short ? t.sealShort : seal.label}<\/span>\n                  <\/div>\n                  <div class=\"wind-center-banner\">\n                    <span class=\"wind-label-tag\">${t.thWind}<\/span>\n                    <div class=\"wind-values-wrap\">\n                      <span class=\"wind-main-num\">${glideNum(h.spd)}<\/span>\n                      <span class=\"wind-unit\">kts<\/span>\n                      ${(h.gst != null && h.gst > h.spd) ? `<span class=\"wind-sep-dot\">\u2022<\/span><span class=\"wind-gust-inline\">${t.gustWord} <strong>${glideNum(h.gst)}<\/strong> kts<\/span>` : ''}\n                    <\/div>\n                  <\/div>\n                  <div class=\"glide-hc-foot\">\n                    <span class=\"glide-hc-cell\">\n                      <span class=\"glide-hc-lbl\">${t.thDir}<\/span>\n                      <span class=\"glide-dir\"><span class=\"glide-badge-dir\">${s.arrow}<\/span><strong>${s.card}<\/strong><\/span>\n                    <\/span>\n                    <span class=\"glide-hc-cell\">\n                      <span class=\"glide-hc-lbl\">${t.thSwell}<\/span>\n                      <span class=\"glide-swell\"><span class=\"glide-badge-wave\">${waveArrow}<\/span><strong>${waveCard}<\/strong><b>${glideNum(waveVal)}<i>m<\/i><\/b><\/span>\n                    <\/span>\n                  <\/div>\n                <\/div>`;\n            }).join(\"\")}\n          \n        <\/div>\n      <\/div>\n\n\n\n\n\n\n\n      <div class=\"glide-compact-footer\">\n        <div style=\"color:#94A3B8;\">${t.updated} ${widgetData.updatedAt}<\/div>\n        <div>Powered by <strong>GLIDE<\/strong><\/div>\n      <\/div>\n\n\n\n      <\/div>\n\n\n\n    `;\n\n\n\n  }\n\n\n\n\n\n\n\n  window.GLIDESpotWidget = {\n\n\n\n    setDay: function(idx) {\n\n\n\n      selectedDayIdx = idx;\n\n\n\n      render();\n\n\n\n    }\n\n\n\n  };\n\n\n\n\n\n\n\n  if (document.readyState === \"loading\") {\n\n\n\n    document.addEventListener(\"DOMContentLoaded\", fetchForecast);\n\n\n\n  } else {\n\n\n\n    fetchForecast();\n\n\n\n  }\n\n\n\n})();\n\n\n\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9b4cd06 e-flex e-con-boxed e-con e-parent\" data-id=\"9b4cd06\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-458851f elementor-widget elementor-widget-heading\" data-id=\"458851f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Ready to paddle in Ribeira Brava?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c2508eb elementor-widget elementor-widget-text-editor\" data-id=\"c2508eb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"color: #334A5E; font-size: 18px; line-height: 1.6; text-align: center; max-width: 620px; margin: 0 auto 10px; font-weight: 500;\">Enjoy our special launch price of <strong style=\"color: #0E7FB8; font-weight: 700; font-size: 20px;\">\u20ac35<\/strong> per person.<\/p><p style=\"color: #5C7080; font-size: 15.5px; line-height: 1.5; text-align: center; max-width: 580px; margin: 0 auto;\">Calculate the total price for your group below and book directly via WhatsApp.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-rbc9x2k4 e-flex e-con-boxed e-con e-parent\" data-id=\"rbc9x2k4\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-rbw7m5p3 elementor-widget elementor-widget-html\" data-id=\"rbw7m5p3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div id=\"rbres\">\n<style>\n#rbres{background:#04182B;border-radius:14px;padding:28px 22px;max-width:640px;margin:0 auto;color:#fff;box-shadow:0 12px 35px rgba(4,24,43,0.35)}\n#rbres h3{color:#fff;margin:0 0 6px;font-size:26px;line-height:1.2;font-family:'Outfit',sans-serif;font-weight:700}\n#rbres .sub{color:#C9DAE6;margin:0 0 18px;font-size:15px;line-height:1.45}\n.rb-limite-aviso{display:none;background:rgba(255,183,3,0.15);border:1px solid #ffb703;color:#ffdd80;padding:10px 14px;border-radius:8px;font-size:13.5px;margin-bottom:14px;font-weight:600}\n.rb-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.12)}\n.rb-nome{font-size:16px;flex:1;font-weight:500}\n.rb-preco{font-weight:700;color:#7fe0b0;white-space:nowrap;min-width:65px;text-align:right;font-size:15.5px}\n.rb-qty{width:70px;padding:8px;border-radius:8px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.07);color:#fff;font-size:16px;text-align:center;font-weight:600}\n.rb-lbl{margin-top:14px;display:block;font-size:14px;color:#C9DAE6;margin-bottom:5px}\n.rb-data{width:100%;box-sizing:border-box;padding:9px;border-radius:8px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.07);color:#fff;font-size:15px;color-scheme:dark}\n.rb-totais{margin-top:16px;border-top:1px solid rgba(255,255,255,.12);padding-top:14px}\n.rb-linha-total{display:flex;justify-content:space-between;align-items:center;font-size:15px;color:#C9DAE6;margin-bottom:6px}\n.rb-total{display:flex;justify-content:space-between;align-items:center;font-size:18px;color:#fff;border-top:1px solid rgba(255,255,255,.12);padding-top:10px;margin-top:8px}\n.rb-total b{font-size:25px;color:#7fe0b0}\n.rb-btn{display:block;text-align:center;margin-top:18px;background:#2fbf71;color:#04182B;font-weight:700;padding:14px 10px;border-radius:10px;text-decoration:none;font-size:17px;transition:background 0.2s, transform 0.2s}\n.rb-btn:hover{background:#28a763;color:#04182B}\n.rb-btn.disabled{background:#5a7184;color:#cbd5e1;cursor:not-allowed;pointer-events:none}\n@media(max-width:420px){.rb-qty{width:58px}}\n<\/style>\n<h3 id=\"rbTitulo\">Book your SUP tour<\/h3>\n<p id=\"rbSub\" class=\"sub\">Select your participants (minimum 1 \/ maximum 6 participants per tour) \u2014 confirmation and payment will be arranged via WhatsApp.<\/p>\n<div id=\"rbAviso\" class=\"rb-limite-aviso\">Maximum capacity reached: 6 participants per tour.<\/div>\n<div class=\"rb-row\"><span class=\"rb-nome\" id=\"rbNomeA\">Adult (18+)<\/span><span class=\"rb-preco\" id=\"rbPrecoA\" data-t=\"35 \u20ac\"><s style=\"color:#94a3b8;font-size:13px;margin-right:4px;\">55 \u20ac<\/s> 35 \u20ac<\/span><input class=\"rb-qty\" type=\"number\" min=\"0\" max=\"6\" value=\"1\" data-k=\"a\"><\/div>\n<div class=\"rb-row\"><span class=\"rb-nome\" id=\"rbNomeJ\">Young person (11\u201317)<\/span><span class=\"rb-preco\" id=\"rbPrecoJ\" data-t=\"\u20ac20\"><s style=\"color:#94a3b8;font-size:13px;margin-right:4px;\">\u20ac30<\/s> \u20ac20<\/span><input class=\"rb-qty\" type=\"number\" min=\"0\" max=\"6\" value=\"0\" data-k=\"j\"><\/div>\n<div class=\"rb-row\"><span class=\"rb-nome\" id=\"rbNomeC\">Child (under 11)<\/span><span class=\"rb-preco\" id=\"rbPrecoC\" data-t=\"\u20ac10\"><s style=\"color:#94a3b8;font-size:13px;margin-right:4px;\">\u20ac20<\/s> \u20ac10<\/span><input class=\"rb-qty\" type=\"number\" min=\"0\" max=\"6\" value=\"0\" data-k=\"c\"><\/div>\n<label id=\"rbLblData\" class=\"rb-lbl\" for=\"rbData\">Preferred date (optional)<\/label>\n<input id=\"rbData\" class=\"rb-data\" type=\"date\">\n<div class=\"rb-totais\">\n  <div class=\"rb-linha-total\"><span id=\"rbLblSubtotal\">Subtotal (standard prices)<\/span><span id=\"rbValSubtotal\" style=\"font-weight:600;color:#fff\">55 \u20ac<\/span><\/div>\n  <div class=\"rb-linha-total\" id=\"rbWrapDesconto\" style=\"color:#7fe0b0\"><span id=\"rbLblDesconto\">Launch discount<\/span><span id=\"rbValDesconto\" style=\"font-weight:600;color:#7fe0b0\">- \u20ac20<\/span><\/div>\n  <div class=\"rb-total\"><span id=\"rbLblTotal\" style=\"font-weight:700\">Total<\/span><b id=\"rbValTotal\">35 \u20ac<\/b><\/div>\n<\/div>\n<a id=\"rbWa\" class=\"rb-btn\" href=\"#\" target=\"_blank\" rel=\"noopener\">Book via WhatsApp<\/a>\n<script>(function(){\nvar isEN=window.location.pathname.indexOf('\/en\/')!==-1;\nif(isEN){\n var t=document.getElementById('rbTitulo'),s=document.getElementById('rbSub'),na=document.getElementById('rbNomeA'),nj=document.getElementById('rbNomeJ'),nc=document.getElementById('rbNomeC'),ld=document.getElementById('rbLblData'),lsub=document.getElementById('rbLblSubtotal'),ldesc=document.getElementById('rbLblDesconto'),ltot=document.getElementById('rbLblTotal'),bw=document.getElementById('rbWa'),av=document.getElementById('rbAviso');\n var pa=document.getElementById('rbPrecoA'),pj=document.getElementById('rbPrecoJ'),pc=document.getElementById('rbPrecoC');\n if(t)t.textContent='Book your SUP tour';\n if(s)s.textContent='Select your participants (minimum 1 \/ maximum 6 participants per tour) \u2014 confirmation and payment will be arranged via WhatsApp.';\n if(na)na.textContent='Adult (18+)';\n if(nj)nj.textContent='Young person (11\u201317)';\n if(nc)nc.textContent='Child (<11)';\n if(ld)ld.textContent='Preferred date (optional)';\n if(lsub)lsub.textContent='Subtotal (standard prices)';\n if(ldesc)ldesc.textContent='Launch discount';\n if(ltot)ltot.textContent='Total';\n if(bw)bw.textContent='Book via WhatsApp';\n if(av)av.textContent='Maximum capacity reached: 6 participants per tour.';\n if(pa)pa.innerHTML='<s style=\"color:#94a3b8;font-size:13px;margin-right:4px;\">\u20ac55<\/s> \u20ac35';\n if(pj)pj.innerHTML='<s style=\"color:#94a3b8;font-size:13px;margin-right:4px;\">\u20ac30<\/s> \u20ac20';\n if(pc)pc.innerHTML='<s style=\"color:#94a3b8;font-size:13px;margin-right:4px;\">\u20ac20<\/s> \u20ac10';\n}\n\nvar btnFalar = document.querySelector('.elementor-element-6cf9b30 a');\nif(btnFalar){\n var linesF = isEN\n  ? ['Hi GLIDE SUP Tours! I would like information about the Praia da Foz SUP Tour (Ribeira Brava). \ud83c\udfc4', '\ud83d\udcc5 Date:', '\ud83d\udc65 Number of participants:']\n  : ['Ol\u00e1 GLIDE SUP Tours! Gostaria de informa\u00e7\u00f5es sobre o Praia da Foz SUP Tour (Ribeira Brava). \ud83c\udfc4', 'Por favor, indique o dia pretendido e o n\u00famero de participantes:', '\ud83d\udcc5 Dia:', '\ud83d\udc65 N\u00famero de participantes:'];\n btnFalar.href = 'https:\/\/wa.me\/351914190623?text=' + encodeURIComponent(linesF.join(String.fromCharCode(10)));\n}\n\nvar VN=isEN?{a:'Adult (18+)',j:'Young person (11\u201317)',c:'Child (<11)'}:{a:'Adult (18+)',j:'Young person (11\u201317)',c:'Child (under 11)'};\nvar P={a:55,j:30,c:20};\nvar D={a:20,j:10,c:10};\nvar F={a:35,j:20,c:10};\nvar elSubtotal=document.getElementById('rbValSubtotal'),elDesconto=document.getElementById('rbValDesconto'),elTotal=document.getElementById('rbValTotal'),wrapDesc=document.getElementById('rbWrapDesconto'),wa=document.getElementById('rbWa'),aviso=document.getElementById('rbAviso');\n\nfunction calc(e){\n var inputs = document.querySelectorAll('#rbres .rb-qty');\n var qA=parseInt(document.querySelector('#rbres .rb-qty[data-k=\"a\"]').value,10)||0;\n var qJ=parseInt(document.querySelector('#rbres .rb-qty[data-k=\"j\"]').value,10)||0;\n var qC=parseInt(document.querySelector('#rbres .rb-qty[data-k=\"c\"]').value,10)||0;\n if(qA<0) qA=0; if(qJ<0) qJ=0; if(qC<0) qC=0;\n \n var soma = qA + qJ + qC;\n if(soma > 6){\n  if(e && e.target){\n   var diff = soma - 6;\n   var currentVal = parseInt(e.target.value, 10) || 0;\n   e.target.value = Math.max(0, currentVal - diff);\n  }\n  qA=parseInt(document.querySelector('#rbres .rb-qty[data-k=\"a\"]').value,10)||0;\n  qJ=parseInt(document.querySelector('#rbres .rb-qty[data-k=\"j\"]').value,10)||0;\n  qC=parseInt(document.querySelector('#rbres .rb-qty[data-k=\"c\"]').value,10)||0;\n  soma = qA + qJ + qC;\n  aviso.style.display = 'block';\n } else {\n  aviso.style.display = 'none';\n }\n\n var totalTabela = (qA * P.a) + (qJ * P.j) + (qC * P.c);\n var desconto = (qA * D.a) + (qJ * D.j) + (qC * D.c);\n var totalFinal = (qA * F.a) + (qJ * F.j) + (qC * F.c);\n\n elSubtotal.textContent = isEN ? ('\u20ac' + totalTabela) : (totalTabela + ' \u20ac');\n if(desconto > 0){\n  wrapDesc.style.display = 'flex';\n  elDesconto.textContent = isEN ? ('- \u20ac' + desconto) : ('- ' + desconto + ' \u20ac');\n } else {\n  wrapDesc.style.display = 'none';\n }\n elTotal.textContent = isEN ? ('\u20ac' + totalFinal) : (totalFinal + ' \u20ac');\n\n if(soma < 1){\n  wa.classList.add('disabled');\n  wa.textContent = isEN ? 'Select at least 1 participant' : 'Seleciona pelo menos 1 participante';\n  wa.href = '#';\n  return;\n } else {\n  wa.classList.remove('disabled');\n  wa.textContent = isEN ? 'Book via WhatsApp' : 'Book via WhatsApp';\n }\n\n var linhas = [];\n if(qA > 0) linhas.push(qA + 'x ' + VN.a + ' (' + (isEN ? '\u20ac' + F.a : F.a + ' \u20ac') + ')');\n if(qJ > 0) linhas.push(qJ + 'x ' + VN.j + ' (' + (isEN ? '\u20ac' + F.j : F.j + ' \u20ac') + ')');\n if(qC > 0) linhas.push(qC + 'x ' + VN.c + ' (' + (isEN ? '\u20ac' + F.c : F.c + ' \u20ac') + ')');\n\n var lines = [];\n lines.push(isEN ? 'Hi GLIDE SUP Tours! I would like to book the Praia da Foz SUP Tour (Ribeira Brava). \ud83c\udfc4' : 'Ol\u00e1 GLIDE SUP Tours! Quero reservar o Praia da Foz SUP Tour (Ribeira Brava). \ud83c\udfc4');\n for(var i=0; i<linhas.length; i++){ lines.push('\u2022 ' + linhas[i]); }\n lines.push((isEN ? 'Total: \u20ac' : 'Total: ') + totalFinal + (isEN ? ' (launch price)' : ' \u20ac (pre\u00e7o de lan\u00e7amento)'));\n\n var dv = document.getElementById('rbData') ? document.getElementById('rbData').value : '';\n var dataTxt = '';\n if(dv){\n  var parts = dv.split('-');\n  if(parts.length === 3 && parts[0].length === 4){\n   dataTxt = parts[2] + '\/' + parts[1] + '\/' + parts[0];\n  } else {\n   var p = new Date(dv + 'T12:00:00');\n   if(!isNaN(p.getTime())){\n    dataTxt = p.toLocaleDateString(isEN ? 'en-GB' : 'pt-PT');\n   }\n  }\n }\n if(!dataTxt){\n  dataTxt = isEN ? 'to be arranged' : 'a combinar';\n }\n lines.push((isEN ? '\ud83d\udcc5 Preferred date: ' : '\ud83d\udcc5 Data pretendida: ') + dataTxt);\n lines.push(isEN ? '(Subject to sea and wind conditions)' : '(Sujeito \u00e0s condi\u00e7\u00f5es de mar e vento)');\n\n var msg = lines.join(String.fromCharCode(10));\n wa.href = 'https:\/\/wa.me\/351914190623?text=' + encodeURIComponent(msg);\n}\n\ndocument.getElementById('rbData').addEventListener('change', calc);\ndocument.querySelectorAll('#rbres .rb-qty').forEach(function(q){\n q.addEventListener('input', calc);\n q.addEventListener('change', calc);\n});\ncalc();\n})();<\/script>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9218743 e-flex e-con-boxed e-con e-parent\" data-id=\"9218743\" data-element_type=\"container\" data-e-type=\"container\" id=\"faq\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-07db6b0 elementor-widget elementor-widget-heading\" data-id=\"07db6b0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Frequently Asked Questions<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c9d95ab elementor-widget elementor-widget-n-accordion\" data-id=\"c9d95ab\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;default_state&quot;:&quot;expanded&quot;,&quot;max_items_expended&quot;:&quot;one&quot;,&quot;n_accordion_animation_duration&quot;:{&quot;unit&quot;:&quot;ms&quot;,&quot;size&quot;:400,&quot;sizes&quot;:[]}}\" data-widget_type=\"nested-accordion.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"e-n-accordion\" aria-label=\"Accordion. Open links with Enter or Space, close with Escape, and navigate with Arrow Keys\">\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-2110\" class=\"e-n-accordion-item\" open>\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"1\" tabindex=\"0\" aria-expanded=\"true\" aria-controls=\"e-n-accordion-item-2110\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> How does booking work? <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><i aria-hidden=\"true\" class=\"fas fa-minus\"><\/i><\/span>\n\t\t\t<span class='e-closed'><i aria-hidden=\"true\" class=\"fas fa-plus\"><\/i><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-2110\" class=\"elementor-element elementor-element-de9b3e8 e-con-full e-flex e-con e-child\" data-id=\"de9b3e8\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-2110\" class=\"elementor-element elementor-element-5242004 e-flex e-con-boxed e-con e-child\" data-id=\"5242004\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-740008b elementor-widget elementor-widget-text-editor\" data-id=\"740008b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Bookings are made by phone or message (<strong>+351 914 190 623<\/strong>). <\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-2111\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"2\" tabindex=\"-1\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-2111\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> What if the weather is not favourable? <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><i aria-hidden=\"true\" class=\"fas fa-minus\"><\/i><\/span>\n\t\t\t<span class='e-closed'><i aria-hidden=\"true\" class=\"fas fa-plus\"><\/i><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-2111\" class=\"elementor-element elementor-element-76a1bea e-con-full e-flex e-con e-child\" data-id=\"76a1bea\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-2111\" class=\"elementor-element elementor-element-8900343 e-flex e-con-boxed e-con e-child\" data-id=\"8900343\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3b540d3 elementor-widget elementor-widget-text-editor\" data-id=\"3b540d3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>If we cancel due to adverse weather conditions or other reasons, you receive a full refund or free rescheduling \u2014 the choice is yours.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-2112\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"3\" tabindex=\"-1\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-2112\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> Can I cancel or change the date? <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><i aria-hidden=\"true\" class=\"fas fa-minus\"><\/i><\/span>\n\t\t\t<span class='e-closed'><i aria-hidden=\"true\" class=\"fas fa-plus\"><\/i><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-2112\" class=\"elementor-element elementor-element-64bf693 e-con-full e-flex e-con e-child\" data-id=\"64bf693\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-2112\" class=\"elementor-element elementor-element-32bea15 e-flex e-con-boxed e-con e-child\" data-id=\"32bea15\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7366712 elementor-widget elementor-widget-text-editor\" data-id=\"7366712\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>\u2022 Cancellation by the customer at least 24 hours before the tour starts: reembolso a 100%.<br \/>\u2022 Cancelamento pelo cliente com menos de 24 horas de anteced\u00eancia ou n\u00e3o compar\u00eancia (no-show): no refund.<br \/>\u2022 Cancellation by GLIDE SUP Tours due to sea or weather conditions: reembolso integral a 100% ou remarca\u00e7\u00e3o sem custos, \u00e0 escolha do cliente.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-2113\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"4\" tabindex=\"-1\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-2113\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> How do I get to the meeting point?  <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><i aria-hidden=\"true\" class=\"fas fa-minus\"><\/i><\/span>\n\t\t\t<span class='e-closed'><i aria-hidden=\"true\" class=\"fas fa-plus\"><\/i><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-2113\" class=\"elementor-element elementor-element-c320da3 e-flex e-con-boxed e-con e-child\" data-id=\"c320da3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-2113\" class=\"elementor-element elementor-element-d37e3eb e-con-full e-flex e-con e-child\" data-id=\"d37e3eb\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d267f13 elementor-widget elementor-widget-text-editor\" data-id=\"d267f13\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Each participant arranges their own transport \u2014 transport is not included. The meeting point is described above.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-2114\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"5\" tabindex=\"-1\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-2114\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> Will I receive photos from the tour? <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><i aria-hidden=\"true\" class=\"fas fa-minus\"><\/i><\/span>\n\t\t\t<span class='e-closed'><i aria-hidden=\"true\" class=\"fas fa-plus\"><\/i><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-2114\" class=\"elementor-element elementor-element-6229783 e-flex e-con-boxed e-con e-child\" data-id=\"6229783\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-2114\" class=\"elementor-element elementor-element-8c1046d e-con-full e-flex e-con e-child\" data-id=\"8c1046d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-74e8ca3 elementor-widget elementor-widget-text-editor\" data-id=\"74e8ca3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Yes!<\/p><p>Photos are included in the experience at no extra cost. If you want to bring your phone, waterproof bags are available (devices remain under your own responsibility).<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-2115\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"6\" tabindex=\"-1\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-2115\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> What items should I bring on the tour? <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><i aria-hidden=\"true\" class=\"fas fa-minus\"><\/i><\/span>\n\t\t\t<span class='e-closed'><i aria-hidden=\"true\" class=\"fas fa-plus\"><\/i><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-2115\" class=\"elementor-element elementor-element-5d21267 e-flex e-con-boxed e-con e-child\" data-id=\"5d21267\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-2115\" class=\"elementor-element elementor-element-f6d1379 e-con-full e-flex e-con e-child\" data-id=\"f6d1379\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-513a523 elementor-widget elementor-widget-text-editor\" data-id=\"513a523\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Beachwear, sunscreen and water. Sandals are mandatory, due to the hot sand.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-2116\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"7\" tabindex=\"-1\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-2116\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> I've never done SUP. Can I join the tour?  <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><i aria-hidden=\"true\" class=\"fas fa-minus\"><\/i><\/span>\n\t\t\t<span class='e-closed'><i aria-hidden=\"true\" class=\"fas fa-plus\"><\/i><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-2116\" class=\"elementor-element elementor-element-789ae28 e-flex e-con-boxed e-con e-child\" data-id=\"789ae28\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-2116\" class=\"elementor-element elementor-element-c002bea e-con-full e-flex e-con e-child\" data-id=\"c002bea\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d645667 elementor-widget elementor-widget-text-editor\" data-id=\"d645667\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Absolutely \u2014 this tour requires no previous experience. You only need to know how to swim; we handle the rest, teaching you the technique with the guide before entering the water.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-2117\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"8\" tabindex=\"-1\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-2117\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> What is the minimum age to participate?  <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><i aria-hidden=\"true\" class=\"fas fa-minus\"><\/i><\/span>\n\t\t\t<span class='e-closed'><i aria-hidden=\"true\" class=\"fas fa-plus\"><\/i><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-2117\" class=\"elementor-element elementor-element-88e5aa7 e-flex e-con-boxed e-con e-child\" data-id=\"88e5aa7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-2117\" class=\"elementor-element elementor-element-c4b6578 e-con-full e-flex e-con e-child\" data-id=\"c4b6578\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7fc1cc0 elementor-widget elementor-widget-text-editor\" data-id=\"7fc1cc0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>From 6 years old on a shared board with an adult. Solo paddling from 12 years old.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-2118\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"9\" tabindex=\"-1\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-2118\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> What time should I arrive? <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><i aria-hidden=\"true\" class=\"fas fa-minus\"><\/i><\/span>\n\t\t\t<span class='e-closed'><i aria-hidden=\"true\" class=\"fas fa-plus\"><\/i><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-2118\" class=\"elementor-element elementor-element-84dfd4e e-flex e-con-boxed e-con e-child\" data-id=\"84dfd4e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-2118\" class=\"elementor-element elementor-element-c20da0e e-con-full e-flex e-con e-child\" data-id=\"c20da0e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-16819d9 elementor-widget elementor-widget-text-editor\" data-id=\"16819d9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>At Praia da Foz, please arrive 15\u201320 minutes before the scheduled time.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-80d8dae e-flex e-con-boxed e-con e-parent\" data-id=\"80d8dae\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c42be6b elementor-widget elementor-widget-heading\" data-id=\"c42be6b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Gallery<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bc3fbef gallery-spacing-Array elementor-widget elementor-widget-image-gallery\" data-id=\"bc3fbef\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image-gallery.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-image-gallery\">\n\t\t\t<div id='gallery-1' class='gallery galleryid-1742 gallery-columns-3 gallery-size-large'><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon landscape'>\n\t\t\t\t<a data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-slideshow=\"bc3fbef\" data-elementor-lightbox-title=\"hero natural\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MzA3NCwidXJsIjoiaHR0cHM6XC9cL2dsaWRlc3VwdG91cnMucHRcL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMjZcLzA5XC9oZXJvLW5hdHVyYWwuanBnIiwic2xpZGVzaG93IjoiYmMzZmJlZiJ9\" href='https:\/\/glidesuptours.pt\/wp-content\/uploads\/2026\/09\/hero-natural.jpg'><img decoding=\"async\" width=\"1024\" height=\"470\" src=\"https:\/\/glidesuptours.pt\/wp-content\/uploads\/2026\/09\/hero-natural-1024x470.jpg\" class=\"attachment-large size-large\" alt=\"hero natural\" srcset=\"https:\/\/glidesuptours.pt\/wp-content\/uploads\/2026\/09\/hero-natural-1024x470.jpg 1024w, https:\/\/glidesuptours.pt\/wp-content\/uploads\/2026\/09\/hero-natural-300x138.jpg 300w, https:\/\/glidesuptours.pt\/wp-content\/uploads\/2026\/09\/hero-natural-768x352.jpg 768w, https:\/\/glidesuptours.pt\/wp-content\/uploads\/2026\/09\/hero-natural-18x8.jpg 18w, https:\/\/glidesuptours.pt\/wp-content\/uploads\/2026\/09\/hero-natural-600x275.jpg 600w, https:\/\/glidesuptours.pt\/wp-content\/uploads\/2026\/09\/hero-natural.jpg 1500w\" sizes=\"(max-width: 1024px) 100vw, 1024px\"  title=\"Ribeira Brava SUP Tours\" \/><\/a>\n\t\t\t<\/div><\/figure><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon portrait'>\n\t\t\t\t<a data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-slideshow=\"bc3fbef\" data-elementor-lightbox-title=\"img 20200614 125511\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MjAzNywidXJsIjoiaHR0cHM6XC9cL2dsaWRlc3VwdG91cnMucHRcL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMjZcLzA2XC9JTUdfMjAyMDA2MTRfMTI1NTExLXNjYWxlZC5qcGciLCJzbGlkZXNob3ciOiJiYzNmYmVmIn0%3D\" href='https:\/\/glidesuptours.pt\/wp-content\/uploads\/2026\/06\/IMG_20200614_125511-scaled.jpg'><img decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/glidesuptours.pt\/wp-content\/uploads\/2026\/06\/IMG_20200614_125511-768x1024.jpg\" class=\"attachment-large size-large\" alt=\"img 20200614 125511\" srcset=\"https:\/\/glidesuptours.pt\/wp-content\/uploads\/2026\/06\/IMG_20200614_125511-768x1024.jpg 768w, https:\/\/glidesuptours.pt\/wp-content\/uploads\/2026\/06\/IMG_20200614_125511-scaled-600x800.jpg 600w, https:\/\/glidesuptours.pt\/wp-content\/uploads\/2026\/06\/IMG_20200614_125511-225x300.jpg 225w, https:\/\/glidesuptours.pt\/wp-content\/uploads\/2026\/06\/IMG_20200614_125511-1152x1536.jpg 1152w, https:\/\/glidesuptours.pt\/wp-content\/uploads\/2026\/06\/IMG_20200614_125511-1536x2048.jpg 1536w, https:\/\/glidesuptours.pt\/wp-content\/uploads\/2026\/06\/IMG_20200614_125511-9x12.jpg 9w, https:\/\/glidesuptours.pt\/wp-content\/uploads\/2026\/06\/IMG_20200614_125511-scaled.jpg 1920w\" sizes=\"(max-width: 768px) 100vw, 768px\"  title=\"Ribeira Brava SUP Tours\" \/><\/a>\n\t\t\t<\/div><\/figure><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon landscape'>\n\t\t\t\t<a data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-slideshow=\"bc3fbef\" data-elementor-lightbox-title=\"img 20250915 110438 (2)\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MTY0OCwidXJsIjoiaHR0cHM6XC9cL2dsaWRlc3VwdG91cnMucHRcL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMjZcLzA1XC9JTUdfMjAyNTA5MTVfMTEwNDM4LTIuanBnIiwic2xpZGVzaG93IjoiYmMzZmJlZiJ9\" href='https:\/\/glidesuptours.pt\/wp-content\/uploads\/2026\/05\/IMG_20250915_110438-2.jpg'><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"470\" src=\"https:\/\/glidesuptours.pt\/wp-content\/uploads\/2026\/05\/IMG_20250915_110438-2-1024x470.jpg\" class=\"attachment-large size-large\" alt=\"img 20250915 110438 (2)\" srcset=\"https:\/\/glidesuptours.pt\/wp-content\/uploads\/2026\/05\/IMG_20250915_110438-2-1024x470.jpg 1024w, https:\/\/glidesuptours.pt\/wp-content\/uploads\/2026\/05\/IMG_20250915_110438-2-600x275.jpg 600w, https:\/\/glidesuptours.pt\/wp-content\/uploads\/2026\/05\/IMG_20250915_110438-2-300x138.jpg 300w, https:\/\/glidesuptours.pt\/wp-content\/uploads\/2026\/05\/IMG_20250915_110438-2-768x352.jpg 768w, https:\/\/glidesuptours.pt\/wp-content\/uploads\/2026\/05\/IMG_20250915_110438-2.jpg 1500w\" sizes=\"(max-width: 1024px) 100vw, 1024px\"  title=\"Ribeira Brava SUP Tours\" \/><\/a>\n\t\t\t<\/div><\/figure>\n\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>PRAIA DA FOZSUP TOUR Crystal-clear waters, small groups and a unique view of Madeira&#8217;s south coast. View tour details \u2193 Guided tours Ribeira Brava &#8211; Praia da Foz Beginners welcome About the Tour The Ribeira Brava tour follows Madeira\u2019s south coast, departing from Praia da Foz and paddling along the cliffs to the south and [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"page-builder","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"_joinchat":[],"footnotes":""},"class_list":["post-1742","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/glidesuptours.pt\/en\/wp-json\/wp\/v2\/pages\/1742","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/glidesuptours.pt\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/glidesuptours.pt\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/glidesuptours.pt\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/glidesuptours.pt\/en\/wp-json\/wp\/v2\/comments?post=1742"}],"version-history":[{"count":478,"href":"https:\/\/glidesuptours.pt\/en\/wp-json\/wp\/v2\/pages\/1742\/revisions"}],"predecessor-version":[{"id":3252,"href":"https:\/\/glidesuptours.pt\/en\/wp-json\/wp\/v2\/pages\/1742\/revisions\/3252"}],"wp:attachment":[{"href":"https:\/\/glidesuptours.pt\/en\/wp-json\/wp\/v2\/media?parent=1742"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}