{"id":477,"date":"2025-09-23T09:13:21","date_gmt":"2025-09-23T09:13:21","guid":{"rendered":"https:\/\/moroccotoptour.com\/?page_id=477"},"modified":"2026-03-10T23:16:46","modified_gmt":"2026-03-10T23:16:46","slug":"transportation","status":"publish","type":"page","link":"https:\/\/moroccotoptour.com\/zh\/transportation\/","title":{"rendered":"Transportation"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"477\" class=\"elementor elementor-477\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-68dcdc1 e-con-full e-flex e-con e-parent\" data-id=\"68dcdc1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-966a504 elementor-widget elementor-widget-html\" data-id=\"966a504\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n  <meta charset=\"UTF-8\" \/>\r\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" \/>\r\n  <title>Premium Transportation | Morocco Top Tour<\/title>\r\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n  <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;700&display=swap\" rel=\"stylesheet\">\r\n  <style>\r\n    \/* =====================\r\n       HARD NAMESPACE (WordPress-safe)\r\n       Wrap your block with <section class=\"mtt-transport\"> ... <\/section>\r\n       Everything is scoped under .mtt-transport to avoid theme colors.\r\n       BACKGROUND CHANGED TO WHITE \u2013 all colors adjusted for readability.\r\n       ===================== *\/\r\n    .mtt-transport, .mtt-transport * { box-sizing: border-box; }\r\n\r\n    .mtt-transport {\r\n      \/* LIGHT BACKGROUND \u2013 white *\/\r\n      --bg:#ffffff;          \/* pure white main background *\/\r\n      --card:#f9fafb;        \/* very light gray card bg *\/\r\n      --muted:#4b5563;       \/* medium gray for secondary text *\/\r\n      --brand:#eab308;       \/* amber-500 \u2013 accent color unchanged *\/\r\n      --ring: rgba(234,179,8,.35);\r\n      font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \"Apple Color Emoji\", \"Segoe UI Emoji\" !important;\r\n      color: #1f2937 !important; \/* dark text (slate-800) *\/\r\n      line-height: 1.6 !important;\r\n      background: radial-gradient(1200px 600px at 80% -10%, rgba(234,179,8,.05), transparent 60%),\r\n                  radial-gradient(1000px 500px at 10% 0%, rgba(34,197,94,.05), transparent 60%),\r\n                  var(--bg) !important;\r\n      padding: 24px !important;\r\n      border-radius: 0 !important;\r\n    }\r\n\r\n    .mtt-transport .wrap { max-width: 1200px; margin: 0 auto; }\r\n\r\n    \/* Header \u2013 now with a light, professional overlay *\/\r\n    .mtt-transport header {\r\n      position: relative; border-radius: 24px; overflow: hidden;\r\n      background: linear-gradient(120deg, rgba(255,255,255,.9), rgba(255,255,255,.8)), url('https:\/\/images.unsplash.com\/photo-1502877338535-766e1452684a?q=80&w=1600&auto=format&fit=crop');\r\n      background-size: cover; background-position: center; box-shadow: 0 20px 40px rgba(0,0,0,.08);\r\n    }\r\n    .mtt-transport .hero { padding: 64px 28px 64px; text-align: center; }\r\n    .mtt-transport .eyebrow { display: inline-block; margin-bottom: 12px; padding: 6px 12px; border-radius: 999px; background: rgba(234,179,8,.1); color: #92400e !important; letter-spacing: .06em; font-weight: 600; text-transform: uppercase; font-size: 12px; }\r\n    .mtt-transport h1 { margin: 0; font-size: 40px; line-height: 1.1; color: #111827 !important; }\r\n    .mtt-transport .sub { max-width: 860px; margin: 12px auto 0; color: #4b5563 !important; }\r\n\r\n    \/* Grid *\/\r\n    .mtt-transport .grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 22px; margin-top: -32px; }\r\n    .mtt-transport .card { grid-column: span 6; background: var(--card); border: 1px solid #e2e8f0; border-radius: 20px; overflow: hidden; box-shadow: 0 10px 25px rgba(0,0,0,.03); transition: transform .25s ease, box-shadow .25s ease; }\r\n    .mtt-transport .card:hover { transform: translateY(-6px); box-shadow: 0 18px 40px rgba(0,0,0,.08); }\r\n\r\n    \/* FIX: exact image height for laptops (\u22651024px): 290px *\/\r\n    .mtt-transport .media { position: relative; height: 240px; background: #e5e7eb; }\r\n    .mtt-transport .media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }\r\n\r\n    @media (min-width: 1024px) { \/* laptop breakpoint *\/\r\n      .mtt-transport .media { height: 290px; }\r\n    }\r\n\r\n    .mtt-transport .badge { position: absolute; left: 12px; top: 12px; background: rgba(255,255,255,.9); border: 1px solid #e2e8f0; padding: 6px 10px; border-radius: 999px; font-size: 12px; color: #1f2937 !important; }\r\n    .mtt-transport .body { padding: 18px 18px 22px; }\r\n    .mtt-transport .title { display: flex; align-items: center; justify-content: space-between; gap: 12px; }\r\n    .mtt-transport .title h3 { margin: 0; font-size: 20px; color: #111827 !important; font-weight: 700; }\r\n    .mtt-transport .title span { font-weight: 700; color: #b45309 !important; } \/* amber-700 *\/\r\n    .mtt-transport .desc { color: #4b5563 !important; margin-top: 8px; }\r\n    .mtt-transport .meta { display: flex; gap: 16px; margin-top: 14px; color: #1f2937 !important; font-size: 13px; }\r\n\r\n    \/* Features *\/\r\n    .mtt-transport .features { display: grid; grid-template-columns: repeat(12, 1fr); gap: 18px; margin-top: 36px; }\r\n    .mtt-transport .feature { grid-column: span 4; background: rgba(0,0,0,.02); border: 1px solid #e2e8f0; border-radius: 16px; padding: 16px; }\r\n    .mtt-transport .feature h4 { margin: 0 0 4px; color: #111827 !important; }\r\n    .mtt-transport .feature p { margin: 0; color: #4b5563 !important; font-size: 14px; }\r\n\r\n    \/* Footer strip *\/\r\n    .mtt-transport .strip { margin-top: 42px; border-radius: 16px; border: 1px dashed #d1d5db; padding: 14px; text-align: center; color: #4b5563 !important; }\r\n\r\n    \/* Responsive *\/\r\n    @media (max-width: 960px) {\r\n      .mtt-transport .card { grid-column: span 12; }\r\n      .mtt-transport .feature { grid-column: span 12; }\r\n      .mtt-transport h1 { font-size: 32px; }\r\n      .mtt-transport .media { height: 220px; }\r\n    }\r\n  <\/style>\r\n<\/head>\r\n<body>\r\n  <!-- BEGIN: Paste ONLY this <section> block inside your WordPress page -->\r\n  <section class=\"mtt-transport\">\r\n    <div class=\"wrap\">\r\n      <header>\r\n        <div class=\"hero\">\r\n          <span class=\"eyebrow\">Private & Group Transfers<\/span>\r\n          <h1>Premium Transportation for Your Moroccan Journey<\/h1>\r\n          <p class=\"sub\">Modern, fully insured vehicles with professional, English\/French speaking drivers. Airport pickups, intercity rides, desert routes, and custom itineraries.<\/p>\r\n        <\/div>\r\n      <\/header>\r\n\r\n      <section id=\"fleet\" class=\"grid\">\r\n        <!-- Minibus \/ Sprinter -->\r\n        <article class=\"card\">\r\n          <div class=\"media\">\r\n            <img decoding=\"async\" src=\"https:\/\/moroccotoptour.com\/wp-content\/uploads\/2025\/09\/Mercedes-sptinter-17-places.jpg\" alt=\"Mercedes Sprinter Minibus\" title=\"\">\r\n            <span class=\"badge\">Up to 16 pax<\/span>\r\n          <\/div>\r\n          <div class=\"body\">\r\n            <div class=\"title\">\r\n              <h3>Minibus (Mercedes Sprinter)<\/h3>\r\n              <span>Groups<\/span>\r\n            <\/div>\r\n            <p class=\"desc\">Spacious, air\u2011conditioned minibus perfect for group tours and airport shuttles. Luggage trailer on request.<\/p>\r\n            <div class=\"meta\">\r\n              <span>\u2714 A\/C<\/span>\r\n              <span>\u2714 USB<\/span>\r\n              <span>\u2714 Wi\u2011Fi*<\/span>\r\n            <\/div>\r\n          <\/div>\r\n        <\/article>\r\n\r\n        <!-- Mercedes Vito -->\r\n        <article class=\"card\">\r\n          <div class=\"media\">\r\n            <img decoding=\"async\" src=\"https:\/\/moroccotoptour.com\/wp-content\/uploads\/2025\/09\/YzKaRWqXcOOf_400x400_mtdhGWCw.png\" alt=\"Mercedes Vito\" title=\"\">\r\n            <span class=\"badge\">Up to 7 pax<\/span>\r\n          <\/div>\r\n          <div class=\"body\">\r\n            <div class=\"title\">\r\n              <h3>Mercedes Vito<\/h3>\r\n              <span>Comfort<\/span>\r\n            <\/div>\r\n            <p class=\"desc\">The ideal choice for families and small groups seeking comfort and generous luggage space.<\/p>\r\n            <div class=\"meta\">\r\n              <span>\u2714 Leather<\/span>\r\n              <span>\u2714 Dual A\/C<\/span>\r\n              <span>\u2714 ISOFIX<\/span>\r\n            <\/div>\r\n          <\/div>\r\n        <\/article>\r\n\r\n        <!-- Toyota TX (Land Cruiser Prado) -->\r\n        <article class=\"card\">\r\n          <div class=\"media\">\r\n            <img decoding=\"async\" src=\"https:\/\/moroccotoptour.com\/wp-content\/uploads\/2025\/09\/54922-Toyota-Landcruiser-Prado-STS-Global.jpg\" alt=\"Toyota Land Cruiser Prado TX\" title=\"\">\r\n            <span class=\"badge\">Up to 4 pax<\/span>\r\n          <\/div>\r\n          <div class=\"body\">\r\n            <div class=\"title\">\r\n              <h3>Toyota TX (Land Cruiser Prado)<\/h3>\r\n              <span>Off\u2011road<\/span>\r\n            <\/div>\r\n            <p class=\"desc\">Rugged 4\u00d74 capability for Atlas Mountains and Sahara routes, with premium comfort on long drives.<\/p>\r\n            <div class=\"meta\">\r\n              <span>\u2714 4\u00d74<\/span>\r\n              <span>\u2714 Climate<\/span>\r\n              <span>\u2714 AUX\/USB<\/span>\r\n            <\/div>\r\n          <\/div>\r\n        <\/article>\r\n\r\n        <!-- Volkswagen Touareg -->\r\n        <article class=\"card\">\r\n          <div class=\"media\">\r\n            <img decoding=\"async\" src=\"https:\/\/moroccotoptour.com\/wp-content\/uploads\/2025\/09\/volkswagen-touareg-maroc.webp\" alt=\"Volkswagen Touareg\" title=\"\">\r\n            <span class=\"badge\">Up to 4 pax<\/span>\r\n          <\/div>\r\n          <div class=\"body\">\r\n            <div class=\"title\">\r\n              <h3>Volkswagen Touareg<\/h3>\r\n              <span>Luxury<\/span>\r\n            <\/div>\r\n            <p class=\"desc\">Executive SUV with smooth ride quality\u2014perfect for city transfers and long intercity trips.<\/p>\r\n            <div class=\"meta\">\r\n              <span>\u2714 Leather<\/span>\r\n              <span>\u2714 Climate<\/span>\r\n              <span>\u2714 USB\u2011C<\/span>\r\n            <\/div>\r\n          <\/div>\r\n        <\/article>\r\n      <\/section>\r\n\r\n      <section class=\"features\">\r\n        <div class=\"feature\">\r\n          <h4>Professional Drivers<\/h4>\r\n          <p>Experienced, licensed, and multilingual (EN\/FR\/ES\/AR). Safety first, hospitality always.<\/p>\r\n        <\/div>\r\n        <div class=\"feature\">\r\n          <h4>Fully Insured Fleet<\/h4>\r\n          <p>All vehicles are recent models, regularly maintained and sanitized.<\/p>\r\n        <\/div>\r\n        <div class=\"feature\">\r\n          <h4>Flexible Itineraries<\/h4>\r\n          <p>Airport pickup, point\u2011to\u2011point, day trips, multi\u2011day tours\u2014tailored to your plan.<\/p>\r\n        <\/div>\r\n      <\/section>\r\n\r\n      <div class=\"strip\">* Wi\u2011Fi available on request and subject to coverage.<\/div>\r\n    <\/div>\r\n  <\/section>\r\n  <!-- END: WordPress block -->\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-dd002a1 e-flex e-con-boxed e-con e-parent\" data-id=\"dd002a1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-21dc7e0 elementor-widget elementor-widget-html\" data-id=\"21dc7e0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n  <meta charset=\"UTF-8\" \/>\r\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/>\r\n  <title>Custom Tour Request<\/title>\r\n  <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.5.2\/css\/all.min.css\" integrity=\"sha512-SnH5WK+bZxgPHs44uWIX+LLJAJ9\/2PkfG3j3u2KSB4z9YhiJjkxFv1Jd5rhlWST\/dpD0iC5V7Q8YxcpTM1H6mQ==\" crossorigin=\"anonymous\" referrerpolicy=\"no-referrer\" \/>\r\n  <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/@emailjs\/browser@3\/dist\/email.min.js\"><\/script>\r\n  <style>\r\n    \/* ============ Reset & root ============ *\/\r\n    .tour-popup * { box-sizing: border-box; margin: 0; padding: 0; }\r\n    .tour-popup {\r\n      --orange: #f59e0b; \/* orange button *\/\r\n      --orange-dark: #d97706;\r\n      --bg-dark: #0f172a;\r\n      --text: #0f172a;\r\n      --subtext: #475569;\r\n      --muted: #e2e8f0;\r\n      --ring: rgba(245, 158, 11, 0.2);\r\n      --ok: #10b981;\r\n      --error: #ef4444;\r\n      font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", \"Apple Color Emoji\", \"Segoe UI Emoji\";\r\n    }\r\n\r\n    \/* ============ Floating button ============ *\/\r\n    .tour-popup .floating-btn {\r\n      position: fixed; right: 24px; bottom: 24px; width: 68px; height: 68px;\r\n      border-radius: 999px; border: 0; cursor: pointer; z-index: 9998;\r\n      background: var(--orange); color: #fff; box-shadow: 0 12px 24px rgba(245, 158, 11, .35);\r\n      display: grid; place-items: center; font-size: 1.6rem; transition: .2s ease;\r\n    }\r\n    .tour-popup .floating-btn:hover { transform: translateY(-3px); background: var(--orange-dark); }\r\n\r\n    \/* ============ Overlay & container ============ *\/\r\n    .tour-popup .overlay { position: fixed; inset: 0; background: rgba(2,6,23,.65); backdrop-filter: blur(4px); display: none; z-index: 9999; }\r\n    .tour-popup .overlay.active { display: grid; place-items: center; }\r\n    .tour-popup .card { width: 95%; max-width: 760px; max-height: 92vh; overflow: auto; background: #fff; border-radius: 16px; box-shadow: 0 24px 44px rgba(0,0,0,.2); animation: pop .25s ease; }\r\n    @keyframes pop { from { transform: scale(.96); opacity: 0 } to { transform: scale(1); opacity: 1 } }\r\n\r\n    \/* ============ Header ============ *\/\r\n    .tour-popup .header { padding: 18px 22px; background: linear-gradient(135deg, #f59e0b, #fb923c); color: #fff; border-radius: 16px 16px 0 0; display: flex; align-items: center; justify-content: space-between; }\r\n    .tour-popup .header h2 { font-size: 1.2rem; font-weight: 700; letter-spacing: .2px; }\r\n    .tour-popup .close { width: 36px; height: 36px; border-radius: 999px; border: 0; background: rgba(255,255,255,.18); color: #fff; display: grid; place-items: center; cursor: pointer; }\r\n\r\n    \/* ============ Steps ============ *\/\r\n    .tour-popup .content { padding: 22px; }\r\n    .tour-popup .steps { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 18px; }\r\n    .tour-popup .step { height: 6px; background: #f1f5f9; border-radius: 999px; position: relative; overflow: hidden; }\r\n    .tour-popup .step::after { content: \"\"; position: absolute; inset: 0; width: 0%; background: var(--orange); transition: width .25s ease; }\r\n    .tour-popup .step.active::after { width: 100%; }\r\n\r\n    \/* ============ Form ============ *\/\r\n    .tour-popup .form-step { display: none; }\r\n    .tour-popup .form-step.active { display: block; }\r\n\r\n    .tour-popup .group { margin-bottom: 16px; }\r\n    .tour-popup label { display: block; font-weight: 600; color: var(--text); margin-bottom: 8px; }\r\n    .tour-popup .hint { font-size: .9rem; color: var(--subtext); margin-top: 6px; }\r\n    .tour-popup input[type=\"text\"],\r\n    .tour-popup input[type=\"email\"],\r\n    .tour-popup input[type=\"tel\"],\r\n    .tour-popup input[type=\"number\"],\r\n    .tour-popup select,\r\n    .tour-popup textarea {\r\n      width: 100%; padding: 12px 14px; border: 1px solid #e5e7eb; border-radius: 10px; font-size: 1rem; color: var(--text);\r\n      transition: border-color .15s ease, box-shadow .15s ease;\r\n    }\r\n    .tour-popup textarea { min-height: 110px; resize: vertical; }\r\n    .tour-popup input:focus, .tour-popup select:focus, .tour-popup textarea:focus { outline: none; border-color: var(--orange); box-shadow: 0 0 0 3px var(--ring); }\r\n\r\n    .tour-popup .row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }\r\n    @media (max-width: 640px) { .tour-popup .row { grid-template-columns: 1fr; } }\r\n\r\n    .tour-popup .chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }\r\n    .tour-popup .chip { background: #fff7ed; border: 1px solid #fed7aa; color: #7c2d12; padding: 6px 10px; border-radius: 999px; font-size: .9rem; display: inline-flex; align-items: center; gap: 6px; }\r\n    .tour-popup .chip button { border: 0; background: transparent; cursor: pointer; color: inherit; }\r\n\r\n    .tour-popup .activities { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }\r\n    .tour-popup .activity { border: 1px solid #e5e7eb; border-radius: 10px; padding: 10px 12px; display: flex; align-items: center; gap: 10px; }\r\n    .tour-popup .activity input { width: 18px; height: 18px; }\r\n\r\n    .tour-popup .error { color: var(--error); font-size: .9rem; margin-top: 6px; display: none; }\r\n\r\n    .tour-popup .actions { display: flex; gap: 10px; margin-top: 16px; }\r\n    .tour-popup .btn { appearance: none; border: 0; border-radius: 10px; padding: 12px 16px; font-weight: 700; cursor: pointer; }\r\n    .tour-popup .btn.primary { background: var(--orange); color: #fff; }\r\n    .tour-popup .btn.primary:hover { background: var(--orange-dark); }\r\n    .tour-popup .btn.ghost { background: #fff; border: 1px solid #e5e7eb; color: var(--text); }\r\n\r\n    \/* ============ Success ============ *\/\r\n    .tour-popup .success { text-align: center; padding: 36px 20px; display: none; }\r\n    .tour-popup .success i { font-size: 3rem; color: var(--ok); margin-bottom: 12px; }\r\n    .tour-popup .success h3 { font-size: 1.4rem; margin-bottom: 8px; }\r\n    .tour-popup .success p { color: var(--subtext); }\r\n\r\n  <\/style>\r\n<\/head>\r\n<body>\r\n  <div class=\"tour-popup\">\r\n    <!-- Floating action button (orange) -->\r\n    <button id=\"openTourPopup\" class=\"floating-btn\" aria-label=\"Request a custom tour\">\r\n      <i class=\"fa-solid fa-map-location-dot\"><\/i>\r\n    <\/button>\r\n\r\n    <!-- Overlay \/ Modal -->\r\n    <div id=\"tourOverlay\" class=\"overlay\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"tourTitle\">\r\n      <div class=\"card\">\r\n        <div class=\"header\">\r\n          <h2 id=\"tourTitle\">Plan Your Custom Morocco Tour<\/h2>\r\n          <button class=\"close\" id=\"closeTourPopup\" aria-label=\"Close\">\r\n            <i class=\"fa-solid fa-xmark\"><\/i>\r\n          <\/button>\r\n        <\/div>\r\n        <div class=\"content\">\r\n          <!-- progress -->\r\n          <div class=\"steps\">\r\n            <div id=\"bar1\" class=\"step active\"><\/div>\r\n            <div id=\"bar2\" class=\"step\"><\/div>\r\n          <\/div>\r\n\r\n          <!-- Success screen -->\r\n          <div id=\"successScreen\" class=\"success\">\r\n            <i class=\"fa-solid fa-circle-check\"><\/i>\r\n            <h3>Thank you! Your request was sent.<\/h3>\r\n            <p>We\u2019ll get back to you shortly to confirm the details.<\/p>\r\n            <div class=\"actions\" style=\"justify-content:center; margin-top:18px\">\r\n              <button class=\"btn primary\" id=\"successClose\">Close<\/button>\r\n            <\/div>\r\n          <\/div>\r\n\r\n          <!-- Form -->\r\n          <form id=\"tourForm\">\r\n            <!-- STEP 1: Contact + Tour name + Cities -->\r\n            <section id=\"step1\" class=\"form-step active\">\r\n              <div class=\"group\">\r\n                <label for=\"tour_name\">Tour name *<\/label>\r\n                <input id=\"tour_name\" name=\"tour_name\" type=\"text\" placeholder=\"e.g., Sahara & Imperial Cities\" required \/>\r\n                <div class=\"error\" id=\"tour_name_err\">Please enter a tour name.<\/div>\r\n              <\/div>\r\n\r\n              <div class=\"row\">\r\n                <div class=\"group\">\r\n                  <label for=\"full_name\">Full name *<\/label>\r\n                  <input id=\"full_name\" name=\"full_name\" type=\"text\" placeholder=\"Your name\" required \/>\r\n                  <div class=\"error\" id=\"full_name_err\">Please enter your name.<\/div>\r\n                <\/div>\r\n                <div class=\"group\">\r\n                  <label for=\"email\">Email *<\/label>\r\n                  <input id=\"email\" name=\"email\" type=\"email\" placeholder=\"you@example.com\" required \/>\r\n                  <div class=\"error\" id=\"email_err\">Enter a valid email.<\/div>\r\n                <\/div>\r\n              <\/div>\r\n\r\n              <div class=\"group\">\r\n                <label for=\"phone\">Phone *<\/label>\r\n                <input id=\"phone\" name=\"phone\" type=\"tel\" placeholder=\"+212 6 00 00 00 00\" required \/>\r\n                <div class=\"error\" id=\"phone_err\">Please enter your phone number.<\/div>\r\n              <\/div>\r\n\r\n              <div class=\"group\">\r\n                <label>Cities to visit (add up to 30) *<\/label>\r\n                <div class=\"row\">\r\n                  <select id=\"citySelect\">\r\n                    <!-- options injected by JS -->\r\n                  <\/select>\r\n                  <button type=\"button\" class=\"btn ghost\" id=\"addCityBtn\"><i class=\"fa-solid fa-plus\"><\/i>&nbsp;Add city<\/button>\r\n                <\/div>\r\n                <div id=\"cityChips\" class=\"chips\" aria-live=\"polite\"><\/div>\r\n                <div class=\"hint\">Popular: Marrakech, Fes, Chefchaouen, Merzouga (Sahara), Ouarzazate, Essaouira, Agadir, Atlas Mountains, Tangier, Rabat, Casablanca, Meknes, A\u00eft Benhaddou, Dades\/Todra Gorges, Dakhla, Oualidia\u2026<\/div>\r\n                <div class=\"error\" id=\"cities_err\">Add at least one city.<\/div>\r\n              <\/div>\r\n\r\n              <div class=\"actions\">\r\n                <button type=\"button\" id=\"toStep2\" class=\"btn primary\">Continue<\/button>\r\n              <\/div>\r\n            <\/section>\r\n\r\n            <!-- STEP 2: Trip details + Activities + Message & Submit -->\r\n            <section id=\"step2\" class=\"form-step\">\r\n              <div class=\"row\">\r\n                <div class=\"group\">\r\n                  <label for=\"days\">How many days? *<\/label>\r\n                  <input id=\"days\" name=\"days\" type=\"number\" min=\"1\" step=\"1\" placeholder=\"e.g., 7\" required \/>\r\n                  <div class=\"error\" id=\"days_err\">Enter at least 1 day.<\/div>\r\n                <\/div>\r\n                <div class=\"group\">\r\n                  <label for=\"people\">How many people? (min 2) *<\/label>\r\n                  <input id=\"people\" name=\"people\" type=\"number\" min=\"2\" step=\"1\" placeholder=\"2\" required \/>\r\n                  <div class=\"error\" id=\"people_err\">At least 2 people.<\/div>\r\n                <\/div>\r\n              <\/div>\r\n\r\n              <div class=\"group\">\r\n                <label>Activities (optional)<\/label>\r\n                <div class=\"activities\">\r\n                  <label class=\"activity\"><input type=\"checkbox\" value=\"Camel Trek\" class=\"act\"> <span>\r\n                    <i class=\"fa-solid fa-camel\"><\/i> Camel trek<\/span><\/label>\r\n                  <label class=\"activity\"><input type=\"checkbox\" value=\"Quad Biking\" class=\"act\"> <span>\r\n                    <i class=\"fa-solid fa-motorcycle\"><\/i> Quad biking<\/span><\/label>\r\n                  <label class=\"activity\"><input type=\"checkbox\" value=\"Sandboarding\" class=\"act\"> <span>\r\n                    <i class=\"fa-solid fa-person-skiing\"><\/i> Sandboarding<\/span><\/label>\r\n                  <label class=\"activity\"><input type=\"checkbox\" value=\"Air Balloon\" class=\"act\"> <span>\r\n                    <i class=\"fa-solid fa-hot-tub-person\"><\/i><\/span> Air balloon<\/label>\r\n                <\/div>\r\n              <\/div>\r\n\r\n              <div class=\"group\">\r\n                <label for=\"message\">Message (optional)<\/label>\r\n                <textarea id=\"message\" name=\"message\" placeholder=\"Tell us anything else\u2026\"><\/textarea>\r\n              <\/div>\r\n\r\n              <div class=\"actions\">\r\n                <button type=\"button\" class=\"btn ghost\" id=\"backTo1\">Back<\/button>\r\n                <button type=\"submit\" class=\"btn primary\" id=\"submitBtn\"><i class=\"fa-solid fa-paper-plane\"><\/i>&nbsp;Send request<\/button>\r\n              <\/div>\r\n            <\/section>\r\n\r\n            <!-- hidden field to store cities -->\r\n            <input type=\"hidden\" id=\"cities\" name=\"cities\" \/>\r\n          <\/form>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <script>\r\n    \/\/ ---------- EmailJS init (Public Key) ----------\r\n    (function() { emailjs.init(\"UlHaF0FvVmgEUyv26\"); })();\r\n\r\n    \/\/ ---------- Elements ----------\r\n    const overlay = document.getElementById('tourOverlay');\r\n    const openBtn = document.getElementById('openTourPopup');\r\n    const closeBtn = document.getElementById('closeTourPopup');\r\n    const successClose = document.getElementById('successClose');\r\n\r\n    const step1 = document.getElementById('step1');\r\n    const step2 = document.getElementById('step2');\r\n    const bar1 = document.getElementById('bar1');\r\n    const bar2 = document.getElementById('bar2');\r\n\r\n    const toStep2Btn = document.getElementById('toStep2');\r\n    const backTo1Btn = document.getElementById('backTo1');\r\n\r\n    const citySelect = document.getElementById('citySelect');\r\n    const addCityBtn = document.getElementById('addCityBtn');\r\n    const cityChips = document.getElementById('cityChips');\r\n    const citiesHidden = document.getElementById('cities');\r\n    const successScreen = document.getElementById('successScreen');\r\n    const form = document.getElementById('tourForm');\r\n\r\n    const fields = {\r\n      tour_name: document.getElementById('tour_name'),\r\n      full_name: document.getElementById('full_name'),\r\n      email: document.getElementById('email'),\r\n      phone: document.getElementById('phone'),\r\n      days: document.getElementById('days'),\r\n      people: document.getElementById('people'),\r\n      message: document.getElementById('message')\r\n    };\r\n\r\n    const errs = {\r\n      tour_name: document.getElementById('tour_name_err'),\r\n      full_name: document.getElementById('full_name_err'),\r\n      email: document.getElementById('email_err'),\r\n      phone: document.getElementById('phone_err'),\r\n      days: document.getElementById('days_err'),\r\n      people: document.getElementById('people_err'),\r\n      cities: document.getElementById('cities_err')\r\n    };\r\n\r\n    \/\/ ---------- City list (popular Morocco tour stops) ----------\r\n    const MOROCCO_CITIES = [\r\n      'Marrakech','Fes','Casablanca','Rabat','Chefchaouen','Tangier','Tetouan','Meknes','Essaouira','Agadir',\r\n      'Ouarzazate','Merzouga (Sahara)','Zagora','Ait Benhaddou','Ifrane','Atlas Mountains','Dades Gorges','Todra Gorge',\r\n      'Asilah','Taroudant','Oualidia','Dakhla','Laayoune','El Jadida','Oujda','Nador','Tinghir','Midelt','Erfoud','Taza'\r\n    ];\r\n\r\n    function populateCitySelect() {\r\n      MOROCCO_CITIES.forEach(c => {\r\n        const opt = document.createElement('option');\r\n        opt.value = c; opt.textContent = c; citySelect.appendChild(opt);\r\n      });\r\n    }\r\n\r\n    const selectedCities = new Set();\r\n\r\n    function renderChips() {\r\n      cityChips.innerHTML = '';\r\n      selectedCities.forEach(city => {\r\n        const chip = document.createElement('span');\r\n        chip.className = 'chip';\r\n        chip.innerHTML = `${city} <button type=\"button\" aria-label=\"Remove ${city}\" data-city=\"${city}\"><i class=\"fa-solid fa-xmark\"><\/i><\/button>`;\r\n        cityChips.appendChild(chip);\r\n      });\r\n      citiesHidden.value = Array.from(selectedCities).join(', ');\r\n    }\r\n\r\n    function addCity(city) {\r\n      if (!city) return;\r\n      if (selectedCities.size >= 30) return; \/\/ hard cap (user asked: more than 10 allowed)\r\n      selectedCities.add(city);\r\n      renderChips();\r\n    }\r\n\r\n    \/\/ ---------- Open\/close popup ----------\r\n    openBtn.addEventListener('click', () => { overlay.classList.add('active'); document.body.style.overflow = 'hidden'; });\r\n    function closePopup() { overlay.classList.remove('active'); document.body.style.overflow = ''; resetAll(); }\r\n    closeBtn.addEventListener('click', closePopup);\r\n    overlay.addEventListener('click', (e) => { if (e.target === overlay) closePopup(); });\r\n    successClose.addEventListener('click', closePopup);\r\n\r\n    \/\/ ---------- Step navigation ----------\r\n    toStep2Btn.addEventListener('click', () => {\r\n      const ok = validateStep1();\r\n      if (!ok) return;\r\n      step1.classList.remove('active'); bar1.classList.remove('active');\r\n      step2.classList.add('active'); bar2.classList.add('active');\r\n    });\r\n    backTo1Btn.addEventListener('click', () => {\r\n      step2.classList.remove('active'); bar2.classList.remove('active');\r\n      step1.classList.add('active'); bar1.classList.add('active');\r\n    });\r\n\r\n    \/\/ ---------- Add\/Remove cities ----------\r\n    addCityBtn.addEventListener('click', () => addCity(citySelect.value));\r\n    cityChips.addEventListener('click', (e) => {\r\n      const btn = e.target.closest('button[data-city]');\r\n      if (!btn) return;\r\n      selectedCities.delete(btn.getAttribute('data-city'));\r\n      renderChips();\r\n    });\r\n\r\n    \/\/ ---------- Validation ----------\r\n    function show(el) { el.style.display = 'block'; }\r\n    function hide(el) { el.style.display = 'none'; }\r\n\r\n    function validEmail(v) { return \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(String(v).toLowerCase()); }\r\n\r\n    function validateStep1() {\r\n      let ok = true;\r\n      \/\/ tour name\r\n      if (!fields.tour_name.value.trim()) { show(errs.tour_name); ok = false; } else hide(errs.tour_name);\r\n      \/\/ name\r\n      if (!fields.full_name.value.trim()) { show(errs.full_name); ok = false; } else hide(errs.full_name);\r\n      \/\/ email\r\n      if (!fields.email.value.trim() || !validEmail(fields.email.value)) { show(errs.email); ok = false; } else hide(errs.email);\r\n      \/\/ phone\r\n      if (!fields.phone.value.trim()) { show(errs.phone); ok = false; } else hide(errs.phone);\r\n      \/\/ cities\r\n      if (selectedCities.size === 0) { show(errs.cities); ok = false; } else hide(errs.cities);\r\n      return ok;\r\n    }\r\n\r\n    function validateStep2() {\r\n      let ok = true;\r\n      if (!fields.days.value || Number(fields.days.value) < 1) { show(errs.days); ok = false; } else hide(errs.days);\r\n      if (!fields.people.value || Number(fields.people.value) < 2) { show(errs.people); ok = false; } else hide(errs.people);\r\n      return ok;\r\n    }\r\n\r\n    \/\/ ---------- Submit ----------\r\n    form.addEventListener('submit', function(e) {\r\n      e.preventDefault();\r\n      if (!validateStep2()) return;\r\n\r\n      \/\/ collect activities\r\n      const acts = Array.from(document.querySelectorAll('.act:checked')).map(i => i.value);\r\n\r\n      const templateParams = {\r\n        tour_name: fields.tour_name.value.trim(),\r\n        full_name: fields.full_name.value.trim(),\r\n        email: fields.email.value.trim(),\r\n        phone: fields.phone.value.trim(),\r\n        cities: Array.from(selectedCities).join(', '),\r\n        days: String(fields.days.value),\r\n        people: String(fields.people.value),\r\n        activities: acts.length ? acts.join(', ') : 'None',\r\n        message: fields.message.value.trim() || '\u2014',\r\n        created_at: new Date().toLocaleString()\r\n      };\r\n\r\n      const submitBtn = document.getElementById('submitBtn');\r\n      const oldHtml = submitBtn.innerHTML; submitBtn.disabled = true; submitBtn.innerHTML = '<i class=\"fa-solid fa-spinner fa-spin\"><\/i>&nbsp;Sending...';\r\n\r\n      \/\/ Service & Template from user request\r\n      emailjs.send('service_z8490d1', 'template_a758c81', templateParams)\r\n        .then(() => {\r\n          \/\/ show success page inside modal\r\n          form.style.display = 'none';\r\n          successScreen.style.display = 'block';\r\n          document.querySelector('.content').scrollTo({ top: 0, behavior: 'smooth' });\r\n        })\r\n        .catch(err => {\r\n          alert('There was an error submitting your request. Please try again.');\r\n          console.error('EmailJS error:', err);\r\n        })\r\n        .finally(() => { submitBtn.disabled = false; submitBtn.innerHTML = oldHtml; });\r\n    });\r\n\r\n    \/\/ ---------- Helpers ----------\r\n    function resetAll() {\r\n      \/\/ reset UI\r\n      successScreen.style.display = 'none';\r\n      form.style.display = 'block';\r\n      step2.classList.remove('active'); bar2.classList.remove('active');\r\n      step1.classList.add('active'); bar1.classList.add('active');\r\n\r\n      \/\/ reset data\r\n      form.reset();\r\n      selectedCities.clear();\r\n      renderChips();\r\n\r\n      \/\/ hide errors\r\n      Object.values(errs).forEach(hide);\r\n    }\r\n\r\n    \/\/ ---------- Init ----------\r\n    populateCitySelect();\r\n    renderChips();\r\n  <\/script>\r\n<\/body>\r\n<\/html>\r\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Premium Transportation | Morocco Top Tour Private &#038; Group Transfers Premium &#8230; <\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"class_list":["post-477","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/moroccotoptour.com\/zh\/wp-json\/wp\/v2\/pages\/477","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/moroccotoptour.com\/zh\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/moroccotoptour.com\/zh\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/moroccotoptour.com\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/moroccotoptour.com\/zh\/wp-json\/wp\/v2\/comments?post=477"}],"version-history":[{"count":10,"href":"https:\/\/moroccotoptour.com\/zh\/wp-json\/wp\/v2\/pages\/477\/revisions"}],"predecessor-version":[{"id":802,"href":"https:\/\/moroccotoptour.com\/zh\/wp-json\/wp\/v2\/pages\/477\/revisions\/802"}],"wp:attachment":[{"href":"https:\/\/moroccotoptour.com\/zh\/wp-json\/wp\/v2\/media?parent=477"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}