{"id":10609,"date":"2026-04-20T08:50:49","date_gmt":"2026-04-20T08:50:49","guid":{"rendered":"https:\/\/komodoislandtour.id\/?post_type=boat-type&#038;p=10609"},"modified":"2026-04-21T10:21:47","modified_gmt":"2026-04-21T10:21:47","slug":"eternity-boat","status":"publish","type":"boat-type","link":"https:\/\/komodoislandtour.id\/id\/boat-type\/eternity-boat\/","title":{"rendered":"Eternity Boat"},"content":{"rendered":"<style>.elementor-10609 .elementor-element.elementor-element-0723c92{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-10609 .elementor-element.elementor-element-37b46a5{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-10609 .elementor-element.elementor-element-7a220ca{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-10609 .elementor-element.elementor-element-c7ebde7{--display:flex;}.elementor-10609 .elementor-element.elementor-element-ce42ef1{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-widget-button .elementor-button{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );background-color:var( --e-global-color-accent );}.elementor-10609 .elementor-element.elementor-element-6312b6d .elementor-button{font-family:\"Roboto\", Sans-serif;font-weight:500;background-color:transparent;background-image:linear-gradient(35deg, #3D717E 0%, #9DA4AA 100%);border-style:none;}.elementor-10609 .elementor-element.elementor-element-6312b6d{width:var( --container-widget-width, 50% );max-width:50%;--container-widget-width:50%;--container-widget-flex-grow:0;}.elementor-10609 .elementor-element.elementor-element-9118c27 .elementor-button{font-family:\"Roboto\", Sans-serif;font-size:11px;font-weight:800;line-height:18px;letter-spacing:0.3px;word-spacing:0px;fill:var( --e-global-color-29ec7d3 );color:var( --e-global-color-29ec7d3 );background-color:transparent;background-image:linear-gradient(45deg, var( --e-global-color-161270a ) 0%, var( --e-global-color-a5e7f09 ) 100%);}.elementor-10609 .elementor-element.elementor-element-9118c27{width:var( --container-widget-width, 50% );max-width:50%;--container-widget-width:50%;--container-widget-flex-grow:0;}.elementor-10609 .elementor-element.elementor-element-392263c{--display:flex;}.elementor-10609 .elementor-element.elementor-element-10883bb{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-10609 .elementor-element.elementor-element-f14c5ef .elementor-button{font-family:\"Roboto\", Sans-serif;font-weight:500;background-color:transparent;background-image:linear-gradient(35deg, #3D717E 0%, #9DA4AA 100%);border-style:none;}.elementor-10609 .elementor-element.elementor-element-f14c5ef{width:var( --container-widget-width, 50% );max-width:50%;--container-widget-width:50%;--container-widget-flex-grow:0;}.elementor-10609 .elementor-element.elementor-element-b038a8a .elementor-button{font-family:\"Roboto\", Sans-serif;font-size:11px;font-weight:800;line-height:18px;letter-spacing:0.3px;word-spacing:0px;fill:var( --e-global-color-29ec7d3 );color:var( --e-global-color-29ec7d3 );background-color:transparent;background-image:linear-gradient(45deg, var( --e-global-color-161270a ) 0%, var( --e-global-color-a5e7f09 ) 100%);}.elementor-10609 .elementor-element.elementor-element-b038a8a{width:var( --container-widget-width, 50% );max-width:50%;--container-widget-width:50%;--container-widget-flex-grow:0;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-10609 .elementor-element.elementor-element-c9109ed .elementor-heading-title{font-family:\"Roboto\", Sans-serif;font-size:26px;font-weight:700;text-transform:uppercase;color:#355A35;}.elementor-10609 .elementor-element.elementor-element-2fef659 .elementor-heading-title{font-family:\"Roboto\", Sans-serif;font-size:26px;font-weight:700;text-transform:uppercase;color:#355A35;}@media(max-width:767px){.elementor-10609 .elementor-element.elementor-element-6312b6d .elementor-button{font-size:12px;}.elementor-10609 .elementor-element.elementor-element-6312b6d{width:100%;max-width:100%;}.elementor-10609 .elementor-element.elementor-element-9118c27{width:100%;max-width:100%;}.elementor-10609 .elementor-element.elementor-element-f14c5ef .elementor-button{font-size:12px;}.elementor-10609 .elementor-element.elementor-element-f14c5ef{width:100%;max-width:100%;}.elementor-10609 .elementor-element.elementor-element-b038a8a{width:100%;max-width:100%;}.elementor-10609 .elementor-element.elementor-element-c9109ed{text-align:center;}.elementor-10609 .elementor-element.elementor-element-c9109ed .elementor-heading-title{font-size:14px;}.elementor-10609 .elementor-element.elementor-element-2fef659{text-align:center;}.elementor-10609 .elementor-element.elementor-element-2fef659 .elementor-heading-title{font-size:14px;}}<\/style>\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"10609\" class=\"elementor elementor-10609\" data-elementor-post-type=\"boat-type\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0723c92 e-flex e-con-boxed e-con e-parent\" data-id=\"0723c92\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-37b46a5 e-con-full e-flex e-con e-child\" data-id=\"37b46a5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-7a220ca e-con-full e-flex e-con e-child\" data-id=\"7a220ca\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-86c0979 elementor-widget elementor-widget-html\" data-id=\"86c0979\" 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.open-trip-section {\n    max-width: 900px;\n    margin: 20px auto;\n    font-family: inherit;\n}\n.open-trip-title {\n    background: #2D5A39; \n    color: #ffffff;\n    text-align: center;\n    padding: 10px 15px;\n    font-size: 14px; \n    font-weight: 600;\n    border-radius: 0px !important; \n    margin-bottom: 0px; \n    text-transform: uppercase;\n    width: 100%;\n    box-sizing: border-box;\n    letter-spacing: 0.5px;\n}\n.open-trip-box {\n    background: #fff;\n    border: 1px solid #e5e7eb;\n    border-top: none; \n    box-shadow: 0 6px 18px rgba(0,0,0,0.06);\n    overflow: hidden;\n}\n.open-trip-table {\n    width: 100%;\n    border-collapse: collapse;\n    text-align: left;\n}\n.open-trip-table th {\n    background: #f0f7f0;\n    color: #355A35;\n    padding: 12px 15px;\n    font-weight: 700;\n    border-bottom: 2px solid #d6e6d6;\n    text-transform: uppercase;\n    font-size: 12px;\n}\n.open-trip-table td {\n    padding: 12px 15px;\n    border-bottom: 1px solid #eee;\n    color: #444;\n    font-size: 13px;\n}\n.open-trip-table td:nth-child(2) {\n    font-weight: 600;\n    color: #355A35;\n    white-space: nowrap;\n}\n.add-pax-info {\n    display: block;\n    font-size: 10px;\n    color: #666;\n    margin-top: 2px;\n}\n@media(max-width: 768px) {\n    .open-trip-title { font-size: 11px; padding: 8px; }\n    .open-trip-table th, .open-trip-table td { padding: 10px; font-size: 11px; }\n}\n<\/style>\n\n<div class=\"open-trip-section\">\n  <div class=\"open-trip-title\">\n    LOMBOK &rarr; LABUAN BAJO (THURSDAY - SUNDAY)\n  <\/div>\n  <div class=\"open-trip-box\">\n    <table class=\"open-trip-table\">\n      <thead>\n        <tr>\n          <th>Cabin Type<\/th>\n          <th>Price (IDR)<\/th>\n        <\/tr>\n      <\/thead>\n      <tbody>\n        <tr>\n          <td><strong>VIP Ocean Balcony<\/strong><\/td>\n          <td>IDR 11,500,000 <span class=\"add-pax-info\">Min 2 Pax \/ Extra Bed Available<\/span><\/td>\n        <\/tr>\n        <tr>\n          <td><strong>Deluxe Full Ocean<\/strong><\/td>\n          <td>IDR 9,500,000 <span class=\"add-pax-info\">Min 2 Pax<\/span><\/td>\n        <\/tr>\n        <tr>\n          <td><strong>Superior Full Ocean<\/strong><\/td>\n          <td>IDR 9,000,000 <span class=\"add-pax-info\">Min 2 Pax \/ Extra Bed Available<\/span><\/td>\n        <\/tr>\n        <tr>\n          <td><strong>Shared Full Ocean<\/strong><\/td>\n          <td>IDR 5,500,000 <span class=\"add-pax-info\">Min 1 Pax \/ Extra Bed Available<\/span><\/td>\n        <\/tr>\n      <\/tbody>\n    <\/table>\n  <\/div>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c7ebde7 e-con-full e-flex e-con e-child\" data-id=\"c7ebde7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-ce42ef1 e-con-full e-flex e-con e-child\" data-id=\"ce42ef1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6312b6d elementor-align-justify elementor-mobile-align-justify elementor-widget__width-initial elementor-widget-mobile__width-inherit elementor-widget elementor-widget-button\" data-id=\"6312b6d\" 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:\/\/komodoislandtour.id\/wp-content\/uploads\/2026\/04\/Open-Trip-Eternity-Lombok-Bajo-2025-6.pdf\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Download Flyer<\/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-9118c27 elementor-align-justify elementor-widget__width-initial elementor-widget-mobile__width-inherit elementor-widget elementor-widget-button\" data-id=\"9118c27\" 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:\/\/bes.hybridbooking.com\/komodotourindonesia\/booking\/rsv\/detail\/KTI3683\/KOMODO-ISLAND-TOUR-FROM-LOMBOK-ETERNITY-BOAT\/\" rel=\"nofollow noopener\" target=\"_blank\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Enquiry<\/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<div class=\"elementor-element elementor-element-063ce31 elementor-widget elementor-widget-html\" data-id=\"063ce31\" 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.open-trip-section {\n    max-width: 900px;\n    margin: 20px auto;\n    font-family: inherit;\n}\n\n\/* JUDUL DEFAULT (UNTUK MOBILE) agar rapi dan tidak berantakan *\/\n.open-trip-title {\n    background: #2D5A39; \n    color: #ffffff;\n    text-align: center;\n    padding: 12px 15px;\n    font-size: 13px; \/* Ukuran pas untuk mobile *\/\n    font-weight: 600;\n    border-radius: 0px !important; \n    margin-bottom: 0px; \n    text-transform: uppercase;\n    width: 100%;\n    box-sizing: border-box;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    line-height: 1.4;\n    white-space: normal; \/* Biar teks turun ke bawah di mobile, tidak berantakan *\/\n}\n\n\/* KHUSUS DESKTOP: Tulisan diperbesar *\/\n@media (min-width: 769px) {\n    .open-trip-title {\n        font-size: 18px; \/* Tulisan besar hanya di desktop *\/\n        letter-spacing: 0.5px;\n        white-space: nowrap; \/* Di desktop dipaksa sejajar karena ruang luas *\/\n    }\n}\n\n.open-trip-box {\n    background: #fff;\n    border: 1px solid #e5e7eb;\n    border-top: none; \n    box-shadow: 0 6px 18px rgba(0,0,0,0.06);\n    overflow: hidden;\n}\n\n.open-trip-table {\n    width: 100%;\n    border-collapse: collapse;\n    text-align: left;\n}\n\n.open-trip-table th {\n    background: #f0f7f0;\n    color: #355A35;\n    padding: 12px 15px;\n    font-weight: 700;\n    border-bottom: 2px solid #d6e6d6;\n    text-transform: uppercase;\n    font-size: 12px;\n}\n\n.open-trip-table td {\n    padding: 12px 15px;\n    border-bottom: 1px solid #eee;\n    color: #444;\n    font-size: 13px;\n}\n\n.open-trip-table td:nth-child(2) {\n    font-weight: 600;\n    color: #355A35;\n}\n\n.add-pax-info {\n    display: block;\n    font-size: 10px;\n    color: #666;\n    margin-top: 2px;\n}\n\n\/* Responsif Mobile untuk Tabel *\/\n@media (max-width: 768px) {\n    .open-trip-table th, .open-trip-table td { \n        padding: 10px; \n        font-size: 11px; \n    }\n}\n<\/style>\n\n<div class=\"open-trip-section\">\n  <div class=\"open-trip-title\">\n    LABUAN BAJO &rarr; LOMBOK (SUNDAY - WEDNESDAY \/ THURSDAY OPTIONAL)\n  <\/div>\n  <div class=\"open-trip-box\">\n    <table class=\"open-trip-table\">\n      <thead>\n        <tr>\n          <th>Cabin Type<\/th>\n          <th>Price (IDR)<\/th>\n        <\/tr>\n      <\/thead>\n      <tbody>\n        <tr>\n          <td><strong>VIP Ocean Balcony<\/strong><\/td>\n          <td>IDR 11,500,000 <span class=\"add-pax-info\">Min 2 Pax \/ Extra Bed Available<\/span><\/td>\n        <\/tr>\n        <tr>\n          <td><strong>Deluxe Full Ocean<\/strong><\/td>\n          <td>IDR 9,500,000 <span class=\"add-pax-info\">Min 2 Pax<\/span><\/td>\n        <\/tr>\n        <tr>\n          <td><strong>Superior Full Ocean<\/strong><\/td>\n          <td>IDR 9,000,000 <span class=\"add-pax-info\">Min 2 Pax \/ Extra Bed Available<\/span><\/td>\n        <\/tr>\n        <tr>\n          <td><strong>Shared Full Ocean<\/strong><\/td>\n          <td>IDR 5,500,000 <span class=\"add-pax-info\">Min 1 Pax \/ Extra Bed Available<\/span><\/td>\n        <\/tr>\n      <\/tbody>\n    <\/table>\n  <\/div>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-392263c e-con-full e-flex e-con e-child\" data-id=\"392263c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-10883bb e-con-full e-flex e-con e-child\" data-id=\"10883bb\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f14c5ef elementor-align-justify elementor-mobile-align-justify elementor-widget__width-initial elementor-widget-mobile__width-inherit elementor-widget elementor-widget-button\" data-id=\"f14c5ef\" 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:\/\/komodoislandtour.id\/wp-content\/uploads\/2026\/04\/Open-Trip-Eternity-Bajo-Lombok-2025-7.pdf\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Download Flyer<\/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-b038a8a elementor-align-justify elementor-widget__width-initial elementor-widget-mobile__width-inherit elementor-widget elementor-widget-button\" data-id=\"b038a8a\" 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:\/\/bes.hybridbooking.com\/komodotourindonesia\/booking\/rsv\/detail\/KTI6196\/KOMODOTOUR-FROM-LABUAN-BAJO-FINISH-LOMBOK-ETERNITY-BOAT\/\" rel=\"nofollow noopener\" target=\"_blank\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Enquiry<\/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<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-14383dc elementor-widget elementor-widget-html\" data-id=\"14383dc\" 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.inc-section{\nmax-width:1000px;\nmargin:auto;\ndisplay:grid;\ngrid-template-columns:1fr 1fr;\ngap:30px;\nfont-family:inherit;\n}\n\n\/* card *\/\n.inc-card{\nbackground:#fff;\npadding:25px;\nborder-radius:12px;\nbox-shadow:0 5px 15px rgba(0,0,0,0.05);\nborder:1px solid #f1f1f1;\n}\n\n\/* title *\/\n.inc-title{\nfont-size:18px;\nfont-weight:600;\nmargin-bottom:20px;\ncolor:#212529;\n}\n\n\/* list *\/\n.inc-list{\nlist-style:none;\npadding:0;\nmargin:0;\n}\n\n.inc-list li{\ndisplay:flex;\nalign-items:flex-start;\ngap:12px;\nmargin-bottom:12px;\nline-height:1.6;\ncolor:#555;\nfont-size: 14px;\n}\n\n.sub-list {\nlist-style: none;\npadding-left: 25px;\nmargin-top: 5px;\n}\n\n.sub-list li {\nmargin-bottom: 5px !important;\nfont-size: 13px;\n}\n\n\/* icons *\/\n.icon-check{\ncolor:#22c55e;\nfont-size:16px;\nmargin-top:3px;\n}\n\n.icon-cross{\ncolor:#ef4444;\nfont-size:16px;\nmargin-top:3px;\n}\n\n\/* mobile *\/\n@media(max-width:768px){\n.inc-section{\ngrid-template-columns:1fr;\n}\n}\n<\/style>\n\n<div class=\"inc-section\">\n\n  <div class=\"inc-card\">\n    <div class=\"inc-title\">Included<\/div>\n    <ul class=\"inc-list\">\n      <li><span class=\"icon-check\">\u2713<\/span> Free shuttle pick up from \"Kuta, Bangsal, Senggigi area\"<\/li>\n      <li><span class=\"icon-check\">\u2713<\/span> Free shuttle drop to hotel \/ airport (Labuan Bajo)<\/li>\n      <li><span class=\"icon-check\">\u2713<\/span> Liveaboard boat with AC for 4 Day 3 Night<\/li>\n      <li><span class=\"icon-check\">\u2713<\/span> Daily breakfast, lunch and dinner during the trip<\/li>\n      <li><span class=\"icon-check\">\u2713<\/span> Chef and boat crew<\/li>\n      <li><span class=\"icon-check\">\u2713<\/span> Sundeck and a comfortable dining area<\/li>\n      <li><span class=\"icon-check\">\u2713<\/span> Tender boat<\/li>\n      <li><span class=\"icon-check\">\u2713<\/span> Snorkeling equipment<\/li>\n      <li><span class=\"icon-check\">\u2713<\/span> Mineral water during the trip<\/li>\n      <li><span class=\"icon-check\">\u2713<\/span> Snack, coffee and tea during the trip<\/li>\n      <li><span class=\"icon-check\">\u2713<\/span> Local guide<\/li>\n      <li><span class=\"icon-check\">\u2713<\/span> Life jackets<\/li>\n      <li><span class=\"icon-check\">\u2713<\/span> All activities \/ excursion organized according to itinerary<\/li>\n    <\/ul>\n  <\/div>\n\n  <div class=\"inc-card\">\n    <div class=\"inc-title\">Excluded<\/div>\n    <ul class=\"inc-list\">\n      <li><span class=\"icon-cross\">\u2715<\/span> Flights Ticket To Lombok And From Labuan Bajo<\/li>\n      <li><span class=\"icon-cross\">\u2715<\/span> Hotel Accommodation Before Or After The Trip<\/li>\n      <li><span class=\"icon-cross\">\u2715<\/span> Alcoholic Beverages (Can Be Arranged Upon Request)<\/li>\n      <li><span class=\"icon-cross\">\u2715<\/span> Personal Expenses<\/li>\n      <li><span class=\"icon-cross\">\u2715<\/span> Crew Gratuity (Voluntary, But Greatly Appreciated)<\/li>\n      <li>\n        <div>\n          <span class=\"icon-cross\">\u2715<\/span> Entrance Fee Komodo National Park And Whale Shark Point\n          <ul class=\"sub-list\">\n            <li>\u2022 Foreigner: IDR 600,000 \/ Pax<\/li>\n            <li>\u2022 Local: IDR 300,000 \/ Pax<\/li>\n          <\/ul>\n        <\/div>\n      <\/li>\n    <\/ul>\n  <\/div>\n\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c9109ed elementor-widget elementor-widget-heading\" data-id=\"c9109ed\" 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\">ITINERARY From Lombok to LABUAN BAJO<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0c7d1e9 elementor-widget elementor-widget-html\" data-id=\"0c7d1e9\" 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.itinerary-wrap {\n  max-width: 1000px;\n  margin: 4px auto;\n  font-family: Arial, sans-serif;\n}\n\n\n.itinerary-table {\n  width: 100%;\n  border-collapse: collapse;\n  border-radius: 1px;\n  overflow: hidden;\n}\n\n.itinerary-table th {\n  background: #355A35;\n  color: #ffffff;\n  padding: 14px;\n  text-align: left;\n  font-size: 14px;\n}\n\n.itinerary-table td {\n  padding: 14px;\n  border-bottom: 1px solid #e5e7eb;\n  vertical-align: top;\n  font-size: 14px;\n  line-height: 1.6;\n}\n\n.itinerary-day {\n  font-weight: 800;\n  color: #355A35;\n  width: 120px;\n}\n\n.itinerary-table tr:nth-child(even) {\n  background: #f8faf8;\n}\n\n\/* note *\/\n.itinerary-note {\n  margin-top: 16px;\n  padding: 10px;\n  background: #f0f7f0;\n  border-left: 4px solid #355A35;\n  font-size: 13px;\n  color: #374151;\n}\n<\/style>\n\n<div class=\"itinerary-wrap\">\n\n  <table class=\"itinerary-table\">\n    <thead>\n      <tr>\n        <th>Day<\/th>\n        <th>Activities<\/th>\n      <\/tr>\n    <\/thead>\n\n    <tbody>\n      <tr>\n        <td class=\"itinerary-day\">DAY 1<\/td>\n        <td>\n          Start pickup, lunch on the way to the harbour, check-in on board, depart from Lombok Harbour, start sailing and visit Kenawa Island, Lombok.\n        <\/td>\n      <\/tr>\n\n      <tr>\n        <td class=\"itinerary-day\">DAY 2<\/td>\n        <td>\n          Visit Saleh Bay (Whaleshark Point), Doro Peti, then sailing to Komodo Island.\n        <\/td>\n      <\/tr>\n\n      <tr>\n        <td class=\"itinerary-day\">DAY 3<\/td>\n        <td>\n          Visit Manta Point (if time and weather permits), Komodo Island, Pink Beach, enjoy sunset on Padar Island, and boat anchoring at Manjarite Island.\n        <\/td>\n      <\/tr>\n\n      <tr>\n        <td class=\"itinerary-day\">DAY 4<\/td>\n        <td>\n          Snorkeling at Manjarite Island, visit Kelor Island, sailing to Labuan Bajo, arrive at Labuan Bajo Harbour, then transfer to hotel or airport as the end of the trip.\n        <\/td>\n      <\/tr>\n    <\/tbody>\n  <\/table>\n\n  <div class=\"itinerary-note\">\n    <strong>Note:<\/strong><br>\n    \u2022 The itinerary may change according to weather conditions<br>\n    \u2022 If there are fewer than 10 participants, the whaleshark activity will be replaced with a visit to an alternative island\n  <\/div>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2fef659 elementor-widget elementor-widget-heading\" data-id=\"2fef659\" 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\">ITINERARY From LABUAN BAJO to LOMBOK<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8fc5e10 elementor-widget elementor-widget-html\" data-id=\"8fc5e10\" 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.itinerary-wrap {\n  max-width: 1000px;\n  margin: 4px auto;\n  font-family: Arial, sans-serif;\n}\n\n.itinerary-table {\n  width: 100%;\n  border-collapse: collapse;\n  border-radius: 1px;\n  overflow: hidden;\n}\n\n.itinerary-table th {\n  background: #355A35;\n  color: #ffffff;\n  padding: 12px;\n  text-align: left;\n}\n\n\/* --- SETTING DESKTOP (DEFAULT) --- *\/\n.itinerary-table th {\n  font-size: 18px; \/* Judul besar di desktop *\/\n}\n\n.itinerary-table td {\n  padding: 14px;\n  border-bottom: 1px solid #e5e7eb;\n  vertical-align: top;\n  font-size: 16px; \/* Tulisan isi lebih besar di desktop *\/\n  line-height: 1.5;\n}\n\n.itinerary-day {\n  font-weight: 800;\n  color: #355A35;\n  width: 120px;\n}\n\n.itinerary-table tr:nth-child(even) {\n  background: #f8faf8;\n}\n\n.itinerary-note {\n  margin-top: 15px;\n  padding: 12px;\n  background: #f0f7f0;\n  border-left: 4px solid #355A35;\n  font-size: 14px;\n  color: #374151;\n}\n\n\/* --- SETTING MOBILE (KOCI\/KECIL & RAPI) --- *\/\n@media (max-width: 768px) {\n  .itinerary-table th {\n    font-size: 12px; \n    padding: 8px;\n  }\n  \n  .itinerary-table td {\n    padding: 8px;\n    font-size: 11px; \/* Ukuran kecil (koci) agar rapi *\/\n    line-height: 1.3;\n  }\n  \n  .itinerary-day {\n    width: 60px; \/* Kolom hari dipersempit agar hemat ruang *\/\n  }\n\n  .itinerary-note {\n    font-size: 10px;\n    padding: 8px;\n  }\n}\n<\/style>\n\n<div class=\"itinerary-wrap\">\n  <table class=\"itinerary-table\">\n    <thead>\n      <tr>\n        <th>Day<\/th>\n        <th>Activities<\/th>\n      <\/tr>\n    <\/thead>\n    <tbody>\n      <tr>\n        <td class=\"itinerary-day\">DAY 1<\/td>\n        <td>Pickup from hotel\/airport in Labuan Bajo, transfer to harbour, check-in, dinner, and start sailing.<\/td>\n      <\/tr>\n      <tr>\n        <td class=\"itinerary-day\">DAY 2<\/td>\n        <td>Visit Padar Island (sunrise), Komodo Island, Pink Beach, and Manta Point, then sail to Sumbawa Island.<\/td>\n      <\/tr>\n      <tr>\n        <td class=\"itinerary-day\">DAY 3<\/td>\n        <td>Visit Savana Beach and Doro Peti for snorkeling and relaxing, then continue sailing towards Saleh Bay.<\/td>\n      <\/tr>\n      <tr>\n        <td class=\"itinerary-day\">DAY 4<\/td>\n        <td>Whale Shark Point (Saleh Bay), Bedil or Kenawa Island, then sail to Kayangan Harbour Lombok (Finish).<\/td>\n      <\/tr>\n    <\/tbody>\n  <\/table>\n\n  <div class=\"itinerary-note\">\n    <strong>Note:<\/strong> Itinerary may change due to weather. If participants < 10, whaleshark activity is replaced with an alternative island.\n  <\/div>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-da86634 elementor-widget elementor-widget-html\" data-id=\"da86634\" 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>\r\n  * {\r\n    box-sizing: border-box;\r\n    margin: 0;\r\n    padding: 0;\r\n  }\r\n  body {\r\n    font-family: sans-serif;\r\n  }\r\n  .landing {\r\n    padding: 0px;\r\n    text-align: center;\r\n  }\r\n  .landing h1 {\r\n    font-size: 26px;\r\n    font-weight: 700;\r\n    color: #111827;\r\n    margin-bottom: 8px;\r\n  }\r\n  .landing p {\r\n    font-size: 14px;\r\n    color: #6b7280;\r\n    margin-bottom: 28px;\r\n    line-height: 1.6;\r\n  }\r\n  .btn-book {\r\n    display: inline-block;\r\n    padding: 13px 32px;\r\n    background: #25d366;\r\n    color: #fff;\r\n    border: none;\r\n    border-radius: 10px;\r\n    font-size: 15px;\r\n    font-weight: 700;\r\n    cursor: pointer;\r\n    transition: background 0.2s;\r\n  }\r\n  .btn-book:hover {\r\n    background: #1ebe5d;\r\n  }\r\n  .overlay {\r\n    display: none;\r\n    position: fixed;\r\n    inset: 0;\r\n    background: rgba(0, 0, 0, 0.45);\r\n    z-index: 100;\r\n    align-items: center;\r\n    justify-content: center;\r\n    padding: 16px;\r\n  }\r\n  .overlay.show {\r\n    display: flex;\r\n  }\r\n  .modal {\r\n    background: #fff;\r\n    border-radius: 16px;\r\n    width: 100%;\r\n    max-width: 520px;\r\n    max-height: 90vh;\r\n    overflow-y: auto;\r\n    padding: 28px 24px 24px;\r\n    position: relative;\r\n  }\r\n  .modal-close {\r\n    position: absolute;\r\n    top: 16px;\r\n    right: 18px;\r\n    background: none;\r\n    border: none;\r\n    font-size: 20px;\r\n    color: #9ca3af;\r\n    cursor: pointer;\r\n    line-height: 1;\r\n  }\r\n  .modal h2 {\r\n    font-size: 18px;\r\n    font-weight: 700;\r\n    color: #111827;\r\n    margin-bottom: 6px;\r\n  }\r\n  .modal-desc {\r\n    font-size: 13px;\r\n    color: #6b7280;\r\n    margin-bottom: 20px;\r\n    line-height: 1.5;\r\n  }\r\n  .form-group {\r\n    margin-bottom: 14px;\r\n  }\r\n  .form-group label {\r\n    display: block;\r\n    font-size: 13px;\r\n    font-weight: 600;\r\n    margin-bottom: 6px;\r\n    color: #374151;\r\n  }\r\n  .modal input[type=\"text\"],\r\n  .modal input[type=\"date\"] {\r\n    width: 100%;\r\n    padding: 10px;\r\n    border: 1px solid #e5e7eb;\r\n    border-radius: 8px;\r\n    font-size: 14px;\r\n  }\r\n  .modal input[type=\"text\"]:focus,\r\n  .modal input[type=\"date\"]:focus {\r\n    outline: none;\r\n    border-color: #25d366;\r\n  }\r\n  .cabin-card {\r\n    border: 1px solid #e5e7eb;\r\n    border-radius: 12px;\r\n    padding: 14px;\r\n    margin-bottom: 12px;\r\n    position: relative;\r\n    transition:\r\n      border-color 0.2s,\r\n      background 0.2s;\r\n  }\r\n  .cabin-card.active {\r\n    border-color: #25d366;\r\n    background: #f0fdf4;\r\n  }\r\n  .cabin-option {\r\n    display: block;\r\n    cursor: pointer;\r\n    padding-right: 34px;\r\n  }\r\n  .cabin-name {\r\n    display: block;\r\n    font-weight: 700;\r\n    margin-bottom: 4px;\r\n    font-size: 14px;\r\n    color: #111827;\r\n  }\r\n  .cabin-meta {\r\n    display: block;\r\n    font-size: 13px;\r\n    color: #6b7280;\r\n    line-height: 1.5;\r\n  }\r\n  .cabin-check-wrap {\r\n    position: absolute;\r\n    top: 14px;\r\n    right: 14px;\r\n  }\r\n  .cabin-check {\r\n    width: 18px !important;\r\n    height: 18px !important;\r\n    accent-color: #25d366;\r\n    cursor: pointer;\r\n  }\r\n  .pax-input {\r\n    margin-top: 12px;\r\n    display: none;\r\n  }\r\n  .pax-input.show {\r\n    display: block;\r\n  }\r\n  .pax-stepper {\r\n    display: inline-flex;\r\n    align-items: center;\r\n    gap: 8px;\r\n    margin-top: 4px;\r\n  }\r\n  .pax-btn {\r\n    width: 34px;\r\n    height: 34px;\r\n    border-radius: 8px;\r\n    border: 1px solid #e5e7eb;\r\n    background: #f9fafb;\r\n    color: #111827;\r\n    font-size: 18px;\r\n    font-weight: 700;\r\n    cursor: pointer;\r\n  }\r\n  .pax-number {\r\n    width: 52px;\r\n    height: 34px;\r\n    border: 1px solid #e5e7eb;\r\n    border-radius: 8px;\r\n    background: #fff;\r\n    text-align: center;\r\n    font-weight: 700;\r\n    color: #111827;\r\n  }\r\n  .field-warning {\r\n    color: #ef4444;\r\n    font-size: 12px;\r\n    margin-top: 6px;\r\n    display: none;\r\n  }\r\n  .extra-bed-section {\r\n    margin-top: 10px;\r\n    padding-top: 10px;\r\n    border-top: 1px dashed #e5e7eb;\r\n    display: none;\r\n  }\r\n  .extra-bed-section.show {\r\n    display: block;\r\n  }\r\n  .extra-bed-label {\r\n    font-size: 13px;\r\n    font-weight: 600;\r\n    color: #374151;\r\n    margin-bottom: 4px;\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 6px;\r\n  }\r\n  .extra-bed-meta {\r\n    font-size: 12px;\r\n    color: #6b7280;\r\n    margin-bottom: 6px;\r\n    display: block;\r\n  }\r\n  .extra-bed-toggle {\r\n    display: inline-flex;\r\n    align-items: center;\r\n    gap: 8px;\r\n    cursor: pointer;\r\n    font-size: 13px;\r\n    color: #374151;\r\n    user-select: none;\r\n  }\r\n  .extra-bed-toggle input[type=\"checkbox\"] {\r\n    width: 15px !important;\r\n    height: 15px !important;\r\n    accent-color: #25d366;\r\n    cursor: pointer;\r\n    margin: 0;\r\n  }\r\n  .extra-bed-qty {\r\n    margin-top: 6px;\r\n    display: none;\r\n  }\r\n  .extra-bed-qty.show {\r\n    display: block;\r\n  }\r\n  .total-box {\r\n    padding: 13px 16px;\r\n    margin: 16px 0;\r\n    font-weight: 700;\r\n    background: #f9fafb;\r\n    border: 1px solid #e5e7eb;\r\n    border-radius: 10px;\r\n    display: flex;\r\n    justify-content: space-between;\r\n    align-items: center;\r\n  }\r\n  .total-box div:first-child {\r\n    color: #374151;\r\n    font-size: 14px;\r\n  }\r\n  #totalPrice {\r\n    color: #111827;\r\n    font-size: 16px;\r\n  }\r\n  .btn-submit {\r\n    width: 100%;\r\n    padding: 12px;\r\n    background: #25d366;\r\n    color: #fff;\r\n    border: none;\r\n    border-radius: 8px;\r\n    font-size: 15px;\r\n    font-weight: 700;\r\n    cursor: pointer;\r\n    transition: background 0.2s;\r\n  }\r\n  .btn-submit:hover {\r\n    background: #1ebe5d;\r\n  }\r\n  .confirm-overlay {\r\n    display: none;\r\n    position: fixed;\r\n    inset: 0;\r\n    background: rgba(0, 0, 0, 0.5);\r\n    z-index: 200;\r\n    align-items: center;\r\n    justify-content: center;\r\n    padding: 16px;\r\n  }\r\n  .confirm-overlay.show {\r\n    display: flex;\r\n  }\r\n  .confirm-box {\r\n    background: #fff;\r\n    border-radius: 16px;\r\n    padding: 24px;\r\n    max-width: 420px;\r\n    width: 100%;\r\n  }\r\n  .confirm-title {\r\n    font-size: 16px;\r\n    font-weight: 700;\r\n    color: #111827;\r\n    margin-bottom: 4px;\r\n  }\r\n  .confirm-sub {\r\n    font-size: 13px;\r\n    color: #6b7280;\r\n    margin-bottom: 16px;\r\n  }\r\n  .confirm-row {\r\n    display: flex;\r\n    justify-content: space-between;\r\n    font-size: 13px;\r\n    padding: 6px 0;\r\n    border-bottom: 1px solid #f3f4f6;\r\n  }\r\n  .confirm-row:last-of-type {\r\n    border-bottom: none;\r\n  }\r\n  .confirm-row span:first-child {\r\n    color: #6b7280;\r\n  }\r\n  .confirm-row span:last-child {\r\n    font-weight: 600;\r\n    color: #111827;\r\n    text-align: right;\r\n    max-width: 60%;\r\n  }\r\n  .confirm-total {\r\n    display: flex;\r\n    justify-content: space-between;\r\n    font-size: 14px;\r\n    font-weight: 700;\r\n    padding: 12px 0 0;\r\n    margin-top: 8px;\r\n    border-top: 2px solid #e5e7eb;\r\n  }\r\n  .confirm-total span:last-child {\r\n    color: #25d366;\r\n  }\r\n  .confirm-actions {\r\n    display: flex;\r\n    gap: 10px;\r\n    margin-top: 18px;\r\n  }\r\n  .btn-edit {\r\n    flex: 1;\r\n    padding: 10px;\r\n    border: 1px solid #e5e7eb;\r\n    border-radius: 8px;\r\n    background: #fff;\r\n    color: #374151;\r\n    font-weight: 600;\r\n    cursor: pointer;\r\n    font-size: 13px;\r\n  }\r\n  .btn-send {\r\n    flex: 2;\r\n    padding: 10px;\r\n    background: #25d366;\r\n    color: #fff;\r\n    border: none;\r\n    border-radius: 8px;\r\n    font-weight: 600;\r\n    cursor: pointer;\r\n    font-size: 13px;\r\n  }\r\n  .btn-edit:hover {\r\n    background: #f3f4f6;\r\n  }\r\n  .btn-send:hover {\r\n    background: #1ebe5d;\r\n  }\r\n\r\n  \/* Package picker overlay *\/\r\n  .pkg-overlay {\r\n    display: none;\r\n    position: fixed;\r\n    inset: 0;\r\n    background: rgba(0, 0, 0, 0.45);\r\n    z-index: 100;\r\n    align-items: center;\r\n    justify-content: center;\r\n    padding: 16px;\r\n  }\r\n  .pkg-overlay.show {\r\n    display: flex;\r\n  }\r\n  .pkg-modal {\r\n    background: #fff;\r\n    border-radius: 16px;\r\n    width: 100%;\r\n    max-width: 480px;\r\n    padding: 28px 24px 24px;\r\n    position: relative;\r\n  }\r\n  .pkg-modal h2 {\r\n    font-size: 18px;\r\n    font-weight: 700;\r\n    color: #111827;\r\n    margin-bottom: 6px;\r\n  }\r\n  .pkg-modal p {\r\n    font-size: 13px;\r\n    color: #6b7280;\r\n    margin-bottom: 20px;\r\n    line-height: 1.5;\r\n  }\r\n  .pkg-card {\r\n    border: 1px solid #e5e7eb;\r\n    border-radius: 12px;\r\n    padding: 18px;\r\n    margin-bottom: 12px;\r\n    cursor: pointer;\r\n    transition:\r\n      border-color 0.2s,\r\n      background 0.2s;\r\n  }\r\n  .pkg-card:hover {\r\n    border-color: #25d366;\r\n    background: #f0fdf4;\r\n  }\r\n  .pkg-card:last-child {\r\n    margin-bottom: 0;\r\n  }\r\n  .pkg-card-title {\r\n    font-size: 15px;\r\n    font-weight: 700;\r\n    color: #111827;\r\n    margin-bottom: 4px;\r\n  }\r\n  .pkg-card-desc {\r\n    font-size: 13px;\r\n    color: #6b7280;\r\n    line-height: 1.5;\r\n  }\r\n  .pkg-badge {\r\n    display: inline-block;\r\n    padding: 2px 10px;\r\n    border-radius: 20px;\r\n    font-size: 11px;\r\n    font-weight: 700;\r\n    margin-bottom: 8px;\r\n  }\r\n  .pkg-badge-2d {\r\n    background: #e0f2fe;\r\n    color: #0369a1;\r\n  }\r\n  .pkg-badge-3d {\r\n    background: #dcfce7;\r\n    color: #15803d;\r\n  }\r\n  .pkg-back {\r\n    position: absolute;\r\n    top: 16px;\r\n    right: 18px;\r\n    background: none;\r\n    border: none;\r\n    font-size: 20px;\r\n    color: #9ca3af;\r\n    cursor: pointer;\r\n    line-height: 1;\r\n  }\r\n  .booking-pkg-badge {\r\n    display: inline-block;\r\n    padding: 3px 10px;\r\n    border-radius: 20px;\r\n    font-size: 12px;\r\n    font-weight: 700;\r\n    margin-bottom: 14px;\r\n  }\r\n\r\n  \/* Guest type badges *\/\r\n  .badge-adult {\r\n    display: inline-block;\r\n    padding: 2px 8px;\r\n    border-radius: 20px;\r\n    font-size: 11px;\r\n    font-weight: 700;\r\n    background: #dbeafe;\r\n    color: #1d4ed8;\r\n    vertical-align: middle;\r\n  }\r\n  .badge-child {\r\n    display: inline-block;\r\n    padding: 2px 8px;\r\n    border-radius: 20px;\r\n    font-size: 11px;\r\n    font-weight: 700;\r\n    background: #fef9c3;\r\n    color: #92400e;\r\n    vertical-align: middle;\r\n  }\r\n  .pax-label-row {\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 6px;\r\n    margin-bottom: 4px;\r\n    font-size: 12px;\r\n    color: #6b7280;\r\n  }\r\n<\/style>\r\n\r\n<div class=\"landing\">\r\n  <button class=\"btn-book\" id=\"openPkg\">Book via WhatsApp<\/button>\r\n<\/div>\r\n\r\n<!-- Package picker -->\r\n<div class=\"pkg-overlay\" id=\"pkgOverlay\">\r\n  <div class=\"pkg-modal\">\r\n    <button class=\"pkg-back\" id=\"closePkg\">&#x2715;<\/button>\r\n    <h2>Choose Your Package<\/h2>\r\n    <p>Select the trip duration that works best for you.<\/p>\r\n    <div class=\"pkg-card\" id=\"pkg3d2n\">\r\n      <span class=\"pkg-badge pkg-badge-3d\">Open Trip<\/span>\r\n      <div class=\"pkg-card-title\">3 Days 2 Nights<\/div>\r\n      <div class=\"pkg-card-desc\">Full Komodo experience with extra island stops.<\/div>\r\n    <\/div>\r\n    <div class=\"pkg-card\" id=\"pkgPrivate\">\r\n      <span class=\"pkg-badge pkg-badge-2d\">Private Trip<\/span>\r\n      <div class=\"pkg-card-title\">Private Charter<\/div>\r\n      <div class=\"pkg-card-desc\">Charter the whole boat \u2014 choose your trip duration.<\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<!-- Booking form -->\r\n<div class=\"overlay\" id=\"bookingOverlay\">\r\n  <div class=\"modal\">\r\n    <button class=\"modal-close\" id=\"closeBooking\">&#x2715;<\/button>\r\n    <h2 id=\"modalTitle\">Book Cabin<\/h2>\r\n    <div id=\"modalBadge\"><\/div>\r\n    <p class=\"modal-desc\">Please fill in the form below to request your booking. Our team will confirm availability via WhatsApp. <span id=\"extraBedNote\">Extra bed is available for children aged 12 and under.<\/span><\/p>\r\n    <form id=\"bookingForm\">\r\n      <div class=\"form-group\">\r\n        <label for=\"bookingName\">Name<\/label>\r\n        <input id=\"bookingName\" type=\"text\" name=\"name\" placeholder=\"Enter your name\" required \/>\r\n      <\/div>\r\n      <div class=\"form-group\">\r\n        <label for=\"bookingDate\">Departure Date <span id=\"availableDaysLabel\" style=\"font-weight: 400; color: #6b7280; font-size: 12px\"><\/span><\/label>\r\n        <input id=\"bookingDate\" type=\"date\" name=\"date\" required \/>\r\n      <\/div>\r\n      <div class=\"form-group\">\r\n        <label id=\"cabinLabel\">Select Cabin & Number of Guests<\/label>\r\n        <div id=\"cabinList\"><\/div>\r\n      <\/div>\r\n      <div class=\"total-box\">\r\n        <div>Total Price<\/div>\r\n        <span id=\"totalPrice\">IDR 0<\/span>\r\n      <\/div>\r\n      <button type=\"submit\" class=\"btn-submit\">Chat via WhatsApp<\/button>\r\n    <\/form>\r\n  <\/div>\r\n<\/div>\r\n\r\n<!-- Confirm overlay -->\r\n<div class=\"confirm-overlay\" id=\"confirmOverlay\">\r\n  <div class=\"confirm-box\">\r\n    <div class=\"confirm-title\">Confirm Booking<\/div>\r\n    <div class=\"confirm-sub\">Please review your booking details before proceeding.<\/div>\r\n    <div id=\"confirmContent\"><\/div>\r\n    <div class=\"confirm-actions\">\r\n      <button class=\"btn-edit\" id=\"btnEdit\">Edit<\/button>\r\n      <button class=\"btn-send\" id=\"btnSend\">Send via WhatsApp<\/button>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<script>\r\n  const whatsappNumber = \"6281944221717\";\r\n\r\n  const boatName = \"Semesta Voyages\";\r\n\r\n  const packages = {\r\n    \"3d2n\": {\r\n      label: \"3D2N\",\r\n      badgeClass: \"pkg-badge-3d\",\r\n      availableDays: [1, 5],\r\n      cabins: [\r\n        { name: \"MOON (Owner's Suite)\", price: 13000000, max: 2, extraBed: { allowed: true, price: 6000000, maxBeds: 1 } },\r\n        { name: \"MARS (VIP Ocean Suite)\", price: 12000000, max: 2, extraBed: { allowed: false } },\r\n        { name: \"EARTH (Master Balcony Suite)\", price: 11000000, max: 2, extraBed: { allowed: false } },\r\n        { name: \"SUN (Master Ocean Suite)\", price: 9000000, max: 2, extraBed: { allowed: false } },\r\n        { name: \"PLUTO & VENUS (Deluxe Suite)\", price: 8000000, max: 2, extraBed: { allowed: false } },\r\n        { name: \"JUPITER & MERCURY (Superior Suite)\", price: 6000000, max: 2, extraBed: { allowed: false } },\r\n      ],\r\n    },\r\n    private: {\r\n      label: \"Private Charter\",\r\n      badgeClass: \"pkg-badge-2d\",\r\n      availableDays: [0, 1, 2, 3, 4, 5, 6],\r\n      durations: [\r\n        { key: \"2d1n\", label: \"2D1N\", price: 83000000, additionalPerPax: 4000000, capacity: 12 },\r\n        { key: \"3d2n\", label: \"3D2N\", price: 106000000, additionalPerPax: 5000000, capacity: 12 },\r\n        { key: \"4d3n\", label: \"4D3N\", price: 153000000, additionalPerPax: 6000000, capacity: 12 },\r\n      ],\r\n    },\r\n  };\r\n\r\n  let selectedPkg = null;\r\n\r\n  const pkgOverlay = document.getElementById(\"pkgOverlay\");\r\n  const bookingOverlay = document.getElementById(\"bookingOverlay\");\r\n  const confirmOverlay = document.getElementById(\"confirmOverlay\");\r\n  const cabinList = document.getElementById(\"cabinList\");\r\n  const totalEl = document.getElementById(\"totalPrice\");\r\n  const bookingForm = document.getElementById(\"bookingForm\");\r\n  const dateInput = bookingForm.elements[\"date\"];\r\n  const modalTitle = document.getElementById(\"modalTitle\");\r\n  const modalBadge = document.getElementById(\"modalBadge\");\r\n  let pendingUrl = \"\";\r\n\r\n  function formatRupiah(n) {\r\n    return \"IDR \" + Number(n).toLocaleString(\"id-ID\");\r\n  }\r\n  function formatDatePretty(d) {\r\n    return new Date(d).toLocaleDateString(\"en-GB\", { day: \"numeric\", month: \"long\", year: \"numeric\" });\r\n  }\r\n  function getDayName(d) {\r\n    return [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"][d];\r\n  }\r\n  function isAllowedDate(ds) {\r\n    if (!ds || !selectedPkg) return false;\r\n    return selectedPkg.availableDays.includes(new Date(ds).getDay());\r\n  }\r\n  function getAllowedDaysText() {\r\n    if (!selectedPkg) return \"\";\r\n    const days = selectedPkg.availableDays.slice().sort();\r\n    \/\/ if package is available every day, show shorthand\r\n    if (days.length === 7 || (days.length === 7 && days.every((v, i) => v === i))) return \"Every day\";\r\n    \/\/ otherwise show day names\r\n    return selectedPkg.availableDays.map(getDayName).join(\", \");\r\n  }\r\n  function setMinDateToday() {\r\n    const t = new Date();\r\n    dateInput.min = `${t.getFullYear()}-${String(t.getMonth() + 1).padStart(2, \"0\")}-${String(t.getDate()).padStart(2, \"0\")}`;\r\n  }\r\n\r\n  function openPackagePicker() {\r\n    pkgOverlay.classList.add(\"show\");\r\n  }\r\n  function closePackagePicker() {\r\n    pkgOverlay.classList.remove(\"show\");\r\n  }\r\n\r\n  function openBookingForm(pkgKey) {\r\n    selectedPkg = packages[pkgKey];\r\n    dateInput.value = \"\";\r\n    if (selectedPkg && selectedPkg.durations) modalTitle.textContent = selectedPkg.label;\r\n    else modalTitle.textContent = \"Book Cabin \u2014 \" + (pkgKey === \"3d2n\" ? \"3d2n\" : selectedPkg.label);\r\n    modalBadge.innerHTML = `<span class=\"booking-pkg-badge ${selectedPkg.badgeClass}\">${selectedPkg.label} \u00b7 ${boatName}<\/span>`;\r\n    document.getElementById(\"availableDaysLabel\").textContent = \"(\" + getAllowedDaysText() + \")\";\r\n    const cabinLabelEl = document.getElementById(\"cabinLabel\");\r\n    if (cabinLabelEl) {\r\n      if (selectedPkg && selectedPkg.durations) {\r\n        cabinLabelEl.style.display = \"none\";\r\n      } else {\r\n        cabinLabelEl.style.display = \"block\";\r\n      }\r\n    }\r\n    const extraBedNote = document.getElementById(\"extraBedNote\");\r\n    if (extraBedNote) {\r\n      if (selectedPkg && selectedPkg.durations) extraBedNote.style.display = \"none\";\r\n      else extraBedNote.style.display = \"inline\";\r\n    }\r\n    closePackagePicker();\r\n    renderCabins();\r\n    bookingOverlay.classList.add(\"show\");\r\n  }\r\n\r\n  function updateTotal() {\r\n    \/\/ If package uses durations (private trip), show selected duration price plus additional pax\r\n    if (selectedPkg && selectedPkg.durations) {\r\n      const sel = document.querySelector(\".private-duration:checked\");\r\n      const addInput = document.getElementById(\"privateAddCount\");\r\n      const addCount = addInput ? Number(addInput.value) : 0;\r\n      const base = sel ? Number(sel.dataset.price) : 0;\r\n      const addPer = sel ? Number(sel.dataset.add || 0) : 0;\r\n      const total = base + addCount * addPer;\r\n      totalEl.textContent = formatRupiah(total);\r\n      return;\r\n    }\r\n    let total = 0;\r\n    document.querySelectorAll(\".cabin-check\").forEach((check) => {\r\n      if (check.checked) {\r\n        const card = check.closest(\".cabin-card\");\r\n        total += Number(check.dataset.price) * (Number(card.querySelector(\".pax\").value) || 0);\r\n        const ebCheck = card.querySelector(\".eb-check\");\r\n        if (ebCheck && ebCheck.checked) total += Number(check.dataset.ebPrice) * (Number(card.querySelector(\".eb-qty\")?.value) || 1);\r\n      }\r\n    });\r\n    totalEl.textContent = formatRupiah(total);\r\n  }\r\n\r\n  function renderCabins() {\r\n    cabinList.innerHTML = \"\";\r\n    \/\/ support packages that define durations (private trip)\r\n    if (selectedPkg.durations) {\r\n      const card = document.createElement(\"div\");\r\n      card.className = \"cabin-card\";\r\n      const capacity = selectedPkg.durations[0] ? selectedPkg.durations[0].capacity : 12;\r\n      let inner = `<div class=\"cabin-option\"><div><span class=\"cabin-name\">Private Trip<\/span><span class=\"cabin-meta\">Choose your charter duration<\/span><\/div><\/div>`;\r\n      inner += `<div style=\"margin-top:10px;font-size:13px;color:#6b7280;\">Price shown is for 1-${capacity} pax. Additional pax will be charged per person as listed below.<\/div><div style=\"margin-top:10px\">`;\r\n      selectedPkg.durations.forEach((d) => {\r\n        inner += `<label style=\"display:block;margin-bottom:8px;\"><input type=\"radio\" name=\"privateDuration\" class=\"private-duration\" data-price=\"${d.price}\" data-add=\"${d.additionalPerPax}\" value=\"${d.key}\"> ${d.label} \u2014 ${formatRupiah(d.price)} <span style=\"color:#6b7280;font-size:13px\">(Additional per pax: ${formatRupiah(d.additionalPerPax)})<\/span><\/label>`;\r\n      });\r\n      inner += `<\/div>`;\r\n      inner += `<div id=\"privateAddWrap\" style=\"margin-top:12px;display:none;\">\r\n        <div style=\"font-weight:600;margin-bottom:6px;\">Additional Pax<\/div>\r\n        <div class=\"pax-stepper\">\r\n          <button type=\"button\" class=\"pax-btn add-minus\">-<\/button>\r\n          <input type=\"text\" id=\"privateAddCount\" class=\"pax-number\" value=\"0\" readonly>\r\n          <button type=\"button\" class=\"pax-btn add-plus\">+<\/button>\r\n        <\/div>\r\n        <div style=\"font-size:12px;color:#6b7280;margin-top:6px;\">Additional pax charged per person as listed above.<\/div>\r\n      <\/div>`;\r\n      card.innerHTML = inner;\r\n      cabinList.appendChild(card);\r\n      \/\/ listeners\r\n      const radios = card.querySelectorAll(\".private-duration\");\r\n      const addWrap = card.querySelector(\"#privateAddWrap\");\r\n      const addInput = card.querySelector(\"#privateAddCount\");\r\n      radios.forEach((r) => {\r\n        r.addEventListener(\"change\", function () {\r\n          addWrap.style.display = \"block\";\r\n          addInput.value = 0;\r\n          updateTotal();\r\n        });\r\n      });\r\n      const plus = card.querySelector(\".add-plus\");\r\n      const minus = card.querySelector(\".add-minus\");\r\n      plus.addEventListener(\"click\", function () {\r\n        let v = Number(addInput.value) || 0;\r\n        if (v < 100) addInput.value = v + 1;\r\n        updateTotal();\r\n      });\r\n      minus.addEventListener(\"click\", function () {\r\n        let v = Number(addInput.value) || 0;\r\n        if (v > 0) addInput.value = v - 1;\r\n        updateTotal();\r\n      });\r\n      updateTotal();\r\n      return;\r\n    }\r\n    selectedPkg.cabins.forEach((cabin) => {\r\n      const card = document.createElement(\"div\");\r\n      card.className = \"cabin-card\";\r\n      const ebAllowed = cabin.extraBed && cabin.extraBed.allowed;\r\n      const ebPrice = ebAllowed ? cabin.extraBed.price : 0;\r\n      const ebMax = ebAllowed ? cabin.extraBed.maxBeds : 0;\r\n      card.innerHTML = `\r\n    <label class=\"cabin-option\">\r\n      <div><span class=\"cabin-name\">${cabin.name}<\/span><span class=\"cabin-meta\">Max ${cabin.max} Pax \u2022 ${formatRupiah(cabin.price)} \/ pax${ebAllowed ? \" \u2022 Extra bed available\" : \"\"}<\/span><\/div>\r\n    <\/label>\r\n    <div class=\"cabin-check-wrap\">\r\n      <input type=\"checkbox\" class=\"cabin-check\" data-name=\"${cabin.name}\" data-price=\"${cabin.price}\" data-max=\"${cabin.max}\" data-eb-price=\"${ebPrice}\" data-eb-max=\"${ebMax}\">\r\n    <\/div>\r\n    <div class=\"pax-input\">\r\n      <div class=\"pax-label-row\">\r\n        Number of Guests\r\n        <span class=\"badge-adult\">Adults<\/span>\r\n      <\/div>\r\n      <div class=\"pax-stepper\">\r\n        <button type=\"button\" class=\"pax-btn minus\">-<\/button>\r\n        <input type=\"text\" class=\"pax pax-number\" value=\"1\" readonly>\r\n        <button type=\"button\" class=\"pax-btn plus\">+<\/button>\r\n      <\/div>\r\n      <div class=\"field-warning\">Exceeds cabin capacity<\/div>\r\n      ${\r\n        ebAllowed\r\n          ? `\r\n      <div class=\"extra-bed-section show\">\r\n        <span class=\"extra-bed-label\">\r\n          Extra Bed\r\n          <span class=\"badge-child\">Children &le; 12 yrs<\/span>\r\n        <\/span>\r\n        <span class=\"extra-bed-meta\">${formatRupiah(ebPrice)} \/ bed \u2022 Max ${ebMax} bed(s)<\/span>\r\n        <label class=\"extra-bed-toggle\">\r\n          <input type=\"checkbox\" class=\"eb-check\"> Add extra bed for child\r\n        <\/label>\r\n        <div class=\"extra-bed-qty\">\r\n          <div class=\"pax-label-row\" style=\"margin-top:6px;\">\r\n            Number of Extra Beds\r\n            <span class=\"badge-child\">Children<\/span>\r\n          <\/div>\r\n          <div class=\"pax-stepper\">\r\n            <button type=\"button\" class=\"pax-btn eb-minus\">-<\/button>\r\n            <input type=\"text\" class=\"eb-qty pax-number\" value=\"1\" readonly>\r\n            <button type=\"button\" class=\"pax-btn eb-plus\">+<\/button>\r\n          <\/div>\r\n          <div class=\"eb-warning field-warning\">Exceeds maximum extra beds<\/div>\r\n        <\/div>\r\n      <\/div>`\r\n          : \"\"\r\n      }\r\n    <\/div>`;\r\n      cabinList.appendChild(card);\r\n    });\r\n    bindCabinEvents();\r\n    updateTotal();\r\n  }\r\n\r\n  function bindCabinEvents() {\r\n    document.querySelectorAll(\".cabin-check\").forEach((check) => {\r\n      check.addEventListener(\"change\", function () {\r\n        const card = this.closest(\".cabin-card\");\r\n        const paxBox = card.querySelector(\".pax-input\");\r\n        const paxInput = card.querySelector(\".pax\");\r\n        const ebCheck = card.querySelector(\".eb-check\");\r\n        const ebQtyBox = card.querySelector(\".extra-bed-qty\");\r\n        const ebQty = card.querySelector(\".eb-qty\");\r\n        if (this.checked) {\r\n          card.classList.add(\"active\");\r\n          paxBox.classList.add(\"show\");\r\n          if (Number(paxInput.value) < 1) paxInput.value = 1;\r\n        } else {\r\n          card.classList.remove(\"active\");\r\n          paxBox.classList.remove(\"show\");\r\n          paxInput.value = 1;\r\n          if (ebCheck) {\r\n            ebCheck.checked = false;\r\n            if (ebQtyBox) ebQtyBox.classList.remove(\"show\");\r\n            if (ebQty) ebQty.value = 1;\r\n          }\r\n        }\r\n        updateTotal();\r\n      });\r\n    });\r\n    document.querySelectorAll(\".plus\").forEach((btn) => {\r\n      btn.addEventListener(\"click\", function () {\r\n        const card = this.closest(\".cabin-card\");\r\n        const check = card.querySelector(\".cabin-check\");\r\n        const input = card.querySelector(\".pax\");\r\n        const warning = card.querySelector(\".field-warning\");\r\n        const max = Number(check.dataset.max);\r\n        let val = Number(input.value) || 1;\r\n        if (!check.checked) {\r\n          check.checked = true;\r\n          check.dispatchEvent(new Event(\"change\"));\r\n          val = Number(input.value) || 1;\r\n        }\r\n        if (val < max) {\r\n          input.value = val + 1;\r\n          warning.style.display = \"none\";\r\n        } else {\r\n          warning.style.display = \"block\";\r\n        }\r\n        updateTotal();\r\n      });\r\n    });\r\n    document.querySelectorAll(\".minus\").forEach((btn) => {\r\n      btn.addEventListener(\"click\", function () {\r\n        const card = this.closest(\".cabin-card\");\r\n        const check = card.querySelector(\".cabin-check\");\r\n        const input = card.querySelector(\".pax\");\r\n        const warning = card.querySelector(\".field-warning\");\r\n        let val = Number(input.value) || 1;\r\n        if (!check.checked) return;\r\n        if (val > 1) {\r\n          input.value = val - 1;\r\n          warning.style.display = \"none\";\r\n        } else {\r\n          check.checked = false;\r\n          check.dispatchEvent(new Event(\"change\"));\r\n        }\r\n        updateTotal();\r\n      });\r\n    });\r\n    document.querySelectorAll(\".cabin-option\").forEach((option) => {\r\n      option.addEventListener(\"click\", function (e) {\r\n        if (e.target.closest(\".pax-stepper\") || e.target.closest(\".extra-bed-section\")) return;\r\n        const card = this.closest(\".cabin-card\");\r\n        const check = card.querySelector(\".cabin-check\");\r\n        check.checked = !check.checked;\r\n        check.dispatchEvent(new Event(\"change\"));\r\n      });\r\n    });\r\n    document.querySelectorAll(\".eb-check\").forEach((ebCheck) => {\r\n      ebCheck.addEventListener(\"change\", function () {\r\n        const card = this.closest(\".cabin-card\");\r\n        const ebQtyBox = card.querySelector(\".extra-bed-qty\");\r\n        const ebQty = card.querySelector(\".eb-qty\");\r\n        if (this.checked) {\r\n          ebQtyBox.classList.add(\"show\");\r\n          if (Number(ebQty.value) < 1) ebQty.value = 1;\r\n        } else {\r\n          ebQtyBox.classList.remove(\"show\");\r\n          ebQty.value = 1;\r\n        }\r\n        updateTotal();\r\n      });\r\n    });\r\n    document.querySelectorAll(\".eb-plus\").forEach((btn) => {\r\n      btn.addEventListener(\"click\", function () {\r\n        const card = this.closest(\".cabin-card\");\r\n        const check = card.querySelector(\".cabin-check\");\r\n        const ebMax = Number(check.dataset.ebMax);\r\n        const ebQty = card.querySelector(\".eb-qty\");\r\n        const ebWarning = card.querySelector(\".eb-warning\");\r\n        let val = Number(ebQty.value) || 1;\r\n        if (val < ebMax) {\r\n          ebQty.value = val + 1;\r\n          ebWarning.style.display = \"none\";\r\n        } else {\r\n          ebWarning.style.display = \"block\";\r\n        }\r\n        updateTotal();\r\n      });\r\n    });\r\n    document.querySelectorAll(\".eb-minus\").forEach((btn) => {\r\n      btn.addEventListener(\"click\", function () {\r\n        const card = this.closest(\".cabin-card\");\r\n        const ebQty = card.querySelector(\".eb-qty\");\r\n        const ebCheck = card.querySelector(\".eb-check\");\r\n        const ebWarning = card.querySelector(\".eb-warning\");\r\n        const ebQtyBox = card.querySelector(\".extra-bed-qty\");\r\n        let val = Number(ebQty.value) || 1;\r\n        if (val > 1) {\r\n          ebQty.value = val - 1;\r\n          ebWarning.style.display = \"none\";\r\n        } else {\r\n          ebCheck.checked = false;\r\n          ebQtyBox.classList.remove(\"show\");\r\n          ebQty.value = 1;\r\n        }\r\n        updateTotal();\r\n      });\r\n    });\r\n  }\r\n\r\n  dateInput.addEventListener(\"change\", function () {\r\n    if (!this.value) return;\r\n    if (!isAllowedDate(this.value)) {\r\n      alert(\"This Trip is only available on \" + getAllowedDaysText() + \".\");\r\n      this.value = \"\";\r\n    }\r\n  });\r\n\r\n  document.getElementById(\"openPkg\").addEventListener(\"click\", openPackagePicker);\r\n  document.getElementById(\"closePkg\").addEventListener(\"click\", closePackagePicker);\r\n  pkgOverlay.addEventListener(\"click\", (e) => {\r\n    if (e.target === pkgOverlay) closePackagePicker();\r\n  });\r\n\r\n  document.getElementById(\"pkg3d2n\").addEventListener(\"click\", () => openBookingForm(\"3d2n\"));\r\n  document.getElementById(\"pkgPrivate\").addEventListener(\"click\", () => openBookingForm(\"private\"));\r\n\r\n  document.getElementById(\"closeBooking\").addEventListener(\"click\", function () {\r\n    bookingOverlay.classList.remove(\"show\");\r\n    pkgOverlay.classList.add(\"show\");\r\n  });\r\n  bookingOverlay.addEventListener(\"click\", (e) => {\r\n    if (e.target === bookingOverlay) bookingOverlay.classList.remove(\"show\");\r\n  });\r\n\r\n  bookingForm.addEventListener(\"submit\", function (e) {\r\n    e.preventDefault();\r\n    const name = this.elements[\"name\"].value.trim();\r\n    const date = this.elements[\"date\"].value;\r\n    if (name.length < 2) {\r\n      alert(\"Please enter a valid full name.\");\r\n      this.elements[\"name\"].focus();\r\n      return;\r\n    }\r\n    if (!date) {\r\n      alert(\"Please choose your departure date.\");\r\n      dateInput.focus();\r\n      return;\r\n    }\r\n    if (!isAllowedDate(date)) {\r\n      alert(\"Please choose a valid departure day. Available: \" + getAllowedDaysText() + \".\");\r\n      return;\r\n    }\r\n    let total = 0,\r\n      hasSelection = false;\r\n    const selections = [];\r\n    const lines = [\r\n      \"Hi Komodo Tour Indonesia\",\r\n      \"\",\r\n      \"I'm \" + name + \".\",\r\n      \"\",\r\n      \"I'm interested in booking the *\" + boatName + \" \" + selectedPkg.label + \"* trip.\",\r\n      \"Departure Date: *\" + formatDatePretty(date) + \"*.\",\r\n      \"Could you please confirm availability?\",\r\n      \"\",\r\n      \"Here are my selections:\",\r\n      \"\",\r\n    ];\r\n    \/\/ handle private trip durations\r\n    if (selectedPkg && selectedPkg.durations) {\r\n      const sel = document.querySelector(\".private-duration:checked\");\r\n      if (!sel) {\r\n        alert(\"Please choose a duration for Private Trip.\");\r\n        return;\r\n      }\r\n      const durKey = sel.value;\r\n      const dur = selectedPkg.durations.find((d) => d.key === durKey) || { label: durKey, price: Number(sel.dataset.price) };\r\n      const price = Number(sel.dataset.price) || dur.price || 0;\r\n      const addCount = Number(document.getElementById(\"privateAddCount\")?.value) || 0;\r\n      const addPer = Number(sel.dataset.add || 0);\r\n      const totalPrice = price + addCount * addPer;\r\n      \/\/ Build WhatsApp message (omit price per requirement), include duration and additional pax\r\n      const waLines = lines.concat([\"*Private Trip* - \" + dur.label, addCount > 0 ? \"Additional pax: \" + addCount + \" person(s)\" : \"\"]).filter(Boolean);\r\n      pendingUrl = \"https:\/\/wa.me\/\" + whatsappNumber + \"?text=\" + encodeURIComponent(waLines.join(\"\\n\"));\r\n      let html = `<div class=\"confirm-row\"><span>Name<\/span><span>${name}<\/span><\/div>`;\r\n      html += `<div class=\"confirm-row\"><span>Package<\/span><span>${boatName} ${selectedPkg.label}<\/span><\/div>`;\r\n      html += `<div class=\"confirm-row\"><span>Duration<\/span><span>${dur.label}<\/span><\/div>`;\r\n      if (addCount > 0) html += `<div class=\"confirm-row\"><span>Additional pax<\/span><span>${addCount} person(s) \u2014 ${formatRupiah(addCount * addPer)}<\/span><\/div>`;\r\n      html += `<div class=\"confirm-total\"><span>Total<\/span><span>${formatRupiah(totalPrice)}<\/span><\/div>`;\r\n      document.getElementById(\"confirmContent\").innerHTML = html;\r\n      bookingOverlay.classList.remove(\"show\");\r\n      confirmOverlay.classList.add(\"show\");\r\n      return;\r\n    }\r\n    document.querySelectorAll(\".cabin-check\").forEach((check) => {\r\n      if (check.checked) {\r\n        const card = check.closest(\".cabin-card\");\r\n        const pax = Number(card.querySelector(\".pax\").value) || 0;\r\n        if (pax < 1) return;\r\n        hasSelection = true;\r\n        const cabinTotal = Number(check.dataset.price) * pax;\r\n        total += cabinTotal;\r\n        let ebQtyVal = 0,\r\n          ebTotal = 0;\r\n        const ebCheck = card.querySelector(\".eb-check\");\r\n        if (ebCheck && ebCheck.checked) {\r\n          ebQtyVal = Number(card.querySelector(\".eb-qty\")?.value) || 1;\r\n          ebTotal = Number(check.dataset.ebPrice) * ebQtyVal;\r\n          total += ebTotal;\r\n        }\r\n        selections.push({ name: check.dataset.name, pax, cabinTotal, ebQtyVal, ebTotal });\r\n        lines.push(\"*\" + check.dataset.name + \"*\", \"- Adults: \" + pax + \" pax\");\r\n        if (ebQtyVal > 0) lines.push(\"- Extra bed (children): \" + ebQtyVal + \" bed(s)\");\r\n        lines.push(\"\");\r\n      }\r\n    });\r\n    if (!hasSelection) {\r\n      alert(\"Please select at least one cabin.\");\r\n      return;\r\n    }\r\n    pendingUrl = \"https:\/\/wa.me\/\" + whatsappNumber + \"?text=\" + encodeURIComponent(lines.join(\"\\n\"));\r\n    let html = `<div class=\"confirm-row\"><span>Name<\/span><span>${name}<\/span><\/div>`;\r\n    html += `<div class=\"confirm-row\"><span>Package<\/span><span>${boatName} ${selectedPkg.label}<\/span><\/div>`;\r\n    html += `<div class=\"confirm-row\"><span>Departure<\/span><span>${formatDatePretty(date)}<\/span><\/div>`;\r\n    selections.forEach((s) => {\r\n      html += `<div class=\"confirm-row\"><span>${s.name}<\/span><span>${s.pax} adults \u2014 ${formatRupiah(s.cabinTotal)}<\/span><\/div>`;\r\n      if (s.ebQtyVal > 0) html += `<div class=\"confirm-row\"><span style=\"padding-left:10px\">+ Extra bed (children)<\/span><span>${s.ebQtyVal} bed \u2014 ${formatRupiah(s.ebTotal)}<\/span><\/div>`;\r\n    });\r\n    html += `<div class=\"confirm-total\"><span>Total<\/span><span>${formatRupiah(total)}<\/span><\/div>`;\r\n    document.getElementById(\"confirmContent\").innerHTML = html;\r\n    bookingOverlay.classList.remove(\"show\");\r\n    confirmOverlay.classList.add(\"show\");\r\n  });\r\n\r\n  document.getElementById(\"btnEdit\").addEventListener(\"click\", function () {\r\n    confirmOverlay.classList.remove(\"show\");\r\n    bookingOverlay.classList.add(\"show\");\r\n  });\r\n  document.getElementById(\"btnSend\").addEventListener(\"click\", function () {\r\n    confirmOverlay.classList.remove(\"show\");\r\n    window.open(pendingUrl, \"_blank\");\r\n    bookingForm.reset();\r\n    renderCabins();\r\n    updateTotal();\r\n  });\r\n  confirmOverlay.addEventListener(\"click\", (e) => {\r\n    if (e.target === confirmOverlay) confirmOverlay.classList.remove(\"show\");\r\n  });\r\n\r\n  setMinDateToday();\r\n<\/script>\r\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\t\t<\/div>\n\t\t","protected":false},"featured_media":10916,"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":"","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"default","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":""}}},"tour-package":[372,374],"tour-type":[365],"boat-category":[369],"trip-duration":[375],"class_list":["post-10609","boat-type","type-boat-type","status-publish","has-post-thumbnail","hentry","tour-package-komodo-tour-from-lombok","tour-package-komodo-tour-labuan-bajo-to-lombok","tour-type-open-trip","boat-category-luxury","trip-duration-4d3n"],"_links":{"self":[{"href":"https:\/\/komodoislandtour.id\/id\/wp-json\/wp\/v2\/boat-type\/10609","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/komodoislandtour.id\/id\/wp-json\/wp\/v2\/boat-type"}],"about":[{"href":"https:\/\/komodoislandtour.id\/id\/wp-json\/wp\/v2\/types\/boat-type"}],"version-history":[{"count":14,"href":"https:\/\/komodoislandtour.id\/id\/wp-json\/wp\/v2\/boat-type\/10609\/revisions"}],"predecessor-version":[{"id":11078,"href":"https:\/\/komodoislandtour.id\/id\/wp-json\/wp\/v2\/boat-type\/10609\/revisions\/11078"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/komodoislandtour.id\/id\/wp-json\/wp\/v2\/media\/10916"}],"wp:attachment":[{"href":"https:\/\/komodoislandtour.id\/id\/wp-json\/wp\/v2\/media?parent=10609"}],"wp:term":[{"taxonomy":"tour-package","embeddable":true,"href":"https:\/\/komodoislandtour.id\/id\/wp-json\/wp\/v2\/tour-package?post=10609"},{"taxonomy":"tour-type","embeddable":true,"href":"https:\/\/komodoislandtour.id\/id\/wp-json\/wp\/v2\/tour-type?post=10609"},{"taxonomy":"boat-category","embeddable":true,"href":"https:\/\/komodoislandtour.id\/id\/wp-json\/wp\/v2\/boat-category?post=10609"},{"taxonomy":"trip-duration","embeddable":true,"href":"https:\/\/komodoislandtour.id\/id\/wp-json\/wp\/v2\/trip-duration?post=10609"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}