{"id":107,"date":"2021-05-07T16:15:16","date_gmt":"2021-05-07T16:15:16","guid":{"rendered":"https:\/\/obleu-mogador.com\/contact\/"},"modified":"2026-10-22T21:46:09","modified_gmt":"2026-10-22T20:46:09","slug":"contact","status":"publish","type":"page","link":"https:\/\/obleu-mogador.com\/?page_id=107","title":{"rendered":"Contact"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"107\" class=\"elementor elementor-107\">\n\t\t\t\t\t\t<section class=\"ob-is-breaking-bad elementor-section elementor-top-section elementor-element elementor-element-31ed6bb elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"31ed6bb\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;_ob_bbad_use_it&quot;:&quot;yes&quot;,&quot;_ob_bbad_sssic_use&quot;:&quot;no&quot;,&quot;_ob_glider_is_slider&quot;:&quot;no&quot;}\">\n\t\t\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div>\n\t\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-48930cc\" data-id=\"48930cc\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;_ob_bbad_is_stalker&quot;:&quot;no&quot;,&quot;_ob_teleporter_use&quot;:false,&quot;_ob_column_hoveranimator&quot;:&quot;no&quot;,&quot;_ob_column_has_pseudo&quot;:&quot;no&quot;}\">\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-debef74 ob-harakiri-inherit ob-has-background-overlay elementor-widget elementor-widget-heading\" data-id=\"debef74\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_ob_use_harakiri&quot;:&quot;yes&quot;,&quot;_ob_harakiri_writing_mode&quot;:&quot;inherit&quot;,&quot;_ob_harakiri_text_clip&quot;:&quot;none&quot;,&quot;_ob_perspektive_use&quot;:&quot;no&quot;,&quot;_ob_poopart_use&quot;:&quot;yes&quot;,&quot;_ob_shadough_use&quot;:&quot;no&quot;,&quot;_ob_allow_hoveranimator&quot;:&quot;no&quot;,&quot;_ob_widget_stalker_use&quot;:&quot;no&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">R\u00e9servation<\/h1>\t\t\t\t<\/div>\n\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=\"ob-is-breaking-bad elementor-section elementor-top-section elementor-element elementor-element-d71ff12 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"d71ff12\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;_ob_bbad_use_it&quot;:&quot;yes&quot;,&quot;_ob_bbad_sssic_use&quot;:&quot;no&quot;,&quot;_ob_glider_is_slider&quot;:&quot;no&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-48115e6\" data-id=\"48115e6\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;_ob_bbad_is_stalker&quot;:&quot;no&quot;,&quot;_ob_teleporter_use&quot;:false,&quot;_ob_column_hoveranimator&quot;:&quot;no&quot;,&quot;_ob_column_has_pseudo&quot;:&quot;no&quot;}\">\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-0a3060a ob-has-background-overlay elementor-widget elementor-widget-html\" data-id=\"0a3060a\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_ob_perspektive_use&quot;:&quot;no&quot;,&quot;_ob_poopart_use&quot;:&quot;yes&quot;,&quot;_ob_shadough_use&quot;:&quot;no&quot;,&quot;_ob_allow_hoveranimator&quot;:&quot;no&quot;,&quot;_ob_widget_stalker_use&quot;:&quot;no&quot;}\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- O'Bleu Mogador : module de r\u00e9servation de table (coller dans un widget HTML Elementor ou un bloc HTML personnalis\u00e9) -->\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Imperial+Script&family=Varela+Round&family=Yeseva+One&display=swap\" rel=\"stylesheet\">\r\n<style>\r\n  \/* ===== O'Bleu Mogador booking widget \u2014 all styles scoped under #ob-booking ===== *\/\r\n  #ob-booking {\r\n    --ob-blue: #273094;\r\n    --ob-ink: #1B226E;\r\n    --ob-plum: #494153;\r\n    --ob-muted: #6E6878;\r\n    --ob-soft: #F4F3F9;\r\n    --ob-lav: #E9E6F2;\r\n    --ob-line: #E3E1EA;\r\n    --ob-ui: \"Varela Round\", Arial, sans-serif;\r\n    --ob-head: \"Yeseva One\", Georgia, serif;\r\n    --ob-script: \"Imperial Script\", cursive;\r\n    font-family: Georgia, \"Times New Roman\", serif;\r\n    font-size: 15px;\r\n    color: var(--ob-plum);\r\n    background: transparent;\r\n    padding: 64px 16px;\r\n    -webkit-font-smoothing: antialiased;\r\n  }\r\n  #ob-booking *, #ob-booking *::before, #ob-booking *::after { box-sizing: border-box; }\r\n  \/* Reset: neutralise Astra \/ Elementor styles on buttons, inputs, headings *\/\r\n  #ob-booking button {\r\n    -webkit-appearance: none; appearance: none; margin: 0; padding: 0; width: auto; height: auto;\r\n    min-width: 0; min-height: 0; max-width: none; background: none; border: 0; border-radius: 0;\r\n    box-shadow: none; text-shadow: none; text-transform: none; text-decoration: none; letter-spacing: normal;\r\n    font: inherit; line-height: 1.25; color: inherit; cursor: pointer; transform: none; white-space: normal; text-align: inherit;\r\n  }\r\n  #ob-booking button:disabled { cursor: not-allowed; }\r\n  #ob-booking input, #ob-booking textarea, #ob-booking select {\r\n    margin: 0; height: auto; min-height: 0; max-width: 100%; box-shadow: none; line-height: 1.4; font: inherit;\r\n  }\r\n  #ob-booking h2, #ob-booking h3, #ob-booking h4, #ob-booking h5, #ob-booking p {\r\n    font-family: inherit; text-transform: none; letter-spacing: normal; padding: 0; border: 0;\r\n  }\r\n  #ob-booking ol, #ob-booking ul, #ob-booking li { margin: 0; padding: 0; }\r\n  #ob-booking li::marker { content: none; }\r\n  #ob-booking svg { display: inline-block; flex-shrink: 0; vertical-align: middle; max-width: none; }\r\n  #ob-booking .ob-wrap { max-width: 1080px; margin: 0 auto; container: obwrap \/ inline-size; }\r\n  \/* Header *\/\r\n  #ob-booking .ob-head { text-align: center; margin-bottom: 36px; }\r\n  #ob-booking .ob-eyebrow { display: inline-block; font-family: var(--ob-ui); font-size: 12px; letter-spacing: .24em; text-transform: uppercase; color: var(--ob-muted); margin-bottom: 4px; }\r\n  #ob-booking .ob-title { font-family: var(--ob-script); font-weight: 400; font-size: clamp(46px, 7vw, 72px); color: var(--ob-blue); margin: 0 0 10px; line-height: 1.15; }\r\n  #ob-booking .ob-sub { font-style: italic; color: var(--ob-muted); font-size: 16px; margin: 0 auto; max-width: 580px; line-height: 1.65; }\r\n  #ob-booking .ob-rule { width: 70px; height: 1px; background: var(--ob-blue); margin: 18px auto 0; opacity: .5; }\r\n  \/* Card *\/\r\n  #ob-booking .ob-card {\r\n    display: grid; grid-template-columns: 260px minmax(0, 1fr); background: #fff; border: 1px solid var(--ob-line);\r\n    box-shadow: 0 24px 60px -30px rgba(39, 48, 148, .35); overflow: hidden; min-height: 560px;\r\n  }\r\n  \/* Sidebar *\/\r\n  #ob-booking .ob-side { background: #fff; padding: 34px 26px; border-right: 1px solid var(--ob-line); }\r\n  #ob-booking .ob-side-top { display: none; justify-content: flex-end; margin-bottom: 14px; }\r\n  #ob-booking .ob-step-pill { font-family: var(--ob-ui); padding: 6px 12px; font-size: 12px; border: 1px solid var(--ob-line); color: var(--ob-muted); white-space: nowrap; }\r\n  #ob-booking .ob-step-pill b { color: var(--ob-blue); font-weight: 400; }\r\n  #ob-booking .ob-steps { list-style: none; margin: 0 0 30px; position: relative; font-family: var(--ob-ui); }\r\n  #ob-booking .ob-steps li { position: relative; display: flex; align-items: center; gap: 14px; padding: 9px 0; color: #A9A5B2; font-size: 14px; transition: color .3s; }\r\n  #ob-booking .ob-steps li + li::before { content: \"\"; position: absolute; left: 15px; top: -11px; width: 1px; height: 22px; background: var(--ob-line); transition: background .4s; }\r\n  #ob-booking .ob-steps li.is-done + li::before { background: var(--ob-blue); }\r\n  #ob-booking .ob-step-txt small { display: block; font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; opacity: .8; margin-bottom: 1px; }\r\n  #ob-booking .ob-dot { position: relative; z-index: 1; width: 31px; height: 31px; border-radius: 50%; border: 1px solid var(--ob-line); background: #fff; display: grid; place-items: center; font-size: 13px; flex-shrink: 0; transition: all .3s; }\r\n  #ob-booking .ob-dot svg { width: 13px; height: 13px; display: none; }\r\n  #ob-booking .ob-steps li.is-active { color: var(--ob-ink); }\r\n  #ob-booking .ob-steps li.is-active .ob-dot { background: var(--ob-blue); border-color: var(--ob-blue); color: #fff; box-shadow: 0 0 0 5px rgba(39, 48, 148, .1); }\r\n  #ob-booking .ob-steps li.is-done { color: var(--ob-plum); }\r\n  #ob-booking .ob-steps li.is-done .ob-dot { background: var(--ob-blue); border-color: var(--ob-blue); color: #fff; }\r\n  #ob-booking .ob-steps li.is-done .ob-dot b { display: none; }\r\n  #ob-booking .ob-steps li.is-done .ob-dot svg { display: block; }\r\n  #ob-booking .ob-dot b { font-weight: 400; }\r\n  #ob-booking .ob-summary { background: var(--ob-soft); padding: 16px; font-size: 13.5px; }\r\n  #ob-booking .ob-summary h4 { margin: 0 0 8px; font-family: var(--ob-ui); font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--ob-muted); font-weight: 400; }\r\n  #ob-booking .ob-summary-row { display: flex; gap: 10px; align-items: flex-start; padding: 6px 0; color: var(--ob-ink); line-height: 1.45; }\r\n  #ob-booking .ob-summary-row svg { margin-top: 2px; color: var(--ob-blue); }\r\n  #ob-booking .ob-summary-row .ob-empty { color: #A9A5B2; font-style: italic; }\r\n  #ob-booking .ob-hours { margin-top: 18px; font-family: var(--ob-ui); font-size: 12px; color: var(--ob-muted); line-height: 1.7; }\r\n  #ob-booking .ob-hours b { color: var(--ob-blue); font-weight: 400; }\r\n  \/* Main *\/\r\n  #ob-booking .ob-main { padding: 38px 42px; display: flex; flex-direction: column; min-width: 0; container: obmain \/ inline-size; }\r\n  #ob-booking .ob-progress { height: 2px; background: var(--ob-line); overflow: hidden; margin-bottom: 30px; }\r\n  #ob-booking .ob-progress span { display: block; height: 100%; width: 25%; background: var(--ob-blue); transition: width .5s cubic-bezier(.65,0,.35,1); }\r\n  #ob-booking .ob-panel { display: none; flex: 1; animation: obIn .45s cubic-bezier(.22,1,.36,1); }\r\n  #ob-booking .ob-panel.is-active { display: block; }\r\n  @keyframes obIn { from { opacity: 0; transform: translateX(16px); } to { opacity: 1; transform: none; } }\r\n  #ob-booking .ob-h { font-family: var(--ob-head); font-weight: 400; font-size: 26px; color: var(--ob-blue); margin: 0 0 6px; line-height: 1.25; }\r\n  #ob-booking .ob-p { color: var(--ob-muted); margin: 0 0 24px; font-size: 15px; line-height: 1.6; font-style: italic; }\r\n  #ob-booking .ob-label { display: block; font-family: var(--ob-ui); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--ob-ink); margin: 26px 0 12px; }\r\n  \/* Party : adults \/ children *\/\r\n  #ob-booking .ob-party { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }\r\n  #ob-booking .ob-party .ob-chip { padding: 16px; text-align: center; font-size: 14px; }\r\n  #ob-booking .ob-counts { display: grid; gap: 8px; margin-top: 10px; }\r\n  #ob-booking .ob-count { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px 10px 16px; border: 1px solid var(--ob-line); }\r\n  #ob-booking .ob-count-name { font-size: 15px; color: var(--ob-ink); }\r\n  #ob-booking .ob-ctrl { display: flex; align-items: center; gap: 12px; font-family: var(--ob-head); font-size: 18px; color: var(--ob-ink); }\r\n  #ob-booking .ob-ctrl b { min-width: 22px; text-align: center; font-weight: 400; }\r\n  #ob-booking .ob-round { width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--ob-line); display: grid; place-items: center; color: var(--ob-blue); font-family: var(--ob-ui); font-size: 18px; line-height: 1; transition: all .2s; }\r\n  #ob-booking .ob-round:hover:not(:disabled) { border-color: var(--ob-blue); background: var(--ob-soft); }\r\n  #ob-booking .ob-round:disabled { opacity: .3; }\r\n  \/* Chips *\/\r\n  #ob-booking .ob-chips { display: flex; flex-wrap: wrap; gap: 8px; }\r\n  #ob-booking .ob-chip { font-family: var(--ob-ui); padding: 10px 16px; border: 1px solid var(--ob-line); background: #fff; font-size: 13.5px; color: var(--ob-plum); transition: all .2s; }\r\n  #ob-booking .ob-chip:hover { border-color: var(--ob-blue); color: var(--ob-blue); }\r\n  #ob-booking .ob-chip.is-selected { background: var(--ob-blue); border-color: var(--ob-blue); color: #fff; }\r\n  \/* Calendar *\/\r\n  #ob-booking .ob-datetime { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 26px; align-items: start; }\r\n  #ob-booking .ob-cal { border: 1px solid var(--ob-line); padding: 16px; min-width: 0; }\r\n  #ob-booking .ob-cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }\r\n  #ob-booking .ob-cal-head strong { font-family: var(--ob-head); font-weight: 400; font-size: 17px; color: var(--ob-ink); text-transform: capitalize; }\r\n  #ob-booking .ob-nav { width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--ob-line); background: #fff; display: grid; place-items: center; color: var(--ob-blue); transition: all .2s; flex-shrink: 0; }\r\n  #ob-booking .ob-nav:hover:not(:disabled) { border-color: var(--ob-blue); background: var(--ob-soft); }\r\n  #ob-booking .ob-nav:disabled { opacity: .3; }\r\n  #ob-booking .ob-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 3px; }\r\n  #ob-booking .ob-dow { text-align: center; font-family: var(--ob-ui); font-size: 10.5px; color: var(--ob-muted); text-transform: uppercase; padding: 6px 0; letter-spacing: .06em; }\r\n  #ob-booking .ob-day { width: 100%; height: 42px; display: grid; place-items: center; background: transparent; border-radius: 50%; max-width: 42px; margin: 0 auto; font-family: var(--ob-ui); font-size: 14px; line-height: 1; color: var(--ob-plum); position: relative; transition: background-color .15s, color .15s; }\r\n  #ob-booking .ob-day:hover:not(:disabled):not(.is-selected) { background: var(--ob-soft); color: var(--ob-blue); }\r\n  #ob-booking .ob-day:disabled { color: #CBC8D2; }\r\n  #ob-booking .ob-day.is-today::after { content: \"\"; position: absolute; bottom: 5px; left: 50%; width: 4px; height: 4px; margin-left: -2px; border-radius: 50%; background: var(--ob-blue); }\r\n  #ob-booking .ob-day.is-selected { background: var(--ob-blue); color: #fff; }\r\n  #ob-booking .ob-day.is-selected::after { background: #fff; }\r\n  #ob-booking .ob-legend { margin-top: 10px; font-family: var(--ob-ui); font-size: 12px; color: var(--ob-muted); }\r\n  #ob-booking .ob-right h5 { margin: 0 0 6px; font-family: var(--ob-head); font-weight: 400; font-size: 17px; color: var(--ob-ink); }\r\n  #ob-booking .ob-right h5 span { display: block; font-family: Georgia, serif; font-style: italic; font-size: 14px; color: var(--ob-muted); text-transform: capitalize; margin-top: 2px; }\r\n  #ob-booking .ob-slots { display: grid; grid-template-columns: repeat(auto-fill, minmax(82px, 1fr)); gap: 8px; margin-top: 14px; }\r\n  #ob-booking .ob-slot { width: 100%; height: 46px; display: grid; place-items: center; border: 1px solid var(--ob-line); background: #fff; font-family: var(--ob-ui); font-size: 15px; line-height: 1; color: var(--ob-ink); font-variant-numeric: tabular-nums; transition: all .2s; }\r\n  #ob-booking .ob-slot:hover:not(:disabled):not(.is-selected) { border-color: var(--ob-blue); color: var(--ob-blue); }\r\n  #ob-booking .ob-slot:disabled { background: #F7F7F9; color: #CBC8D2; text-decoration: line-through; }\r\n  #ob-booking .ob-slot.is-selected { background: var(--ob-blue); border-color: var(--ob-blue); color: #fff; }\r\n  #ob-booking .ob-placeholder { border: 1px dashed var(--ob-line); padding: 36px 20px; text-align: center; color: var(--ob-muted); font-style: italic; font-size: 14px; }\r\n  #ob-booking .ob-hint { font-size: 13px; font-style: italic; color: var(--ob-muted); line-height: 1.55; margin-top: 14px; }\r\n  \/* Form *\/\r\n  #ob-booking .ob-form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }\r\n  #ob-booking .ob-field { display: flex; flex-direction: column; gap: 7px; min-width: 0; }\r\n  #ob-booking .ob-field.ob-full { grid-column: 1 \/ -1; }\r\n  #ob-booking .ob-field label, #ob-booking .ob-field .ob-flabel { font-family: var(--ob-ui); font-size: 12.5px; letter-spacing: .04em; color: var(--ob-ink); }\r\n  #ob-booking .ob-field label em { color: var(--ob-blue); font-style: normal; }\r\n  #ob-booking .ob-field input, #ob-booking .ob-field textarea {\r\n    width: 100%; font-family: Georgia, serif; font-size: 15px; padding: 12px 14px; border: 1px solid var(--ob-line); border-radius: 0; background: #fff; color: var(--ob-ink);\r\n    transition: border-color .2s, box-shadow .2s;\r\n  }\r\n  #ob-booking .ob-field textarea { resize: vertical; min-height: 90px; }\r\n  #ob-booking .ob-field input:focus, #ob-booking .ob-field textarea:focus { outline: none; border-color: var(--ob-blue); box-shadow: 0 0 0 3px rgba(39, 48, 148, .1); }\r\n  #ob-booking .ob-field.has-error input { border-color: #C8404D; box-shadow: 0 0 0 3px rgba(200, 64, 77, .1); }\r\n  #ob-booking .ob-err { font-family: var(--ob-ui); font-size: 12px; color: #C8404D; display: none; }\r\n  #ob-booking .ob-field.has-error .ob-err { display: block; }\r\n  \/* Phone: country code picker (flag) + number *\/\r\n  #ob-booking .ob-phone { position: relative; display: flex; align-items: stretch; border: 1px solid var(--ob-line); background: #fff; transition: border-color .2s, box-shadow .2s; }\r\n  #ob-booking .ob-phone:focus-within { border-color: var(--ob-blue); box-shadow: 0 0 0 3px rgba(39, 48, 148, .1); }\r\n  #ob-booking .ob-field.has-error .ob-phone { border-color: #C8404D; box-shadow: 0 0 0 3px rgba(200, 64, 77, .1); }\r\n  #ob-booking .ob-field .ob-phone input { flex: 1; min-width: 0; border: 0; box-shadow: none; padding-left: 10px; }\r\n  #ob-booking .ob-field.has-error .ob-phone input, #ob-booking .ob-field .ob-phone input:focus { border: 0; box-shadow: none; }\r\n  #ob-booking .ob-cc { display: flex; align-items: center; gap: 6px; padding: 0 10px 0 12px; border-right: 1px solid var(--ob-line); font-family: var(--ob-ui); font-size: 14px; color: var(--ob-ink); white-space: nowrap; font-variant-numeric: tabular-nums; }\r\n  #ob-booking .ob-cc:hover, #ob-booking .ob-cc[aria-expanded=\"true\"] { background: var(--ob-soft); }\r\n  #ob-booking .ob-cc svg { color: var(--ob-muted); }\r\n  #ob-booking .ob-flag { width: 22px; height: 16px; object-fit: cover; box-shadow: 0 0 0 1px rgba(0,0,0,.08); flex-shrink: 0; display: block; }\r\n  #ob-booking .ob-cc-menu { position: absolute; z-index: 20; top: calc(100% + 6px); left: -1px; width: 290px; max-width: calc(100vw - 40px); background: #fff; border: 1px solid var(--ob-line); box-shadow: 0 18px 40px -16px rgba(39, 48, 148, .35); padding: 8px; display: none; }\r\n  #ob-booking .ob-cc-menu.is-open { display: block; }\r\n  #ob-booking .ob-field .ob-cc-menu input { border: 1px solid var(--ob-line); padding: 9px 12px; font-size: 14px; margin-bottom: 6px; }\r\n  #ob-booking .ob-field .ob-cc-menu input:focus { border-color: var(--ob-blue); box-shadow: none; }\r\n  #ob-booking .ob-cc-list { max-height: 240px; overflow-y: auto; list-style: none; font-family: var(--ob-ui); }\r\n  #ob-booking .ob-cc-list li { display: flex; align-items: center; gap: 10px; padding: 8px 10px; font-size: 14px; color: var(--ob-ink); cursor: pointer; }\r\n  #ob-booking .ob-cc-list li:hover, #ob-booking .ob-cc-list li.is-selected { background: var(--ob-soft); }\r\n  #ob-booking .ob-cc-list li span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\r\n  #ob-booking .ob-cc-list li b { color: var(--ob-muted); font-weight: 400; font-variant-numeric: tabular-nums; }\r\n  #ob-booking .ob-cc-list li.ob-cc-sep { height: 1px; padding: 0; margin: 4px 6px; background: var(--ob-line); cursor: default; }\r\n  \/* Recap *\/\r\n  #ob-booking .ob-recap { border: 1px solid var(--ob-line); padding: 4px 18px; }\r\n  #ob-booking .ob-recap-row { display: flex; justify-content: space-between; gap: 16px; padding: 13px 0; border-bottom: 1px solid var(--ob-line); font-size: 14px; }\r\n  #ob-booking .ob-recap-row:last-child { border-bottom: none; }\r\n  #ob-booking .ob-recap-row span { font-family: var(--ob-ui); font-size: 12.5px; color: var(--ob-muted); flex-shrink: 0; padding-top: 2px; }\r\n  #ob-booking .ob-recap-row strong { color: var(--ob-ink); text-align: right; font-weight: 400; white-space: pre-line; }\r\n  #ob-booking .ob-notice { display: flex; gap: 12px; margin-top: 16px; padding: 14px 16px; background: var(--ob-soft); font-size: 13.5px; font-style: italic; line-height: 1.6; color: var(--ob-ink); }\r\n  #ob-booking .ob-notice svg { color: var(--ob-blue); margin-top: 2px; }\r\n  \/* Buttons \u2014 same style as obleu-mogador.com (square, uppercase, inverted on hover) *\/\r\n  #ob-booking .ob-actions { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 30px; padding-top: 22px; border-top: 1px solid var(--ob-line); }\r\n  #ob-booking .ob-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 18px 28px; border: 1px solid transparent; font-family: var(--ob-ui); font-size: 13px; line-height: 1; text-transform: uppercase; letter-spacing: 1px; text-decoration: none; transition: background-color .25s, color .25s, border-color .25s; }\r\n  #ob-booking .ob-btn-primary { background: var(--ob-blue); border-color: var(--ob-blue); color: #fff; }\r\n  #ob-booking .ob-btn-primary:hover:not(:disabled), #ob-booking .ob-btn-primary:focus-visible { background: #fff; color: var(--ob-blue); outline: none; }\r\n  #ob-booking .ob-btn-primary:disabled { background: #D6D4E4; border-color: #D6D4E4; color: #fff; }\r\n  #ob-booking .ob-btn-ghost { background: transparent; color: var(--ob-muted); padding-left: 4px; padding-right: 4px; }\r\n  #ob-booking .ob-btn-ghost:hover { color: var(--ob-blue); }\r\n  #ob-booking .ob-btn-wa { background: var(--ob-blue); border-color: var(--ob-blue); color: #fff; }\r\n  #ob-booking .ob-btn-wa:hover { background: #fff; color: var(--ob-blue); }\r\n  #ob-booking .ob-hidden { visibility: hidden; }\r\n  \/* Success *\/\r\n  #ob-booking .ob-success { text-align: center; padding: 22px 10px; }\r\n  #ob-booking .ob-success-title { font-family: var(--ob-script); font-size: 58px; color: var(--ob-blue); line-height: 1.1; margin: 0 0 10px; font-weight: 400; }\r\n  #ob-booking .ob-success .ob-p { max-width: 460px; margin-left: auto; margin-right: auto; }\r\n  #ob-booking .ob-success .ob-notice { max-width: 460px; margin: 0 auto 24px; text-align: left; }\r\n  #ob-booking .ob-success-btns { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; }\r\n  \/* Responsive (based on the widget's own width) *\/\r\n  @container obwrap (max-width: 860px) {\r\n    #ob-booking .ob-card { grid-template-columns: 1fr; }\r\n    #ob-booking .ob-side { padding: 18px 20px 20px; border-right: none; border-bottom: 1px solid var(--ob-line); }\r\n    #ob-booking .ob-side-top { display: flex; }\r\n    #ob-booking .ob-steps { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0; }\r\n    #ob-booking .ob-steps li { flex-direction: column; gap: 8px; padding: 0; text-align: center; font-size: 11.5px; }\r\n    #ob-booking .ob-steps li + li::before { left: calc(-50% + 18px); right: calc(50% + 18px); width: auto; top: 13px; height: 1px; }\r\n    #ob-booking .ob-dot { width: 28px; height: 28px; font-size: 12px; }\r\n    #ob-booking .ob-step-txt small { display: none; }\r\n    #ob-booking .ob-summary, #ob-booking .ob-hours { display: none; }\r\n    #ob-booking .ob-main { padding: 28px 22px; }\r\n  }\r\n  @container obwrap (max-width: 540px) {\r\n    #ob-booking .ob-steps li { font-size: 10.5px; }\r\n    #ob-booking .ob-main { padding: 24px 16px; }\r\n  }\r\n  @container obmain (max-width: 640px) {\r\n    #ob-booking .ob-datetime { grid-template-columns: minmax(0, 1fr); gap: 20px; }\r\n  }\r\n  @container obmain (max-width: 480px) {\r\n    #ob-booking .ob-form { grid-template-columns: minmax(0, 1fr); }\r\n    #ob-booking .ob-cal { padding: 12px; }\r\n    #ob-booking .ob-day { height: 38px; max-width: 38px; font-size: 13px; }\r\n    #ob-booking .ob-h { font-size: 22px; }\r\n    #ob-booking .ob-actions { flex-direction: column-reverse; align-items: stretch; }\r\n    #ob-booking .ob-recap-row { flex-direction: column; gap: 4px; }\r\n    #ob-booking .ob-recap-row strong { text-align: left; }\r\n  }\r\n  @media (max-width: 560px) { #ob-booking { padding: 40px 12px; } }\r\n  @media (prefers-reduced-motion: reduce) { #ob-booking * { animation: none !important; transition: none !important; } }\r\n<\/style>\r\n<section id=\"ob-booking\">\r\n  <div class=\"ob-wrap\">\r\n    <header class=\"ob-head\">\r\n      <span class=\"ob-eyebrow\">Restaurant O'Bleu Mogador \u00b7 Essaouira<\/span>\r\n      <h2 class=\"ob-title\">R\u00e9servez votre table<\/h2>\r\n      <p class=\"ob-sub\">Une table intime dans un riad de la m\u00e9dina, la cuisine de Provence et d'Essaouira du chef Serge Peuzin, Ma\u00eetre cuisinier de France.<\/p>\r\n      <div class=\"ob-rule\"><\/div>\r\n    <\/header>\r\n    <div class=\"ob-card\">\r\n      <aside class=\"ob-side\">\r\n        <div class=\"ob-side-top\"><span class=\"ob-step-pill\">\u00c9tape <b id=\"obStepNum\">1<\/b>\/4<\/span><\/div>\r\n        <ol class=\"ob-steps\" id=\"obSteps\"><\/ol>\r\n        <div class=\"ob-summary\">\r\n          <h4>Votre r\u00e9servation<\/h4>\r\n          <div class=\"ob-summary-row\">\r\n            <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"><path d=\"M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><path d=\"M23 21v-2a4 4 0 00-3-3.87M16 3.13a4 4 0 010 7.75\"\/><\/svg>\r\n            <span id=\"obSumWho\" class=\"ob-empty\">Nombre de convives<\/span>\r\n          <\/div>\r\n          <div class=\"ob-summary-row\">\r\n            <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\"\/><path d=\"M16 2v4M8 2v4M3 10h18\"\/><\/svg>\r\n            <span id=\"obSumWhen\" class=\"ob-empty\">Date et heure<\/span>\r\n          <\/div>\r\n          <div class=\"ob-summary-row\">\r\n            <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"><path d=\"M3 2v7c0 1.1.9 2 2 2h4a2 2 0 002-2V2M7 2v20M21 15V2a5 5 0 00-5 5v6c0 1.1.9 2 2 2h3zm0 0v7\"\/><\/svg>\r\n            <span>Menu de saison : vous choisirez \u00e0 table<\/span>\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"ob-hours\">D\u00eener du <b>lundi au samedi<\/b><br>de 19h \u00e0 22h \u00b7 ferm\u00e9 le dimanche<\/div>\r\n      <\/aside>\r\n      <div class=\"ob-main\">\r\n        <div class=\"ob-progress\"><span id=\"obBar\"><\/span><\/div>\r\n        <!-- Step 1 : table -->\r\n        <div class=\"ob-panel is-active\" data-step=\"1\">\r\n          <h3 class=\"ob-h\">Combien serez-vous ?<\/h3>\r\n          <p class=\"ob-p\">Le riad offre une salle intime : nous vous pr\u00e9parons la table qui vous ressemble.<\/p>\r\n          <div class=\"ob-chips ob-party\" id=\"obParty\">\r\n            <button type=\"button\" class=\"ob-chip\" data-p=\"adults\">Adultes uniquement<\/button>\r\n            <button type=\"button\" class=\"ob-chip\" data-p=\"family\">Adultes et enfants<\/button>\r\n          <\/div>\r\n          <div class=\"ob-counts\" id=\"obCounts\" style=\"display:none\">\r\n            <div class=\"ob-count\">\r\n              <span class=\"ob-count-name\">Adultes<\/span>\r\n              <span class=\"ob-ctrl\"><button type=\"button\" class=\"ob-round\" data-k=\"adults\" data-delta=\"-1\" aria-label=\"Un adulte de moins\">\u2212<\/button><b id=\"obAdults\">2<\/b><button type=\"button\" class=\"ob-round\" data-k=\"adults\" data-delta=\"1\" aria-label=\"Un adulte de plus\">+<\/button><\/span>\r\n            <\/div>\r\n            <div class=\"ob-count\" id=\"obKidsRow\">\r\n              <span class=\"ob-count-name\">Enfants<\/span>\r\n              <span class=\"ob-ctrl\"><button type=\"button\" class=\"ob-round\" data-k=\"kids\" data-delta=\"-1\" aria-label=\"Un enfant de moins\">\u2212<\/button><b id=\"obKids\">1<\/b><button type=\"button\" class=\"ob-round\" data-k=\"kids\" data-delta=\"1\" aria-label=\"Un enfant de plus\">+<\/button><\/span>\r\n            <\/div>\r\n          <\/div>\r\n          <p class=\"ob-hint\" id=\"obGroupHint\" style=\"display:none\">Pour un groupe de plus de 12 personnes ou une privatisation du riad, pr\u00e9cisez votre projet dans le message : nous vous recontactons.<\/p>\r\n          <span class=\"ob-label\">Besoin de place autour de la table ?<\/span>\r\n          <div class=\"ob-chips\" id=\"obNeeds\"><\/div>\r\n          <p class=\"ob-hint\">Indiquez-nous ce qui vous accompagne : nous vous r\u00e9servons une table facile d'acc\u00e8s, l\u00e0 o\u00f9 il y a de l'espace.<\/p>\r\n        <\/div>\r\n        <!-- Step 2 : date -->\r\n        <div class=\"ob-panel\" data-step=\"2\">\r\n          <h3 class=\"ob-h\">Quel soir ?<\/h3>\r\n          <p class=\"ob-p\">Service du d\u00eener du lundi au samedi, de 19h \u00e0 22h.<\/p>\r\n          <div class=\"ob-datetime\">\r\n            <div class=\"ob-cal\">\r\n              <div class=\"ob-cal-head\">\r\n                <button type=\"button\" class=\"ob-nav\" id=\"obPrev\" aria-label=\"Mois pr\u00e9c\u00e9dent\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M15 18l-6-6 6-6\"\/><\/svg><\/button>\r\n                <strong id=\"obMonth\"><\/strong>\r\n                <button type=\"button\" class=\"ob-nav\" id=\"obNext\" aria-label=\"Mois suivant\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M9 18l6-6-6-6\"\/><\/svg><\/button>\r\n              <\/div>\r\n              <div class=\"ob-grid\" id=\"obGrid\"><\/div>\r\n              <div class=\"ob-legend\">Le restaurant est ferm\u00e9 le dimanche.<\/div>\r\n            <\/div>\r\n            <div class=\"ob-right\" id=\"obRight\"><\/div>\r\n          <\/div>\r\n        <\/div>\r\n        <!-- Step 3 : contact -->\r\n        <div class=\"ob-panel\" data-step=\"3\">\r\n          <h3 class=\"ob-h\">Vos coordonn\u00e9es<\/h3>\r\n          <p class=\"ob-p\">Nous vous confirmons votre table sur WhatsApp.<\/p>\r\n          <form class=\"ob-form\" id=\"obForm\" novalidate>\r\n            <div class=\"ob-field\">\r\n              <label for=\"obName\">Nom et pr\u00e9nom <em>*<\/em><\/label>\r\n              <input id=\"obName\" type=\"text\" placeholder=\"Votre nom\" autocomplete=\"name\">\r\n              <span class=\"ob-err\">Veuillez indiquer votre nom.<\/span>\r\n            <\/div>\r\n            <div class=\"ob-field\">\r\n              <label for=\"obPhone\">Num\u00e9ro WhatsApp <em>*<\/em><\/label>\r\n              <div class=\"ob-phone\">\r\n                <button type=\"button\" class=\"ob-cc\" id=\"obCc\" aria-haspopup=\"listbox\" aria-expanded=\"false\" aria-label=\"Indicatif pays\"><\/button>\r\n                <input id=\"obPhone\" type=\"tel\" placeholder=\"6 12 34 56 78\" autocomplete=\"tel-national\" inputmode=\"tel\">\r\n                <div class=\"ob-cc-menu\" id=\"obCcMenu\">\r\n                  <input type=\"text\" id=\"obCcSearch\" placeholder=\"Rechercher un pays\u2026\" autocomplete=\"off\">\r\n                  <ul class=\"ob-cc-list\" id=\"obCcList\" role=\"listbox\"><\/ul>\r\n                <\/div>\r\n              <\/div>\r\n              <span class=\"ob-err\">Num\u00e9ro invalide.<\/span>\r\n            <\/div>\r\n            <div class=\"ob-field ob-full\">\r\n              <span class=\"ob-flabel\">L'occasion<\/span>\r\n              <div class=\"ob-chips\" id=\"obOccasions\"><\/div>\r\n            <\/div>\r\n            <div class=\"ob-field ob-full\">\r\n              <label for=\"obDiet\">Allergies ou r\u00e9gime alimentaire<\/label>\r\n              <input id=\"obDiet\" type=\"text\" placeholder=\"Fruits de mer, gluten, v\u00e9g\u00e9tarien\u2026\">\r\n            <\/div>\r\n            <div class=\"ob-field ob-full\">\r\n              <label for=\"obMsg\">Une attention particuli\u00e8re ?<\/label>\r\n              <textarea id=\"obMsg\" placeholder=\"Anniversaire, table au calme, g\u00e2teau, arriv\u00e9e tardive\u2026\"><\/textarea>\r\n            <\/div>\r\n            <input type=\"text\" id=\"obWebsite\" tabindex=\"-1\" autocomplete=\"off\" aria-hidden=\"true\" style=\"position:absolute;left:-9999px;width:1px;height:1px;opacity:0\">\r\n          <\/form>\r\n        <\/div>\r\n        <!-- Step 4 : recap -->\r\n        <div class=\"ob-panel\" data-step=\"4\">\r\n          <h3 class=\"ob-h\">Votre r\u00e9servation<\/h3>\r\n          <p class=\"ob-p\">V\u00e9rifiez les d\u00e9tails puis envoyez votre demande sur WhatsApp.<\/p>\r\n          <div class=\"ob-recap\" id=\"obRecap\"><\/div>\r\n          <div class=\"ob-notice\">\r\n            <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"><path d=\"M3 2v7c0 1.1.9 2 2 2h4a2 2 0 002-2V2M7 2v20M21 15V2a5 5 0 00-5 5v6c0 1.1.9 2 2 2h3zm0 0v7\"\/><\/svg>\r\n            <span>Notre menu change chaque saison : vous choisirez \u00e0 table.<\/span>\r\n          <\/div>\r\n          <div class=\"ob-notice\">\r\n            <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"><path d=\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0118 0z\"\/><circle cx=\"12\" cy=\"10\" r=\"3\"\/><\/svg>\r\n            <span>O'Bleu se trouve au 23 rue Bouchentouf, dans la m\u00e9dina d'Essaouira. C'est un riad discret : il suffit de sonner pour entrer.<\/span>\r\n          <\/div>\r\n        <\/div>\r\n        <!-- Success -->\r\n        <div class=\"ob-panel\" data-step=\"5\">\r\n          <div class=\"ob-success\">\r\n            <h3 class=\"ob-success-title\" id=\"obSuccessTitle\">Merci !<\/h3>\r\n            <p class=\"ob-p\" id=\"obSuccessText\"><\/p>\r\n            <div class=\"ob-notice\">\r\n              <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><path d=\"M12 8v4M12 16h.01\"\/><\/svg>\r\n              <span>Un emp\u00eachement ou un retard ? Pr\u00e9venez-nous au +212 524 783 133.<\/span>\r\n            <\/div>\r\n            <div class=\"ob-success-btns\">\r\n              <a class=\"ob-btn ob-btn-wa\" id=\"obWa\" href=\"#\" target=\"_blank\" rel=\"noopener\">\r\n                <svg width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M17.47 14.38c-.3-.15-1.76-.87-2.03-.97-.27-.1-.47-.15-.67.15-.2.3-.77.97-.94 1.17-.17.2-.35.22-.65.07-.3-.15-1.26-.46-2.4-1.48-.89-.79-1.49-1.77-1.66-2.07-.17-.3-.02-.46.13-.61.13-.13.3-.35.45-.52.15-.17.2-.3.3-.5.1-.2.05-.37-.02-.52-.08-.15-.67-1.62-.92-2.22-.24-.58-.49-.5-.67-.51h-.57c-.2 0-.52.07-.79.37-.27.3-1.04 1.02-1.04 2.48s1.07 2.88 1.21 3.08c.15.2 2.1 3.2 5.08 4.49.71.31 1.26.49 1.69.63.71.23 1.36.2 1.87.12.57-.09 1.76-.72 2.01-1.41.25-.7.25-1.29.17-1.41-.07-.13-.27-.2-.57-.35zM12.04 21.5h-.01a9.4 9.4 0 01-4.8-1.32l-.34-.2-3.57.94.95-3.48-.22-.36a9.430 9.430 0 01-1.45-5.03c0-5.2 4.24-9.44 9.45-9.44a9.4 9.4 0 016.68 2.77 9.38 9.38 0 012.76 6.68c0 5.21-4.24 9.44-9.45 9.44zm8.04-17.48A11.32 11.32 0 0012.04.7C5.77.7.67 5.8.67 12.06c0 2 .52 3.96 1.52 5.68L.57 23.7l6.1-1.6a11.33 11.33 0 005.37 1.37h.01c6.26 0 11.36-5.1 11.37-11.37 0-3.03-1.18-5.890-3.34-8.04z\"\/><\/svg>\r\n                Ouvrir WhatsApp\r\n              <\/a>\r\n              <button type=\"button\" class=\"ob-btn ob-btn-ghost\" id=\"obRestart\">Nouvelle r\u00e9servation<\/button>\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"ob-actions\" id=\"obActions\">\r\n          <button type=\"button\" class=\"ob-btn ob-btn-ghost ob-hidden\" id=\"obBack\"><svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M15 18l-6-6 6-6\"\/><\/svg>Retour<\/button>\r\n          <button type=\"button\" class=\"ob-btn ob-btn-primary\" id=\"obNextBtn\" disabled><span id=\"obNextLabel\">Continuer<\/span><svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M5 12h14M12 5l7 7-7 7\"\/><\/svg><\/button>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n<script>\r\n(function () {\r\n  \/* ===================== CONFIG ===================== *\/\r\n  var CONFIG = {\r\n    whatsapp: \"212628365302\",                    \/\/ WhatsApp du restaurant (sans +) : re\u00e7oit les demandes de r\u00e9servation\r\n    \/\/ Cr\u00e9neaux d'arriv\u00e9e par jour (0 = dimanche \u2026 6 = samedi). [] = ferm\u00e9.\r\n    slots: { 0: [], 1: [\"19:00\",\"19:30\",\"20:00\",\"20:30\",\"21:00\"], 2: [\"19:00\",\"19:30\",\"20:00\",\"20:30\",\"21:00\"],\r\n             3: [\"19:00\",\"19:30\",\"20:00\",\"20:30\",\"21:00\"], 4: [\"19:00\",\"19:30\",\"20:00\",\"20:30\",\"21:00\"],\r\n             5: [\"19:00\",\"19:30\",\"20:00\",\"20:30\",\"21:00\"], 6: [\"19:00\",\"19:30\",\"20:00\",\"20:30\",\"21:00\"] },\r\n    closedDates: [],                            \/\/ ex : [\"2026-12-31\"] \u2014 jours de fermeture exceptionnelle\r\n    fullSlots: {},                              \/\/ ex : { \"2026-10-24\": [\"20:00\",\"20:30\"] } \u2014 cr\u00e9neaux complets\r\n    minNoticeMinutes: 90,                       \/\/ d\u00e9lai minimum avant l'arriv\u00e9e\r\n    maxDaysAhead: 120,\r\n    maxGuests: 30\r\n  };\r\n  var OCCASIONS = [\"D\u00eener\", \"Anniversaire\", \"D\u00eener romantique\", \"Demande en mariage\", \"Repas d'affaires\", \"Entre amis\"];\r\n  var NEEDS = [\"Poussette\", \"Fauteuil roulant\"];\r\n  var STEPS = [\"Table\", \"Date\", \"Contact\", \"Envoi\"];\r\n  var MONTHS = [\"janvier\",\"f\u00e9vrier\",\"mars\",\"avril\",\"mai\",\"juin\",\"juillet\",\"ao\u00fbt\",\"septembre\",\"octobre\",\"novembre\",\"d\u00e9cembre\"];\r\n  var DAYS = [\"dimanche\",\"lundi\",\"mardi\",\"mercredi\",\"jeudi\",\"vendredi\",\"samedi\"];\r\n  var CHECK = '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3.5\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg>';\r\n  \/* ===================== STATE ===================== *\/\r\n  var today = new Date(); today.setHours(0, 0, 0, 0);\r\n  var maxDate = new Date(today); maxDate.setDate(maxDate.getDate() + CONFIG.maxDaysAhead);\r\n  var state;\r\n  function resetState() {\r\n    state = { step: 1, party: null, adults: 2, kids: 1, needs: [], occasion: OCCASIONS[0], date: null, time: null,\r\n              view: new Date(today.getFullYear(), today.getMonth(), 1) };\r\n  }\r\n  resetState();\r\n  var $ = function (id) { return document.getElementById(id); };\r\n  function pad(n) { return (n < 10 ? \"0\" : \"\") + n; }\r\n  function key(d) { return d.getFullYear() + \"-\" + pad(d.getMonth() + 1) + \"-\" + pad(d.getDate()); }\r\n  function fmt(d) { return DAYS[d.getDay()] + \" \" + d.getDate() + \" \" + MONTHS[d.getMonth()] + \" \" + d.getFullYear(); }\r\n  function esc(s) { return String(s).replace(\/[&<>\"']\/g, function (c) { return { \"&\": \"&amp;\", \"<\": \"&lt;\", \">\": \"&gt;\", '\"': \"&quot;\", \"'\": \"&#39;\" }[c]; }); }\r\n  function plural(n, word) { return n + \" \" + word + (n > 1 ? \"s\" : \"\"); }\r\n  function kidsCount() { return state.party === \"family\" ? state.kids : 0; }\r\n  function totalGuests() { return state.party ? state.adults + kidsCount() : 0; }\r\n  function guestsLabel() {\r\n    if (!state.party) return \"\";\r\n    return plural(state.adults, \"adulte\") + (kidsCount() ? \" et \" + plural(state.kids, \"enfant\") : \"\");\r\n  }\r\n  \/* ===================== STEPPER ===================== *\/\r\n  $(\"obSteps\").innerHTML = STEPS.map(function (s, i) {\r\n    return '<li><span class=\"ob-dot\"><b>' + (i + 1) + '<\/b>' + CHECK + '<\/span><span class=\"ob-step-txt\"><small>\u00c9tape ' + (i + 1) + '<\/small>' + s + '<\/span><\/li>';\r\n  }).join(\"\");\r\n  \/* ===================== STEP 1 : TABLE ===================== *\/\r\n  function renderParty() {\r\n    var full = totalGuests() >= CONFIG.maxGuests;\r\n    document.querySelectorAll(\"#obParty .ob-chip\").forEach(function (x) { x.classList.toggle(\"is-selected\", x.dataset.p === state.party); });\r\n    $(\"obCounts\").style.display = state.party ? \"\" : \"none\";\r\n    $(\"obKidsRow\").style.display = state.party === \"family\" ? \"\" : \"none\";\r\n    $(\"obAdults\").textContent = state.adults;\r\n    $(\"obKids\").textContent = state.kids;\r\n    $(\"obCounts\").querySelectorAll(\".ob-round\").forEach(function (b) {\r\n      b.disabled = +b.dataset.delta < 0 ? state[b.dataset.k] <= 1 : full;\r\n    });\r\n    $(\"obGroupHint\").style.display = totalGuests() > 12 ? \"\" : \"none\";\r\n    $(\"obNeeds\").innerHTML = NEEDS.map(function (n) {\r\n      return '<button type=\"button\" class=\"ob-chip' + (state.needs.indexOf(n) > -1 ? \" is-selected\" : \"\") + '\" data-n=\"' + esc(n) + '\">' + n + '<\/button>';\r\n    }).join(\"\");\r\n  }\r\n  $(\"obParty\").addEventListener(\"click\", function (e) {\r\n    var b = e.target.closest(\".ob-chip\"); if (!b) return;\r\n    state.party = b.dataset.p;\r\n    if (totalGuests() > CONFIG.maxGuests) state.kids = Math.max(1, CONFIG.maxGuests - state.adults);\r\n    renderParty(); update();\r\n  });\r\n  $(\"obCounts\").addEventListener(\"click\", function (e) {\r\n    var b = e.target.closest(\".ob-round\"); if (!b || b.disabled) return;\r\n    state[b.dataset.k] = Math.max(1, state[b.dataset.k] + (+b.dataset.delta));\r\n    renderParty(); update();\r\n  });\r\n  $(\"obNeeds\").addEventListener(\"click\", function (e) {\r\n    var b = e.target.closest(\".ob-chip\"); if (!b) return;\r\n    var i = state.needs.indexOf(b.dataset.n);\r\n    if (i > -1) state.needs.splice(i, 1); else state.needs.push(b.dataset.n);\r\n    b.classList.toggle(\"is-selected\", i === -1); update();\r\n  });\r\n  $(\"obOccasions\").innerHTML = OCCASIONS.map(function (o) {\r\n    return '<button type=\"button\" class=\"ob-chip' + (o === state.occasion ? \" is-selected\" : \"\") + '\" data-o=\"' + esc(o) + '\">' + o + '<\/button>';\r\n  }).join(\"\");\r\n  $(\"obOccasions\").addEventListener(\"click\", function (e) {\r\n    var b = e.target.closest(\".ob-chip\"); if (!b) return;\r\n    state.occasion = b.dataset.o;\r\n    document.querySelectorAll(\"#obOccasions .ob-chip\").forEach(function (x) { x.classList.toggle(\"is-selected\", x === b); });\r\n    update();\r\n  });\r\n  \/* ===================== STEP 2 : CALENDAR ===================== *\/\r\n  function slotsFor(date) {\r\n    var list = CONFIG.slots[date.getDay()] || [], full = CONFIG.fullSlots[key(date)] || [];\r\n    var minStart = new Date(Date.now() + CONFIG.minNoticeMinutes * 60000);\r\n    if (CONFIG.closedDates.indexOf(key(date)) > -1) return [];\r\n    return list.map(function (t) {\r\n      var s = new Date(date); s.setHours(+t.slice(0, 2), +t.slice(3), 0, 0);\r\n      return { label: t, disabled: full.indexOf(t) > -1 || s < minStart };\r\n    });\r\n  }\r\n  function renderCalendar() {\r\n    var v = state.view, y = v.getFullYear(), m = v.getMonth();\r\n    $(\"obMonth\").textContent = MONTHS[m] + \" \" + y;\r\n    $(\"obPrev\").disabled = y === today.getFullYear() && m === today.getMonth();\r\n    $(\"obNext\").disabled = new Date(y, m + 1, 1) > maxDate;\r\n    var html = [\"lun\",\"mar\",\"mer\",\"jeu\",\"ven\",\"sam\",\"dim\"].map(function (d) { return '<div class=\"ob-dow\">' + d + '<\/div>'; }).join(\"\");\r\n    var offset = (new Date(y, m, 1).getDay() + 6) % 7;\r\n    for (var i = 0; i < offset; i++) html += \"<div><\/div>\";\r\n    var days = new Date(y, m + 1, 0).getDate();\r\n    for (var d = 1; d <= days; d++) {\r\n      var date = new Date(y, m, d), cls = \"ob-day\";\r\n      var slots = slotsFor(date);\r\n      var disabled = date < today || date > maxDate || !slots.length || slots.every(function (s) { return s.disabled; });\r\n      if (date.getTime() === today.getTime()) cls += \" is-today\";\r\n      if (state.date && date.getTime() === state.date.getTime()) cls += \" is-selected\";\r\n      html += '<button type=\"button\" class=\"' + cls + '\" data-d=\"' + d + '\"' + (disabled ? \" disabled\" : \"\") + '>' + d + '<\/button>';\r\n    }\r\n    $(\"obGrid\").innerHTML = html;\r\n  }\r\n  function renderRight() {\r\n    if (!state.date) { $(\"obRight\").innerHTML = '<div class=\"ob-placeholder\">Choisissez une soir\u00e9e pour voir les heures d\\'arriv\u00e9e disponibles.<\/div>'; return; }\r\n    $(\"obRight\").innerHTML = '<h5>Heure d\\'arriv\u00e9e<span>' + fmt(state.date) + '<\/span><\/h5><div class=\"ob-slots\">' + slotsFor(state.date).map(function (s) {\r\n      return '<button type=\"button\" class=\"ob-slot' + (state.time === s.label ? \" is-selected\" : \"\") + '\" data-t=\"' + s.label + '\"' + (s.disabled ? \" disabled\" : \"\") + '>' + s.label.replace(\":\", \"h\") + '<\/button>';\r\n    }).join(\"\") + '<\/div><p class=\"ob-hint\">Nous gardons votre table 15 minutes apr\u00e8s l\\'heure pr\u00e9vue.<\/p>';\r\n  }\r\n  $(\"obPrev\").addEventListener(\"click\", function () { state.view = new Date(state.view.getFullYear(), state.view.getMonth() - 1, 1); renderCalendar(); });\r\n  $(\"obNext\").addEventListener(\"click\", function () { state.view = new Date(state.view.getFullYear(), state.view.getMonth() + 1, 1); renderCalendar(); });\r\n  $(\"obGrid\").addEventListener(\"click\", function (e) {\r\n    var b = e.target.closest(\".ob-day\"); if (!b || b.disabled) return;\r\n    state.date = new Date(state.view.getFullYear(), state.view.getMonth(), +b.dataset.d); state.time = null;\r\n    renderCalendar(); renderRight(); update();\r\n  });\r\n  $(\"obRight\").addEventListener(\"click\", function (e) {\r\n    var b = e.target.closest(\".ob-slot\"); if (!b || b.disabled) return;\r\n    state.time = b.dataset.t; renderRight(); update();\r\n  });\r\n  \/* ===================== STEP 3 : FORM ===================== *\/\r\n  \/* Phone country codes: [ISO, name, code]. The first ones are shown on top of the list. *\/\r\n  var CC_TOP = 8;\r\n  var COUNTRIES = [\r\n    [\"fr\",\"France\",\"33\"],[\"ma\",\"Maroc\",\"212\"],[\"be\",\"Belgique\",\"32\"],[\"ch\",\"Suisse\",\"41\"],[\"ca\",\"Canada\",\"1\"],\r\n    [\"es\",\"Espagne\",\"34\"],[\"de\",\"Allemagne\",\"49\"],[\"gb\",\"Royaume-Uni\",\"44\"],\r\n    [\"za\",\"Afrique du Sud\",\"27\"],[\"dz\",\"Alg\u00e9rie\",\"213\"],[\"sa\",\"Arabie saoudite\",\"966\"],[\"ar\",\"Argentine\",\"54\"],\r\n    [\"au\",\"Australie\",\"61\"],[\"at\",\"Autriche\",\"43\"],[\"bj\",\"B\u00e9nin\",\"229\"],[\"br\",\"Br\u00e9sil\",\"55\"],[\"bf\",\"Burkina Faso\",\"226\"],\r\n    [\"cm\",\"Cameroun\",\"237\"],[\"cl\",\"Chili\",\"56\"],[\"cn\",\"Chine\",\"86\"],[\"co\",\"Colombie\",\"57\"],[\"ci\",\"C\u00f4te d'Ivoire\",\"225\"],\r\n    [\"hr\",\"Croatie\",\"385\"],[\"dk\",\"Danemark\",\"45\"],[\"eg\",\"\u00c9gypte\",\"20\"],[\"ae\",\"\u00c9mirats arabes unis\",\"971\"],\r\n    [\"us\",\"\u00c9tats-Unis\",\"1\"],[\"fi\",\"Finlande\",\"358\"],[\"ga\",\"Gabon\",\"241\"],[\"gr\",\"Gr\u00e8ce\",\"30\"],[\"gp\",\"Guadeloupe\",\"590\"],\r\n    [\"gn\",\"Guin\u00e9e\",\"224\"],[\"hu\",\"Hongrie\",\"36\"],[\"in\",\"Inde\",\"91\"],[\"ie\",\"Irlande\",\"353\"],[\"is\",\"Islande\",\"354\"],\r\n    [\"il\",\"Isra\u00ebl\",\"972\"],[\"it\",\"Italie\",\"39\"],[\"jp\",\"Japon\",\"81\"],[\"jo\",\"Jordanie\",\"962\"],[\"lb\",\"Liban\",\"961\"],\r\n    [\"lu\",\"Luxembourg\",\"352\"],[\"mg\",\"Madagascar\",\"261\"],[\"ml\",\"Mali\",\"223\"],[\"mt\",\"Malte\",\"356\"],[\"mq\",\"Martinique\",\"596\"],\r\n    [\"mu\",\"Maurice\",\"230\"],[\"mr\",\"Mauritanie\",\"222\"],[\"mx\",\"Mexique\",\"52\"],[\"mc\",\"Monaco\",\"377\"],[\"nc\",\"Nouvelle-Cal\u00e9donie\",\"687\"],\r\n    [\"no\",\"Norv\u00e8ge\",\"47\"],[\"nz\",\"Nouvelle-Z\u00e9lande\",\"64\"],[\"nl\",\"Pays-Bas\",\"31\"],[\"pl\",\"Pologne\",\"48\"],[\"pf\",\"Polyn\u00e9sie fran\u00e7aise\",\"689\"],\r\n    [\"pt\",\"Portugal\",\"351\"],[\"qa\",\"Qatar\",\"974\"],[\"re\",\"La R\u00e9union\",\"262\"],[\"ro\",\"Roumanie\",\"40\"],[\"ru\",\"Russie\",\"7\"],\r\n    [\"sn\",\"S\u00e9n\u00e9gal\",\"221\"],[\"sg\",\"Singapour\",\"65\"],[\"se\",\"Su\u00e8de\",\"46\"],[\"cz\",\"Tch\u00e9quie\",\"420\"],[\"tg\",\"Togo\",\"228\"],\r\n    [\"tn\",\"Tunisie\",\"216\"],[\"tr\",\"Turquie\",\"90\"],[\"ua\",\"Ukraine\",\"380\"]\r\n  ];\r\n  var cc = COUNTRIES[0];\r\n  function flag(iso) { return '<img decoding=\"async\" class=\"ob-flag\" src=\"https:\/\/flagcdn.com\/w40\/' + iso + '.png\" alt=\"\" loading=\"lazy\">'; }\r\n  function norm(s) { return s.toLowerCase().normalize(\"NFD\").replace(\/[\u0300-\u036f]\/g, \"\"); }\r\n  function setCc(c) {\r\n    cc = c;\r\n    $(\"obCc\").innerHTML = flag(c[0]) + \"+\" + c[2] + '<svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9l6 6 6-6\"\/><\/svg>';\r\n    $(\"obCc\").setAttribute(\"aria-label\", \"Indicatif pays : \" + c[1] + \" +\" + c[2]);\r\n  }\r\n  function renderCcList(q) {\r\n    q = norm(q || \"\").replace(\/^\\+\/, \"\");\r\n    var list = COUNTRIES.filter(function (c) { return !q || norm(c[1]).indexOf(q) > -1 || c[2].indexOf(q) === 0; });\r\n    $(\"obCcList\").innerHTML = list.map(function (c, i) {\r\n      return (!q && i === CC_TOP ? '<li class=\"ob-cc-sep\" aria-hidden=\"true\"><\/li>' : \"\") +\r\n        '<li role=\"option\" data-iso=\"' + c[0] + '\"' + (c === cc ? ' class=\"is-selected\" aria-selected=\"true\"' : \"\") + '>' + flag(c[0]) + '<span>' + c[1] + '<\/span><b>+' + c[2] + '<\/b><\/li>';\r\n    }).join(\"\") || '<li style=\"cursor:default;color:var(--ob-muted)\">Aucun pays trouv\u00e9<\/li>';\r\n  }\r\n  function toggleCc(open) {\r\n    $(\"obCcMenu\").classList.toggle(\"is-open\", open);\r\n    $(\"obCc\").setAttribute(\"aria-expanded\", open);\r\n    if (open) { $(\"obCcSearch\").value = \"\"; renderCcList(\"\"); $(\"obCcSearch\").focus(); }\r\n  }\r\n  $(\"obCc\").addEventListener(\"click\", function () { toggleCc(!$(\"obCcMenu\").classList.contains(\"is-open\")); });\r\n  $(\"obCcSearch\").addEventListener(\"input\", function () { renderCcList(this.value); });\r\n  $(\"obCcSearch\").addEventListener(\"keydown\", function (e) {\r\n    if (e.key === \"Escape\") { toggleCc(false); $(\"obCc\").focus(); }\r\n    if (e.key === \"Enter\") { e.preventDefault(); var li = $(\"obCcList\").querySelector(\"li[data-iso]\"); if (li) li.click(); }\r\n  });\r\n  $(\"obCcList\").addEventListener(\"click\", function (e) {\r\n    var li = e.target.closest(\"li[data-iso]\"); if (!li) return;\r\n    setCc(COUNTRIES.filter(function (c) { return c[0] === li.dataset.iso; })[0]);\r\n    toggleCc(false); $(\"obPhone\").focus();\r\n  });\r\n  document.addEventListener(\"click\", function (e) { if (!e.target.closest(\".ob-phone\")) toggleCc(false); });\r\n  setCc(cc);\r\n  function phoneDigits() { return $(\"obPhone\").value.replace(\/\\D\/g, \"\").replace(\/^0+\/, \"\"); }\r\n  function fullPhone() { return \"+\" + cc[2] + \" \" + $(\"obPhone\").value.trim().replace(\/^0+\/, \"\"); }\r\n\r\n  var validators = {\r\n    obName: function (v) { return v.trim().length >= 2; },\r\n    obPhone: function (v) { var n = phoneDigits().length; return \/^[\\d\\s.()-]+$\/.test(v.trim()) && n >= 6 && n <= 13; }\r\n  };\r\n  Object.keys(validators).forEach(function (id) { $(id).addEventListener(\"input\", function () { $(id).closest(\".ob-field\").classList.remove(\"has-error\"); }); });\r\n  function validateForm() {\r\n    var ok = true;\r\n    Object.keys(validators).forEach(function (id) {\r\n      var valid = validators[id]($(id).value); if (!valid) ok = false;\r\n      $(id).closest(\".ob-field\").classList.toggle(\"has-error\", !valid);\r\n    });\r\n    return ok;\r\n  }\r\n  \/* ===================== SUMMARY \/ LINES ===================== *\/\r\n  function whenLabel() { return state.date ? fmt(state.date) + (state.time ? \" \u00e0 \" + state.time.replace(\":\", \"h\") : \"\") : \"\"; }\r\n  function lines() {\r\n    var L = [[\"Convives\", guestsLabel()]];\r\n    if (state.needs.length) L.push([\"Besoin de place\", state.needs.join(\", \")]);\r\n    L.push([\"Date\", whenLabel()], [\"Occasion\", state.occasion]);\r\n    L.push([\"Nom\", $(\"obName\").value.trim()], [\"WhatsApp\", fullPhone()]);\r\n    if ($(\"obDiet\").value.trim()) L.push([\"Allergies \/ r\u00e9gime\", $(\"obDiet\").value.trim()]);\r\n    if ($(\"obMsg\").value.trim()) L.push([\"Message\", $(\"obMsg\").value.trim()]);\r\n    return L;\r\n  }\r\n  function renderRecap() {\r\n    $(\"obRecap\").innerHTML = lines().map(function (r) { return '<div class=\"ob-recap-row\"><span>' + esc(r[0]) + '<\/span><strong>' + esc(r[1]) + '<\/strong><\/div>'; }).join(\"\");\r\n  }\r\n  \/* ===================== FLOW ===================== *\/\r\n  function canContinue() {\r\n    if (state.step === 1) return !!state.party;\r\n    if (state.step === 2) return !!(state.date && state.time);\r\n    return true;\r\n  }\r\n  function setSum(id, val, empty) { var el = $(id); el.textContent = val || empty; el.classList.toggle(\"ob-empty\", !val); }\r\n  function update() {\r\n    setSum(\"obSumWho\", guestsLabel() + (state.party && state.needs.length ? \" \u00b7 \" + state.needs.join(\", \").toLowerCase() : \"\"), \"Nombre de convives\");\r\n    setSum(\"obSumWhen\", whenLabel(), \"Date et heure\");\r\n    $(\"obNextBtn\").disabled = !canContinue();\r\n  }\r\n  function goTo(step) {\r\n    state.step = step;\r\n    document.querySelectorAll(\"#ob-booking .ob-panel\").forEach(function (p) { p.classList.toggle(\"is-active\", +p.dataset.step === step); });\r\n    document.querySelectorAll(\"#obSteps li\").forEach(function (li, i) { li.classList.toggle(\"is-active\", i + 1 === step); li.classList.toggle(\"is-done\", i + 1 < step); });\r\n    $(\"obBar\").style.width = Math.min(step, 4) * 25 + \"%\";\r\n    $(\"obStepNum\").textContent = Math.min(step, 4);\r\n    $(\"obBack\").classList.toggle(\"ob-hidden\", step === 1);\r\n    $(\"obActions\").style.display = step === 5 ? \"none\" : \"\";\r\n    $(\"obNextLabel\").textContent = step === 4 ? \"Envoyer sur WhatsApp\" : \"Continuer\";\r\n    if (step === 1) renderParty();\r\n    if (step === 2) { renderCalendar(); renderRight(); }\r\n    if (step === 4) renderRecap();\r\n    update();\r\n    var top = $(\"ob-booking\").getBoundingClientRect().top;\r\n    if (top < 0) window.scrollBy({ top: top + 20, behavior: \"smooth\" });\r\n  }\r\n  \/* La demande part sur le WhatsApp du restaurant, pr\u00e9-remplie : le client n'a plus qu'\u00e0 appuyer sur Envoyer. *\/\r\n  function submit() {\r\n    if ($(\"obWebsite\").value) return; \/\/ anti-spam\r\n    var text = \"Bonjour O'Bleu Mogador, je souhaite r\u00e9server une table :\\n\\n\" + lines().map(function (r) { return \"\u2022 \" + r[0] + \" : \" + r[1].replace(\/\\n\/g, \", \"); }).join(\"\\n\");\r\n    var url = \"https:\/\/wa.me\/\" + CONFIG.whatsapp + \"?text=\" + encodeURIComponent(text);\r\n    $(\"obWa\").href = url;\r\n    window.open(url, \"_blank\", \"noopener\");\r\n    $(\"obSuccessTitle\").textContent = \"Merci \" + $(\"obName\").value.trim().split(\" \")[0] + \" !\";\r\n    $(\"obSuccessText\").textContent = \"Votre demande pour \" + guestsLabel() + \", \" + whenLabel() + \", est pr\u00eate dans WhatsApp : appuyez sur Envoyer pour nous la transmettre. Nous vous confirmons votre table tr\u00e8s vite sur WhatsApp.\";\r\n    goTo(5);\r\n  }\r\n  $(\"obNextBtn\").addEventListener(\"click\", function () {\r\n    if (state.step === 3 && !validateForm()) return;\r\n    if (state.step === 4) return submit();\r\n    goTo(state.step + 1);\r\n  });\r\n  $(\"obBack\").addEventListener(\"click\", function () { if (state.step > 1) goTo(state.step - 1); });\r\n  $(\"obRestart\").addEventListener(\"click\", function () {\r\n    resetState(); $(\"obForm\").reset(); setCc(COUNTRIES[0]);\r\n    document.querySelectorAll(\"#obOccasions .ob-chip\").forEach(function (x) { x.classList.toggle(\"is-selected\", x.dataset.o === state.occasion); });\r\n    goTo(1);\r\n  });\r\n  goTo(1);\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\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=\"ob-is-breaking-bad elementor-section elementor-top-section elementor-element elementor-element-729287b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"729287b\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;_ob_bbad_use_it&quot;:&quot;yes&quot;,&quot;_ob_bbad_sssic_use&quot;:&quot;no&quot;,&quot;_ob_glider_is_slider&quot;:&quot;no&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-cd3d197\" data-id=\"cd3d197\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;_ob_bbad_is_stalker&quot;:&quot;no&quot;,&quot;_ob_teleporter_use&quot;:false,&quot;_ob_column_hoveranimator&quot;:&quot;no&quot;,&quot;_ob_column_has_pseudo&quot;:&quot;no&quot;}\">\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-dfc2e3c ob-harakiri-inherit ob-has-background-overlay elementor-widget elementor-widget-heading\" data-id=\"dfc2e3c\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_ob_use_harakiri&quot;:&quot;yes&quot;,&quot;_ob_harakiri_writing_mode&quot;:&quot;inherit&quot;,&quot;_ob_harakiri_text_clip&quot;:&quot;none&quot;,&quot;_ob_perspektive_use&quot;:&quot;no&quot;,&quot;_ob_poopart_use&quot;:&quot;yes&quot;,&quot;_ob_shadough_use&quot;:&quot;no&quot;,&quot;_ob_allow_hoveranimator&quot;:&quot;no&quot;,&quot;_ob_widget_stalker_use&quot;:&quot;no&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">+212 524 783 133<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5b28d94 ob-has-background-overlay elementor-widget elementor-widget-icon-box\" data-id=\"5b28d94\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_ob_perspektive_use&quot;:&quot;no&quot;,&quot;_ob_poopart_use&quot;:&quot;yes&quot;,&quot;_ob_shadough_use&quot;:&quot;no&quot;,&quot;_ob_allow_hoveranimator&quot;:&quot;no&quot;,&quot;_ob_widget_stalker_use&quot;:&quot;no&quot;}\" data-widget_type=\"icon-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h4 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\tAdresse\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h4>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\t23 rues bouchentouf Essaouira (M\u00e9dina)\n\n\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-60cac8c ob-has-background-overlay elementor-widget elementor-widget-icon-box\" data-id=\"60cac8c\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_ob_perspektive_use&quot;:&quot;no&quot;,&quot;_ob_poopart_use&quot;:&quot;yes&quot;,&quot;_ob_shadough_use&quot;:&quot;no&quot;,&quot;_ob_allow_hoveranimator&quot;:&quot;no&quot;,&quot;_ob_widget_stalker_use&quot;:&quot;no&quot;}\" data-widget_type=\"icon-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h4 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\tE-mail\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h4>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\tcontact@obleu-mogador.com\n\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"ob-is-breaking-bad ob-bb-inner elementor-section elementor-inner-section elementor-element elementor-element-245d060 elementor-section-content-middle elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"245d060\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;_ob_bbad_use_it&quot;:&quot;yes&quot;,&quot;_ob_bbad_sssic_use&quot;:&quot;no&quot;,&quot;_ob_glider_is_slider&quot;:&quot;no&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-inner-column elementor-element elementor-element-4ca1579\" data-id=\"4ca1579\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;_ob_bbad_is_stalker&quot;:&quot;no&quot;,&quot;_ob_teleporter_use&quot;:false,&quot;_ob_column_hoveranimator&quot;:&quot;no&quot;,&quot;_ob_column_has_pseudo&quot;:&quot;no&quot;}\">\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-fe3b861 ob-has-background-overlay elementor-widget elementor-widget-icon-box\" data-id=\"fe3b861\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_ob_perspektive_use&quot;:&quot;no&quot;,&quot;_ob_poopart_use&quot;:&quot;yes&quot;,&quot;_ob_shadough_use&quot;:&quot;no&quot;,&quot;_ob_allow_hoveranimator&quot;:&quot;no&quot;,&quot;_ob_widget_stalker_use&quot;:&quot;no&quot;}\" data-widget_type=\"icon-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h4 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\tCoordonn\u00e9es GPS\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h4>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\t31 513409 N  -9 766548  O\n\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e6795f8 ob-has-background-overlay elementor-widget elementor-widget-google_maps\" data-id=\"e6795f8\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_ob_perspektive_use&quot;:&quot;no&quot;,&quot;_ob_poopart_use&quot;:&quot;yes&quot;,&quot;_ob_shadough_use&quot;:&quot;no&quot;,&quot;_ob_allow_hoveranimator&quot;:&quot;no&quot;,&quot;_ob_widget_stalker_use&quot;:&quot;no&quot;}\" data-widget_type=\"google_maps.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-custom-embed\">\n\t\t\t<iframe loading=\"lazy\"\n\t\t\t\t\tsrc=\"https:\/\/maps.google.com\/maps?q=O%27Bleu%20Mogador%2C%20G67M%2B9C%20Essaouira&#038;t=m&#038;z=18&#038;output=embed&#038;iwloc=near\"\n\t\t\t\t\ttitle=\"O&#039;Bleu Mogador, G67M+9C Essaouira\"\n\t\t\t\t\taria-label=\"O&#039;Bleu Mogador, G67M+9C Essaouira\"\n\t\t\t><\/iframe>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\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>R\u00e9servation Restaurant O&rsquo;Bleu Mogador \u00b7 Essaouira R\u00e9servez votre table Une table intime dans un riad de la m\u00e9dina, la cuisine de Provence et d&rsquo;Essaouira du chef Serge Peuzin, Ma\u00eetre cuisinier de France. \u00c9tape 1\/4 Votre r\u00e9servation Nombre de convives Date et heure Menu de saison : vous choisirez \u00e0 table D\u00eener du lundi au samedide [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"page-builder","ast-site-content-layout":"full-width-container","site-content-style":"unboxed","site-sidebar-style":"unboxed","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"enabled","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-107","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>R\u00e9server une table \u00e0 Essaouira | O\u2019Bleu Mogador<\/title>\n<meta name=\"description\" content=\"R\u00e9server une table \u00e0 Essaouira chez O\u2019Bleu Mogador : d\u00eener du lundi au samedi, 19h-22h, au 23 rue Bouchentouf. Confirmation rapide sur WhatsApp.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/obleu-mogador.com\/?page_id=107\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"R\u00e9server une table \u00e0 Essaouira | O\u2019Bleu Mogador\" \/>\n<meta property=\"og:description\" content=\"R\u00e9server une table \u00e0 Essaouira chez O\u2019Bleu Mogador : d\u00eener du lundi au samedi, 19h-22h, au 23 rue Bouchentouf. Confirmation rapide sur WhatsApp.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/obleu-mogador.com\/?page_id=107\" \/>\n<meta property=\"og:site_name\" content=\"Restaurant O&#039;bleu Mogador\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-22T20:46:09+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/obleu-mogador.com\\\/?page_id=107\",\"url\":\"https:\\\/\\\/obleu-mogador.com\\\/?page_id=107\",\"name\":\"R\u00e9server une table \u00e0 Essaouira | O\u2019Bleu Mogador\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/obleu-mogador.com\\\/#website\"},\"datePublished\":\"2021-05-07T16:15:16+00:00\",\"dateModified\":\"2026-10-22T20:46:09+00:00\",\"description\":\"R\u00e9server une table \u00e0 Essaouira chez O\u2019Bleu Mogador : d\u00eener du lundi au samedi, 19h-22h, au 23 rue Bouchentouf. Confirmation rapide sur WhatsApp.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/obleu-mogador.com\\\/?page_id=107#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/obleu-mogador.com\\\/?page_id=107\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/obleu-mogador.com\\\/?page_id=107#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/obleu-mogador.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Contact\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/obleu-mogador.com\\\/#website\",\"url\":\"https:\\\/\\\/obleu-mogador.com\\\/\",\"name\":\"Restaurant O&#039;bleu Mogador\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/obleu-mogador.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/obleu-mogador.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/obleu-mogador.com\\\/#organization\",\"name\":\"Restaurant O&#039;bleu Mogador\",\"url\":\"https:\\\/\\\/obleu-mogador.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/obleu-mogador.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/obleu-mogador.com\\\/wp-content\\\/uploads\\\/2022\\\/07\\\/cropped-logo-png.png\",\"contentUrl\":\"https:\\\/\\\/obleu-mogador.com\\\/wp-content\\\/uploads\\\/2022\\\/07\\\/cropped-logo-png.png\",\"width\":1000,\"height\":1000,\"caption\":\"Restaurant O&#039;bleu Mogador\"},\"image\":{\"@id\":\"https:\\\/\\\/obleu-mogador.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"R\u00e9server une table \u00e0 Essaouira | O\u2019Bleu Mogador","description":"R\u00e9server une table \u00e0 Essaouira chez O\u2019Bleu Mogador : d\u00eener du lundi au samedi, 19h-22h, au 23 rue Bouchentouf. Confirmation rapide sur WhatsApp.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/obleu-mogador.com\/?page_id=107","og_locale":"fr_FR","og_type":"article","og_title":"R\u00e9server une table \u00e0 Essaouira | O\u2019Bleu Mogador","og_description":"R\u00e9server une table \u00e0 Essaouira chez O\u2019Bleu Mogador : d\u00eener du lundi au samedi, 19h-22h, au 23 rue Bouchentouf. Confirmation rapide sur WhatsApp.","og_url":"https:\/\/obleu-mogador.com\/?page_id=107","og_site_name":"Restaurant O&#039;bleu Mogador","article_modified_time":"2026-10-22T20:46:09+00:00","twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/obleu-mogador.com\/?page_id=107","url":"https:\/\/obleu-mogador.com\/?page_id=107","name":"R\u00e9server une table \u00e0 Essaouira | O\u2019Bleu Mogador","isPartOf":{"@id":"https:\/\/obleu-mogador.com\/#website"},"datePublished":"2021-05-07T16:15:16+00:00","dateModified":"2026-10-22T20:46:09+00:00","description":"R\u00e9server une table \u00e0 Essaouira chez O\u2019Bleu Mogador : d\u00eener du lundi au samedi, 19h-22h, au 23 rue Bouchentouf. Confirmation rapide sur WhatsApp.","breadcrumb":{"@id":"https:\/\/obleu-mogador.com\/?page_id=107#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/obleu-mogador.com\/?page_id=107"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/obleu-mogador.com\/?page_id=107#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/obleu-mogador.com\/"},{"@type":"ListItem","position":2,"name":"Contact"}]},{"@type":"WebSite","@id":"https:\/\/obleu-mogador.com\/#website","url":"https:\/\/obleu-mogador.com\/","name":"Restaurant O&#039;bleu Mogador","description":"","publisher":{"@id":"https:\/\/obleu-mogador.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/obleu-mogador.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/obleu-mogador.com\/#organization","name":"Restaurant O&#039;bleu Mogador","url":"https:\/\/obleu-mogador.com\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/obleu-mogador.com\/#\/schema\/logo\/image\/","url":"https:\/\/obleu-mogador.com\/wp-content\/uploads\/2022\/07\/cropped-logo-png.png","contentUrl":"https:\/\/obleu-mogador.com\/wp-content\/uploads\/2022\/07\/cropped-logo-png.png","width":1000,"height":1000,"caption":"Restaurant O&#039;bleu Mogador"},"image":{"@id":"https:\/\/obleu-mogador.com\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/obleu-mogador.com\/index.php?rest_route=\/wp\/v2\/pages\/107","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/obleu-mogador.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/obleu-mogador.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/obleu-mogador.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/obleu-mogador.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=107"}],"version-history":[{"count":68,"href":"https:\/\/obleu-mogador.com\/index.php?rest_route=\/wp\/v2\/pages\/107\/revisions"}],"predecessor-version":[{"id":2540,"href":"https:\/\/obleu-mogador.com\/index.php?rest_route=\/wp\/v2\/pages\/107\/revisions\/2540"}],"wp:attachment":[{"href":"https:\/\/obleu-mogador.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=107"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}