{"id":402,"date":"2025-10-29T11:50:56","date_gmt":"2025-10-29T11:50:56","guid":{"rendered":"https:\/\/moroquestadventures.com\/?page_id=402"},"modified":"2025-11-02T17:00:52","modified_gmt":"2025-11-02T17:00:52","slug":"4-days-cycling-marrakech-and-atlas-mountains","status":"publish","type":"page","link":"https:\/\/moroquestadventures.com\/fr\/4-days-cycling-marrakech-and-atlas-mountains\/","title":{"rendered":"4 DAYS CYCLING  MARRAKECH AND ATLAS MOUNTAINS"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"402\" class=\"elementor elementor-402\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0fc920b e-con-full e-flex e-con e-parent\" data-id=\"0fc920b\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2cd9f63 elementor-widget elementor-widget-html\" data-id=\"2cd9f63\" data-element_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, maximum-scale=1.0, user-scalable=no\" \/>\r\n  <title>4-Day Cycling Marrakech & Atlas Mountains Tour | MoroQuest Adventures<\/title>\r\n  <meta name=\"description\" content=\"4-day cycling tour from Marrakech to the Atlas Mountains. Experience mountain biking through Berber villages, Kik Plateau, Imlil Valley, and Toubkal National Park.\">\r\n  <meta name=\"keywords\" content=\"4 days cycling Marrakech, Atlas Mountains cycling, mountain biking Morocco, Berber villages tour, Toubkal National Park, Imlil Valley, Kik Plateau, cycling tour Morocco, trekking Atlas Mountains\">\r\n  <meta property=\"og:title\" content=\"4-Day Cycling Marrakech & Atlas Mountains Tour\">\r\n  <meta property=\"og:description\" content=\"Experience the best mountain scenery and Berber villages on this 4-day cycling tour through the Atlas Mountains from Marrakech.\">\r\n  <meta property=\"og:type\" content=\"website\">\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;600;700;800&display=swap\" rel=\"stylesheet\">\r\n  <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css\">\r\n  <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/@emailjs\/browser@3\/dist\/email.min.js\"><\/script>\r\n\r\n  <style>\r\n    \/* ---- Base Theme ---- *\/\r\n    .tour-booking-page{\r\n      --tour-bg:#f5efe6; --tour-ink:#2d2a26; --tour-muted:#6b6a66; --tour-card:#fff;\r\n      --tour-border:#e6dfd4; --tour-sage:#647a68; --tour-sage-700:#4f6254;\r\n      --tour-terra:#e67e22; --tour-terra-700:#d35400; --tour-cream:#fffaf2;\r\n      --radius:14px; --shadow:0 10px 30px rgba(2,6,23,.08);\r\n      box-sizing:border-box; font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;\r\n      background:linear-gradient(180deg,var(--tour-cream),var(--tour-bg)); color:var(--tour-ink); line-height:1.6;\r\n      -webkit-text-size-adjust:100%; margin:0; padding:0;\r\n    }\r\n    .tour-booking-page *{box-sizing:border-box}\r\n    .tour-booking-page .container{max-width:1160px;margin-inline:auto;padding:24px}\r\n\r\n    \/* ---- Layout ---- *\/\r\n    .content-wrapper{display:grid;grid-template-columns:1.6fr .9fr;gap:26px}\r\n    @media (max-width:980px){.content-wrapper{grid-template-columns:1fr}}\r\n    .section{background:var(--tour-card);border-radius:var(--radius);padding:24px;margin-bottom:22px;box-shadow:var(--shadow);border:1px solid var(--tour-border)}\r\n    .section-title{display:flex;align-items:center;gap:10px;font-size:1.35rem;margin:0 0 16px;color:var(--tour-ink)}\r\n    .section-title i{color:var(--tour-terra)}\r\n    .description{color:var(--tour-muted);font-size:1.05rem}\r\n\r\n    \/* ---- Gallery ---- *\/\r\n    .image-gallery{display:grid;gap:12px;margin:22px 0 34px}\r\n    .gallery-main{height:380px;border-radius:16px;background-size:cover;background-position:center;position:relative;overflow:hidden;cursor:pointer}\r\n    .img-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 40%,rgba(0,0,0,.35));opacity:0;transition:.25s}\r\n    .zoom-btn{position:absolute;right:10px;bottom:10px;background:rgba(255,255,255,.9);border:1px solid var(--tour-border);padding:8px 10px;border-radius:999px;display:flex;gap:8px;align-items:center;font-weight:600;color:#111;box-shadow:var(--shadow);cursor:pointer}\r\n    .gallery-main:hover .img-overlay{opacity:1}\r\n    .gallery-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}\r\n    .gallery-thumb{height:140px;border-radius:12px;background-size:cover;background-position:center;position:relative;overflow:hidden;cursor:pointer;border:2px solid transparent}\r\n    .gallery-thumb.active{border-color:var(--tour-terra)}\r\n    .gallery-thumb:hover .img-overlay{opacity:1}\r\n    @media (min-width:992px){\r\n      .image-gallery{grid-template-columns:2fr 1fr}\r\n      .gallery-main{height:480px}\r\n      .gallery-row{grid-template-columns:1fr;grid-template-rows:repeat(3,1fr);gap:12px}\r\n      .gallery-thumb{height:auto;min-height:140px}\r\n    }\r\n    \r\n    \/* Bottom Gallery *\/\r\n    .bottom-gallery {\r\n      margin-top: 40px;\r\n    }\r\n    .bottom-gallery .gallery-row {\r\n      display: grid;\r\n      grid-template-columns: repeat(3, 1fr);\r\n      gap: 12px;\r\n    }\r\n    @media (max-width: 768px) {\r\n      .bottom-gallery .gallery-row {\r\n        grid-template-columns: repeat(2, 1fr);\r\n      }\r\n    }\r\n\r\n    \/* ---- Itinerary \/ Details \/ FAQ ---- *\/\r\n    .itinerary-item{display:grid;grid-template-columns:120px 1fr;gap:16px;padding:16px 0;border-bottom:1px solid var(--tour-border)}\r\n    .itinerary-item:last-child{border-bottom:0}\r\n    .itinerary-day{font-weight:800;color:var(--tour-terra)}\r\n    .itinerary-content h4{margin:.2rem 0 .25rem}\r\n    .inclusion-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}\r\n    @media (max-width:700px){.inclusion-grid{grid-template-columns:1fr}}\r\n    .inclusion-list,.exclusion-list{list-style:none;padding:0;margin:0}\r\n    .inclusion-list li,.exclusion-list li{display:flex;gap:10px;margin-bottom:10px}\r\n    .inclusion-list i{color:var(--tour-sage)}\r\n    .exclusion-list i{color:#e74c3c}\r\n    .additional-details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}\r\n    .detail-item{display:flex;align-items:center;gap:15px;padding:15px;background:rgba(230,126,34,.05);border-radius:10px;border-left:4px solid var(--tour-terra)}\r\n    .detail-icon{background:var(--tour-terra);color:#fff;width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.3rem}\r\n    .detail-content h3{margin:0 0 5px;font-size:1.1rem}\r\n    .detail-content p{margin:0;color:var(--tour-muted)}\r\n    .faq-accordion-item{border:1px solid var(--tour-border);border-radius:10px;margin-bottom:12px;overflow:hidden;background:var(--tour-card)}\r\n    .faq-accordion-header{padding:18px 20px;background:rgba(230,126,34,.05);cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-weight:600;color:var(--tour-ink);transition:background .3s}\r\n    .faq-accordion-header:hover{background:rgba(230,126,34,.1)}\r\n    .faq-accordion-header i{transition:transform .3s;color:var(--tour-terra)}\r\n    .faq-accordion-item.active .faq-accordion-header i{transform:rotate(180deg)}\r\n    .faq-accordion-content{padding:0 20px;max-height:0;overflow:hidden;transition:max-height .3s,padding .3s;color:var(--tour-muted)}\r\n    .faq-accordion-item.active .faq-accordion-content{padding:20px;max-height:300px}\r\n\r\n    \/* ---- Sidebar \/ Form ---- *\/\r\n    .price-section{background:linear-gradient(180deg,var(--tour-terra),var(--tour-terra-700));color:#fff;border:0}\r\n    .price-section .section-title{color:#fff}\r\n    .price-amount{font-size:clamp(2.1rem,4.2vw,3rem);font-weight:800;letter-spacing:.3px}\r\n    .booking-form{position:sticky;top:18px}\r\n    .form-group{margin-bottom:16px}\r\n    label{display:block;margin-bottom:8px;font-weight:600;color:var(--tour-ink)}\r\n    .form-control{width:100%;padding:12px 14px;border:1px solid var(--tour-border);border-radius:10px;background:#fff;font:inherit;font-size:16px}\r\n    .form-control:focus{outline:3px solid rgba(230,126,34,.25);border-color:rgba(230,126,34,.5)}\r\n    .form-control::placeholder{color:#a0a0a0;opacity:1}\r\n    .form-control.error{border-color:#e74c3c;background-color:rgba(231,76,60,0.05)}\r\n    .error-message{color:#e74c3c;font-size:0.85rem;margin-top:5px;display:none}\r\n    .form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}\r\n    @media (max-width:700px){.form-row{grid-template-columns:1fr}}\r\n    .btn-book{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;border:0;background:linear-gradient(180deg,var(--tour-terra),var(--tour-terra-700));color:#fff;padding:14px 16px;border-radius:10px;font-weight:800;cursor:pointer;box-shadow:0 8px 22px rgba(230,126,34,.25);transition:.2s transform;font-size:16px}\r\n    .btn-book:hover{transform:translateY(-1px)}\r\n    .btn-book:disabled{background:#ccc;cursor:not-allowed;transform:none}\r\n\r\n    \/* ---------- DATE INPUT FIX ---------- *\/\r\n    input[type=\"date\"].form-control{\r\n      -webkit-appearance:none; appearance:none;\r\n      background:#fff; border:1px solid var(--tour-border); border-radius:10px;\r\n      padding:12px 14px; min-height:44px; color:var(--tour-ink);\r\n      text-align:start;\r\n    }\r\n    input[type=\"date\"].form-control::-webkit-date-and-time-value{ text-align:left; }\r\n    input[type=\"date\"].form-control::-webkit-datetime-edit,\r\n    input[type=\"date\"].form-control::-webkit-datetime-edit-fields-wrapper,\r\n    input[type=\"date\"].form-control::-webkit-datetime-edit-text,\r\n    input[type=\"date\"].form-control::-webkit-datetime-edit-month-field,\r\n    input[type=\"date\"].form-control::-webkit-datetime-edit-day-field,\r\n    input[type=\"date\"].form-control::-webkit-datetime-edit-year-field{\r\n      color:var(--tour-ink); padding:0;\r\n    }\r\n    input[type=\"date\"].form-control::-webkit-calendar-picker-indicator{\r\n      opacity:.65; padding:2px; margin-right:2px; cursor:pointer;\r\n    }\r\n\r\n    \/* Custom placeholder for date inputs *\/\r\n    .date-placeholder{color:#a0a0a0}\r\n    input[type=\"date\"]:invalid::-webkit-datetime-edit{color:#a0a0a0}\r\n\r\n    \/* ---- Toast \/ Lightbox ---- *\/\r\n    .toast{position:fixed;left:50%;transform:translateX(-50%);bottom:20px;padding:12px 16px;border-radius:12px;background:var(--tour-ink);color:#fff;box-shadow:var(--shadow);display:none;z-index:100}\r\n    .toast.show{display:block}\r\n    .toast.success{background:var(--tour-sage)}\r\n    .toast.error{background:#e74c3c}\r\n    dialog#lightbox{border:0;padding:0;background:transparent;width:100%;height:100%;max-width:100%;max-height:100%}\r\n    .lb-wrap{position:fixed;inset:0;display:grid;place-items:center;background:rgba(0,0,0,.8);z-index:100;padding:20px}\r\n    .lb-img{max-width:90vw;max-height:80vh;border-radius:14px;border:1px solid rgba(255,255,255,.2);box-shadow:var(--shadow);cursor:zoom-in;transition:transform .3s}\r\n    .lb-img.zoomed{transform:scale(1.5);cursor:zoom-out}\r\n    .close-lightbox{position:absolute;top:20px;right:20px;background:rgba(0,0,0,.7);color:#fff;border:none;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.2rem;z-index:101}\r\n\r\n    \/* ---- Highlight ---- *\/\r\n    .tour-highlight{font-size:1.4rem;font-weight:700;color:var(--tour-terra);text-align:center;margin:0 0 20px;padding:15px;background:rgba(230,126,34,.05);border-radius:10px;border-left:4px solid var(--tour-terra)}\r\n\r\n    \/* ---- Mobile bottom bar ---- *\/\r\n    .mobile-booking-bar{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--tour-card);box-shadow:0 -4px 20px rgba(0,0,0,.15);padding:12px 16px;z-index:9500;border-top:1px solid var(--tour-border)}\r\n    .mobile-booking-bar .booking-bar-content{display:flex;justify-content:space-between;align-items:center;max-width:1160px;margin:0 auto}\r\n    .mobile-booking-bar .price-info{display:flex;flex-direction:column}\r\n    .mobile-booking-bar .price-amount{font-size:1.5rem;font-weight:800;color:var(--tour-terra);line-height:1.2}\r\n    .mobile-booking-bar .price-note{font-size:.8rem;color:var(--tour-muted);margin:0}\r\n    .mobile-booking-bar .btn-book-mobile{background:linear-gradient(180deg,var(--tour-terra),var(--tour-terra-700));color:#fff;border:none;border-radius:10px;padding:12px 20px;font-weight:700;font-size:1rem;cursor:pointer;box-shadow:0 4px 12px rgba(230,126,34,.3);display:flex;align-items:center;gap:8px;transition:transform .2s}\r\n    .mobile-booking-bar .btn-book-mobile:hover{transform:translateY(-2px)}\r\n\r\n    \/* ---- Support ---- *\/\r\n    .support-container{background:rgba(230,126,34,.05);border-radius:10px;padding:20px;margin-top:20px;border:1px solid var(--tour-border)}\r\n    .support-title{font-size:1.2rem;font-weight:700;margin-bottom:15px;color:var(--tour-terra);display:flex;align-items:center;gap:10px}\r\n    .support-info{display:flex;flex-wrap:wrap;gap:15px}\r\n    .support-item{display:flex;align-items:center;gap:10px;padding:10px 15px;background:#fff;border-radius:8px;border:1px solid var(--tour-border);flex:1;min-width:200px}\r\n    .support-icon{background:var(--tour-terra);color:#fff;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center}\r\n    .support-details h4{margin:0 0 5px;font-size:.9rem}\r\n    .support-details p{margin:0;font-size:.9rem;color:var(--tour-muted)}\r\n\r\n    \/* ---- SIMPLIFIED PROFESSIONAL THANK YOU MESSAGE ---- *\/\r\n    .thankyou-overlay {\r\n      display: none;\r\n      position: fixed;\r\n      top: 0;\r\n      left: 0;\r\n      width: 100%;\r\n      height: 100%;\r\n      background: rgba(0, 0, 0, 0.85);\r\n      z-index: 10000;\r\n      backdrop-filter: blur(5px);\r\n      overflow-y: auto;\r\n      padding: 20px;\r\n      box-sizing: border-box;\r\n    }\r\n    \r\n    .thankyou-card {\r\n      position: absolute;\r\n      top: 50%;\r\n      left: 50%;\r\n      transform: translate(-50%, -50%);\r\n      background: #fff;\r\n      border-radius: 20px;\r\n      padding: 50px 40px;\r\n      max-width: 450px;\r\n      width: 90%;\r\n      text-align: center;\r\n      box-shadow: 0 25px 50px rgba(0, 0, 0, 0.3);\r\n      border: 1px solid var(--tour-border);\r\n      animation: thankYouSlideIn 0.5s ease-out;\r\n    }\r\n    \r\n    @keyframes thankYouSlideIn {\r\n      0% { opacity: 0; transform: translate(-50%, -40%); }\r\n      100% { opacity: 1; transform: translate(-50%, -50%); }\r\n    }\r\n    \r\n    .thankyou-card .icon {\r\n      width: 90px;\r\n      height: 90px;\r\n      background: linear-gradient(135deg, var(--tour-sage), var(--tour-sage-700));\r\n      border-radius: 50%;\r\n      display: flex;\r\n      align-items: center;\r\n      justify-content: center;\r\n      margin: 0 auto 30px;\r\n      color: white;\r\n      font-size: 2.5rem;\r\n      box-shadow: 0 10px 25px rgba(100, 122, 104, 0.3);\r\n    }\r\n    \r\n    .thankyou-card h3 {\r\n      font-size: 2rem;\r\n      margin-bottom: 20px;\r\n      color: var(--tour-ink);\r\n      font-weight: 800;\r\n      line-height: 1.2;\r\n    }\r\n    \r\n    .thankyou-card p {\r\n      color: var(--tour-muted);\r\n      margin-bottom: 0;\r\n      line-height: 1.6;\r\n      font-size: 1.2rem;\r\n    }\r\n    \r\n    .thankyou-card .btn-row {\r\n      display: flex;\r\n      justify-content: center;\r\n      gap: 15px;\r\n      margin-top: 30px;\r\n    }\r\n    \r\n    .thankyou-card .btn-book {\r\n      padding: 14px 24px;\r\n      font-size: 1.1rem;\r\n      min-width: 140px;\r\n    }\r\n    \r\n    @media (max-width: 600px) {\r\n      .thankyou-card {\r\n        padding: 40px 25px;\r\n        width: 95%;\r\n      }\r\n      \r\n      .thankyou-card .icon {\r\n        width: 80px;\r\n        height: 80px;\r\n        font-size: 2.2rem;\r\n        margin-bottom: 25px;\r\n      }\r\n      \r\n      .thankyou-card h3 {\r\n        font-size: 1.7rem;\r\n        margin-bottom: 15px;\r\n      }\r\n      \r\n      .thankyou-card p {\r\n        font-size: 1.1rem;\r\n      }\r\n      \r\n      .thankyou-card .btn-row {\r\n        flex-direction: column;\r\n        gap: 12px;\r\n        margin-top: 25px;\r\n      }\r\n      \r\n      .thankyou-card .btn-book {\r\n        width: 100%;\r\n        padding: 12px 16px;\r\n      }\r\n    }\r\n\r\n    \/* ---- Mobile tweaks ---- *\/\r\n    @media (max-width:768px){\r\n      html,body{width:100%;overflow-x:hidden}\r\n      .container{padding:16px;padding-bottom:80px}\r\n      .gallery-main{height:260px}\r\n      .gallery-thumb{height:110px}\r\n      .section{padding:18px}\r\n      .itinerary-item{grid-template-columns:80px 1fr;gap:12px}\r\n      .tour-highlight{font-size:1.2rem}\r\n      .mobile-booking-bar{display:block}\r\n      .booking-sidebar{display:none}\r\n      .support-info{flex-direction:column}\r\n      .support-item{min-width:100%}\r\n      input,select,textarea{font-size:16px!important}\r\n    }\r\n\r\n    \/* ===== MOBILE POPUP (centered) ===== *\/\r\n    .mobile-popup-overlay{\r\n      display:none;\r\n      position:fixed; inset:0;\r\n      z-index:99999;\r\n      background:rgba(0,0,0,.55);\r\n      backdrop-filter:blur(4px);\r\n      padding: max(24px, env(safe-area-inset-top)) 18px max(24px, env(safe-area-inset-bottom));\r\n      overflow:auto;\r\n      place-items:center;\r\n    }\r\n    .mobile-popup{\r\n      width:min(560px, 92vw);\r\n      max-height:min(720px, calc(100dvh - 64px));\r\n      background:#fff; border-radius:16px; border:1px solid var(--tour-border);\r\n      box-shadow:0 20px 50px rgba(0,0,0,.25);\r\n      padding:18px; animation:popupIn .22s ease-out;\r\n      overflow:auto;\r\n    }\r\n    @keyframes popupIn{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}\r\n    .mobile-popup .popup-header{\r\n      position:sticky;top:0;background:#fff;z-index:1;\r\n      padding-bottom:10px;margin-bottom:12px;border-bottom:1px solid var(--tour-border);\r\n      display:flex;align-items:center;justify-content:space-between;gap:10px\r\n    }\r\n    .mobile-popup .popup-title{font-weight:800;font-size:1.1rem;display:flex;align-items:center;gap:.6rem}\r\n    .mobile-popup .close-popup{background:#f7f7f7;border:1px solid var(--tour-border);width:36px;height:36px;border-radius:50%;display:grid;place-items:center;cursor:pointer}\r\n    .mobile-popup .form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}\r\n    .mobile-popup .row-1col{grid-template-columns:1fr !important}\r\n    .popup-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}\r\n    .popup-total{padding:10px 12px;background:rgba(230,126,34,.06);border:1px dashed var(--tour-border);border-radius:10px;font-weight:800;display:flex;align-items:center;justify-content:space-between;margin-top:8px}\r\n  <\/style>\r\n<\/head>\r\n<body>\r\n  <div class=\"tour-booking-page\">\r\n    <div class=\"container center\">\r\n      <!-- Gallery -->\r\n      <section class=\"image-gallery center\" aria-label=\"Galerie d&#039;images\">\r\n  <!-- Main image shows the first new photo -->\r\n  <figure class=\"gallery-main\" id=\"main-image\" style=\"background-image:url('http:\/\/moroquestadventures.com\/wp-content\/uploads\/2025\/10\/caption-33.jpg')\">\r\n    <span class=\"img-overlay\"><\/span>\r\n    <button class=\"zoom-btn\" data-full=\"http:\/\/moroquestadventures.com\/wp-content\/uploads\/2025\/10\/caption-33.jpg\">\r\n      <i class=\"fa-solid fa-magnifying-glass\"><\/i> Voir\r\n    <\/button>\r\n  <\/figure>\r\n\r\n  <!-- Three thumbs (click to swap main) -->\r\n  <div class=\"gallery-row\">\r\n    <figure\r\n      class=\"gallery-thumb active\"\r\n      data-full=\"http:\/\/moroquestadventures.com\/wp-content\/uploads\/2025\/10\/caption-33.jpg\"\r\n      data-main=\"http:\/\/moroquestadventures.com\/wp-content\/uploads\/2025\/10\/caption-33.jpg\"\r\n      style=\"background-image:url('http:\/\/moroquestadventures.com\/wp-content\/uploads\/2025\/10\/caption-33.jpg')\"\r\n    >\r\n      <span class=\"img-overlay\"><\/span>\r\n    <\/figure>\r\n\r\n    <figure\r\n      class=\"gallery-thumb\"\r\n      data-full=\"http:\/\/moroquestadventures.com\/wp-content\/uploads\/2025\/10\/65-1.jpg\"\r\n      data-main=\"http:\/\/moroquestadventures.com\/wp-content\/uploads\/2025\/10\/65-1.jpg\"\r\n      style=\"background-image:url('http:\/\/moroquestadventures.com\/wp-content\/uploads\/2025\/10\/65-1.jpg')\"\r\n    >\r\n      <span class=\"img-overlay\"><\/span>\r\n    <\/figure>\r\n\r\n    <figure\r\n      class=\"gallery-thumb\"\r\n      data-full=\"http:\/\/moroquestadventures.com\/wp-content\/uploads\/2025\/10\/image_processing20190129-4-jfdms2-2.jpg\"\r\n      data-main=\"http:\/\/moroquestadventures.com\/wp-content\/uploads\/2025\/10\/image_processing20190129-4-jfdms2-2.jpg\"\r\n      style=\"background-image:url('http:\/\/moroquestadventures.com\/wp-content\/uploads\/2025\/10\/image_processing20190129-4-jfdms2-2.jpg')\"\r\n    >\r\n      <span class=\"img-overlay\"><\/span>\r\n    <\/figure>\r\n  <\/div>\r\n<\/section>\r\n\r\n\r\n      <div class=\"content-wrapper\">\r\n        <!-- Main Content -->\r\n        <div class=\"main-content\">\r\n          <section class=\"section\">\r\n            <h1 class=\"section-title\"><i class=\"fas fa-info-circle\"><\/i> Description de la visite<\/h1>\r\n            <div class=\"tour-highlight\">4-Day Cycling Marrakech and Atlas Mountains<\/div>\r\n            <div class=\"description\">\r\n              <p>Highly recommended year-round, this 4-day cycling tour through the Atlas valleys and villages is perfect for those who want to experience the best mountain scenery and Berber villages in the Imlil and Toubkal National Park area without climbing Toubkal. Since the route remains below the snowline, it's accessible to everyone in winter, regardless of experience level.<\/p>\r\n            <\/div>\r\n          <\/section>\r\n\r\n          <!-- Tour Details \/ Itinerary -->\r\n          <section class=\"section\">\r\n            <h2 class=\"section-title\"><i class=\"fas fa-route\"><\/i> Itin\u00e9raire de la visite<\/h2>\r\n            <div class=\"itinerary\">\r\n              <div class=\"itinerary-item\">\r\n                <div class=\"itinerary-day\">Jour 1<\/div>\r\n                <div class=\"itinerary-content\">\r\n                  <h3>Marrakech \u2013 Kik Plateau \u2013 Imlil Valley near Toubkal Mountain<\/h3>\r\n                  <p>Early in the morning our Guide and Driver will come to you in your Hotel or Riad for an early transfer southwest of Marrakech near Lake Takerkoust. After taking possession of your bike and the last check, the trip can start.<\/p>\r\n                  <p>Our day starts on a flat stretch, then ascending to Takherkhourte Village before Zigzagging up to the Kik plateau with a great view of the mighty peaks of the Atlas Mountains and MT Toubkal (the Highest peak in North Africa, 4167m). This magnificent plateau transforms with the seasons:<\/p>\r\n                  <ul>\r\n                    <li>Brown\/tan in fall when farmers plow the land with their teams of donkeys and mules<\/li>\r\n                    <li>Brown\/white in Winter with snow covered peaks of the Atlas Mountains<\/li>\r\n                    <li>Green\/Red in spring when the barley fields of bright green mix with poppy fields<\/li>\r\n                    <li>Yellow\/brown in summer announcing the harvest<\/li>\r\n                  <\/ul>\r\n                  <p>After a nice ride through terraces and local adobe villages, the track will quickly lose altitude and brings down to Asni. If you still have some energy we can ride the resting 17 km Tarmac road to get to Imlil Village. Otherwise we pack our bikes and our 4\u00d74 will give us a lift to our accommodation in Imlil.<\/p>\r\n                <\/div>\r\n              <\/div>\r\n              <div class=\"itinerary-item\">\r\n                <div class=\"itinerary-day\">Jour 2<\/div>\r\n                <div class=\"itinerary-content\">\r\n                  <h3>Imlil \u2013 Tizi Tamatert \u2013 Imnan Valley<\/h3>\r\n                  <p>From the foothills of the Mount Toubkal, Morocco's and North Africa's highest Summit (4167m), our ride starts climbing the challenging Tizi Tamatert at 2230m. On top, we can enjoy the dramatic views of the majestic High Atlas summits.<\/p>\r\n                  <p>At the village of Wanskra, we will follow a dirt track snaking down the valley. The itinerary is awesome overhanging the deep wady with its green terraces and beehive-like villages stuck to the dry mountain hillsides. Our ride is punctuated by the kids who are always amazed to see visitors.<\/p>\r\n                  <p>The arrival near Asni marks the end of our ride. Overnight in a nice Berber House.<\/p>\r\n                <\/div>\r\n              <\/div>\r\n              <div class=\"itinerary-item\">\r\n                <div class=\"itinerary-day\">Troisi\u00e8me jour<\/div>\r\n                <div class=\"itinerary-content\">\r\n                  <h3>Asni \u2013 Ourika Valley \u2013 Marrakech<\/h3>\r\n                  <p>After a good breakfast we will get ready for the day and our journey will start. We will ride a short flat section before testing our physical abilities on a long and challenging climb up, where we can enjoy the superb views of the contrasting flat plains far north and the imposing summits of the Atlas Mountains just above us.<\/p>\r\n                  <p>We will carry on riding a nice track heading east to overhang the amazing Ourika Valley. A mixture of trails and track will lead us to the bottom of the luxurious Valley where our great day ends. After packing our bikes, a short transfer will lead us to the exciting Marrakech.<\/p>\r\n                <\/div>\r\n              <\/div>\r\n            <\/div>\r\n          <\/section>\r\n\r\n          <section class=\"section\">\r\n            <h2 class=\"section-title\"><i class=\"fas fa-clipboard-list\"><\/i> Ce qui est inclus<\/h2>\r\n            <div class=\"inclusion-grid\">\r\n              <div>\r\n                <h3><i class=\"fas fa-check-circle\" style=\"color:var(--tour-sage)\"><\/i> Inclus<\/h3>\r\n                <ul class=\"inclusion-list\">\r\n                  <li><i class=\"fas fa-check\"><\/i> Guide et cuisinier anglophones<\/li>\r\n                  <li><i class=\"fas fa-check\"><\/i> Muleteers and mules for luggage<\/li>\r\n                  <li><i class=\"fas fa-check\"><\/i> All the meals during the trek + mineral water, coffee and tea<\/li>\r\n                  <li><i class=\"fas fa-check\"><\/i> Comfortable accommodation<\/li>\r\n                  <li><i class=\"fas fa-check\"><\/i> Excursion with local guide<\/li>\r\n                  <li><i class=\"fas fa-check\"><\/i> Transportation from and to Marrakech<\/li>\r\n                <\/ul>\r\n              <\/div>\r\n              <div>\r\n                <h3><i class=\"fas fa-times-circle\" style=\"color:#e74c3c\"><\/i> Non inclus<\/h3>\r\n                <ul class=\"exclusion-list\">\r\n                  <li><i class=\"fas fa-times\"><\/i> Assurance voyage<\/li>\r\n                  <li><i class=\"fas fa-times\"><\/i> Lunches<\/li>\r\n                  <li><i class=\"fas fa-times\"><\/i> Boissons non alcoolis\u00e9es<\/li>\r\n                  <li><i class=\"fas fa-times\"><\/i> Pourboires et d\u00e9penses personnelles<\/li>\r\n                <\/ul>\r\n              <\/div>\r\n            <\/div>\r\n          <\/section>\r\n\r\n          <section class=\"section\">\r\n            <h2 class=\"section-title\"><i class=\"fas fa-list-alt\"><\/i> D\u00e9tails suppl\u00e9mentaires<\/h2>\r\n            <div class=\"additional-details-grid\">\r\n              <div class=\"detail-item\"><div class=\"detail-icon\"><i class=\"fas fa-clock\"><\/i><\/div><div class=\"detail-content\"><h3>Heure de d\u00e9part<\/h3><p>Early morning from Marrakech<\/p><\/div><\/div>\r\n              <div class=\"detail-item\"><div class=\"detail-icon\"><i class=\"fas fa-calendar-alt\"><\/i><\/div><div class=\"detail-content\"><h3>La dur\u00e9e<\/h3><p>4 Days \/ 3 Nights<\/p><\/div><\/div>\r\n              <div class=\"detail-item\"><div class=\"detail-icon\"><i class=\"fas fa-users\"><\/i><\/div><div class=\"detail-content\"><h3>Taille du groupe<\/h3><p>Petits groupes<\/p><\/div><\/div>\r\n              <div class=\"detail-item\"><div class=\"detail-icon\"><i class=\"fas fa-hotel\"><\/i><\/div><div class=\"detail-content\"><h3>H\u00e9bergement<\/h3><p>Comfortable hotels & Berber houses<\/p><\/div><\/div>\r\n              <div class=\"detail-item\"><div class=\"detail-icon\"><i class=\"fas fa-sun\"><\/i><\/div><div class=\"detail-content\"><h3>Meilleure saison<\/h3><p>Toute l'ann\u00e9e<\/p><\/div><\/div>\r\n              <div class=\"detail-item\"><div class=\"detail-icon\"><i class=\"fas fa-bicycle\"><\/i><\/div><div class=\"detail-content\"><h3>Activity Level<\/h3><p>Moderate to challenging<\/p><\/div><\/div>\r\n            <\/div>\r\n          <\/section>\r\n\r\n          <!-- FAQ Section -->\r\n          <section class=\"section\">\r\n            <h2 class=\"section-title\"><i class=\"fas fa-question-circle\"><\/i> Questions fr\u00e9quemment pos\u00e9es<\/h2>\r\n            <div class=\"faq-accordion\">\r\n              <div class=\"faq-accordion-item\">\r\n                <div class=\"faq-accordion-header\">\r\n                  <span>What is the difficulty level of this cycling tour?<\/span>\r\n                  <i class=\"fas fa-chevron-down\"><\/i>\r\n                <\/div>\r\n                <div class=\"faq-accordion-content\">\r\n                  <p>This tour is rated as moderate to challenging, with some steep climbs and varied terrain. Participants should have a reasonable level of fitness and some prior cycling experience, particularly with mountain biking.<\/p>\r\n                <\/div>\r\n              <\/div>\r\n              <div class=\"faq-accordion-item\">\r\n                <div class=\"faq-accordion-header\">\r\n                  <span>What type of bike is recommended for this tour?<\/span>\r\n                  <i class=\"fas fa-chevron-down\"><\/i>\r\n                <\/div>\r\n                <div class=\"faq-accordion-content\">\r\n                  <p>We recommend a mountain bike or a hybrid bike with good gears for the varied terrain, which includes both paved roads and dirt tracks. Bikes can be provided or you can bring your own.<\/p>\r\n                <\/div>\r\n              <\/div>\r\n              <div class=\"faq-accordion-item\">\r\n                <div class=\"faq-accordion-header\">\r\n                  <span>What should I pack for this cycling adventure?<\/span>\r\n                  <i class=\"fas fa-chevron-down\"><\/i>\r\n                <\/div>\r\n                <div class=\"faq-accordion-content\">\r\n                  <p>We recommend packing cycling clothing, helmet, comfortable walking shoes, sunscreen, sunglasses, a hat, layers for changing temperatures, and a camera to capture the stunning landscapes.<\/p>\r\n                <\/div>\r\n              <\/div>\r\n              <div class=\"faq-accordion-item\">\r\n                <div class=\"faq-accordion-header\">\r\n                  <span>Are there options for non-cyclists or those who need a break?<\/span>\r\n                  <i class=\"fas fa-chevron-down\"><\/i>\r\n                <\/div>\r\n                <div class=\"faq-accordion-content\">\r\n                  <p>Yes, our support vehicle follows the group and can provide transportation for those who need a break from cycling or prefer to skip certain challenging sections of the route.<\/p>\r\n                <\/div>\r\n              <\/div>\r\n            <\/div>\r\n          <\/section>\r\n\r\n          <!-- Bottom Gallery -->\r\n          <section class=\"section bottom-gallery\">\r\n  <h2 class=\"section-title\"><i class=\"fas fa-images\"><\/i> Galerie des exp\u00e9riences cyclistes<\/h2>\r\n  <div class=\"gallery-row\">\r\n    <figure class=\"gallery-thumb\"\r\n      data-full=\"http:\/\/moroquestadventures.com\/wp-content\/uploads\/2025\/10\/image_processing20190129-4-jfdms2-2.jpg\"\r\n      style=\"background-image:url('http:\/\/moroquestadventures.com\/wp-content\/uploads\/2025\/10\/image_processing20190129-4-jfdms2-2.jpg')\">\r\n      <span class=\"img-overlay\"><\/span>\r\n    <\/figure>\r\n\r\n    <figure class=\"gallery-thumb\"\r\n      data-full=\"http:\/\/moroquestadventures.com\/wp-content\/uploads\/2025\/10\/65-1.jpg\"\r\n      style=\"background-image:url('http:\/\/moroquestadventures.com\/wp-content\/uploads\/2025\/10\/65-1.jpg')\">\r\n      <span class=\"img-overlay\"><\/span>\r\n    <\/figure>\r\n\r\n    <figure class=\"gallery-thumb\"\r\n      data-full=\"http:\/\/moroquestadventures.com\/wp-content\/uploads\/2025\/10\/caption-33.jpg\"\r\n      style=\"background-image:url('http:\/\/moroquestadventures.com\/wp-content\/uploads\/2025\/10\/caption-33.jpg')\">\r\n      <span class=\"img-overlay\"><\/span>\r\n    <\/figure>\r\n\r\n    <figure class=\"gallery-thumb\"\r\n      data-full=\"http:\/\/moroquestadventures.com\/wp-content\/uploads\/2025\/10\/5e-3.jpg\"\r\n      style=\"background-image:url('http:\/\/moroquestadventures.com\/wp-content\/uploads\/2025\/10\/5e-3.jpg')\">\r\n      <span class=\"img-overlay\"><\/span>\r\n    <\/figure>\r\n\r\n    <figure class=\"gallery-thumb\"\r\n      data-full=\"http:\/\/moroquestadventures.com\/wp-content\/uploads\/2025\/10\/marrakech-walls-and-atlas.jpg\"\r\n      style=\"background-image:url('http:\/\/moroquestadventures.com\/wp-content\/uploads\/2025\/10\/marrakech-walls-and-atlas.jpg')\">\r\n      <span class=\"img-overlay\"><\/span>\r\n    <\/figure>\r\n\r\n    <figure class=\"gallery-thumb\"\r\n      data-full=\"http:\/\/moroquestadventures.com\/wp-content\/uploads\/2025\/10\/07.jpg\"\r\n      style=\"background-image:url('http:\/\/moroquestadventures.com\/wp-content\/uploads\/2025\/10\/07.jpg')\">\r\n      <span class=\"img-overlay\"><\/span>\r\n    <\/figure>\r\n\r\n    <figure class=\"gallery-thumb\"\r\n      data-full=\"http:\/\/moroquestadventures.com\/wp-content\/uploads\/2025\/10\/e6-1.jpg\"\r\n      style=\"background-image:url('http:\/\/moroquestadventures.com\/wp-content\/uploads\/2025\/10\/e6-1.jpg')\">\r\n      <span class=\"img-overlay\"><\/span>\r\n    <\/figure>\r\n  <\/div>\r\n<\/section>\r\n\r\n\r\n          <!-- Support -->\r\n          <section class=\"support-container\">\r\n            <h3 class=\"support-title\"><i class=\"fas fa-headset\"><\/i> Besoin d'aide ? Contactez nous<\/h3>\r\n            <div class=\"support-info\">\r\n              <div class=\"support-item\">\r\n                <div class=\"support-icon\"><i class=\"fas fa-phone\"><\/i><\/div>\r\n                <div class=\"support-details\"><h4>T\u00e9l\u00e9phone<\/h4><p>0675747089<\/p><\/div>\r\n              <\/div>\r\n              <div class=\"support-item\">\r\n                <div class=\"support-icon\"><i class=\"fas fa-envelope\"><\/i><\/div>\r\n                <div class=\"support-details\"><h4>Courriel<\/h4><p>info@moroquestadventures.com<\/p><\/div>\r\n              <\/div>\r\n            <\/div>\r\n          <\/section>\r\n        <\/div>\r\n\r\n        <!-- Sidebar -->\r\n        <aside class=\"booking-sidebar\">\r\n          <section class=\"section price-section\">\r\n            <h2 class=\"section-title\"><i class=\"fas fa-tag\"><\/i> Prix de la visite<\/h2>\r\n            <div class=\"price-amount\" id=\"price-amount\">$250<\/div>\r\n            <p class=\"price-note\">Par personne<\/p>\r\n            <p><i class=\"fas fa-calendar-alt\"><\/i> 4-Day Cycling Tour<\/p>\r\n            <p><i class=\"fas fa-users\"><\/i> Petits groupes<\/p>\r\n            <p><i class=\"fas fa-bicycle\"><\/i> Mountain Biking<\/p>\r\n          <\/section>\r\n          <section class=\"section booking-form\" aria-labelledby=\"book-title\">\r\n            <h2 id=\"book-title\" class=\"section-title\"><i class=\"fas fa-calendar-plus\"><\/i> R\u00e9server cette visite<\/h2>\r\n            <form id=\"booking-form\" novalidate action=\"\">\r\n              <!-- One line: date + participants (desktop) -->\r\n              <div class=\"form-row\">\r\n                <div class=\"form-group\">\r\n                  <label for=\"tour-date\">S\u00e9lectionner la date de la tourn\u00e9e<\/label>\r\n                  <input type=\"date\" id=\"tour-date\" class=\"form-control\" required placeholder=\"S\u00e9lectionnez une date\">\r\n                  <div class=\"error-message\" id=\"date-error\">Veuillez s\u00e9lectionner une date valide<\/div>\r\n                <\/div>\r\n                <div class=\"form-group\">\r\n                  <label for=\"participants\">Nombre de participants<\/label>\r\n                  <input type=\"number\" id=\"participants\" class=\"form-control\" min=\"1\" max=\"15\" value=\"1\" required placeholder=\"par exemple 2\">\r\n                  <div class=\"error-message\" id=\"participants-error\">Veuillez saisir un num\u00e9ro valide (1-15)<\/div>\r\n                <\/div>\r\n              <\/div>\r\n              <div class=\"form-row\">\r\n                <div class=\"form-group\">\r\n                  <label for=\"first-name\">Pr\u00e9nom<\/label>\r\n                  <input type=\"text\" id=\"first-name\" class=\"form-control\" required placeholder=\"par exemple, John\">\r\n                  <div class=\"error-message\" id=\"first-name-error\">Veuillez saisir votre pr\u00e9nom<\/div>\r\n                <\/div>\r\n                <div class=\"form-group\">\r\n                  <label for=\"last-name\">Nom de famille<\/label>\r\n                  <input type=\"text\" id=\"last-name\" class=\"form-control\" required placeholder=\"par exemple, Smith\">\r\n                  <div class=\"error-message\" id=\"last-name-error\">Veuillez saisir votre nom de famille<\/div>\r\n                <\/div>\r\n              <\/div>\r\n              <div class=\"form-row\">\r\n                <div class=\"form-group\">\r\n                  <label for=\"email\">Adresse \u00e9lectronique<\/label>\r\n                  <input type=\"email\" id=\"email\" class=\"form-control\" required placeholder=\"par exemple : john@example.com\">\r\n                  <div class=\"error-message\" id=\"email-error\">Veuillez saisir une adresse \u00e9lectronique valide<\/div>\r\n                <\/div>\r\n                <div class=\"form-group\">\r\n                  <label for=\"phone\">Num\u00e9ro de t\u00e9l\u00e9phone<\/label>\r\n                  <input type=\"tel\" id=\"phone\" class=\"form-control\" required placeholder=\"par exemple +212612345678\">\r\n                  <div class=\"error-message\" id=\"phone-error\">Veuillez saisir un num\u00e9ro de t\u00e9l\u00e9phone valide (10 chiffres au minimum).<\/div>\r\n                <\/div>\r\n              <\/div>\r\n              <div class=\"form-group\">\r\n                <label for=\"special-requests\">Demandes sp\u00e9ciales<\/label>\r\n                <textarea id=\"special-requests\" class=\"form-control\" rows=\"3\" placeholder=\"Dietary preferences, bike requirements, etc.\"><\/textarea>\r\n              <\/div>\r\n              <button type=\"submit\" class=\"btn-book\" id=\"submit-btn\"><i class=\"fa-solid fa-paper-plane\"><\/i> R\u00e9server<\/button>\r\n            <input type=\"hidden\" name=\"trp-form-language\" value=\"fr\"\/><\/form>\r\n          <\/section>\r\n        <\/aside>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- Mobile bottom bar -->\r\n    <div class=\"mobile-booking-bar\">\r\n      <div class=\"booking-bar-content\">\r\n        <div class=\"price-info\">\r\n          <div class=\"price-amount\" id=\"mobile-price-amount\">$250<\/div>\r\n          <p class=\"price-note\">Par personne<\/p>\r\n        <\/div>\r\n        <button class=\"btn-book-mobile\" id=\"open-mobile-popup\"><i class=\"fas fa-calendar-plus\"><\/i> R\u00e9server<\/button>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- Mobile Popup -->\r\n    <div class=\"mobile-popup-overlay\" id=\"mobile-popup\" aria-hidden=\"true\">\r\n      <div class=\"mobile-popup\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"mobile-popup-title\">\r\n        <div class=\"popup-header\">\r\n          <div class=\"popup-title\" id=\"mobile-popup-title\"><i class=\"fas fa-calendar-plus\"><\/i> R\u00e9server cette visite<\/div>\r\n          <button class=\"close-popup\" id=\"close-mobile-popup\" aria-label=\"Fermer\"><i class=\"fas fa-times\"><\/i><\/button>\r\n        <\/div>\r\n\r\n        <form id=\"mobile-booking-form\" novalidate action=\"\">\r\n          <!-- DATE & PARTICIPANTS: each on its own full-width line -->\r\n          <div class=\"form-row row-1col\">\r\n            <div class=\"form-group\">\r\n              <label for=\"m-tour-date\">S\u00e9lectionner la date de la tourn\u00e9e<\/label>\r\n              <input type=\"date\" id=\"m-tour-date\" class=\"form-control\" required placeholder=\"S\u00e9lectionnez une date\">\r\n              <div class=\"error-message\" id=\"m-date-error\">Veuillez s\u00e9lectionner une date valide<\/div>\r\n            <\/div>\r\n          <\/div>\r\n          <div class=\"form-row row-1col\">\r\n            <div class=\"form-group\">\r\n              <label for=\"m-participants\">Nombre de participants<\/label>\r\n              <input type=\"number\" id=\"m-participants\" class=\"form-control\" min=\"1\" max=\"15\" value=\"1\" required placeholder=\"par exemple 2\">\r\n              <div class=\"error-message\" id=\"m-participants-error\">Veuillez saisir un num\u00e9ro valide (1-15)<\/div>\r\n            <\/div>\r\n          <\/div>\r\n\r\n          <!-- Two-per-line for the rest -->\r\n          <div class=\"form-row\">\r\n            <div class=\"form-group\">\r\n              <label for=\"m-first-name\">Pr\u00e9nom<\/label>\r\n              <input type=\"text\" id=\"m-first-name\" class=\"form-control\" required placeholder=\"par exemple, John\">\r\n              <div class=\"error-message\" id=\"m-first-name-error\">Veuillez saisir votre pr\u00e9nom<\/div>\r\n            <\/div>\r\n            <div class=\"form-group\">\r\n              <label for=\"m-last-name\">Nom de famille<\/label>\r\n              <input type=\"text\" id=\"m-last-name\" class=\"form-control\" required placeholder=\"par exemple, Smith\">\r\n              <div class=\"error-message\" id=\"m-last-name-error\">Veuillez saisir votre nom de famille<\/div>\r\n            <\/div>\r\n          <\/div>\r\n\r\n          <div class=\"form-row\">\r\n            <div class=\"form-group\">\r\n              <label for=\"m-email\">Adresse \u00e9lectronique<\/label>\r\n              <input type=\"email\" id=\"m-email\" class=\"form-control\" required placeholder=\"par exemple : john@example.com\">\r\n              <div class=\"error-message\" id=\"m-email-error\">Veuillez saisir une adresse \u00e9lectronique valide<\/div>\r\n            <\/div>\r\n            <div class=\"form-group\">\r\n              <label for=\"m-phone\">Num\u00e9ro de t\u00e9l\u00e9phone<\/label>\r\n              <input type=\"tel\" id=\"m-phone\" class=\"form-control\" required placeholder=\"par exemple +212612345678\">\r\n              <div class=\"error-message\" id=\"m-phone-error\">Veuillez saisir un num\u00e9ro de t\u00e9l\u00e9phone valide (10 chiffres au minimum).<\/div>\r\n            <\/div>\r\n          <\/div>\r\n\r\n          <div class=\"form-group\">\r\n            <label for=\"m-special-requests\">Demandes sp\u00e9ciales<\/label>\r\n            <textarea id=\"m-special-requests\" class=\"form-control\" rows=\"3\" placeholder=\"Dietary preferences, bike requirements, etc.\"><\/textarea>\r\n          <\/div>\r\n\r\n          <div class=\"popup-total\"><span>Total<\/span><strong id=\"mobile-popup-total\">$250<\/strong><\/div>\r\n\r\n          <div class=\"popup-actions\">\r\n            <button type=\"button\" class=\"btn-book\" id=\"mobile-cancel\">Annuler<\/button>\r\n            <button type=\"submit\" class=\"btn-book\" id=\"mobile-submit\"><i class=\"fa-solid fa-paper-plane\"><\/i> Confirmer la r\u00e9servation<\/button>\r\n          <\/div>\r\n        <input type=\"hidden\" name=\"trp-form-language\" value=\"fr\"\/><\/form>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- Lightbox -->\r\n    <dialog id=\"lightbox\">\r\n      <button class=\"close-lightbox\" aria-label=\"Fermer la bo\u00eete \u00e0 lumi\u00e8re\"><i class=\"fas fa-times\"><\/i><\/button>\r\n      <div class=\"lb-wrap\"><img class=\"lb-img\" id=\"lb-img\" alt=\"Gallery image\" \/><\/div>\r\n    <\/dialog>\r\n\r\n    <!-- SIMPLIFIED PROFESSIONAL THANK YOU MESSAGE -->\r\n    <div class=\"thankyou-overlay\" id=\"thankyou\">\r\n      <div class=\"thankyou-card\">\r\n        <div class=\"icon\"><i class=\"fa-solid fa-check\"><\/i><\/div>\r\n        <h3>Merci de votre attention !<\/h3>\r\n        <p>Nous avons re\u00e7u votre demande de r\u00e9servation et nous vous contacterons sous peu pour la confirmer.<\/p>\r\n        <div class=\"btn-row\">\r\n          <button class=\"btn-book\" id=\"ty-close\">Fermer<\/button>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"toast\" id=\"toast\" role=\"status\" aria-live=\"polite\"><\/div>\r\n  <\/div>\r\n\r\n  <script>\r\n    \/\/ Initialize EmailJS with your PUBLIC KEY\r\n    (function(){ \r\n      emailjs.init(\"01y34xv7r8ybBh8sA\");\r\n    })();\r\n\r\n    \/* Validation Functions *\/\r\n    function validateEmail(email) {\r\n      \/\/ Strict email validation\r\n      const emailRegex = \/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$\/;\r\n      return emailRegex.test(email);\r\n    }\r\n\r\n    function validatePhone(phone) {\r\n      \/\/ Remove all non-digit characters\r\n      const cleanPhone = phone.replace(\/\\D\/g, '');\r\n      \/\/ Check if phone has at least 10 digits (international standard)\r\n      return cleanPhone.length >= 10;\r\n    }\r\n\r\n    function showError(inputId, errorId, message) {\r\n      document.getElementById(inputId).classList.add('error');\r\n      document.getElementById(errorId).textContent = message;\r\n      document.getElementById(errorId).style.display = 'block';\r\n    }\r\n\r\n    function hideError(inputId, errorId) {\r\n      document.getElementById(inputId).classList.remove('error');\r\n      document.getElementById(errorId).style.display = 'none';\r\n    }\r\n\r\n    function validateForm(formType = 'desktop') {\r\n      let isValid = true;\r\n      const prefix = formType === 'mobile' ? 'm-' : '';\r\n\r\n      \/\/ Validate email\r\n      const email = document.getElementById(`${prefix}email`).value.trim();\r\n      if (!validateEmail(email)) {\r\n        showError(`${prefix}email`, `${prefix}email-error`, 'Please enter a valid email address (e.g., name@domain.com)');\r\n        isValid = false;\r\n      } else {\r\n        hideError(`${prefix}email`, `${prefix}email-error`);\r\n      }\r\n\r\n      \/\/ Validate phone\r\n      const phone = document.getElementById(`${prefix}phone`).value.trim();\r\n      if (!validatePhone(phone)) {\r\n        showError(`${prefix}phone`, `${prefix}phone-error`, 'Please enter a valid phone number with at least 10 digits');\r\n        isValid = false;\r\n      } else {\r\n        hideError(`${prefix}phone`, `${prefix}phone-error`);\r\n      }\r\n\r\n      \/\/ Validate required fields\r\n      const requiredFields = [\r\n        { id: `${prefix}tour-date`, errorId: `${prefix}date-error`, message: 'Please select a tour date' },\r\n        { id: `${prefix}participants`, errorId: `${prefix}participants-error`, message: 'Please enter number of participants' },\r\n        { id: `${prefix}first-name`, errorId: `${prefix}first-name-error`, message: 'Please enter your first name' },\r\n        { id: `${prefix}last-name`, errorId: `${prefix}last-name-error`, message: 'Please enter your last name' }\r\n      ];\r\n\r\n      requiredFields.forEach(field => {\r\n        const value = document.getElementById(field.id).value.trim();\r\n        if (!value) {\r\n          showError(field.id, field.errorId, field.message);\r\n          isValid = false;\r\n        } else {\r\n          hideError(field.id, field.errorId);\r\n        }\r\n      });\r\n\r\n      return isValid;\r\n    }\r\n\r\n    \/* Gallery *\/\r\n    const mainImage=document.getElementById('main-image');\r\n    const galleryThumbs=document.querySelectorAll('.gallery-thumb');\r\n    galleryThumbs.forEach(thumb=>{\r\n      thumb.addEventListener('click',()=>{\r\n        const mainSrc=thumb.getAttribute('data-main');\r\n        const fullSrc=thumb.getAttribute('data-full');\r\n        mainImage.style.backgroundImage=`url('${mainSrc}')`;\r\n        mainImage.querySelector('.zoom-btn').setAttribute('data-full',fullSrc);\r\n        galleryThumbs.forEach(t=>t.classList.remove('active')); thumb.classList.add('active');\r\n      });\r\n    });\r\n    const lightbox=document.getElementById('lightbox'); const lbImg=document.getElementById('lb-img'); const closeLightbox=document.querySelector('.close-lightbox');\r\n    function openLightbox(src){ lbImg.src=src; lbImg.classList.remove('zoomed'); lightbox.showModal(); }\r\n    mainImage.addEventListener('click',()=>openLightbox(mainImage.querySelector('.zoom-btn').getAttribute('data-full')));\r\n    document.querySelectorAll('.zoom-btn').forEach(btn=>btn.addEventListener('click',e=>{e.stopPropagation();openLightbox(btn.getAttribute('data-full'));}));\r\n    closeLightbox.addEventListener('click',()=>lightbox.close());\r\n    lbImg.addEventListener('click',()=>lbImg.classList.toggle('zoomed'));\r\n\r\n    \/* Min date = tomorrow *\/\r\n    (function(){\r\n      const d=new Date(); d.setDate(d.getDate()+1);\r\n      const min=`${d.getFullYear()}-${String(d.getMonth()+1).padStart(2,'0')}-${String(d.getDate()).padStart(2,'0')}`;\r\n      ['tour-date','m-tour-date'].forEach(id=>{const el=document.getElementById(id); if(el) el.min=min;});\r\n    })();\r\n\r\n    \/* FAQ *\/\r\n    document.querySelectorAll('.faq-accordion-header').forEach(h=>{\r\n      h.addEventListener('click',()=>{\r\n        const item=h.parentElement; const isActive=item.classList.contains('active');\r\n        document.querySelectorAll('.faq-accordion-item').forEach(i=>i.classList.remove('active'));\r\n        if(!isActive){ item.classList.add('active'); }\r\n      });\r\n    });\r\n\r\n    \/* Pricing *\/\r\n    const basePrice=250;\r\n    const participantsInput=document.getElementById('participants');\r\n    const priceAmount=document.getElementById('price-amount');\r\n    const mobileBarAmount=document.getElementById('mobile-price-amount');\r\n    function updateSidebarAndBar(){\r\n      const n=Math.max(1,parseInt(participantsInput.value||'1',10));\r\n      const total=basePrice*n;\r\n      priceAmount.textContent=`$${total}`;\r\n      mobileBarAmount.textContent=`$${total}`;\r\n    }\r\n    if(participantsInput){ participantsInput.addEventListener('input',updateSidebarAndBar); updateSidebarAndBar(); }\r\n\r\n    \/* Toast *\/\r\n    const toast=document.getElementById('toast');\r\n    function showToast(text,type='success'){ toast.textContent=text; toast.className='toast show '+type; setTimeout(()=>toast.classList.remove('show'),5000); }\r\n\r\n    \/* THANK YOU overlay helpers *\/\r\n    const TY=document.getElementById('thankyou');\r\n    const TY_CLOSE=document.getElementById('ty-close');\r\n    function showThankYou(){\r\n      TY.style.display='block'; \r\n      document.body.style.overflow='hidden';\r\n    }\r\n    function hideThankYou(){ \r\n      TY.style.display='none'; \r\n      document.body.style.overflow=''; \r\n    }\r\n    TY_CLOSE.addEventListener('click',hideThankYou);\r\n\r\n    \/* Desktop submit *\/\r\n    const form=document.getElementById('booking-form');\r\n    const submitBtn=document.getElementById('submit-btn');\r\n    if(form){\r\n      form.addEventListener('submit',async e=>{\r\n        e.preventDefault();\r\n        \r\n        \/\/ Validate form before submission\r\n        if (!validateForm('desktop')) {\r\n          showToast('Please fix the errors in the form','error');\r\n          return;\r\n        }\r\n        \r\n        submitBtn.disabled=true; submitBtn.innerHTML='<i class=\"fas fa-spinner fa-spin\"><\/i> Sending...';\r\n        try{\r\n          const pax=parseInt(document.getElementById('participants').value||'1',10);\r\n          const total=`$${basePrice*Math.max(1,pax)}`;\r\n          const formData={\r\n            tour_date:document.getElementById('tour-date').value,\r\n            participants:pax,\r\n            first_name:document.getElementById('first-name').value,\r\n            last_name:document.getElementById('last-name').value,\r\n            email: document.getElementById('email').value,\r\n            phone: document.getElementById('phone').value,\r\n            special_requests:document.getElementById('special-requests').value,\r\n            tour_name:'4-Day Cycling Marrakech and Atlas Mountains',\r\n            total_price:total\r\n          };\r\n          \r\n          \/\/ Send email using your EmailJS credentials\r\n          await emailjs.send('service_xaasfmh', 'template_887d10v', formData);\r\n          \r\n          showThankYou();\r\n          form.reset(); \r\n          updateSidebarAndBar();\r\n        }catch(err){ \r\n          console.error('EmailJS Error:', err); \r\n          showToast('Sorry, there was an error sending your request. Please try again.','error'); \r\n        }\r\n        finally{ submitBtn.disabled=false; submitBtn.innerHTML='<i class=\"fa-solid fa-paper-plane\"><\/i> Book Now'; }\r\n      });\r\n    }\r\n\r\n    \/* Mobile popup *\/\r\n    const openMobilePopupBtn=document.getElementById('open-mobile-popup');\r\n    const mobilePopupOverlay=document.getElementById('mobile-popup');\r\n    const closeMobilePopupBtn=document.getElementById('close-mobile-popup');\r\n    const mobileCancelBtn=document.getElementById('mobile-cancel');\r\n\r\n    const mDate=document.getElementById('m-tour-date');\r\n    const mParticipants=document.getElementById('m-participants');\r\n    const mFirst=document.getElementById('m-first-name');\r\n    const mLast=document.getElementById('m-last-name');\r\n    const mEmail=document.getElementById('m-email');\r\n    const mPhone=document.getElementById('m-phone');\r\n    const mReq=document.getElementById('m-special-requests');\r\n    const mTotal=document.getElementById('mobile-popup-total');\r\n\r\n    function syncToMobile(){\r\n      const d=(id)=>document.getElementById(id)?.value||'';\r\n      mDate.value=d('tour-date'); mParticipants.value=d('participants')||'1';\r\n      mFirst.value=d('first-name'); mLast.value=d('last-name');\r\n      mEmail.value=d('email'); mPhone.value=d('phone'); mReq.value=d('special-requests');\r\n      updateMobileTotal();\r\n    }\r\n    function updateMobileTotal(){\r\n      const n=Math.max(1,parseInt(mParticipants.value||'1',10));\r\n      mTotal.textContent=`$${basePrice*n}`;\r\n    }\r\n    function openPopup(){\r\n      syncToMobile();\r\n      mobilePopupOverlay.style.display='grid';\r\n      document.body.style.overflow='hidden';\r\n      mobilePopupOverlay.setAttribute('aria-hidden','false');\r\n    }\r\n    function closePopup(){\r\n      mobilePopupOverlay.style.display='none';\r\n      document.body.style.overflow='';\r\n      mobilePopupOverlay.setAttribute('aria-hidden','true');\r\n      if(document.getElementById('participants')){ document.getElementById('participants').value=mParticipants.value||'1'; updateSidebarAndBar(); }\r\n      if(document.getElementById('tour-date')) document.getElementById('tour-date').value=mDate.value||'';\r\n    }\r\n    if(openMobilePopupBtn) openMobilePopupBtn.addEventListener('click',openPopup);\r\n    if(closeMobilePopupBtn) closeMobilePopupBtn.addEventListener('click',closePopup);\r\n    if(mobileCancelBtn) mobileCancelBtn.addEventListener('click',closePopup);\r\n    window.addEventListener('click',e=>{ if(e.target===mobilePopupOverlay) closePopup(); });\r\n    window.addEventListener('keydown',e=>{ if(e.key==='Escape' && mobilePopupOverlay.style.display!=='none') closePopup(); });\r\n    if(mParticipants) mParticipants.addEventListener('input',updateMobileTotal);\r\n\r\n    \/* Mobile submit *\/\r\n    const mobileForm=document.getElementById('mobile-booking-form');\r\n    const mobileSubmitBtn=document.getElementById('mobile-submit');\r\n    if(mobileForm){\r\n      mobileForm.addEventListener('submit',async e=>{\r\n        e.preventDefault();\r\n        \r\n        \/\/ Validate form before submission\r\n        if (!validateForm('mobile')) {\r\n          showToast('Please fix the errors in the form','error');\r\n          return;\r\n        }\r\n        \r\n        mobileSubmitBtn.disabled=true; mobileSubmitBtn.innerHTML='<i class=\"fas fa-spinner fa-spin\"><\/i> Sending...';\r\n        try{\r\n          const pax=Math.max(1,parseInt(mParticipants.value||'1',10));\r\n          const total=`$${basePrice*pax}`;\r\n          const formData={\r\n            tour_date:mDate.value, participants:pax, first_name:mFirst.value,\r\n            last_name:mLast.value, email: mEmail.value, phone: mPhone.value, \r\n            special_requests:mReq.value,\r\n            tour_name:'4-Day Cycling Marrakech and Atlas Mountains',\r\n            total_price:total\r\n          };\r\n          \r\n          \/\/ Send email using your EmailJS credentials\r\n          await emailjs.send('service_xaasfmh', 'template_887d10v', formData);\r\n          \r\n          closePopup();\r\n          showThankYou();\r\n        }catch(err){ \r\n          console.error('EmailJS Error:', err); \r\n          showToast('Sorry, there was an error sending your request. Please try again.','error'); \r\n        }\r\n        finally{ mobileSubmitBtn.disabled=false; mobileSubmitBtn.innerHTML='<i class=\"fa-solid fa-paper-plane\"><\/i> Confirm Booking'; }\r\n      });\r\n    }\r\n\r\n    \/\/ Real-time validation for email and phone fields\r\n    document.addEventListener('DOMContentLoaded', function() {\r\n      \/\/ Desktop form real-time validation\r\n      const emailInput = document.getElementById('email');\r\n      const phoneInput = document.getElementById('phone');\r\n      \r\n      if (emailInput) {\r\n        emailInput.addEventListener('blur', function() {\r\n          if (this.value.trim() && !validateEmail(this.value.trim())) {\r\n            showError('email', 'email-error', 'Please enter a valid email address (e.g., name@domain.com)');\r\n          } else {\r\n            hideError('email', 'email-error');\r\n          }\r\n        });\r\n      }\r\n      \r\n      if (phoneInput) {\r\n        phoneInput.addEventListener('blur', function() {\r\n          if (this.value.trim() && !validatePhone(this.value.trim())) {\r\n            showError('phone', 'phone-error', 'Please enter a valid phone number with at least 10 digits');\r\n          } else {\r\n            hideError('phone', 'phone-error');\r\n          }\r\n        });\r\n      }\r\n\r\n      \/\/ Mobile form real-time validation\r\n      const mEmailInput = document.getElementById('m-email');\r\n      const mPhoneInput = document.getElementById('m-phone');\r\n      \r\n      if (mEmailInput) {\r\n        mEmailInput.addEventListener('blur', function() {\r\n          if (this.value.trim() && !validateEmail(this.value.trim())) {\r\n            showError('m-email', 'm-email-error', 'Please enter a valid email address (e.g., name@domain.com)');\r\n          } else {\r\n            hideError('m-email', 'm-email-error');\r\n          }\r\n        });\r\n      }\r\n      \r\n      if (mPhoneInput) {\r\n        mPhoneInput.addEventListener('blur', function() {\r\n          if (this.value.trim() && !validatePhone(this.value.trim())) {\r\n            showError('m-phone', 'm-phone-error', 'Please enter a valid phone number with at least 10 digits');\r\n          } else {\r\n            hideError('m-phone', 'm-phone-error');\r\n          }\r\n        });\r\n      }\r\n    });\r\n\r\n    \/\/ Add zoom functionality to Desert Experience Gallery\r\n    document.addEventListener('DOMContentLoaded', function() {\r\n      const bottomGalleryThumbs = document.querySelectorAll('.bottom-gallery .gallery-thumb');\r\n      \r\n      bottomGalleryThumbs.forEach(thumb => {\r\n        thumb.addEventListener('click', function() {\r\n          const fullSrc = this.getAttribute('data-full');\r\n          openLightbox(fullSrc);\r\n        });\r\n      });\r\n    });\r\n  <\/script>\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>View Tour Description 4-Day Cycling Marrakech and Atlas Mountains Highly recommended &#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":{"footnotes":""},"class_list":["post-402","page","type-page","status-publish","hentry"],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/moroquestadventures.com\/fr\/wp-json\/wp\/v2\/pages\/402","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/moroquestadventures.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/moroquestadventures.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/moroquestadventures.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/moroquestadventures.com\/fr\/wp-json\/wp\/v2\/comments?post=402"}],"version-history":[{"count":14,"href":"https:\/\/moroquestadventures.com\/fr\/wp-json\/wp\/v2\/pages\/402\/revisions"}],"predecessor-version":[{"id":1339,"href":"https:\/\/moroquestadventures.com\/fr\/wp-json\/wp\/v2\/pages\/402\/revisions\/1339"}],"wp:attachment":[{"href":"https:\/\/moroquestadventures.com\/fr\/wp-json\/wp\/v2\/media?parent=402"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}