{"id":29496,"date":"2026-07-15T12:27:44","date_gmt":"2026-07-15T12:27:44","guid":{"rendered":"https:\/\/definitelymoroccotours.com\/?page_id=29496"},"modified":"2026-07-15T17:30:51","modified_gmt":"2026-07-15T17:30:51","slug":"hot-air-ballon-in-marrakech","status":"publish","type":"page","link":"https:\/\/definitelymoroccotours.com\/fr\/hot-air-ballon-in-marrakech\/","title":{"rendered":"Hot air ballon in Marrakech"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"29496\" class=\"elementor elementor-29496\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-573dab9 wd-section-stretch e-con-full e-flex e-con e-parent\" data-id=\"573dab9\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;shape_divider_top&quot;:&quot;wd_curved_line&quot;}\">\n\t\t\t\t<div class=\"elementor-shape elementor-shape-top\" aria-hidden=\"true\" data-negative=\"false\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"wd-divider\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 100 100\" width=\"100%\" height=\"50px\" preserveAspectRatio=\"none\">\n<path class=\"elementor-shape-fill\" display=\"none\" d=\"M100,25.8V100H0V52.5c-4.9-6.8-9.5-13.8-15-19.7V101h125V20.9C106.3,22,103,23.7,100,25.8z\"\/>\n<path class=\"elementor-shape-fill\" d=\"M0,0v99c22-20.6,28.7-69.7,61.4-69.7c18.8,0,29.1,16.2,38.6,34V0L0,0z\"\/>\n<\/svg>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d84c5bd elementor-widget elementor-widget-html\" data-id=\"d84c5bd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- ============================================================\n  BOOKING PAGE \u2014 Hot Air Balloon in Marrakech\n  Definitely Morocco Tours \u2014 Elementor HTML Widget (English)\n  Palette : Sand #DAD3C1 \/ White #FFFFFF only\n  Font    : Lexend (Google Fonts), regular style only\n============================================================ -->\n\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Lexend:wght@300;400;500;600;700;800&display=swap\" rel=\"stylesheet\">\n\n<style>\n  #dmt-balloon-booking {\n    --sand: #DAD3C1;\n    --sand-deep: #C7BEA6;\n    --sand-pale: #EFEBE1;\n    --white: #FFFFFF;\n    --text: #3A372F;\n    --text-soft: #6B6757;\n    --line: rgba(58,55,47,0.14);\n    font-family: 'Lexend', sans-serif;\n    font-style: normal;\n    color: var(--text);\n    background: var(--white);\n    max-width: 1180px;\n    margin: 0 auto;\n    padding: 0 20px 80px;\n    box-sizing: border-box;\n  }\n  #dmt-balloon-booking * {\n    box-sizing: border-box;\n    font-family: 'Lexend', sans-serif;\n    font-style: normal !important;\n  }\n  #dmt-balloon-booking h1, #dmt-balloon-booking h2, #dmt-balloon-booking h3 {\n    margin: 0; letter-spacing: -0.01em; color: var(--text);\n  }\n\n  \/* ---------- HERO ---------- *\/\n  .dmt-hero {\n    position: relative; border-radius: 22px; overflow: hidden;\n    min-height: 460px; display: flex; align-items: flex-end;\n    margin-top: 28px; background: var(--sand-deep);\n  }\n  .dmt-hero img {\n    position: absolute; inset: 0; width: 100%; height: 100%;\n    object-fit: cover; filter: saturate(1.05) contrast(1.02);\n  }\n  .dmt-hero::after {\n    content: \"\"; position: absolute; inset: 0;\n    background: linear-gradient(180deg, rgba(20,18,14,0) 0%, rgba(20,18,14,0.05) 30%, rgba(20,18,14,0.55) 65%, rgba(20,18,14,0.92) 100%);\n    pointer-events: none;\n  }\n  .dmt-hero-content { position: relative; z-index: 2; padding: 44px 48px; width: 100%; }\n  .dmt-eyebrow, .dmt-eyebrow * {\n    display: inline-flex; align-items: center; gap: 10px;\n    font-size: 12.5px; font-weight: 500; letter-spacing: 0.18em;\n    text-transform: uppercase; color: var(--sand) !important;\n    margin-bottom: 16px; background: none !important;\n  }\n  .dmt-eyebrow .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--sand) !important; }\n  .dmt-hero h1, .dmt-hero h1 * {\n    font-size: 42px; font-weight: 700; line-height: 1.1; max-width: 680px;\n    color: #FFFFFF !important; background: none !important;\n    text-shadow: 0 2px 18px rgba(0,0,0,0.45);\n  }\n  .dmt-hero-meta { display: flex; flex-wrap: wrap; gap: 28px; margin-top: 24px; font-size: 14.5px; }\n  .dmt-hero-meta div, .dmt-hero-meta div * { color: #FFFFFF !important; opacity: 0.95; background: none !important; }\n  .dmt-hero-meta strong { color: #FFFFFF !important; font-weight: 600; }\n\n  \/* ---------- GALLERY ---------- *\/\n  .dmt-gallery {\n    display: grid; grid-template-columns: repeat(5, 1fr);\n    gap: 10px; margin-top: 12px;\n  }\n  .dmt-gallery a {\n    display: block; border-radius: 12px; overflow: hidden;\n    aspect-ratio: 1 \/ 1; cursor: pointer; background: var(--sand-pale);\n  }\n  .dmt-gallery img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s ease; }\n  .dmt-gallery a:hover img { transform: scale(1.06); }\n  @media (max-width: 760px) {\n    .dmt-gallery { grid-template-columns: repeat(3, 1fr); }\n    .dmt-gallery a:nth-child(n+4) { display: none; }\n  }\n\n  \/* ---------- LAYOUT ---------- *\/\n  .dmt-layout {\n    display: grid; grid-template-columns: 1.35fr 1fr;\n    gap: 44px; margin-top: 56px; align-items: start;\n  }\n  @media (max-width: 980px) { .dmt-layout { grid-template-columns: 1fr; } }\n\n  .dmt-section { margin-bottom: 48px; }\n  .dmt-kicker {\n    font-size: 12px; font-weight: 600; letter-spacing: 0.16em;\n    text-transform: uppercase; color: var(--text-soft); margin-bottom: 10px; display: block;\n  }\n  .dmt-section h2 { font-size: 26px; font-weight: 700; margin-bottom: 18px; }\n  .dmt-about p { font-size: 15.5px; line-height: 1.75; color: var(--text-soft); max-width: 600px; }\n\n  \/* ---------- EXPERIENCE STEPS ---------- *\/\n  .dmt-steps { display: flex; flex-direction: column; gap: 0; }\n  .dmt-step {\n    display: flex;\n    gap: 20px;\n    padding-bottom: 28px;\n    position: relative;\n  }\n  .dmt-step:last-child { padding-bottom: 0; }\n  .dmt-step-left {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    flex-shrink: 0;\n    width: 44px;\n  }\n  .dmt-step-num {\n    width: 44px; height: 44px;\n    border-radius: 50%;\n    background-color: #EFEBE1;\n    border: 2px solid #C7BEA6;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    font-size: 15px;\n    font-weight: 700;\n    color: var(--text);\n    flex-shrink: 0;\n  }\n  .dmt-step-line {\n    width: 2px;\n    flex: 1;\n    background: repeating-linear-gradient(to bottom, #C7BEA6 0, #C7BEA6 6px, transparent 6px, transparent 12px);\n    margin-top: 6px;\n  }\n  .dmt-step:last-child .dmt-step-line { display: none; }\n  .dmt-step-content { padding-top: 10px; }\n  .dmt-step-content h3 { font-size: 16px; font-weight: 600; margin-bottom: 6px; }\n  .dmt-step-content p { font-size: 14.5px; line-height: 1.65; color: var(--text-soft); margin: 0; }\n\n  \/* ---------- HIGHLIGHTS GRID ---------- *\/\n  .dmt-highlights {\n    display: grid;\n    grid-template-columns: repeat(2, 1fr);\n    gap: 14px;\n    margin-top: 4px;\n  }\n  @media (max-width: 560px) { .dmt-highlights { grid-template-columns: 1fr; } }\n  .dmt-highlight-card {\n    background: var(--sand-pale);\n    border-radius: 14px;\n    padding: 18px 20px;\n    display: flex;\n    align-items: flex-start;\n    gap: 12px;\n  }\n  .dmt-highlight-card .icon { font-size: 22px; flex-shrink: 0; margin-top: 2px; }\n  .dmt-highlight-card .txt h4 { font-size: 14px; font-weight: 600; margin: 0 0 4px; color: var(--text); }\n  .dmt-highlight-card .txt p { font-size: 13px; line-height: 1.55; color: var(--text-soft); margin: 0; }\n\n  \/* ---------- INCLUDED \/ EXCLUDED ---------- *\/\n  .dmt-incl-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }\n  @media (max-width: 560px) { .dmt-incl-grid { grid-template-columns: 1fr; } }\n  .dmt-incl-card { background: var(--sand-pale); border-radius: 16px; padding: 22px 24px; }\n  .dmt-incl-card.excl { background: var(--white); border: 1px solid var(--line); }\n  .dmt-incl-card h4 {\n    font-size: 13px; font-weight: 600; letter-spacing: 0.08em;\n    text-transform: uppercase; margin: 0 0 14px; color: var(--text);\n  }\n  .dmt-incl-card ul { list-style: none; margin: 0; padding: 0; }\n  .dmt-incl-card li {\n    font-size: 14px; line-height: 1.5; color: var(--text-soft);\n    padding: 7px 0 7px 24px; position: relative; border-bottom: 1px solid var(--line);\n  }\n  .dmt-incl-card li:last-child { border-bottom: none; }\n  .dmt-incl-card li::before { position: absolute; left: 0; top: 7px; font-weight: 700; }\n  .dmt-incl-card:not(.excl) li::before { content: \"\u2713\"; color: var(--text); }\n  .dmt-incl-card.excl li::before { content: \"\u2013\"; color: var(--text-soft); }\n\n  \/* lightbox *\/\n  .dmt-lightbox {\n    position: fixed; inset: 0; background: rgba(58,55,47,0.92);\n    z-index: 9999; display: none; align-items: center; justify-content: center; padding: 30px;\n  }\n  .dmt-lightbox.open { display: flex; }\n  .dmt-lightbox img { max-width: 100%; max-height: 100%; border-radius: 8px; }\n  .dmt-lightbox-close {\n    position: absolute; top: 24px; right: 28px;\n    color: var(--white); font-size: 28px; cursor: pointer; background: none; border: none; line-height: 1;\n  }\n<\/style>\n\n<div id=\"dmt-balloon-booking\">\n\n  <!-- HERO -->\n  <div class=\"dmt-hero\">\n    <img decoding=\"async\" src=\"https:\/\/definitelymoroccotours.com\/wp-content\/uploads\/2023\/02\/morocco-hot-air-balloon-ride-tours-in-marrakech-Copie-min.jpg\" alt=\"Hot Air Balloon in Marrakech\">\n    <div class=\"dmt-hero-content\">\n      <span class=\"dmt-eyebrow\"><span class=\"dot\"><\/span> Activity \u00b7 Half Day \u00b7 Marrakech<\/span>\n      <h1>Hot Air Balloon in Marrakech<\/h1>\n      <div class=\"dmt-hero-meta\">\n        <div>\ud83c\udf04 <strong>Early morning flight at sunrise<\/strong><\/div>\n        <div>\ud83d\ude97 <strong>Pick up & drop off included<\/strong><\/div>\n        <div>\ud83d\udc68\u200d\u2708\ufe0f <strong>Experienced licensed pilot<\/strong><\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- GALLERY -->\n  <div class=\"dmt-gallery\" id=\"dmt-gallery\">\n    <a href=\"https:\/\/definitelymoroccotours.com\/wp-content\/uploads\/2023\/02\/Hot_air_balloon_ride_Marrakech_Morocco-Copie-min.jpg\" class=\"dmt-gallery-link\">\n      <img decoding=\"async\" src=\"https:\/\/definitelymoroccotours.com\/wp-content\/uploads\/2023\/02\/Hot_air_balloon_ride_Marrakech_Morocco-Copie-min.jpg\" alt=\"Hot air balloon Marrakech\">\n    <\/a>\n    <a href=\"https:\/\/definitelymoroccotours.com\/wp-content\/uploads\/2023\/02\/morocco-hot-air-balloon-ride-tours-in-marrakech-Copie-min.jpg\" class=\"dmt-gallery-link\">\n      <img decoding=\"async\" src=\"https:\/\/definitelymoroccotours.com\/wp-content\/uploads\/2023\/02\/morocco-hot-air-balloon-ride-tours-in-marrakech-Copie-min.jpg\" alt=\"Balloon flight Morocco\">\n    <\/a>\n    <a href=\"https:\/\/definitelymoroccotours.com\/wp-content\/uploads\/2023\/02\/marrakech-hot-air-balloon-ride-Copie-min.jpg\" class=\"dmt-gallery-link\">\n      <img decoding=\"async\" src=\"https:\/\/definitelymoroccotours.com\/wp-content\/uploads\/2023\/02\/marrakech-hot-air-balloon-ride-Copie-min.jpg\" alt=\"Balloon ride Marrakech\">\n    <\/a>\n    <a href=\"https:\/\/definitelymoroccotours.com\/wp-content\/uploads\/2023\/02\/177605_photo_xl-Copie-min.jpg\" class=\"dmt-gallery-link\">\n      <img decoding=\"async\" src=\"https:\/\/definitelymoroccotours.com\/wp-content\/uploads\/2023\/02\/177605_photo_xl-Copie-min.jpg\" alt=\"Aerial view Marrakech\">\n    <\/a>\n    <a href=\"https:\/\/definitelymoroccotours.com\/wp-content\/uploads\/2023\/02\/530-hot-air-balloon-marrakech-2-e1554564475677-Copie-min.jpg\" class=\"dmt-gallery-link\">\n      <img decoding=\"async\" src=\"https:\/\/definitelymoroccotours.com\/wp-content\/uploads\/2023\/02\/530-hot-air-balloon-marrakech-2-e1554564475677-Copie-min.jpg\" alt=\"Hot air balloon sunrise\">\n    <\/a>\n  <\/div>\n\n  <div class=\"dmt-layout\">\n    <!-- LEFT COLUMN : CONTENT -->\n    <div>\n      <div class=\"dmt-section dmt-about\">\n        <span class=\"dmt-kicker\">About this experience<\/span>\n        <h2>Float above Marrakech at sunrise \u2014 a once-in-a-lifetime moment<\/h2>\n        <p>There's no better way to experience the stunning views of Morocco than floating above the landscape in a hot air balloon. Our early morning flights take off from the palm groves of Marrakech, offering a truly unique perspective on the city and its surroundings. You'll soar over miles of golden desert, snow-capped mountains and picturesque Berber villages nestled amongst the rugged terrain. As the sun rises, you'll see the world awakening below you as you drift peacefully above it all. Our experienced pilots will guide you safely through the skies and provide commentary on the history, culture and geography of the area.<\/p>\n      <\/div>\n\n      <div class=\"dmt-section\">\n        <span class=\"dmt-kicker\">How it works<\/span>\n        <h2>Your balloon experience, step by step<\/h2>\n        <div class=\"dmt-steps\">\n          <div class=\"dmt-step\">\n            <div class=\"dmt-step-left\">\n              <div class=\"dmt-step-num\">1<\/div>\n              <div class=\"dmt-step-line\"><\/div>\n            <\/div>\n            <div class=\"dmt-step-content\">\n              <h3>Pre-dawn pick up<\/h3>\n              <p>Our driver picks you up from your accommodation in Marrakech before sunrise, usually around 5:30\u20136:00 AM depending on the season. Transfer to the launch site in the palm groves.<\/p>\n            <\/div>\n          <\/div>\n          <div class=\"dmt-step\">\n            <div class=\"dmt-step-left\">\n              <div class=\"dmt-step-num\">2<\/div>\n              <div class=\"dmt-step-line\"><\/div>\n            <\/div>\n            <div class=\"dmt-step-content\">\n              <h3>Balloon inflation & briefing<\/h3>\n              <p>Watch the balloon inflate as your pilot briefs you on safety procedures and what to expect during the flight. A magical spectacle in itself.<\/p>\n            <\/div>\n          <\/div>\n          <div class=\"dmt-step\">\n            <div class=\"dmt-step-left\">\n              <div class=\"dmt-step-num\">3<\/div>\n              <div class=\"dmt-step-line\"><\/div>\n            <\/div>\n            <div class=\"dmt-step-content\">\n              <h3>Flight at sunrise<\/h3>\n              <p>Lift off and soar over the palm groves, Atlas Mountains and Berber villages as the sun rises over Morocco. Your experienced and licensed pilot narrates the journey below \u2014 approximately 60\u201390 minutes in the air.<\/p>\n            <\/div>\n          <\/div>\n          <div class=\"dmt-step\">\n            <div class=\"dmt-step-left\">\n              <div class=\"dmt-step-num\">4<\/div>\n              <div class=\"dmt-step-line\"><\/div>\n            <\/div>\n            <div class=\"dmt-step-content\">\n              <h3>Landing & celebration<\/h3>\n              <p>After a gentle landing, celebrate your flight with the traditional Moroccan welcome. Your certificate of flight is presented to mark the occasion.<\/p>\n            <\/div>\n          <\/div>\n          <div class=\"dmt-step\">\n            <div class=\"dmt-step-left\">\n              <div class=\"dmt-step-num\">5<\/div>\n              <div class=\"dmt-step-line\"><\/div>\n            <\/div>\n            <div class=\"dmt-step-content\">\n              <h3>Return transfer<\/h3>\n              <p>Transfer back to your accommodation in Marrakech, usually arriving back in the late morning \u2014 leaving the rest of your day free.<\/p>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"dmt-section\">\n        <span class=\"dmt-kicker\">Highlights<\/span>\n        <h2>What makes this experience special<\/h2>\n        <div class=\"dmt-highlights\">\n          <div class=\"dmt-highlight-card\">\n            <span class=\"icon\">\ud83c\udf05<\/span>\n            <div class=\"txt\">\n              <h4>Sunrise views<\/h4>\n              <p>Watch the golden light of dawn spread over the Atlas Mountains and the Marrakech palm groves from above.<\/p>\n            <\/div>\n          <\/div>\n          <div class=\"dmt-highlight-card\">\n            <span class=\"icon\">\ud83c\udfd4\ufe0f<\/span>\n            <div class=\"txt\">\n              <h4>Atlas Mountains panorama<\/h4>\n              <p>On clear mornings, the snow-capped peaks of the High Atlas are visible in the distance \u2014 a breathtaking backdrop.<\/p>\n            <\/div>\n          <\/div>\n          <div class=\"dmt-highlight-card\">\n            <span class=\"icon\">\ud83c\udfd8\ufe0f<\/span>\n            <div class=\"txt\">\n              <h4>Berber villages from above<\/h4>\n              <p>Float silently over traditional villages and ochre-coloured landscapes that you'd never see from the ground.<\/p>\n            <\/div>\n          <\/div>\n          <div class=\"dmt-highlight-card\">\n            <span class=\"icon\">\ud83d\udc68\u200d\u2708\ufe0f<\/span>\n            <div class=\"txt\">\n              <h4>Experienced licensed pilots<\/h4>\n              <p>All flights are operated by certified professionals with years of experience flying over Marrakech.<\/p>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"dmt-section\">\n        <span class=\"dmt-kicker\">Good to know<\/span>\n        <h2>Included \/ Excluded<\/h2>\n        <div class=\"dmt-incl-grid\">\n          <div class=\"dmt-incl-card\">\n            <h4>Included<\/h4>\n            <ul>\n              <li>Pick up and drop off at your accommodation in Marrakech<\/li>\n              <li>1 day exclusive service of a Toyota Land Cruiser 4wd or Mini-bus<\/li>\n              <li>1 day service of an English speaking driver\/guide<\/li>\n              <li>Hot air balloon flight with licensed pilot<\/li>\n              <li>Flight certificate upon landing<\/li>\n            <\/ul>\n          <\/div>\n          <div class=\"dmt-incl-card excl\">\n            <h4>Excluded<\/h4>\n            <ul>\n              <li>Drinks<\/li>\n              <li>Lunch<\/li>\n              <li>Entrance \/ Activity fees<\/li>\n              <li>Tips and gratuities<\/li>\n            <\/ul>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- RIGHT COLUMN : BOOKING FORM SHORTCODE -->\n    <div>\n      \t\t\t<link rel=\"stylesheet\" id=\"elementor-post-29281-css\" href=\"https:\/\/definitelymoroccotours.com\/wp-content\/uploads\/elementor\/css\/post-29281.css?ver=1784243140\" type=\"text\/css\" media=\"all\">\n\t\t\t\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"29281\" class=\"elementor elementor-29281\" data-elementor-post-type=\"cms_block\">\n\t\t\t\t<div class=\"wd-negative-gap elementor-element elementor-element-7fadad2 e-flex e-con-boxed e-con e-parent\" data-id=\"7fadad2\" 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-00b3a27 elementor-widget elementor-widget-html\" data-id=\"00b3a27\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- ============================================================\n  GENERIC BOOKING FORM \u2014 Definitely Morocco Tours\n  Reusable shortcode widget for ALL tour\/activity pages\n  Palette : Sand #DAD3C1 \/ White #FFFFFF only\n  Font    : Lexend (Google Fonts), regular style only\n  Auto-detects the tour name from the page title (document.title)\n  Direct email delivery via FormSubmit (AJAX) \u2014 no mail client needed\n  Shows a confirmation popup after successful submission\n============================================================ -->\n\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Lexend:wght@300;400;500;600;700;800&display=swap\" rel=\"stylesheet\">\n\n<style>\n  #dmt-booking-form-widget {\n    --sand: #DAD3C1;\n    --sand-deep: #C7BEA6;\n    --sand-pale: #EFEBE1;\n    --white: #FFFFFF;\n    --text: #3A372F;\n    --text-soft: #6B6757;\n    --line: rgba(58,55,47,0.14);\n    font-family: 'Lexend', sans-serif;\n    font-style: normal;\n    color: var(--text);\n    max-width: 460px;\n    box-sizing: border-box;\n  }\n  #dmt-booking-form-widget * {\n    box-sizing: border-box;\n    font-family: 'Lexend', sans-serif;\n    font-style: normal !important;\n  }\n\n  \/* ---------- BOOKING CARD ---------- *\/\n  .dmt-book-card {\n    background-color: #EFEBE1 !important;\n    border: 1px solid #C7BEA6;\n    color: var(--text);\n    border-radius: 22px;\n    padding: 32px;\n  }\n  .dmt-book-card .dmt-book-head { margin-bottom: 22px; }\n  .dmt-book-card .dmt-book-head .label {\n    font-size: 11.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-soft);\n  }\n  .dmt-book-card .dmt-book-head h3 {\n    font-size: 21px; font-weight: 700; margin: 8px 0 0; color: var(--text);\n  }\n  .dmt-book-card .dmt-book-head .sub {\n    font-size: 14px; margin-top: 8px; color: var(--text-soft); line-height: 1.5;\n  }\n  .dmt-book-card .dmt-book-head .tour-tag {\n    display: inline-flex;\n    align-items: center;\n    gap: 6px;\n    margin-top: 12px;\n    background-color: #FFFFFF !important;\n    border: 1px solid #C7BEA6;\n    border-radius: 8px;\n    padding: 7px 12px;\n    font-size: 12.5px;\n    font-weight: 600;\n    color: var(--text);\n  }\n\n  .dmt-field { margin-bottom: 16px; }\n  .dmt-field label {\n    display: block;\n    font-size: 12px;\n    font-weight: 500;\n    letter-spacing: 0.04em;\n    color: var(--text-soft);\n    margin-bottom: 7px;\n  }\n  .dmt-field input, .dmt-field textarea {\n    width: 100%;\n    background-color: #FFFFFF !important;\n    border: 1px solid #C7BEA6;\n    border-radius: 10px;\n    padding: 12px 14px;\n    color: var(--text);\n    font-size: 14px;\n    outline: none;\n    transition: border-color .2s;\n  }\n  .dmt-field input::placeholder, .dmt-field textarea::placeholder { color: #A9A290; }\n  .dmt-field input:focus, .dmt-field textarea:focus { border-color: var(--text-soft); }\n  .dmt-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }\n\n  \/* ---------- PHONE: country code selector ---------- *\/\n  .dmt-phone-group { display: flex; gap: 8px; }\n  .dmt-country-btn {\n    display: flex;\n    align-items: center;\n    gap: 6px;\n    background-color: #FFFFFF !important;\n    border: 1px solid #C7BEA6;\n    border-radius: 10px;\n    padding: 0 10px;\n    cursor: pointer;\n    font-size: 14px;\n    color: var(--text);\n    flex-shrink: 0;\n    white-space: nowrap;\n  }\n  .dmt-country-btn .flag { font-size: 16px; }\n  .dmt-country-btn .chev { font-size: 10px; opacity: 0.6; margin-left: 2px; }\n  .dmt-phone-group input { flex: 1; }\n\n  \/* ---------- Country popup (fixed overlay, fully opaque) ---------- *\/\n  .dmt-country-overlay {\n    position: fixed !important;\n    inset: 0 !important;\n    background-color: rgba(40,37,30,0.55) !important;\n    background-image: none !important;\n    z-index: 999999 !important;\n    display: none;\n    align-items: center;\n    justify-content: center;\n    padding: 20px;\n    opacity: 1 !important;\n    filter: none !important;\n  }\n  .dmt-country-overlay.open { display: flex !important; }\n  .dmt-country-popup {\n    background-color: #FFFFFF !important;\n    background-image: none !important;\n    border-radius: 20px;\n    padding: 18px;\n    width: 320px;\n    max-height: 70vh;\n    display: flex;\n    flex-direction: column;\n    box-shadow: 0 30px 60px rgba(0,0,0,0.35);\n    font-family: 'Lexend', sans-serif !important;\n    opacity: 1 !important;\n    filter: none !important;\n    isolation: isolate;\n    position: relative;\n  }\n  .dmt-country-popup * { opacity: 1 !important; filter: none !important; }\n  .dmt-country-popup-head {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    margin-bottom: 12px;\n    font-weight: 600;\n    font-size: 15px;\n    color: #3A372F !important;\n    flex-shrink: 0;\n  }\n  .dmt-country-search {\n    width: 100%;\n    background-color: #EFEBE1 !important;\n    border: 1px solid #C7BEA6 !important;\n    border-radius: 10px;\n    padding: 10px 12px;\n    font-size: 13.5px;\n    color: #3A372F !important;\n    margin-bottom: 10px;\n    flex-shrink: 0;\n  }\n  .dmt-country-search::placeholder { color: #A9A290 !important; }\n  .dmt-country-list { overflow-y: auto; flex: 1; }\n  .dmt-country-item {\n    display: flex;\n    align-items: center;\n    gap: 10px;\n    padding: 9px 10px;\n    border-radius: 8px;\n    cursor: pointer;\n    font-size: 13.5px;\n    color: #3A372F !important;\n    background-color: transparent !important;\n  }\n  .dmt-country-item:hover { background-color: #EFEBE1 !important; }\n  .dmt-country-item .flag { font-size: 16px; }\n  .dmt-country-item .name { flex: 1; }\n  .dmt-country-item .code { color: #6B6757 !important; font-size: 12.5px; }\n  .dmt-country-popup-close {\n    background: none; border: none; color: #6B6757 !important;\n    font-size: 13px; cursor: pointer;\n  }\n  .dmt-country-popup-close:hover { color: #3A372F !important; }\n\n  \/* ---------- CUSTOM CALENDAR ---------- *\/\n  .dmt-date-display {\n    width: 100%;\n    background-color: #FFFFFF !important;\n    border: 1px solid #C7BEA6;\n    border-radius: 10px;\n    padding: 12px 14px;\n    font-size: 14px;\n    color: var(--text-soft);\n    text-align: left;\n    cursor: pointer;\n    display: flex;\n    align-items: center;\n    gap: 8px;\n  }\n  .dmt-date-display.filled { color: var(--text); font-weight: 500; }\n  .dmt-date-display .ico { font-size: 13px; }\n  .dmt-date-display:hover { border-color: var(--text-soft); }\n\n  .dmt-cal-overlay {\n    position: fixed !important;\n    inset: 0 !important;\n    background-color: rgba(40,37,30,0.55) !important;\n    background-image: none !important;\n    z-index: 999999 !important;\n    display: none;\n    align-items: center;\n    justify-content: center;\n    padding: 20px;\n    opacity: 1 !important;\n    filter: none !important;\n    backdrop-filter: none !important;\n  }\n  .dmt-cal-overlay.open { display: flex !important; }\n  .dmt-cal-popup {\n    background-color: #FFFFFF !important;\n    background-image: none !important;\n    border-radius: 20px;\n    padding: 24px;\n    width: 380px;\n    max-width: 92vw;\n    box-shadow: 0 30px 60px rgba(0,0,0,0.35);\n    font-family: 'Lexend', sans-serif !important;\n    opacity: 1 !important;\n    filter: none !important;\n    isolation: isolate;\n    position: relative;\n  }\n  .dmt-cal-popup * { opacity: 1 !important; filter: none !important; }\n  .dmt-cal-head {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    margin-bottom: 18px;\n    font-weight: 600;\n    font-size: 16px;\n    color: #3A372F !important;\n  }\n  .dmt-cal-nav {\n    width: 34px; height: 34px;\n    border-radius: 8px;\n    border: 1px solid #C7BEA6 !important;\n    background-color: #EFEBE1 !important;\n    color: #3A372F !important;\n    font-size: 16px;\n    cursor: pointer;\n    flex-shrink: 0;\n  }\n  .dmt-cal-nav:hover { background-color: #DAD3C1 !important; }\n  .dmt-cal-weekdays {\n    display: grid;\n    grid-template-columns: repeat(7, minmax(0, 1fr));\n    text-align: center;\n    font-size: 11.5px;\n    font-weight: 600;\n    letter-spacing: 0.04em;\n    color: #6B6757 !important;\n    margin-bottom: 8px;\n  }\n  .dmt-cal-grid {\n    display: grid;\n    grid-template-columns: repeat(7, minmax(0, 1fr));\n    gap: 6px;\n  }\n  .dmt-cal-day {\n    width: 100%;\n    aspect-ratio: 1\/1;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    border-radius: 9px;\n    font-size: 14px;\n    color: #3A372F !important;\n    cursor: pointer;\n    border: none;\n    background-color: transparent !important;\n  }\n  .dmt-cal-day:hover:not(.disabled):not(.empty) { background-color: #EFEBE1 !important; }\n  .dmt-cal-day.empty { visibility: hidden; cursor: default; }\n  .dmt-cal-day.disabled { color: #C9C4B4 !important; cursor: not-allowed; }\n  .dmt-cal-day.selected { background-color: #C7BEA6 !important; color: #3A372F !important; font-weight: 700; }\n  .dmt-cal-day.today { box-shadow: inset 0 0 0 1.5px #C7BEA6; }\n  .dmt-cal-footer { margin-top: 14px; display: flex; justify-content: flex-end; }\n  .dmt-cal-cancel {\n    background: none; border: none; color: #6B6757 !important;\n    font-size: 13px; cursor: pointer; padding: 6px 10px;\n  }\n  .dmt-cal-cancel:hover { color: #3A372F !important; }\n\n  \/* ---------- STEPPER ---------- *\/\n  .dmt-stepper {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    background-color: #FFFFFF !important;\n    border: 1px solid #C7BEA6;\n    border-radius: 10px;\n    padding: 6px 8px;\n  }\n  .dmt-stepper button {\n    width: 32px; height: 32px;\n    border-radius: 8px;\n    border: none;\n    background-color: #EFEBE1 !important;\n    color: var(--text);\n    font-size: 16px;\n    cursor: pointer;\n    transition: background .15s;\n  }\n  .dmt-stepper button:hover { background-color: #DAD3C1 !important; }\n  .dmt-stepper .count { font-size: 15px; font-weight: 600; color: var(--text); }\n\n  \/* ---------- BUTTONS ---------- *\/\n  .dmt-submit-btn {\n    width: 100%;\n    border: none;\n    border-radius: 12px;\n    padding: 15px 18px;\n    font-size: 15px;\n    font-weight: 700;\n    letter-spacing: 0.01em;\n    cursor: pointer;\n    margin-top: 8px;\n    transition: transform .15s, background .15s, opacity .15s;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    gap: 8px;\n  }\n  .dmt-submit-btn:active { transform: translateY(0); }\n  .dmt-submit-btn:disabled { opacity: 0.65; cursor: not-allowed; transform: none; }\n  .dmt-submit-email { background-color: #C7BEA6 !important; color: var(--text); }\n  .dmt-submit-email:hover:not(:disabled) { background-color: #DAD3C1 !important; transform: translateY(-1px); }\n  .dmt-submit-wa {\n    background-color: #FFFFFF !important;\n    color: var(--text);\n    border: 1px solid #C7BEA6;\n    margin-top: 10px;\n    font-size: 14px;\n  }\n  .dmt-submit-wa:hover:not(:disabled) { background-color: #EFEBE1 !important; transform: translateY(-1px); }\n\n  .dmt-spinner {\n    width: 15px; height: 15px;\n    border-radius: 50%;\n    border: 2px solid rgba(58,55,47,0.25);\n    border-top-color: #3A372F;\n    animation: dmt-spin .7s linear infinite;\n    display: inline-block;\n  }\n  @keyframes dmt-spin { to { transform: rotate(360deg); } }\n\n  .dmt-status {\n    margin-top: 14px;\n    font-size: 13px;\n    text-align: center;\n    display: none;\n    padding: 10px;\n    border-radius: 8px;\n  }\n  .dmt-status.show { display: block; }\n  .dmt-status.ok { background-color: #DAD3C1 !important; color: var(--text); }\n  .dmt-status.err { background-color: #F3D9D3 !important; color: #7A342A; }\n\n  .dmt-trust {\n    display: flex;\n    gap: 18px;\n    margin-top: 22px;\n    padding-top: 20px;\n    border-top: 1px solid #C7BEA6;\n    font-size: 12px;\n    color: var(--text-soft);\n    flex-wrap: wrap;\n  }\n  .dmt-trust div { display: flex; align-items: center; gap: 6px; }\n\n  \/* ---------- CONFIRMATION POPUP (after successful submission) ---------- *\/\n  .dmt-confirm-overlay {\n    position: fixed !important;\n    inset: 0 !important;\n    background-color: rgba(40,37,30,0.6) !important;\n    background-image: none !important;\n    z-index: 9999999 !important;\n    display: none;\n    align-items: center;\n    justify-content: center;\n    padding: 20px;\n    opacity: 1 !important;\n    filter: none !important;\n  }\n  .dmt-confirm-overlay.open { display: flex !important; }\n  .dmt-confirm-popup {\n    background-color: #FFFFFF !important;\n    background-image: none !important;\n    border-radius: 22px;\n    padding: 36px 32px 30px;\n    width: 380px;\n    max-width: 92vw;\n    text-align: center;\n    box-shadow: 0 30px 70px rgba(0,0,0,0.4);\n    font-family: 'Lexend', sans-serif !important;\n    opacity: 1 !important;\n    filter: none !important;\n    isolation: isolate;\n    position: relative;\n    transform: scale(0.94);\n    transition: transform .25s ease;\n  }\n  .dmt-confirm-overlay.open .dmt-confirm-popup { transform: scale(1); }\n  .dmt-confirm-popup * { opacity: 1 !important; filter: none !important; }\n  .dmt-confirm-icon {\n    width: 62px; height: 62px;\n    border-radius: 50%;\n    background-color: #EFEBE1 !important;\n    border: 1px solid #C7BEA6;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    font-size: 28px;\n    margin: 0 auto 18px;\n    color: #3A372F !important;\n  }\n  .dmt-confirm-popup h4 {\n    font-size: 19px;\n    font-weight: 700;\n    color: #3A372F !important;\n    margin: 0 0 10px;\n  }\n  .dmt-confirm-popup p {\n    font-size: 14px;\n    line-height: 1.6;\n    color: #6B6757 !important;\n    margin: 0 0 24px;\n  }\n  .dmt-confirm-popup .tour-recap {\n    background-color: #EFEBE1 !important;\n    border: 1px solid #C7BEA6;\n    border-radius: 12px;\n    padding: 12px 14px;\n    font-size: 13px;\n    color: #3A372F !important;\n    margin-bottom: 22px;\n    text-align: left;\n  }\n  .dmt-confirm-popup .tour-recap strong { font-weight: 600; }\n  .dmt-confirm-close-btn {\n    width: 100%;\n    border: none;\n    border-radius: 12px;\n    padding: 13px 18px;\n    font-size: 14.5px;\n    font-weight: 700;\n    cursor: pointer;\n    background-color: #C7BEA6 !important;\n    color: #3A372F !important;\n    transition: background .15s, transform .15s;\n  }\n  .dmt-confirm-close-btn:hover { background-color: #DAD3C1 !important; transform: translateY(-1px); }\n  .dmt-confirm-popup-x {\n    position: absolute;\n    top: 14px; right: 14px;\n    width: 28px; height: 28px;\n    border-radius: 50%;\n    background-color: #EFEBE1 !important;\n    border: none;\n    color: #3A372F !important;\n    font-size: 13px;\n    cursor: pointer;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n  }\n\n  \/* ---------- MOBILE STICKY BUTTON + BOTTOM SHEET ---------- *\/\n  .dmt-sticky-book-btn { display: none; }\n  .dmt-sheet-overlay { display: none; }\n  .dmt-sheet-handle { display: none; }\n  .dmt-sheet-close { display: none; }\n\n  @media (max-width: 860px) {\n    .dmt-sticky-book-btn {\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      position: fixed;\n      left: 16px;\n      right: 16px;\n      bottom: 16px;\n      z-index: 99998;\n      background-color: #DAD3C1 !important;\n      color: #3A372F !important;\n      border: 1px solid #C7BEA6;\n      border-radius: 16px;\n      padding: 16px 20px;\n      box-shadow: 0 12px 30px rgba(58,55,47,0.22);\n      cursor: pointer;\n    }\n    .dmt-sticky-book-btn .sticky-label {\n      font-size: 12.5px;\n      color: #6B6757 !important;\n      font-weight: 400;\n    }\n    .dmt-sticky-book-btn .sticky-cta {\n      font-size: 15.5px;\n      font-weight: 700;\n      color: #3A372F !important;\n      display: flex;\n      align-items: center;\n      gap: 6px;\n    }\n    .dmt-sticky-book-btn .arrow { color: #3A372F !important; }\n    .dmt-sticky-book-btn { flex-direction: column; align-items: flex-start; gap: 2px; }\n    .dmt-sticky-book-btn .sticky-cta { align-self: stretch; justify-content: space-between; }\n    .dmt-sticky-book-btn.hidden { transform: translateY(150%); }\n    .dmt-sticky-book-btn { transition: transform .25s ease; }\n\n    .dmt-sheet-overlay {\n      position: fixed; inset: 0;\n      background-color: rgba(40,37,30,0.55) !important;\n      z-index: 99996;\n      opacity: 0;\n      visibility: hidden;\n      transition: opacity .25s ease;\n    }\n    .dmt-sheet-overlay.open { opacity: 1; visibility: visible; }\n\n    .dmt-book-card {\n      position: fixed !important;\n      left: 0; right: 0; bottom: 0;\n      top: auto !important;\n      z-index: 99997;\n      max-height: 88vh;\n      overflow-y: auto;\n      border-radius: 24px 24px 0 0 !important;\n      box-shadow: 0 -16px 40px rgba(0,0,0,0.3);\n      transform: translateY(105%);\n      transition: transform .32s cubic-bezier(.32,.72,0,1);\n      max-width: 100% !important;\n      width: 100%;\n      padding-top: 14px !important;\n    }\n    .dmt-book-card.open { transform: translateY(0); }\n\n    .dmt-sheet-handle {\n      display: block;\n      width: 40px;\n      height: 4px;\n      border-radius: 4px;\n      background-color: #C7BEA6 !important;\n      margin: 0 auto 14px;\n    }\n    .dmt-sheet-close {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      position: absolute;\n      top: 14px; right: 16px;\n      width: 30px; height: 30px;\n      border-radius: 50%;\n      background-color: #EFEBE1 !important;\n      border: none;\n      color: #3A372F !important;\n      font-size: 14px;\n      cursor: pointer;\n    }\n\n    \/* Body padding so content isn't hidden behind the sticky button *\/\n    body { padding-bottom: 90px; }\n  }\n<\/style>\n\n<div id=\"dmt-booking-form-widget\">\n\n  <!-- STICKY MOBILE BUTTON -->\n  <button type=\"button\" class=\"dmt-sticky-book-btn\" id=\"dmt-sticky-book-btn\">\n    <span class=\"sticky-label\">Book this tour<\/span>\n    <span class=\"sticky-cta\">Book now <span class=\"arrow\">\u2192<\/span><\/span>\n  <\/button>\n\n  <!-- Overlay behind the mobile sheet -->\n  <div class=\"dmt-sheet-overlay\" id=\"dmt-sheet-overlay\"><\/div>\n\n  <div class=\"dmt-book-card\" id=\"dmt-book-card\">\n    <div class=\"dmt-sheet-handle\" id=\"dmt-sheet-handle\"><\/div>\n    <button type=\"button\" class=\"dmt-sheet-close\" id=\"dmt-sheet-close\">\u2715<\/button>\n    <div class=\"dmt-book-head\">\n      <span class=\"label\">Reservation<\/span>\n      <h3>Book now<\/h3>\n      <div class=\"sub\">Send us your details and we'll confirm availability and pricing for your group.<\/div>\n      <div class=\"tour-tag\">\ud83d\udccd <span id=\"dmt-tour-name-display\">This tour<\/span><\/div>\n    <\/div>\n\n    <form id=\"dmt-booking-form\">\n      <div class=\"dmt-field\">\n        <label for=\"dmt-name\">Your name<\/label>\n        <input type=\"text\" id=\"dmt-name\" placeholder=\"Your name\" required>\n      <\/div>\n\n      <div class=\"dmt-field\">\n        <label for=\"dmt-email\">Your email<\/label>\n        <input type=\"email\" id=\"dmt-email\" placeholder=\"you@email.com\" required>\n      <\/div>\n\n      <div class=\"dmt-field\">\n        <label for=\"dmt-phone\">Your phone<\/label>\n        <div class=\"dmt-phone-group\">\n          <button type=\"button\" class=\"dmt-country-btn\" id=\"dmt-country-btn\">\n            <span class=\"flag\" id=\"dmt-country-flag\">\ud83c\uddf2\ud83c\udde6<\/span>\n            <span class=\"code\" id=\"dmt-country-code\">+212<\/span>\n            <span class=\"chev\">\u25be<\/span>\n          <\/button>\n          <input type=\"tel\" id=\"dmt-phone\" placeholder=\"6 12 34 56 78\" required>\n        <\/div>\n      <\/div>\n\n      <div class=\"dmt-field\">\n        <label>Travel dates<\/label>\n        <div class=\"dmt-row2\">\n          <div class=\"dmt-date-box\">\n            <button type=\"button\" class=\"dmt-date-display\" id=\"dmt-date-from-btn\">\n              <span class=\"ico\">\ud83d\udcc5<\/span>\n              <span id=\"dmt-date-from-label\">From<\/span>\n            <\/button>\n          <\/div>\n          <div class=\"dmt-date-box\">\n            <button type=\"button\" class=\"dmt-date-display\" id=\"dmt-date-to-btn\">\n              <span class=\"ico\">\ud83d\udcc5<\/span>\n              <span id=\"dmt-date-to-label\">To<\/span>\n            <\/button>\n          <\/div>\n        <\/div>\n        <input type=\"hidden\" id=\"dmt-date-from\">\n        <input type=\"hidden\" id=\"dmt-date-to\">\n      <\/div>\n\n      <div class=\"dmt-field\">\n        <label>Number of participants<\/label>\n        <div class=\"dmt-stepper\">\n          <button type=\"button\" id=\"dmt-minus\">\u2212<\/button>\n          <span class=\"count\" id=\"dmt-count\">2<\/span>\n          <button type=\"button\" id=\"dmt-plus\">+<\/button>\n        <\/div>\n      <\/div>\n\n      <div class=\"dmt-field\">\n        <label for=\"dmt-message\">Your message (optional)<\/label>\n        <textarea id=\"dmt-message\" rows=\"3\" placeholder=\"Anything else we should know?\"><\/textarea>\n      <\/div>\n\n      <button type=\"submit\" class=\"dmt-submit-btn dmt-submit-email\" id=\"dmt-submit-email-btn\">\u2709\ufe0f Send booking request<\/button>\n      <button type=\"button\" class=\"dmt-submit-btn dmt-submit-wa\" id=\"dmt-send-wa\">\ud83d\udcac Send via WhatsApp<\/button>\n      <div class=\"dmt-status\" id=\"dmt-status\"><\/div>\n    <\/form>\n\n    <div class=\"dmt-trust\">\n      <div>\u2713 Fast reply<\/div>\n      <div>\u2713 No obligation<\/div>\n      <div>\u2713 Pay on arrival<\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<!-- CUSTOM CALENDAR POPUP -->\n<div class=\"dmt-cal-overlay\" id=\"dmt-cal-overlay\">\n  <div class=\"dmt-cal-popup\">\n    <div class=\"dmt-cal-head\">\n      <button type=\"button\" class=\"dmt-cal-nav\" id=\"dmt-cal-prev\">\u2039<\/button>\n      <span id=\"dmt-cal-title\">Month Year<\/span>\n      <button type=\"button\" class=\"dmt-cal-nav\" id=\"dmt-cal-next\">\u203a<\/button>\n    <\/div>\n    <div class=\"dmt-cal-weekdays\">\n      <span>Su<\/span><span>Mo<\/span><span>Tu<\/span><span>We<\/span><span>Th<\/span><span>Fr<\/span><span>Sa<\/span>\n    <\/div>\n    <div class=\"dmt-cal-grid\" id=\"dmt-cal-grid\"><\/div>\n    <div class=\"dmt-cal-footer\">\n      <button type=\"button\" class=\"dmt-cal-cancel\" id=\"dmt-cal-cancel\">Cancel<\/button>\n    <\/div>\n  <\/div>\n<\/div>\n\n<!-- COUNTRY CODE POPUP -->\n<div class=\"dmt-country-overlay\" id=\"dmt-country-overlay\">\n  <div class=\"dmt-country-popup\">\n    <div class=\"dmt-country-popup-head\">\n      <span>Select country code<\/span>\n      <button type=\"button\" class=\"dmt-country-popup-close\" id=\"dmt-country-popup-close\">\u2715<\/button>\n    <\/div>\n    <input type=\"text\" class=\"dmt-country-search\" id=\"dmt-country-search\" placeholder=\"Search country...\">\n    <div class=\"dmt-country-list\" id=\"dmt-country-list\"><\/div>\n  <\/div>\n<\/div>\n\n<!-- SUCCESS CONFIRMATION POPUP (shown after the booking request is sent) -->\n<div class=\"dmt-confirm-overlay\" id=\"dmt-confirm-overlay\">\n  <div class=\"dmt-confirm-popup\">\n    <button type=\"button\" class=\"dmt-confirm-popup-x\" id=\"dmt-confirm-popup-x\">\u2715<\/button>\n    <div class=\"dmt-confirm-icon\">\u2713<\/div>\n    <h4>Request sent successfully!<\/h4>\n    <p>Thank you, your booking request has been received. Our team will get back to you shortly to confirm availability and pricing.<\/p>\n    <div class=\"tour-recap\" id=\"dmt-confirm-recap\"><\/div>\n    <button type=\"button\" class=\"dmt-confirm-close-btn\" id=\"dmt-confirm-close-btn\">Got it, thanks!<\/button>\n  <\/div>\n<\/div>\n\n<script>\n(function(){\n  const root = document.getElementById('dmt-booking-form-widget');\n  if (!root) return;\n\n  \/\/ ---------- Recipient details (edit here if needed) ----------\n  const WHATSAPP_NUMBER = \"212693896597\"; \/\/ +212 6 93 89 65 97, without \"+\"\n  const EMAIL_TO = \"contact@definitelymoroccotours.com\";\n  \/\/ FormSubmit endpoint: sends the form directly to EMAIL_TO, no mail client popup\n  const FORMSUBMIT_ENDPOINT = \"https:\/\/formsubmit.co\/ajax\/\" + EMAIL_TO;\n\n  \/\/ ---------- Auto-detect tour name from page title ----------\n  function detectTourName(){\n    let title = document.title || \"\";\n    title = title.split(\" - Definitely Morocco Tours\")[0];\n    title = title.split(\" | \")[0];\n    title = title.split(\" \u2013 \")[0];\n    title = title.trim();\n    return title || \"this tour\";\n  }\n  const TOUR_NAME = detectTourName();\n  const tourNameDisplay = document.getElementById('dmt-tour-name-display');\n  if (tourNameDisplay) tourNameDisplay.textContent = TOUR_NAME;\n\n  \/\/ ---------- Mobile bottom sheet ----------\n  const stickyBtn = document.getElementById('dmt-sticky-book-btn');\n  const sheetOverlay = document.getElementById('dmt-sheet-overlay');\n  const sheetClose = document.getElementById('dmt-sheet-close');\n  const bookCard = document.getElementById('dmt-book-card');\n\n  function openSheet(){\n    bookCard.classList.add('open');\n    sheetOverlay.classList.add('open');\n    stickyBtn.classList.add('hidden');\n    document.body.style.overflow = 'hidden';\n  }\n  function closeSheet(){\n    bookCard.classList.remove('open');\n    sheetOverlay.classList.remove('open');\n    stickyBtn.classList.remove('hidden');\n    document.body.style.overflow = '';\n  }\n  if (stickyBtn) stickyBtn.addEventListener('click', openSheet);\n  if (sheetClose) sheetClose.addEventListener('click', closeSheet);\n  if (sheetOverlay) sheetOverlay.addEventListener('click', closeSheet);\n\n  \/\/ ---------- Stepper participants ----------\n  let count = 2;\n  const countEl = root.querySelector('#dmt-count');\n  root.querySelector('#dmt-minus').addEventListener('click', function(){\n    count = Math.max(1, count - 1);\n    countEl.textContent = count;\n  });\n  root.querySelector('#dmt-plus').addEventListener('click', function(){\n    count = Math.min(20, count + 1);\n    countEl.textContent = count;\n  });\n\n  \/\/ ---------- Country code selector ----------\n  const COUNTRIES = [\n    {name:\"Morocco\", code:\"+212\", flag:\"\ud83c\uddf2\ud83c\udde6\"},\n    {name:\"France\", code:\"+33\", flag:\"\ud83c\uddeb\ud83c\uddf7\"},\n    {name:\"Spain\", code:\"+34\", flag:\"\ud83c\uddea\ud83c\uddf8\"},\n    {name:\"United States\", code:\"+1\", flag:\"\ud83c\uddfa\ud83c\uddf8\"},\n    {name:\"United Kingdom\", code:\"+44\", flag:\"\ud83c\uddec\ud83c\udde7\"},\n    {name:\"Germany\", code:\"+49\", flag:\"\ud83c\udde9\ud83c\uddea\"},\n    {name:\"Italy\", code:\"+39\", flag:\"\ud83c\uddee\ud83c\uddf9\"},\n    {name:\"Portugal\", code:\"+351\", flag:\"\ud83c\uddf5\ud83c\uddf9\"},\n    {name:\"Netherlands\", code:\"+31\", flag:\"\ud83c\uddf3\ud83c\uddf1\"},\n    {name:\"Belgium\", code:\"+32\", flag:\"\ud83c\udde7\ud83c\uddea\"},\n    {name:\"Switzerland\", code:\"+41\", flag:\"\ud83c\udde8\ud83c\udded\"},\n    {name:\"Canada\", code:\"+1\", flag:\"\ud83c\udde8\ud83c\udde6\"},\n    {name:\"Brazil\", code:\"+55\", flag:\"\ud83c\udde7\ud83c\uddf7\"},\n    {name:\"Mexico\", code:\"+52\", flag:\"\ud83c\uddf2\ud83c\uddfd\"},\n    {name:\"Argentina\", code:\"+54\", flag:\"\ud83c\udde6\ud83c\uddf7\"},\n    {name:\"China\", code:\"+86\", flag:\"\ud83c\udde8\ud83c\uddf3\"},\n    {name:\"Japan\", code:\"+81\", flag:\"\ud83c\uddef\ud83c\uddf5\"},\n    {name:\"South Korea\", code:\"+82\", flag:\"\ud83c\uddf0\ud83c\uddf7\"},\n    {name:\"India\", code:\"+91\", flag:\"\ud83c\uddee\ud83c\uddf3\"},\n    {name:\"Australia\", code:\"+61\", flag:\"\ud83c\udde6\ud83c\uddfa\"},\n    {name:\"United Arab Emirates\", code:\"+971\", flag:\"\ud83c\udde6\ud83c\uddea\"},\n    {name:\"Saudi Arabia\", code:\"+966\", flag:\"\ud83c\uddf8\ud83c\udde6\"},\n    {name:\"Qatar\", code:\"+974\", flag:\"\ud83c\uddf6\ud83c\udde6\"},\n    {name:\"Egypt\", code:\"+20\", flag:\"\ud83c\uddea\ud83c\uddec\"},\n    {name:\"Algeria\", code:\"+213\", flag:\"\ud83c\udde9\ud83c\uddff\"},\n    {name:\"Tunisia\", code:\"+216\", flag:\"\ud83c\uddf9\ud83c\uddf3\"},\n    {name:\"Turkey\", code:\"+90\", flag:\"\ud83c\uddf9\ud83c\uddf7\"},\n    {name:\"Russia\", code:\"+7\", flag:\"\ud83c\uddf7\ud83c\uddfa\"},\n    {name:\"Sweden\", code:\"+46\", flag:\"\ud83c\uddf8\ud83c\uddea\"},\n    {name:\"Norway\", code:\"+47\", flag:\"\ud83c\uddf3\ud83c\uddf4\"},\n    {name:\"Denmark\", code:\"+45\", flag:\"\ud83c\udde9\ud83c\uddf0\"},\n    {name:\"Poland\", code:\"+48\", flag:\"\ud83c\uddf5\ud83c\uddf1\"},\n    {name:\"Ireland\", code:\"+353\", flag:\"\ud83c\uddee\ud83c\uddea\"},\n    {name:\"Austria\", code:\"+43\", flag:\"\ud83c\udde6\ud83c\uddf9\"},\n    {name:\"South Africa\", code:\"+27\", flag:\"\ud83c\uddff\ud83c\udde6\"},\n    {name:\"Israel\", code:\"+972\", flag:\"\ud83c\uddee\ud83c\uddf1\"},\n    {name:\"Singapore\", code:\"+65\", flag:\"\ud83c\uddf8\ud83c\uddec\"},\n    {name:\"New Zealand\", code:\"+64\", flag:\"\ud83c\uddf3\ud83c\uddff\"}\n  ];\n\n  let selectedCountry = COUNTRIES[0];\n  const countryBtn = root.querySelector('#dmt-country-btn');\n  const countryFlag = root.querySelector('#dmt-country-flag');\n  const countryCode = root.querySelector('#dmt-country-code');\n  const countryOverlay = document.getElementById('dmt-country-overlay');\n  const countryList = document.getElementById('dmt-country-list');\n  const countrySearch = document.getElementById('dmt-country-search');\n  const countryPopupClose = document.getElementById('dmt-country-popup-close');\n\n  function renderCountryList(filter){\n    countryList.innerHTML = '';\n    const f = (filter || '').trim().toLowerCase();\n    COUNTRIES\n      .filter(function(c){ return !f || c.name.toLowerCase().indexOf(f) !== -1 || c.code.indexOf(f) !== -1; })\n      .forEach(function(c){\n        const item = document.createElement('div');\n        item.className = 'dmt-country-item';\n        item.innerHTML = '<span class=\"flag\">'+c.flag+'<\/span><span class=\"name\">'+c.name+'<\/span><span class=\"code\">'+c.code+'<\/span>';\n        item.addEventListener('click', function(){\n          selectedCountry = c;\n          countryFlag.textContent = c.flag;\n          countryCode.textContent = c.code;\n          countryOverlay.classList.remove('open');\n        });\n        countryList.appendChild(item);\n      });\n  }\n  renderCountryList('');\n\n  countryBtn.addEventListener('click', function(){\n    countrySearch.value = '';\n    renderCountryList('');\n    countryOverlay.classList.add('open');\n    setTimeout(function(){ countrySearch.focus(); }, 50);\n  });\n  countrySearch.addEventListener('input', function(){\n    renderCountryList(countrySearch.value);\n  });\n  countryPopupClose.addEventListener('click', function(){\n    countryOverlay.classList.remove('open');\n  });\n  countryOverlay.addEventListener('click', function(e){\n    if (e.target === countryOverlay) countryOverlay.classList.remove('open');\n  });\n\n  \/\/ ---------- Custom calendar ----------\n  const calOverlay = document.getElementById('dmt-cal-overlay');\n  const calGrid = document.getElementById('dmt-cal-grid');\n  const calTitle = document.getElementById('dmt-cal-title');\n  const calPrev = document.getElementById('dmt-cal-prev');\n  const calNext = document.getElementById('dmt-cal-next');\n  const calCancel = document.getElementById('dmt-cal-cancel');\n\n  const dateFromBtn = root.querySelector('#dmt-date-from-btn');\n  const dateToBtn = root.querySelector('#dmt-date-to-btn');\n  const dateFromLabel = root.querySelector('#dmt-date-from-label');\n  const dateToLabel = root.querySelector('#dmt-date-to-label');\n  const dateFromInput = root.querySelector('#dmt-date-from');\n  const dateToInput = root.querySelector('#dmt-date-to');\n\n  const MONTH_NAMES = [\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];\n  let calViewDate = new Date();\n  let activeTarget = null;\n  let selectedFrom = null, selectedTo = null;\n\n  function fmt(d){\n    return d.toLocaleDateString('en-US', { day: 'numeric', month: 'short', year: 'numeric' });\n  }\n  function toISO(d){\n    return d.getFullYear() + '-' + String(d.getMonth()+1).padStart(2,'0') + '-' + String(d.getDate()).padStart(2,'0');\n  }\n  function dayKey(d){\n    return d.getFullYear()*10000 + (d.getMonth()+1)*100 + d.getDate();\n  }\n  function sameDay(a,b){\n    return a && b && dayKey(a) === dayKey(b);\n  }\n\n  function renderCalendar(){\n    const year = calViewDate.getFullYear();\n    const month = calViewDate.getMonth();\n    calTitle.textContent = MONTH_NAMES[month] + \" \" + year;\n    calGrid.innerHTML = '';\n\n    const firstDay = new Date(year, month, 1).getDay();\n    const daysInMonth = new Date(year, month+1, 0).getDate();\n    const now = new Date();\n    const todayKey = now.getFullYear()*10000 + (now.getMonth()+1)*100 + now.getDate();\n\n    for (let i=0; i<firstDay; i++){\n      const empty = document.createElement('div');\n      empty.className = 'dmt-cal-day empty';\n      calGrid.appendChild(empty);\n    }\n    for (let d=1; d<=daysInMonth; d++){\n      const cellDate = new Date(year, month, d);\n      const cellKey = year*10000 + (month+1)*100 + d;\n      const btn = document.createElement('button');\n      btn.type = 'button';\n      btn.className = 'dmt-cal-day';\n      btn.textContent = d;\n      if (cellKey < todayKey) btn.classList.add('disabled');\n      if (cellKey === todayKey) btn.classList.add('today');\n      if (activeTarget === 'from' && sameDay(cellDate, selectedFrom)) btn.classList.add('selected');\n      if (activeTarget === 'to' && sameDay(cellDate, selectedTo)) btn.classList.add('selected');\n      if (!btn.classList.contains('disabled')){\n        btn.addEventListener('click', function(){\n          if (activeTarget === 'from'){\n            selectedFrom = cellDate;\n            dateFromInput.value = toISO(cellDate);\n            dateFromLabel.textContent = fmt(cellDate);\n            dateFromBtn.classList.add('filled');\n          } else {\n            selectedTo = cellDate;\n            dateToInput.value = toISO(cellDate);\n            dateToLabel.textContent = fmt(cellDate);\n            dateToBtn.classList.add('filled');\n          }\n          calOverlay.classList.remove('open');\n        });\n      }\n      calGrid.appendChild(btn);\n    }\n  }\n\n  function openCalendar(target){\n    activeTarget = target;\n    calViewDate = (target === 'from' && selectedFrom) ? new Date(selectedFrom) :\n                  (target === 'to' && selectedTo) ? new Date(selectedTo) : new Date();\n    renderCalendar();\n    calOverlay.classList.add('open');\n  }\n\n  dateFromBtn.addEventListener('click', function(){ openCalendar('from'); });\n  dateToBtn.addEventListener('click', function(){ openCalendar('to'); });\n  calPrev.addEventListener('click', function(){ calViewDate.setMonth(calViewDate.getMonth()-1); renderCalendar(); });\n  calNext.addEventListener('click', function(){ calViewDate.setMonth(calViewDate.getMonth()+1); renderCalendar(); });\n  calCancel.addEventListener('click', function(){ calOverlay.classList.remove('open'); });\n  calOverlay.addEventListener('click', function(e){ if (e.target === calOverlay) calOverlay.classList.remove('open'); });\n\n  \/\/ ---------- Confirmation popup ----------\n  const confirmOverlay = document.getElementById('dmt-confirm-overlay');\n  const confirmRecap = document.getElementById('dmt-confirm-recap');\n  const confirmCloseBtn = document.getElementById('dmt-confirm-close-btn');\n  const confirmPopupX = document.getElementById('dmt-confirm-popup-x');\n\n  function openConfirmPopup(data){\n    confirmRecap.innerHTML =\n      '<div><strong>Tour:<\/strong> ' + TOUR_NAME + '<\/div>' +\n      '<div style=\"margin-top:6px;\"><strong>Dates:<\/strong> ' + data.dateFrom + ' \u2192 ' + data.dateTo + '<\/div>' +\n      '<div style=\"margin-top:6px;\"><strong>Participants:<\/strong> ' + data.participants + '<\/div>';\n    confirmOverlay.classList.add('open');\n  }\n  function closeConfirmPopup(){\n    confirmOverlay.classList.remove('open');\n  }\n  confirmCloseBtn.addEventListener('click', closeConfirmPopup);\n  confirmPopupX.addEventListener('click', closeConfirmPopup);\n  confirmOverlay.addEventListener('click', function(e){\n    if (e.target === confirmOverlay) closeConfirmPopup();\n  });\n\n  \/\/ ---------- Form submission (direct email via FormSubmit, well structured) ----------\n  const form = root.querySelector('#dmt-booking-form');\n  const statusEl = root.querySelector('#dmt-status');\n  const submitEmailBtn = root.querySelector('#dmt-submit-email-btn');\n\n  function collectFormData(){\n    const name = root.querySelector('#dmt-name').value.trim();\n    const email = root.querySelector('#dmt-email').value.trim();\n    const phone = selectedCountry.code + \" \" + root.querySelector('#dmt-phone').value.trim();\n    const dateFrom = dateFromInput.value || \"Not specified\";\n    const dateTo = dateToInput.value || \"Not specified\";\n    const message = root.querySelector('#dmt-message').value.trim();\n    return { name: name, email: email, phone: phone, dateFrom: dateFrom, dateTo: dateTo, participants: count, message: message };\n  }\n\n  function buildWhatsAppMessage(data){\n    return [\n      \"New booking request\",\n      \"Tour: \" + TOUR_NAME,\n      \"Name: \" + data.name,\n      \"Email: \" + data.email,\n      \"Phone: \" + data.phone,\n      \"From: \" + data.dateFrom + \"  To: \" + data.dateTo,\n      \"Participants: \" + data.participants,\n      data.message ? \"Message: \" + data.message : \"\"\n    ].filter(Boolean).join(\"\\n\");\n  }\n\n  function setLoading(isLoading){\n    submitEmailBtn.disabled = isLoading;\n    submitEmailBtn.innerHTML = isLoading\n      ? '<span class=\"dmt-spinner\"><\/span> Sending...'\n      : '\u2709\ufe0f Send booking request';\n  }\n\n  \/\/ Main action = direct email via FormSubmit (AJAX, no redirect, no mail client)\n  form.addEventListener('submit', function(e){\n    e.preventDefault();\n    const data = collectFormData();\n\n    setLoading(true);\n    statusEl.classList.remove('show', 'ok', 'err');\n\n    const payload = {\n      _subject: \"New booking request \u2014 \" + TOUR_NAME,\n      _template: \"table\",\n      _captcha: \"false\",\n      \"Tour\": TOUR_NAME,\n      \"Full name\": data.name,\n      \"Email\": data.email,\n      \"Phone\": data.phone,\n      \"Travel dates\": data.dateFrom + \" \u2192 \" + data.dateTo,\n      \"Participants\": data.participants,\n      \"Message\": data.message || \"\u2014\"\n    };\n\n    fetch(FORMSUBMIT_ENDPOINT, {\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application\/json\", \"Accept\": \"application\/json\" },\n      body: JSON.stringify(payload)\n    })\n    .then(function(res){ return res.json().then(function(json){ return { ok: res.ok, json: json }; }); })\n    .then(function(result){\n      setLoading(false);\n      if (result.ok) {\n        form.reset();\n        count = 2; countEl.textContent = count;\n        selectedFrom = null; selectedTo = null;\n        dateFromLabel.textContent = 'From'; dateToLabel.textContent = 'To';\n        dateFromBtn.classList.remove('filled'); dateToBtn.classList.remove('filled');\n        openConfirmPopup(data);\n      } else {\n        statusEl.textContent = \"Something went wrong sending your request. Please try WhatsApp instead, or try again.\";\n        statusEl.classList.add('show', 'err');\n      }\n    })\n    .catch(function(){\n      setLoading(false);\n      statusEl.textContent = \"Connection issue \u2014 please try WhatsApp instead, or try again.\";\n      statusEl.classList.add('show', 'err');\n    });\n  });\n\n  \/\/ Secondary action = WhatsApp\n  root.querySelector('#dmt-send-wa').addEventListener('click', function(){\n    const data = collectFormData();\n    const waUrl = \"https:\/\/wa.me\/\" + WHATSAPP_NUMBER + \"?text=\" + encodeURIComponent(buildWhatsAppMessage(data));\n    window.open(waUrl, \"_blank\");\n\n    statusEl.textContent = \"Opening WhatsApp with your request pre-filled.\";\n    statusEl.classList.remove('err');\n    statusEl.classList.add('show', 'ok');\n  });\n})();\n<\/script>\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\n    <\/div>\n  <\/div>\n<\/div>\n\n<!-- LIGHTBOX -->\n<div class=\"dmt-lightbox\" id=\"dmt-lightbox\">\n  <button class=\"dmt-lightbox-close\" id=\"dmt-lightbox-close\">&times;<\/button>\n  <img decoding=\"async\" id=\"dmt-lightbox-img\" src=\"\" alt=\"\">\n<\/div>\n\n<script>\n(function(){\n  \/\/ Gallery lightbox\n  const lightbox = document.getElementById('dmt-lightbox');\n  const lightboxImg = document.getElementById('dmt-lightbox-img');\n  document.getElementById('dmt-gallery').querySelectorAll('.dmt-gallery-link').forEach(function(link){\n    link.addEventListener('click', function(e){\n      e.preventDefault();\n      lightboxImg.src = link.getAttribute('href');\n      lightbox.classList.add('open');\n    });\n  });\n  document.getElementById('dmt-lightbox-close').addEventListener('click', function(){\n    lightbox.classList.remove('open');\n  });\n  lightbox.addEventListener('click', function(e){\n    if (e.target === lightbox) lightbox.classList.remove('open');\n  });\n})();\n<\/script>\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>Activity \u00b7 Half Day \u00b7 Marrakech Hot Air Balloon in Marrakech \ud83c\udf04 Early morning flight at sunrise \ud83d\ude97 Pick up<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-29496","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/definitelymoroccotours.com\/fr\/wp-json\/wp\/v2\/pages\/29496","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/definitelymoroccotours.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/definitelymoroccotours.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/definitelymoroccotours.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/definitelymoroccotours.com\/fr\/wp-json\/wp\/v2\/comments?post=29496"}],"version-history":[{"count":4,"href":"https:\/\/definitelymoroccotours.com\/fr\/wp-json\/wp\/v2\/pages\/29496\/revisions"}],"predecessor-version":[{"id":29528,"href":"https:\/\/definitelymoroccotours.com\/fr\/wp-json\/wp\/v2\/pages\/29496\/revisions\/29528"}],"wp:attachment":[{"href":"https:\/\/definitelymoroccotours.com\/fr\/wp-json\/wp\/v2\/media?parent=29496"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}