{"id":1730,"date":"2026-09-06T19:21:49","date_gmt":"2026-09-06T19:21:49","guid":{"rendered":"https:\/\/maroczain.com\/cuisine.maroczain.com\/?page_id=1730"},"modified":"2026-09-06T19:31:09","modified_gmt":"2026-09-06T19:31:09","slug":"cuisine-marocaine-royal-pro-max","status":"publish","type":"page","link":"https:\/\/maroczain.com\/cuisine.maroczain.com\/","title":{"rendered":"Cuisine Marocaine Royal Pro Max"},"content":{"rendered":"\n<!-- =========================================================\nMZA ROYAL GASTRONOMY\nCuisine Marocaine \u2014 Royal Pro Max\nWordPress \/ Bloc HTML\n========================================================= -->\n\n<div id=\"mza-royal-gastronomy\">\n\n<style>\n\/* ==============================\n   RESET LOCAL\n============================== *\/\n#mza-royal-gastronomy,\n#mza-royal-gastronomy *{\n  box-sizing:border-box;\n}\n\n#mza-royal-gastronomy{\n  --green:#073b2c;\n  --green2:#0b5941;\n  --gold:#c9a45b;\n  --gold2:#edd79b;\n  --ivory:#f8f3e8;\n  --wine:#681c26;\n  --ink:#111713;\n  --muted:#6d746f;\n  --white:#ffffff;\n  --shadow:0 20px 60px rgba(0,0,0,.12);\n\n  width:100%;\n  margin:0;\n  padding:0;\n  overflow:hidden;\n  background:\n    radial-gradient(circle at 10% 15%,rgba(201,164,91,.10),transparent 28%),\n    radial-gradient(circle at 90% 30%,rgba(7,59,44,.08),transparent 28%),\n    var(--ivory);\n\n  color:var(--ink);\n  font-family:Arial,Helvetica,sans-serif;\n  line-height:1.55;\n}\n\n\/* ==============================\n   HERO\n============================== *\/\n#mza-royal-gastronomy .hero{\n  min-height:92vh;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  position:relative;\n  padding:70px 24px;\n  color:#fff;\n  text-align:center;\n  background:\n    linear-gradient(180deg,rgba(4,29,22,.84),rgba(4,29,22,.93)),\n    radial-gradient(circle at 50% 10%,rgba(201,164,91,.20),transparent 35%),\n    linear-gradient(135deg,#073b2c,#10261e);\n}\n\n#mza-royal-gastronomy .hero:before,\n#mza-royal-gastronomy .hero:after{\n  content:\"\";\n  position:absolute;\n  width:220px;\n  height:220px;\n  border:1px solid rgba(237,215,155,.25);\n  transform:rotate(45deg);\n}\n\n#mza-royal-gastronomy .hero:before{\n  left:-110px;\n  top:110px;\n}\n\n#mza-royal-gastronomy .hero:after{\n  right:-110px;\n  bottom:100px;\n}\n\n#mza-royal-gastronomy .hero-inner{\n  width:min(1120px,100%);\n  position:relative;\n  z-index:2;\n}\n\n#mza-royal-gastronomy .royal-mark{\n  width:92px;\n  height:92px;\n  border-radius:50%;\n  margin:0 auto 22px;\n  border:1px solid rgba(237,215,155,.65);\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  font-size:43px;\n  background:rgba(255,255,255,.05);\n  box-shadow:\n    0 0 0 8px rgba(201,164,91,.07),\n    0 18px 50px rgba(0,0,0,.23);\n}\n\n#mza-royal-gastronomy .eyebrow{\n  display:inline-flex;\n  gap:8px;\n  align-items:center;\n  padding:8px 16px;\n  border-radius:999px;\n  border:1px solid rgba(237,215,155,.5);\n  color:var(--gold2);\n  font-weight:900;\n  letter-spacing:1.8px;\n  font-size:12px;\n  text-transform:uppercase;\n  margin-bottom:20px;\n}\n\n#mza-royal-gastronomy .hero h1{\n  margin:0 auto 20px;\n  max-width:980px;\n  font-family:Georgia,\"Times New Roman\",serif;\n  font-size:clamp(46px,8vw,92px);\n  line-height:.96;\n  font-weight:500;\n  letter-spacing:-2px;\n}\n\n#mza-royal-gastronomy .hero h1 span{\n  display:block;\n  color:var(--gold2);\n}\n\n#mza-royal-gastronomy .hero .lead{\n  max-width:790px;\n  margin:0 auto;\n  font-size:clamp(16px,2vw,20px);\n  color:rgba(255,255,255,.88);\n}\n\n#mza-royal-gastronomy .hero-actions{\n  display:flex;\n  gap:14px;\n  flex-wrap:wrap;\n  justify-content:center;\n  margin-top:34px;\n}\n\n#mza-royal-gastronomy .btn{\n  border:0;\n  cursor:pointer;\n  border-radius:999px;\n  padding:15px 22px;\n  font-size:14px;\n  font-weight:900;\n  letter-spacing:.3px;\n  text-decoration:none;\n  transition:.2s ease;\n  display:inline-flex;\n  align-items:center;\n  justify-content:center;\n  gap:8px;\n}\n\n#mza-royal-gastronomy .btn:hover{\n  transform:translateY(-2px);\n}\n\n#mza-royal-gastronomy .btn-gold{\n  background:linear-gradient(135deg,var(--gold2),var(--gold));\n  color:#2e2618;\n  box-shadow:0 12px 35px rgba(201,164,91,.25);\n}\n\n#mza-royal-gastronomy .btn-ghost{\n  color:#fff;\n  border:1px solid rgba(255,255,255,.35);\n  background:rgba(255,255,255,.06);\n}\n\n\/* ==============================\n   NAVIGATION ROYALE\n============================== *\/\n#mza-royal-gastronomy .royal-nav{\n  position:sticky;\n  top:0;\n  z-index:50;\n  background:rgba(7,59,44,.96);\n  backdrop-filter:blur(16px);\n  border-bottom:1px solid rgba(237,215,155,.18);\n  padding:12px 18px;\n}\n\n#mza-royal-gastronomy .royal-nav-inner{\n  width:min(1180px,100%);\n  margin:auto;\n  display:flex;\n  gap:9px;\n  flex-wrap:wrap;\n  justify-content:center;\n}\n\n#mza-royal-gastronomy .royal-nav button{\n  background:transparent;\n  color:#fff;\n  border:1px solid rgba(255,255,255,.13);\n  border-radius:999px;\n  padding:9px 13px;\n  cursor:pointer;\n  font-weight:800;\n}\n\n#mza-royal-gastronomy .royal-nav button:hover{\n  border-color:var(--gold);\n  color:var(--gold2);\n}\n\n\/* ==============================\n   COMMON\n============================== *\/\n#mza-royal-gastronomy .container{\n  width:min(1180px,calc(100% - 32px));\n  margin:auto;\n}\n\n#mza-royal-gastronomy .section{\n  padding:75px 0;\n}\n\n#mza-royal-gastronomy .section-head{\n  text-align:center;\n  max-width:850px;\n  margin:0 auto 38px;\n}\n\n#mza-royal-gastronomy .kicker{\n  color:var(--wine);\n  text-transform:uppercase;\n  letter-spacing:2px;\n  font-size:12px;\n  font-weight:900;\n}\n\n#mza-royal-gastronomy .section-head h2{\n  margin:8px 0 12px;\n  font-family:Georgia,\"Times New Roman\",serif;\n  font-size:clamp(34px,5vw,58px);\n  line-height:1.05;\n  font-weight:500;\n  color:var(--green);\n}\n\n#mza-royal-gastronomy .section-head p{\n  color:var(--muted);\n  font-size:17px;\n}\n\n\/* ==============================\n   STATS\n============================== *\/\n#mza-royal-gastronomy .stats{\n  margin-top:-46px;\n  position:relative;\n  z-index:6;\n}\n\n#mza-royal-gastronomy .stats-grid{\n  display:grid;\n  grid-template-columns:repeat(4,1fr);\n  gap:14px;\n}\n\n#mza-royal-gastronomy .stat{\n  background:#fff;\n  border-radius:22px;\n  padding:24px;\n  text-align:center;\n  box-shadow:var(--shadow);\n  border:1px solid rgba(201,164,91,.25);\n}\n\n#mza-royal-gastronomy .stat strong{\n  display:block;\n  font-family:Georgia,serif;\n  font-size:35px;\n  color:var(--green);\n}\n\n#mza-royal-gastronomy .stat span{\n  font-size:13px;\n  color:var(--muted);\n  font-weight:800;\n}\n\n\/* ==============================\n   EXPERIENCE\n============================== *\/\n#mza-royal-gastronomy .experience-grid{\n  display:grid;\n  grid-template-columns:repeat(3,1fr);\n  gap:18px;\n}\n\n#mza-royal-gastronomy .experience-card{\n  padding:25px;\n  border-radius:24px;\n  background:#fff;\n  border:1px solid #e9dfca;\n  box-shadow:0 10px 30px rgba(0,0,0,.06);\n}\n\n#mza-royal-gastronomy .experience-card .icon{\n  width:55px;\n  height:55px;\n  border-radius:18px;\n  background:var(--green);\n  color:var(--gold2);\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  font-size:26px;\n  margin-bottom:18px;\n}\n\n#mza-royal-gastronomy .experience-card h3{\n  font-family:Georgia,serif;\n  font-size:24px;\n  font-weight:500;\n  color:var(--green);\n  margin:0 0 8px;\n}\n\n#mza-royal-gastronomy .experience-card p{\n  margin:0;\n  color:var(--muted);\n}\n\n\/* ==============================\n   COURSES\n============================== *\/\n#mza-royal-gastronomy .level{\n  margin:28px 0 55px;\n}\n\n#mza-royal-gastronomy .level-title{\n  display:flex;\n  align-items:center;\n  justify-content:space-between;\n  gap:20px;\n  padding:0 4px 15px;\n  border-bottom:1px solid #d8ceb8;\n  margin-bottom:18px;\n}\n\n#mza-royal-gastronomy .level-title h3{\n  font-family:Georgia,serif;\n  color:var(--green);\n  font-size:30px;\n  margin:0;\n  font-weight:500;\n}\n\n#mza-royal-gastronomy .level-title span{\n  color:var(--wine);\n  font-weight:900;\n  font-size:13px;\n}\n\n#mza-royal-gastronomy .course-grid{\n  display:grid;\n  grid-template-columns:repeat(4,1fr);\n  gap:14px;\n}\n\n#mza-royal-gastronomy .course-card{\n  background:#fff;\n  border-radius:22px;\n  border:1px solid #e8dfcc;\n  overflow:hidden;\n  cursor:pointer;\n  transition:.22s ease;\n  box-shadow:0 9px 25px rgba(0,0,0,.05);\n}\n\n#mza-royal-gastronomy .course-card:hover{\n  transform:translateY(-4px);\n  box-shadow:0 18px 40px rgba(0,0,0,.10);\n}\n\n#mza-royal-gastronomy .course-top{\n  min-height:95px;\n  padding:17px;\n  color:#fff;\n  background:\n    radial-gradient(circle at 100% 0%,rgba(237,215,155,.19),transparent 35%),\n    linear-gradient(135deg,var(--green),#102c22);\n}\n\n#mza-royal-gastronomy .course-number{\n  display:inline-flex;\n  align-items:center;\n  justify-content:center;\n  width:38px;\n  height:38px;\n  border-radius:50%;\n  background:var(--gold2);\n  color:#352b18;\n  font-weight:900;\n  margin-bottom:10px;\n}\n\n#mza-royal-gastronomy .course-top h4{\n  margin:0;\n  font-size:17px;\n  line-height:1.3;\n}\n\n#mza-royal-gastronomy .course-body{\n  padding:16px;\n}\n\n#mza-royal-gastronomy .course-body p{\n  margin:0 0 12px;\n  color:var(--muted);\n  font-size:13px;\n}\n\n#mza-royal-gastronomy .course-meta{\n  display:flex;\n  justify-content:space-between;\n  gap:8px;\n  font-size:11px;\n  font-weight:900;\n  color:var(--wine);\n}\n\n\/* ==============================\n   VIEWER\n============================== *\/\n#mza-royal-gastronomy .viewer-shell{\n  display:none;\n  position:fixed;\n  inset:0;\n  z-index:99999;\n  background:rgba(4,20,16,.78);\n  padding:20px;\n  overflow:auto;\n}\n\n#mza-royal-gastronomy .viewer-shell.show{\n  display:block;\n}\n\n#mza-royal-gastronomy .viewer{\n  width:min(980px,100%);\n  margin:20px auto;\n  background:var(--ivory);\n  border-radius:28px;\n  overflow:hidden;\n  box-shadow:0 30px 100px rgba(0,0,0,.35);\n}\n\n#mza-royal-gastronomy .viewer-header{\n  background:linear-gradient(135deg,var(--green),#12271f);\n  color:#fff;\n  padding:30px;\n  position:relative;\n}\n\n#mza-royal-gastronomy .viewer-header h3{\n  margin:0 45px 8px 0;\n  font-family:Georgia,serif;\n  font-size:38px;\n  font-weight:500;\n}\n\n#mza-royal-gastronomy .viewer-header p{\n  margin:0;\n  color:rgba(255,255,255,.8);\n}\n\n#mza-royal-gastronomy .viewer-close{\n  position:absolute;\n  right:18px;\n  top:18px;\n  width:42px;\n  height:42px;\n  border:1px solid rgba(255,255,255,.3);\n  border-radius:50%;\n  background:transparent;\n  color:#fff;\n  font-size:20px;\n  cursor:pointer;\n}\n\n#mza-royal-gastronomy .viewer-body{\n  padding:27px;\n}\n\n#mza-royal-gastronomy .recipe-meta{\n  display:grid;\n  grid-template-columns:repeat(4,1fr);\n  gap:10px;\n  margin-bottom:20px;\n}\n\n#mza-royal-gastronomy .recipe-meta div{\n  background:#fff;\n  border:1px solid #e6dac1;\n  border-radius:15px;\n  padding:13px;\n  text-align:center;\n}\n\n#mza-royal-gastronomy .recipe-meta strong{\n  display:block;\n  color:var(--green);\n}\n\n#mza-royal-gastronomy .viewer-grid{\n  display:grid;\n  grid-template-columns:1fr 1fr;\n  gap:16px;\n}\n\n#mza-royal-gastronomy .viewer-box{\n  background:#fff;\n  border:1px solid #e7dcc5;\n  border-radius:18px;\n  padding:19px;\n}\n\n#mza-royal-gastronomy .viewer-box h4{\n  margin:0 0 10px;\n  color:var(--wine);\n}\n\n#mza-royal-gastronomy .viewer-box ul,\n#mza-royal-gastronomy .viewer-box ol{\n  margin:0;\n  padding-left:20px;\n}\n\n#mza-royal-gastronomy .validate-course{\n  width:100%;\n  margin-top:18px;\n  border:0;\n  border-radius:16px;\n  padding:16px;\n  background:linear-gradient(135deg,var(--gold2),var(--gold));\n  color:#302711;\n  font-weight:900;\n  cursor:pointer;\n}\n\n\/* ==============================\n   PROGRESS\n============================== *\/\n#mza-royal-gastronomy .progress-palace{\n  background:linear-gradient(135deg,#0a3226,#071c16);\n  border-radius:30px;\n  padding:36px;\n  color:#fff;\n}\n\n#mza-royal-gastronomy .progress-palace h3{\n  font-family:Georgia,serif;\n  font-size:34px;\n  font-weight:500;\n  margin-top:0;\n}\n\n#mza-royal-gastronomy .progress-track{\n  width:100%;\n  height:14px;\n  background:rgba(255,255,255,.12);\n  border-radius:999px;\n  overflow:hidden;\n  margin:18px 0 8px;\n}\n\n#mza-royal-gastronomy .progress-bar{\n  width:0%;\n  height:100%;\n  background:linear-gradient(90deg,var(--gold),var(--gold2));\n  transition:.3s ease;\n}\n\n#mza-royal-gastronomy .progress-info{\n  display:flex;\n  justify-content:space-between;\n  gap:20px;\n  flex-wrap:wrap;\n  color:rgba(255,255,255,.78);\n}\n\n\/* ==============================\n   PASSEPORT\n============================== *\/\n#mza-royal-gastronomy .passport{\n  background:#fff;\n  border:1px solid #dccaa3;\n  border-radius:28px;\n  padding:30px;\n  box-shadow:var(--shadow);\n  display:grid;\n  grid-template-columns:.8fr 1.2fr;\n  gap:30px;\n  align-items:center;\n}\n\n#mza-royal-gastronomy .passport-cover{\n  min-height:330px;\n  border-radius:24px;\n  background:\n    linear-gradient(135deg,rgba(255,255,255,.03),rgba(255,255,255,0)),\n    var(--green);\n  color:#fff;\n  border:5px double var(--gold);\n  display:flex;\n  flex-direction:column;\n  align-items:center;\n  justify-content:center;\n  text-align:center;\n  padding:25px;\n}\n\n#mza-royal-gastronomy .passport-cover .seal{\n  font-size:55px;\n  margin-bottom:13px;\n}\n\n#mza-royal-gastronomy .passport-cover h3{\n  font-family:Georgia,serif;\n  font-size:30px;\n  font-weight:500;\n  margin:0 0 8px;\n}\n\n#mza-royal-gastronomy .passport-details h3{\n  font-family:Georgia,serif;\n  font-size:34px;\n  color:var(--green);\n  font-weight:500;\n  margin-top:0;\n}\n\n#mza-royal-gastronomy .badge-grid{\n  display:grid;\n  grid-template-columns:repeat(2,1fr);\n  gap:12px;\n  margin-top:18px;\n}\n\n#mza-royal-gastronomy .badge{\n  border:1px solid #e4d7bb;\n  background:#fffaf0;\n  padding:15px;\n  border-radius:16px;\n  font-weight:800;\n}\n\n\/* ==============================\n   EXAM\n============================== *\/\n#mza-royal-gastronomy .exam{\n  background:\n    radial-gradient(circle at 90% 10%,rgba(201,164,91,.18),transparent 30%),\n    linear-gradient(135deg,var(--wine),#311016);\n  color:#fff;\n  border-radius:30px;\n  padding:45px;\n}\n\n#mza-royal-gastronomy .exam h3{\n  font-family:Georgia,serif;\n  font-size:42px;\n  font-weight:500;\n  margin:0 0 10px;\n}\n\n#mza-royal-gastronomy .exam-grid{\n  display:grid;\n  grid-template-columns:repeat(3,1fr);\n  gap:14px;\n  margin:25px 0;\n}\n\n#mza-royal-gastronomy .exam-step{\n  border:1px solid rgba(255,255,255,.15);\n  background:rgba(255,255,255,.06);\n  border-radius:18px;\n  padding:19px;\n}\n\n\/* ==============================\n   FINAL CTA\n============================== *\/\n#mza-royal-gastronomy .final-cta{\n  text-align:center;\n  padding:75px 25px;\n  color:#fff;\n  background:\n    radial-gradient(circle at center,rgba(201,164,91,.15),transparent 35%),\n    #071d17;\n}\n\n#mza-royal-gastronomy .final-cta h2{\n  font-family:Georgia,serif;\n  font-weight:500;\n  font-size:clamp(38px,6vw,68px);\n  margin:0 auto 15px;\n}\n\n#mza-royal-gastronomy .final-cta p{\n  max-width:720px;\n  margin:0 auto 25px;\n  color:rgba(255,255,255,.75);\n}\n\n\/* ==============================\n   TOAST\n============================== *\/\n#mza-royal-gastronomy .toast{\n  position:fixed;\n  right:22px;\n  bottom:22px;\n  z-index:999999;\n  display:none;\n  padding:15px 18px;\n  border-radius:15px;\n  color:#fff;\n  background:var(--green);\n  box-shadow:0 15px 45px rgba(0,0,0,.28);\n  font-weight:900;\n}\n\n#mza-royal-gastronomy .toast.show{\n  display:block;\n}\n\n\/* ==============================\n   RESPONSIVE\n============================== *\/\n@media(max-width:1000px){\n  #mza-royal-gastronomy .course-grid{\n    grid-template-columns:repeat(2,1fr);\n  }\n\n  #mza-royal-gastronomy .stats-grid,\n  #mza-royal-gastronomy .experience-grid{\n    grid-template-columns:repeat(2,1fr);\n  }\n}\n\n@media(max-width:720px){\n  #mza-royal-gastronomy .hero{\n    min-height:auto;\n    padding:65px 18px;\n  }\n\n  #mza-royal-gastronomy .hero h1{\n    letter-spacing:-1px;\n  }\n\n  #mza-royal-gastronomy .stats{\n    margin-top:18px;\n  }\n\n  #mza-royal-gastronomy .stats-grid,\n  #mza-royal-gastronomy .experience-grid,\n  #mza-royal-gastronomy .course-grid,\n  #mza-royal-gastronomy .viewer-grid,\n  #mza-royal-gastronomy .recipe-meta,\n  #mza-royal-gastronomy .passport,\n  #mza-royal-gastronomy .exam-grid{\n    grid-template-columns:1fr;\n  }\n\n  #mza-royal-gastronomy .section{\n    padding:50px 0;\n  }\n\n  #mza-royal-gastronomy .royal-nav{\n    position:relative;\n  }\n\n  #mza-royal-gastronomy .viewer{\n    margin:0 auto;\n  }\n\n  #mza-royal-gastronomy .viewer-header h3{\n    font-size:28px;\n  }\n}\n<\/style>\n\n\n<!-- ==============================\n HERO\n============================== -->\n<section class=\"hero\" id=\"accueil\">\n  <div class=\"hero-inner\">\n\n    <div class=\"royal-mark\">\ud83c\uddf2\ud83c\udde6<\/div>\n\n    <div class=\"eyebrow\">\n      MZA Royal Gastronomy\n    <\/div>\n\n    <h1>\n      Cuisine Marocaine\n      <span>Royal Pro Max<\/span>\n    <\/h1>\n\n    <p class=\"lead\">\n      L&#8217;h\u00e9ritage culinaire du Maroc transmis comme un art.\n      Des cuisines familiales aux grandes tables,\n      des recettes ancestrales au niveau Executive Chef.\n    <\/p>\n\n    <div class=\"hero-actions\">\n      <button class=\"btn btn-gold\" onclick=\"mzaRoyalGo('programme')\">\n        \ud83d\udc68\u200d\ud83c\udf73 D\u00e9couvrir les 40 cours\n      <\/button>\n\n      <button class=\"btn btn-ghost\" onclick=\"mzaRoyalGo('passport')\">\n        \ud83c\udfc5 Mon Passeport Chef\n      <\/button>\n    <\/div>\n\n  <\/div>\n<\/section>\n\n\n<!-- NAV -->\n<nav class=\"royal-nav\">\n  <div class=\"royal-nav-inner\">\n    <button onclick=\"mzaRoyalGo('heritage')\">H\u00e9ritage<\/button>\n    <button onclick=\"mzaRoyalGo('programme')\">40 cours<\/button>\n    <button onclick=\"mzaRoyalGo('progression')\">Progression<\/button>\n    <button onclick=\"mzaRoyalGo('passport')\">Passeport Chef<\/button>\n    <button onclick=\"mzaRoyalGo('examen')\">Examen final<\/button>\n  <\/div>\n<\/nav>\n\n\n<!-- STATS -->\n<div class=\"stats\">\n  <div class=\"container\">\n    <div class=\"stats-grid\">\n\n      <div class=\"stat\">\n        <strong>40<\/strong>\n        <span>Modules professionnels<\/span>\n      <\/div>\n\n      <div class=\"stat\">\n        <strong>4<\/strong>\n        <span>Niveaux d&#8217;excellence<\/span>\n      <\/div>\n\n      <div class=\"stat\">\n        <strong>100+<\/strong>\n        <span>Techniques culinaires<\/span>\n      <\/div>\n\n      <div class=\"stat\">\n        <strong>1<\/strong>\n        <span>Parcours Executive Chef<\/span>\n      <\/div>\n\n    <\/div>\n  <\/div>\n<\/div>\n\n\n<!-- HERITAGE -->\n<section class=\"section\" id=\"heritage\">\n  <div class=\"container\">\n\n    <div class=\"section-head\">\n      <div class=\"kicker\">Patrimoine culinaire<\/div>\n      <h2>Une cuisine de m\u00e9moire, de territoire et de transmission<\/h2>\n      <p>\n        Le parcours MZA Royal Gastronomy valorise les grands classiques,\n        les savoir-faire r\u00e9gionaux et la capacit\u00e9 du futur chef \u00e0 les\n        interpr\u00e9ter dans une restauration contemporaine de haut niveau.\n      <\/p>\n    <\/div>\n\n    <div class=\"experience-grid\">\n\n      <div class=\"experience-card\">\n        <div class=\"icon\">\ud83e\udd58<\/div>\n        <h3>Tradition<\/h3>\n        <p>\n          Tajines, couscous, pastilla, rfissa, tanjia,\n          harira, pains et p\u00e2tisseries.\n        <\/p>\n      <\/div>\n\n      <div class=\"experience-card\">\n        <div class=\"icon\">\ud83d\udd4c<\/div>\n        <h3>Terroirs<\/h3>\n        <p>\n          F\u00e8s, Marrakech, Souss, Rif, c\u00f4tes atlantiques,\n          Sud marocain et traditions familiales.\n        <\/p>\n      <\/div>\n\n      <div class=\"experience-card\">\n        <div class=\"icon\">\ud83d\udc51<\/div>\n        <h3>Excellence<\/h3>\n        <p>\n          Dressage gastronomique, restauration de palace,\n          banquet, food cost et direction de brigade.\n        <\/p>\n      <\/div>\n\n    <\/div>\n\n  <\/div>\n<\/section>\n\n\n<!-- PROGRAMME -->\n<section class=\"section\" id=\"programme\">\n  <div class=\"container\">\n\n    <div class=\"section-head\">\n      <div class=\"kicker\">Acad\u00e9mie du Chef<\/div>\n      <h2>40 cours vers la ma\u00eetrise<\/h2>\n      <p>\n        Cliquez sur un module pour ouvrir sa fiche p\u00e9dagogique compl\u00e8te.\n      <\/p>\n    <\/div>\n\n    <div class=\"level\">\n      <div class=\"level-title\">\n        <h3>Niveau I \u2014 Fondations<\/h3>\n        <span>01 \u2014 10<\/span>\n      <\/div>\n      <div class=\"course-grid\" id=\"mzaLevel1\"><\/div>\n    <\/div>\n\n    <div class=\"level\">\n      <div class=\"level-title\">\n        <h3>Niveau II \u2014 Grands classiques<\/h3>\n        <span>11 \u2014 20<\/span>\n      <\/div>\n      <div class=\"course-grid\" id=\"mzaLevel2\"><\/div>\n    <\/div>\n\n    <div class=\"level\">\n      <div class=\"level-title\">\n        <h3>Niveau III \u2014 R\u00e9gions du Maroc<\/h3>\n        <span>21 \u2014 30<\/span>\n      <\/div>\n      <div class=\"course-grid\" id=\"mzaLevel3\"><\/div>\n    <\/div>\n\n    <div class=\"level\">\n      <div class=\"level-title\">\n        <h3>Niveau IV \u2014 Executive Chef<\/h3>\n        <span>31 \u2014 40<\/span>\n      <\/div>\n      <div class=\"course-grid\" id=\"mzaLevel4\"><\/div>\n    <\/div>\n\n  <\/div>\n<\/section>\n\n\n<!-- PROGRESSION -->\n<section class=\"section\" id=\"progression\">\n  <div class=\"container\">\n\n    <div class=\"progress-palace\">\n\n      <div class=\"kicker\" style=\"color:#edd79b\">\n        Parcours personnel\n      <\/div>\n\n      <h3>Votre progression Chef MZA<\/h3>\n\n      <p>\n        Chaque cours valid\u00e9 alimente automatiquement votre progression.\n      <\/p>\n\n      <div class=\"progress-track\">\n        <div class=\"progress-bar\" id=\"mzaProgressBar\"><\/div>\n      <\/div>\n\n      <div class=\"progress-info\">\n        <span id=\"mzaProgressText\">0 cours valid\u00e9 sur 40<\/span>\n        <strong id=\"mzaProgressPercent\">0%<\/strong>\n      <\/div>\n\n      <button class=\"btn btn-gold\"\n              style=\"margin-top:22px\"\n              onclick=\"mzaResetProgress()\">\n        R\u00e9initialiser ma progression\n      <\/button>\n\n    <\/div>\n\n  <\/div>\n<\/section>\n\n\n<!-- PASSPORT -->\n<section class=\"section\" id=\"passport\">\n  <div class=\"container\">\n\n    <div class=\"section-head\">\n      <div class=\"kicker\">Identit\u00e9 professionnelle<\/div>\n      <h2>Passeport du Chef<\/h2>\n    <\/div>\n\n    <div class=\"passport\">\n\n      <div class=\"passport-cover\">\n        <div class=\"seal\">\ud83d\udc51<\/div>\n        <h3>Passeport Chef<\/h3>\n        <p>MZA Royal Gastronomy<\/p>\n        <small>CUISINE MAROCAINE<\/small>\n      <\/div>\n\n      <div class=\"passport-details\">\n\n        <h3>Les distinctions \u00e0 d\u00e9bloquer<\/h3>\n\n        <p>\n          Votre progression permet d&#8217;obtenir progressivement\n          les quatre distinctions du parcours.\n        <\/p>\n\n        <div class=\"badge-grid\">\n\n          <div class=\"badge\" id=\"badge1\">\n            \ud83e\udd49 Commis Marocain\n          <\/div>\n\n          <div class=\"badge\" id=\"badge2\">\n            \ud83e\udd48 Chef de Partie\n          <\/div>\n\n          <div class=\"badge\" id=\"badge3\">\n            \ud83e\udd47 Chef Cuisine Marocaine\n          <\/div>\n\n          <div class=\"badge\" id=\"badge4\">\n            \ud83d\udc51 Executive Chef MZA\n          <\/div>\n\n        <\/div>\n\n      <\/div>\n\n    <\/div>\n\n  <\/div>\n<\/section>\n\n\n<!-- EXAMEN -->\n<section class=\"section\" id=\"examen\">\n  <div class=\"container\">\n\n    <div class=\"exam\">\n\n      <div class=\"kicker\" style=\"color:#edd79b\">\n        \u00c9preuve de prestige\n      <\/div>\n\n      <h3>Examen Royal du Chef<\/h3>\n\n      <p>\n        Une simulation professionnelle int\u00e9grant cr\u00e9ativit\u00e9,\n        organisation, co\u00fbt, production et pr\u00e9sentation.\n      <\/p>\n\n      <div class=\"exam-grid\">\n\n        <div class=\"exam-step\">\n          <strong>01 \u2014 Panier impos\u00e9<\/strong>\n          <p>\n            Produits marocains s\u00e9lectionn\u00e9s.\n          <\/p>\n        <\/div>\n\n        <div class=\"exam-step\">\n          <strong>02 \u2014 Cr\u00e9ation<\/strong>\n          <p>\n            Entr\u00e9e, plat et dessert.\n          <\/p>\n        <\/div>\n\n        <div class=\"exam-step\">\n          <strong>03 \u2014 Soutenance Chef<\/strong>\n          <p>\n            Pr\u00e9sentation du menu, prix et concept.\n          <\/p>\n        <\/div>\n\n      <\/div>\n\n      <button class=\"btn btn-gold\"\n              onclick=\"mzaStartExam()\">\n        \ud83c\udf93 V\u00e9rifier mon acc\u00e8s \u00e0 l&#8217;examen\n      <\/button>\n\n      <div id=\"examMessage\"\n           style=\"margin-top:18px;font-weight:900\">\n      <\/div>\n\n    <\/div>\n\n  <\/div>\n<\/section>\n\n\n<!-- FINAL CTA -->\n<section class=\"final-cta\">\n\n  <h2>\n    La gastronomie marocaine m\u00e9rite son \u00e9cole d&#8217;excellence.\n  <\/h2>\n\n  <p>\n    Cuisine, patrimoine, management, rentabilit\u00e9 et cr\u00e9ativit\u00e9 :\n    MZA Royal Gastronomy accompagne l&#8217;apprenant jusqu&#8217;au niveau Chef.\n  <\/p>\n\n  <a class=\"btn btn-gold\"\n     href=\"https:\/\/maroczain.com\/cuisine.maroczain.com\/\">\n    MAROC ZAIN ACADEMY \u2192\n  <\/a>\n\n<\/section>\n\n\n<!-- COURSE MODAL -->\n<div class=\"viewer-shell\" id=\"mzaViewerShell\">\n\n  <div class=\"viewer\">\n\n    <div class=\"viewer-header\">\n\n      <button class=\"viewer-close\"\n              onclick=\"mzaCloseCourse()\">\n        \u00d7\n      <\/button>\n\n      <div class=\"kicker\"\n           style=\"color:#edd79b\">\n        MZA Royal Gastronomy\n      <\/div>\n\n      <h3 id=\"mzaViewerTitle\"><\/h3>\n      <p id=\"mzaViewerDesc\"><\/p>\n\n    <\/div>\n\n    <div class=\"viewer-body\">\n\n      <div class=\"recipe-meta\">\n\n        <div>\n          <strong id=\"mzaViewerTime\">\u2014<\/strong>\n          Temps\n        <\/div>\n\n        <div>\n          <strong id=\"mzaViewerPortions\">\u2014<\/strong>\n          Portions\n        <\/div>\n\n        <div>\n          <strong id=\"mzaViewerDifficulty\">\u2014<\/strong>\n          Difficult\u00e9\n        <\/div>\n\n        <div>\n          <strong id=\"mzaViewerLevel\">\u2014<\/strong>\n          Niveau\n        <\/div>\n\n      <\/div>\n\n      <div class=\"viewer-grid\">\n\n        <div class=\"viewer-box\">\n          <h4>\ud83c\udfaf Objectifs<\/h4>\n          <ul id=\"mzaViewerObjectives\"><\/ul>\n        <\/div>\n\n        <div class=\"viewer-box\">\n          <h4>\ud83e\uddfa Ingr\u00e9dients cl\u00e9s<\/h4>\n          <p id=\"mzaViewerIngredients\"><\/p>\n        <\/div>\n\n        <div class=\"viewer-box\">\n          <h4>\ud83d\udd25 Techniques<\/h4>\n          <p id=\"mzaViewerTechniques\"><\/p>\n        <\/div>\n\n        <div class=\"viewer-box\">\n          <h4>\ud83d\udc68\u200d\ud83c\udf73 Mission Chef<\/h4>\n          <p id=\"mzaViewerMission\"><\/p>\n        <\/div>\n\n      <\/div>\n\n      <div class=\"viewer-box\" style=\"margin-top:16px\">\n        <h4>\ud83d\udccb D\u00e9roul\u00e9 p\u00e9dagogique<\/h4>\n        <ol id=\"mzaViewerSteps\"><\/ol>\n      <\/div>\n\n      <button class=\"validate-course\"\n              id=\"mzaValidateCourse\">\n        \u2713 VALIDER CE MODULE\n      <\/button>\n\n    <\/div>\n\n  <\/div>\n\n<\/div>\n\n\n<div class=\"toast\" id=\"mzaToast\"><\/div>\n\n\n<script>\n(function(){\n\n\/* =============================================\n   DATA\n============================================= *\/\n\nconst courses = [\n\n{\nlevel:1,\ntitle:\"Fondamentaux de la cuisine marocaine\",\ndesc:\"Comprendre les piliers de la gastronomie marocaine.\",\ntime:\"50 min\",\nportions:\"Cours\",\ndifficulty:\"Initiation\",\ningredients:\"L\u00e9gumes, c\u00e9r\u00e9ales, viandes, herbes, \u00e9pices.\",\ntech:\"Mise en place, organisation, cuisson lente.\",\nmission:\"Cr\u00e9er l'organisation compl\u00e8te de votre poste de travail.\",\nobjectives:[\n\"Identifier les grandes familles de plats\",\n\"Reconna\u00eetre les ingr\u00e9dients essentiels\",\n\"Organiser une mise en place professionnelle\"\n],\nsteps:[\n\"D\u00e9couvrir les familles culinaires marocaines\",\n\"Identifier les produits essentiels\",\n\"Comprendre les modes de cuisson\",\n\"Organiser son poste\",\n\"R\u00e9aliser la mission Chef\"\n]\n},\n\n{\nlevel:1,\ntitle:\"\u00c9pices & Ras El Hanout\",\ndesc:\"Ma\u00eetriser l'\u00e9quilibre aromatique marocain.\",\ntime:\"45 min\",\nportions:\"Cours\",\ndifficulty:\"Initiation\",\ningredients:\"Cumin, paprika, gingembre, curcuma, cannelle, safran.\",\ntech:\"Dosage, torr\u00e9faction l\u00e9g\u00e8re, assemblage.\",\nmission:\"Cr\u00e9er votre signature aromatique MZA.\",\nobjectives:[\n\"Reconna\u00eetre les principales \u00e9pices\",\n\"Ma\u00eetriser les dosages\",\n\"Composer un m\u00e9lange \u00e9quilibr\u00e9\"\n],\nsteps:[\n\"Observer les \u00e9pices\",\n\"Comparer les profils aromatiques\",\n\"Comprendre les associations\",\n\"Cr\u00e9er un m\u00e9lange personnel\"\n]\n},\n\n{\nlevel:1,\ntitle:\"Chermoula\",\ndesc:\"La marinade embl\u00e9matique des poissons et l\u00e9gumes.\",\ntime:\"40 min\",\nportions:\"6\",\ndifficulty:\"Facile\",\ningredients:\"Coriandre, persil, ail, citron, cumin, paprika, huile.\",\ntech:\"Hachage, \u00e9mulsion, marinade.\",\nmission:\"Cr\u00e9er trois variations de chermoula.\",\nobjectives:[\n\"Ma\u00eetriser la base\",\n\"Adapter l'acidit\u00e9\",\n\"Cr\u00e9er diff\u00e9rentes intensit\u00e9s\"\n],\nsteps:[\n\"Pr\u00e9parer les herbes\",\n\"Assembler les aromates\",\n\"Ajouter les \u00e9pices\",\n\"Monter \u00e0 l'huile\",\n\"Tester trois variantes\"\n]\n},\n\n{\nlevel:1,\ntitle:\"Citrons confits\",\ndesc:\"Pr\u00e9parer et conserver un condiment majeur.\",\ntime:\"30 min\",\nportions:\"1 bocal\",\ndifficulty:\"Facile\",\ningredients:\"Citrons, sel.\",\ntech:\"Salaison, maturation.\",\nmission:\"Pr\u00e9parer un bocal conforme \u00e0 un usage professionnel.\",\nobjectives:[\n\"Choisir les citrons\",\n\"Comprendre la conservation\",\n\"Ma\u00eetriser l'utilisation\"\n],\nsteps:[\n\"Laver les citrons\",\n\"Inciser\",\n\"Saler\",\n\"Mettre en bocal\",\n\"Laisser maturer\"\n]\n},\n\n{\nlevel:1,\ntitle:\"Olives & condiments\",\ndesc:\"Construire les accompagnements d'un plat marocain.\",\ntime:\"40 min\",\nportions:\"6\",\ndifficulty:\"Facile\",\ningredients:\"Olives, citron, herbes, \u00e9pices.\",\ntech:\"Dessalage, marinade.\",\nmission:\"Cr\u00e9er un assortiment de condiments.\",\nobjectives:[\n\"Choisir les olives\",\n\"\u00c9quilibrer le sel\",\n\"Cr\u00e9er une garniture\"\n],\nsteps:[\n\"Dessaler\",\n\"Assaisonner\",\n\"Mariner\",\n\"R\u00e9server\"\n]\n},\n\n{\nlevel:1,\ntitle:\"Fonds & bouillons\",\ndesc:\"Construire les bases de go\u00fbt.\",\ntime:\"1 h 30\",\nportions:\"2 L\",\ndifficulty:\"Interm\u00e9diaire\",\ningredients:\"Os, l\u00e9gumes, aromates, \u00e9pices.\",\ntech:\"Mijotage, \u00e9cumage, r\u00e9duction.\",\nmission:\"Cr\u00e9er un fond polyvalent pour tajine.\",\nobjectives:[\n\"Extraire les saveurs\",\n\"Contr\u00f4ler la r\u00e9duction\",\n\"Obtenir un bouillon propre\"\n],\nsteps:[\n\"Pr\u00e9parer les ingr\u00e9dients\",\n\"Mouiller\",\n\"\u00c9cumer\",\n\"Mijoter\",\n\"Filtrer\"\n]\n},\n\n{\nlevel:1,\ntitle:\"Ma\u00eetriser le tajine\",\ndesc:\"Comprendre le principe de cuisson lente.\",\ntime:\"1 h\",\nportions:\"6\",\ndifficulty:\"Interm\u00e9diaire\",\ningredients:\"Viande, l\u00e9gumes, \u00e9pices.\",\ntech:\"Saisie, mijotage, condensation.\",\nmission:\"Comparer deux intensit\u00e9s de cuisson.\",\nobjectives:[\n\"Contr\u00f4ler l'humidit\u00e9\",\n\"G\u00e9rer la cuisson lente\",\n\"Obtenir une sauce concentr\u00e9e\"\n],\nsteps:[\n\"Pr\u00e9parer le tajine\",\n\"Assembler\",\n\"D\u00e9marrer doucement\",\n\"Contr\u00f4ler l'humidit\u00e9\",\n\"Finir la sauce\"\n]\n},\n\n{\nlevel:1,\ntitle:\"Semoule & vapeur\",\ndesc:\"Obtenir une semoule l\u00e9g\u00e8re et r\u00e9guli\u00e8re.\",\ntime:\"1 h\",\nportions:\"8\",\ndifficulty:\"Interm\u00e9diaire\",\ningredients:\"Semoule, eau, sel, huile.\",\ntech:\"Hydratation, roulage, vapeur.\",\nmission:\"R\u00e9aliser une semoule de couscous professionnelle.\",\nobjectives:[\n\"Hydrater correctement\",\n\"\u00c9grener\",\n\"Ma\u00eetriser plusieurs passages vapeur\"\n],\nsteps:[\n\"Humidifier\",\n\"Rouler\",\n\"Cuire \u00e0 la vapeur\",\n\"\u00c9grener\",\n\"R\u00e9p\u00e9ter\"\n]\n},\n\n{\nlevel:1,\ntitle:\"Pains marocains\",\ndesc:\"Khobz, batbout et bases boulang\u00e8res.\",\ntime:\"2 h\",\nportions:\"8\",\ndifficulty:\"Interm\u00e9diaire\",\ningredients:\"Farine, semoule, levure, sel.\",\ntech:\"P\u00e9trissage, fermentation, cuisson.\",\nmission:\"Produire deux pains traditionnels.\",\nobjectives:[\n\"P\u00e9trir correctement\",\n\"Ma\u00eetriser la pousse\",\n\"Adapter la cuisson\"\n],\nsteps:[\n\"P\u00e9trir\",\n\"Reposer\",\n\"Fa\u00e7onner\",\n\"Fermenter\",\n\"Cuire\"\n]\n},\n\n{\nlevel:1,\ntitle:\"Hygi\u00e8ne & HACCP\",\ndesc:\"S\u00e9curit\u00e9 alimentaire en restauration professionnelle.\",\ntime:\"1 h\",\nportions:\"Cours\",\ndifficulty:\"Obligatoire\",\ningredients:\"\u2014\",\ntech:\"HACCP, temp\u00e9rature, stockage, tra\u00e7abilit\u00e9.\",\nmission:\"Cr\u00e9er le plan d'hygi\u00e8ne de votre cuisine.\",\nobjectives:[\n\"Pr\u00e9venir les contaminations\",\n\"Contr\u00f4ler le froid\",\n\"Organiser les zones de travail\"\n],\nsteps:[\n\"Identifier les risques\",\n\"D\u00e9finir les temp\u00e9ratures\",\n\"Organiser les flux\",\n\"Cr\u00e9er les contr\u00f4les\"\n]\n},\n\n{\nlevel:2,\ntitle:\"Tajine poulet citron & olives\",\ndesc:\"L'un des grands classiques marocains.\",\ntime:\"1 h 30\",\nportions:\"6\",\ndifficulty:\"Interm\u00e9diaire\",\ningredients:\"Poulet, citron confit, olives, oignons, safran.\",\ntech:\"Marinade, mijotage, r\u00e9duction.\",\nmission:\"Servir un tajine \u00e9quilibr\u00e9 pour six convives.\",\nobjectives:[\n\"Obtenir un poulet moelleux\",\n\"\u00c9quilibrer l'acidit\u00e9\",\n\"Cr\u00e9er une sauce nappante\"\n],\nsteps:[\n\"Mariner le poulet\",\n\"Pr\u00e9parer les oignons\",\n\"Cuire lentement\",\n\"Ajouter citron et olives\",\n\"R\u00e9duire la sauce\"\n]\n},\n\n{\nlevel:2,\ntitle:\"Tajine viande aux pruneaux\",\ndesc:\"Ma\u00eetriser le grand registre sucr\u00e9-sal\u00e9.\",\ntime:\"2 h\",\nportions:\"6\",\ndifficulty:\"Interm\u00e9diaire\",\ningredients:\"Viande, pruneaux, amandes, cannelle.\",\ntech:\"Braisage, caram\u00e9lisation.\",\nmission:\"Cr\u00e9er un dressage de banquet.\",\nobjectives:[\n\"Attendrir la viande\",\n\"Caram\u00e9liser les pruneaux\",\n\"\u00c9quilibrer sucre et \u00e9pices\"\n],\nsteps:[\n\"Marquer la viande\",\n\"Mijoter\",\n\"Cuire les pruneaux\",\n\"Caram\u00e9liser\",\n\"Dresser\"\n]\n},\n\n{\nlevel:2,\ntitle:\"Couscous aux sept l\u00e9gumes\",\ndesc:\"Ma\u00eetriser le plat embl\u00e9matique.\",\ntime:\"3 h\",\nportions:\"8\",\ndifficulty:\"Avanc\u00e9\",\ningredients:\"Semoule, viande, l\u00e9gumes, pois chiches.\",\ntech:\"Vapeur, bouillon, organisation.\",\nmission:\"Pr\u00e9parer le couscous complet pour huit personnes.\",\nobjectives:[\n\"Coordonner plusieurs cuissons\",\n\"Ma\u00eetriser la semoule\",\n\"Construire le bouillon\"\n],\nsteps:[\n\"Pr\u00e9parer le bouillon\",\n\"Tailler les l\u00e9gumes\",\n\"Cuire la viande\",\n\"Cuire la semoule\",\n\"Dresser\"\n]\n},\n\n{\nlevel:2,\ntitle:\"Rfissa\",\ndesc:\"Poulet, lentilles, fenugrec et trid.\",\ntime:\"2 h 30\",\nportions:\"6\",\ndifficulty:\"Avanc\u00e9\",\ningredients:\"Poulet, lentilles, fenugrec, msemen.\",\ntech:\"Mijotage, effilochage.\",\nmission:\"R\u00e9aliser une rfissa familiale compl\u00e8te.\",\nobjectives:[\n\"Ma\u00eetriser la sauce\",\n\"Travailler le fenugrec\",\n\"Organiser le montage\"\n],\nsteps:[\n\"Pr\u00e9parer le poulet\",\n\"Cuire la sauce\",\n\"Pr\u00e9parer le trid\",\n\"Assembler\",\n\"Servir\"\n]\n},\n\n{\nlevel:2,\ntitle:\"Pastilla au poulet\",\ndesc:\"Feuilletage, amandes et \u00e9quilibre sucr\u00e9-sal\u00e9.\",\ntime:\"3 h\",\nportions:\"8\",\ndifficulty:\"Avanc\u00e9\",\ningredients:\"Poulet, amandes, \u0153ufs, feuilles de pastilla.\",\ntech:\"R\u00e9duction, montage, cuisson.\",\nmission:\"Cr\u00e9er une pastilla de c\u00e9r\u00e9monie.\",\nobjectives:[\n\"Ma\u00eetriser la farce\",\n\"Contr\u00f4ler l'humidit\u00e9\",\n\"R\u00e9ussir le croustillant\"\n],\nsteps:[\n\"Cuire le poulet\",\n\"R\u00e9duire la sauce\",\n\"Pr\u00e9parer les amandes\",\n\"Monter\",\n\"Cuire\"\n]\n},\n\n{\nlevel:2,\ntitle:\"Pastilla fruits de mer\",\ndesc:\"Version marine contemporaine.\",\ntime:\"2 h\",\nportions:\"8\",\ndifficulty:\"Avanc\u00e9\",\ningredients:\"Crevettes, calamars, poisson, vermicelles.\",\ntech:\"Saisie, \u00e9gouttage, montage.\",\nmission:\"Cr\u00e9er une pastilla marine premium.\",\nobjectives:[\n\"Cuire les fruits de mer\",\n\"\u00c9viter l'exc\u00e8s d'eau\",\n\"Ma\u00eetriser le montage\"\n],\nsteps:[\n\"Saisir les produits\",\n\"Pr\u00e9parer les vermicelles\",\n\"Refroidir\",\n\"Monter\",\n\"Cuire\"\n]\n},\n\n{\nlevel:2,\ntitle:\"Harira\",\ndesc:\"Soupe embl\u00e9matique et technique de liaison.\",\ntime:\"1 h 45\",\nportions:\"10\",\ndifficulty:\"Interm\u00e9diaire\",\ningredients:\"Tomate, lentilles, pois chiches, c\u00e9leri.\",\ntech:\"Mijotage, liaison.\",\nmission:\"Cr\u00e9er une harira r\u00e9guli\u00e8re pour dix portions.\",\nobjectives:[\n\"Cr\u00e9er une base parfum\u00e9e\",\n\"Cuire les l\u00e9gumineuses\",\n\"Ma\u00eetriser la liaison\"\n],\nsteps:[\n\"Pr\u00e9parer la base\",\n\"Mijoter\",\n\"Ajouter les l\u00e9gumineuses\",\n\"Lier\",\n\"Rectifier\"\n]\n},\n\n{\nlevel:2,\ntitle:\"Seffa Medfouna\",\ndesc:\"Vapeur, volaille et dressage monumental.\",\ntime:\"2 h\",\nportions:\"8\",\ndifficulty:\"Avanc\u00e9\",\ningredients:\"Vermicelles, poulet, cannelle, amandes.\",\ntech:\"Vapeur, montage.\",\nmission:\"Cr\u00e9er une seffa de r\u00e9ception.\",\nobjectives:[\n\"Ma\u00eetriser la vapeur\",\n\"Cuire le poulet\",\n\"Dresser harmonieusement\"\n],\nsteps:[\n\"Cuire le poulet\",\n\"Cuire les vermicelles\",\n\"Assaisonner\",\n\"Monter\",\n\"D\u00e9corer\"\n]\n},\n\n{\nlevel:2,\ntitle:\"M\u00e9choui\",\ndesc:\"Cuisson longue et ma\u00eetrise de l'agneau.\",\ntime:\"4 h\",\nportions:\"12\",\ndifficulty:\"Avanc\u00e9\",\ningredients:\"Agneau, cumin, sel.\",\ntech:\"R\u00f4tissage lent.\",\nmission:\"Organiser la production d'un m\u00e9choui d'\u00e9v\u00e9nement.\",\nobjectives:[\n\"Pr\u00e9parer l'agneau\",\n\"Contr\u00f4ler la temp\u00e9rature\",\n\"Pr\u00e9server le moelleux\"\n],\nsteps:[\n\"Assaisonner\",\n\"Pr\u00e9chauffer\",\n\"Cuire lentement\",\n\"Contr\u00f4ler\",\n\"Reposer\"\n]\n},\n\n{\nlevel:2,\ntitle:\"Briouates\",\ndesc:\"Pliage, farces et cuisson ma\u00eetris\u00e9e.\",\ntime:\"1 h 30\",\nportions:\"24\",\ndifficulty:\"Interm\u00e9diaire\",\ningredients:\"Feuilles, viande, fromage ou amandes.\",\ntech:\"Pliage, friture, cuisson four.\",\nmission:\"Cr\u00e9er quatre briouates diff\u00e9rentes.\",\nobjectives:[\n\"Ma\u00eetriser le pliage\",\n\"Cr\u00e9er plusieurs farces\",\n\"Contr\u00f4ler la cuisson\"\n],\nsteps:[\n\"Pr\u00e9parer les farces\",\n\"D\u00e9couper\",\n\"Plier\",\n\"Cuire\",\n\"Pr\u00e9senter\"\n]\n},\n\n{\nlevel:3,\ntitle:\"Tanjia Marrakchia\",\ndesc:\"La cuisson lente embl\u00e9matique de Marrakech.\",\ntime:\"4 h\",\nportions:\"6\",\ndifficulty:\"Avanc\u00e9\",\ningredients:\"Viande, citron confit, cumin, safran.\",\ntech:\"Cuisson lente en jarre.\",\nmission:\"Cr\u00e9er une tanjia authentique.\",\nobjectives:[\n\"Pr\u00e9parer l'assaisonnement\",\n\"Comprendre la cuisson lente\",\n\"Ma\u00eetriser la texture finale\"\n],\nsteps:[\n\"Pr\u00e9parer la viande\",\n\"Assaisonner\",\n\"Mettre en jarre\",\n\"Cuire\",\n\"Servir\"\n]\n},\n\n{\nlevel:3,\ntitle:\"Cuisine Fassie\",\ndesc:\"Raffinement, fruits secs et h\u00e9ritage culinaire de F\u00e8s.\",\ntime:\"1 h\",\nportions:\"Cours\",\ndifficulty:\"Expertise\",\ningredients:\"Amandes, cannelle, viandes, fruits secs.\",\ntech:\"\u00c9quilibre sucr\u00e9-sal\u00e9.\",\nmission:\"Composer un menu fassi trois services.\",\nobjectives:[\n\"Identifier le style fassi\",\n\"Comprendre les associations\",\n\"Construire un menu\"\n],\nsteps:[\n\"\u00c9tudier les plats\",\n\"Comparer les saveurs\",\n\"Choisir trois services\",\n\"Pr\u00e9senter le menu\"\n]\n},\n\n{\nlevel:3,\ntitle:\"Cuisine Marrakchie\",\ndesc:\"Tanjia, \u00e9pices et cuisine de caract\u00e8re.\",\ntime:\"1 h\",\nportions:\"Cours\",\ndifficulty:\"Expertise\",\ningredients:\"Viandes, cumin, citron, olives.\",\ntech:\"Cuisson lente.\",\nmission:\"Cr\u00e9er un menu marrakchi.\",\nobjectives:[\n\"Comprendre l'identit\u00e9 locale\",\n\"Choisir les plats\",\n\"Cr\u00e9er une coh\u00e9rence\"\n],\nsteps:[\n\"\u00c9tudier\",\n\"S\u00e9lectionner\",\n\"Structurer\",\n\"Pr\u00e9senter\"\n]\n},\n\n{\nlevel:3,\ntitle:\"Cuisine du Souss\",\ndesc:\"Traditions amazighes et produits du Sud.\",\ntime:\"1 h\",\nportions:\"Cours\",\ndifficulty:\"Expertise\",\ningredients:\"Argan, c\u00e9r\u00e9ales, amlou.\",\ntech:\"Cuissons rurales, broyage.\",\nmission:\"Cr\u00e9er une assiette inspir\u00e9e du Souss.\",\nobjectives:[\n\"Identifier les produits\",\n\"Respecter l'identit\u00e9 r\u00e9gionale\",\n\"Valoriser l'argan\"\n],\nsteps:[\n\"D\u00e9couvrir les ingr\u00e9dients\",\n\"Construire l'assiette\",\n\"Tester l'\u00e9quilibre\"\n]\n},\n\n{\nlevel:3,\ntitle:\"Cuisine du Rif\",\ndesc:\"Cuisine du Nord et produits m\u00e9diterran\u00e9ens.\",\ntime:\"1 h\",\nportions:\"Cours\",\ndifficulty:\"Expertise\",\ningredients:\"Poissons, l\u00e9gumes, huile d'olive.\",\ntech:\"Grillade, mijotage.\",\nmission:\"Cr\u00e9er un menu rifain.\",\nobjectives:[\n\"Identifier les influences\",\n\"Valoriser les produits\",\n\"Cr\u00e9er un menu r\u00e9gional\"\n],\nsteps:[\n\"\u00c9tudier\",\n\"S\u00e9lectionner\",\n\"Associer\",\n\"Pr\u00e9senter\"\n]\n},\n\n{\nlevel:3,\ntitle:\"Cuisine saharienne\",\ndesc:\"Traditions culinaires du Sud marocain.\",\ntime:\"1 h\",\nportions:\"Cours\",\ndifficulty:\"Expertise\",\ningredients:\"Viandes, c\u00e9r\u00e9ales, dattes.\",\ntech:\"Cuisson lente.\",\nmission:\"Cr\u00e9er une exp\u00e9rience culinaire du Sud.\",\nobjectives:[\n\"D\u00e9couvrir les produits\",\n\"Comprendre les usages\",\n\"Construire une exp\u00e9rience\"\n],\nsteps:[\n\"Observer\",\n\"Comprendre\",\n\"Composer\",\n\"Pr\u00e9senter\"\n]\n},\n\n{\nlevel:3,\ntitle:\"Cuisine c\u00f4ti\u00e8re\",\ndesc:\"Poissons et fruits de mer du Maroc.\",\ntime:\"1 h 30\",\nportions:\"6\",\ndifficulty:\"Interm\u00e9diaire\",\ningredients:\"Poisson, crevettes, citron, herbes.\",\ntech:\"Grillade, four, friture.\",\nmission:\"Cr\u00e9er une assiette marine marocaine.\",\nobjectives:[\n\"Choisir le poisson\",\n\"Ma\u00eetriser la chermoula\",\n\"Adapter la cuisson\"\n],\nsteps:[\n\"Pr\u00e9parer\",\n\"Mariner\",\n\"Cuire\",\n\"Dresser\"\n]\n},\n\n{\nlevel:3,\ntitle:\"Salades marocaines\",\ndesc:\"Zaalouk, taktouka et autres accompagnements.\",\ntime:\"1 h 30\",\nportions:\"8\",\ndifficulty:\"Interm\u00e9diaire\",\ningredients:\"Aubergine, poivron, tomate, carotte.\",\ntech:\"Grillade, mijotage.\",\nmission:\"Cr\u00e9er un assortiment de six salades.\",\nobjectives:[\n\"Varier les textures\",\n\"\u00c9quilibrer l'assaisonnement\",\n\"Cr\u00e9er un plateau harmonieux\"\n],\nsteps:[\n\"Pr\u00e9parer les l\u00e9gumes\",\n\"Cuire\",\n\"Assaisonner\",\n\"Refroidir\",\n\"Dresser\"\n]\n},\n\n{\nlevel:3,\ntitle:\"Msemen & Baghrir\",\ndesc:\"Les incontournables du petit-d\u00e9jeuner marocain.\",\ntime:\"2 h\",\nportions:\"12\",\ndifficulty:\"Interm\u00e9diaire\",\ningredients:\"Farine, semoule, levure.\",\ntech:\"P\u00e9trissage, feuilletage, cuisson plaque.\",\nmission:\"R\u00e9aliser msemen et baghrir.\",\nobjectives:[\n\"Ma\u00eetriser la p\u00e2te\",\n\"Cr\u00e9er le feuilletage\",\n\"Obtenir les mille trous\"\n],\nsteps:[\n\"Pr\u00e9parer les p\u00e2tes\",\n\"Reposer\",\n\"Fa\u00e7onner\",\n\"Cuire\",\n\"Servir\"\n]\n},\n\n{\nlevel:3,\ntitle:\"P\u00e2tisserie marocaine\",\ndesc:\"Amandes, miel et fleur d'oranger.\",\ntime:\"3 h\",\nportions:\"30 pi\u00e8ces\",\ndifficulty:\"Avanc\u00e9\",\ningredients:\"Amandes, miel, fleur d'oranger.\",\ntech:\"Fa\u00e7onnage, cuisson, gla\u00e7age.\",\nmission:\"Cr\u00e9er un plateau de r\u00e9ception.\",\nobjectives:[\n\"Travailler la p\u00e2te d'amande\",\n\"Ma\u00eetriser le miel\",\n\"Cr\u00e9er des pi\u00e8ces r\u00e9guli\u00e8res\"\n],\nsteps:[\n\"Pr\u00e9parer\",\n\"Fa\u00e7onner\",\n\"Cuire\",\n\"Finir\",\n\"Pr\u00e9senter\"\n]\n},\n\n{\nlevel:4,\ntitle:\"Dressage gastronomique\",\ndesc:\"Faire \u00e9voluer le plat marocain vers la grande table.\",\ntime:\"1 h 30\",\nportions:\"Atelier\",\ndifficulty:\"Expert\",\ningredients:\"Selon cr\u00e9ation.\",\ntech:\"Dressage, contraste, volumes.\",\nmission:\"Transformer un tajine en assiette gastronomique.\",\nobjectives:[\n\"Cr\u00e9er une composition\",\n\"G\u00e9rer les volumes\",\n\"Pr\u00e9server l'identit\u00e9\"\n],\nsteps:[\n\"D\u00e9construire le plat\",\n\"Identifier les \u00e9l\u00e9ments\",\n\"Composer\",\n\"Dresser\"\n]\n},\n\n{\nlevel:4,\ntitle:\"Menu d\u00e9gustation marocain\",\ndesc:\"Cr\u00e9er une exp\u00e9rience de 7 services.\",\ntime:\"2 h\",\nportions:\"Projet\",\ndifficulty:\"Expert\",\ningredients:\"Produits de saison.\",\ntech:\"Menu engineering.\",\nmission:\"Cr\u00e9er votre menu d\u00e9gustation.\",\nobjectives:[\n\"Cr\u00e9er une progression\",\n\"Contr\u00f4ler les portions\",\n\"\u00c9viter la r\u00e9p\u00e9tition\"\n],\nsteps:[\n\"Choisir le th\u00e8me\",\n\"D\u00e9finir sept services\",\n\"\u00c9quilibrer\",\n\"Chiffrer\"\n]\n},\n\n{\nlevel:4,\ntitle:\"Food Cost\",\ndesc:\"Ma\u00eetriser co\u00fbt mati\u00e8re et rentabilit\u00e9.\",\ntime:\"1 h 30\",\nportions:\"Gestion\",\ndifficulty:\"Professionnel\",\ningredients:\"Fiches techniques.\",\ntech:\"Calcul co\u00fbt mati\u00e8re.\",\nmission:\"Chiffrer un couscous pour cinquante personnes.\",\nobjectives:[\n\"Calculer le co\u00fbt portion\",\n\"Fixer le prix\",\n\"Mesurer la marge\"\n],\nsteps:[\n\"Lister les produits\",\n\"Calculer les co\u00fbts\",\n\"Calculer la portion\",\n\"Fixer le prix\"\n]\n},\n\n{\nlevel:4,\ntitle:\"Stocks & approvisionnements\",\ndesc:\"\u00c9viter rupture, perte et surstock.\",\ntime:\"1 h\",\nportions:\"Gestion\",\ndifficulty:\"Professionnel\",\ningredients:\"Tous produits.\",\ntech:\"FIFO, inventaire.\",\nmission:\"Cr\u00e9er un stock-type de restaurant marocain.\",\nobjectives:[\n\"Planifier les besoins\",\n\"Contr\u00f4ler le stock\",\n\"R\u00e9duire les pertes\"\n],\nsteps:[\n\"Classer\",\n\"Quantifier\",\n\"Organiser\",\n\"Contr\u00f4ler\"\n]\n},\n\n{\nlevel:4,\ntitle:\"Cr\u00e9ation de carte\",\ndesc:\"Construire une carte rentable et coh\u00e9rente.\",\ntime:\"2 h\",\nportions:\"Projet\",\ndifficulty:\"Expert\",\ningredients:\"Selon concept.\",\ntech:\"Menu engineering.\",\nmission:\"Cr\u00e9er une carte de vingt r\u00e9f\u00e9rences.\",\nobjectives:[\n\"Structurer l'offre\",\n\"Limiter les doublons\",\n\"Valoriser les plats rentables\"\n],\nsteps:[\n\"D\u00e9finir le concept\",\n\"Cr\u00e9er les cat\u00e9gories\",\n\"Choisir les plats\",\n\"Fixer les prix\"\n]\n},\n\n{\nlevel:4,\ntitle:\"Direction de brigade\",\ndesc:\"Manager les postes et le service.\",\ntime:\"1 h 30\",\nportions:\"Management\",\ndifficulty:\"Executive\",\ningredients:\"\u2014\",\ntech:\"Leadership op\u00e9rationnel.\",\nmission:\"Cr\u00e9er l'organigramme de votre brigade.\",\nobjectives:[\n\"D\u00e9finir les postes\",\n\"Organiser le service\",\n\"Piloter la qualit\u00e9\"\n],\nsteps:[\n\"D\u00e9finir la brigade\",\n\"Attribuer les r\u00f4les\",\n\"Cr\u00e9er le briefing\",\n\"Contr\u00f4ler le service\"\n]\n},\n\n{\nlevel:4,\ntitle:\"Banquets & Palace\",\ndesc:\"Produire en grande quantit\u00e9 avec r\u00e9gularit\u00e9.\",\ntime:\"2 h\",\nportions:\"200\",\ndifficulty:\"Executive\",\ningredients:\"Selon menu.\",\ntech:\"Production \u00e9v\u00e9nementielle.\",\nmission:\"Organiser un banquet marocain de 200 personnes.\",\nobjectives:[\n\"Calculer les volumes\",\n\"Planifier la production\",\n\"Coordonner le service\"\n],\nsteps:[\n\"Cr\u00e9er le menu\",\n\"Calculer\",\n\"Planifier\",\n\"Distribuer\",\n\"Servir\"\n]\n},\n\n{\nlevel:4,\ntitle:\"Cuisine marocaine contemporaine\",\ndesc:\"Cr\u00e9er sans d\u00e9naturer le patrimoine.\",\ntime:\"2 h\",\nportions:\"Atelier\",\ndifficulty:\"Expert\",\ningredients:\"Produits marocains.\",\ntech:\"Cr\u00e9ativit\u00e9 culinaire.\",\nmission:\"Cr\u00e9er trois assiettes contemporaines.\",\nobjectives:[\n\"Moderniser les textures\",\n\"Conserver les saveurs\",\n\"Cr\u00e9er une signature\"\n],\nsteps:[\n\"Choisir un classique\",\n\"Identifier son ADN\",\n\"R\u00e9interpr\u00e9ter\",\n\"Dresser\"\n]\n},\n\n{\nlevel:4,\ntitle:\"Cr\u00e9er son restaurant marocain\",\ndesc:\"Du concept \u00e0 la rentabilit\u00e9.\",\ntime:\"3 h\",\nportions:\"Projet\",\ndifficulty:\"Executive\",\ningredients:\"\u2014\",\ntech:\"Business model.\",\nmission:\"Cr\u00e9er votre propre concept de restaurant.\",\nobjectives:[\n\"D\u00e9finir le positionnement\",\n\"Cr\u00e9er la carte\",\n\"Pr\u00e9voir les charges\",\n\"Calculer la rentabilit\u00e9\"\n],\nsteps:[\n\"D\u00e9finir le concept\",\n\"D\u00e9finir la client\u00e8le\",\n\"Cr\u00e9er la carte\",\n\"Chiffrer\",\n\"Pr\u00e9senter le projet\"\n]\n},\n\n{\nlevel:4,\ntitle:\"Examen Executive Chef MZA\",\ndesc:\"\u00c9preuve finale du parcours Royal Gastronomy.\",\ntime:\"3 h\",\nportions:\"Examen\",\ndifficulty:\"Royal\",\ningredients:\"Panier impos\u00e9.\",\ntech:\"Toutes techniques.\",\nmission:\"Cr\u00e9er entr\u00e9e, plat et dessert puis d\u00e9fendre votre concept.\",\nobjectives:[\n\"Ma\u00eetriser le temps\",\n\"Cr\u00e9er un menu coh\u00e9rent\",\n\"Contr\u00f4ler le co\u00fbt\",\n\"Pr\u00e9senter professionnellement\"\n],\nsteps:[\n\"D\u00e9couvrir le panier\",\n\"Cr\u00e9er le menu\",\n\"Produire\",\n\"Dresser\",\n\"Pr\u00e9senter\"\n]\n}\n\n];\n\n\n\/* =============================================\n   STATE\n============================================= *\/\n\nlet activeCourse = null;\n\nlet completed =\nJSON.parse(localStorage.getItem(\"mzaRoyalCompleted\") || \"[]\");\n\n\n\/* =============================================\n   CREATE CARDS\n============================================= *\/\n\nfunction buildCourses(){\n\n  for(let level=1;level<=4;level++){\n\n    const container =\n      document.getElementById(\"mzaLevel\"+level);\n\n    courses.forEach(function(c,index){\n\n      if(c.level !== level) return;\n\n      const card = document.createElement(\"div\");\n      card.className = \"course-card\";\n\n      card.innerHTML = `\n        <div class=\"course-top\">\n          <div class=\"course-number\">\n            ${String(index+1).padStart(2,\"0\")}\n          <\/div>\n          <h4>${c.title}<\/h4>\n        <\/div>\n\n        <div class=\"course-body\">\n          <p>${c.desc}<\/p>\n\n          <div class=\"course-meta\">\n            <span>${c.time}<\/span>\n            <span>\n              ${completed.includes(index) ? \"\u2713 VALID\u00c9\" : \"OUVRIR \u2192\"}\n            <\/span>\n          <\/div>\n        <\/div>\n      `;\n\n      card.onclick = function(){\n        openCourse(index);\n      };\n\n      container.appendChild(card);\n\n    });\n\n  }\n\n}\n\n\n\/* =============================================\n   OPEN COURSE\n============================================= *\/\n\nfunction openCourse(index){\n\n  activeCourse = index;\n\n  const c = courses[index];\n\n  document.getElementById(\"mzaViewerTitle\").textContent =\n    c.title;\n\n  document.getElementById(\"mzaViewerDesc\").textContent =\n    c.desc;\n\n  document.getElementById(\"mzaViewerTime\").textContent =\n    c.time;\n\n  document.getElementById(\"mzaViewerPortions\").textContent =\n    c.portions;\n\n  document.getElementById(\"mzaViewerDifficulty\").textContent =\n    c.difficulty;\n\n  document.getElementById(\"mzaViewerLevel\").textContent =\n    \"Niveau \"+c.level;\n\n  document.getElementById(\"mzaViewerIngredients\").textContent =\n    c.ingredients;\n\n  document.getElementById(\"mzaViewerTechniques\").textContent =\n    c.tech;\n\n  document.getElementById(\"mzaViewerMission\").textContent =\n    c.mission;\n\n  const obj =\n    document.getElementById(\"mzaViewerObjectives\");\n\n  obj.innerHTML=\"\";\n\n  c.objectives.forEach(function(item){\n\n    const li=document.createElement(\"li\");\n    li.textContent=item;\n    obj.appendChild(li);\n\n  });\n\n  const steps =\n    document.getElementById(\"mzaViewerSteps\");\n\n  steps.innerHTML=\"\";\n\n  c.steps.forEach(function(item){\n\n    const li=document.createElement(\"li\");\n    li.textContent=item;\n    steps.appendChild(li);\n\n  });\n\n  const validation =\n    document.getElementById(\"mzaValidateCourse\");\n\n  validation.textContent =\n    completed.includes(index)\n    ? \"\u2713 MODULE D\u00c9J\u00c0 VALID\u00c9\"\n    : \"\u2713 VALIDER CE MODULE\";\n\n  document\n    .getElementById(\"mzaViewerShell\")\n    .classList.add(\"show\");\n\n}\n\n\n\/* =============================================\n   CLOSE\n============================================= *\/\n\nwindow.mzaCloseCourse=function(){\n\n  document\n    .getElementById(\"mzaViewerShell\")\n    .classList.remove(\"show\");\n\n};\n\n\n\/* =============================================\n   VALIDATE\n============================================= *\/\n\ndocument\n.getElementById(\"mzaValidateCourse\")\n.addEventListener(\"click\",function(){\n\n  if(activeCourse===null) return;\n\n  if(!completed.includes(activeCourse)){\n\n    completed.push(activeCourse);\n\n    localStorage.setItem(\n      \"mzaRoyalCompleted\",\n      JSON.stringify(completed)\n    );\n\n    showToast(\n      \"\ud83c\udfc5 Module valid\u00e9 \u2014 votre Passeport Chef progresse.\"\n    );\n\n  }else{\n\n    showToast(\n      \"\u2713 Ce module est d\u00e9j\u00e0 valid\u00e9.\"\n    );\n\n  }\n\n  updateProgress();\n\n  document.getElementById(\"mzaValidateCourse\")\n    .textContent=\"\u2713 MODULE D\u00c9J\u00c0 VALID\u00c9\";\n\n});\n\n\n\/* =============================================\n   PROGRESSION\n============================================= *\/\n\nfunction updateProgress(){\n\n  const total=courses.length;\n\n  const number=completed.length;\n\n  const percent=Math.round(\n    (number\/total)*100\n  );\n\n  document\n  .getElementById(\"mzaProgressBar\")\n  .style.width=percent+\"%\";\n\n  document\n  .getElementById(\"mzaProgressText\")\n  .textContent=\n    number+\" cours valid\u00e9\"+(number>1?\"s\":\"\")+\n    \" sur \"+total;\n\n  document\n  .getElementById(\"mzaProgressPercent\")\n  .textContent=percent+\"%\";\n\n  updateBadges(number);\n\n}\n\n\n\/* =============================================\n   BADGES\n============================================= *\/\n\nfunction updateBadges(number){\n\n  const levels=[\n    {id:\"badge1\",needed:10},\n    {id:\"badge2\",needed:20},\n    {id:\"badge3\",needed:30},\n    {id:\"badge4\",needed:40}\n  ];\n\n  levels.forEach(function(b){\n\n    const el=document.getElementById(b.id);\n\n    if(number>=b.needed){\n\n      el.style.background=\n        \"linear-gradient(135deg,#f8e8b1,#c9a45b)\";\n\n      el.style.borderColor=\"#c9a45b\";\n\n    }else{\n\n      el.style.opacity=\".55\";\n\n    }\n\n  });\n\n}\n\n\n\/* =============================================\n   RESET\n============================================= *\/\n\nwindow.mzaResetProgress=function(){\n\n  if(\n    !confirm(\n      \"Voulez-vous vraiment r\u00e9initialiser votre progression ?\"\n    )\n  ) return;\n\n  completed=[];\n\n  localStorage.removeItem(\"mzaRoyalCompleted\");\n\n  updateProgress();\n\n  showToast(\n    \"Progression r\u00e9initialis\u00e9e.\"\n  );\n\n};\n\n\n\/* =============================================\n   EXAM ACCESS\n============================================= *\/\n\nwindow.mzaStartExam=function(){\n\n  const message =\n    document.getElementById(\"examMessage\");\n\n  if(completed.length>=40){\n\n    message.innerHTML=\n      \"\ud83d\udc51 Acc\u00e8s autoris\u00e9 \u2014 vous avez termin\u00e9 les 40 modules. Vous pouvez passer l'Examen Royal du Chef.\";\n\n  }\n\n  else if(completed.length>=30){\n\n    message.innerHTML=\n      \"\ud83e\udd47 Tr\u00e8s proche de l'examen : \"+\n      (40-completed.length)+\n      \" module(s) restent \u00e0 valider.\";\n\n  }\n\n  else{\n\n    message.innerHTML=\n      \"\ud83d\udcda Acc\u00e8s \u00e0 l'examen apr\u00e8s validation des 40 modules. \"+\n      completed.length+\n      \"\/40 actuellement valid\u00e9s.\";\n\n  }\n\n};\n\n\n\/* =============================================\n   NAVIGATION\n============================================= *\/\n\nwindow.mzaRoyalGo=function(id){\n\n  const el=document.getElementById(id);\n\n  if(!el) return;\n\n  el.scrollIntoView({\n    behavior:\"smooth\",\n    block:\"start\"\n  });\n\n};\n\n\n\/* =============================================\n   TOAST\n============================================= *\/\n\nfunction showToast(text){\n\n  const toast=\n    document.getElementById(\"mzaToast\");\n\n  toast.textContent=text;\n\n  toast.classList.add(\"show\");\n\n  setTimeout(function(){\n\n    toast.classList.remove(\"show\");\n\n  },2600);\n\n}\n\n\n\/* =============================================\n   CLICK OUTSIDE MODAL\n============================================= *\/\n\ndocument\n.getElementById(\"mzaViewerShell\")\n.addEventListener(\"click\",function(e){\n\n  if(e.target===this){\n\n    mzaCloseCourse();\n\n  }\n\n});\n\n\n\/* =============================================\n   INIT\n============================================= *\/\n\nbuildCourses();\nupdateProgress();\n\n})();\n<\/script>\n\n<\/div>\n\n\n\n<!-- ===========================================\nHERO VISUEL PRESTIGE\n\u00c0 placer dans .hero-inner, sous le texte\n=========================================== -->\n\n<div class=\"pmr-hero-gallery\">\n\n  <div class=\"pmr-hero-main\">\n    <img decoding=\"async\"\n      src=\"https:\/\/fancysgourmet.com\/wp-content\/uploads\/2025\/03\/IMG_1131-scaled.webp\"\n      alt=\"Plateau de p\u00e2tisseries marocaines aux amandes\">\n  <\/div>\n\n  <div class=\"pmr-hero-side\">\n\n    <img decoding=\"async\"\n      src=\"https:\/\/www.lifegate.it\/app\/uploads\/dolci-cucina-marocchina.jpg\"\n      alt=\"Assortiment de p\u00e2tisseries marocaines\">\n\n    <img decoding=\"async\"\n      src=\"https:\/\/i0.wp.com\/www.zampatelmundo.com\/wp-content\/uploads\/2018\/05\/fullsizeoutput_20a5.jpeg?fit=3024%2C3024&#038;ssl=1\"\n      alt=\"Th\u00e9 et p\u00e2tisseries marocaines\">\n\n  <\/div>\n\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\ud83c\uddf2\ud83c\udde6 MZA Royal Gastronomy Cuisine Marocaine Royal Pro Max L&#8217;h\u00e9ritage culinaire du Maroc transmis comme un art. Des cuisines familiales aux grandes tables, des recettes ancestrales au niveau Executive Chef. \ud83d\udc68\u200d\ud83c\udf73 D\u00e9couvrir les 40 cours \ud83c\udfc5 Mon Passeport Chef H\u00e9ritage 40 cours Progression Passeport Chef Examen final 40 Modules professionnels 4 Niveaux d&#8217;excellence 100+ Techniques [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1730","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/maroczain.com\/cuisine.maroczain.com\/wp-json\/wp\/v2\/pages\/1730","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/maroczain.com\/cuisine.maroczain.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/maroczain.com\/cuisine.maroczain.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/maroczain.com\/cuisine.maroczain.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/maroczain.com\/cuisine.maroczain.com\/wp-json\/wp\/v2\/comments?post=1730"}],"version-history":[{"count":3,"href":"https:\/\/maroczain.com\/cuisine.maroczain.com\/wp-json\/wp\/v2\/pages\/1730\/revisions"}],"predecessor-version":[{"id":1738,"href":"https:\/\/maroczain.com\/cuisine.maroczain.com\/wp-json\/wp\/v2\/pages\/1730\/revisions\/1738"}],"wp:attachment":[{"href":"https:\/\/maroczain.com\/cuisine.maroczain.com\/wp-json\/wp\/v2\/media?parent=1730"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}