{"id":2,"date":"2025-02-10T22:31:18","date_gmt":"2025-02-10T22:31:18","guid":{"rendered":"http:\/\/agualongavillas.com\/?page_id=2"},"modified":"2026-09-02T21:52:18","modified_gmt":"2026-09-02T21:52:18","slug":"booking","status":"publish","type":"page","link":"https:\/\/www.agualongavillas.com\/en\/booking\/","title":{"rendered":"booking"},"content":{"rendered":"<div class=\"wpb-content-wrapper\"><div class=\"vc_row wpb_row vc_row-fluid wpestate_row vc_row\"><div class=\"wpb_column vc_column_container vc_col-sm-12 vc_column\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><\/div><\/div><\/div><\/div><div class=\"vc_row wpb_row vc_row-fluid wpestate_row vc_row\"><div class=\"wpb_column vc_column_container vc_col-sm-12 vc_column\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\">\n\t<div class=\"wpb_raw_code wpb_raw_html wpb_content_element vc_raw_html\" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<style>\r\n\/* =========================================================\r\n   AGUALONGA VILLAS - P\u00c1GINA \/BOOKING\/\r\n   Layout exterior sem iframe\r\n   ========================================================= *\/\r\n\r\n.ag-page-wrap{\r\n    width:100%;\r\n    max-width:1180px;\r\n    margin:0 auto;\r\n    padding:30px 24px 70px;\r\n    box-sizing:border-box;\r\n}\r\n\r\n.ag-page-intro{\r\n    max-width:760px;\r\n    margin:0 auto 30px;\r\n    text-align:center;\r\n}\r\n\r\n.ag-page-intro h1{\r\n    margin:0;\r\n    color:#262637;\r\n    font-family:Arial,Helvetica,sans-serif;\r\n    font-size:34px;\r\n    line-height:1.2;\r\n    font-weight:700;\r\n}\r\n\r\n.ag-page-main{\r\n    width:100%;\r\n    max-width:640px;\r\n    margin:0 auto;\r\n    padding:28px 24px;\r\n    background:#fff;\r\n    border:1px solid #e5e7eb;\r\n    border-radius:12px;\r\n    box-shadow:0 12px 35px rgba(0,0,0,.07);\r\n    box-sizing:border-box;\r\n}\r\n\r\n.ag-page-benefits{\r\n    max-width:760px;\r\n    margin:24px auto 0;\r\n    display:flex;\r\n    justify-content:center;\r\n    align-items:center;\r\n    flex-wrap:wrap;\r\n    gap:12px 32px;\r\n    color:#4e5057;\r\n    font-family:Arial,Helvetica,sans-serif;\r\n    font-size:14px;\r\n}\r\n\r\n.ag-page-benefit{\r\n    display:inline-flex;\r\n    align-items:center;\r\n    gap:7px;\r\n}\r\n\r\n.ag-page-check{\r\n    display:inline-flex;\r\n    align-items:center;\r\n    justify-content:center;\r\n    width:20px;\r\n    height:20px;\r\n    flex:0 0 20px;\r\n    border-radius:50%;\r\n    background:rgba(0,155,22,.10);\r\n    color:#009b16;\r\n    font-size:13px;\r\n    font-weight:700;\r\n}\r\n\r\n.ag-page-help{\r\n    max-width:640px;\r\n    margin:34px auto 0;\r\n    padding:24px;\r\n    text-align:center;\r\n    background:#f7f8f7;\r\n    border-radius:10px;\r\n    box-sizing:border-box;\r\n    font-family:Arial,Helvetica,sans-serif;\r\n}\r\n\r\n.ag-page-help strong{\r\n    display:block;\r\n    margin-bottom:6px;\r\n    color:#262637;\r\n    font-size:16px;\r\n}\r\n\r\n.ag-page-help p{\r\n    margin:0 0 12px;\r\n    color:#60606b;\r\n    font-size:14px;\r\n    line-height:1.5;\r\n}\r\n\r\n.ag-page-help a{\r\n    display:inline-flex;\r\n    align-items:center;\r\n    justify-content:center;\r\n    min-height:44px;\r\n    padding:0 22px;\r\n    background:#009b16;\r\n    border-radius:6px;\r\n    color:#fff!important;\r\n    font-size:14px;\r\n    font-weight:600;\r\n    text-decoration:none!important;\r\n}\r\n\r\n.ag-page-main #agualonga-booking{\r\n    max-width:370px;\r\n    margin:0 auto;\r\n}\r\n\r\n@media(max-width:600px){\r\n    .ag-page-wrap{\r\n        padding:20px 12px 45px;\r\n    }\r\n\r\n    .ag-page-intro{\r\n        margin-bottom:22px;\r\n    }\r\n\r\n    .ag-page-intro h1{\r\n        font-size:26px;\r\n        line-height:1.25;\r\n    }\r\n\r\n    .ag-page-main{\r\n        padding:18px 10px;\r\n        border-radius:9px;\r\n        box-shadow:0 6px 22px rgba(0,0,0,.06);\r\n    }\r\n\r\n    .ag-page-benefits{\r\n        margin-top:20px;\r\n        padding:0 10px;\r\n        flex-direction:column;\r\n        align-items:flex-start;\r\n        gap:10px;\r\n    }\r\n\r\n    .ag-page-help{\r\n        margin-top:28px;\r\n        padding:22px 18px;\r\n    }\r\n\r\n    .ag-page-help a{\r\n        width:100%;\r\n        box-sizing:border-box;\r\n    }\r\n}\r\n\r\n@media(max-width:380px){\r\n    .ag-page-wrap{\r\n        padding-left:8px;\r\n        padding-right:8px;\r\n    }\r\n\r\n    .ag-page-intro h1{\r\n        font-size:23px;\r\n    }\r\n}\r\n<\/style>\r\n\r\n<!--\r\nAgualonga Villas - Booking Widget\r\nBeds24 custom booking flow\r\nTarget: WPRentals property sidebar\r\n-->\r\n<style>\r\n\/* =========================================================\r\n   AGUALONGA VILLAS - BOOKING FORM\r\n   ========================================================= *\/\r\n\r\n#agualonga-booking {\r\n    width: 100%;\r\n    max-width: 370px;\r\n    margin: 0 auto;\r\n    font-family: Arial, Helvetica, sans-serif;\r\n    box-sizing: border-box;\r\n}\r\n\r\n#agualonga-booking *,\r\n#agualonga-booking *::before,\r\n#agualonga-booking *::after {\r\n    box-sizing: border-box;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   PRE\u00c7O\r\n   ========================================================= *\/\r\n\r\n.ag-price-box {\r\n    width: 100%;\r\n    min-height: 64px;\r\n\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n\r\n    background: #00930b;\r\n    color: #ffffff;\r\n\r\n    border-radius: 3px;\r\n\r\n    margin-bottom: 16px;\r\n    padding: 12px 15px;\r\n\r\n    text-align: center;\r\n}\r\n\r\n.ag-price-main {\r\n    font-size: 18px;\r\n    font-weight: 700;\r\n    line-height: 1;\r\n}\r\n\r\n.ag-price-small {\r\n    font-size: 13px;\r\n    font-weight: 400;\r\n    margin-left: 5px;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   CARD\r\n   ========================================================= *\/\r\n\r\n.ag-booking-card {\r\n    background: #ffffff;\r\n    padding: 28px 29px 30px;\r\n    border-radius: 4px;\r\n}\r\n\r\n.ag-booking-title {\r\n    color: #303044;\r\n    font-size: 16px;\r\n    font-weight: 400;\r\n    margin: 0 0 24px;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   CAMPOS PESQUISA\r\n   ========================================================= *\/\r\n\r\n.ag-field {\r\n    position: relative;\r\n\r\n    display: flex;\r\n\r\n    width: 100%;\r\n    height: 58px;\r\n\r\n    margin-bottom: 11px;\r\n\r\n    border: 1px solid #dce0e6;\r\n    border-radius: 3px;\r\n\r\n    background: #ffffff;\r\n\r\n    transition: border-color .2s ease;\r\n}\r\n\r\n.ag-field:focus-within {\r\n    border-color: #00930b;\r\n}\r\n\r\n.ag-icon {\r\n    width: 46px;\r\n    flex: 0 0 46px;\r\n\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n}\r\n\r\n.ag-icon svg {\r\n    width: 20px;\r\n    height: 20px;\r\n\r\n    fill: none;\r\n\r\n    stroke: #00930b;\r\n    stroke-width: 1.7;\r\n\r\n    stroke-linecap: round;\r\n    stroke-linejoin: round;\r\n}\r\n\r\n.ag-input-content {\r\n    flex: 1;\r\n    min-width: 0;\r\n\r\n    display: flex;\r\n    flex-direction: column;\r\n    justify-content: center;\r\n\r\n    padding-right: 12px;\r\n}\r\n\r\n.ag-input-content label {\r\n    display: block;\r\n\r\n    margin: 0 0 3px;\r\n\r\n    color: #9397a3;\r\n\r\n    font-size: 10px;\r\n    line-height: 1;\r\n    font-weight: 400;\r\n}\r\n\r\n.ag-input-content input,\r\n.ag-input-content select {\r\n    width: 100%;\r\n    height: 24px;\r\n\r\n    border: 0 !important;\r\n\r\n    padding: 0 !important;\r\n    margin: 0 !important;\r\n\r\n    background: transparent !important;\r\n\r\n    color: #666c78 !important;\r\n    -webkit-text-fill-color: #666c78 !important;\r\n\r\n    font-family: Arial, Helvetica, sans-serif !important;\r\n    font-size: 14px !important;\r\n    font-weight: 400 !important;\r\n\r\n    outline: none !important;\r\n    box-shadow: none !important;\r\n}\r\n\r\n.ag-input-content input[type=\"date\"] {\r\n    cursor: pointer;\r\n}\r\n\r\n.ag-input-content select {\r\n    cursor: pointer;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   BOT\u00c3O PESQUISA\r\n   ========================================================= *\/\r\n\r\n#agSearchButton {\r\n    display: block;\r\n\r\n    width: 100%;\r\n    min-height: 53px;\r\n\r\n    margin: 18px 0 0;\r\n    padding: 0 15px;\r\n\r\n    border: 0;\r\n    border-radius: 3px;\r\n\r\n    background: #00930b;\r\n\r\n    color: #ffffff !important;\r\n    -webkit-text-fill-color: #ffffff !important;\r\n\r\n    font-family: Arial, Helvetica, sans-serif;\r\n\r\n    font-size: 15px;\r\n    font-weight: 700;\r\n\r\n    text-align: center;\r\n\r\n    cursor: pointer;\r\n\r\n    box-shadow: none;\r\n\r\n    transition: background .2s ease;\r\n}\r\n\r\n#agSearchButton:hover {\r\n    background: #007f09;\r\n    color: #ffffff !important;\r\n}\r\n\r\n#agSearchButton:disabled {\r\n    opacity: .6;\r\n    cursor: wait;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   RESULTADO\r\n   ========================================================= *\/\r\n\r\n.ag-result {\r\n    display: none;\r\n\r\n    margin-top: 18px;\r\n    padding: 16px;\r\n\r\n    border: 1px solid #e1e4e8;\r\n    border-radius: 3px;\r\n\r\n    background: #ffffff;\r\n\r\n    color: #555b66;\r\n\r\n    font-size: 14px;\r\n    line-height: 1.6;\r\n}\r\n\r\n.ag-result.success {\r\n    display: block;\r\n    border-color: #00930b;\r\n}\r\n\r\n.ag-result.error {\r\n    display: block;\r\n\r\n    border-color: #b3261e;\r\n    color: #b3261e;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   SEGUNDO PASSO - DADOS H\u00d3SPEDE\r\n   ========================================================= *\/\r\n\r\n.ag-guest-title {\r\n    font-size: 18px;\r\n    font-weight: 700;\r\n\r\n    color: #303044;\r\n\r\n    margin-bottom: 5px;\r\n}\r\n\r\n.ag-booking-summary {\r\n    color: #777;\r\n\r\n    font-size: 13px;\r\n    line-height: 1.5;\r\n\r\n    margin-bottom: 19px;\r\n    padding-bottom: 15px;\r\n\r\n    border-bottom: 1px solid #eeeeee;\r\n}\r\n\r\n.ag-checkout-field {\r\n    margin-bottom: 12px;\r\n}\r\n\r\n.ag-checkout-field label {\r\n    display: block;\r\n\r\n    margin-bottom: 5px;\r\n\r\n    color: #777;\r\n\r\n    font-size: 12px;\r\n    font-weight: 400;\r\n}\r\n\r\n.ag-checkout-field input,\r\n.ag-checkout-field textarea {\r\n    display: block;\r\n\r\n    width: 100%;\r\n\r\n    border: 1px solid #dce0e6;\r\n    border-radius: 3px;\r\n\r\n    background: #ffffff;\r\n\r\n    color: #555b66 !important;\r\n    -webkit-text-fill-color: #555b66 !important;\r\n\r\n    font-family: Arial, Helvetica, sans-serif;\r\n    font-size: 14px;\r\n\r\n    padding: 11px 12px;\r\n\r\n    outline: none;\r\n\r\n    box-shadow: none;\r\n\r\n    transition: border-color .2s ease;\r\n}\r\n\r\n.ag-checkout-field input {\r\n    height: 46px;\r\n}\r\n\r\n.ag-checkout-field textarea {\r\n    min-height: 82px;\r\n    resize: vertical;\r\n}\r\n\r\n.ag-checkout-field input:focus,\r\n.ag-checkout-field textarea:focus {\r\n    border-color: #00930b;\r\n}\r\n\r\n.ag-terms {\r\n    display: flex;\r\n    align-items: flex-start;\r\n\r\n    gap: 8px;\r\n\r\n    margin: 16px 0;\r\n\r\n    color: #666;\r\n\r\n    font-size: 12px;\r\n    line-height: 1.4;\r\n\r\n    cursor: pointer;\r\n}\r\n\r\n.ag-terms input {\r\n    width: auto !important;\r\n\r\n    margin: 2px 0 0;\r\n\r\n    flex: 0 0 auto;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   BOT\u00c3O CONFIRMAR\r\n   ========================================================= *\/\r\n\r\n.ag-confirm-button {\r\n    display: block;\r\n\r\n    width: 100%;\r\n    min-height: 52px;\r\n\r\n    margin: 0;\r\n\r\n    padding: 0 15px;\r\n\r\n    border: 0;\r\n    border-radius: 3px;\r\n\r\n    background: #00930b;\r\n\r\n    color: #ffffff !important;\r\n    -webkit-text-fill-color: #ffffff !important;\r\n\r\n    font-family: Arial, Helvetica, sans-serif;\r\n\r\n    font-size: 14px;\r\n    font-weight: 700;\r\n\r\n    cursor: pointer;\r\n}\r\n\r\n.ag-confirm-button:hover {\r\n    background: #007f09;\r\n}\r\n\r\n.ag-confirm-button:disabled {\r\n    opacity: .6;\r\n    cursor: wait;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   BOT\u00c3O VOLTAR\r\n   ========================================================= *\/\r\n\r\n.ag-back-button {\r\n    width: 100%;\r\n\r\n    margin-top: 9px;\r\n    padding: 9px;\r\n\r\n    border: 0;\r\n\r\n    background: transparent;\r\n\r\n    color: #777 !important;\r\n\r\n    font-size: 13px;\r\n\r\n    cursor: pointer;\r\n}\r\n\r\n.ag-back-button:hover {\r\n    color: #00930b !important;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   MENSAGENS DO CHECKOUT\r\n   ========================================================= *\/\r\n\r\n.ag-booking-message {\r\n    display: none;\r\n\r\n    margin-top: 15px;\r\n\r\n    padding: 10px 12px;\r\n\r\n    border-radius: 3px;\r\n\r\n    font-size: 13px;\r\n    line-height: 1.5;\r\n}\r\n\r\n.ag-booking-message.error {\r\n    display: block;\r\n\r\n    border: 1px solid #b3261e;\r\n\r\n    color: #b3261e;\r\n\r\n    background: #fff;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   MOBILE\r\n   ========================================================= *\/\r\n\r\n@media (max-width: 480px) {\r\n\r\n    #agualonga-booking {\r\n        max-width: 100%;\r\n    }\r\n\r\n    .ag-booking-card {\r\n        padding: 22px 18px 25px;\r\n    }\r\n\r\n    .ag-price-box {\r\n        min-height: 60px;\r\n    }\r\n\r\n}\r\n<\/style>\r\n\r\n\r\n<div class=\"ag-page-wrap\">\r\n\r\n  <section class=\"ag-page-intro\">\r\n    <h1>Reserve a sua estadia em AgualongaVillas<\/h1>\r\n  <\/section>\r\n\r\n  <section class=\"ag-page-main\">\r\n\r\n<div id=\"agualonga-booking\">\r\n\r\n    <div class=\"ag-price-box\">\r\n\r\n        <span class=\"ag-price-main\">\r\n            desde 280 \u20ac\r\n        <\/span>\r\n\r\n        <span class=\"ag-price-small\">\r\n            por noite\r\n        <\/span>\r\n\r\n    <\/div>\r\n\r\n\r\n    <div class=\"ag-booking-card\">\r\n\r\n        <div class=\"ag-booking-title\">\r\n            Ver disponibilidade\r\n        <\/div>\r\n\r\n\r\n        <!-- =================================================\r\n             CHECK-IN\r\n             ================================================= -->\r\n\r\n        <div class=\"ag-field\">\r\n\r\n            <div class=\"ag-icon\">\r\n\r\n                <svg viewBox=\"0 0 24 24\">\r\n\r\n                    <rect\r\n                        x=\"3\"\r\n                        y=\"5\"\r\n                        width=\"18\"\r\n                        height=\"16\"\r\n                        rx=\"1\">\r\n                    <\/rect>\r\n\r\n                    <line\r\n                        x1=\"7\"\r\n                        y1=\"3\"\r\n                        x2=\"7\"\r\n                        y2=\"7\">\r\n                    <\/line>\r\n\r\n                    <line\r\n                        x1=\"17\"\r\n                        y1=\"3\"\r\n                        x2=\"17\"\r\n                        y2=\"7\">\r\n                    <\/line>\r\n\r\n                    <line\r\n                        x1=\"3\"\r\n                        y1=\"10\"\r\n                        x2=\"21\"\r\n                        y2=\"10\">\r\n                    <\/line>\r\n\r\n                <\/svg>\r\n\r\n            <\/div>\r\n\r\n\r\n            <div class=\"ag-input-content\">\r\n\r\n                <label for=\"agCheckin\">\r\n                    Check-in\r\n                <\/label>\r\n\r\n                <input\r\n                    type=\"date\"\r\n                    id=\"agCheckin\"\r\n                >\r\n\r\n            <\/div>\r\n\r\n        <\/div>\r\n\r\n\r\n        <!-- =================================================\r\n             CHECK-OUT\r\n             ================================================= -->\r\n\r\n        <div class=\"ag-field\">\r\n\r\n            <div class=\"ag-icon\">\r\n\r\n                <svg viewBox=\"0 0 24 24\">\r\n\r\n                    <rect\r\n                        x=\"3\"\r\n                        y=\"5\"\r\n                        width=\"18\"\r\n                        height=\"16\"\r\n                        rx=\"1\">\r\n                    <\/rect>\r\n\r\n                    <line\r\n                        x1=\"7\"\r\n                        y1=\"3\"\r\n                        x2=\"7\"\r\n                        y2=\"7\">\r\n                    <\/line>\r\n\r\n                    <line\r\n                        x1=\"17\"\r\n                        y1=\"3\"\r\n                        x2=\"17\"\r\n                        y2=\"7\">\r\n                    <\/line>\r\n\r\n                    <line\r\n                        x1=\"3\"\r\n                        y1=\"10\"\r\n                        x2=\"21\"\r\n                        y2=\"10\">\r\n                    <\/line>\r\n\r\n                <\/svg>\r\n\r\n            <\/div>\r\n\r\n\r\n            <div class=\"ag-input-content\">\r\n\r\n                <label for=\"agCheckout\">\r\n                    Check-out\r\n                <\/label>\r\n\r\n                <input\r\n                    type=\"date\"\r\n                    id=\"agCheckout\"\r\n                >\r\n\r\n            <\/div>\r\n\r\n        <\/div>\r\n\r\n\r\n        <!-- =================================================\r\n             ADULTOS\r\n             ================================================= -->\r\n\r\n        <div class=\"ag-field\">\r\n\r\n            <div class=\"ag-icon\">\r\n\r\n                <svg viewBox=\"0 0 24 24\">\r\n\r\n                    <circle\r\n                        cx=\"12\"\r\n                        cy=\"7\"\r\n                        r=\"4\">\r\n                    <\/circle>\r\n\r\n                    <path\r\n                        d=\"M5 21c0-4 3.1-7 7-7s7 3 7 7\">\r\n                    <\/path>\r\n\r\n                <\/svg>\r\n\r\n            <\/div>\r\n\r\n\r\n            <div class=\"ag-input-content\">\r\n\r\n                <label for=\"agAdults\">\r\n                    Adultos\r\n                <\/label>\r\n\r\n                <select id=\"agAdults\">\r\n\r\n                    <option value=\"1\">\r\n                        1 Adulto\r\n                    <\/option>\r\n\r\n                    <option value=\"2\" selected>\r\n                        2 Adultos\r\n                    <\/option>\r\n\r\n                    <option value=\"3\">\r\n                        3 Adultos\r\n                    <\/option>\r\n\r\n                    <option value=\"4\">\r\n                        4 Adultos\r\n                    <\/option>\r\n\r\n                    <option value=\"5\">\r\n                        5 Adultos\r\n                    <\/option>\r\n\r\n                    <option value=\"6\">\r\n                        6 Adultos\r\n                    <\/option>\r\n\r\n                    <option value=\"7\">\r\n                        7 Adultos\r\n                    <\/option>\r\n\r\n                    <option value=\"8\">\r\n                        8 Adultos\r\n                    <\/option>\r\n\r\n                    <option value=\"9\">\r\n                        9 Adultos\r\n                    <\/option>\r\n\r\n                    <option value=\"10\">\r\n                        10 Adultos\r\n                    <\/option>\r\n\r\n                    <option value=\"11\">\r\n                        11 Adultos\r\n                    <\/option>\r\n\r\n                    <option value=\"12\">\r\n                        12 Adultos\r\n                    <\/option>\r\n\r\n                    <option value=\"13\">\r\n                        13 Adultos\r\n                    <\/option>\r\n\r\n                    <option value=\"14\">\r\n                        14 Adultos\r\n                    <\/option>\r\n\r\n                <\/select>\r\n\r\n            <\/div>\r\n\r\n        <\/div>\r\n\r\n\r\n        <!-- =================================================\r\n             CRIAN\u00c7AS\r\n             ================================================= -->\r\n\r\n        <div class=\"ag-field\">\r\n\r\n            <div class=\"ag-icon\">\r\n\r\n                <svg viewBox=\"0 0 24 24\">\r\n\r\n                    <circle\r\n                        cx=\"12\"\r\n                        cy=\"8\"\r\n                        r=\"3\">\r\n                    <\/circle>\r\n\r\n                    <path\r\n                        d=\"M7 21c0-3 2.2-6 5-6s5 3 5 6\">\r\n                    <\/path>\r\n\r\n                <\/svg>\r\n\r\n            <\/div>\r\n\r\n\r\n            <div class=\"ag-input-content\">\r\n\r\n                <label for=\"agChildren\">\r\n                    Crian\u00e7as\r\n                <\/label>\r\n\r\n                <select id=\"agChildren\">\r\n\r\n                    <option value=\"0\" selected>\r\n                        0 Crian\u00e7as\r\n                    <\/option>\r\n\r\n                    <option value=\"1\">\r\n                        1 Crian\u00e7a\r\n                    <\/option>\r\n\r\n                    <option value=\"2\">\r\n                        2 Crian\u00e7as\r\n                    <\/option>\r\n\r\n                    <option value=\"3\">\r\n                        3 Crian\u00e7as\r\n                    <\/option>\r\n\r\n                    <option value=\"4\">\r\n                        4 Crian\u00e7as\r\n                    <\/option>\r\n\r\n                    <option value=\"5\">\r\n                        5 Crian\u00e7as\r\n                    <\/option>\r\n\r\n                    <option value=\"6\">\r\n                        6 Crian\u00e7as\r\n                    <\/option>\r\n\r\n                    <option value=\"7\">\r\n                        7 Crian\u00e7as\r\n                    <\/option>\r\n\r\n                    <option value=\"8\">\r\n                        8 Crian\u00e7as\r\n                    <\/option>\r\n\r\n                <\/select>\r\n\r\n            <\/div>\r\n\r\n        <\/div>\r\n\r\n\r\n        <!-- =================================================\r\n             PESQUISAR\r\n             ================================================= -->\r\n\r\n        <button\r\n            type=\"button\"\r\n            id=\"agSearchButton\"\r\n        >\r\n            Ver disponibilidade\r\n        <\/button>\r\n\r\n\r\n        <div\r\n            id=\"agResult\"\r\n            class=\"ag-result\">\r\n        <\/div>\r\n\r\n    <\/div>\r\n\r\n<\/div>\r\n\r\n  <\/section>\r\n\r\n  <section class=\"ag-page-benefits\">\r\n    <div class=\"ag-page-benefit\">\r\n      <span class=\"ag-page-check\">\u2713<\/span>\r\n      <span>Reserva direta<\/span>\r\n    <\/div>\r\n\r\n    <div class=\"ag-page-benefit\">\r\n      <span class=\"ag-page-check\">\u2713<\/span>\r\n      <span>Pagamento seguro<\/span>\r\n    <\/div>\r\n\r\n    <div class=\"ag-page-benefit\">\r\n      <span class=\"ag-page-check\">\u2713<\/span>\r\n      <span>Confirma\u00e7\u00e3o imediata<\/span>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <section class=\"ag-page-help\">\r\n    <strong>Precisa de ajuda com a reserva?<\/strong>\r\n    <p>Estamos dispon\u00edveis para esclarecer qualquer d\u00favida.<\/p>\r\n    <a href=\"tel:+351966461177\">\u260e &nbsp; +351 966 461 177<\/a>\r\n  <\/section>\r\n\r\n<\/div>\r\n\r\n<script>\r\ndocument.addEventListener(\r\n    'DOMContentLoaded',\r\n    function () {\r\n\r\n        \/* =====================================================\r\n           ELEMENTOS\r\n           ===================================================== *\/\r\n\r\n        const checkin =\r\n            document.getElementById('agCheckin');\r\n\r\n        const checkout =\r\n            document.getElementById('agCheckout');\r\n\r\n        const adults =\r\n            document.getElementById('agAdults');\r\n\r\n        const children =\r\n            document.getElementById('agChildren');\r\n\r\n        const button =\r\n            document.getElementById('agSearchButton');\r\n\r\n        const result =\r\n            document.getElementById('agResult');\r\n\r\n\r\n        \/* =====================================================\r\n           CONFIGURA\u00c7\u00c3O\r\n           ===================================================== *\/\r\n\r\n        const ROOM_ID = '719541';\r\n\r\n        const MAX_GUESTS = 14;\r\n\r\n        let currentMinNights = null;\r\n\r\n\r\n        \/* =====================================================\r\n           DATA DE HOJE\r\n           ===================================================== *\/\r\n\r\n        const now = new Date();\r\n\r\n        const today =\r\n            now.getFullYear() + '-' +\r\n            String(\r\n                now.getMonth() + 1\r\n            ).padStart(2, '0') + '-' +\r\n            String(\r\n                now.getDate()\r\n            ).padStart(2, '0');\r\n\r\n\r\n        checkin.min = today;\r\n        checkout.min = today;\r\n\r\n\r\n        \/* =====================================================\r\n           CHECK-IN -> LER ESTADIA M\u00cdNIMA DO BEDS24\r\n           ===================================================== *\/\r\n\r\n        checkin.addEventListener(\r\n            'change',\r\n            async function () {\r\n\r\n                currentMinNights = null;\r\n\r\n                if (!checkin.value) {\r\n                    checkout.min = today;\r\n                    return;\r\n                }\r\n\r\n                checkout.disabled = true;\r\n\r\n                try {\r\n\r\n                    const minNights =\r\n                        await getMinStay(\r\n                            checkin.value\r\n                        );\r\n\r\n                    currentMinNights =\r\n                        minNights;\r\n\r\n                    const minimumCheckout =\r\n                        addDays(\r\n                            checkin.value,\r\n                            minNights\r\n                        );\r\n\r\n                    checkout.min =\r\n                        minimumCheckout;\r\n\r\n                    if (\r\n                        !checkout.value ||\r\n                        checkout.value <\r\n                        minimumCheckout\r\n                    ) {\r\n\r\n                        checkout.value =\r\n                            minimumCheckout;\r\n\r\n                    }\r\n\r\n                }\r\n                catch (error) {\r\n\r\n                    showError(\r\n                        error.message ||\r\n                        'N\u00e3o foi poss\u00edvel obter a estadia m\u00ednima para esta data.'\r\n                    );\r\n\r\n                }\r\n                finally {\r\n\r\n                    checkout.disabled =\r\n                        false;\r\n\r\n                }\r\n\r\n            }\r\n        );\r\n\r\n\r\n        \/* =====================================================\r\n           PESQUISAR DISPONIBILIDADE\r\n           ===================================================== *\/\r\n\r\n        button.addEventListener(\r\n            'click',\r\n            async function () {\r\n\r\n                hideResult();\r\n\r\n\r\n                if (\r\n                    !checkin.value ||\r\n                    !checkout.value\r\n                ) {\r\n\r\n                    showError(\r\n                        'Escolha as datas de entrada e sa\u00edda.'\r\n                    );\r\n\r\n                    return;\r\n\r\n                }\r\n\r\n\r\n                const totalGuests =\r\n                    Number(adults.value) +\r\n                    Number(children.value);\r\n\r\n\r\n                if (\r\n                    totalGuests >\r\n                    MAX_GUESTS\r\n                ) {\r\n\r\n                    showError(\r\n                        'A capacidade m\u00e1xima da propriedade \u00e9 de 14 h\u00f3spedes.'\r\n                    );\r\n\r\n                    return;\r\n\r\n                }\r\n\r\n\r\n                const nights =\r\n                    calculateNights(\r\n                        checkin.value,\r\n                        checkout.value\r\n                    );\r\n\r\n\r\n                if (nights <= 0) {\r\n\r\n                    showError(\r\n                        'A data de sa\u00edda deve ser posterior \u00e0 data de entrada.'\r\n                    );\r\n\r\n                    return;\r\n\r\n                }\r\n\r\n\r\n                try {\r\n\r\n                    currentMinNights =\r\n                        await getMinStay(\r\n                            checkin.value\r\n                        );\r\n\r\n                }\r\n                catch (error) {\r\n\r\n                    showError(\r\n                        error.message ||\r\n                        'N\u00e3o foi poss\u00edvel confirmar a estadia m\u00ednima.'\r\n                    );\r\n\r\n                    return;\r\n\r\n                }\r\n\r\n\r\n                if (\r\n                    nights <\r\n                    currentMinNights\r\n                ) {\r\n\r\n                    showError(\r\n                        'A estadia m\u00ednima para esta data \u00e9 de ' +\r\n                        currentMinNights +\r\n                        ' ' +\r\n                        (\r\n                            currentMinNights === 1\r\n                                ? 'noite.'\r\n                                : 'noites.'\r\n                        )\r\n                    );\r\n\r\n                    return;\r\n\r\n                }\r\n\r\n\r\n                button.disabled = true;\r\n\r\n                button.textContent =\r\n                    'A verificar...';\r\n\r\n\r\n                try {\r\n\r\n                    const room =\r\n                        await getAvailability();\r\n\r\n\r\n                    if (\r\n                        !room ||\r\n                        Number(\r\n                            room.roomsavail || 0\r\n                        ) < 1\r\n                    ) {\r\n\r\n                        showUnavailable();\r\n\r\n                        return;\r\n\r\n                    }\r\n\r\n\r\n                    const totalPrice =\r\n                        Number(\r\n                            room.price\r\n                        );\r\n\r\n\r\n                    if (\r\n                        !Number.isFinite(\r\n                            totalPrice\r\n                        ) ||\r\n                        totalPrice <= 0\r\n                    ) {\r\n\r\n                        throw new Error(\r\n                            'N\u00e3o foi poss\u00edvel obter o pre\u00e7o para estas datas.'\r\n                        );\r\n\r\n                    }\r\n\r\n\r\n                    const pricePerNight =\r\n                        totalPrice \/\r\n                        nights;\r\n\r\n\r\n                    showAvailable(\r\n                        nights,\r\n                        totalPrice,\r\n                        pricePerNight\r\n                    );\r\n\r\n                }\r\n                catch (error) {\r\nshowError(\r\n                        error.message ||\r\n                        'Ocorreu um erro ao consultar a disponibilidade.'\r\n                    );\r\n\r\n                }\r\n                finally {\r\n\r\n                    button.disabled =\r\n                        false;\r\n\r\n\r\n                    button.textContent =\r\n                        'Ver disponibilidade';\r\n\r\n                }\r\n\r\n            }\r\n        );\r\n\r\n\r\n        \/* =====================================================\r\n           CONSULTAR ESTADIA M\u00cdNIMA NO BEDS24\r\n           ===================================================== *\/\r\n\r\n        async function getMinStay(\r\n            date\r\n        ) {\r\n\r\n            const response =\r\n                await fetch(\r\n                    '\/beds24\/min-stay.php?date=' +\r\n                    encodeURIComponent(date),\r\n                    {\r\n                        method: 'GET',\r\n                        cache: 'no-store'\r\n                    }\r\n                );\r\n\r\n\r\n            let data;\r\n\r\n\r\n            try {\r\n\r\n                data =\r\n                    await response.json();\r\n\r\n            }\r\n            catch (error) {\r\n\r\n                throw new Error(\r\n                    'O servidor devolveu uma resposta inv\u00e1lida ao consultar a estadia m\u00ednima.'\r\n                );\r\n\r\n            }\r\n\r\n\r\n            if (\r\n                !response.ok ||\r\n                !data.success\r\n            ) {\r\n\r\n                throw new Error(\r\n                    data.message ||\r\n                    'N\u00e3o foi poss\u00edvel consultar a estadia m\u00ednima.'\r\n                );\r\n\r\n            }\r\n\r\n\r\n            const minStay =\r\n                Number(\r\n                    data.minStay\r\n                );\r\n\r\n\r\n            if (\r\n                !Number.isInteger(minStay) ||\r\n                minStay < 1\r\n            ) {\r\n\r\n                throw new Error(\r\n                    'O Beds24 devolveu uma estadia m\u00ednima inv\u00e1lida.'\r\n                );\r\n\r\n            }\r\n\r\n\r\n            return minStay;\r\n\r\n        }\r\n\r\n\r\n        \/* =====================================================\r\n           ADICIONAR DIAS A UMA DATA\r\n           ===================================================== *\/\r\n\r\n        function addDays(\r\n            value,\r\n            days\r\n        ) {\r\n\r\n            const date =\r\n                new Date(\r\n                    value +\r\n                    'T12:00:00'\r\n                );\r\n\r\n\r\n            date.setDate(\r\n                date.getDate() +\r\n                days\r\n            );\r\n\r\n\r\n            return (\r\n                date.getFullYear() +\r\n                '-' +\r\n                String(\r\n                    date.getMonth() + 1\r\n                ).padStart(2, '0') +\r\n                '-' +\r\n                String(\r\n                    date.getDate()\r\n                ).padStart(2, '0')\r\n            );\r\n\r\n        }\r\n\r\n\r\n        \/* =====================================================\r\n           CONSULTAR BEDS24\r\n           ===================================================== *\/\r\n\r\n        async function getAvailability() {\r\n\r\n            const response =\r\n                await fetch(\r\n                    '\/beds24\/availability.php',\r\n                    {\r\n\r\n                        method: 'POST',\r\n\r\n                        headers: {\r\n                            'Content-Type':\r\n                                'application\/json'\r\n                        },\r\n\r\n                        body:\r\n                            JSON.stringify({\r\n\r\n                                checkin:\r\n                                    checkin.value,\r\n\r\n                                checkout:\r\n                                    checkout.value,\r\n\r\n                                adults:\r\n                                    Number(\r\n                                        adults.value\r\n                                    ),\r\n\r\n                                children:\r\n                                    Number(\r\n                                        children.value\r\n                                    )\r\n\r\n                            })\r\n\r\n                    }\r\n                );\r\n\r\n\r\n            let data;\r\n\r\n\r\n            try {\r\n\r\n                data =\r\n                    await response.json();\r\n\r\n            }\r\n            catch (error) {\r\n\r\n                throw new Error(\r\n                    'O servidor devolveu uma resposta inv\u00e1lida.'\r\n                );\r\n\r\n            }\r\n\r\n\r\n            if (\r\n                !response.ok ||\r\n                !data.success\r\n            ) {\r\n\r\n                throw new Error(\r\n                    data.message ||\r\n                    'N\u00e3o foi poss\u00edvel verificar a disponibilidade.'\r\n                );\r\n\r\n            }\r\n\r\n\r\n            return (\r\n                data.beds24 &&\r\n                data.beds24[ROOM_ID]\r\n            )\r\n                ? data.beds24[ROOM_ID]\r\n                : null;\r\n\r\n        }\r\n\r\n\r\n        \/* =====================================================\r\n           MOSTRAR DISPON\u00cdVEL\r\n           ===================================================== *\/\r\n\r\n        function showAvailable(\r\n            nights,\r\n            totalPrice,\r\n            pricePerNight\r\n        ) {\r\n\r\n            const checkinFormatted =\r\n                formatDate(\r\n                    checkin.value\r\n                );\r\n\r\n\r\n            const checkoutFormatted =\r\n                formatDate(\r\n                    checkout.value\r\n                );\r\n\r\n\r\n            result.className =\r\n                'ag-result success';\r\n\r\n\r\n            result.style.display =\r\n                'block';\r\n\r\n\r\n            result.innerHTML = `\r\n\r\n                <div style=\"\r\n                    text-align:center;\r\n                \">\r\n\r\n                    <div style=\"\r\n                        color:#00930b;\r\n                        font-size:18px;\r\n                        font-weight:700;\r\n                        margin-bottom:8px;\r\n                    \">\r\n                        \u2713 Dispon\u00edvel\r\n                    <\/div>\r\n\r\n\r\n                    <div style=\"\r\n                        color:#777;\r\n                        margin-bottom:14px;\r\n                    \">\r\n\r\n                        ${checkinFormatted}\r\n\r\n                        &nbsp;\u2192&nbsp;\r\n\r\n                        ${checkoutFormatted}\r\n\r\n                    <\/div>\r\n\r\n\r\n                    <div style=\"\r\n                        border-top:1px solid #eeeeee;\r\n                        padding-top:13px;\r\n                        margin-top:5px;\r\n                    \">\r\n\r\n                        <strong>\r\n                            ${nights}\r\n                            ${\r\n                                nights === 1\r\n                                    ? 'noite'\r\n                                    : 'noites'\r\n                            }\r\n                        <\/strong>\r\n\r\n                    <\/div>\r\n\r\n\r\n                    <div style=\"\r\n                        margin-top:5px;\r\n                        color:#777;\r\n                    \">\r\n\r\n                        ${formatPrice(\r\n                            pricePerNight\r\n                        )}\r\n                        \/ noite\r\n\r\n                    <\/div>\r\n\r\n\r\n                    <div style=\"\r\n                        margin-top:12px;\r\n                        font-size:13px;\r\n                        color:#777;\r\n                    \">\r\n\r\n                        Total da estadia\r\n\r\n                    <\/div>\r\n\r\n\r\n                    <div style=\"\r\n                        color:#303044;\r\n                        font-size:25px;\r\n                        font-weight:700;\r\n                        margin-top:2px;\r\n                    \">\r\n\r\n                        ${formatPrice(\r\n                            totalPrice\r\n                        )}\r\n\r\n                    <\/div>\r\n\r\n\r\n                    <button\r\n                        type=\"button\"\r\n                        id=\"agContinueBooking\"\r\n                        class=\"ag-confirm-button\"\r\n                        style=\"\r\n                            margin-top:17px;\r\n                        \"\r\n                    >\r\n\r\n                        Continuar reserva\r\n\r\n                    <\/button>\r\n\r\n                <\/div>\r\n\r\n            `;\r\n\r\n\r\n            document\r\n                .getElementById(\r\n                    'agContinueBooking'\r\n                )\r\n                .addEventListener(\r\n                    'click',\r\n                    function () {\r\n\r\n                        showGuestForm(\r\n                            nights,\r\n                            totalPrice\r\n                        );\r\n\r\n                    }\r\n                );\r\n\r\n        }\r\n\r\n\r\n        \/* =====================================================\r\n           FORMUL\u00c1RIO H\u00d3SPEDE\r\n           ===================================================== *\/\r\n\r\n        function showGuestForm(\r\n            nights,\r\n            totalPrice\r\n        ) {\r\n\r\n            result.className =\r\n                'ag-result success';\r\n\r\n\r\n            result.style.display =\r\n                'block';\r\n\r\n\r\n            result.innerHTML = `\r\n\r\n                <div class=\"ag-guest-form\">\r\n\r\n                    <div class=\"ag-guest-title\">\r\n                        Dados da reserva\r\n                    <\/div>\r\n\r\n\r\n                    <div class=\"ag-booking-summary\">\r\n\r\n                        ${formatDate(\r\n                            checkin.value\r\n                        )}\r\n\r\n                        \u2192\r\n\r\n                        ${formatDate(\r\n                            checkout.value\r\n                        )}\r\n\r\n                        <br>\r\n\r\n                        ${nights} noites\r\n\r\n                        \u00b7\r\n\r\n                        ${formatPrice(\r\n                            totalPrice\r\n                        )}\r\n\r\n                    <\/div>\r\n\r\n\r\n                    <div class=\"ag-checkout-field\">\r\n\r\n                        <label for=\"agFirstName\">\r\n                            Nome *\r\n                        <\/label>\r\n\r\n                        <input\r\n                            type=\"text\"\r\n                            id=\"agFirstName\"\r\n                            autocomplete=\"given-name\"\r\n                        >\r\n\r\n                    <\/div>\r\n\r\n\r\n                    <div class=\"ag-checkout-field\">\r\n\r\n                        <label for=\"agLastName\">\r\n                            Apelido *\r\n                        <\/label>\r\n\r\n                        <input\r\n                            type=\"text\"\r\n                            id=\"agLastName\"\r\n                            autocomplete=\"family-name\"\r\n                        >\r\n\r\n                    <\/div>\r\n\r\n\r\n                    <div class=\"ag-checkout-field\">\r\n\r\n                        <label for=\"agEmail\">\r\n                            Email *\r\n                        <\/label>\r\n\r\n                        <input\r\n                            type=\"email\"\r\n                            id=\"agEmail\"\r\n                            autocomplete=\"email\"\r\n                        >\r\n\r\n                    <\/div>\r\n\r\n\r\n                    <div class=\"ag-checkout-field\">\r\n\r\n                        <label for=\"agPhone\">\r\n                            Telefone\r\n                        <\/label>\r\n\r\n                        <input\r\n                            type=\"tel\"\r\n                            id=\"agPhone\"\r\n                            autocomplete=\"tel\"\r\n                        >\r\n\r\n                    <\/div>\r\n\r\n\r\n                    <div class=\"ag-checkout-field\">\r\n\r\n                        <label for=\"agCountry\">\r\n                            Pa\u00eds\r\n                        <\/label>\r\n\r\n                        <input\r\n                            type=\"text\"\r\n                            id=\"agCountry\"\r\n                            value=\"Portugal\"\r\n                            autocomplete=\"country-name\"\r\n                        >\r\n\r\n                    <\/div>\r\n\r\n\r\n                    <div class=\"ag-checkout-field\">\r\n\r\n                        <label for=\"agComments\">\r\n                            Observa\u00e7\u00f5es\r\n                        <\/label>\r\n\r\n                        <textarea\r\n                            id=\"agComments\"\r\n                            rows=\"3\"\r\n                        ><\/textarea>\r\n\r\n                    <\/div>\r\n\r\n\r\n                    <label class=\"ag-terms\">\r\n\r\n                        <input\r\n                            type=\"checkbox\"\r\n                            id=\"agTerms\"\r\n                        >\r\n\r\n                        <span>\r\n                            Li e aceito os termos\r\n                            e condi\u00e7\u00f5es.\r\n                        <\/span>\r\n\r\n                    <\/label>\r\n\r\n\r\n                    <button\r\n                        type=\"button\"\r\n                        id=\"agConfirmBooking\"\r\n                        class=\"ag-confirm-button\"\r\n                    >\r\n\r\n                        Continuar para pagamento\r\n\r\n                    <\/button>\r\n\r\n\r\n                    <button\r\n                        type=\"button\"\r\n                        id=\"agBackBooking\"\r\n                        class=\"ag-back-button\"\r\n                    >\r\n\r\n                        \u2190 Voltar\r\n\r\n                    <\/button>\r\n\r\n\r\n                    <div\r\n                        id=\"agBookingMessage\"\r\n                        class=\"ag-booking-message\"\r\n                    ><\/div>\r\n\r\n                <\/div>\r\n\r\n            `;\r\n\r\n\r\n            document\r\n                .getElementById(\r\n                    'agBackBooking'\r\n                )\r\n                .addEventListener(\r\n                    'click',\r\n                    function () {\r\n\r\n                        showAvailable(\r\n                            nights,\r\n                            totalPrice,\r\n                            totalPrice \/\r\n                            nights\r\n                        );\r\n\r\n                    }\r\n                );\r\n\r\n\r\n            document\r\n                .getElementById(\r\n                    'agConfirmBooking'\r\n                )\r\n                .addEventListener(\r\n                    'click',\r\n                    function () {\r\n\r\n                        createBooking(\r\n                            nights\r\n                        );\r\n\r\n                    }\r\n                );\r\n\r\n        }\r\n\r\n\r\n        \/* =====================================================\r\n           CRIAR RESERVA\r\n           ===================================================== *\/\r\n\r\n        async function createBooking(\r\n            nights\r\n        ) {\r\n\r\n            const firstName =\r\n                document\r\n                    .getElementById(\r\n                        'agFirstName'\r\n                    )\r\n                    .value\r\n                    .trim();\r\n\r\n\r\n            const lastName =\r\n                document\r\n                    .getElementById(\r\n                        'agLastName'\r\n                    )\r\n                    .value\r\n                    .trim();\r\n\r\n\r\n            const email =\r\n                document\r\n                    .getElementById(\r\n                        'agEmail'\r\n                    )\r\n                    .value\r\n                    .trim();\r\n\r\n\r\n            const phone =\r\n                document\r\n                    .getElementById(\r\n                        'agPhone'\r\n                    )\r\n                    .value\r\n                    .trim();\r\n\r\n\r\n            const country =\r\n                document\r\n                    .getElementById(\r\n                        'agCountry'\r\n                    )\r\n                    .value\r\n                    .trim();\r\n\r\n\r\n            const comments =\r\n                document\r\n                    .getElementById(\r\n                        'agComments'\r\n                    )\r\n                    .value\r\n                    .trim();\r\n\r\n\r\n            const terms =\r\n                document\r\n                    .getElementById(\r\n                        'agTerms'\r\n                    )\r\n                    .checked;\r\n\r\n\r\n            const confirmButton =\r\n                document\r\n                    .getElementById(\r\n                        'agConfirmBooking'\r\n                    );\r\n\r\n\r\n            const message =\r\n                document\r\n                    .getElementById(\r\n                        'agBookingMessage'\r\n                    );\r\n\r\n\r\n            hideBookingMessage(\r\n                message\r\n            );\r\n\r\n\r\n            if (\r\n                !firstName ||\r\n                !lastName ||\r\n                !email\r\n            ) {\r\n\r\n                showBookingError(\r\n                    message,\r\n                    'Preencha o nome, apelido e email.'\r\n                );\r\n\r\n                return;\r\n\r\n            }\r\n\r\n\r\n            if (\r\n                !isValidEmail(\r\n                    email\r\n                )\r\n            ) {\r\n\r\n                showBookingError(\r\n                    message,\r\n                    'Introduza um endere\u00e7o de email v\u00e1lido.'\r\n                );\r\n\r\n                return;\r\n\r\n            }\r\n\r\n\r\n            if (!terms) {\r\n\r\n                showBookingError(\r\n                    message,\r\n                    'Tem de aceitar os termos e condi\u00e7\u00f5es.'\r\n                );\r\n\r\n                return;\r\n\r\n            }\r\n\r\n\r\n            confirmButton.disabled =\r\n                true;\r\n\r\n\r\n            confirmButton.textContent =\r\n                'A preparar pagamento...';\r\n\r\n\r\n            try {\r\n\r\n                \/* =============================================\r\n                   VERIFICAR NOVAMENTE DISPONIBILIDADE\r\n                   ============================================= *\/\r\n\r\n                const room =\r\n                    await getAvailability();\r\n\r\n\r\n                if (\r\n                    !room ||\r\n                    Number(\r\n                        room.roomsavail || 0\r\n                    ) < 1\r\n                ) {\r\n\r\n                    throw new Error(\r\n                        'Estas datas j\u00e1 n\u00e3o est\u00e3o dispon\u00edveis.'\r\n                    );\r\n\r\n                }\r\n\r\n\r\n                \/*\r\n                 * IMPORTANTE:\r\n                 * pre\u00e7o final vem novamente do Beds24.\r\n                 *\/\r\n\r\n                const finalPrice =\r\n                    Number(\r\n                        room.price\r\n                    );\r\n\r\n\r\n                if (\r\n                    !Number.isFinite(\r\n                        finalPrice\r\n                    ) ||\r\n                    finalPrice <= 0\r\n                ) {\r\n\r\n                    throw new Error(\r\n                        'N\u00e3o foi poss\u00edvel confirmar o pre\u00e7o da reserva.'\r\n                    );\r\n\r\n                }\r\n\r\n\r\n                \/* =============================================\r\n                   IDIOMA DA RESERVA \/ PAGAMENTO\r\n                   ============================================= *\/\r\n\r\n                const supportedBookingLanguages =\r\n                    ['pt', 'en', 'fr', 'es'];\r\n\r\n                function getBookingLanguage() {\r\n\r\n                    \/*\r\n                     * 1) Prioridade: atributo <html lang=\"...\">\r\n                     *    Ex.: pt-PT, en-US, fr-FR, es-ES\r\n                     *\/\r\n                    const htmlLanguage =\r\n                        (\r\n                            document.documentElement.lang ||\r\n                            ''\r\n                        )\r\n                        .toLowerCase()\r\n                        .split('-')[0];\r\n\r\n                    if (\r\n                        supportedBookingLanguages.includes(\r\n                            htmlLanguage\r\n                        )\r\n                    ) {\r\n                        return htmlLanguage;\r\n                    }\r\n\r\n\r\n                    \/*\r\n                     * 2) Fallback: idioma presente no URL.\r\n                     *    Ex.: \/pt\/, \/en\/, \/fr\/, \/es\/\r\n                     *\/\r\n                    const pathParts =\r\n                        window.location.pathname\r\n                            .toLowerCase()\r\n                            .split('\/')\r\n                            .filter(Boolean);\r\n\r\n                    for (\r\n                        const part of pathParts\r\n                    ) {\r\n\r\n                        if (\r\n                            supportedBookingLanguages.includes(\r\n                                part\r\n                            )\r\n                        ) {\r\n                            return part;\r\n                        }\r\n\r\n                    }\r\n\r\n\r\n                    \/*\r\n                     * 3) Fallback final:\r\n                     *    Portugu\u00eas, por ser o idioma principal\r\n                     *    do website.\r\n                     *\/\r\n                    return 'pt';\r\n\r\n                }\r\n\r\n                const bookingLanguage =\r\n                    getBookingLanguage();\r\n\r\n\r\n                \/* =============================================\r\n                   CRIAR RESERVA\r\n                   ============================================= *\/\r\n\r\n                confirmButton.textContent =\r\n                    'A preparar pagamento...';\r\n\r\n\r\n                const response =\r\n                    await fetch(\r\n                        '\/beds24\/create-booking.php',\r\n                        {\r\n\r\n                            method: 'POST',\r\n\r\n                            headers: {\r\n                                'Content-Type':\r\n                                    'application\/json'\r\n                            },\r\n\r\n                            body:\r\n                                JSON.stringify({\r\n\r\n                                    checkin:\r\n                                        checkin.value,\r\n\r\n                                    checkout:\r\n                                        checkout.value,\r\n\r\n                                    adults:\r\n                                        Number(\r\n                                            adults.value\r\n                                        ),\r\n\r\n                                    children:\r\n                                        Number(\r\n                                            children.value\r\n                                        ),\r\n\r\n                                    firstName:\r\n                                        firstName,\r\n\r\n                                    lastName:\r\n                                        lastName,\r\n\r\n                                    email:\r\n                                        email,\r\n\r\n                                    phone:\r\n                                        phone,\r\n\r\n                                    country:\r\n                                        country,\r\n\r\n                                    comments:\r\n                                        comments,\r\n\r\n                                    lang:\r\n                                        bookingLanguage\r\n\r\n                                })\r\n\r\n                        }\r\n                    );\r\n\r\n\r\nconst rawResponse = await response.text();\r\n\r\n\r\nlet data;\r\n\r\ntry {\r\n\r\n    data = JSON.parse(\r\n        rawResponse\r\n    );\r\n\r\n}\r\ncatch (error) {\r\n\r\n    throw new Error(\r\n        'Resposta inv\u00e1lida do servidor.'\r\n    );\r\n\r\n}\r\nif (\r\n    !response.ok ||\r\n    !data.success\r\n) {\r\n\r\n    throw new Error(\r\n        data.message ||\r\n        'N\u00e3o foi poss\u00edvel criar a reserva.'\r\n    );\r\n\r\n}\r\n\r\n\r\n\/* =============================================\r\n   SUCESSO -> REDIRECIONAR PARA PAGAMENTO BEDS24\r\n   ============================================= *\/\r\n\r\n                if (!data.bookingId) {\r\n\r\n                    throw new Error(\r\n                        'A reserva foi criada, mas n\u00e3o foi poss\u00edvel obter a refer\u00eancia de pagamento.'\r\n                    );\r\n\r\n                }\r\n\r\n                const paymentUrl =\r\n                    'https:\/\/beds24.com\/bookpay.php' +\r\n                    '?bookid=' +\r\n                    encodeURIComponent(\r\n                        data.bookingId\r\n                    ) +\r\n                    '&g=st,pp,cg' +\r\n                    '&pay=bookbalance' +\r\n                    '&lang=' +\r\n                    encodeURIComponent(\r\n                        bookingLanguage\r\n                    );\r\n\r\n                window.top.location.href =\r\n                    paymentUrl;\r\n\r\n            }\r\n            catch (error) {\r\nshowBookingError(\r\n                    message,\r\n                    error.message ||\r\n                    'N\u00e3o foi poss\u00edvel criar a reserva.'\r\n                );\r\n\r\n            }\r\n            finally {\r\n\r\n                const currentButton =\r\n                    document.getElementById(\r\n                        'agConfirmBooking'\r\n                    );\r\n\r\n\r\n                if (currentButton) {\r\n\r\n                    currentButton.disabled =\r\n                        false;\r\n\r\n\r\n                    currentButton.textContent =\r\n                        'Continuar para pagamento';\r\n\r\n                }\r\n\r\n            }\r\n\r\n        }\r\n\r\n\r\n        \/* =====================================================\r\n           RESERVA CRIADA\r\n           ===================================================== *\/\r\n\r\n        function showBookingSuccess(\r\n            nights,\r\n            totalPrice,\r\n            data\r\n        ) {\r\n\r\n            result.className =\r\n                'ag-result success';\r\n\r\n\r\n            result.style.display =\r\n                'block';\r\n\r\n\r\n            result.innerHTML = `\r\n\r\n                <div style=\"\r\n                    text-align:center;\r\n                    padding:10px 0;\r\n                \">\r\n\r\n                    <div style=\"\r\n                        font-size:34px;\r\n                        line-height:1;\r\n                        color:#00930b;\r\n                        margin-bottom:10px;\r\n                    \">\r\n                        \u2713\r\n                    <\/div>\r\n\r\n\r\n                    <div style=\"\r\n                        color:#303044;\r\n                        font-size:19px;\r\n                        font-weight:700;\r\n                    \">\r\n\r\n                        Reserva recebida\r\n\r\n                    <\/div>\r\n\r\n\r\n                    <div style=\"\r\n                        margin-top:12px;\r\n                        color:#777;\r\n                    \">\r\n\r\n                        ${formatDate(\r\n                            checkin.value\r\n                        )}\r\n\r\n                        &nbsp;\u2192&nbsp;\r\n\r\n                        ${formatDate(\r\n                            checkout.value\r\n                        )}\r\n\r\n                    <\/div>\r\n\r\n\r\n                    <div style=\"\r\n                        margin-top:5px;\r\n                        color:#777;\r\n                    \">\r\n\r\n                        ${nights}\r\n                        ${\r\n                            nights === 1\r\n                                ? 'noite'\r\n                                : 'noites'\r\n                        }\r\n\r\n                    <\/div>\r\n\r\n\r\n                    <div style=\"\r\n                        margin-top:13px;\r\n                        font-size:13px;\r\n                        color:#777;\r\n                    \">\r\n\r\n                        Total da estadia\r\n\r\n                    <\/div>\r\n\r\n\r\n                    <div style=\"\r\n                        margin-top:2px;\r\n                        color:#303044;\r\n                        font-size:24px;\r\n                        font-weight:700;\r\n                    \">\r\n\r\n                        ${formatPrice(\r\n                            totalPrice\r\n                        )}\r\n\r\n                    <\/div>\r\n\r\n\r\n                    <div style=\"\r\n                        margin-top:16px;\r\n                        color:#777;\r\n                        font-size:13px;\r\n                        line-height:1.5;\r\n                    \">\r\n\r\n                        A sua reserva foi registada.\r\n\r\n                    <\/div>\r\n\r\n                <\/div>\r\n\r\n            `;\r\n\r\n        }\r\n\r\n\r\n        \/* =====================================================\r\n           INDISPON\u00cdVEL\r\n           ===================================================== *\/\r\n\r\n        function showUnavailable() {\r\n\r\n            result.className =\r\n                'ag-result error';\r\n\r\n\r\n            result.style.display =\r\n                'block';\r\n\r\n\r\n            result.innerHTML = `\r\n\r\n                <div style=\"\r\n                    text-align:center;\r\n                \">\r\n\r\n                    <div style=\"\r\n                        font-size:17px;\r\n                        font-weight:700;\r\n                        margin-bottom:8px;\r\n                    \">\r\n\r\n                        Datas indispon\u00edveis\r\n\r\n                    <\/div>\r\n\r\n\r\n                    <div>\r\n\r\n                        Infelizmente n\u00e3o temos\r\n                        disponibilidade para as\r\n                        datas selecionadas.\r\n\r\n                    <\/div>\r\n\r\n\r\n                    <div style=\"\r\n                        margin-top:8px;\r\n                    \">\r\n\r\n                        Escolha outras datas\r\n                        para a sua estadia.\r\n\r\n                    <\/div>\r\n\r\n                <\/div>\r\n\r\n            `;\r\n\r\n        }\r\n\r\n\r\n        \/* =====================================================\r\n           ERRO PESQUISA\r\n           ===================================================== *\/\r\n\r\n        function showError(\r\n            message\r\n        ) {\r\n\r\n            result.className =\r\n                'ag-result error';\r\n\r\n\r\n            result.style.display =\r\n                'block';\r\n\r\n\r\n            result.textContent =\r\n                message;\r\n\r\n        }\r\n\r\n\r\n        \/* =====================================================\r\n           LIMPAR RESULTADO\r\n           ===================================================== *\/\r\n\r\n        function hideResult() {\r\n\r\n            result.className =\r\n                'ag-result';\r\n\r\n\r\n            result.style.display =\r\n                'none';\r\n\r\n\r\n            result.innerHTML =\r\n                '';\r\n\r\n        }\r\n\r\n\r\n        \/* =====================================================\r\n           MENSAGEM ERRO CHECKOUT\r\n           ===================================================== *\/\r\n\r\n        function showBookingError(\r\n            element,\r\n            text\r\n        ) {\r\n\r\n            element.className =\r\n                'ag-booking-message error';\r\n\r\n\r\n            element.style.display =\r\n                'block';\r\n\r\n\r\n            element.textContent =\r\n                text;\r\n\r\n        }\r\n\r\n\r\n        function hideBookingMessage(\r\n            element\r\n        ) {\r\n\r\n            element.className =\r\n                'ag-booking-message';\r\n\r\n\r\n            element.style.display =\r\n                'none';\r\n\r\n\r\n            element.textContent =\r\n                '';\r\n\r\n        }\r\n\r\n\r\n        \/* =====================================================\r\n           CALCULAR N\u00ba NOITES\r\n           ===================================================== *\/\r\n\r\n        function calculateNights(\r\n            startDate,\r\n            endDate\r\n        ) {\r\n\r\n            const start =\r\n                new Date(\r\n                    startDate +\r\n                    'T12:00:00'\r\n                );\r\n\r\n\r\n            const end =\r\n                new Date(\r\n                    endDate +\r\n                    'T12:00:00'\r\n                );\r\n\r\n\r\n            return Math.round(\r\n                (end - start) \/\r\n                86400000\r\n            );\r\n\r\n        }\r\n\r\n\r\n        \/* =====================================================\r\n           VALIDAR EMAIL\r\n           ===================================================== *\/\r\n\r\n        function isValidEmail(\r\n            email\r\n        ) {\r\n\r\n            return \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/\r\n                .test(email);\r\n\r\n        }\r\n\r\n\r\n        \/* =====================================================\r\n           FORMATAR PRE\u00c7O\r\n           ===================================================== *\/\r\n\r\n        function formatPrice(\r\n            value\r\n        ) {\r\n\r\n            return new Intl.NumberFormat(\r\n                'pt-PT',\r\n                {\r\n\r\n                    style: 'currency',\r\n\r\n                    currency: 'EUR',\r\n\r\n                    minimumFractionDigits:\r\n                        Number.isInteger(\r\n                            value\r\n                        )\r\n                            ? 0\r\n                            : 2,\r\n\r\n                    maximumFractionDigits:\r\n                        2\r\n\r\n                }\r\n            ).format(value);\r\n\r\n        }\r\n\r\n\r\n        \/* =====================================================\r\n           FORMATAR DATA\r\n           ===================================================== *\/\r\n\r\n        function formatDate(\r\n            value\r\n        ) {\r\n\r\n            const parts =\r\n                value.split('-');\r\n\r\n\r\n            return (\r\n                parts[2] +\r\n                '\/' +\r\n                parts[1] +\r\n                '\/' +\r\n                parts[0]\r\n            );\r\n\r\n        }\r\n\r\n    }\r\n);\r\n<\/script>\n\t\t<\/div>\n\t<\/div>\n<\/div><\/div><\/div><\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"Reserve a sua estadia em AgualongaVillas desde 280 \u20ac por noite Ver disponibilidade Check-in Check-out Adultos 1 Adulto 2 Adultos 3 Adultos 4 Adultos 5 Adultos 6 Adultos 7 Adultos 8 Adultos 9 Adultos 10 Adultos 11 Adultos 12 Adultos 13 Adultos 14 Adultos Crian\u00e7as 0 Crian\u00e7as 1 Crian\u00e7a 2 Crian\u00e7as 3 Crian\u00e7as 4 Crian\u00e7as ...","protected":false},"author":4,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"inline_featured_image":false,"footnotes":""},"class_list":["post-2","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.agualongavillas.com\/en\/wp-json\/wp\/v2\/pages\/2","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.agualongavillas.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.agualongavillas.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.agualongavillas.com\/en\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.agualongavillas.com\/en\/wp-json\/wp\/v2\/comments?post=2"}],"version-history":[{"count":38,"href":"https:\/\/www.agualongavillas.com\/en\/wp-json\/wp\/v2\/pages\/2\/revisions"}],"predecessor-version":[{"id":37686,"href":"https:\/\/www.agualongavillas.com\/en\/wp-json\/wp\/v2\/pages\/2\/revisions\/37686"}],"wp:attachment":[{"href":"https:\/\/www.agualongavillas.com\/en\/wp-json\/wp\/v2\/media?parent=2"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}