{"id":2035,"date":"2026-08-07T21:16:15","date_gmt":"2026-08-08T01:16:15","guid":{"rendered":"https:\/\/ectransfers.com\/nhmadison\/?page_id=2035"},"modified":"2026-08-07T21:52:08","modified_gmt":"2026-08-08T01:52:08","slug":"book-lobby","status":"publish","type":"page","link":"https:\/\/ectransfers.com\/nhmadison\/book-lobby\/","title":{"rendered":"Book Lobby"},"content":{"rendered":"\n<div id=\"ec-vp\">\n<span class=\"ecvp-h1\">EC Transfers<\/span>\n<span class=\"ecvp-subtitle\">Choose Your Vehicle<\/span>\n\n<div class=\"ecvp-vehicles-row\">\n<button type=\"button\" class=\"ecvp-vehicle-card\" data-vehicle=\"sedan\" data-label=\"Sedan\">\n<span class=\"ecvp-label\">Sedan<\/span>\n<img decoding=\"async\" src=\"https:\/\/ectransfers.com\/nhmadison\/wp-content\/uploads\/2026\/06\/Sedan.webp\" alt=\"Sedan\" loading=\"lazy\">\n<span class=\"ecvp-specs\">\n<span class=\"ecvp-spec-item\"><svg width=\"17\" height=\"17\" fill=\"none\" stroke=\"#8a9bb5\" stroke-width=\"1.8\" viewBox=\"0 0 24 24\"><path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"><\/path><circle cx=\"9\" cy=\"7\" r=\"4\"><\/circle><path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"><\/path><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"><\/path><\/svg>3<\/span>\n<span class=\"ecvp-spec-item\"><svg width=\"17\" height=\"17\" fill=\"none\" stroke=\"#8a9bb5\" stroke-width=\"1.8\" viewBox=\"0 0 24 24\"><rect x=\"2\" y=\"7\" width=\"20\" height=\"13\" rx=\"2\"><\/rect><path d=\"M16 7V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2\"><\/path><\/svg>3<\/span>\n<\/span>\n<\/button>\n<button type=\"button\" class=\"ecvp-vehicle-card\" data-vehicle=\"minisuv\" data-label=\"Mini Suv\">\n<span class=\"ecvp-label\">Mini Suv<\/span>\n<img decoding=\"async\" src=\"https:\/\/ectransfers.com\/nhmadison\/wp-content\/uploads\/2026\/06\/Small_Suv.webp\" alt=\"Mini Suv\" loading=\"lazy\">\n<span class=\"ecvp-specs\">\n<span class=\"ecvp-spec-item\"><svg width=\"17\" height=\"17\" fill=\"none\" stroke=\"#8a9bb5\" stroke-width=\"1.8\" viewBox=\"0 0 24 24\"><path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"><\/path><circle cx=\"9\" cy=\"7\" r=\"4\"><\/circle><path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"><\/path><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"><\/path><\/svg>4<\/span>\n<span class=\"ecvp-spec-item\"><svg width=\"17\" height=\"17\" fill=\"none\" stroke=\"#8a9bb5\" stroke-width=\"1.8\" viewBox=\"0 0 24 24\"><rect x=\"2\" y=\"7\" width=\"20\" height=\"13\" rx=\"2\"><\/rect><path d=\"M16 7V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2\"><\/path><\/svg>4<\/span>\n<\/span>\n<\/button>\n<button type=\"button\" class=\"ecvp-vehicle-card\" data-vehicle=\"regsuv\" data-label=\"Regular Suv\">\n<span class=\"ecvp-label\">Regular Suv<\/span>\n<img decoding=\"async\" src=\"https:\/\/ectransfers.com\/nhmadison\/wp-content\/uploads\/2026\/06\/Regular_Suv.webp\" alt=\"Regular Suv\" loading=\"lazy\">\n<span class=\"ecvp-specs\">\n<span class=\"ecvp-spec-item\"><svg width=\"17\" height=\"17\" fill=\"none\" stroke=\"#8a9bb5\" stroke-width=\"1.8\" viewBox=\"0 0 24 24\"><path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"><\/path><circle cx=\"9\" cy=\"7\" r=\"4\"><\/circle><path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"><\/path><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"><\/path><\/svg>6<\/span>\n<span class=\"ecvp-spec-item\"><svg width=\"17\" height=\"17\" fill=\"none\" stroke=\"#8a9bb5\" stroke-width=\"1.8\" viewBox=\"0 0 24 24\"><rect x=\"2\" y=\"7\" width=\"20\" height=\"13\" rx=\"2\"><\/rect><path d=\"M16 7V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2\"><\/path><\/svg>6<\/span>\n<\/span>\n<\/button>\n<button type=\"button\" class=\"ecvp-vehicle-card\" data-vehicle=\"vipsuv\" data-label=\"VIP Suv\">\n<span class=\"ecvp-label\">VIP Suv<\/span>\n<img decoding=\"async\" src=\"https:\/\/ectransfers.com\/nhmadison\/wp-content\/uploads\/2026\/06\/VIP_Suv.webp\" alt=\"VIP Suv\" loading=\"lazy\">\n<span class=\"ecvp-specs\">\n<span class=\"ecvp-spec-item\"><svg width=\"17\" height=\"17\" fill=\"none\" stroke=\"#8a9bb5\" stroke-width=\"1.8\" viewBox=\"0 0 24 24\"><path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"><\/path><circle cx=\"9\" cy=\"7\" r=\"4\"><\/circle><path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"><\/path><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"><\/path><\/svg>6<\/span>\n<span class=\"ecvp-spec-item\"><svg width=\"17\" height=\"17\" fill=\"none\" stroke=\"#8a9bb5\" stroke-width=\"1.8\" viewBox=\"0 0 24 24\"><rect x=\"2\" y=\"7\" width=\"20\" height=\"13\" rx=\"2\"><\/rect><path d=\"M16 7V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2\"><\/path><\/svg>6<\/span>\n<\/span>\n<\/button>\n<button type=\"button\" class=\"ecvp-vehicle-card\" data-vehicle=\"escalade\" data-label=\"VIP Escalade\">\n<span class=\"ecvp-label\">VIP Escalade<\/span>\n<img decoding=\"async\" src=\"https:\/\/ectransfers.com\/nhmadison\/wp-content\/uploads\/2026\/06\/VIP_Sv.png\" alt=\"VIP Escalade\" loading=\"lazy\">\n<span class=\"ecvp-specs\">\n<span class=\"ecvp-spec-item\"><svg width=\"17\" height=\"17\" fill=\"none\" stroke=\"#8a9bb5\" stroke-width=\"1.8\" viewBox=\"0 0 24 24\"><path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"><\/path><circle cx=\"9\" cy=\"7\" r=\"4\"><\/circle><path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"><\/path><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"><\/path><\/svg>6<\/span>\n<span class=\"ecvp-spec-item\"><svg width=\"17\" height=\"17\" fill=\"none\" stroke=\"#8a9bb5\" stroke-width=\"1.8\" viewBox=\"0 0 24 24\"><rect x=\"2\" y=\"7\" width=\"20\" height=\"13\" rx=\"2\"><\/rect><path d=\"M16 7V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2\"><\/path><\/svg>6<\/span>\n<\/span>\n<\/button>\n<\/div>\n\n<div id=\"ecvp-overlay\" class=\"ecvp-overlay\">\n<div class=\"ecvp-modal\">\n<div class=\"ecvp-modal-head\">\n<span id=\"ecvp-modal-vehicle\">Vehicle<\/span>\n<button type=\"button\" id=\"ecvp-close\" aria-label=\"Close\">\u00d7<\/button>\n<\/div>\n\n<div id=\"ecvp-form-body\">\n<div class=\"ecvp-field\">\n<label>Pickup Date & Time<\/label>\n<div class=\"ecvp-datetime-row\">\n<input type=\"date\" id=\"ecvp-date\" class=\"ecvp-date-input\">\n<select id=\"ecvp-hour\" class=\"ecvp-time-select\"><\/select>\n<span class=\"ecvp-time-colon\">:<\/span>\n<select id=\"ecvp-minute\" class=\"ecvp-time-select\"><\/select>\n<select id=\"ecvp-ampm\" class=\"ecvp-ampm-select\">\n<option value=\"AM\">AM<\/option>\n<option value=\"PM\">PM<\/option>\n<\/select>\n<\/div>\n<\/div>\n<div class=\"ecvp-field\">\n<label>Airport<\/label>\n<div class=\"ecvp-pill-group\" id=\"ecvp-airport-group\">\n<button type=\"button\" class=\"ecvp-pill ecvp-pill-jfk\" data-airport=\"JFK\">\u2708 JFK<\/button>\n<button type=\"button\" class=\"ecvp-pill ecvp-pill-lga\" data-airport=\"LGA\">\u2708 LGA<\/button>\n<button type=\"button\" class=\"ecvp-pill ecvp-pill-ewr\" data-airport=\"EWR\">\u2708 EWR<\/button>\n<\/div>\n<\/div>\n<div class=\"ecvp-field\">\n<label for=\"ecvp-room\">Room #<\/label>\n<input type=\"text\" id=\"ecvp-room\" placeholder=\"e.g. 826\">\n<\/div>\n<div class=\"ecvp-field\">\n<label>NH Agent<\/label>\n<div class=\"ecvp-pill-group\" id=\"ecvp-agent-group\">\n<button type=\"button\" class=\"ecvp-pill ecvp-pill-agent\" data-agent=\"Aaron\">Aaron<\/button>\n<button type=\"button\" class=\"ecvp-pill ecvp-pill-agent\" data-agent=\"Erik\">Erik<\/button>\n<button type=\"button\" class=\"ecvp-pill ecvp-pill-agent\" data-agent=\"John\">John<\/button>\n<button type=\"button\" class=\"ecvp-pill ecvp-pill-agent\" data-agent=\"Max\">Max<\/button>\n<\/div>\n<\/div>\n\n<div id=\"ecvp-price-box\" class=\"ecvp-price-box\" style=\"display:none;\">\n<span class=\"ecvp-price-label\">Estimated Price<\/span>\n<span id=\"ecvp-price-value\" class=\"ecvp-price-value\">$0<\/span>\n<span id=\"ecvp-price-note\" class=\"ecvp-price-note\"><\/span>\n<\/div>\n\n<button type=\"button\" id=\"ecvp-submit\" class=\"ecvp-submit-btn\" disabled>Select all options to continue<\/button>\n<p id=\"ecvp-error-msg\" class=\"ecvp-error-msg\"><\/p>\n<\/div>\n\n<div id=\"ecvp-result\" class=\"ecvp-result\" style=\"display:none;\">\n<div class=\"ecvp-result-icon\">\u2705<\/div>\n<p class=\"ecvp-result-title\">Request Sent<\/p>\n<p id=\"ecvp-result-detail\" class=\"ecvp-result-detail\"><\/p>\n<a id=\"ecvp-call-link\" class=\"ecvp-call-btn\" href=\"#\">\ud83d\udcde Call Us Now<\/a>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<style>\n#ec-vp{all:initial;display:block;position:relative!important;width:100vw!important;max-width:100vw!important;left:50%!important;right:50%!important;margin-left:-50vw!important;margin-right:-50vw!important;min-height:100vh!important;min-height:100dvh!important;font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif!important;background:#0f1623!important;color:#e8eaf0;padding:64px 20px;box-sizing:border-box;border-radius:0!important;}\n#ec-vp *,#ec-vp *::before,#ec-vp *::after{box-sizing:border-box!important;margin:0;padding:0}\n#ec-vp .ecvp-h1{display:block;text-align:center;font-size:12px!important;font-weight:500!important;letter-spacing:.12em;text-transform:uppercase;color:#8a9bb5!important;margin-bottom:6px!important}\n#ec-vp .ecvp-subtitle{display:block;text-align:center;font-size:21px!important;font-weight:700!important;color:#fff!important;margin-bottom:32px!important;letter-spacing:-.02em}\n#ec-vp .ecvp-vehicles-row{display:flex!important;gap:12px;justify-content:center;flex-wrap:wrap}\n#ec-vp .ecvp-vehicle-card{background:#1a2236!important;border:1.5px solid #283148!important;border-radius:14px!important;width:186px!important;padding:16px 12px 14px!important;cursor:pointer;transition:border-color .2s,box-shadow .2s,transform .15s;color:inherit;font-family:inherit}\n#ec-vp .ecvp-vehicle-card:hover{border-color:#4a90d9!important;box-shadow:0 0 0 3px rgba(74,144,217,.12)!important;transform:translateY(-2px)}\n#ec-vp .ecvp-label{display:block!important;font-size:12px!important;font-weight:600!important;letter-spacing:.04em;color:#c8d4e8!important;text-align:center!important;margin-bottom:8px!important}\n#ec-vp .ecvp-vehicle-card img{width:100%!important;height:76px!important;object-fit:contain!important;display:block!important;filter:drop-shadow(0 3px 10px rgba(0,0,0,.5));border:none!important;margin:0!important}\n#ec-vp .ecvp-specs{display:flex!important;justify-content:center!important;gap:14px;margin-top:10px!important}\n#ec-vp .ecvp-spec-item{display:inline-flex!important;align-items:center!important;gap:5px;font-size:12px!important;color:#8a9bb5!important;font-weight:500!important;background:transparent!important}\n#ec-vp .ecvp-spec-item svg{flex-shrink:0;background:transparent!important}\n\n#ec-vp .ecvp-overlay{display:none;position:fixed;inset:0;background:rgba(5,8,14,.75);backdrop-filter:blur(2px);z-index:99999;align-items:center;justify-content:center;padding:16px;}\n#ec-vp .ecvp-overlay.open{display:flex;}\n#ec-vp .ecvp-modal{background:linear-gradient(180deg,#182036,#121a2c);border:1px solid #2a3a5c;border-radius:18px;width:100%;max-width:380px;padding:22px 22px 26px;max-height:88vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.5);}\n#ec-vp .ecvp-modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;}\n#ec-vp .ecvp-modal-head span{font-size:18px;font-weight:700;color:#fff;letter-spacing:-.01em;}\n#ec-vp #ecvp-close{background:#1f2b45;border:1px solid #32456b;color:#c8d4e8;width:30px;height:30px;border-radius:50%;cursor:pointer;font-size:16px;line-height:1;transition:background .15s,color .15s;}\n#ec-vp #ecvp-close:hover{background:#2a3a5c;color:#fff;}\n#ec-vp .ecvp-field{margin-bottom:18px;}\n#ec-vp .ecvp-field label{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#7f93b8;margin-bottom:9px;}\n#ec-vp .ecvp-pill-group{display:flex;gap:8px;flex-wrap:wrap;}\n#ec-vp .ecvp-pill{background:#1a2440;border:1.5px solid #2f3f60;color:#c8d4e8;padding:10px 16px;border-radius:999px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;transition:border-color .15s,background .15s,color .15s,box-shadow .15s,transform .15s;}\n#ec-vp .ecvp-pill:hover{transform:translateY(-1px);}\n#ec-vp .ecvp-pill-jfk.active{background:linear-gradient(135deg,#4a90d9,#2f6bb0);border-color:#6bb0f0;color:#fff;box-shadow:0 4px 16px rgba(74,144,217,.4);}\n#ec-vp .ecvp-pill-lga.active{background:linear-gradient(135deg,#48bb78,#2f8f57);border-color:#6fd696;color:#fff;box-shadow:0 4px 16px rgba(72,187,120,.4);}\n#ec-vp .ecvp-pill-ewr.active{background:linear-gradient(135deg,#ed8936,#c96c1f);border-color:#ffab5c;color:#fff;box-shadow:0 4px 16px rgba(237,137,54,.4);}\n#ec-vp .ecvp-pill-agent.active{background:linear-gradient(135deg,#C8A35E,#a5813f);border-color:#e9d29b;color:#191307;box-shadow:0 4px 16px rgba(200,163,94,.4);}\n#ec-vp #ecvp-room{width:100%;padding:12px 14px;border-radius:10px;border:1.5px solid #2f3f60;background:#0f1623;color:#fff;font-size:15px;font-family:inherit;transition:border-color .15s;}\n#ec-vp #ecvp-room:focus{outline:none;border-color:#4a90d9;}\n#ec-vp #ecvp-room::placeholder{color:#5a6b85;}\n\n#ec-vp .ecvp-datetime-row{display:flex!important;flex-wrap:nowrap;align-items:center;gap:6px;}\n#ec-vp .ecvp-date-input{flex:1 1 auto;min-width:0;padding:11px 10px;border-radius:10px;border:1.5px solid #2f3f60;background:#0f1623;color:#fff;font-size:13px;font-family:inherit;transition:border-color .15s;color-scheme:dark;}\n#ec-vp .ecvp-date-input:focus{outline:none;border-color:#4a90d9;}\n#ec-vp .ecvp-time-select{flex:0 0 58px;padding:11px 4px;border-radius:10px;border:1.5px solid #2f3f60;background:#0f1623;color:#fff;font-size:13px;font-family:inherit;text-align:center;text-align-last:center;transition:border-color .15s;}\n#ec-vp .ecvp-ampm-select{flex:0 0 64px;padding:11px 4px;border-radius:10px;border:1.5px solid #2f3f60;background:#0f1623;color:#fff;font-size:13px;font-family:inherit;text-align:center;text-align-last:center;transition:border-color .15s;}\n#ec-vp .ecvp-time-select:focus,#ec-vp .ecvp-ampm-select:focus{outline:none;border-color:#4a90d9;}\n#ec-vp .ecvp-time-colon{flex:0 0 auto;color:#7f93b8;font-weight:700;}\n\n#ec-vp .ecvp-price-box{background:radial-gradient(circle at 50% 0%,rgba(74,144,217,.12),transparent 70%),#0d1525;border:1px solid #2f3f60;border-radius:14px;padding:18px;text-align:center;margin-bottom:18px;}\n#ec-vp .ecvp-price-label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#7f93b8;margin-bottom:6px;font-weight:700;}\n#ec-vp .ecvp-price-value{display:block;font-size:34px;font-weight:800;color:#fff;letter-spacing:-.02em;text-shadow:0 0 20px rgba(74,144,217,.35);}\n#ec-vp .ecvp-price-note{display:inline-block;font-size:11px;color:#7ec8ff;margin-top:6px;font-weight:700;background:rgba(74,144,217,.15);padding:3px 10px;border-radius:999px;}\n#ec-vp .ecvp-submit-btn{width:100%;padding:15px;border-radius:12px;border:none;background:linear-gradient(135deg,#4a90d9,#2f6bb0);color:#fff;font-size:15px;font-weight:700;cursor:pointer;font-family:inherit;box-shadow:0 6px 20px rgba(74,144,217,.35);transition:transform .15s,box-shadow .15s,background .15s,opacity .15s;}\n#ec-vp .ecvp-submit-btn:disabled{background:#25304a;color:#5a6b85;cursor:not-allowed;box-shadow:none;}\n#ec-vp .ecvp-submit-btn:not(:disabled):hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(74,144,217,.5);}\n#ec-vp .ecvp-error-msg{margin-top:10px;font-size:12px;color:#fc8181;text-align:center;min-height:14px;}\n#ec-vp .ecvp-result{text-align:center;padding:10px 0 4px;}\n#ec-vp .ecvp-result-icon{font-size:42px;margin-bottom:12px;}\n#ec-vp .ecvp-result-title{font-size:18px;font-weight:700;color:#fff;margin-bottom:8px;}\n#ec-vp .ecvp-result-detail{font-size:13px;color:#9bacc9;margin-bottom:20px;line-height:1.7;}\n#ec-vp .ecvp-call-btn{display:inline-block;background:linear-gradient(135deg,#48bb78,#2f8f57);color:#fff;text-decoration:none;font-size:14px;font-weight:700;padding:13px 24px;border-radius:999px;box-shadow:0 6px 20px rgba(72,187,120,.4);transition:transform .15s,box-shadow .15s;}\n#ec-vp .ecvp-call-btn:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(72,187,120,.55);}\n@media(max-width:480px){\n#ec-vp .ecvp-vehicle-card{width:145px!important;padding:12px 8px 10px!important}\n#ec-vp .ecvp-vehicle-card img{height:64px!important}\n#ec-vp .ecvp-time-select{flex-basis:50px;padding:11px 2px;font-size:12px;}\n#ec-vp .ecvp-ampm-select{flex-basis:56px;padding:11px 2px;font-size:12px;}\n#ec-vp .ecvp-date-input{font-size:12px;padding:11px 6px;}\n}\n<\/style>\n\n<script>\n(function () {\ndocument.documentElement.style.overflowX = 'hidden';\ndocument.body.style.overflowX = 'hidden';\n\nvar restBase = \"https:\\\/\\\/ectransfers.com\\\/nhmadison\\\/wp-json\\\/ecvp\\\/v1\";\nvar matrix = {\"sedan\":{\"JFK\":[100,115],\"LGA\":[75,85],\"EWR\":[115,125]},\"minisuv\":{\"JFK\":[115,130],\"LGA\":[85,95],\"EWR\":[125,135]},\"regsuv\":{\"JFK\":[140,150],\"LGA\":[90,100],\"EWR\":[140,150]},\"vipsuv\":{\"JFK\":[160,165],\"LGA\":[115,120],\"EWR\":[160,165]},\"escalade\":{\"JFK\":[175,180],\"LGA\":[130,135],\"EWR\":[175,180]}};\nvar vehicleLabels = {\"sedan\":\"Sedan\",\"minisuv\":\"Mini Suv\",\"regsuv\":\"Regular Suv\",\"vipsuv\":\"VIP Suv\",\"escalade\":\"VIP Escalade\"};\n\n\/\/ Peak-hour rule, mirrored client-side for the live preview only.\n\/\/ The server independently recalculates this from the submitted\n\/\/ date\/hour\/minute\/ampm \u2014 this copy never decides what gets saved.\nfunction isPeakFor( month, hour24, minute ) {\nif (month === 1 || month === 2 || month === 3) return false;\nvar mins = hour24 * 60 + minute;\nreturn mins >= (13 * 60) && mins < (17 * 60 + 30);\n}\n\nfunction pad2(n) { return (n < 10 ? '0' : '') + n; }\n\n\/\/ \u2500\u2500 Pickup date\/time field setup \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nvar dateInput = document.getElementById('ecvp-date');\nvar hourSelect = document.getElementById('ecvp-hour');\nvar minuteSelect = document.getElementById('ecvp-minute');\nvar ampmSelect = document.getElementById('ecvp-ampm');\n\nfor (var h = 1; h <= 12; h++) {\nvar hOpt = document.createElement('option');\nhOpt.value = String(h);\nhOpt.textContent = pad2(h);\nhourSelect.appendChild(hOpt);\n}\n\/\/ Minute picker: 5-minute increments only (00, 05, 10 ... 55).\nfor (var m = 0; m <= 55; m += 5) {\nvar mOpt = document.createElement('option');\nmOpt.value = String(m);\nmOpt.textContent = pad2(m);\nminuteSelect.appendChild(mOpt);\n}\n\nfunction setDateTimeDefaultsToNow() {\nvar now = new Date();\nvar yyyy = now.getFullYear();\nvar mm = pad2(now.getMonth() + 1);\nvar dd = pad2(now.getDate());\ndateInput.value = yyyy + '-' + mm + '-' + dd;\ndateInput.min = yyyy + '-' + mm + '-' + dd;\n\nvar hours24 = now.getHours();\nvar hours12 = hours24 % 12;\nif (hours12 === 0) hours12 = 12;\nhourSelect.value = String(hours12);\n\/\/ Snap down to the nearest 5-minute mark to match the picker's grid.\nvar snappedMinute = Math.floor(now.getMinutes() \/ 5) * 5;\nminuteSelect.value = String(snappedMinute);\nampmSelect.value = hours24 >= 12 ? 'PM' : 'AM';\n}\nsetDateTimeDefaultsToNow();\n\nfunction getSelectedDateTime() {\nvar dateStr = dateInput.value;\nvar hour12 = parseInt(hourSelect.value, 10);\nvar minute = parseInt(minuteSelect.value, 10);\nvar ampm = ampmSelect.value;\nvar hour24 = hour12 % 12;\nif (ampm === 'PM') hour24 += 12;\nvar parts = dateStr.split('-');\nvar month = parts.length === 3 ? parseInt(parts[1], 10) : (new Date()).getMonth() + 1;\nreturn { dateStr: dateStr, hour12: hour12, minute: minute, ampm: ampm, hour24: hour24, month: month };\n}\n\nvar overlay = document.getElementById('ecvp-overlay');\nvar modalVehicle = document.getElementById('ecvp-modal-vehicle');\nvar formBody = document.getElementById('ecvp-form-body');\nvar resultBox = document.getElementById('ecvp-result');\nvar priceBox = document.getElementById('ecvp-price-box');\nvar priceValue = document.getElementById('ecvp-price-value');\nvar priceNote = document.getElementById('ecvp-price-note');\nvar submitBtn = document.getElementById('ecvp-submit');\nvar errorMsg = document.getElementById('ecvp-error-msg');\nvar roomInput = document.getElementById('ecvp-room');\n\nvar state = { vehicle: null, airport: null, agent: null };\n\nfunction resetModal() {\n\/\/ Pickup date\/time is intentionally NOT reset here \u2014 it stays\n\/\/ as the guest last set it (or \"now\", on first open) across\n\/\/ vehicle switches within the same visit.\nstate.airport = null; state.agent = null;\nroomInput.value = '';\ndocument.querySelectorAll('.ecvp-pill').forEach(function (p) { p.classList.remove('active'); });\npriceBox.style.display = 'none';\nerrorMsg.textContent = '';\nformBody.style.display = '';\nresultBox.style.display = 'none';\nupdateSubmitState();\n}\n\nfunction updatePrice() {\nif (!state.vehicle || !state.airport) { priceBox.style.display = 'none'; return; }\nvar pair = matrix[state.vehicle] && matrix[state.vehicle][state.airport];\nif (!pair) { priceBox.style.display = 'none'; return; }\nvar dt = getSelectedDateTime();\nvar peak = isPeakFor(dt.month, dt.hour24, dt.minute);\nvar price = peak ? pair[1] : pair[0];\npriceValue.textContent = '$' + price;\npriceNote.textContent = peak ? '* Peak Hour rate (1:00\u20135:30 PM)' : 'Standard rate';\npriceBox.style.display = 'block';\n}\n\nfunction updateSubmitState() {\nvar ready = state.vehicle && state.airport && state.agent && roomInput.value.trim() && dateInput.value;\nsubmitBtn.disabled = !ready;\nsubmitBtn.textContent = ready ? 'Submit Request' : 'Select all options to continue';\n}\n\ndocument.querySelectorAll('.ecvp-vehicle-card').forEach(function (card) {\ncard.addEventListener('click', function () {\nstate.vehicle = card.getAttribute('data-vehicle');\nmodalVehicle.textContent = card.getAttribute('data-label');\nresetModal();\noverlay.classList.add('open');\n});\n});\ndocument.getElementById('ecvp-close').addEventListener('click', function () {\noverlay.classList.remove('open');\n});\noverlay.addEventListener('click', function (e) {\nif (e.target === this) this.classList.remove('open');\n});\n\ndateInput.addEventListener('change', function () { updatePrice(); updateSubmitState(); });\nhourSelect.addEventListener('change', updatePrice);\nminuteSelect.addEventListener('change', updatePrice);\nampmSelect.addEventListener('change', updatePrice);\n\ndocument.querySelectorAll('#ecvp-airport-group .ecvp-pill').forEach(function (btn) {\nbtn.addEventListener('click', function () {\ndocument.querySelectorAll('#ecvp-airport-group .ecvp-pill').forEach(function (b) { b.classList.remove('active'); });\nbtn.classList.add('active');\nstate.airport = btn.getAttribute('data-airport');\nupdatePrice();\nupdateSubmitState();\n});\n});\ndocument.querySelectorAll('#ecvp-agent-group .ecvp-pill').forEach(function (btn) {\nbtn.addEventListener('click', function () {\ndocument.querySelectorAll('#ecvp-agent-group .ecvp-pill').forEach(function (b) { b.classList.remove('active'); });\nbtn.classList.add('active');\nstate.agent = btn.getAttribute('data-agent');\nupdateSubmitState();\n});\n});\nroomInput.addEventListener('input', updateSubmitState);\n\nsubmitBtn.addEventListener('click', function () {\nerrorMsg.textContent = '';\nsubmitBtn.disabled = true;\nsubmitBtn.textContent = 'Sending\u2026';\nvar dt = getSelectedDateTime();\nfetch(restBase + '\/submit', {\nmethod: 'POST', headers: { 'Content-Type': 'application\/json' },\nbody: JSON.stringify({\nvehicle: state.vehicle,\nairport: state.airport,\nagent: state.agent,\nroom: roomInput.value.trim(),\ndate: dt.dateStr,\nhour: dt.hour12,\nminute: dt.minute,\nampm: dt.ampm\n})\n}).then(function (r) { return r.json(); }).then(function (res) {\nif (!res || !res.ok) {\nerrorMsg.textContent = (res && res.message) ? res.message : 'Something went wrong. Please try again.';\nsubmitBtn.disabled = false;\nupdateSubmitState();\nreturn;\n}\nformBody.style.display = 'none';\nresultBox.style.display = 'block';\ndocument.getElementById('ecvp-result-detail').innerHTML =\n'Booking <strong>' + res.booking_id + '<\/strong> \u2014 $' + res.price + (res.is_peak ? ' (Peak Hour)' : ' (Standard)') +\n'<br>Pickup: <strong>' + dt.dateStr + ' ' + pad2(dt.hour12) + ':' + pad2(dt.minute) + dt.ampm + '<\/strong>' +\n'<br>NH Agent: <strong>' + state.agent + '<\/strong>' +\n'<br>We\\'ve been notified by email. Tap below to call us and confirm.';\nvar callLink = document.getElementById('ecvp-call-link');\ncallLink.href = 'tel:+' + res.call_number;\n}).catch(function () {\nerrorMsg.textContent = 'Something went wrong. Please try again.';\nsubmitBtn.disabled = false;\nupdateSubmitState();\n});\n});\n})();\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"normal-width-container","site-content-style":"unboxed","site-sidebar-style":"default","ast-global-header-display":"disabled","ast-banner-title-visibility":"disabled","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":"","footer-sml-layout":"disabled","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-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":"","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-4)","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-4)","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-4)","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":""}},"footnotes":""},"class_list":["post-2035","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ectransfers.com\/nhmadison\/wp-json\/wp\/v2\/pages\/2035","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ectransfers.com\/nhmadison\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ectransfers.com\/nhmadison\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ectransfers.com\/nhmadison\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ectransfers.com\/nhmadison\/wp-json\/wp\/v2\/comments?post=2035"}],"version-history":[{"count":2,"href":"https:\/\/ectransfers.com\/nhmadison\/wp-json\/wp\/v2\/pages\/2035\/revisions"}],"predecessor-version":[{"id":2037,"href":"https:\/\/ectransfers.com\/nhmadison\/wp-json\/wp\/v2\/pages\/2035\/revisions\/2037"}],"wp:attachment":[{"href":"https:\/\/ectransfers.com\/nhmadison\/wp-json\/wp\/v2\/media?parent=2035"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}