{"id":2269,"date":"2026-10-10T21:01:43","date_gmt":"2026-10-10T21:01:43","guid":{"rendered":"https:\/\/thatismorocco.com\/?page_id=2269"},"modified":"2026-10-10T23:51:52","modified_gmt":"2026-10-10T23:51:52","slug":"explore","status":"publish","type":"page","link":"https:\/\/thatismorocco.com\/en\/explore\/","title":{"rendered":"\u0627\u0633\u062a\u0643\u0634\u0641"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2269\" class=\"elementor elementor-2269\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4cd056f elementor-section-content-middle ct-section-stretched elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4cd056f\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f8c6691\" data-id=\"f8c6691\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-4186693 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4186693\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-375230c\" data-id=\"375230c\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-1a45797 rahyb-blur-heading elementor-widget elementor-widget-heading\" data-id=\"1a45797\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\u0627\u0643\u062a\u0634\u0641 \u0627\u0644\u0645\u063a\u0631\u0628\n<br>\n \u0639\u0644\u0649 \u0637\u0631\u064a\u0642\u062a\u0643.!<\/h2>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-87d0707 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"87d0707\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-c293c88\" data-id=\"c293c88\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7d22e96 animated-slow rahyb-blur-heading elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"7d22e96\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<span class=\"elementor-heading-title elementor-size-default\">\u0645\u0646 \u0627\u0644\u0645\u062f\u0646 \u0627\u0644\u0639\u062a\u064a\u0642\u0629 \u0625\u0644\u0649 \u0627\u0644\u062a\u062c\u0627\u0631\u0628 \u0627\u0644\u0645\u062d\u0644\u064a\u0629 \u0648\u0627\u0644\u0623\u0645\u0627\u0643\u0646 \u0627\u0644\u0645\u0645\u064a\u0632\u0629\u061b \u062e\u0631\u064a\u0637\u0629 \u0648\u0627\u062d\u062f\u0629 \u062a\u0633\u0627\u0639\u062f\u0643 \u0639\u0644\u0649 \u0627\u0644\u0639\u062b\u0648\u0631 \u0639\u0644\u0649 \u0648\u062c\u0647\u062a\u0643 \u0627\u0644\u062a\u0627\u0644\u064a\u0629.\n\n<\/span>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-6b6003d elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6b6003d\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-36db229\" data-id=\"36db229\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-af39114 elementor-widget elementor-widget-shortcode\" data-id=\"af39114\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">    <section id=\"tim-explore-1\" class=\"timExplore\" dir=\"rtl\" data-config=\"{&quot;placeIcons&quot;:{&quot;\u0641\u0646\u062f\u0642&quot;:&quot;https:\/\/thatismorocco.com\/wp-content\/uploads\/2026\/10\/bed-single-01-stroke-rounded.svg&quot;,&quot;\u0631\u064a\u0627\u0636 \/ \u062f\u0627\u0631 \u0636\u064a\u0627\u0641\u0629&quot;:&quot;https:\/\/thatismorocco.com\/wp-content\/uploads\/2026\/10\/guest-house-stroke-rounded.svg&quot;,&quot;\u0645\u0637\u0639\u0645&quot;:&quot;https:\/\/thatismorocco.com\/wp-content\/uploads\/2026\/10\/restaurant-01-stroke-rounded.svg&quot;,&quot;\u0645\u0642\u0647\u0649&quot;:&quot;https:\/\/thatismorocco.com\/wp-content\/uploads\/2026\/10\/coffee-02-stroke-rounded.svg&quot;,&quot;\u0645\u0646\u062a\u062c\u0639&quot;:&quot;https:\/\/thatismorocco.com\/wp-content\/uploads\/2026\/10\/flower-01-stroke-rounded.svg&quot;,&quot;default&quot;:&quot;https:\/\/thatismorocco.com\/wp-content\/uploads\/2026\/10\/location-03-stroke-rounded-1.svg&quot;},&quot;ajax&quot;:&quot;https:\/\/thatismorocco.com\/wp-admin\/admin-ajax.php&quot;,&quot;tile&quot;:&quot;https:\/\/tile.openstreetmap.org\/{z}\/{x}\/{y}.png&quot;,&quot;attribution&quot;:&quot;&copy; &lt;a href=\\&quot;https:\/\/www.openstreetmap.org\/copyright\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;noopener\\&quot;&gt;OpenStreetMap contributors&lt;\/a&gt;&quot;,&quot;retinaMode&quot;:&quot;detect&quot;,&quot;types&quot;:{&quot;all&quot;:&quot;\u0627\u0644\u0643\u0644&quot;,&quot;cities&quot;:&quot;\u0627\u0644\u0645\u062f\u0646&quot;,&quot;places&quot;:&quot;\u0627\u0644\u0623\u0645\u0627\u0643\u0646&quot;,&quot;trips&quot;:&quot;\u0627\u0644\u0631\u062d\u0644\u0627\u062a&quot;,&quot;events&quot;:&quot;\u0627\u0644\u0641\u0639\u0627\u0644\u064a\u0627\u062a&quot;},&quot;geocodeAdmin&quot;:false,&quot;reviewAdmin&quot;:false,&quot;reviewNonce&quot;:&quot;&quot;,&quot;geocodeNonce&quot;:&quot;&quot;,&quot;leafletJs&quot;:&quot;https:\/\/cdn.jsdelivr.net\/npm\/leaflet@1.9.4\/dist\/leaflet.js&quot;,&quot;leafletCss&quot;:&quot;https:\/\/cdn.jsdelivr.net\/npm\/leaflet@1.9.4\/dist\/leaflet.css&quot;}\" aria-label=\"\u0627\u0633\u062a\u0643\u0634\u0641 \u0627\u0644\u0645\u063a\u0631\u0628\">\r\n      <div class=\"timExplore-controls\" role=\"search\">\r\n        <label class=\"timExplore-search\"><span class=\"timExplore-searchGlyph\"><i class=\"timExplore-icon timExplore-iSearch\" aria-hidden=\"true\"><\/i><\/span><input type=\"search\" data-search placeholder=\"\u0627\u0628\u062d\u062b \u0639\u0646 \u0645\u062f\u064a\u0646\u0629 \u0623\u0648 \u0645\u0643\u0627\u0646 \u0623\u0648 \u0631\u062d\u0644\u0629\u2026\" aria-label=\"\u0627\u0628\u062d\u062b \u0641\u064a \u0627\u0644\u0645\u063a\u0631\u0628\" autocomplete=\"off\"><\/label>\r\n        <label class=\"timExplore-selectBox\"><select data-area aria-label=\"\u0627\u0644\u0645\u062f\u064a\u0646\u0629 \u0623\u0648 \u0627\u0644\u0645\u0646\u0637\u0642\u0629\"><option value=\"\">\u0643\u0644 \u0627\u0644\u0645\u062f\u0646 \u0648\u0627\u0644\u0645\u0646\u0627\u0637\u0642<\/option><\/select><i class=\"timExplore-icon timExplore-iArrow\" aria-hidden=\"true\"><\/i><\/label>\r\n        <button class=\"timExplore-near\" type=\"button\" data-near title=\"\u0627\u062e\u062a\u0631 \u0623\u0642\u0631\u0628 \u0645\u062f\u064a\u0646\u0629 \u0627\u0639\u062a\u0645\u0627\u062f\u064b\u0627 \u0639\u0644\u0649 \u0645\u0648\u0642\u0639\u0643\"><i class=\"timExplore-icon timExplore-iNear\" aria-hidden=\"true\"><\/i><span>\u0627\u0644\u0623\u0642\u0631\u0628 \u0625\u0644\u064a\u0651<\/span><\/button>\r\n      <\/div>\r\n      <div class=\"timExplore-types\" role=\"group\" aria-label=\"\u0646\u0648\u0639 \u0627\u0644\u0645\u062d\u062a\u0648\u0649\">\r\n        <button type=\"button\" data-type=\"all\" class=\"is-active\" aria-pressed=\"true\">\u0627\u0644\u0643\u0644<\/button><button type=\"button\" data-type=\"cities\" class=\"\" aria-pressed=\"false\">\u0627\u0644\u0645\u062f\u0646<\/button><button type=\"button\" data-type=\"places\" class=\"\" aria-pressed=\"false\">\u0627\u0644\u0623\u0645\u0627\u0643\u0646<\/button><button type=\"button\" data-type=\"trips\" class=\"\" aria-pressed=\"false\">\u0627\u0644\u0631\u062d\u0644\u0627\u062a<\/button><button type=\"button\" data-type=\"events\" class=\"\" aria-pressed=\"false\">\u0627\u0644\u0641\u0639\u0627\u0644\u064a\u0627\u062a<\/button>      <\/div>\r\n      <div class=\"timExplore-layout\">\r\n        <div class=\"timExplore-results\">\r\n          <div class=\"timExplore-resultsHead\"><div><h2 data-heading>\u0648\u062c\u0647\u0627\u062a \u062a\u0633\u062a\u062d\u0642 \u0627\u0644\u0627\u0643\u062a\u0634\u0627\u0641<\/h2><p data-summary>\u062c\u0627\u0631\u064d \u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0648\u062c\u0647\u0627\u062a\u2026<\/p><\/div><button type=\"button\" data-reset class=\"timExplore-reset\" hidden>\u0625\u0639\u0627\u062f\u0629 \u0636\u0628\u0637<\/button><\/div>\r\n          <div class=\"timExplore-list\" data-results aria-live=\"polite\"><div class=\"timExplore-loading\">\u062c\u0627\u0631\u064d \u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0645\u062d\u062a\u0648\u0649\u2026<\/div><\/div>\r\n          <div class=\"timExplore-more\"><button data-more type=\"button\" hidden>\u0639\u0631\u0636 \u0627\u0644\u0645\u0632\u064a\u062f<\/button><\/div>\r\n        <\/div>\r\n        <div class=\"timExplore-mapWrap\">\r\n          <div class=\"timExplore-map\" data-map aria-label=\"\u062e\u0631\u064a\u0637\u0629 \u062a\u0641\u0627\u0639\u0644\u064a\u0629 \u0644\u0644\u0645\u062f\u0646 \u0648\u0627\u0644\u0645\u0646\u0627\u0637\u0642 \u0627\u0644\u0645\u063a\u0631\u0628\u064a\u0629\">\r\n            <div class=\"timExplore-mapPlaceholder\" data-map-status><div class=\"timExplore-mapBadge\">\u0627\u0644\u0645\u063a\u0631\u0628 <span>\u2726<\/span><\/div><p>\u062c\u0627\u0631\u064a \u062a\u062c\u0647\u064a\u0632 \u0627\u0644\u062e\u0631\u064a\u0637\u0629\u2026<\/p><\/div>\r\n            <div class=\"timExplore-mapTools\" data-map-tools hidden aria-label=\"\u0623\u062f\u0648\u0627\u062a \u0627\u0644\u062e\u0631\u064a\u0637\u0629\">\r\n              <button type=\"button\" class=\"timExplore-mapExpand\" data-map-expand aria-label=\"\u062a\u0648\u0633\u064a\u0639 \u0627\u0644\u062e\u0631\u064a\u0637\u0629\" title=\"\u062a\u0648\u0633\u064a\u0639 \u0627\u0644\u062e\u0631\u064a\u0637\u0629\" aria-pressed=\"false\">\r\n                <svg class=\"timExplore-icoExpand\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M8 3H3v5M3 3l7 7M16 3h5v5M21 3l-7 7M3 16v5h5M3 21l7-7M21 16v5h-5M21 21l-7-7\"\/><\/svg>\r\n                <svg class=\"timExplore-icoCollapse\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3 10h7V3M10 10 3 3M21 10h-7V3M14 10l7-7M3 14h7v7M10 14l-7 7M21 14h-7v7M14 14l7 7\"\/><\/svg>\r\n              <\/button>\r\n              <div class=\"timExplore-mapZoom\" role=\"group\" aria-label=\"\u062a\u0643\u0628\u064a\u0631 \u0648\u062a\u0635\u063a\u064a\u0631 \u0627\u0644\u062e\u0631\u064a\u0637\u0629\">\r\n                <button type=\"button\" data-map-zoomin aria-label=\"\u062a\u0643\u0628\u064a\u0631 \u0627\u0644\u062e\u0631\u064a\u0637\u0629\" title=\"\u062a\u0643\u0628\u064a\u0631 \u0627\u0644\u062e\u0631\u064a\u0637\u0629\">+<\/button>\r\n                <button type=\"button\" data-map-zoomout aria-label=\"\u062a\u0635\u063a\u064a\u0631 \u0627\u0644\u062e\u0631\u064a\u0637\u0629\" title=\"\u062a\u0635\u063a\u064a\u0631 \u0627\u0644\u062e\u0631\u064a\u0637\u0629\">\u2212<\/button>\r\n              <\/div>\r\n            <\/div>\r\n          <\/div>\r\n          <div class=\"timExplore-mapFoot\"><span data-map-foot><i><\/i> \u0641\u064a \u0642\u0633\u0645 \u0627\u0644\u0623\u0645\u0627\u0643\u0646 \u062a\u0638\u0647\u0631 \u0627\u0644\u0639\u0644\u0627\u0645\u0627\u062a \u0630\u0627\u062a \u0627\u0644\u0625\u062d\u062f\u0627\u062b\u064a\u0627\u062a \u0627\u0644\u0645\u0624\u0643\u062f\u0629 \u0641\u0642\u0637.<\/span><button type=\"button\" data-review-open hidden>\u0645\u0631\u0627\u062c\u0639\u0629 \u0645\u0648\u0627\u0642\u0639 \u0627\u0644\u0623\u0645\u0627\u0643\u0646<\/button><button type=\"button\" data-locate-admin hidden title=\"\u0625\u0639\u0627\u062f\u0629 \u0641\u062d\u0635 \u0627\u0644\u0623\u0645\u0627\u0643\u0646 \u062f\u0648\u0646 \u0625\u062d\u062f\u0627\u062b\u064a\u0627\u062a \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0627\u0644\u0628\u062d\u062b \u0639\u0646 \u0627\u0644\u0645\u0646\u0634\u0622\u062a\">\u0627\u0633\u062a\u0643\u0645\u0627\u0644 \u0645\u0648\u0627\u0642\u0639 \u0627\u0644\u0623\u0645\u0627\u0643\u0646<\/button><button type=\"button\" data-fit title=\"\u0639\u0631\u0636 \u0627\u0644\u0645\u063a\u0631\u0628 \u0643\u0627\u0645\u0644\u064b\u0627\">\u0639\u0631\u0636 \u0627\u0644\u0645\u063a\u0631\u0628<\/button><\/div>\r\n          <div class=\"timExplore-reviewPanel\" data-review-panel hidden dir=\"rtl\">\r\n            <div class=\"timExplore-reviewHead\"><strong data-review-heading>\u062a\u062d\u062f\u064a\u062f \u0645\u0648\u0642\u0639 \u0645\u0643\u0627\u0646 \u063a\u064a\u0631 \u0638\u0627\u0647\u0631<\/strong><button type=\"button\" data-review-close aria-label=\"\u0625\u063a\u0644\u0627\u0642\">\u00d7<\/button><\/div>\r\n            <p data-review-help>\u0627\u062e\u062a\u0631 \u0627\u0644\u0645\u0643\u0627\u0646\u060c \u0648\u0627\u0644\u0635\u0642 \u0631\u0627\u0628\u0637 \u0645\u0634\u0627\u0631\u0643\u062a\u0647 \u0645\u0646 Google Maps \u0644\u062a\u062d\u062f\u064a\u062f \u0627\u0644\u0646\u0642\u0637\u0629 \u062a\u0644\u0642\u0627\u0626\u064a\u064b\u0627\u060c \u0623\u0648 \u0627\u062e\u062a\u0631 \u0627\u0644\u0645\u0648\u0642\u0639 \u0628\u0627\u0644\u0646\u0642\u0631 \u0639\u0644\u0649 \u0627\u0644\u062e\u0631\u064a\u0637\u0629.<\/p>\r\n            <div class=\"timExplore-reviewFields\"><select data-review-select aria-label=\"\u0627\u062e\u062a\u0631 \u0645\u0643\u0627\u0646\u064b\u0627 \u063a\u064a\u0631 \u0645\u062d\u062f\u062f\"><option value=\"\">\u062c\u0627\u0631\u064d \u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0623\u0645\u0627\u0643\u0646\u2026<\/option><\/select><a data-review-google href=\"#\" target=\"_blank\" rel=\"noopener noreferrer\" hidden>Google Maps<\/a><\/div>\r\n            <div class=\"timExplore-reviewUrlRow\"><label for=\"tim-explore-1-googleLink\">\u0631\u0627\u0628\u0637 Google Maps<\/label><div class=\"timExplore-reviewUrlControls\"><input id=\"tim-explore-1-googleLink\" type=\"url\" inputmode=\"url\" data-review-url placeholder=\"https:\/\/maps.app.goo.gl\/...\" autocomplete=\"off\" aria-label=\"\u0631\u0627\u0628\u0637 Google Maps \u0644\u0644\u0645\u0643\u0627\u0646 \u0627\u0644\u0645\u062e\u062a\u0627\u0631\" dir=\"ltr\"><button type=\"button\" data-review-resolve disabled>\u062a\u062d\u062f\u064a\u062f \u0639\u0644\u0649 \u0627\u0644\u062e\u0631\u064a\u0637\u0629<\/button><\/div><\/div>\r\n            <div class=\"timExplore-reviewActions\"><span data-review-status role=\"status\">\u0627\u062e\u062a\u0631 \u0645\u0643\u0627\u0646\u064b\u0627 \u0644\u0644\u0628\u062f\u0621.<\/span><button type=\"button\" data-review-save disabled>\u062d\u0641\u0638 \u0627\u0644\u0645\u0648\u0642\u0639<\/button><\/div>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/section>\r\n    <style>\r\n      #tim-explore-1{--x-accent:var(--primary,#FFC94A);--x-heading:var(--heading,#211D16);--x-text:var(--text,#706d66);--x-card:var(--card,#FBF9F3);--x-bg:var(--surface,#F5EFE4);--x-border:var(--border,#EBE3D4);color:var(--x-text);font-family:var(--x-font-base,var(--theme-font-family,inherit))!important;width:100%;min-width:0;margin:0 auto;padding:0 0 28px;-webkit-text-size-adjust:100%;text-size-adjust:100%}\r\n      #tim-explore-1 *,#tim-explore-1 *:before,#tim-explore-1 *:after{box-sizing:border-box;box-shadow:none!important}\r\n      #tim-explore-1 [hidden]{display:none!important}\r\n      \/* Read the site's actual Blocksy typography (H2\/H6\/Base), never load another font. *\/\r\n      #tim-explore-1 :where(p,span,small,button,label,input,select,option,div,a,b,strong){font-family:var(--x-font-base,inherit)!important}\r\n      #tim-explore-1 :where(h1,h2,h3,h4,h5,h6,.timExplore-itemName,.timExplore-mapBadge,.timExplore-mapPopup b){font-family:var(--x-font-h6,var(--x-font-base,inherit))!important}\r\n      #tim-explore-1 .timExplore-resultsHead h2{font-family:var(--x-font-h2,var(--x-font-h6,inherit))!important}\r\n      #tim-explore-1 .timExplore-srOnly{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}\r\n      #tim-explore-1 button,#tim-explore-1 select,#tim-explore-1 input{font-family:var(--x-font-base,inherit)!important}\r\n      #tim-explore-1 .timExplore-controls{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,.95fr) minmax(134px,auto);gap:9px;width:min(100%,850px);margin:0 auto 19px;align-items:center}\r\n      #tim-explore-1 .timExplore-search,#tim-explore-1 .timExplore-selectBox{height:48px;position:relative;display:flex;align-items:center;gap:9px;padding:0 13px;background:var(--x-card);border:1px solid var(--x-border);border-radius:999px;min-width:0;transition:border-color .18s ease}\r\n      #tim-explore-1 .timExplore-searchGlyph{display:flex;align-items:center;justify-content:center;width:33px;height:33px;min-width:33px;border-radius:50%;background:var(--x-accent);color:#211D16;order:2}\r\n      #tim-explore-1 .timExplore-search input{order:1;flex:1 1 auto;min-width:0;text-align:start}\r\n      #tim-explore-1 .timExplore-searchGlyph>.timExplore-icon{width:16px;height:16px;flex-basis:16px}\r\n      #tim-explore-1 .timExplore-icon{display:inline-block;width:19px;height:19px;flex:0 0 19px;background:currentColor;-webkit-mask:var(--x-ico) no-repeat center\/contain;mask:var(--x-ico) no-repeat center\/contain}\r\n      #tim-explore-1 .timExplore-iSearch{--x-ico:url('https:\/\/thatismorocco.com\/wp-content\/uploads\/2026\/10\/search-02-stroke-rounded-2.svg')}\r\n      #tim-explore-1 .timExplore-iArrow{--x-ico:url('https:\/\/thatismorocco.com\/wp-content\/uploads\/2026\/10\/arrow-down-02-stroke-rounded.svg')}\r\n      #tim-explore-1 .timExplore-iNear{--x-ico:url('https:\/\/thatismorocco.com\/wp-content\/uploads\/2026\/10\/location-01-stroke-rounded-2.svg')}\r\n      #tim-explore-1 .timExplore-iImage{--x-ico:url('https:\/\/thatismorocco.com\/wp-content\/uploads\/2026\/10\/image-02-stroke-rounded-2.svg')}\r\n      #tim-explore-1 input,#tim-explore-1 select{width:100%;height:100%;min-height:0;padding:0!important;margin:0;border:0!important;background:transparent!important;color:var(--x-heading)!important;font-size:13px!important;font-weight:400!important;line-height:1.45!important;outline:0!important;box-shadow:none!important;-webkit-text-fill-color:var(--x-heading)!important}\r\n      #tim-explore-1 input::placeholder{color:var(--x-text);opacity:.9;font-weight:400!important}#tim-explore-1 input[type=search]::-webkit-search-cancel-button{cursor:pointer}\r\n      #tim-explore-1 .timExplore-selectBox select{appearance:none;-webkit-appearance:none;padding-inline-end:23px!important;cursor:pointer;text-overflow:ellipsis}\r\n      #tim-explore-1 .timExplore-selectBox>.timExplore-icon{pointer-events:none;position:absolute;inset-inline-end:12px;top:14px;width:17px;height:17px;color:var(--x-text)}\r\n      #tim-explore-1 .timExplore-search:focus-within,#tim-explore-1 .timExplore-selectBox:focus-within{border-color:var(--x-accent)}\r\n      #tim-explore-1 button{cursor:pointer;margin:0;box-shadow:none!important}\r\n      #tim-explore-1 .timExplore-near{height:48px;padding:0 16px;border:1px solid var(--x-border);border-radius:999px;background:var(--x-card);color:var(--x-heading);display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:400;white-space:nowrap}\r\n      #tim-explore-1 .timExplore-near:hover{border-color:var(--x-accent)}\r\n      #tim-explore-1 .timExplore-advanced{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:0 0 13px}\r\n      #tim-explore-1 .timExplore-option{display:inline-flex;align-items:center;gap:7px;height:41px;min-width:0;padding:0 9px 0 12px;border:1px solid var(--x-border);border-radius:11px;background:var(--x-card);color:var(--x-text);font-size:12px;margin:0}\r\n      #tim-explore-1 .timExplore-option span{flex:none;white-space:nowrap}\r\n      #tim-explore-1 .timExplore-option select{width:auto!important;max-width:195px;min-width:90px;height:39px!important;padding:0 7px!important;font-size:13px!important;font-weight:400!important;border:0!important;color:var(--x-heading)!important;cursor:pointer}\r\n      #tim-explore-1 .timExplore-itemWrap{position:relative}\r\n      #tim-explore-1 .timExplore-item{padding-inline-end:12px}\r\n      #tim-explore-1 .timExplore-types{display:flex;align-items:center;justify-content:center;gap:8px;overflow-x:auto;scrollbar-width:none;padding:0 0 16px;scroll-padding-inline:12px}\r\n      #tim-explore-1 .timExplore-types::-webkit-scrollbar{display:none}\r\n      #tim-explore-1 .timExplore-types button{flex:0 0 auto;min-height:39px;padding:0 16px;border:1px solid var(--x-border);border-radius:999px;background:var(--x-card);color:var(--x-heading);font-family:var(--x-font-h6,var(--x-font-base,inherit))!important;font-size:12.5px;font-weight:750;white-space:nowrap}\r\n      #tim-explore-1 .timExplore-types button.is-active,#tim-explore-1 .timExplore-types button:hover{background:var(--x-accent);border-color:var(--x-accent);color:#211D16}\r\n      #tim-explore-1 .timExplore-layout{display:grid;grid-template-columns:minmax(345px,.8fr) minmax(0,1.3fr);gap:15px;align-items:start}\r\n      #tim-explore-1 .timExplore-results,#tim-explore-1 .timExplore-mapWrap{background:var(--x-card);border:1px solid var(--x-border);border-radius:19px;overflow:hidden;min-width:0}\r\n      #tim-explore-1 .timExplore-results{padding:16px;min-height:550px}\r\n      #tim-explore-1 .timExplore-resultsHead{display:flex;align-items:start;justify-content:space-between;gap:8px;margin:1px 0 16px}\r\n      #tim-explore-1 .timExplore-resultsHead h2{font-size:19px;line-height:1.4;font-weight:800;margin:0 0 4px;color:var(--x-heading)}\r\n      #tim-explore-1 .timExplore-resultsHead p{font-size:12px;color:var(--x-text);margin:0}\r\n      #tim-explore-1 .timExplore-reset{border:0;background:transparent;color:var(--x-heading);font-size:12px;text-decoration:underline;text-underline-offset:4px;white-space:nowrap;padding:5px}\r\n      #tim-explore-1 .timExplore-list{display:flex;flex-direction:column;gap:9px}\r\n      #tim-explore-1 .timExplore-item{display:grid;grid-template-columns:98px minmax(0,1fr);gap:12px;min-height:110px;padding:9px;border:1px solid var(--x-border);border-radius:13px;background:var(--x-card);color:inherit;text-decoration:none!important;transition:border-color .15s}\r\n      #tim-explore-1 .timExplore-item:hover{border-color:var(--x-accent)}\r\n      #tim-explore-1 .timExplore-photo{position:relative;display:flex;align-items:center;justify-content:center;border-radius:9px;background:var(--x-bg);color:var(--x-text);overflow:hidden;min-height:96px}\r\n      #tim-explore-1 .timExplore-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}\r\n      #tim-explore-1 .timExplore-photo .timExplore-icon{width:27px;height:27px;opacity:.48}\r\n      #tim-explore-1 .timExplore-itemText{min-width:0;display:flex;flex-direction:column;justify-content:center;gap:6px}\r\n      #tim-explore-1 .timExplore-itemName{font-size:12.5px;font-weight:800;color:var(--x-heading);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}\r\n      #tim-explore-1 .timExplore-itemMeta{display:flex;gap:4px;align-items:center;flex-wrap:wrap;font-size:10px;color:var(--x-text)}\r\n      #tim-explore-1 .timExplore-itemMeta i{font-style:normal;background:var(--x-bg);border-radius:999px;padding:2px 7px;color:var(--x-heading);font-size:10px;line-height:1.35}\r\n      #tim-explore-1 .timExplore-itemDesc{font-size:11.5px;line-height:1.6;color:var(--x-text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}\r\n      #tim-explore-1 .timExplore-more{padding-top:14px;text-align:center}\r\n      #tim-explore-1 .timExplore-more button{height:41px;padding:0 21px;background:var(--x-card);border:1px solid var(--x-border);border-radius:12px;color:var(--x-heading);font-size:12.5px;font-weight:750}\r\n      #tim-explore-1 .timExplore-more button:hover{border-color:var(--x-accent)}\r\n      #tim-explore-1 .timExplore-loading,#tim-explore-1 .timExplore-empty{padding:36px 16px;text-align:center;color:var(--x-text);font-size:13px;line-height:1.9}\r\n      #tim-explore-1 .timExplore-mapWrap{position:sticky;top:20px}\r\n      #tim-explore-1 .timExplore-map{height:min(68vw,680px);min-height:500px;max-height:730px;width:100%;position:relative;isolation:isolate;background:#e9e5d8}\r\n      #tim-explore-1 .timExplore-mapPlaceholder{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:13px;background:radial-gradient(ellipse at 65% 32%,#fff9e7,#ede6d7);text-align:center;z-index:2}\r\n      #tim-explore-1 .timExplore-mapBadge{width:126px;height:126px;border:1px solid #e1d5c4;border-radius:50%;background:#f7efdf;color:#211D16;font-weight:850;font-size:20px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px}\r\n      #tim-explore-1 .timExplore-mapBadge span{color:#e9b529;font-size:27px}\r\n      #tim-explore-1 .timExplore-mapPlaceholder p{font-size:12px;color:#706d66;margin:0;padding:0 12px}\r\n      #tim-explore-1 .timExplore-mapPlaceholder button{border:1px solid #e1d5c4;background:#FFC94A;border-radius:10px;color:#211D16;padding:9px 16px}\r\n      #tim-explore-1 .timExplore-mapFoot{padding:11px 13px;display:flex;gap:10px;align-items:center;justify-content:space-between;color:var(--x-text);font-size:11px;line-height:1.6}\r\n      #tim-explore-1 .timExplore-mapFoot span{display:inline-flex;align-items:flex-start;gap:8px}\r\n      #tim-explore-1 .timExplore-mapFoot i{display:inline-block;width:9px;height:9px;background:var(--x-accent);border-radius:50%;flex:none;margin-top:4px}\r\n      #tim-explore-1 .timExplore-mapFoot button{flex:none;background:var(--x-bg);border:1px solid var(--x-border);border-radius:8px;padding:8px 10px;color:var(--x-heading);font-size:11px;font-weight:750}\r\n      \/* Admin-only manual pin review: visible only to users with Place management permission. *\/\r\n      #tim-explore-1 .timExplore-reviewPanel{padding:14px;background:var(--x-card);border-top:1px solid var(--x-border);display:grid;gap:11px;direction:rtl}\r\n      #tim-explore-1 .timExplore-reviewHead{display:flex;justify-content:space-between;align-items:center;gap:8px}\r\n      #tim-explore-1 .timExplore-reviewHead strong{font-family:var(--x-font-h6,var(--x-font-base,inherit))!important;font-size:13px;color:var(--x-heading)}\r\n      #tim-explore-1 .timExplore-reviewHead button{width:28px;height:28px;border:1px solid var(--x-border);background:transparent;color:var(--x-heading);border-radius:50%;font-size:17px}\r\n      #tim-explore-1 .timExplore-reviewPanel p{margin:0;color:var(--x-text);font-size:11.5px;line-height:1.7}\r\n      #tim-explore-1 .timExplore-reviewFields{display:flex;align-items:center;gap:8px;min-width:0}\r\n      #tim-explore-1 .timExplore-reviewFields select{flex:1;width:auto;min-width:0;height:39px!important;border:1px solid var(--x-border)!important;border-radius:10px;padding:0 10px!important;background:var(--x-bg)!important;font-size:12px!important}\r\n      #tim-explore-1 .timExplore-reviewFields>a{font-size:11px;text-decoration:underline;color:var(--x-heading);white-space:nowrap}\r\n      #tim-explore-1 .timExplore-reviewUrlRow{display:grid;gap:6px;min-width:0}\r\n      #tim-explore-1 .timExplore-reviewUrlRow>label{font-size:11px;color:var(--x-heading);font-family:var(--x-font-h6,var(--x-font-base,inherit))!important;font-weight:650}\r\n      #tim-explore-1 .timExplore-reviewUrlControls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;min-width:0}\r\n      #tim-explore-1 .timExplore-reviewUrlControls input{height:40px!important;width:100%!important;min-width:0!important;min-height:40px!important;border:1px solid var(--x-border)!important;border-radius:11px!important;background:var(--x-bg)!important;color:var(--x-heading)!important;padding:0 12px!important;font-size:13px!important;text-align:left!important;direction:ltr!important}\r\n      #tim-explore-1 .timExplore-reviewUrlControls input:focus{border-color:var(--x-accent)!important}\r\n      #tim-explore-1 .timExplore-reviewUrlControls button{height:40px;min-height:40px;padding:0 13px;background:transparent;color:var(--x-heading);border:1px solid var(--x-border);border-radius:999px;font-size:11px;font-family:var(--x-font-h6,var(--x-font-base,inherit))!important;white-space:nowrap}\r\n      #tim-explore-1 .timExplore-reviewUrlControls button:disabled{opacity:.45;cursor:default}\r\n      @media(max-width:760px){#tim-explore-1 .timExplore-reviewUrlControls{grid-template-columns:minmax(0,1fr)}#tim-explore-1 .timExplore-reviewUrlControls input{font-size:16px!important}#tim-explore-1 .timExplore-reviewUrlControls button{width:100%}}\r\n      #tim-explore-1 .timExplore-reviewActions{display:flex;align-items:center;justify-content:space-between;gap:10px}\r\n      #tim-explore-1 .timExplore-reviewActions span{font-size:11px;line-height:1.6;color:var(--x-text)}\r\n      #tim-explore-1 .timExplore-reviewActions button{font-size:12px;font-weight:650;background:var(--x-accent);border:1px solid var(--x-accent);color:#211D16;border-radius:999px;padding:8px 14px;flex:none}\r\n      #tim-explore-1 .timExplore-reviewActions button:disabled{opacity:.45;cursor:default}\r\n      @media(max-width:760px){#tim-explore-1 .timExplore-reviewFields select{font-size:16px!important}#tim-explore-1 .timExplore-reviewPanel{padding:12px}#tim-explore-1 .timExplore-mapFoot{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}#tim-explore-1 .timExplore-mapFoot>span{grid-column:1\/-1}#tim-explore-1 .timExplore-mapFoot button{min-width:0;white-space:normal;padding:8px 6px;font-size:10px}#tim-explore-1 .timExplore-mapFoot>[data-fit]{grid-column:1\/-1}}\r\n      \/* Airbnb-inspired map controls: page-only, no map-control plugins or new requests. *\/\r\n      #tim-explore-1 .timExplore-mapTools{position:absolute;z-index:1002;inset-block-start:14px;inset-inline-end:14px;display:flex;flex-direction:column;align-items:center;gap:12px;pointer-events:none}\r\n      #tim-explore-1 .timExplore-mapTools button{pointer-events:auto;display:flex;align-items:center;justify-content:center;width:42px;height:42px;min-width:42px;border:0!important;padding:0!important;margin:0!important;background:#fff!important;color:#211D16!important;font-family:var(--x-font-h6,var(--x-font-base,inherit))!important;font-size:23px!important;font-weight:400!important;line-height:1!important;cursor:pointer;transition:background .15s,color .15s}\r\n      #tim-explore-1 .timExplore-mapTools button:hover{background:#f7f1e7!important}\r\n      #tim-explore-1 .timExplore-mapTools button:focus-visible{outline:2px solid #211D16!important;outline-offset:2px!important}\r\n      #tim-explore-1 .timExplore-mapTools button:disabled{opacity:.6;cursor:default}\r\n      #tim-explore-1 .timExplore-mapExpand{border-radius:50%!important}\r\n      #tim-explore-1 .timExplore-mapExpand svg{width:19px;height:19px;display:block}\r\n      #tim-explore-1 .timExplore-mapExpand .timExplore-icoCollapse{display:none}\r\n      #tim-explore-1 .timExplore-mapZoom{display:flex;flex-direction:column;align-items:center;background:#fff;border-radius:24px;overflow:hidden;pointer-events:auto}\r\n      #tim-explore-1 .timExplore-mapZoom button:first-child{border-radius:24px 24px 0 0!important}\r\n      #tim-explore-1 .timExplore-mapZoom button:last-child{border-radius:0 0 24px 24px!important}\r\n      #tim-explore-1 .timExplore-mapZoom button+button:before{content:\"\";position:absolute;top:0;left:11px;right:11px;height:1px;background:#e9e5df}\r\n      #tim-explore-1 .timExplore-mapZoom button{position:relative}\r\n      #tim-explore-1 .timExplore-mapWrap.is-expanded{position:fixed!important;inset:0!important;top:0!important;left:0!important;right:0!important;bottom:0!important;z-index:2147483000!important;display:flex!important;flex-direction:column!important;padding:12px 12px max(9px,env(safe-area-inset-bottom))!important;background:var(--x-bg)!important;border:0!important;border-radius:0!important;overflow:hidden!important;width:100vw!important;max-width:none!important;height:100vh!important;height:100dvh!important}\r\n      #tim-explore-1 .timExplore-mapWrap.is-expanded .timExplore-map{flex:1 1 auto!important;height:auto!important;min-height:0!important;max-height:none!important;border-radius:14px;overflow:hidden}\r\n      #tim-explore-1 .timExplore-mapWrap.is-expanded .timExplore-mapExpand .timExplore-icoExpand{display:none}\r\n      #tim-explore-1 .timExplore-mapWrap.is-expanded .timExplore-mapExpand .timExplore-icoCollapse{display:block}\r\n      #tim-explore-1 .timExplore-mapWrap.is-expanded .timExplore-mapFoot{flex:0 0 auto}\r\n      @media(max-width:760px){#tim-explore-1 .timExplore-mapTools{inset-block-start:11px;inset-inline-end:11px;gap:9px}#tim-explore-1 .timExplore-mapTools button{width:37px;height:37px;min-width:37px;font-size:21px!important}#tim-explore-1 .timExplore-mapExpand svg{width:17px;height:17px}#tim-explore-1 .timExplore-mapWrap.is-expanded{padding:8px 8px max(8px,env(safe-area-inset-bottom))!important}}\r\n      #tim-explore-1 .leaflet-container{font-family:inherit!important;z-index:1}\r\n      #tim-explore-1 .leaflet-control-attribution{font-size:10px!important}\r\n      #tim-explore-1 .timExplore-pin{width:34px;height:34px;border:2px solid #fff;background:#FFC94A;border-radius:12px 12px 12px 2px;transform:rotate(-45deg);display:flex;align-items:center;justify-content:center;color:#211D16;font-size:12px;font-weight:850;box-shadow:0 3px 11px rgba(33,29,22,.16)!important;transition:background .16s}\r\n      #tim-explore-1 .timExplore-pin>span{transform:rotate(45deg);display:flex;align-items:center;justify-content:center}\r\n      #tim-explore-1 .timExplore-pin .timExplore-icon{width:17px;height:17px;flex:0 0 17px}\r\n      #tim-explore-1 .timExplore-pin.is-active{background:#FFC94A;color:#211D16;border-color:#211D16}\r\n      #tim-explore-1 .timExplore-mapPopup{font-family:inherit;text-align:right;direction:rtl;min-width:160px}\r\n      #tim-explore-1 .timExplore-mapPopup b{color:#211D16;font-size:15px;display:block;margin-bottom:4px}\r\n      #tim-explore-1 .timExplore-mapPopup small{display:block;font-size:12px;line-height:1.8;color:#706d66}\r\n      #tim-explore-1 .timExplore-mapPopup button{margin-top:8px;background:#FFC94A;color:#211D16;padding:6px 11px;font-size:12px;border:0;border-radius:7px;cursor:pointer}\r\n      \/* City-centre pin -> rich content preview, reusing the same 12-item results request. *\/\r\n      #tim-explore-1 .leaflet-popup.timExplore-richPopup{max-width:calc(100vw - 34px)}\r\n      #tim-explore-1 .timExplore-richPopup .leaflet-popup-content-wrapper{padding:0;background:var(--x-card);border:1px solid var(--x-border);border-radius:17px;overflow:hidden;color:var(--x-text)}\r\n      #tim-explore-1 .timExplore-richPopup .leaflet-popup-content{margin:0!important;width:262px!important;max-width:calc(100vw - 50px)!important}\r\n      #tim-explore-1 .timExplore-richPopup .leaflet-popup-tip{background:var(--x-card);border:1px solid var(--x-border)}\r\n      #tim-explore-1 .timExplore-richPopup .timExplore-mapCard{width:100%;min-width:0;direction:rtl;text-align:right;font-family:var(--x-font-base,inherit)!important}\r\n      #tim-explore-1 .timExplore-richPopup .timExplore-mapCard.is-en{direction:ltr;text-align:left}\r\n      #tim-explore-1 .timExplore-popupMedia{height:195px;position:relative;overflow:hidden;background:var(--x-bg);display:flex;align-items:center;justify-content:center}\r\n      #tim-explore-1 .timExplore-popupMedia.is-empty{height:110px;flex-direction:column;gap:5px}\r\n      #tim-explore-1 .timExplore-noImageMessage{color:var(--x-text);font-size:10.5px;line-height:1.5}\r\n      #tim-explore-1 .timExplore-popupMedia>a{display:block;position:absolute;inset:0;text-decoration:none}\r\n      #tim-explore-1 .timExplore-popupMedia img{display:block;width:100%;height:100%;object-fit:cover}\r\n      #tim-explore-1 .timExplore-popupMedia .timExplore-iImage{height:35px;width:35px;flex:0 0 35px;opacity:.42;color:var(--x-text)}\r\n      #tim-explore-1 .timExplore-popupOverlay{position:absolute;inset-inline:0;top:0;z-index:2;display:flex;justify-content:flex-start;gap:8px;padding:8px;pointer-events:none}\r\n      #tim-explore-1 .timExplore-popupOverlay button{pointer-events:auto;display:grid;place-items:center;width:27px;height:27px;padding:0;margin:0;border:1px solid var(--x-border);border-radius:50%;background:var(--x-card);color:var(--x-heading);cursor:pointer}\r\n      #tim-explore-1 .timExplore-popupClose{font-size:17px!important;line-height:1!important}\r\n      #tim-explore-1 .timExplore-popupInfo{padding:12px 13px 13px;min-width:0}\r\n      #tim-explore-1 .timExplore-popupEyebrow{display:flex;align-items:center;justify-content:space-between;gap:6px;color:var(--x-text);font-size:10.5px;line-height:1.5;margin-bottom:6px}\r\n      #tim-explore-1 .timExplore-popupEyebrow span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\r\n      #tim-explore-1 .timExplore-popupTitle{display:block;margin:0 0 7px;color:var(--x-heading)!important;text-decoration:none!important;font-size:13.5px;font-weight:800;line-height:1.45;font-family:var(--x-font-h6,var(--x-font-base,inherit))!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}\r\n      #tim-explore-1 .timExplore-popupTitleRow{display:flex;align-items:flex-start;gap:6px;flex-wrap:wrap;margin:0 0 6px}\r\n      #tim-explore-1 .timExplore-popupTitleRow .timExplore-popupTitle{flex:0 1 auto;min-width:0;margin:0}\r\n      #tim-explore-1 .timExplore-popupBadge{display:inline-flex;align-items:center;width:max-content;max-width:100%;padding:3px 7px;border:1px solid var(--x-border);border-radius:999px;color:var(--x-text);background:transparent;font-size:9.5px;line-height:1.4;white-space:normal}\r\n      #tim-explore-1 .timExplore-popupType{margin:0 0 7px}\r\n      #tim-explore-1 .timExplore-popupMeta{color:var(--x-text);font-size:11px;margin:0 0 7px;line-height:1.5;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}\r\n      #tim-explore-1 .timExplore-popupDesc{color:var(--x-text);font-size:11px;line-height:1.65;margin:0 0 11px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}\r\n      #tim-explore-1 .timExplore-popupFoot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:0;border-top:0}\r\n      #tim-explore-1 .timExplore-popupLink{display:inline-flex;align-items:center;justify-content:center;min-height:29px;border:1px solid var(--x-border);border-radius:999px;padding:5px 12px;background:transparent!important;color:var(--x-heading)!important;font-family:var(--x-font-h6,var(--x-font-base,inherit))!important;font-size:10.5px;font-weight:500;text-decoration:none!important;white-space:nowrap;transition:border-color .18s ease}.timExplore-popupLink:hover,.timExplore-popupLink:focus-visible{border-color:var(--x-accent)}\r\n      #tim-explore-1 .timExplore-popupPager{display:inline-flex;align-items:center;gap:7px;font-size:11px;color:var(--x-text);direction:ltr;flex:none}\r\n      #tim-explore-1 .timExplore-popupPager button{width:29px;height:29px;border:1px solid var(--x-border);border-radius:50%;background:var(--x-card);color:var(--x-heading);padding:0;display:grid;place-items:center;font-size:17px;cursor:pointer}\r\n      #tim-explore-1 .timExplore-popupPager button:disabled{opacity:.3;cursor:default}\r\n      #tim-explore-1 .timExplore-popupEmpty{padding:20px 16px;color:var(--x-text);font-size:12px;line-height:1.8}\r\n      #tim-explore-1 .timExplore-popupEmpty strong{display:block;margin-bottom:8px;color:var(--x-heading);font-size:15px;font-family:var(--x-font-h6,var(--x-font-base,inherit))!important}\r\n      #tim-explore-1 .timExplore-popupEmpty a{color:var(--x-heading);font-weight:750;text-decoration:underline;text-underline-offset:3px}\r\n      #tim-explore-1 .timExplore-popupLoading{padding:22px 16px;text-align:center;color:var(--x-text);font-size:12px}\r\n      @media(max-width:760px){#tim-explore-1 .timExplore-richPopup .leaflet-popup-content{width:min(250px,calc(100vw - 72px))!important}#tim-explore-1 .timExplore-popupMedia{height:172px}#tim-explore-1 .timExplore-popupInfo{padding:10px 12px 12px}#tim-explore-1 .timExplore-popupTitle{font-size:13px}}\r\n      \/* Verified individual venue pins; no city aggregates in Places mode. *\/\r\n      #tim-explore-1 .timExplore-placePin{width:28px;height:28px;border:2px solid #fff;border-radius:10px 10px 10px 3px;transform:rotate(-45deg);display:flex;align-items:center;justify-content:center;background:#FFC94A;color:#211D16;box-shadow:0 2px 6px rgba(0,0,0,.12)!important}\r\n      #tim-explore-1 .timExplore-placePin>i{display:block;transform:rotate(45deg);width:15px;height:15px;background:currentColor;-webkit-mask:var(--x-place-svg) no-repeat center\/contain;mask:var(--x-place-svg) no-repeat center\/contain}\r\n\r\n      #tim-explore-1 .timExplore-geocodeBtn{font-family:var(--x-font-h6,var(--x-font-base,inherit))!important}\r\n      @media(max-width:760px){#tim-explore-1 .timExplore-pin{width:27px;height:27px;border-radius:10px 10px 10px 2px;font-size:10px}#tim-explore-1 .timExplore-pin .timExplore-icon{width:14px;height:14px}#tim-explore-1 .timExplore-placePin{width:23px;height:23px;border-radius:8px 8px 8px 2px}.timExplore-placePin>i{width:13px;height:13px}}\r\n      .tim-admin.is-night #tim-explore-1,html[data-color-mode=\"dark\"] #tim-explore-1,body[data-color-mode=\"dark\"] #tim-explore-1{--x-accent:#FFC94A;--x-heading:#F3ECDF;--x-text:#827D73;--x-card:#11100d;--x-bg:#0c0b08;--x-border:#27231e}\r\n      @media(max-width:1000px){#tim-explore-1 .timExplore-layout{grid-template-columns:minmax(310px,.9fr) minmax(0,1.1fr)}#tim-explore-1 .timExplore-item{grid-template-columns:80px minmax(0,1fr)}#tim-explore-1 .timExplore-photo{min-height:87px}}\r\n      @media(max-width:760px){#tim-explore-1 .timExplore-controls{grid-template-columns:minmax(0,1fr) auto;max-width:520px;margin-inline:auto}#tim-explore-1 .timExplore-selectBox{grid-column:1;grid-row:2}#tim-explore-1 .timExplore-search{grid-column:1\/-1}#tim-explore-1 .timExplore-near{grid-column:2;grid-row:2;padding:0 12px;min-width:104px;max-width:124px}#tim-explore-1 .timExplore-near span{display:inline;font-size:11px}#tim-explore-1 .timExplore-layout{display:flex;flex-direction:column}#tim-explore-1 .timExplore-mapWrap{order:-1;position:static;width:100%}#tim-explore-1 .timExplore-map{height:410px;min-height:410px;max-height:none}#tim-explore-1 .timExplore-results{width:100%;min-height:200px}#tim-explore-1 .timExplore-item{grid-template-columns:100px minmax(0,1fr)}#tim-explore-1 .timExplore-photo{min-height:94px}#tim-explore-1 .timExplore-mapFoot{font-size:10px}}\r\n      @media(max-width:760px){#tim-explore-1 .timExplore-search input,#tim-explore-1 .timExplore-selectBox select,#tim-explore-1 .timExplore-option select{font-size:16px!important}#tim-explore-1 .timExplore-advanced{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}#tim-explore-1 .timExplore-option{grid-column:1\/-1;justify-content:space-between;width:100%}#tim-explore-1 .timExplore-option select{flex:1;max-width:75%;min-width:0}}\r\n      @media(max-width:620px){#tim-explore-1 .timExplore-types{justify-content:safe center}}\r\n      @media(max-width:380px){#tim-explore-1 .timExplore-item{grid-template-columns:82px minmax(0,1fr);gap:9px}#tim-explore-1 .timExplore-itemName{font-size:12px}#tim-explore-1 .timExplore-photo{min-height:84px}#tim-explore-1 .timExplore-map{height:375px;min-height:375px}}\r\n      \/* iOS Safari zooms the whole page for editable controls with a computed font below 16px. *\/\r\n      @media(max-width:760px){#tim-explore-1 input,#tim-explore-1 select,#tim-explore-1 textarea,#tim-explore-1 input:focus,#tim-explore-1 select:focus{font-size:16px!important;line-height:normal!important}}\r\n      \/* v1.13 \u2014 exact control alignment, independent of Blocksy input\/button defaults. *\/\r\n      #tim-explore-1 .timExplore-controls{display:flex!important;flex-flow:row nowrap!important;align-items:stretch!important;justify-content:center!important;gap:10px!important;width:min(100%,900px)!important;max-width:900px!important;margin:0 auto 19px!important;min-width:0}\r\n      #tim-explore-1 .timExplore-controls>.timExplore-search{flex:1 1 0!important;width:auto!important;min-width:0!important;max-width:none!important}\r\n      #tim-explore-1 .timExplore-controls>.timExplore-selectBox{flex:0 1 250px!important;width:250px!important;min-width:180px!important;max-width:250px!important}\r\n      #tim-explore-1 .timExplore-controls>.timExplore-near{flex:0 0 132px!important;width:132px!important;min-width:132px!important;max-width:132px!important}\r\n      #tim-explore-1 .timExplore-controls>.timExplore-search,#tim-explore-1 .timExplore-controls>.timExplore-selectBox,#tim-explore-1 .timExplore-controls>.timExplore-near{height:48px!important;min-height:48px!important;max-height:48px!important;margin:0!important;align-self:stretch!important;vertical-align:middle!important;line-height:normal!important;padding-block:0!important}\r\n      #tim-explore-1 .timExplore-controls>.timExplore-near{display:flex!important;align-items:center!important;justify-content:center!important;padding-inline:13px!important}\r\n      #tim-explore-1 .timExplore-controls>.timExplore-search input,#tim-explore-1 .timExplore-controls>.timExplore-selectBox select{display:block!important;flex:1 1 auto!important;width:100%!important;max-height:46px!important;min-width:0!important;min-height:0!important;line-height:1.3!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important}\r\n      #tim-explore-1 .timExplore-controls .timExplore-searchGlyph{flex:0 0 33px!important;margin:0!important}\r\n      #tim-explore-1 .timExplore-controls .timExplore-icon{align-self:center}\r\n      @media(max-width:760px){\r\n        #tim-explore-1 .timExplore-controls{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(106px,120px)!important;grid-template-rows:48px 48px!important;gap:9px!important;max-width:520px!important}\r\n        #tim-explore-1 .timExplore-controls>.timExplore-search{grid-column:1\/-1!important;grid-row:1!important;width:100%!important;min-width:0!important}\r\n        #tim-explore-1 .timExplore-controls>.timExplore-selectBox{grid-column:1!important;grid-row:2!important;max-width:none!important;min-width:0!important;width:100%!important}\r\n        #tim-explore-1 .timExplore-controls>.timExplore-near{grid-column:2!important;grid-row:2!important;min-width:0!important;max-width:none!important;width:100%!important;padding-inline:8px!important}\r\n        #tim-explore-1 .timExplore-controls>.timExplore-near span{display:inline!important;white-space:nowrap!important;font-size:11px!important}\r\n      }\r\n      @media(prefers-reduced-motion:reduce){#tim-explore-1 *{transition:none!important;animation:none!important}}\r\n    <\/style>\r\n    <script>\r\n    (function(){\r\n      'use strict';\r\n      var root=document.getElementById(\"tim-explore-1\");if(!root)return;\r\n      var cfg={};try{cfg=JSON.parse(root.getAttribute('data-config')||'{}')}catch(_e){return}\r\n      var $=function(s,r){return(r||root).querySelector(s)},$$=function(s,r){return Array.prototype.slice.call((r||root).querySelectorAll(s))};\r\n      var field=$('[data-search]'),areaEl=$('[data-area]');\r\n      var list=$('[data-results]'),summary=$('[data-summary]'),more=$('[data-more]'),reset=$('[data-reset]'),mapEl=$('[data-map]'),mapStatus=$('[data-map-status]');\r\n      var state={type:'all',area:'',category:'',search:'',page:1,areas:[],facets:{},total:0,loading:false,seq:0,map:null,layer:null,placeLayer:null,markers:{},placeSeq:0,placePoints:[],leafletPromise:null,preview:null,previewSeq:0};\r\n      var searchTimer=0,controller=null,loadingMap=false;\r\n      function syncThemeFonts(){\r\n        \/* Probe headings OUTSIDE the shortcode to inherit the site's real Blocksy H fonts. *\/\r\n        try{var bodyStyle=window.getComputedStyle(document.body);root.style.setProperty('--x-font-base',bodyStyle.fontFamily);\r\n          ['h2','h6'].forEach(function(tag){var node=document.createElement(tag);node.textContent='.';node.style.cssText='position:absolute!important;left:-10000px!important;top:-10000px!important;visibility:hidden!important;pointer-events:none!important';document.body.appendChild(node);var name=window.getComputedStyle(node).fontFamily;root.style.setProperty('--x-font-'+tag,name);node.remove()})\r\n        }catch(_){}\r\n      }\r\n      var isEn=\/(^|\\\/)en(\\\/|$)\/i.test(location.pathname)||\/^en(?:-|$)\/i.test(document.documentElement.lang||'');\r\n      var enTypes={all:'All',cities:'Cities',places:'Places',trips:'Trips',events:'Events'};\r\n      var enAreas={'\u0622\u064a\u062a \u0628\u0646\u062d\u062f\u0648':'A\u00eft Benhaddou','\u0623\u0635\u064a\u0644\u0629':'Asilah','\u0623\u0643\u0627\u062f\u064a\u0631':'Agadir','\u0625\u0641\u0631\u0627\u0646':'Ifrane','\u0625\u0645\u0644\u064a\u0644':'Imlil','\u0627\u0644\u062c\u062f\u064a\u062f\u0629':'El Jadida','\u0627\u0644\u062d\u0633\u064a\u0645\u0629':'Al Hoceima','\u0627\u0644\u062f\u0627\u062e\u0644\u0629':'Dakhla','\u0627\u0644\u062f\u0627\u0631 \u0627\u0644\u0628\u064a\u0636\u0627\u0621':'Casablanca','\u0627\u0644\u0631\u0628\u0627\u0637':'Rabat','\u0627\u0644\u0633\u0639\u064a\u062f\u064a\u0629':'Sa\u00efdia','\u0627\u0644\u0635\u0648\u064a\u0631\u0629':'Essaouira','\u0627\u0644\u0648\u0644\u064a\u062f\u064a\u0629':'Oualidia','\u062a\u0627\u0631\u0648\u062f\u0627\u0646\u062a':'Taroudant','\u062a\u0637\u0648\u0627\u0646':'Tetouan','\u062a\u063a\u0627\u0632\u0648\u062a':'Taghazout','\u062a\u0646\u063a\u064a\u0631':'Tinghir','\u0632\u0627\u0643\u0648\u0631\u0629':'Zagora','\u0634\u0641\u0634\u0627\u0648\u0646':'Chefchaouen','\u0637\u0646\u062c\u0629':'Tangier','\u0641\u0627\u0633':'Fes','\u0645\u0631\u0627\u0643\u0634':'Marrakech','\u0645\u0631\u0632\u0648\u0643\u0629':'Merzouga','\u0645\u0643\u0646\u0627\u0633':'Meknes','\u0648\u062c\u062f\u0629':'Oujda','\u0648\u0631\u0632\u0627\u0632\u0627\u062a':'Ouarzazate','\u0622\u0633\u0641\u064a':'Safi','\u0627\u0644\u0646\u0627\u0638\u0648\u0631':'Nador','\u0645\u064a\u062f\u0644\u062a':'Midelt','\u0627\u0644\u0631\u0634\u064a\u062f\u064a\u0629':'Errachidia','\u0623\u0632\u064a\u0644\u0627\u0644':'Azilal'};\r\n      function areaName(name){return isEn?(enAreas[name]||name):name}\r\n      function esc(x){return String(x==null?'':x).replace(\/[&<>\"']\/g,function(k){return {'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#039;'}[k]})}\r\n      function fmt(n){try{return Number(n||0).toLocaleString('ar-EG-u-nu-latn')}catch(_){return String(n||0)}}\r\n      function label(k){return isEn?(enTypes[k]||k):(cfg.types&&cfg.types[k]||k)}\r\n      function request(params,canAbort){var fd=new FormData();fd.set('action','tim_explore_v100_data');Object.keys(params).forEach(function(k){fd.set(k,params[k])});return fetch(cfg.ajax,{method:'POST',body:fd,credentials:'same-origin',signal:canAbort&&controller?controller.signal:undefined}).then(function(r){return r.json().then(function(j){if(!r.ok||!j.success)throw Error((j.data&&j.data.message)||(isEn?'Unable to load content.':'\u062a\u0639\u0630\u0631 \u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a.'));return j.data})})}\r\n      function currentUrl(){var u=new URL(location.href),qs=u.searchParams;['ex_type','ex_city','ex_category','ex_sort','ex_q','ex_saved'].forEach(function(k){qs.delete(k)});\r\n        if(state.type!=='all')qs.set('ex_type',state.type);if(state.area)qs.set('ex_city',state.area);if(state.search)qs.set('ex_q',state.search);return u.toString();\r\n      }\r\n      function updateUrl(){try{history.replaceState(history.state,'',currentUrl())}catch(_){}}\r\n      function initUrl(){try{var q=new URL(location.href).searchParams;var type=q.get('ex_type')||'';if(cfg.types&&cfg.types[type])state.type=type;state.area=(q.get('ex_city')||'').slice(0,30);state.category='';state.search=(q.get('ex_q')||'').slice(0,80)}catch(_){}}\r\n      function paintTabs(){$$('[data-type]').forEach(function(b){var on=b.dataset.type===state.type;b.classList.toggle('is-active',on);b.setAttribute('aria-pressed',on?'true':'false')})}\r\n      function renderCategories(){state.category=''}\r\n      function title(){var a=state.areas.filter(function(x){return x.key===state.area})[0],name=a?areaName(a.name):'';$('[data-heading]').textContent=name?(isEn?'Explore '+name:'\u0627\u0633\u062a\u0643\u0634\u0641 '+name):(isEn?'Places worth exploring':'\u0648\u062c\u0647\u0627\u062a \u062a\u0633\u062a\u062d\u0642 \u0627\u0644\u0627\u0643\u062a\u0634\u0627\u0641');reset.hidden=!(name||state.search||state.type!=='all')}\r\n      function itemHtml(it){var photo=it.image?'<img src=\"'+esc(it.image)+'\" alt=\"\" loading=\"lazy\" decoding=\"async\">':'<i class=\"timExplore-icon timExplore-iImage\" aria-hidden=\"true\"><\/i>';\r\n        var tags='<i>'+esc(label(it.type))+'<\/i>'+(it.area?'<span>'+esc(areaName(it.area))+'<\/span>':'')+(it.meta?'<span>\u00b7 '+esc(it.meta)+'<\/span>':'');\r\n        return '<div class=\"timExplore-itemWrap\"><a class=\"timExplore-item\" href=\"'+esc(it.url)+'\"><span class=\"timExplore-photo\">'+photo+'<\/span><span class=\"timExplore-itemText\"><strong class=\"timExplore-itemName\">'+esc(it.title)+'<\/strong><span class=\"timExplore-itemMeta\">'+tags+'<\/span>'+(it.excerpt?'<span class=\"timExplore-itemDesc\">'+esc(it.excerpt)+'<\/span>':'')+'<\/span><\/a><\/div>';\r\n      }\r\n      function render(items,append){if(!append)list.innerHTML='';if(!items.length&&!append){list.innerHTML='<div class=\"timExplore-empty\">'+(isEn?'No matching results. Try another city.':'\u0644\u0627 \u062a\u0648\u062c\u062f \u0646\u062a\u0627\u0626\u062c \u0645\u0637\u0627\u0628\u0642\u0629. \u062c\u0631\u0651\u0628 \u0645\u062f\u064a\u0646\u0629 \u0623\u062e\u0631\u0649.')+'<\/div>';return}list.insertAdjacentHTML('beforeend',items.map(itemHtml).join(''))}\r\n      function load(append){if(controller)controller.abort();controller=typeof AbortController!=='undefined'?new AbortController():null;var seq=++state.seq,page=append?state.page+1:1;state.loading=true;more.disabled=true;\r\n        if(!append){list.innerHTML='<div class=\"timExplore-loading\">'+(isEn?'Finding destinations\u2026':'\u062c\u0627\u0631\u064d \u0627\u0644\u0628\u062d\u062b \u0641\u064a \u0627\u0644\u0648\u062c\u0647\u0627\u062a\u2026')+'<\/div>';summary.textContent=isEn?'Loading results\u2026':'\u062c\u0627\u0631\u064d \u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0646\u062a\u0627\u0626\u062c\u2026';more.hidden=true}\r\n        var work=request({kind:'items',type:state.type,area:state.area,category:state.category,search:state.search,page:page},true).then(function(d){if(seq!==state.seq)return null;state.page=page;state.total=Number(d.total)||0;render(d.items||[],append);var n=Math.min(page*Number(12),state.total);summary.textContent=isEn?('Showing '+fmt(n)+' of '+fmt(state.total)+' results'):('\u0639\u0631\u0636 '+fmt(n)+' \u0645\u0646 '+fmt(state.total)+' \u0646\u062a\u064a\u062c\u0629');more.hidden=!d.has_more;title();return d}).catch(function(e){if(e.name==='AbortError'||seq!==state.seq)return null;if(!append)list.innerHTML='<div class=\"timExplore-empty\">'+(isEn?'Unable to load results. Please retry.':'\u062a\u0639\u0630\u0631 \u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0646\u062a\u0627\u0626\u062c. \u064a\u0631\u062c\u0649 \u0627\u0644\u0645\u062d\u0627\u0648\u0644\u0629 \u0645\u062c\u062f\u062f\u064b\u0627.')+'<\/div>';summary.textContent=isEn?'Server connection failed':'\u062a\u0639\u0630\u0631 \u0627\u0644\u0627\u062a\u0635\u0627\u0644 \u0628\u0627\u0644\u062e\u0627\u062f\u0645';more.hidden=true;return null}).then(function(d){if(seq===state.seq){state.loading=false;more.disabled=false}return d});\r\n        updateUrl();return work;\r\n      }\r\n      function areaChoose(key,focusMap,retainOpenMarker){state.area=key||'';areaEl.value=state.area;title();var work=load(false);if(retainOpenMarker){paintMarkers();Object.keys(state.markers).forEach(function(k){var o=state.markers[k];if(k!==state.area&&state.layer&&o.marker)state.layer.removeLayer(o.marker)})}else drawMarkers();loadPlacePoints();if(focusMap&&state.map){var a=state.areas.filter(function(x){return x.key===state.area})[0];if(a&&a.lat!=null)state.map.flyTo([a.lat,a.lng],9,{duration:.65});else fitMap()}return work}\r\n      function typeChoose(t){if(!Object.prototype.hasOwnProperty.call(cfg.types||{},t))return;dismissPreview();state.type=t;state.category='';paintTabs();renderCategories();drawMarkers();loadPlacePoints();load(false)}\r\n      $$('[data-type]').forEach(function(b){b.addEventListener('click',function(){typeChoose(b.dataset.type)})});\r\n      field.addEventListener('input',function(){clearTimeout(searchTimer);searchTimer=setTimeout(function(){state.search=field.value.trim().slice(0,80);dismissPreview();loadPlacePoints();load(false)},340)});\r\n      areaEl.addEventListener('change',function(){dismissPreview();areaChoose(areaEl.value,true)});\r\n      $('[data-reset]').addEventListener('click',function(){dismissPreview();state.type='all';state.area='';state.category='';state.search='';field.value='';areaEl.value='';paintTabs();renderCategories();areaChoose('',true)});\r\n      more.addEventListener('click',function(){if(!state.loading)load(true)});\r\n      $('[data-fit]').addEventListener('click',function(){dismissPreview();areaChoose('',true)});\r\n      $('[data-near]').addEventListener('click',function(){var b=this;if(!navigator.geolocation){summary.textContent=isEn?'Location is not supported.':'\u062c\u0647\u0627\u0632\u0643 \u0644\u0627 \u064a\u062f\u0639\u0645 \u062a\u062d\u062f\u064a\u062f \u0627\u0644\u0645\u0648\u0642\u0639.';return}b.disabled=true;navigator.geolocation.getCurrentPosition(function(pos){b.disabled=false;var x=pos.coords.latitude,y=pos.coords.longitude,best=null,bestKm=1e10;state.areas.forEach(function(a){if(a.lat==null)return;var rad=Math.PI\/180,dlat=(a.lat-x)*rad,dlng=(a.lng-y)*rad,aa=Math.sin(dlat\/2)**2+Math.cos(x*rad)*Math.cos(a.lat*rad)*Math.sin(dlng\/2)**2;var km=6371*2*Math.atan2(Math.sqrt(aa),Math.sqrt(Math.max(0,1-aa)));if(km<bestKm){bestKm=km;best=a}});if(best){dismissPreview();areaChoose(best.key,true);summary.textContent=isEn?('Nearest listed city: '+areaName(best.name)+' (not an exact venue).'):('\u0623\u0642\u0631\u0628 \u0645\u062f\u064a\u0646\u0629 \u0645\u062f\u0631\u062c\u0629: '+best.name+'\u060c \u0648\u0644\u064a\u0633 \u0645\u0648\u0642\u0639 \u0645\u0646\u0634\u0623\u0629 \u0628\u0639\u064a\u0646\u0647\u0627.')}},function(){b.disabled=false;summary.textContent=isEn?'Location unavailable or permission denied.':'\u062a\u0639\u0630\u0631 \u062a\u062d\u062f\u064a\u062f \u0627\u0644\u0645\u0648\u0642\u0639 \u0623\u0648 \u0644\u0645 \u064a\u062a\u0645 \u0645\u0646\u062d \u0627\u0644\u0625\u0630\u0646.'},{enableHighAccuracy:false,timeout:8000,maximumAge:300000})});\r\n      \/* Map markers are city\/area centres. The preview showcases ACTUAL published results of that area,\r\n       * not a claim that an individual venue is at the marker coordinates. *\/\r\n      function popupCls(){return 'timExplore-mapCard'+(isEn?' is-en':'')}\r\n      function previewLoading(area){return '<div class=\"'+popupCls()+'\"><div class=\"timExplore-popupLoading\">'+(isEn?'Loading '+esc(areaName(area.name))+'\u2026':'\u062c\u0627\u0631\u064d \u062a\u062d\u0645\u064a\u0644 \u0645\u062d\u062a\u0648\u0649 '+esc(areaName(area.name))+'\u2026')+'<\/div><\/div>'}\r\n      function previewMarkup(p){var a=p.area,items=p.items||[],total=p.total||0;\r\n        if(!items.length)return '<div class=\"'+popupCls()+'\"><div class=\"timExplore-popupEmpty\"><strong>'+esc(areaName(a.name))+'<\/strong>'+(p.failed?(isEn?'Could not load the preview. Try this marker again.':'\u062a\u0639\u0630\u0631 \u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0645\u0639\u0627\u064a\u0646\u0629. \u062d\u0627\u0648\u0644 \u0645\u062c\u062f\u062f\u064b\u0627.'):(isEn?'No matching results in this city.':'\u0644\u0627 \u062a\u0648\u062c\u062f \u0646\u062a\u0627\u0626\u062c \u0645\u0637\u0627\u0628\u0642\u0629 \u0641\u064a \u0647\u0630\u0647 \u0627\u0644\u0645\u062f\u064a\u0646\u0629.'))+(a.url?'<p><a href=\"'+esc(a.url)+'\">'+(isEn?'Open city page':'\u0635\u0641\u062d\u0629 \u0627\u0644\u0645\u062f\u064a\u0646\u0629')+'<\/a><\/p>':'')+'<\/div><\/div>';\r\n        var idx=Math.max(0,Math.min(p.index||0,items.length-1)),it=items[idx],hasPhoto=!!it.image;\r\n        var image=hasPhoto?'<a href=\"'+esc(it.url)+'\" aria-label=\"'+esc(it.title)+'\"><img src=\"'+esc(it.image)+'\" loading=\"eager\" decoding=\"async\" alt=\"'+esc(it.title)+'\"><\/a>':'<i class=\"timExplore-icon timExplore-iImage\" aria-hidden=\"true\"><\/i><span class=\"timExplore-noImageMessage\">'+(isEn?'Image not available':'\u0644\u0627 \u062a\u0648\u062c\u062f \u0635\u0648\u0631\u0629 \u0645\u062a\u0627\u062d\u0629')+'<\/span>';\r\n        var isCity=it.type==='cities',isPlace=it.type==='places';\r\n        var countBadge=isCity?'<span class=\"timExplore-popupBadge\">'+fmt(it.famous_places||0)+' '+(isEn?'famous places':'\u0623\u0645\u0627\u0643\u0646 \u0645\u0634\u0647\u0648\u0631\u0629')+'<\/span>':'';\r\n        var typeBadge=isPlace&&it.meta?'<span class=\"timExplore-popupBadge timExplore-popupType\">'+esc(it.meta)+'<\/span>':'';\r\n        var heading='<div class=\"timExplore-popupTitleRow\"><a class=\"timExplore-popupTitle\" href=\"'+esc(it.url)+'\">'+esc(it.title)+'<\/a>'+countBadge+'<\/div>';\r\n        var excerpt=it.excerpt?'<p class=\"timExplore-popupDesc\">'+esc(it.excerpt)+'<\/p>':'';\r\n        return '<div class=\"'+popupCls()+'\"><div class=\"timExplore-popupMedia'+(hasPhoto?'':' is-empty')+'\">'+image+'<div class=\"timExplore-popupOverlay\"><button type=\"button\" class=\"timExplore-popupClose\" data-preview-close aria-label=\"'+(isEn?'Close preview':'\u0625\u063a\u0644\u0627\u0642 \u0627\u0644\u0645\u0639\u0627\u064a\u0646\u0629')+'\">\u00d7<\/button><\/div><\/div>'+ \r\n        '<div class=\"timExplore-popupInfo\">'+typeBadge+heading+excerpt+\r\n        '<div class=\"timExplore-popupFoot\"><a class=\"timExplore-popupLink\" href=\"'+esc(it.url)+'\">'+(isEn?'View details':'\u0639\u0631\u0636 \u0627\u0644\u062a\u0641\u0627\u0635\u064a\u0644')+'<\/a>'+ \r\n        ((total>1)?'<div class=\"timExplore-popupPager\"><button type=\"button\" data-preview-step=\"-1\" aria-label=\"'+(isEn?'Previous':'\u0627\u0644\u0633\u0627\u0628\u0642')+'\"'+(idx===0?' disabled':'')+'>\u2039<\/button><button type=\"button\" data-preview-step=\"1\" aria-label=\"'+(isEn?'Next':'\u0627\u0644\u062a\u0627\u0644\u064a')+'\"'+(idx>=total-1?' disabled':'')+'>\u203a<\/button><\/div>':'')+'<\/div><\/div><\/div>';\r\n      }\r\n      function handlePreviewAction(e){\r\n        var closeBtn=e.target.closest('[data-preview-close]');if(closeBtn){e.preventDefault();e.stopPropagation();dismissPreview();return}\r\n        var step=e.target.closest('[data-preview-step]');if(!step||!state.preview)return;\r\n        e.preventDefault();e.stopPropagation();if(step.disabled||state.preview.busy)return;\r\n        var p=state.preview,delta=Number(step.dataset.previewStep)||0,next=p.index+delta;\r\n        if(next>=0&&next<p.items.length){p.index=next;repaintPreview();return}\r\n        if(next<0||next>=p.total)return;\r\n        p.busy=true;var token=state.previewSeq;\r\n        request({kind:'items',type:p.approx?'places':state.type,area:p.area.key,search:state.search,page:Math.floor(p.items.length\/12)+1},false).then(function(d){\r\n          if(token!==state.previewSeq||state.preview!==p)return;\r\n          var more=d&&d.items||[];if(!more.length){p.total=p.items.length;return}\r\n          var known={};p.items.forEach(function(x){known[x.id]=true});more.forEach(function(x){if(!known[x.id])p.items.push(x)});\r\n          p.total=Math.max(p.items.length,Number(d.total)||0);p.index=Math.min(p.items.length-1,next);\r\n        }).catch(function(){}).then(function(){if(state.preview===p){p.busy=false;repaintPreview()}});\r\n      }\r\n      \/\/ Capture handlers before Leaflet's map click handlers; don't let the map dismiss the popup.\r\n      ['pointerdown','mousedown','touchstart','dblclick'].forEach(function(name){mapEl.addEventListener(name,function(e){if(e.target.closest('.timExplore-richPopup'))e.stopPropagation()},true)});\r\n      mapEl.addEventListener('click',function(e){if(!e.target.closest('.timExplore-richPopup'))return;handlePreviewAction(e);e.stopImmediatePropagation()},true);\r\n      \/\/ Broken WordPress image files gracefully collapse to the compact no-image state.\r\n      mapEl.addEventListener('error',function(e){\r\n        var img=e.target;if(!img||!img.matches||!img.matches('.timExplore-popupMedia img'))return;\r\n        var media=img.closest('.timExplore-popupMedia');if(!media||media.classList.contains('is-empty'))return;\r\n        media.classList.add('is-empty');var link=img.closest('a');if(link)link.remove();else img.remove();\r\n        media.insertAdjacentHTML('afterbegin','<i class=\"timExplore-icon timExplore-iImage\" aria-hidden=\"true\"><\/i><span class=\"timExplore-noImageMessage\">'+(isEn?'Image unavailable':'\u0627\u0644\u0635\u0648\u0631\u0629 \u063a\u064a\u0631 \u0645\u062a\u0627\u062d\u0629')+'<\/span>');\r\n      },true);\r\n      function bindPreviewEvents(marker){var pop=marker.getPopup&&marker.getPopup(),el=pop&&pop.getElement&&pop.getElement();if(el&&window.L&&window.L.DomEvent&&window.L.DomEvent.disableClickPropagation)window.L.DomEvent.disableClickPropagation(el)}\r\n      function repaintPreview(){var p=state.preview;if(p&&p.marker&&p.marker.isPopupOpen())p.marker.getPopup().setContent(previewMarkup(p))}\r\n      function dismissPreview(){state.previewSeq++;state.preview=null;if(state.map)state.map.closePopup()}\r\n      function openPreview(a,marker){var token=++state.previewSeq;state.preview={area:a,marker:marker,items:[],total:0,index:0,failed:false,busy:false};\r\n        marker.setPopupContent(previewLoading(a));bindPreviewEvents(marker);\r\n        var work=areaChoose(a.key,false,true);if(!work||typeof work.then!=='function')return;\r\n        work.then(function(d){if(token!==state.previewSeq||!state.preview||state.preview.marker!==marker||!marker.isPopupOpen())return;state.preview.items=d&&Array.isArray(d.items)?d.items:[];state.preview.total=d?Number(d.total)||0:0;state.preview.failed=!d;repaintPreview()});\r\n      }\r\n      function openPlacePreview(it,marker){\r\n        \/\/ Precise locations open the selected Place directly, with no additional AJAX request.\r\n        var area=state.areas.filter(function(a){return a.key===it.area_key})[0]||{key:it.area_key,name:it.area||'',url:''};\r\n        state.previewSeq++;state.preview={area:area,marker:marker,items:[it],total:1,index:0,failed:false,busy:false};\r\n        marker.setPopupContent(previewMarkup(state.preview));bindPreviewEvents(marker);\r\n      }\r\n      function placePinSize(){return window.innerWidth<=760?23:28}\r\n      function placeIconUrl(t){var type=String(t||'').replace(\/\\s+\/g,' ').trim();var icons=cfg.placeIcons||{};\r\n        if(icons[type])return icons[type];\r\n        if(\/\u0631\u064a\u0627\u0636|\u0636\u064a\u0627\u0641\u0629\/.test(type))return icons['\u0631\u064a\u0627\u0636 \/ \u062f\u0627\u0631 \u0636\u064a\u0627\u0641\u0629']||icons.default;\r\n        if(\/\u0641\u0646\u062f\u0642|hotel\/i.test(type))return icons['\u0641\u0646\u062f\u0642']||icons.default;\r\n        if(\/\u0645\u0642\u0647\u0649|caf\u00e9|cafe\/i.test(type))return icons['\u0645\u0642\u0647\u0649']||icons.default;\r\n        if(\/\u0645\u0637\u0639\u0645|restaurant\/i.test(type))return icons['\u0645\u0637\u0639\u0645']||icons.default;\r\n        if(\/\u0645\u0646\u062a\u062c\u0639|resort\/i.test(type))return icons['\u0645\u0646\u062a\u062c\u0639']||icons.default;\r\n        return icons.default||'';\r\n      }\r\n      function placePinIcon(it){var w=placePinSize(),url=placeIconUrl(it.place_type||it.meta);\r\n        return window.L.divIcon({className:'timExplore-placeMarker',html:'<div class=\"timExplore-placePin\"><i style=\"--x-place-svg:url(&quot;'+esc(url)+'&quot;)\" aria-hidden=\"true\"><\/i><\/div>',iconSize:[w,w],iconAnchor:[Math.round(w\/2),Math.round(w*.90)]});\r\n      }\r\n      function showCityLayer(){return state.type!=='places'}\r\n      function syncCityLayer(){if(!state.map||!state.layer)return;\r\n        if(!showCityLayer()){if(state.map.hasLayer(state.layer))state.map.removeLayer(state.layer);return}\r\n        if(!state.map.hasLayer(state.layer))state.layer.addTo(state.map);\r\n      }\r\n      function placeMapStatus(text){var foot=$('[data-map-foot]');if(foot)foot.innerHTML='<i><\/i> '+text;}\r\n      function loadPlacePoints(){\r\n        var token=++state.placeSeq;\r\n        if(!state.map||!window.L)return;\r\n        if(state.placeLayer)state.placeLayer.clearLayers();else state.placeLayer=window.L.layerGroup().addTo(state.map);\r\n        state.placePoints=[];syncCityLayer();\r\n        if(state.type!=='places'){\r\n          placeMapStatus(isEn?'Markers show Moroccan city centres.':'\u0627\u0644\u0639\u0644\u0627\u0645\u0627\u062a \u062a\u0645\u062b\u0644 \u0645\u0631\u0627\u0643\u0632 \u0627\u0644\u0645\u062f\u0646 \u0627\u0644\u0645\u063a\u0631\u0628\u064a\u0629.');\r\n          return;\r\n        }\r\n        \/\/ Places mode: ONLY verified individual POIs, never city-centre or approximate group markers.\r\n        placeMapStatus(isEn?'Loading verified place locations\u2026':'\u062c\u0627\u0631\u064d \u062a\u062d\u0645\u064a\u0644 \u0645\u0648\u0627\u0642\u0639 \u0627\u0644\u0623\u0645\u0627\u0643\u0646 \u0627\u0644\u0645\u0624\u0643\u062f\u0629\u2026');\r\n        var fd=new FormData();fd.set('action','tim_explore_v150_place_points');fd.set('area',state.area);fd.set('search',state.search);\r\n        fetch(cfg.ajax,{method:'POST',credentials:'same-origin',body:fd}).then(function(r){\r\n          if(!r.ok)throw Error('HTTP '+r.status);\r\n          return r.json();\r\n        }).then(function(j){\r\n          if(token!==state.placeSeq||!state.map||state.type!=='places')return;\r\n          if(!j||!j.success||!j.data)throw Error('Map data unavailable');\r\n          var data=j.data||{},places=Array.isArray(data.items)?data.items:[];\r\n          if(state.area)places=places.filter(function(it){return it.area_key===state.area});\r\n          state.placeLayer.clearLayers();\r\n          state.placePoints=places;\r\n          var pins=[];\r\n          places.forEach(function(it){\r\n            var lat=Number(it.lat),lng=Number(it.lng);\r\n            if(!Number.isFinite(lat)||!Number.isFinite(lng))return;\r\n            if(lat<21||lat>37.7||lng< -18||lng>-.5)return;\r\n            var marker=window.L.marker([lat,lng],{icon:placePinIcon(it),keyboard:true,title:it.title});\r\n            marker.bindPopup('',{minWidth:180,maxWidth:265,autoPan:true,keepInView:true,offset:[0,-5],closeButton:false,className:'timExplore-richPopup'});\r\n            marker.on('popupopen',function(){bindPreviewEvents(marker)});\r\n            marker.on('click',function(){openPlacePreview(it,marker)});\r\n            marker.addTo(state.placeLayer);pins.push([lat,lng]);\r\n          });\r\n          if(state.area&&!state.preview){\r\n            if(pins.length===1)state.map.flyTo(pins[0],Math.max(state.map.getZoom(),13),{duration:.5});\r\n            else if(pins.length>1)state.map.fitBounds(window.L.latLngBounds(pins),{padding:[42,42],maxZoom:13,animate:true});\r\n            else{\r\n              var selected=state.areas.find(function(a){return a.key===state.area});\r\n              if(selected&&selected.lat!=null)state.map.flyTo([selected.lat,selected.lng],Math.max(10,state.map.getZoom()),{duration:.5});\r\n            }\r\n          }\r\n          var total=Number(data.total)||0;\r\n          var unmatched=Math.max(0,Number(data.unlocated)||Math.max(0,total-pins.length));\r\n          var note=isEn?('Precise place locations: '+fmt(pins.length)+' \/ '+fmt(total)):\r\n            ('\u0623\u0645\u0627\u0643\u0646 \u0645\u062d\u062f\u062f\u0629 \u0628\u062f\u0642\u0629: '+fmt(pins.length)+' \u0645\u0646 '+fmt(total));\r\n          if(unmatched)note+=isEn?(' \u00b7 Unmapped: '+fmt(unmatched)+' (shown in list only)'):\r\n            (' \u00b7 \u062f\u0648\u0646 \u0625\u062d\u062f\u0627\u062b\u064a\u0627\u062a: '+fmt(unmatched)+' (\u0641\u064a \u0627\u0644\u0642\u0627\u0626\u0645\u0629 \u0641\u0642\u0637)');\r\n          if(!pins.length)note=isEn?'No verified place locations for this selection. Places remain in the results list.':'\u0644\u0627 \u062a\u0648\u062c\u062f \u0645\u0648\u0627\u0642\u0639 \u0623\u0645\u0627\u0643\u0646 \u0645\u0624\u0643\u062f\u0629 \u0644\u0647\u0630\u0627 \u0627\u0644\u0627\u062e\u062a\u064a\u0627\u0631\u061b \u062a\u0628\u0642\u0649 \u0627\u0644\u0623\u0645\u0627\u0643\u0646 \u0641\u064a \u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0646\u062a\u0627\u0626\u062c.';\r\n          placeMapStatus(note);\r\n        }).catch(function(){\r\n          if(token!==state.placeSeq||state.type!=='places'||!state.map)return;\r\n          placeMapStatus(isEn?'Unable to load place locations. Results are still available in the list.':'\u062a\u0639\u0630\u0631 \u062c\u0644\u0628 \u0645\u0648\u0627\u0642\u0639 \u0627\u0644\u0623\u0645\u0627\u0643\u0646\u060c \u0648\u064a\u0645\u0643\u0646\u0643 \u062a\u0635\u0641\u062d\u0647\u0627 \u0641\u064a \u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0646\u062a\u0627\u0626\u062c.');\r\n        });\r\n      }\r\n      function cityPinMetrics(){var w=window.innerWidth<=760?27:34;return {iconSize:[w,w],iconAnchor:[Math.round(w\/2),Math.round(w*.79)]}}\r\n      function pinCount(a){if(state.type==='events')return a.events;if(state.type==='trips')return a.trips;if(state.type==='all')return Number(a.places||0)+Number(a.events||0)+Number(a.trips||0);return null}\r\n      function pinHtml(a){var count=pinCount(a);var inner=count===null?'<i class=\"timExplore-icon timExplore-iNear\" aria-hidden=\"true\"><\/i>':fmt(count||0);return '<div class=\"timExplore-pin'+(a.key===state.area?' is-active':'')+'\"><span>'+inner+'<\/span><\/div>'}\r\n      function paintMarkers(){if(!state.map||!window.L)return;\r\n        Object.keys(state.markers).forEach(function(k){var o=state.markers[k];o.setIcon(window.L.divIcon({className:'',html:pinHtml(o.area),...cityPinMetrics()}));});\r\n        syncCityLayer();\r\n      }\r\n      function fitMap(){if(!state.map)return;state.map.fitBounds([[22.7,-17],[36.3,-1.35]],{padding:[20,20],maxZoom:6,animate:true})}\r\n      function drawMarkers(){if(!state.map||!window.L)return;\r\n        if(state.layer)state.layer.clearLayers();else state.layer=window.L.layerGroup().addTo(state.map);\r\n        state.markers={};\r\n        state.areas.forEach(function(a){if(a.lat==null||a.lng==null)return;\r\n          \/\/ City\/area mode can show all markers; a selected area strictly shows its own marker.\r\n          if(state.area&&a.key!==state.area) return;\r\n          var marker=window.L.marker([a.lat,a.lng],{icon:window.L.divIcon({className:'',html:pinHtml(a),...cityPinMetrics()}),title:a.name,keyboard:true});\r\n          marker.bindPopup(previewLoading(a),{minWidth:190,maxWidth:275,autoPan:true,keepInView:true,offset:[0,-8],closeButton:false,className:'timExplore-richPopup'});\r\n          marker.on('popupopen',function(){bindPreviewEvents(marker)});marker.on('click',function(){openPreview(a,marker)});\r\n          marker.addTo(state.layer);state.markers[a.key]={area:a,marker:marker,setIcon:function(icon){marker.setIcon(icon)}};\r\n        });syncCityLayer();\r\n      }\r\n      function script(url){return new Promise(function(resolve,reject){var s=document.createElement('script');s.src=url;s.async=true;s.onload=resolve;s.onerror=function(){reject(Error('leaflet'))};document.head.appendChild(s)})}\r\n      function leaflet(){if(window.L)return Promise.resolve();if(state.leafletPromise)return state.leafletPromise;state.leafletPromise=new Promise(function(resolve,reject){var l=document.createElement('link');l.rel='stylesheet';l.href=cfg.leafletCss;l.onload=function(){script(cfg.leafletJs).then(resolve,reject)};l.onerror=function(){reject(Error('leaflet css'))};document.head.appendChild(l)});return state.leafletPromise}\r\n      \/* Map navigation controls stay independent of the basemap provider. *\/\r\n      var mapWrap=$('.timExplore-mapWrap'),expandBtn=$('[data-map-expand]'),zoomInBtn=$('[data-map-zoomin]'),zoomOutBtn=$('[data-map-zoomout]');\r\n      var previousBodyOverflow='',previousHtmlOverflow='',expanded=false;\r\n      function adjustMapSize(){if(!state.map)return;requestAnimationFrame(function(){if(state.map)state.map.invalidateSize({pan:false,animate:false})})}\r\n      function setMapExpanded(on){on=!!on;if(on===expanded)return;\r\n        if(on){previousBodyOverflow=document.body.style.overflow;previousHtmlOverflow=document.documentElement.style.overflow;document.body.style.overflow='hidden';document.documentElement.style.overflow='hidden'}\r\n        else{document.body.style.overflow=previousBodyOverflow;document.documentElement.style.overflow=previousHtmlOverflow}\r\n        expanded=on;mapWrap.classList.toggle('is-expanded',on);expandBtn.setAttribute('aria-pressed',on?'true':'false');\r\n        var title=on?(isEn?'Exit full screen':'\u0625\u063a\u0644\u0627\u0642 \u0627\u0644\u0639\u0631\u0636 \u0627\u0644\u0645\u0648\u0633\u0639'):(isEn?'Expand map':'\u062a\u0648\u0633\u064a\u0639 \u0627\u0644\u062e\u0631\u064a\u0637\u0629');\r\n        expandBtn.setAttribute('aria-label',title);expandBtn.title=title;\r\n        adjustMapSize();setTimeout(adjustMapSize,90);setTimeout(adjustMapSize,260);\r\n      }\r\n      expandBtn.addEventListener('click',function(e){e.preventDefault();e.stopPropagation();setMapExpanded(!expanded)});\r\n      zoomInBtn.addEventListener('click',function(e){e.preventDefault();e.stopPropagation();if(state.map)state.map.zoomIn(1,{animate:true})});\r\n      zoomOutBtn.addEventListener('click',function(e){e.preventDefault();e.stopPropagation();if(state.map)state.map.zoomOut(1,{animate:true})});\r\n      document.addEventListener('keydown',function(e){if(expanded&&e.key==='Escape'){e.preventDefault();setMapExpanded(false)}});\r\n      window.addEventListener('resize',function(){if(expanded)adjustMapSize()},{passive:true});\r\n      function prepareMap(){if(state.map||loadingMap)return;loadingMap=true;mapStatus.hidden=false;leaflet().then(function(){if(state.map)return;var laptopMouse=window.matchMedia&&window.matchMedia('(hover:hover) and (pointer:fine)').matches&&window.innerWidth>760;\r\n        var saveData=!!(navigator.connection&&navigator.connection.saveData);\r\n        var lowBandwidth=!!(navigator.connection&&\/^(slow-2g|2g)$\/.test(navigator.connection.effectiveType||''));\r\n        var hiDpi=window.devicePixelRatio>=1.5&&!saveData&&!lowBandwidth;\r\n        state.map=window.L.map(mapEl,{scrollWheelZoom:!!laptopMouse,zoomControl:false,preferCanvas:true,minZoom:3,maxZoom:18,wheelDebounceTime:60,wheelPxPerZoomLevel:105,worldCopyJump:false});\r\n        state.map.on('zoomend',function(){zoomInBtn.disabled=state.map.getZoom()>=state.map.getMaxZoom();zoomOutBtn.disabled=state.map.getZoom()<=state.map.getMinZoom()});\r\n        \/* Native @2x on CARTO: sharp without extra tile requests. OSM fallback: detectRetina (4 tiles on HiDPI). *\/\r\n        window.L.tileLayer(cfg.tile,{maxZoom:18,attribution:cfg.attribution,detectRetina:cfg.retinaMode==='detect'&&hiDpi,updateWhenIdle:true,keepBuffer:1}).addTo(state.map);root.dispatchEvent(new Event('timExplore:mapReady'));fitMap();drawMarkers();loadPlacePoints();mapStatus.hidden=true;$('[data-map-tools]').hidden=false;setTimeout(function(){if(state.map){state.map.invalidateSize();state.map.fire('zoomend')}},80)}).catch(function(){mapStatus.innerHTML=isEn?'<div class=\"timExplore-mapBadge\">Morocco <span>\u2726<\/span><\/div><p>Map unavailable. You can still browse the list.<\/p><button type=\"button\" data-map-retry>Retry<\/button>':'<div class=\"timExplore-mapBadge\">\u0627\u0644\u0645\u063a\u0631\u0628 <span>\u2726<\/span><\/div><p>\u062a\u0639\u0630\u0631 \u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u062e\u0631\u064a\u0637\u0629\u060c \u064a\u0645\u0643\u0646\u0643 \u062a\u0635\u0641\u062d \u0627\u0644\u0648\u062c\u0647\u0627\u062a \u0641\u064a \u0627\u0644\u0642\u0627\u0626\u0645\u0629.<\/p><button type=\"button\" data-map-retry>\u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u0645\u062d\u0627\u0648\u0644\u0629<\/button>';var btn=$('[data-map-retry]');btn.addEventListener('click',function(){state.leafletPromise=null;mapStatus.innerHTML=isEn?'<p>Retrying\u2026<\/p>':'<p>\u062c\u0627\u0631\u064d \u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u062a\u062d\u0645\u064a\u0644\u2026<\/p>';prepareMap()})}).then(function(){loadingMap=false})}\r\n      function initMap(){if('IntersectionObserver' in window){var obs=new IntersectionObserver(function(entries){if(entries.some(function(e){return e.isIntersecting})){obs.disconnect();prepareMap()}},{rootMargin:'280px 0px'});obs.observe(mapEl)}else prepareMap()}\r\n      function translateUi(){if(!isEn)return;root.dir='ltr';\r\n        field.placeholder='Search for a city, place or trip\u2026';field.setAttribute('aria-label','Search Morocco');areaEl.options[0].textContent='All cities & regions';$('[data-near] span').textContent='Near me';$('[data-near]').title='Find nearest listed city';$$('[data-type]').forEach(function(b){b.textContent=enTypes[b.dataset.type]||b.dataset.type});$('[data-heading]').textContent='Places worth exploring';summary.textContent='Loading destinations\u2026';reset.textContent='Reset';more.textContent='Load more';$('[data-fit]').textContent='View Morocco';$('[data-map-expand]').setAttribute('aria-label','Expand map');$('[data-map-expand]').title='Expand map';$('[data-map-zoomin]').setAttribute('aria-label','Zoom in');$('[data-map-zoomin]').title='Zoom in';$('[data-map-zoomout]').setAttribute('aria-label','Zoom out');$('[data-map-zoomout]').title='Zoom out';$('[data-map-foot]').innerHTML='<i><\/i> Cities have centre markers; Places show verified individual locations only.';mapStatus.querySelector('.timExplore-mapBadge').innerHTML='Morocco <span>\u2726<\/span>';mapStatus.querySelector('p').textContent='Preparing the map\u2026';\r\n\r\n      }\r\n      \/* Review unmatched locations WITHOUT guessing coordinates or calling Geoapify.\r\n       * No customer sees these controls or the endpoint payload; access checked in PHP.\r\n       *\/\r\n      function setupManualReview(){\r\n        if(!cfg.reviewAdmin)return;\r\n        var open=$('[data-review-open]'),panel=$('[data-review-panel]'),closer=$('[data-review-close]'),\r\n            picker=$('[data-review-select]'),maps=$('[data-review-google]'),save=$('[data-review-save]'),googleUrl=$('[data-review-url]'),resolveBtn=$('[data-review-resolve]'),\r\n            status=$('[data-review-status]'),help=$('[data-review-help]'),heading=$('[data-review-heading]');\r\n        if(!open||!panel)return;\r\n        var records=[],selected=null,point=null,temporary=null,busy=false;\r\n        open.hidden=false;\r\n        function message(ar,en){status.textContent=isEn?en:ar}\r\n        function api(name,data){var fd=new FormData();fd.set('action','tim_explore_v111_'+name);fd.set('nonce',cfg.reviewNonce);\r\n          Object.keys(data||{}).forEach(function(k){fd.set(k,data[k])});\r\n          return fetch(cfg.ajax,{method:'POST',body:fd,credentials:'same-origin'}).then(function(r){return r.json().then(function(j){if(!r.ok||!j.success)throw Error(j.data&&j.data.message||'Server error');return j.data})});\r\n        }\r\n        function previewGoogle(id,url){var fd=new FormData();fd.set('action','tim_explore_v112_google_preview');fd.set('nonce',cfg.reviewNonce);fd.set('id',id);fd.set('url',url);\r\n          return fetch(cfg.ajax,{method:'POST',body:fd,credentials:'same-origin'}).then(function(r){return r.json().then(function(j){if(!r.ok||!j.success)throw Error(j.data&&j.data.message||'Server error');return j.data})});\r\n        }\r\n        function setReviewPoint(latlng){clearPoint();point=latlng;\r\n          if(state.map&&window.L){temporary=window.L.circleMarker(point,{radius:9,color:'#211D16',weight:2,fillColor:'#FFC94A',fillOpacity:1,interactive:false}).addTo(state.map)}\r\n          save.disabled=false;\r\n        }\r\n        function clearPoint(){point=null;save.disabled=true;if(temporary&&state.map){state.map.removeLayer(temporary)}temporary=null}\r\n        function hide(){panel.hidden=true;clearPoint();selected=null;picker.value='';googleUrl.value='';resolveBtn.disabled=true}\r\n        function refresh(){if(panel.hidden)return;var prev=selected&&selected.id;\r\n          api('unmapped',{area:state.area}).then(function(d){records=d.items||[];picker.innerHTML='';var first=document.createElement('option');first.value='';first.textContent=isEn?'Choose an unmapped place\u2026':'\u0627\u062e\u062a\u0631 \u0645\u0643\u0627\u0646\u064b\u0627 \u063a\u064a\u0631 \u0645\u062d\u062f\u062f\u2026';picker.appendChild(first);\r\n            records.forEach(function(r){var opt=document.createElement('option');opt.value=String(r.id);opt.textContent=r.title+' \u2014 '+r.city;picker.appendChild(opt)});\r\n            if(prev&&records.some(function(r){return r.id===prev}))picker.value=String(prev);\r\n            else selected=null;\r\n            maps.hidden=!selected||!selected.maps_url;\r\n            message('\u0623\u0645\u0627\u0643\u0646 \u062a\u062d\u062a\u0627\u062c \u0645\u0631\u0627\u062c\u0639\u0629: '+fmt(records.length),'Places needing review: '+fmt(records.length));\r\n          }).catch(function(err){message(err.message,err.message)});\r\n        }\r\n        open.addEventListener('click',function(){panel.hidden=!panel.hidden;if(panel.hidden){hide();return}\r\n          if(state.type!=='places')typeChoose('places');\r\n          heading.textContent=isEn?'Place location review':'\u062a\u062d\u062f\u064a\u062f \u0645\u0648\u0642\u0639 \u0645\u0643\u0627\u0646 \u063a\u064a\u0631 \u0638\u0627\u0647\u0631';\r\n          help.textContent=isEn?'Choose a place and paste its Google Maps share link to locate it, or click the map directly. Confirm the point before saving.':'\u0627\u062e\u062a\u0631 \u0627\u0644\u0645\u0643\u0627\u0646 \u0648\u0627\u0644\u0635\u0642 \u0631\u0627\u0628\u0637 \u0645\u0634\u0627\u0631\u0643\u062a\u0647 \u0645\u0646 Google Maps \u0644\u062a\u062d\u062f\u064a\u062f\u0647 \u062a\u0644\u0642\u0627\u0626\u064a\u064b\u0627\u060c \u0623\u0648 \u0627\u0636\u063a\u0637 \u0639\u0644\u0649 \u0627\u0644\u062e\u0631\u064a\u0637\u0629. \u062a\u0623\u0643\u062f \u0645\u0646 \u0627\u0644\u0646\u0642\u0637\u0629 \u0642\u0628\u0644 \u0627\u0644\u062d\u0641\u0638.';\r\n          maps.textContent='Google Maps';save.textContent=isEn?'Save location':'\u062d\u0641\u0638 \u0627\u0644\u0645\u0648\u0642\u0639';resolveBtn.textContent=isEn?'Locate on map':'\u062a\u062d\u062f\u064a\u062f \u0639\u0644\u0649 \u0627\u0644\u062e\u0631\u064a\u0637\u0629';googleUrl.placeholder='https:\/\/maps.app.goo.gl\/...';refresh();adjustMapSize();\r\n        });\r\n        closer.addEventListener('click',hide);\r\n        picker.addEventListener('change',function(){clearPoint();googleUrl.value='';selected=records.find(function(r){return String(r.id)===picker.value})||null;resolveBtn.disabled=!selected;\r\n          if(!selected){maps.hidden=true;message('\u0627\u062e\u062a\u0631 \u0645\u0643\u0627\u0646\u064b\u0627 \u0644\u0644\u0628\u062f\u0621.','Choose a place first.');return}\r\n          maps.hidden=!selected.maps_url;maps.href=selected.maps_url||'#';\r\n          message('\u0627\u0636\u063a\u0637 \u0639\u0644\u0649 \u0645\u0648\u0642\u0639 '+selected.title+' \u0641\u064a \u0627\u0644\u062e\u0631\u064a\u0637\u0629.','Click the correct map position of '+selected.title+'.');\r\n          if(state.map&&selected.lat!=null&&selected.lng!=null)state.map.flyTo([selected.lat,selected.lng],12,{duration:.45});\r\n        });\r\n        googleUrl.addEventListener('input',function(){resolveBtn.disabled=!selected||!googleUrl.value.trim()||busy;clearPoint()});\r\n        googleUrl.addEventListener('paste',function(){setTimeout(function(){if(selected&&googleUrl.value.trim()&&!busy)resolveBtn.click()},90)});\r\n        resolveBtn.addEventListener('click',function(){if(!selected||!googleUrl.value.trim()||busy)return;\r\n          busy=true;resolveBtn.disabled=true;var picked=selected,link=googleUrl.value.trim();\r\n          message('\u062c\u0627\u0631\u064d \u0642\u0631\u0627\u0621\u0629 \u0625\u062d\u062f\u0627\u062b\u064a\u0627\u062a \u0631\u0627\u0628\u0637 Google Maps\u2026','Reading the Google Maps location\u2026');\r\n          previewGoogle(picked.id,link).then(function(data){\r\n            if(selected!==picked)return;\r\n            var ll=window.L&&window.L.latLng?window.L.latLng(Number(data.lat),Number(data.lng)):{lat:Number(data.lat),lng:Number(data.lng)};\r\n            setReviewPoint(ll);\r\n            if(state.map)state.map.flyTo([ll.lat,ll.lng],16,{duration:.45});\r\n            if(data.confidence==='suggestion'){\r\n              message('\u0647\u0630\u0647 \u0646\u0642\u0637\u0629 \u0645\u0642\u062a\u0631\u062d\u0629 \u0645\u0646 \u0627\u0644\u0631\u0627\u0628\u0637 \u0623\u0648 \u0645\u0637\u0627\u0628\u0642\u0629 \u0645\u0643\u0627\u0646\u060c \u0648\u0642\u062f \u0644\u0627 \u062a\u0643\u0648\u0646 \u0645\u0648\u0636\u0639 \u0627\u0644\u062f\u0628\u0648\u0633 \u0627\u0644\u062f\u0642\u064a\u0642. \u062a\u062d\u0642\u0642 \u0645\u0646 \u0645\u0648\u0642\u0639\u0647\u0627 \u0642\u0628\u0644 \u0627\u0644\u062d\u0641\u0638.','Suggested location only; it may represent the map view rather than the exact pin. Verify before saving.');\r\n            }else{\r\n              message('\u062a\u0645 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0625\u062d\u062f\u0627\u062b\u064a\u0627\u062a \u0627\u0644\u062f\u0628\u0648\u0633. \u062a\u0623\u0643\u062f \u0645\u0646 \u0627\u0644\u0645\u0648\u0642\u0639 \u062b\u0645 \u0627\u0636\u063a\u0637 \u00ab\u062d\u0641\u0638 \u0627\u0644\u0645\u0648\u0642\u0639\u00bb.','Pin coordinates found. Verify the location, then save.');\r\n            }\r\n          }).catch(function(err){if(selected===picked){clearPoint();message(err.message,err.message)}})\r\n          .then(function(){busy=false;resolveBtn.disabled=!selected||!googleUrl.value.trim()});\r\n        });\r\n        save.addEventListener('click',function(){if(!selected||!point||busy)return;busy=true;save.disabled=true;\r\n          var saved=selected;message('\u062c\u0627\u0631\u064d \u062d\u0641\u0638 \u0627\u0644\u0625\u062d\u062f\u0627\u062b\u064a\u0627\u062a\u2026','Saving coordinates\u2026');\r\n          api('manual_save',{id:selected.id,lat:point.lat.toFixed(7),lng:point.lng.toFixed(7)}).then(function(){\r\n            clearPoint();selected=null;googleUrl.value='';resolveBtn.disabled=true;loadPlacePoints();\r\n            return api('unmapped',{area:state.area});\r\n          }).then(function(d){records=d.items||[];picker.innerHTML='';var opt=document.createElement('option');opt.value='';opt.textContent=isEn?'Choose another place\u2026':'\u0627\u062e\u062a\u0631 \u0645\u0643\u0627\u0646\u064b\u0627 \u0622\u062e\u0631\u2026';picker.appendChild(opt);\r\n            records.forEach(function(r){var o=document.createElement('option');o.value=String(r.id);o.textContent=r.title+' \u2014 '+r.city;picker.appendChild(o)});\r\n            maps.hidden=true;message('\u062a\u0645 \u062d\u0641\u0638 \u0645\u0648\u0642\u0639 '+saved.title+' \u0628\u0646\u062c\u0627\u062d. \u0627\u0644\u0645\u062a\u0628\u0642\u064a: '+fmt(records.length),'Saved '+saved.title+'. Remaining: '+fmt(records.length));\r\n          }).catch(function(err){message(err.message,err.message);save.disabled=!point}).then(function(){busy=false});\r\n        });\r\n        function onMapClick(e){if(panel.hidden||!selected||busy||!state.map||!window.L)return;\r\n          setReviewPoint(e.latlng);message('\u0627\u0644\u0645\u0648\u0642\u0639 \u062c\u0627\u0647\u0632 \u0644\u0644\u062d\u0641\u0638. \u0631\u0627\u062c\u0639\u0647 \u0642\u0628\u0644 \u0627\u0644\u062a\u0623\u0643\u064a\u062f.','Point selected. Check it before saving.');\r\n        }\r\n        \/\/ The map initializes lazily; attach exactly once after Leaflet becomes available.\r\n        root.addEventListener('timExplore:mapReady',function(){if(state.map)state.map.on('click',onMapClick)});\r\n        if(state.map)state.map.on('click',onMapClick);\r\n        \/\/ Update list when city filter changes, but do not create extra visitor requests.\r\n        areaEl.addEventListener('change',function(){if(!panel.hidden){hide()}});\r\n      }\r\n      function setupGeoAdmin(){\r\n        var btn=$('[data-locate-admin]');if(!btn||!cfg.geocodeAdmin)return;\r\n        btn.hidden=false;btn.classList.add('timExplore-geocodeBtn');\r\n        btn.addEventListener('click',function(){\r\n          if(btn.disabled)return;\r\n          if(!window.confirm(isEn?'Find verified coordinates for Places without coordinates? This may take several minutes.':'\u062a\u062d\u062f\u064a\u062f \u0645\u0648\u0627\u0642\u0639 \u0627\u0644\u0623\u0645\u0627\u0643\u0646 \u0627\u0644\u062a\u064a \u062a\u0641\u062a\u0642\u062f \u0625\u062d\u062f\u0627\u062b\u064a\u0627\u062a \u062f\u0642\u064a\u0642\u0629\u061f \u0642\u062f \u064a\u0633\u062a\u063a\u0631\u0642 \u0630\u0644\u0643 \u0639\u062f\u0629 \u062f\u0642\u0627\u0626\u0642\u060c \u0648\u0644\u0646 \u064a\u062d\u0641\u0638 \u0627\u0644\u0646\u062a\u0627\u0626\u062c \u063a\u064a\u0631 \u0627\u0644\u0645\u0648\u062b\u0648\u0642\u0629.'))return;\r\n          btn.disabled=true;var old=btn.textContent,done=0,found=0,unmatched=0,failed=0;\r\n          function api(action,body){var fd=new FormData();fd.set('action','tim_explore_v150_'+action);fd.set('nonce',cfg.geocodeNonce);Object.keys(body||{}).forEach(function(k){fd.set(k,body[k])});return fetch(cfg.ajax,{method:'POST',body:fd,credentials:'same-origin'}).then(function(r){return r.json()}).then(function(j){if(!j.success)throw Error(j.data&&j.data.message||'Server error');return j.data||{}})}\r\n          api('geo_queue',{}).then(function(data){var ids=data.ids||[];\r\n            if(!ids.length){btn.textContent=isEn?'No eligible places to geocode right now':'\u0644\u0627 \u062a\u0648\u062c\u062f \u0623\u0645\u0627\u0643\u0646 \u0645\u062a\u0627\u062d\u0629 \u0644\u0644\u0645\u0639\u0627\u0644\u062c\u0629 \u0627\u0644\u0622\u0646';btn.disabled=false;loadPlacePoints();return}\r\n            function next(){\r\n              if(!ids.length){\r\n                btn.disabled=false;\r\n                btn.textContent=isEn?('Confirmed: '+found+' \u00b7 Unmatched: '+unmatched+' \u00b7 Errors: '+failed):('\u0645\u0648\u0627\u0642\u0639 \u0645\u0624\u0643\u062f\u0629: '+found+' \u00b7 \u062a\u062d\u062a\u0627\u062c \u0645\u0631\u0627\u062c\u0639\u0629: '+unmatched+' \u00b7 \u0623\u062e\u0637\u0627\u0621: '+failed);\r\n                loadPlacePoints();return;\r\n              }\r\n              var id=ids.shift();btn.textContent=(isEn?'Checking ':'\u062c\u0627\u0631\u064d \u0641\u062d\u0635 ')+(++done)+' \/ '+(done+ids.length);\r\n              var attempts=0;\r\n              function tryOne(){return api('geo_one',{id:id}).catch(function(e){\r\n                if(++attempts<2)return new Promise(function(resolve){setTimeout(resolve,4500)}).then(tryOne);\r\n                throw e;\r\n              })}\r\n              tryOne().then(function(r){if(r.located&&!r.already)found++;else if(!r.located)unmatched++;})\r\n                .catch(function(){failed++}).then(function(){setTimeout(next,1800)});\r\n            }\r\n            next();\r\n          }).catch(function(e){btn.disabled=false;btn.textContent=old;alert(e.message)});\r\n        });\r\n      }\r\n      function init(){syncThemeFonts();initUrl();translateUi();setupGeoAdmin();setupManualReview();field.value=state.search;paintTabs();title();initMap();\r\n        request({kind:'catalogue'},false).then(function(d){state.areas=d.areas||[];state.facets=d.facets||{};areaEl.length=1;state.areas.forEach(function(a){var o=document.createElement('option');o.value=a.key;o.textContent=areaName(a.name);areaEl.appendChild(o)});if(!state.areas.some(function(a){return a.key===state.area}))state.area='';areaEl.value=state.area;\r\n          renderCategories();title();drawMarkers();loadPlacePoints();load(false);\r\n        }).catch(function(){state.area='';state.category='';renderCategories();areaEl.value='';load(false)});\r\n      }\r\n      init();\r\n    })();\r\n    <\/script>\r\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u0627\u0643\u062a\u0634\u0641 \u0627\u0644\u0645\u063a\u0631\u0628 \u0639\u0644\u0649 \u0637\u0631\u064a\u0642\u062a\u0643.! \u0645\u0646 \u0627\u0644\u0645\u062f\u0646 \u0627\u0644\u0639\u062a\u064a\u0642\u0629 \u0625\u0644\u0649 \u0627\u0644\u062a\u062c\u0627\u0631\u0628 \u0627\u0644\u0645\u062d\u0644\u064a\u0629 \u0648\u0627\u0644\u0623\u0645\u0627\u0643\u0646 \u0627\u0644\u0645\u0645\u064a\u0632\u0629\u061b \u062e\u0631\u064a\u0637\u0629 \u0648\u0627\u062d\u062f\u0629 \u062a\u0633\u0627\u0639\u062f\u0643 \u0639\u0644\u0649 \u0627\u0644\u0639\u062b\u0648\u0631 \u0639\u0644\u0649 \u0648\u062c\u0647\u062a\u0643 \u0627\u0644\u062a\u0627\u0644\u064a\u0629.<\/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-2269","page","type-page","status-publish","hentry"],"blocksy_meta":{"has_hero_section":"disabled","styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":8}},"_links":{"self":[{"href":"https:\/\/thatismorocco.com\/en\/wp-json\/wp\/v2\/pages\/2269","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thatismorocco.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/thatismorocco.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/thatismorocco.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thatismorocco.com\/en\/wp-json\/wp\/v2\/comments?post=2269"}],"version-history":[{"count":8,"href":"https:\/\/thatismorocco.com\/en\/wp-json\/wp\/v2\/pages\/2269\/revisions"}],"predecessor-version":[{"id":2284,"href":"https:\/\/thatismorocco.com\/en\/wp-json\/wp\/v2\/pages\/2269\/revisions\/2284"}],"wp:attachment":[{"href":"https:\/\/thatismorocco.com\/en\/wp-json\/wp\/v2\/media?parent=2269"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}