{"id":9,"date":"2026-11-12T16:49:06","date_gmt":"2026-11-12T16:49:06","guid":{"rendered":"https:\/\/blassti.ma\/?page_id=9"},"modified":"2026-11-13T12:39:32","modified_gmt":"2026-11-13T12:39:32","slug":"home","status":"publish","type":"page","link":"https:\/\/blassti.ma\/","title":{"rendered":"Home"},"content":{"rendered":"\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=IBM+Plex+Sans+Arabic:wght@400;500;600;700&#038;display=swap\">\n<link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=Fraunces:opsz,wght@9..144,600&#038;family=Plus+Jakarta+Sans:wght@400;500;600;700;800&#038;display=swap\">\n<link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;display=swap\">\n<style>\n.bl{font-family:Inter,system-ui,sans-serif;color:#16201C;background:#fff;overflow-x:hidden;line-height:1.5;font-size:16px;text-align:left}\n.bl *{box-sizing:border-box;font-family:inherit}\n.bl h1,.bl h2,.bl h3,.bl p,.bl ul,.bl ol{margin:0;padding:0}\n.bl h1,.bl h2,.bl h3{color:inherit}\n.bl{margin:0!important}\n.bl ul,.bl ol{list-style:none}\n.bl a{color:#0E6B4E;text-decoration:none}\n.bl a:hover{color:#0A4A37}\n.bl h1{font-size:clamp(38px,4.6vw,62px);line-height:1.06;font-weight:700;letter-spacing:-.035em}\n.bl h2{font-size:clamp(30px,3.2vw,44px);line-height:1.1;font-weight:700;letter-spacing:-.03em}\n.bl h3{font-size:20px;line-height:1.25;font-weight:700;letter-spacing:-.01em}\n.bl-w{max-width:1200px;margin:0 auto;padding-left:24px;padding-right:24px}\n.bl-row{display:flex;flex-wrap:wrap}\n.bl-col{display:flex;flex-direction:column}\n.bl-lead{font-size:18px;line-height:1.6;color:#48544F}\n.bl-muted{color:#48544F}\n.bl-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border:0;border-radius:8px;background:#0E6B4E;color:#fff!important;font-size:15px;font-weight:600;cursor:pointer;line-height:1}\n.bl-btn.dark{background:#16201C}\n.bl-btn.light{background:#fff;color:#16201C!important}\n.bl label{display:block;font-size:13px;font-weight:600;margin-bottom:6px}\n.bl input[type=text],.bl input[type=email]{width:100%;height:48px;padding:0 14px;border:1px solid #C9D1CD;border-radius:8px;font-size:15px;color:#16201C;background:#fff}\n.bl input[type=range]{width:100%;height:44px;accent-color:#0E6B4E}\n.bl-head{border-bottom:1px solid #E6EAE8}\n.bl-head .bl-w{padding-top:14px;padding-bottom:14px;align-items:center;justify-content:space-between;gap:12px 32px}\n.bl-logo svg{margin-right:10px}\n.bl-logo{display:flex;align-items:center;min-height:44px;font-size:21px;font-weight:700;letter-spacing:-.02em;color:#16201C!important}\n.bl-logo span{color:#0E6B4E}\n.bl-nav{flex:1 1 auto;align-items:center;gap:28px;font-size:15px;font-weight:500}\n.bl-nav a{color:#16201C;padding:12px 0}\n.bl-hero{background:#F4F7F5}\n.bl-hero .bl-w{padding-top:72px;padding-bottom:80px;align-items:center;gap:56px}\n.bl-hero-l{flex:1 1 500px;min-width:0;gap:24px}\n.bl-search{background:#fff;border:1px solid #DCE2DF;border-radius:14px;padding:20px;gap:14px;box-shadow:0 1px 2px rgba(22,32,28,.04),0 12px 32px rgba(22,32,28,.06)}\n.bl-search>div{flex:1 1 150px}\n.bl-search>div.full{flex:1 1 100%}\n.bl-search .bl-btn{flex:1 1 150px;align-self:flex-end}\n.bl-note{flex:1 1 100%;font-size:14px;font-weight:600;color:#0E6B4E}\n.bl-phone-wrap{flex:1 1 380px;min-width:0;display:flex;justify-content:center}\n.bl-phone{position:relative;width:300px;height:600px;border:10px solid #16201C;border-radius:44px;overflow:hidden;background:#fff;box-shadow:0 30px 60px rgba(22,32,28,.18)}\n.bl-map{position:relative;background-color:#E8EEEB;background-image:linear-gradient(#F7FAF8 3px,transparent 3px),linear-gradient(90deg,#F7FAF8 3px,transparent 3px);background-size:60px 60px}\n.bl-pin{position:absolute;width:32px;height:32px;border-radius:50%;background:#0E6B4E;color:#fff;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 8px rgba(0,0,0,.2)}\n.bl-pin.o{background:#fff;color:#0E6B4E;border:2px solid #0E6B4E}\n.bl-vals{border-bottom:1px solid #E6EAE8}\n.bl-vals .bl-w>div{flex:1 1 240px;padding:28px 24px 28px 0;gap:6px}\n.bl-vals span{font-size:14px;color:#48544F}\n.bl-sec{padding-top:96px;padding-bottom:96px}\n.bl-tabs{gap:8px;padding:36px 0 28px}\n.bl-tabs button{height:46px;padding:0 20px;border-radius:8px;border:1px solid #C9D1CD;background:#fff;color:#16201C;font-size:15px;font-weight:600;cursor:pointer}\n.bl-tabs button[aria-pressed=true]{background:#16201C;border-color:#16201C;color:#fff}\n.bl-case{border:1px solid #DCE2DF;border-radius:16px;overflow:hidden}\n.bl-case-t{flex:1 1 440px;min-width:0;padding:clamp(28px,4vw,56px);justify-content:center;gap:18px}\n.bl-case-t h3{font-size:clamp(26px,2.6vw,34px);line-height:1.15;letter-spacing:-.025em}\n.bl-case-m{flex:1 1 440px;min-width:0;min-height:380px;background-size:68px 68px}\n.bl-card{position:absolute;left:24px;right:24px;bottom:24px;max-width:420px;background:#fff;border:1px solid #DCE2DF;border-radius:12px;padding:18px;gap:10px;box-shadow:0 12px 28px rgba(22,32,28,.1)}\n.bl-sb{display:flex;justify-content:space-between;align-items:baseline;gap:12px}\n.bl-grey{background:#F4F7F5}\n.bl-steps{gap:24px;margin-top:44px}\n.bl-steps li{flex:1 1 300px;background:#fff;border:1px solid #DCE2DF;border-radius:14px;padding:28px;display:flex;flex-direction:column;gap:12px}\n.bl-steps b{font-size:14px;color:#0E6B4E}\n.bl-steps p{font-size:15px;line-height:1.6;color:#48544F}\n.bl-tech{background:#0A3B2D;color:#fff}\n.bl-tech .bl-w{padding-top:104px;padding-bottom:104px;align-items:center;gap:64px}\n.bl-tech .bl-w>div{flex:1 1 420px;min-width:0}\n.bl-tech li{padding:16px 0;border-top:1px solid #2B5E4D}\n.bl-tech li:last-child{border-bottom:1px solid #2B5E4D}\n.bl-lot{background:#082F24;border:1px solid #2B5E4D;border-radius:16px;padding:24px;gap:18px}\n.bl-bays{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px}\n.bl-bays div{height:62px;border-radius:6px;background:#1C4A3C;border:1px solid #2B5E4D;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:transparent;transition:background .4s}\n.bl-bays div.f{background:#2F9E57;border-color:#2F9E57;color:#06231A}\n.bl-live{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#8FDDB3}\n.bl-live i{width:8px;height:8px;border-radius:50%;background:#8FDDB3;animation:bl-live 1.6s ease-in-out infinite}\n.bl-hosts{padding-top:104px;padding-bottom:104px;align-items:center;gap:64px}\n.bl-hosts>*{flex:1 1 420px;min-width:0}\n.bl-calc{border:1px solid #DCE2DF;border-radius:16px;padding:28px;gap:22px;box-shadow:0 12px 32px rgba(22,32,28,.06)}\n.bl-calc label{font-size:15px;margin:0}\n.bl-total{font-size:40px;font-weight:700;letter-spacing:-.03em;font-variant-numeric:tabular-nums}\n.bl-biz{background:#16201C;color:#fff;border-radius:16px;padding:clamp(28px,4.5vw,56px);align-items:center;justify-content:space-between;gap:28px}\n.bl-biz h2{font-size:clamp(26px,2.6vw,34px);line-height:1.15}\n.bl-faq{max-width:860px;margin:0 auto;padding:96px 24px}\n.bl-faq details{border-bottom:1px solid #C9D1CD}\n.bl-faq summary{padding:20px 0;font-size:18px;font-weight:600;cursor:pointer}\n.bl-faq details p{padding:0 0 22px;line-height:1.6;color:#48544F}\n.bl-app{padding-top:104px;padding-bottom:104px;align-items:center;justify-content:space-between;gap:40px}\n.bl-app h2{font-size:clamp(32px,3.6vw,50px)}\n.bl-app form{flex:1 1 380px;min-width:0;align-items:flex-end;gap:10px}\n.bl-foot{background:#16201C;color:#D5DBD8}\n.bl-foot .bl-w{padding-top:64px;padding-bottom:28px}\n.bl-foot a{color:#D5DBD8;padding:10px 0;font-size:15px}\n.bl-foot strong{color:#fff;padding-bottom:6px;font-size:15px}\n@keyframes bl-s1{0%,4%{opacity:0;transform:translateY(-18px)}9%,94%{opacity:1;transform:none}100%{opacity:0}}\n@keyframes bl-s2{0%,10%{opacity:0;transform:translateY(-18px)}15%,94%{opacity:1;transform:none}100%{opacity:0}}\n@keyframes bl-s3{0%,16%{opacity:0;transform:translateY(-18px)}21%,94%{opacity:1;transform:none}100%{opacity:0}}\n@keyframes bl-draw{0%,26%{stroke-dashoffset:300}48%,94%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}\n@keyframes bl-sheet{0%,48%{transform:translateY(110%)}56%,94%{transform:none;opacity:1}100%{transform:none;opacity:0}}\n@keyframes bl-toast{0%,66%{opacity:0;transform:translateY(-12px)}72%,94%{opacity:1;transform:none}100%{opacity:0}}\n@keyframes bl-live{0%,100%{opacity:1}50%{opacity:.3}}\n@media (prefers-reduced-motion:reduce){.bl *{animation:none!important}}\n\n.bl{overflow-x:clip}\n.bl-head{position:sticky;top:var(--wp-admin--admin-bar--height,0px);z-index:20;background:rgba(255,255,255,.94);backdrop-filter:blur(8px)}\n.bl-head-r{display:flex;flex-wrap:wrap;align-items:center;gap:12px}\n.bl-lang{display:flex;border:1px solid #D5DBD8;border-radius:8px;overflow:hidden}\n.bl-lang button{min-width:44px;height:44px;border:0;background:#fff;color:#16201C;font-size:13px;font-weight:600;cursor:pointer}\n.bl-lang button[aria-pressed=true]{background:#16201C;color:#fff}\n.bl-btn{transition:transform .15s ease,box-shadow .15s ease}\n.bl-btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(14,107,78,.25)}\n.bl-hero-l>*{animation:bl-up .8s ease both}\n.bl-hero-l>*:nth-child(2){animation-delay:.12s}\n.bl-hero-l>*:nth-child(3){animation-delay:.24s}\n.bl-hero-l>*:nth-child(4){animation-delay:.36s}\n.bl-phone-wrap{animation:bl-up 1s .3s ease both}\n.bl-phone{animation:bl-float 6s ease-in-out infinite}\n.bl-tick{direction:ltr;overflow:hidden;border-bottom:1px solid #E6EAE8;padding:16px 0;background:#fff}\n.bl-tick>div{display:flex;gap:44px;width:max-content;white-space:nowrap;font-size:15px;font-weight:600;color:#48544F;animation:bl-tick 42s linear infinite}\n.bl-tick i{width:6px;height:6px;border-radius:50%;background:#2F9E57;align-self:center}\n.bl-road{direction:ltr;position:relative;height:40px;margin-top:36px;border-bottom:3px dashed #B9C4BF;overflow:hidden}\n.bl-road svg{position:absolute;bottom:3px;left:0;animation:bl-drive 10s linear infinite}\n.bl .bl-steps{margin-top:24px}\n.bl-bays{position:relative;overflow:hidden}\n.bl-bays::after{content:\"\";position:absolute;top:0;bottom:0;left:-80px;width:80px;background:linear-gradient(90deg,transparent,rgba(143,221,179,.35),transparent);animation:bl-scan 3.4s linear infinite}\n.bl-case-m .bl-pin::after{content:\"\";position:absolute;inset:-2px;border-radius:50%;border:2px solid #0E6B4E;animation:bl-ripple 2.2s ease-out infinite}\n.bl-card.pop,.bl-case-t.pop{animation:bl-pop .5s ease both}\n.bl-rv{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}\n.bl-rv.in{opacity:1;transform:none}\n.bl[dir=rtl]{text-align:right;font-family:'IBM Plex Sans Arabic',Inter,system-ui,sans-serif}\n.bl[dir=rtl] h1,.bl[dir=rtl] h2,.bl[dir=rtl] h3,.bl[dir=rtl] .bl-total{letter-spacing:0;line-height:1.35}\n.bl[dir=rtl] .bl-vals .bl-w>div{padding:28px 0 28px 24px}\n.bl[dir=rtl] .bl-logo{direction:ltr}\n@keyframes bl-up{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}\n@keyframes bl-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}\n@keyframes bl-tick{to{transform:translateX(-50%)}}\n@keyframes bl-drive{from{transform:translateX(-70px)}to{transform:translateX(1280px)}}\n@keyframes bl-scan{to{left:100%}}\n@keyframes bl-ripple{from{transform:scale(1);opacity:.7}to{transform:scale(2);opacity:0}}\n@keyframes bl-pop{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}\n@media (prefers-reduced-motion:reduce){.bl-rv{opacity:1;transform:none}}\n\nhtml{scroll-behavior:smooth}\n.bl section[id]{scroll-margin-top:96px}\n.bl-demo{background:#16201C;color:#fff}\n.bl-demo .bl-w{align-items:center;gap:56px}\n.bl-demo-t{flex:1 1 420px;min-width:0;gap:20px;align-items:flex-start}\n.bl-demo-t li{padding:14px 0;border-top:1px solid #36423D;font-size:16px}\n.bl-demo-t li:last-child{border-bottom:1px solid #36423D}\n.bl-demo-t ol{align-self:stretch;counter-reset:d}\n.bl-demo-t li::before{counter-increment:d;content:counter(d);display:inline-flex;width:26px;height:26px;margin-inline-end:12px;border-radius:50%;background:#2F9E57;color:#06231A;font-size:13px;font-weight:700;align-items:center;justify-content:center}\n.bl-demo-p{flex:1 1 360px;min-width:0;display:flex;justify-content:center}\n\n.bl-menu{display:none}\n@media (max-width:1140px){\n.bl .bl-menu{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid #D5DBD8;border-radius:8px;background:#fff;color:#16201C;cursor:pointer;padding:0}\n.bl-head .bl-w{gap:8px 12px;padding-top:10px;padding-bottom:10px}\n.bl-head-r{margin-inline-start:auto;flex-wrap:nowrap;gap:8px}\n.bl .bl-nav{display:none;order:3;flex:1 1 100%;flex-direction:column;align-items:stretch;gap:0;padding:6px 0 4px;max-height:calc(100vh - 80px);overflow-y:auto}\n.bl-head.open .bl-nav{display:flex}\n.bl .bl-nav a{padding:14px 2px;border-top:1px solid #E6EAE8;font-size:16px;font-weight:600}\n}\n@media (max-width:640px){\n.bl section[id]{scroll-margin-top:76px}\n.bl-w{padding-left:18px;padding-right:18px}\n.bl-head-r>.bl-btn{display:none}\n.bl-logo{font-size:19px;min-height:40px}\n.bl-lang button{min-width:38px;height:40px}\n.bl .bl-menu{width:40px;height:40px}\n.bl h1{font-size:34px}\n.bl h2{font-size:28px}\n.bl-lead{font-size:16px}\n.bl-hero .bl-w{padding-top:36px;padding-bottom:52px;gap:36px}\n.bl-hero-l{flex-basis:100%;gap:18px}\n.bl-search{padding:14px;gap:12px}\n.bl-search>div{flex:1 1 120px}\n.bl-search .bl-btn{flex:1 1 100%}\n.bl-phone-wrap{flex-basis:100%}\n.bl-phone{width:290px;height:580px;border-width:9px}\n.bl-tick{padding:12px 0}\n.bl-tick>div{font-size:14px;gap:28px}\n.bl-vals .bl-w{padding-top:6px;padding-bottom:6px}\n.bl-vals .bl-w>div{flex:1 1 45%;padding:16px 12px 16px 0}\n.bl[dir=rtl] .bl-vals .bl-w>div{padding:16px 0 16px 12px}\n.bl-sec{padding-top:60px;padding-bottom:60px}\n.bl-tabs{flex-wrap:nowrap;overflow-x:auto;padding:24px 0 18px;margin:0 -18px;padding-left:18px;padding-right:18px;scrollbar-width:none}\n.bl-tabs button{flex:none;height:44px;padding:0 16px}\n.bl-case-t{flex-basis:100%;padding:24px 20px;gap:12px}\n.bl-case-t h3{font-size:23px}\n.bl-case-m{flex-basis:100%;min-height:290px}\n.bl-card{left:14px;right:14px;bottom:14px;padding:14px}\n.bl-demo .bl-w{gap:36px}\n.bl-demo-t,.bl-demo-p{flex-basis:100%}\n\n.bl-road{margin-top:24px}\n.bl-steps{gap:14px}\n.bl-steps li{flex-basis:100%;padding:22px}\n.bl-tech .bl-w{padding-top:60px;padding-bottom:60px;gap:36px}\n.bl-tech .bl-w>div{flex-basis:100%}\n.bl-lot{padding:16px}\n.bl-bays{gap:6px}\n.bl-bays div{height:44px;font-size:11px}\n.bl-hosts{padding-top:60px;padding-bottom:60px;gap:36px}\n.bl-hosts>*{flex-basis:100%}\n.bl-calc{padding:20px;gap:16px}\n.bl-total{font-size:32px}\n.bl #business{padding-bottom:60px}\n.bl-biz{padding:26px 22px;gap:20px}\n.bl-biz .bl-btn{width:100%}\n.bl-faq{padding:60px 18px}\n.bl-faq summary{font-size:16px;padding:16px 0}\n.bl-app{padding-top:60px;padding-bottom:60px;gap:24px}\n.bl-app>*{flex-basis:100%}\n.bl-app h2{font-size:30px}\n.bl-foot .bl-w{padding-top:44px}\n.bl-foot nav{flex:1 1 40%}\n}\n\n.bl-head{transition:transform .28s ease}\n@media (max-width:1140px){.bl-head.hide{transform:translateY(-110%)}}\n@media (max-width:600px){.bl .bl-head{top:0}}\n@media (max-width:782px){.bl section[id]{scroll-margin-top:16px}}\n\n.pd{position:relative;width:360px;max-width:100%;height:700px;border:10px solid #000;border-radius:46px;overflow:hidden;background:#F8F6F0;color:#1F2A24;display:flex;flex-direction:column;box-shadow:0 30px 70px rgba(0,0,0,.45);font-family:'Plus Jakarta Sans',Inter,system-ui,sans-serif;font-size:14px;line-height:1.4;text-align:start}\n.pd .pd-disp{font-family:'Fraunces',Georgia,serif;font-weight:600;letter-spacing:-.01em}\n.bl[dir=rtl] .pd,.bl[dir=rtl] .pd .pd-disp{font-family:'IBM Plex Sans Arabic',system-ui,sans-serif;letter-spacing:0}\n.pd button{font:inherit;border:0;background:none;cursor:pointer;color:inherit;text-align:inherit;padding:0}\n.pd b{font-weight:700}\n.pd-hd{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid #E6E7DF;background:#F8F6F0;flex:none}\n.pd-ttl{font-size:18px;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.pd .pd-back{border:1px solid #E6E7DF;border-radius:999px;width:38px;height:30px;display:flex;align-items:center;justify-content:center;color:#6B756F;flex:none}\n.bl[dir=rtl] .pd-back svg,.bl[dir=rtl] .pd-ask button svg{transform:scaleX(-1)}\n.pd-main{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;position:relative}\n.pd-pad{padding:16px;display:flex;flex-direction:column;gap:14px}\n.pd-in-r{animation:pd-r .32s cubic-bezier(.2,.8,.2,1) both}\n.pd-in-l{animation:pd-l .32s cubic-bezier(.2,.8,.2,1) both}\n.pd-in-f{animation:pd-f .28s ease both}\n.pd-nav{display:flex;background:#fff;border-top:1px solid #E6E7DF;padding:6px 4px 10px;flex:none}\n.pd .pd-nav button{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10px;font-weight:600;color:#6B756F;transition:color .2s}\n.pd-nav button i{display:flex;padding:4px 12px;border-radius:999px;transition:background .25s}\n.pd .pd-nav button.on{color:#0E6B4E}\n.pd-nav button.on i{background:#E3F1E7;animation:pd-bump .35s ease}\n.pd-hero{background:linear-gradient(140deg,#0A4A37,#0E6B4E 55%,#2F9E57 135%);color:#fff;padding:18px 16px 54px}\n.pd-tag{font-size:12px;opacity:.85}\n.pd .pd-h1{font-size:28px;line-height:1.1;margin-top:2px}\n.pd-srow{display:flex;gap:8px;margin-top:14px;align-items:center}\n.pd .pd-search{flex:1;display:flex;align-items:center;gap:8px;background:#fff;border-radius:999px;padding:0 14px;height:44px;margin:0;font-weight:400;min-width:0}\n.pd .pd-search input[type=text]{border:0;height:40px;padding:0;background:transparent;font-size:14px;border-radius:0;outline:none;width:100%;color:#1F2A24}\n.pd .pd-mic{width:44px;height:44px;border-radius:50%;background:#0A4A37;display:flex;align-items:center;justify-content:center;flex:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.3);transition:transform .15s}\n.pd .pd-mic:active{transform:scale(.92)}\n.pd .pd-near{display:flex;width:100%;height:44px;margin-top:10px;align-items:center;justify-content:center;gap:8px;border-radius:999px;background:#0A4A37;color:#fff;font-weight:700;font-size:14px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.3)}\n.pd-rec{display:flex;align-items:center;gap:10px;margin-top:10px;background:#fff;color:#1F2A24;border-radius:999px;padding:9px 14px;font-size:13px;font-weight:600;animation:pd-f .25s ease both}\n.pd-rec i{width:10px;height:10px;border-radius:50%;background:#D4483B;animation:pd-pulse 1s ease-in-out infinite}\n.pd-wave{display:inline-flex;gap:3px;align-items:center;height:16px;margin-inline-start:auto}\n.pd-wave u{width:3px;border-radius:2px;background:#0E6B4E;animation:pd-wave .7s ease-in-out infinite}\n.pd-wave u:nth-child(2){animation-delay:.1s}.pd-wave u:nth-child(3){animation-delay:.2s}.pd-wave u:nth-child(4){animation-delay:.3s}.pd-wave u:nth-child(5){animation-delay:.4s}\n.pd-nearnote{margin-top:8px;text-align:center;font-size:12px}\n.pd .pd-nearnote button{text-decoration:underline;margin-inline-start:8px;font-weight:700}\n.pd-quick{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 16px;margin-top:-36px;position:relative}\n.pd .pd-quick button{background:#fff;border:1px solid #E6E7DF;border-radius:22px;padding:14px;display:flex;flex-direction:column;gap:2px;box-shadow:0 8px 24px -12px rgba(20,60,40,.25);transition:transform .15s}\n.pd .pd-quick button:active,.pd .pd-card:active,.pd .pd-cta:active{transform:scale(.98)}\n.pd-mut{font-size:12px;color:#6B756F}\n.pd-chips{display:flex;gap:8px;overflow-x:auto;padding:16px 16px 2px;scrollbar-width:none}\n.pd .pd-chips button{flex:none;height:34px;padding:0 14px;border-radius:999px;background:#fff;border:1px solid #E6E7DF;font-size:13px;font-weight:600;transition:background .2s,color .2s}\n.pd .pd-chips button.on{background:#0E6B4E;border-color:#0E6B4E;color:#fff}\n.pd .pd-sec{font-size:19px;padding:14px 16px 0}\n.pd-list{display:flex;flex-direction:column;gap:14px;padding:12px 16px 18px}\n.pd .pd-card{display:block;width:100%;background:#fff;border:1px solid #E6E7DF;border-radius:24px;overflow:hidden;flex:none;box-shadow:0 8px 24px -14px rgba(20,60,40,.22);transition:transform .15s;animation:pd-f .4s ease both}\n.pd-img{display:block;position:relative;height:132px;background-size:cover;background-position:center;background-color:#DDE3DE}\n.pd-card.sm .pd-img{height:84px}\n.pd-badge{position:absolute;top:10px;inset-inline-start:10px;padding:4px 10px;border-radius:999px;background:#fff;color:#0E6B4E;font-size:12px;font-weight:700}\n.pd-badge.full{background:#D4483B;color:#fff}\n.pd-ci{display:flex;flex-direction:column;gap:4px;padding:12px 14px}\n.pd-sb{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}\n.pd-rate{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:600;white-space:nowrap}\n.pd-ic{display:flex;align-items:center;gap:4px}\n.pd-price{font-size:13px;color:#6B756F;margin-top:4px}\n.pd-price b{font-size:17px;color:#0E6B4E}\n.pd-dist{font-size:12px;font-weight:700;color:#0E6B4E}\n.pd-skel{height:210px;border-radius:24px;background:linear-gradient(100deg,#EEEDE6 30%,#F8F7F2 50%,#EEEDE6 70%);background-size:200% 100%;animation:pd-shim 1.1s linear infinite;flex:none}\n.pd-photo{height:210px;background-size:cover;background-position:center;animation:pd-fade .4s ease both}\n.pd-sheet{margin-top:-22px;border-radius:28px 28px 0 0;background:#F8F6F0;padding:20px 16px 16px;position:relative;display:flex;flex-direction:column;gap:14px}\n.pd .pd-h2{font-size:22px;line-height:1.15}\n.pd-pill{display:inline-flex;align-items:center;gap:4px;background:#E3F1E7;border-radius:999px;padding:4px 10px;font-size:13px;font-weight:700;white-space:nowrap}\n.pd-pill.off{background:#EEEFE8;color:#6B756F}\n.pd-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center}\n.pd-stats>div{background:#fff;border:1px solid #E6E7DF;border-radius:16px;padding:10px 6px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:12px}\n.pd-stats b{font-size:14px}\n.pd-g{color:#0E6B4E}\n.pd-bar{height:8px;border-radius:999px;background:#E3F1E7;overflow:hidden}\n.pd-bar i{display:block;height:100%;background:#0E6B4E;border-radius:999px;animation:pd-grow .9s cubic-bezier(.2,.8,.2,1) both}\n.pd-feats{display:flex;flex-wrap:wrap;gap:8px}\n.pd-feat{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid #E6E7DF;border-radius:999px;padding:6px 12px;font-size:13px;animation:pd-f .4s ease both}\n.pd-note{font-size:11px;color:#6B756F;text-align:center}\n.pd .pd-cta{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:48px;border-radius:999px;background:#0E6B4E;color:#fff;font-weight:700;font-size:15px;flex:none;box-shadow:0 18px 40px -18px rgba(14,107,78,.6);transition:transform .15s,opacity .2s}\n.pd .pd-cta[disabled]{background:#D9DBD4;color:#6B756F;box-shadow:none;cursor:not-allowed}\n.pd .pd-cta.busy{opacity:.8;cursor:progress}\n.pd .pd-cta.line{background:#fff;color:#D4483B;border:1px solid #E6E7DF;box-shadow:none;height:40px;font-size:14px}\n.pd-box{background:#fff;border:1px solid #E6E7DF;border-radius:24px;padding:14px;display:flex;flex-direction:column;gap:10px;flex:none;box-shadow:0 8px 24px -16px rgba(20,60,40,.2);animation:pd-f .35s ease both}\n.pd-row{display:flex;justify-content:space-between;align-items:center;gap:10px}\n.pd-thumb{width:84px;height:68px;border-radius:16px;background-size:cover;background-position:center;flex:none}\n.pd-durs{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}\n.pd-durs.four{grid-template-columns:repeat(4,1fr)}\n.pd .pd-durs button{height:40px;border-radius:14px;border:1px solid #E6E7DF;background:#F8F6F0;font-weight:700;text-align:center;transition:background .2s,color .2s,transform .2s}\n.pd .pd-durs button.on{background:#0E6B4E;border-color:#0E6B4E;color:#fff;transform:scale(1.05)}\n.pd-hr{height:1px;background:#E6E7DF}\n.pd-warn{border:1px solid rgba(212,72,59,.3);background:rgba(212,72,59,.05);border-radius:24px;padding:14px;display:flex;flex-direction:column;gap:8px;animation:pd-f .3s ease both}\n.pd-spin{display:inline-block;width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;animation:pd-spin .7s linear infinite;flex:none}\n.pd-spin.g{border-color:#CFE3D6;border-top-color:#0E6B4E;width:12px;height:12px}\n.pd-okw{position:relative;width:72px;height:72px;margin:10px auto 0}\n.pd-okw i{position:absolute;inset:0;border-radius:50%;background:#2F9E57;display:flex;align-items:center;justify-content:center;animation:pd-zoom .5s cubic-bezier(.2,1.4,.4,1) both}\n.pd-okw::before{content:\"\";position:absolute;inset:0;border-radius:50%;border:3px solid #2F9E57;animation:pd-ring 1s ease-out .15s both}\n.pd-codebox{background:#E3F1E7;border-radius:16px;padding:14px;text-align:center}\n.pd-code{display:flex;justify-content:center;gap:7px;direction:ltr;font-family:ui-monospace,Menlo,monospace;margin-top:4px}\n.pd-code span{font-size:28px;font-weight:700;color:#0E6B4E;animation:pd-drop .4s ease both}\n.pd-wal{position:relative;overflow:hidden;border-radius:28px;background:linear-gradient(140deg,#0A4A37,#0E6B4E 55%,#2F9E57 135%);color:#fff;padding:20px;box-shadow:0 18px 40px -18px rgba(14,107,78,.6);animation:pd-f .35s ease both}\n.pd-wal::after{content:\"P\";position:absolute;inset-inline-end:-8px;bottom:-46px;font-size:150px;font-weight:800;opacity:.12;line-height:1}\n.pd-demo{background:rgba(255,255,255,.2);border-radius:999px;padding:2px 10px;font-size:10px;font-weight:800;letter-spacing:.08em}\n.pd .pd-big{font-size:34px;margin-top:6px;direction:ltr;text-align:start}\n.pd-tx{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid #EEEFE8}\n.pd-txi{width:38px;height:38px;border-radius:14px;background:#E3F1E7;display:flex;align-items:center;justify-content:center;flex:none;color:#0E6B4E}\n.pd-info{display:flex;gap:8px;background:#E3F1E7;border-radius:16px;padding:10px 12px;font-size:12px;color:#0A4A37}\n.pd-ov{position:absolute;inset:0;background:rgba(15,25,20,.45);display:flex;align-items:flex-end;z-index:5;animation:pd-fade .25s ease both}\n.pd-sh{width:100%;background:#F8F6F0;border-radius:28px 28px 0 0;padding:18px 16px 22px;display:flex;flex-direction:column;gap:14px;animation:pd-up .32s cubic-bezier(.2,.8,.2,1) both}\n.pd-toasts{position:absolute;top:10px;left:12px;right:12px;z-index:6;display:flex;flex-direction:column;gap:6px;pointer-events:none}\n.pd-toast{display:flex;align-items:center;gap:8px;background:#16201C;color:#fff;border-radius:14px;padding:10px 14px;font-size:13px;font-weight:600;animation:pd-toast 2.4s ease both}\n.pd-mapv{position:absolute;inset:0;overflow:hidden;background-color:#EAEFE9;background-image:linear-gradient(#F5F8F4 2px,transparent 2px),linear-gradient(90deg,#F5F8F4 2px,transparent 2px);background-size:46px 46px}\n.pd-mapv .sea{position:absolute;left:-30%;top:-22%;width:130%;height:34%;background:#CFE4EC;transform:rotate(-12deg);border-radius:0 0 40% 30%}\n.pd-mapv .rd{position:absolute;background:#fff;box-shadow:0 0 0 1px #E1E6DF}\n.pd-mapv .r1{left:-10%;top:44%;width:120%;height:9px;transform:rotate(-8deg)}\n.pd-mapv .r2{left:48%;top:-10%;width:9px;height:120%;transform:rotate(14deg)}\n.pd-mapv .r3{left:-10%;top:66%;width:120%;height:6px;transform:rotate(18deg)}\n.pd-mapv .me{position:absolute;left:30%;top:58%;width:16px;height:16px;border-radius:50%;background:#2563EB;border:3px solid #fff;animation:pd-me 2s ease-out infinite}\n.pd .pd-pin{position:absolute;padding:6px 10px;border-radius:999px;background:#0E6B4E;color:#fff;font-size:12px;font-weight:700;box-shadow:0 4px 10px rgba(0,0,0,.25);white-space:nowrap;animation:pd-pin .5s cubic-bezier(.2,1.4,.4,1) both}\n.pd .pd-pin.on{background:#16201C;z-index:2}\n.pd .pd-pin.on::after{content:\"\";position:absolute;inset:-4px;border-radius:999px;border:2px solid #16201C;animation:pd-ring 1.4s ease-out infinite}\n.pd-rail{position:absolute;left:0;right:0;bottom:10px;display:flex;gap:10px;overflow-x:auto;padding:0 12px;scrollbar-width:none}\n.pd-rail .pd-card{width:220px;flex:none}\n.pd-chat{padding:14px 14px 10px;display:flex;flex-direction:column;gap:10px}\n.pd-ai{display:flex;gap:8px;align-items:flex-start;animation:pd-f .3s ease both}\n.pd-av{width:30px;height:30px;border-radius:50%;background:linear-gradient(140deg,#0E6B4E,#2F9E57);display:flex;align-items:center;justify-content:center;flex:none}\n.pd-bub{max-width:82%;background:#fff;border:1px solid #E6E7DF;border-radius:20px;border-start-start-radius:6px;padding:10px 12px;font-size:13.5px;line-height:1.45;white-space:pre-wrap;box-shadow:0 8px 24px -16px rgba(20,60,40,.2)}\n.pd-bub.typing::after{content:\"\";display:inline-block;width:2px;height:14px;background:#0E6B4E;margin-inline-start:2px;vertical-align:-2px;animation:pd-blink .8s steps(2) infinite}\n.pd-me{align-self:flex-end;max-width:82%;background:#0E6B4E;color:#fff;border-radius:20px;border-start-end-radius:6px;padding:10px 12px;font-size:13.5px;animation:pd-f .25s ease both}\n.pd-dots{display:inline-flex;gap:4px;padding:4px 2px}\n.pd-dots i{width:7px;height:7px;border-radius:50%;background:#9AA39D;animation:pd-bounce 1s ease-in-out infinite}\n.pd-dots i:nth-child(2){animation-delay:.12s}\n.pd-dots i:nth-child(3){animation-delay:.24s}\n.pd-cap{font-size:11px;font-weight:500;color:#6B756F;padding-inline-start:38px}\n.pd-trace{display:flex;flex-direction:column;gap:5px;padding-inline-start:38px}\n.pd-step{display:flex;align-items:center;gap:6px;font-size:11.5px;color:#6B756F;animation:pd-f .25s ease both;flex-wrap:wrap}\n.pd-step code{font-family:ui-monospace,Menlo,monospace;font-size:10.5px;background:#EEF0E9;border-radius:6px;padding:2px 6px;color:#3A4540;direction:ltr;word-break:break-all}\n.pd-step .ck{display:none;color:#0E6B4E}\n.pd-step.ok .ck{display:inline-flex}\n.pd-step.ok .pd-spin{display:none}\n.pd-sug{display:flex;flex-wrap:wrap;gap:6px;padding-inline-start:38px}\n.pd .pd-sug button{border:1px solid #D6E6DB;background:#E3F1E7;color:#0A4A37;border-radius:999px;padding:7px 12px;font-size:12px;font-weight:600;animation:pd-f .3s ease both;transition:transform .15s}\n.pd .pd-sug button:active{transform:scale(.96)}\n.pd-cards{display:flex;flex-direction:column;gap:10px;padding-inline-start:38px}\n.pd-ask{display:flex;gap:8px;padding:8px 10px;background:#F8F6F0;border-top:1px solid #E6E7DF;flex:none}\n.pd .pd-ask input[type=text]{flex:1;height:42px;border-radius:999px;border:1px solid #E6E7DF;background:#fff;padding:0 14px;font-size:13.5px;width:auto;min-width:0;color:#1F2A24}\n.pd .pd-ask button{width:42px;height:42px;border-radius:50%;background:#0E6B4E;display:flex;align-items:center;justify-content:center;flex:none;transition:opacity .2s}\n.pd .pd-ask button[disabled]{opacity:.45;cursor:progress}\n@keyframes pd-r{from{opacity:0;transform:translateX(28px)}to{opacity:1;transform:none}}\n@keyframes pd-l{from{opacity:0;transform:translateX(-28px)}to{opacity:1;transform:none}}\n@keyframes pd-f{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}\n@keyframes pd-fade{from{opacity:0}to{opacity:1}}\n@keyframes pd-up{from{transform:translateY(100%)}to{transform:none}}\n@keyframes pd-bump{50%{transform:scale(1.2)}}\n@keyframes pd-spin{to{transform:rotate(360deg)}}\n@keyframes pd-pulse{50%{opacity:.3}}\n@keyframes pd-wave{0%,100%{height:4px}50%{height:16px}}\n@keyframes pd-shim{to{background-position:-200% 0}}\n@keyframes pd-grow{from{width:0}}\n@keyframes pd-zoom{from{transform:scale(.3);opacity:0}to{transform:none;opacity:1}}\n@keyframes pd-ring{from{transform:scale(1);opacity:.8}to{transform:scale(1.7);opacity:0}}\n@keyframes pd-drop{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}\n@keyframes pd-toast{0%{opacity:0;transform:translateY(-14px)}10%,85%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-8px)}}\n@keyframes pd-pin{from{opacity:0;margin-top:-40px}to{opacity:1;margin-top:0}}\n@keyframes pd-me{from{box-shadow:0 0 0 0 rgba(37,99,235,.5)}to{box-shadow:0 0 0 14px rgba(37,99,235,0)}}\n@keyframes pd-blink{50%{opacity:0}}\n@keyframes pd-bounce{0%,100%{transform:translateY(0)}40%{transform:translateY(-4px)}}\n@media (max-width:640px){.pd{height:650px}}\n<\/style>\n<div class=\"bl\">\n<header class=\"bl-head\"><div class=\"bl-w bl-row\">\n<a class=\"bl-logo\" href=\"#top\"><svg width=\"32\" height=\"32\" viewBox=\"0 0 36 36\" aria-hidden=\"true\"><rect width=\"36\" height=\"36\" rx=\"9\" fill=\"#0E6B4E\"><\/rect><path d=\"M18 7.5c-4.7 0-8.5 3.6-8.5 8.2 0 5.6 6.3 10.6 8 12 .3.2.7.2 1 0 1.7-1.4 8-6.4 8-12 0-4.6-3.8-8.2-8.5-8.2z\" fill=\"#fff\"><\/path><path d=\"M15.6 20.6v-9h3.4a3 3 0 0 1 0 6h-3.4\" stroke=\"#0E6B4E\" stroke-width=\"2.2\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg>blassti<span>.ma<\/span><\/a>\n<nav class=\"bl-nav bl-row\" id=\"bl-nav\" aria-label=\"Main\"><a href=\"#usecases\">Drivers<\/a><a href=\"#demo\">Demo<\/a><a href=\"#hosts\">Hosts<\/a><a href=\"#business\">Business<\/a><a href=\"#technology\">Technology<\/a><a href=\"#faq\">Help<\/a><\/nav>\n<div class=\"bl-head-r\"><div class=\"bl-lang\" id=\"bl-lang\" role=\"group\" aria-label=\"Language\"><button type=\"button\" data-l=\"en\" aria-pressed=\"true\">EN<\/button><button type=\"button\" data-l=\"fr\" aria-pressed=\"false\">FR<\/button><button type=\"button\" data-l=\"ar\" aria-pressed=\"false\">AR<\/button><\/div><a class=\"bl-btn\" href=\"#app\">Get early access<\/a><button type=\"button\" class=\"bl-menu\" id=\"bl-menu\" aria-label=\"Menu\" aria-expanded=\"false\" aria-controls=\"bl-nav\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M4 7h16M4 12h16M4 17h16\"><\/path><\/svg><\/button><\/div>\n<\/div><\/header>\n\n<section id=\"top\" class=\"bl-hero\"><div class=\"bl-w bl-row\">\n<div class=\"bl-hero-l bl-col\">\n<h1>Reserved parking, wherever the day takes you.<\/h1>\n<p class=\"bl-lead\" style=\"font-size:19px;max-width:540px\">blassti.ma connects drivers with private garages, driveways and car parks across Casablanca. Compare prices, see live availability and book your space in advance.<\/p>\n<form class=\"bl-search bl-row\" data-bl-form=\"search\">\n<div class=\"full\"><label for=\"bl-where\">Where are you going?<\/label><input id=\"bl-where\" type=\"text\" placeholder=\"Address, station, venue or neighbourhood\"><\/div>\n<div><label for=\"bl-in\">Arrive<\/label><input id=\"bl-in\" type=\"text\" placeholder=\"Today, 09:00\"><\/div>\n<div><label for=\"bl-out\">Leave<\/label><input id=\"bl-out\" type=\"text\" placeholder=\"Today, 11:00\"><\/div>\n<button class=\"bl-btn\" type=\"submit\">Search spaces<\/button>\n<p class=\"bl-note\" hidden>Booking opens when the app launches. Leave your email below and we will tell you first.<\/p>\n<\/form>\n<p class=\"bl-muted\" style=\"font-size:14px\">Have a space to rent? <a href=\"#hosts\" style=\"font-weight:600\">Become a host<\/a><\/p>\n<\/div>\n<div class=\"bl-phone-wrap\" role=\"img\" aria-label=\"Animation of the app: parking pins appear on a map of Casablanca, a route is drawn to the nearest one and the booking is confirmed\">\n<div class=\"bl-phone\" aria-hidden=\"true\">\n<div class=\"bl-col\" style=\"padding:18px 16px 12px;gap:10px\"><span style=\"font-size:14px;font-weight:600\">Casablanca<\/span><div style=\"height:40px;padding:0 12px;display:flex;align-items:center;border:1px solid #DCE2DF;border-radius:10px;font-size:13px;color:#48544F\">Where do you want to park?<\/div><\/div>\n<div class=\"bl-map\" style=\"height:330px\">\n<svg width=\"280\" height=\"330\" viewBox=\"0 0 280 330\" style=\"position:absolute;left:0;top:0\"><path d=\"M150 262 L150 182 L212 182 L212 104\" fill=\"none\" stroke=\"#0E6B4E\" stroke-width=\"5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-dasharray=\"300\" style=\"animation:bl-draw 11s ease-in-out infinite\"><\/path><\/svg>\n<div class=\"bl-pin\" style=\"left:196px;top:70px;animation:bl-s1 11s ease-out infinite\">P<\/div>\n<div class=\"bl-pin\" style=\"left:48px;top:118px;animation:bl-s2 11s ease-out infinite\">P<\/div>\n<div class=\"bl-pin\" style=\"left:76px;top:232px;animation:bl-s3 11s ease-out infinite\">P<\/div>\n<div style=\"position:absolute;left:141px;top:253px;width:20px;height:20px;border-radius:50%;background:#2563EB;border:3px solid #fff;box-shadow:0 0 0 7px rgba(37,99,235,.18)\"><\/div>\n<div style=\"position:absolute;left:14px;right:14px;top:12px;padding:10px 12px;border-radius:10px;background:#16201C;color:#fff;font-size:13px;font-weight:600;animation:bl-toast 11s ease-out infinite\">Booking confirmed \u00b7 09:00 to 11:00<\/div>\n<\/div>\n<div class=\"bl-col\" style=\"position:absolute;left:0;right:0;bottom:0;padding:16px;background:#fff;border-top:1px solid #E6EAE8;gap:10px;animation:bl-sheet 11s ease-out infinite\">\n<div class=\"bl-sb\"><strong style=\"font-size:15px\">Train Station Parking<\/strong><strong style=\"font-size:14px;white-space:nowrap\">15 MAD \/ h<\/strong><\/div>\n<span style=\"font-size:13px;color:#48544F\">Covered \u00b7 0.4 km \u00b7 5 spaces left<\/span>\n<div style=\"height:44px;border-radius:8px;background:#0E6B4E;color:#fff;font-size:14px;font-weight:600;display:flex;align-items:center;justify-content:center\">Reserve<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div><\/section>\n\n<div class=\"bl-tick\" aria-hidden=\"true\"><div><span>Casa Voyageurs<\/span><i><\/i><span>Stade Mohammed V<\/span><i><\/i><span>Ain Diab<\/span><i><\/i><span>Twin Center<\/span><i><\/i><span>Morocco Mall<\/span><i><\/i><span>Casa Port<\/span><i><\/i><span>Ma\u00e2rif<\/span><i><\/i><span>Sidi Ma\u00e2rouf<\/span><i><\/i><span>Casa Finance City<\/span><i><\/i><span>Mohammed V Airport<\/span><i><\/i><span>Casa Voyageurs<\/span><i><\/i><span>Stade Mohammed V<\/span><i><\/i><span>Ain Diab<\/span><i><\/i><span>Twin Center<\/span><i><\/i><span>Morocco Mall<\/span><i><\/i><span>Casa Port<\/span><i><\/i><span>Ma\u00e2rif<\/span><i><\/i><span>Sidi Ma\u00e2rouf<\/span><i><\/i><span>Casa Finance City<\/span><i><\/i><span>Mohammed V Airport<\/span><i><\/i><\/div><\/div>\n\n<section class=\"bl-vals\" aria-label=\"Why blassti\"><div class=\"bl-w bl-row\">\n<div class=\"bl-col\"><strong>Guaranteed space<\/strong><span>Your booking holds the spot for the hours you chose.<\/span><\/div>\n<div class=\"bl-col\"><strong>Price shown upfront<\/strong><span>Per-hour rates in MAD, visible before you book.<\/span><\/div>\n<div class=\"bl-col\"><strong>Live availability<\/strong><span>Occupancy is checked by camera, space by space.<\/span><\/div>\n<div class=\"bl-col\"><strong>Assistant built in<\/strong><span>Describe what you need and get a shortlist.<\/span><\/div>\n<\/div><\/section>\n\n<section id=\"usecases\" class=\"bl-w bl-sec\">\n<h2 style=\"max-width:680px\">Built for the trips you actually make<\/h2>\n<p class=\"bl-lead\" style=\"max-width:680px;margin-top:14px\">From the weekday commute to match night, book the right space for the time you need it.<\/p>\n<div class=\"bl-tabs bl-row\" id=\"bl-tabs\" role=\"group\" aria-label=\"Use cases\"><\/div>\n<div class=\"bl-case bl-row\">\n<div class=\"bl-case-t bl-col\"><h3 data-c=\"title\"><\/h3><p class=\"bl-lead\" style=\"font-size:17px\" data-c=\"story\"><\/p><a href=\"#app\" style=\"font-size:15px;font-weight:600;padding:12px 0\">Find a space for this trip<\/a><\/div>\n<div class=\"bl-case-m bl-map\"><div class=\"bl-pin\" aria-hidden=\"true\" style=\"left:22%;top:20%;width:36px;height:36px\">P<\/div><div class=\"bl-pin o\" aria-hidden=\"true\" style=\"left:66%;top:34%;width:36px;height:36px\">P<\/div>\n<div class=\"bl-card bl-col\"><div class=\"bl-sb\"><strong data-c=\"spot\"><\/strong><strong style=\"font-size:15px;white-space:nowrap\" data-c=\"price\"><\/strong><\/div><span style=\"font-size:14px;color:#48544F\" data-c=\"meta\"><\/span><div class=\"bl-sb\" style=\"align-items:center;padding-top:10px;border-top:1px solid #E6EAE8\"><span style=\"font-size:14px;font-weight:600\" data-c=\"when\"><\/span><span style=\"font-size:13px;font-weight:600;color:#0E6B4E\">Reserved<\/span><\/div><\/div>\n<\/div>\n<\/div>\n<p style=\"margin-top:14px;font-size:13px;color:#5A6661\">Sample listings shown for illustration.<\/p>\n<\/section>\n\n<section id=\"demo\" class=\"bl-demo\"><div class=\"bl-w bl-sec bl-row\">\n<div class=\"bl-demo-t bl-col\">\n<h2>Try the app before it launches<\/h2>\n<p class=\"bl-lead\" style=\"color:#D5DBD8\">This is a working preview with sample data. Search a car park, book a space, pay from the demo wallet and get your access code. Nothing is charged.<\/p>\n<ol><li>Pick a car park on the home screen or the map<\/li><li>Choose your hours and pay with the wallet<\/li><li>Get an access code, then cancel for a refund<\/li><li>Ask the assistant in your own words<\/li><\/ol>\n<button class=\"bl-btn light\" type=\"button\" id=\"bl-demo-reset\">Restart demo<\/button>\n<\/div>\n<div class=\"bl-demo-p\"><div class=\"pd\" id=\"bl-demo\" aria-label=\"Interactive app preview\"><\/div><\/div>\n<\/div><\/section>\n\n<section id=\"how\" class=\"bl-grey\"><div class=\"bl-w bl-sec\">\n<h2>How it works<\/h2>\n<div class=\"bl-road\" aria-hidden=\"true\"><svg width=\"56\" height=\"28\" viewBox=\"0 0 56 28\"><path d=\"M4 18v-4c0-1.5 1-2.6 2.5-2.9L14 9.5l5-5.6C20 2.7 21.4 2 23 2h12c1.7 0 3.2.8 4.2 2.2L43 9.5l7 1.6c1.8.4 3 1.9 3 3.7V18c0 1.1-.9 2-2 2H6c-1.1 0-2-.9-2-2z\" fill=\"#0E6B4E\"><\/path><circle cx=\"15\" cy=\"21\" r=\"5\" fill=\"#16201C\"><\/circle><circle cx=\"41\" cy=\"21\" r=\"5\" fill=\"#16201C\"><\/circle><circle cx=\"15\" cy=\"21\" r=\"2\" fill=\"#fff\"><\/circle><circle cx=\"41\" cy=\"21\" r=\"2\" fill=\"#fff\"><\/circle><\/svg><\/div>\n<ol class=\"bl-steps bl-row\">\n<li><b>01<\/b><h3>Search your destination<\/h3><p>Enter where you are going and when. Browse the map, or ask the assistant for a covered space under your budget.<\/p><\/li>\n<li><b>02<\/b><h3>Compare and reserve<\/h3><p>See price per hour, walking distance and spaces left side by side. Confirm the hours you need.<\/p><\/li>\n<li><b>03<\/b><h3>Arrive and park<\/h3><p>Follow directions to the entrance. Your space is waiting, and your booking is in the app.<\/p><\/li>\n<\/ol>\n<\/div><\/section>\n\n<section id=\"technology\" class=\"bl-tech\"><div class=\"bl-w bl-row\">\n<div class=\"bl-col\" style=\"gap:20px\">\n<h2>Availability you can rely on<\/h2>\n<p class=\"bl-lead\" style=\"color:#D2E6DC\">Computer vision monitors each listed space and updates its status as cars arrive and leave. When the app shows a space as free, it is.<\/p>\n<ul><li>Occupancy detected per space, not per car park<\/li><li>Hosts do not need to update listings by hand<\/li><li>An assistant that understands requests in plain language<\/li><\/ul>\n<\/div>\n<div class=\"bl-lot bl-col\">\n<div class=\"bl-sb\" style=\"align-items:center;flex-wrap:wrap\"><strong>Central Garage \u00b7 Level 1<\/strong><span class=\"bl-live\"><i aria-hidden=\"true\"><\/i>Live<\/span><\/div>\n<div class=\"bl-bays\" id=\"bl-bays\" role=\"img\" aria-label=\"Live occupancy grid: spaces switch between free and occupied\"><\/div>\n<div class=\"bl-sb\" style=\"flex-wrap:wrap;font-size:15px\"><span><strong id=\"bl-free\" style=\"font-size:22px;font-variant-numeric:tabular-nums\">8<\/strong> of 24 spaces free<\/span><span style=\"color:#D2E6DC\">Illustrative view<\/span><\/div>\n<\/div>\n<\/div><\/section>\n\n<section id=\"hosts\" class=\"bl-w bl-row bl-hosts\">\n<div class=\"bl-col\" style=\"gap:20px;align-items:flex-start\">\n<h2>Turn an empty space into income<\/h2>\n<p class=\"bl-lead\">List a garage, driveway or private car park. You choose the hours it is available and the hourly rate, and you see every booking before the driver arrives.<\/p>\n<a class=\"bl-btn\" href=\"#app\" style=\"font-size:16px\">List your space<\/a>\n<\/div>\n<form class=\"bl-calc bl-col\" data-bl-form=\"calc\">\n<strong style=\"font-size:18px\">Estimate your earnings<\/strong>\n<div><div class=\"bl-sb\" style=\"font-size:15px\"><label for=\"bl-hours\">Hours available per day<\/label><span><span id=\"bl-hours-v\">10<\/span> h<\/span><\/div><input id=\"bl-hours\" type=\"range\" min=\"1\" max=\"24\" value=\"10\"><\/div>\n<div><div class=\"bl-sb\" style=\"font-size:15px\"><label for=\"bl-price\">Price per hour<\/label><span><span id=\"bl-price-v\">15<\/span> MAD<\/span><\/div><input id=\"bl-price\" type=\"range\" min=\"5\" max=\"50\" value=\"15\"><\/div>\n<div><div class=\"bl-sb\" style=\"font-size:15px\"><label for=\"bl-days\">Days per month<\/label><span><span id=\"bl-days-v\">22<\/span> days<\/span><\/div><input id=\"bl-days\" type=\"range\" min=\"1\" max=\"30\" value=\"22\"><\/div>\n<div class=\"bl-col\" style=\"padding-top:20px;border-top:1px solid #E6EAE8;gap:6px\"><span style=\"font-size:14px;color:#48544F\">Up to, per month, if fully booked<\/span><span class=\"bl-total\"><span id=\"bl-total\">3,300<\/span> MAD<\/span><span style=\"font-size:13px;color:#5A6661\">Estimate before fees.<\/span><\/div>\n<\/form>\n<\/section>\n\n<section id=\"business\" class=\"bl-w\" style=\"padding-bottom:104px\"><div class=\"bl-biz bl-row\">\n<div class=\"bl-col\" style=\"flex:1 1 480px;min-width:0;gap:12px\"><h2>blassti for Business<\/h2><p style=\"font-size:17px;line-height:1.6;color:#D5DBD8\">Manage a residence, office building, clinic or venue? Put unused spaces to work and give visitors a place to park, with occupancy tracked for you.<\/p><\/div>\n<a class=\"bl-btn light\" href=\"#app\" style=\"font-size:16px\">Talk to our team<\/a>\n<\/div><\/section>\n\n<section id=\"faq\" class=\"bl-grey\"><div class=\"bl-faq\">\n<h2 style=\"margin-bottom:28px\">Questions, answered<\/h2>\n<div style=\"border-top:1px solid #C9D1CD\">\n<details open><summary>How do you know a space is really free?<\/summary><p>Each listed space is monitored by camera. Computer vision detects when a car arrives or leaves and updates availability in the app.<\/p><\/details>\n<details><summary>Who owns the spaces?<\/summary><p>Hosts: private owners and operators who list a garage, driveway or car park and set their own hours and price.<\/p><\/details>\n<details><summary>When can I start booking?<\/summary><p>The app is in development. Leave your email at the bottom of this page and you will be told the day it opens.<\/p><\/details>\n<\/div>\n<\/div><\/section>\n\n<section id=\"app\" class=\"bl-w bl-row bl-app\">\n<div class=\"bl-col\" style=\"flex:1 1 460px;min-width:0;gap:14px\"><h2>Your spot. Smarter.<\/h2><p class=\"bl-lead\">The blassti app is coming to iOS and Android. Leave your email to be notified at launch.<\/p><\/div>\n<form class=\"bl-row\" data-bl-form=\"notify\">\n<div style=\"flex:2 1 220px\"><label for=\"bl-email\">Email address<\/label><input id=\"bl-email\" type=\"email\" placeholder=\"you@example.com\" style=\"height:50px\"><\/div>\n<button class=\"bl-btn dark\" type=\"submit\" style=\"flex:1 1 130px;min-height:50px\">Notify me<\/button>\n<p class=\"bl-note\" hidden>Sign-ups are not open yet. Please check back soon.<\/p>\n<\/form>\n<\/section>\n\n<footer class=\"bl-foot\"><div class=\"bl-w\">\n<div class=\"bl-row\" style=\"gap:40px\">\n<div class=\"bl-col\" style=\"flex:2 1 260px;gap:12px\"><span class=\"bl-logo\" style=\"color:#fff!important\">blassti<span style=\"color:#8FDDB3\">.ma<\/span><\/span><span style=\"font-size:15px\">Smarter parking. Easier journeys.<\/span><\/div>\n<nav class=\"bl-col\" aria-label=\"Drivers\" style=\"flex:1 1 150px\"><strong>Drivers<\/strong><a href=\"#usecases\">Find parking<\/a><a href=\"#how\">How it works<\/a><a href=\"#app\">Get the app<\/a><\/nav>\n<nav class=\"bl-col\" aria-label=\"Hosts\" style=\"flex:1 1 150px\"><strong>Hosts<\/strong><a href=\"#hosts\">List your space<\/a><a href=\"#hosts\">Earnings estimate<\/a><a href=\"#business\">Business<\/a><\/nav>\n<nav class=\"bl-col\" aria-label=\"Company\" style=\"flex:1 1 150px\"><strong>Company<\/strong><a href=\"#technology\">Technology<\/a><a href=\"#faq\">Help<\/a><a href=\"#app\">Contact<\/a><\/nav>\n<\/div>\n<div style=\"margin-top:40px;padding-top:24px;border-top:1px solid #36423D;font-size:14px\">\u00a9 2026 blassti.ma \u00b7 Casablanca, Morocco<\/div>\n<\/div><\/footer>\n<\/div>\n<script>\n(function(){\nvar cases=[\n{label:'Commute',title:'A space near the office, booked before you leave home.',story:'Around Sidi Ma\u00e2rouf and Casa Finance City there are more cars than bays. Reserve a private space a short walk from your building and stop planning the morning around parking.',spot:'Private garage \u00b7 Sidi Ma\u00e2rouf',meta:'Covered \u00b7 350 m walk',when:'Mon 08:30 to 18:00',price:'15 MAD \/ hour'},\n{label:'Trains and flights',title:'Leave the car, catch the train.',story:'Casa Voyageurs for the Al Boraq, Casa Port for Rabat, Mohammed V Airport for a week away. Book a covered space for exactly the hours or days you are gone.',spot:'Train Station Parking',meta:'Covered \u00b7 0.4 km walk',when:'Sat 07:00 to 21:00',price:'15 MAD \/ hour'},\n{label:'Events',title:'Match night without the gridlock.',story:'Around Stade Mohammed V, street parking is gone hours before kick-off. Reserve a courtyard in Ma\u00e2rif, walk the last ten minutes and leave ahead of the traffic.',spot:'Private courtyard \u00b7 Ma\u00e2rif',meta:'Open air \u00b7 800 m walk',when:'Sun 18:30 to 23:00',price:'20 MAD \/ hour'},\n{label:'Weekends',title:'The corniche, without the hunt for a space.',story:'Ain Diab and Morocco Mall fill up by midday on Saturdays. A private driveway one street back holds your place for the whole afternoon.',spot:'Private driveway \u00b7 Ain Diab',meta:'Open air \u00b7 300 m walk',when:'Sat 15:00 to 19:00',price:'25 MAD \/ hour'}];\nvar root=document.querySelector('.bl');if(!root)return;\nvar tabs=document.getElementById('bl-tabs');\nfunction show(i){\nArray.prototype.forEach.call(tabs.children,function(b,j){b.setAttribute('aria-pressed',j===i?'true':'false');});\nArray.prototype.forEach.call(root.querySelectorAll('[data-c]'),function(el){el.textContent=cases[i][el.getAttribute('data-c')];});\n}\ncases.forEach(function(c,i){var b=document.createElement('button');b.type='button';b.textContent=c.label;b.addEventListener('click',function(){show(i);});tabs.appendChild(b);});\nshow(0);\nvar grid=document.getElementById('bl-bays'),free=document.getElementById('bl-free');\nvar init=[1,0,0,1,0,1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,1,0];\ninit.forEach(function(f){var d=document.createElement('div');d.textContent='P';if(f)d.className='f';grid.appendChild(d);});\nfunction count(){free.textContent=grid.querySelectorAll('.f').length;}\ncount();\nif(!window.matchMedia('(prefers-reduced-motion: reduce)').matches){setInterval(function(){var d=grid.children[Math.floor(Math.random()*grid.children.length)];d.classList.toggle('f');count();},900);}\nfunction calc(){var h=+document.getElementById('bl-hours').value,p=+document.getElementById('bl-price').value,d=+document.getElementById('bl-days').value;\ndocument.getElementById('bl-hours-v').textContent=h;document.getElementById('bl-price-v').textContent=p;document.getElementById('bl-days-v').textContent=d;\ndocument.getElementById('bl-total').textContent=(h*p*d).toLocaleString('en-US');}\n['bl-hours','bl-price','bl-days'].forEach(function(id){document.getElementById(id).addEventListener('input',calc);});\ncalc();\nArray.prototype.forEach.call(root.querySelectorAll('form'),function(f){f.addEventListener('submit',function(e){e.preventDefault();var n=f.querySelector('.bl-note');if(n)n.hidden=false;});});\n})();\n<\/script>\n<script>\n(function(){\nvar root=document.querySelector('.bl');if(!root)return;\nvar D={\n\"Drivers\":[\"Conducteurs\",\"\u0627\u0644\u0633\u0627\u0626\u0642\u0648\u0646\"],\n\"Hosts\":[\"H\u00f4tes\",\"\u0627\u0644\u0645\u0636\u064a\u0641\u0648\u0646\"],\n\"Business\":[\"Entreprises\",\"\u0627\u0644\u0634\u0631\u0643\u0627\u062a\"],\n\"Technology\":[\"Technologie\",\"\u0627\u0644\u062a\u0642\u0646\u064a\u0629\"],\n\"Help\":[\"Aide\",\"\u0627\u0644\u0645\u0633\u0627\u0639\u062f\u0629\"],\n\"Get early access\":[\"Acc\u00e8s anticip\u00e9\",\"\u0633\u062c\u0651\u0644 \u0645\u0628\u0643\u0631\u0627\u064b\"],\n\"Reserved parking, wherever the day takes you.\":[\"Un stationnement r\u00e9serv\u00e9, o\u00f9 que la journ\u00e9e vous m\u00e8ne.\",\"\u0645\u0648\u0642\u0641 \u0645\u062d\u062c\u0648\u0632 \u0644\u0643\u060c \u0623\u064a\u0646\u0645\u0627 \u0623\u062e\u0630\u0643 \u064a\u0648\u0645\u0643.\"],\n\"blassti.ma connects drivers with private garages, driveways and car parks across Casablanca. Compare prices, see live availability and book your space in advance.\":[\"blassti.ma met en relation les conducteurs avec des garages, all\u00e9es et parkings priv\u00e9s partout \u00e0 Casablanca. Comparez les prix, consultez la disponibilit\u00e9 en direct et r\u00e9servez votre place \u00e0 l'avance.\",\"\u064a\u0631\u0628\u0637 blassti.ma \u0627\u0644\u0633\u0627\u0626\u0642\u064a\u0646 \u0628\u0645\u0631\u0627\u0626\u0628 \u0648\u0645\u0645\u0631\u0627\u062a \u0648\u0645\u0648\u0627\u0642\u0641 \u062e\u0627\u0635\u0629 \u0641\u064a \u0623\u0646\u062d\u0627\u0621 \u0627\u0644\u062f\u0627\u0631 \u0627\u0644\u0628\u064a\u0636\u0627\u0621. \u0642\u0627\u0631\u0646 \u0627\u0644\u0623\u0633\u0639\u0627\u0631\u060c \u0648\u0627\u0637\u0651\u0644\u0639 \u0639\u0644\u0649 \u0627\u0644\u062a\u0648\u0641\u0631 \u0627\u0644\u0645\u0628\u0627\u0634\u0631\u060c \u0648\u0627\u062d\u062c\u0632 \u0645\u0643\u0627\u0646\u0643 \u0645\u0633\u0628\u0642\u0627\u064b.\"],\n\"Where are you going?\":[\"O\u00f9 allez-vous ?\",\"\u0625\u0644\u0649 \u0623\u064a\u0646 \u0623\u0646\u062a \u0630\u0627\u0647\u0628\u061f\"],\n\"Arrive\":[\"Arriv\u00e9e\",\"\u0627\u0644\u0648\u0635\u0648\u0644\"],\n\"Leave\":[\"D\u00e9part\",\"\u0627\u0644\u0645\u063a\u0627\u062f\u0631\u0629\"],\n\"Search spaces\":[\"Rechercher une place\",\"\u0627\u0628\u062d\u062b \u0639\u0646 \u0645\u0648\u0642\u0641\"],\n\"Booking opens when the app launches. Leave your email below and we will tell you first.\":[\"Les r\u00e9servations ouvriront au lancement de l'application. Laissez votre e-mail ci-dessous pour \u00eatre pr\u00e9venu en premier.\",\"\u0633\u064a\u064f\u0641\u062a\u062d \u0627\u0644\u062d\u062c\u0632 \u0639\u0646\u062f \u0625\u0637\u0644\u0627\u0642 \u0627\u0644\u062a\u0637\u0628\u064a\u0642. \u0627\u062a\u0631\u0643 \u0628\u0631\u064a\u062f\u0643 \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0623\u062f\u0646\u0627\u0647 \u0644\u0646\u062e\u0628\u0631\u0643 \u0623\u0648\u0644\u0627\u064b.\"],\n\"Have a space to rent?\":[\"Vous avez une place \u00e0 louer ?\",\"\u0644\u062f\u064a\u0643 \u0645\u0643\u0627\u0646 \u0644\u0644\u0625\u064a\u062c\u0627\u0631\u061f\"],\n\"Become a host\":[\"Devenir h\u00f4te\",\"\u0643\u0646 \u0645\u0636\u064a\u0641\u0627\u064b\"],\n\"Casablanca\":[\"Casablanca\",\"\u0627\u0644\u062f\u0627\u0631 \u0627\u0644\u0628\u064a\u0636\u0627\u0621\"],\n\"Where do you want to park?\":[\"O\u00f9 voulez-vous vous garer ?\",\"\u0623\u064a\u0646 \u062a\u0631\u064a\u062f \u0623\u0646 \u062a\u0631\u0643\u0646\u061f\"],\n\"Booking confirmed \u00b7 09:00 to 11:00\":[\"R\u00e9servation confirm\u00e9e \u00b7 09:00 \u00e0 11:00\",\"\u062a\u0645 \u062a\u0623\u0643\u064a\u062f \u0627\u0644\u062d\u062c\u0632 \u00b7 09:00 \u0625\u0644\u0649 11:00\"],\n\"Train Station Parking\":[\"Parking de la Gare\",\"\u0645\u0648\u0642\u0641 \u0645\u062d\u0637\u0629 \u0627\u0644\u0642\u0637\u0627\u0631\"],\n\"15 MAD \/ h\":[\"15 MAD \/ h\",\"15 \u062f\u0631\u0647\u0645\u0627\u064b \/ \u0633\"],\n\"Covered \u00b7 0.4 km \u00b7 5 spaces left\":[\"Couvert \u00b7 0,4 km \u00b7 5 places libres\",\"\u0645\u063a\u0637\u0649 \u00b7 0.4 \u0643\u0645 \u00b7 5 \u0623\u0645\u0627\u0643\u0646 \u0634\u0627\u063a\u0631\u0629\"],\n\"Reserve\":[\"R\u00e9server\",\"\u0627\u062d\u062c\u0632\"],\n\"Guaranteed space\":[\"Place garantie\",\"\u0645\u0643\u0627\u0646 \u0645\u0636\u0645\u0648\u0646\"],\n\"Your booking holds the spot for the hours you chose.\":[\"Votre r\u00e9servation bloque la place pour les heures choisies.\",\"\u062d\u062c\u0632\u0643 \u064a\u062d\u0641\u0638 \u0644\u0643 \u0627\u0644\u0645\u0643\u0627\u0646 \u0637\u0648\u0627\u0644 \u0627\u0644\u0633\u0627\u0639\u0627\u062a \u0627\u0644\u062a\u064a \u0627\u062e\u062a\u0631\u062a\u0647\u0627.\"],\n\"Price shown upfront\":[\"Prix affich\u00e9 \u00e0 l'avance\",\"\u0627\u0644\u0633\u0639\u0631 \u0648\u0627\u0636\u062d \u0645\u0633\u0628\u0642\u0627\u064b\"],\n\"Per-hour rates in MAD, visible before you book.\":[\"Tarifs horaires en MAD, visibles avant de r\u00e9server.\",\"\u0623\u0633\u0639\u0627\u0631 \u0628\u0627\u0644\u0633\u0627\u0639\u0629 \u0628\u0627\u0644\u062f\u0631\u0647\u0645\u060c \u0638\u0627\u0647\u0631\u0629 \u0642\u0628\u0644 \u0627\u0644\u062d\u062c\u0632.\"],\n\"Live availability\":[\"Disponibilit\u00e9 en direct\",\"\u062a\u0648\u0641\u0631 \u0645\u0628\u0627\u0634\u0631\"],\n\"Occupancy is checked by camera, space by space.\":[\"L'occupation est v\u00e9rifi\u00e9e par cam\u00e9ra, place par place.\",\"\u064a\u062a\u0645 \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0627\u0644\u0625\u0634\u063a\u0627\u0644 \u0628\u0627\u0644\u0643\u0627\u0645\u064a\u0631\u0627\u060c \u0645\u0643\u0627\u0646\u0627\u064b \u0628\u0645\u0643\u0627\u0646.\"],\n\"Assistant built in\":[\"Assistant int\u00e9gr\u00e9\",\"\u0645\u0633\u0627\u0639\u062f \u0645\u062f\u0645\u062c\"],\n\"Describe what you need and get a shortlist.\":[\"D\u00e9crivez votre besoin et recevez une s\u00e9lection.\",\"\u0635\u0641 \u0645\u0627 \u062a\u062d\u062a\u0627\u062c\u0647 \u0648\u0627\u062d\u0635\u0644 \u0639\u0644\u0649 \u0642\u0627\u0626\u0645\u0629 \u0645\u062e\u062a\u0635\u0631\u0629.\"],\n\"Built for the trips you actually make\":[\"Con\u00e7u pour vos trajets de tous les jours\",\"\u0645\u0635\u0645\u064e\u0651\u0645 \u0644\u062a\u0646\u0642\u0644\u0627\u062a\u0643 \u0627\u0644\u064a\u0648\u0645\u064a\u0629 \u0627\u0644\u0641\u0639\u0644\u064a\u0629\"],\n\"From the weekday commute to match night, book the right space for the time you need it.\":[\"Du trajet domicile-travail aux soirs de match, r\u00e9servez la bonne place pour la dur\u00e9e qu'il vous faut.\",\"\u0645\u0646 \u0627\u0644\u062a\u0646\u0642\u0644 \u0627\u0644\u064a\u0648\u0645\u064a \u0625\u0644\u0649 \u0627\u0644\u0639\u0645\u0644 \u0625\u0644\u0649 \u0644\u064a\u0627\u0644\u064a \u0627\u0644\u0645\u0628\u0627\u0631\u064a\u0627\u062a\u060c \u0627\u062d\u062c\u0632 \u0627\u0644\u0645\u0643\u0627\u0646 \u0627\u0644\u0645\u0646\u0627\u0633\u0628 \u0644\u0644\u0645\u062f\u0629 \u0627\u0644\u062a\u064a \u062a\u062d\u062a\u0627\u062c\u0647\u0627.\"],\n\"Find a space for this trip\":[\"Trouver une place pour ce trajet\",\"\u0627\u0628\u062d\u062b \u0639\u0646 \u0645\u0643\u0627\u0646 \u0644\u0647\u0630\u0647 \u0627\u0644\u0631\u062d\u0644\u0629\"],\n\"Reserved\":[\"R\u00e9serv\u00e9\",\"\u0645\u062d\u062c\u0648\u0632\"],\n\"Sample listings shown for illustration.\":[\"Annonces fictives, \u00e0 titre d'illustration.\",\"\u0639\u0631\u0648\u0636 \u0646\u0645\u0648\u0630\u062c\u064a\u0629 \u0644\u0644\u062a\u0648\u0636\u064a\u062d \u0641\u0642\u0637.\"],\n\"Commute\":[\"Travail\",\"\u0627\u0644\u0639\u0645\u0644\"],\n\"A space near the office, booked before you leave home.\":[\"Une place pr\u00e8s du bureau, r\u00e9serv\u00e9e avant de quitter la maison.\",\"\u0645\u0643\u0627\u0646 \u0642\u0631\u0628 \u0627\u0644\u0645\u0643\u062a\u0628\u060c \u0645\u062d\u062c\u0648\u0632 \u0642\u0628\u0644 \u0623\u0646 \u062a\u063a\u0627\u062f\u0631 \u0627\u0644\u0628\u064a\u062a.\"],\n\"Around Sidi Ma\u00e2rouf and Casa Finance City there are more cars than bays. Reserve a private space a short walk from your building and stop planning the morning around parking.\":[\"Autour de Sidi Ma\u00e2rouf et de Casa Finance City, il y a plus de voitures que de places. R\u00e9servez une place priv\u00e9e \u00e0 quelques minutes \u00e0 pied de votre immeuble et ne planifiez plus vos matin\u00e9es autour du stationnement.\",\"\u062d\u0648\u0644 \u0633\u064a\u062f\u064a \u0645\u0639\u0631\u0648\u0641 \u0648\u0627\u0644\u0642\u0637\u0628 \u0627\u0644\u0645\u0627\u0644\u064a \u0644\u0644\u062f\u0627\u0631 \u0627\u0644\u0628\u064a\u0636\u0627\u0621\u060c \u0627\u0644\u0633\u064a\u0627\u0631\u0627\u062a \u0623\u0643\u062b\u0631 \u0645\u0646 \u0627\u0644\u0623\u0645\u0627\u0643\u0646. \u0627\u062d\u062c\u0632 \u0645\u0643\u0627\u0646\u0627\u064b \u062e\u0627\u0635\u0627\u064b \u0639\u0644\u0649 \u0628\u0639\u062f \u062f\u0642\u0627\u0626\u0642 \u0645\u0634\u064a\u0627\u064b \u0645\u0646 \u0645\u0628\u0646\u0627\u0643\u060c \u0648\u0644\u0627 \u062a\u0628\u0646\u0650 \u0635\u0628\u0627\u062d\u0643 \u062d\u0648\u0644 \u0627\u0644\u0628\u062d\u062b \u0639\u0646 \u0645\u0648\u0642\u0641.\"],\n\"Private garage \u00b7 Sidi Ma\u00e2rouf\":[\"Garage priv\u00e9 \u00b7 Sidi Ma\u00e2rouf\",\"\u0645\u0631\u0623\u0628 \u062e\u0627\u0635 \u00b7 \u0633\u064a\u062f\u064a \u0645\u0639\u0631\u0648\u0641\"],\n\"Covered \u00b7 350 m walk\":[\"Couvert \u00b7 350 m \u00e0 pied\",\"\u0645\u063a\u0637\u0649 \u00b7 350 \u0645 \u0645\u0634\u064a\u0627\u064b\"],\n\"Mon 08:30 to 18:00\":[\"Lun 08:30 \u00e0 18:00\",\"\u0627\u0644\u0625\u062b\u0646\u064a\u0646 08:30 \u0625\u0644\u0649 18:00\"],\n\"15 MAD \/ hour\":[\"15 MAD \/ heure\",\"15 \u062f\u0631\u0647\u0645\u0627\u064b \/ \u0633\u0627\u0639\u0629\"],\n\"Trains and flights\":[\"Trains et vols\",\"\u0627\u0644\u0642\u0637\u0627\u0631\u0627\u062a \u0648\u0627\u0644\u0631\u062d\u0644\u0627\u062a \u0627\u0644\u062c\u0648\u064a\u0629\"],\n\"Leave the car, catch the train.\":[\"Laissez la voiture, prenez le train.\",\"\u0627\u062a\u0631\u0643 \u0627\u0644\u0633\u064a\u0627\u0631\u0629 \u0648\u0627\u0644\u062d\u0642 \u0628\u0627\u0644\u0642\u0637\u0627\u0631.\"],\n\"Casa Voyageurs for the Al Boraq, Casa Port for Rabat, Mohammed V Airport for a week away. Book a covered space for exactly the hours or days you are gone.\":[\"Casa Voyageurs pour Al Boraq, Casa Port pour Rabat, l'a\u00e9roport Mohammed V pour une semaine d'absence. R\u00e9servez une place couverte pour les heures ou les jours exacts de votre absence.\",\"\u0627\u0644\u062f\u0627\u0631 \u0627\u0644\u0628\u064a\u0636\u0627\u0621 \u0627\u0644\u0645\u0633\u0627\u0641\u0631\u064a\u0646 \u0644\u0644\u0628\u0631\u0627\u0642\u060c \u0627\u0644\u062f\u0627\u0631 \u0627\u0644\u0628\u064a\u0636\u0627\u0621 \u0627\u0644\u0645\u064a\u0646\u0627\u0621 \u0646\u062d\u0648 \u0627\u0644\u0631\u0628\u0627\u0637\u060c \u0648\u0645\u0637\u0627\u0631 \u0645\u062d\u0645\u062f \u0627\u0644\u062e\u0627\u0645\u0633 \u0644\u0623\u0633\u0628\u0648\u0639 \u0645\u0646 \u0627\u0644\u0633\u0641\u0631. \u0627\u062d\u062c\u0632 \u0645\u0643\u0627\u0646\u0627\u064b \u0645\u063a\u0637\u0649 \u0644\u0644\u0633\u0627\u0639\u0627\u062a \u0623\u0648 \u0627\u0644\u0623\u064a\u0627\u0645 \u0627\u0644\u062a\u064a \u0633\u062a\u063a\u064a\u0628 \u0641\u064a\u0647\u0627 \u0628\u0627\u0644\u0636\u0628\u0637.\"],\n\"Covered \u00b7 0.4 km walk\":[\"Couvert \u00b7 0,4 km \u00e0 pied\",\"\u0645\u063a\u0637\u0649 \u00b7 0.4 \u0643\u0645 \u0645\u0634\u064a\u0627\u064b\"],\n\"Sat 07:00 to 21:00\":[\"Sam 07:00 \u00e0 21:00\",\"\u0627\u0644\u0633\u0628\u062a 07:00 \u0625\u0644\u0649 21:00\"],\n\"Events\":[\"\u00c9v\u00e9nements\",\"\u0627\u0644\u0641\u0639\u0627\u0644\u064a\u0627\u062a\"],\n\"Match night without the gridlock.\":[\"Les soirs de match, sans les embouteillages.\",\"\u0644\u064a\u0644\u0629 \u0627\u0644\u0645\u0628\u0627\u0631\u0627\u0629 \u0628\u0644\u0627 \u0627\u0632\u062f\u062d\u0627\u0645.\"],\n\"Around Stade Mohammed V, street parking is gone hours before kick-off. Reserve a courtyard in Ma\u00e2rif, walk the last ten minutes and leave ahead of the traffic.\":[\"Autour du Stade Mohammed V, plus une place dans la rue des heures avant le coup d'envoi. R\u00e9servez une cour \u00e0 Ma\u00e2rif, faites les dix derni\u00e8res minutes \u00e0 pied et repartez avant le trafic.\",\"\u062d\u0648\u0644 \u0645\u0644\u0639\u0628 \u0645\u062d\u0645\u062f \u0627\u0644\u062e\u0627\u0645\u0633\u060c \u062a\u062e\u062a\u0641\u064a \u0623\u0645\u0627\u0643\u0646 \u0627\u0644\u0634\u0627\u0631\u0639 \u0633\u0627\u0639\u0627\u062a \u0642\u0628\u0644 \u0635\u0627\u0641\u0631\u0629 \u0627\u0644\u0628\u062f\u0627\u064a\u0629. \u0627\u062d\u062c\u0632 \u0641\u0646\u0627\u0621\u064b \u0641\u064a \u0627\u0644\u0645\u0639\u0627\u0631\u064a\u0641\u060c \u0648\u0623\u0643\u0645\u0644 \u0627\u0644\u062f\u0642\u0627\u0626\u0642 \u0627\u0644\u0639\u0634\u0631 \u0627\u0644\u0623\u062e\u064a\u0631\u0629 \u0645\u0634\u064a\u0627\u064b\u060c \u0648\u063a\u0627\u062f\u0631 \u0642\u0628\u0644 \u0627\u0644\u0632\u062d\u0627\u0645.\"],\n\"Private courtyard \u00b7 Ma\u00e2rif\":[\"Cour priv\u00e9e \u00b7 Ma\u00e2rif\",\"\u0641\u0646\u0627\u0621 \u062e\u0627\u0635 \u00b7 \u0627\u0644\u0645\u0639\u0627\u0631\u064a\u0641\"],\n\"Open air \u00b7 800 m walk\":[\"Plein air \u00b7 800 m \u00e0 pied\",\"\u0645\u0643\u0634\u0648\u0641 \u00b7 800 \u0645 \u0645\u0634\u064a\u0627\u064b\"],\n\"Sun 18:30 to 23:00\":[\"Dim 18:30 \u00e0 23:00\",\"\u0627\u0644\u0623\u062d\u062f 18:30 \u0625\u0644\u0649 23:00\"],\n\"20 MAD \/ hour\":[\"20 MAD \/ heure\",\"20 \u062f\u0631\u0647\u0645\u0627\u064b \/ \u0633\u0627\u0639\u0629\"],\n\"Weekends\":[\"Week-ends\",\"\u0639\u0637\u0644\u0629 \u0646\u0647\u0627\u064a\u0629 \u0627\u0644\u0623\u0633\u0628\u0648\u0639\"],\n\"The corniche, without the hunt for a space.\":[\"La corniche, sans la chasse \u00e0 la place.\",\"\u0627\u0644\u0643\u0648\u0631\u0646\u064a\u0634\u060c \u062f\u0648\u0646 \u0639\u0646\u0627\u0621 \u0627\u0644\u0628\u062d\u062b \u0639\u0646 \u0645\u0643\u0627\u0646.\"],\n\"Ain Diab and Morocco Mall fill up by midday on Saturdays. A private driveway one street back holds your place for the whole afternoon.\":[\"A\u00efn Diab et le Morocco Mall sont complets d\u00e8s midi le samedi. Une all\u00e9e priv\u00e9e, une rue derri\u00e8re, garde votre place tout l'apr\u00e8s-midi.\",\"\u0639\u064a\u0646 \u0627\u0644\u0630\u0626\u0627\u0628 \u0648\u0645\u0648\u0631\u0648\u0643\u0648 \u0645\u0648\u0644 \u064a\u0645\u062a\u0644\u0626\u0627\u0646 \u0639\u0646\u062f \u0645\u0646\u062a\u0635\u0641 \u0627\u0644\u0646\u0647\u0627\u0631 \u0623\u064a\u0627\u0645 \u0627\u0644\u0633\u0628\u062a. \u0645\u0645\u0631 \u062e\u0627\u0635 \u0641\u064a \u0627\u0644\u0634\u0627\u0631\u0639 \u0627\u0644\u062e\u0644\u0641\u064a \u064a\u062d\u0641\u0638 \u0645\u0643\u0627\u0646\u0643 \u0637\u0648\u0627\u0644 \u0641\u062a\u0631\u0629 \u0628\u0639\u062f \u0627\u0644\u0638\u0647\u0631.\"],\n\"Private driveway \u00b7 Ain Diab\":[\"All\u00e9e priv\u00e9e \u00b7 A\u00efn Diab\",\"\u0645\u0645\u0631 \u062e\u0627\u0635 \u00b7 \u0639\u064a\u0646 \u0627\u0644\u0630\u0626\u0627\u0628\"],\n\"Open air \u00b7 300 m walk\":[\"Plein air \u00b7 300 m \u00e0 pied\",\"\u0645\u0643\u0634\u0648\u0641 \u00b7 300 \u0645 \u0645\u0634\u064a\u0627\u064b\"],\n\"Sat 15:00 to 19:00\":[\"Sam 15:00 \u00e0 19:00\",\"\u0627\u0644\u0633\u0628\u062a 15:00 \u0625\u0644\u0649 19:00\"],\n\"25 MAD \/ hour\":[\"25 MAD \/ heure\",\"25 \u062f\u0631\u0647\u0645\u0627\u064b \/ \u0633\u0627\u0639\u0629\"],\n\"How it works\":[\"Comment \u00e7a marche\",\"\u0643\u064a\u0641 \u064a\u0639\u0645\u0644\"],\n\"Search your destination\":[\"Indiquez votre destination\",\"\u0627\u0628\u062d\u062b \u0639\u0646 \u0648\u062c\u0647\u062a\u0643\"],\n\"Enter where you are going and when. Browse the map, or ask the assistant for a covered space under your budget.\":[\"Saisissez o\u00f9 vous allez et quand. Parcourez la carte ou demandez \u00e0 l'assistant une place couverte dans votre budget.\",\"\u0623\u062f\u062e\u0644 \u0648\u062c\u0647\u062a\u0643 \u0648\u0627\u0644\u0645\u0648\u0639\u062f. \u062a\u0635\u0641\u062d \u0627\u0644\u062e\u0631\u064a\u0637\u0629\u060c \u0623\u0648 \u0627\u0637\u0644\u0628 \u0645\u0646 \u0627\u0644\u0645\u0633\u0627\u0639\u062f \u0645\u0643\u0627\u0646\u0627\u064b \u0645\u063a\u0637\u0649 \u0636\u0645\u0646 \u0645\u064a\u0632\u0627\u0646\u064a\u062a\u0643.\"],\n\"Compare and reserve\":[\"Comparez et r\u00e9servez\",\"\u0642\u0627\u0631\u0646 \u0648\u0627\u062d\u062c\u0632\"],\n\"See price per hour, walking distance and spaces left side by side. Confirm the hours you need.\":[\"Prix \u00e0 l'heure, distance \u00e0 pied et places restantes, c\u00f4te \u00e0 c\u00f4te. Confirmez les heures dont vous avez besoin.\",\"\u0634\u0627\u0647\u062f \u0627\u0644\u0633\u0639\u0631 \u0628\u0627\u0644\u0633\u0627\u0639\u0629 \u0648\u0645\u0633\u0627\u0641\u0629 \u0627\u0644\u0645\u0634\u064a \u0648\u0627\u0644\u0623\u0645\u0627\u0643\u0646 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629 \u062c\u0646\u0628\u0627\u064b \u0625\u0644\u0649 \u062c\u0646\u0628\u060c \u062b\u0645 \u0623\u0643\u0651\u062f \u0627\u0644\u0633\u0627\u0639\u0627\u062a \u0627\u0644\u062a\u064a \u062a\u062d\u062a\u0627\u062c\u0647\u0627.\"],\n\"Arrive and park\":[\"Arrivez et garez-vous\",\"\u0635\u0650\u0644 \u0648\u0627\u0631\u0643\u0646\"],\n\"Follow directions to the entrance. Your space is waiting, and your booking is in the app.\":[\"Suivez l'itin\u00e9raire jusqu'\u00e0 l'entr\u00e9e. Votre place vous attend et votre r\u00e9servation est dans l'application.\",\"\u0627\u062a\u0628\u0639 \u0627\u0644\u0627\u062a\u062c\u0627\u0647\u0627\u062a \u0625\u0644\u0649 \u0627\u0644\u0645\u062f\u062e\u0644. \u0645\u0643\u0627\u0646\u0643 \u0641\u064a \u0627\u0646\u062a\u0638\u0627\u0631\u0643\u060c \u0648\u062d\u062c\u0632\u0643 \u0641\u064a \u0627\u0644\u062a\u0637\u0628\u064a\u0642.\"],\n\"Availability you can rely on\":[\"Une disponibilit\u00e9 sur laquelle compter\",\"\u062a\u0648\u0641\u0631 \u064a\u0645\u0643\u0646\u0643 \u0627\u0644\u0627\u0639\u062a\u0645\u0627\u062f \u0639\u0644\u064a\u0647\"],\n\"Computer vision monitors each listed space and updates its status as cars arrive and leave. When the app shows a space as free, it is.\":[\"La vision par ordinateur surveille chaque place et met \u00e0 jour son statut \u00e0 mesure que les voitures arrivent et repartent. Quand l'application indique qu'une place est libre, elle l'est.\",\"\u062a\u0631\u0627\u0642\u0628 \u0627\u0644\u0631\u0624\u064a\u0629 \u0627\u0644\u062d\u0627\u0633\u0648\u0628\u064a\u0629 \u0643\u0644 \u0645\u0643\u0627\u0646 \u0645\u0639\u0631\u0648\u0636 \u0648\u062a\u062d\u062f\u0651\u062b \u062d\u0627\u0644\u062a\u0647 \u0645\u0639 \u0648\u0635\u0648\u0644 \u0627\u0644\u0633\u064a\u0627\u0631\u0627\u062a \u0648\u0645\u063a\u0627\u062f\u0631\u062a\u0647\u0627. \u0639\u0646\u062f\u0645\u0627 \u064a\u064f\u0638\u0647\u0631 \u0627\u0644\u062a\u0637\u0628\u064a\u0642 \u0623\u0646 \u0627\u0644\u0645\u0643\u0627\u0646 \u0634\u0627\u063a\u0631\u060c \u0641\u0647\u0648 \u0634\u0627\u063a\u0631 \u0641\u0639\u0644\u0627\u064b.\"],\n\"Occupancy detected per space, not per car park\":[\"Occupation d\u00e9tect\u00e9e par place, et non par parking\",\"\u0631\u0635\u062f \u0627\u0644\u0625\u0634\u063a\u0627\u0644 \u0644\u0643\u0644 \u0645\u0643\u0627\u0646 \u0639\u0644\u0649 \u062d\u062f\u0629\u060c \u0644\u0627 \u0644\u0643\u0644 \u0645\u0648\u0642\u0641\"],\n\"Hosts do not need to update listings by hand\":[\"Les h\u00f4tes n'ont pas \u00e0 mettre \u00e0 jour leurs annonces \u00e0 la main\",\"\u0644\u0627 \u064a\u062d\u062a\u0627\u062c \u0627\u0644\u0645\u0636\u064a\u0641\u0648\u0646 \u0625\u0644\u0649 \u062a\u062d\u062f\u064a\u062b \u0639\u0631\u0648\u0636\u0647\u0645 \u064a\u062f\u0648\u064a\u0627\u064b\"],\n\"An assistant that understands requests in plain language\":[\"Un assistant qui comprend les demandes en langage courant\",\"\u0645\u0633\u0627\u0639\u062f \u064a\u0641\u0647\u0645 \u0627\u0644\u0637\u0644\u0628\u0627\u062a \u0628\u0644\u063a\u0629 \u0639\u0627\u062f\u064a\u0629\"],\n\"Central Garage \u00b7 Level 1\":[\"Garage Central \u00b7 Niveau 1\",\"\u0627\u0644\u0645\u0631\u0623\u0628 \u0627\u0644\u0645\u0631\u0643\u0632\u064a \u00b7 \u0627\u0644\u0637\u0627\u0628\u0642 1\"],\n\"Live\":[\"En direct\",\"\u0645\u0628\u0627\u0634\u0631\"],\n\"of 24 spaces free\":[\"places libres sur 24\",\"\u0623\u0645\u0627\u0643\u0646 \u0634\u0627\u063a\u0631\u0629 \u0645\u0646 \u0623\u0635\u0644 24\"],\n\"Illustrative view\":[\"Vue illustrative\",\"\u0639\u0631\u0636 \u062a\u0648\u0636\u064a\u062d\u064a\"],\n\"Turn an empty space into income\":[\"Transformez une place vide en revenu\",\"\u062d\u0648\u0651\u0644 \u0645\u0643\u0627\u0646\u0627\u064b \u0641\u0627\u0631\u063a\u0627\u064b \u0625\u0644\u0649 \u062f\u062e\u0644\"],\n\"List a garage, driveway or private car park. You choose the hours it is available and the hourly rate, and you see every booking before the driver arrives.\":[\"Proposez un garage, une all\u00e9e ou un parking priv\u00e9. Vous choisissez les heures de disponibilit\u00e9 et le tarif horaire, et vous voyez chaque r\u00e9servation avant l'arriv\u00e9e du conducteur.\",\"\u0627\u0639\u0631\u0636 \u0645\u0631\u0623\u0628\u0627\u064b \u0623\u0648 \u0645\u0645\u0631\u0627\u064b \u0623\u0648 \u0645\u0648\u0642\u0641\u0627\u064b \u062e\u0627\u0635\u0627\u064b. \u0623\u0646\u062a \u062a\u062d\u062f\u062f \u0633\u0627\u0639\u0627\u062a \u0627\u0644\u062a\u0648\u0641\u0631 \u0648\u0627\u0644\u0633\u0639\u0631 \u0628\u0627\u0644\u0633\u0627\u0639\u0629\u060c \u0648\u062a\u0631\u0649 \u0643\u0644 \u062d\u062c\u0632 \u0642\u0628\u0644 \u0648\u0635\u0648\u0644 \u0627\u0644\u0633\u0627\u0626\u0642.\"],\n\"List your space\":[\"Proposer ma place\",\"\u0627\u0639\u0631\u0636 \u0645\u0643\u0627\u0646\u0643\"],\n\"Estimate your earnings\":[\"Estimez vos revenus\",\"\u0642\u062f\u0651\u0631 \u0623\u0631\u0628\u0627\u062d\u0643\"],\n\"Hours available per day\":[\"Heures disponibles par jour\",\"\u0627\u0644\u0633\u0627\u0639\u0627\u062a \u0627\u0644\u0645\u062a\u0627\u062d\u0629 \u064a\u0648\u0645\u064a\u0627\u064b\"],\n\"h\":[\"h\",\"\u0633\"],\n\"Price per hour\":[\"Prix par heure\",\"\u0627\u0644\u0633\u0639\u0631 \u0628\u0627\u0644\u0633\u0627\u0639\u0629\"],\n\"MAD\":[\"MAD\",\"\u062f\u0631\u0647\u0645\"],\n\"Days per month\":[\"Jours par mois\",\"\u0627\u0644\u0623\u064a\u0627\u0645 \u0641\u064a \u0627\u0644\u0634\u0647\u0631\"],\n\"days\":[\"jours\",\"\u064a\u0648\u0645\u0627\u064b\"],\n\"Up to, per month, if fully booked\":[\"Jusqu'\u00e0, par mois, si tout est r\u00e9serv\u00e9\",\"\u062d\u062a\u0649\u060c \u0634\u0647\u0631\u064a\u0627\u064b\u060c \u0639\u0646\u062f \u0627\u0644\u062d\u062c\u0632 \u0627\u0644\u0643\u0627\u0645\u0644\"],\n\"Estimate before fees.\":[\"Estimation hors frais.\",\"\u062a\u0642\u062f\u064a\u0631 \u0642\u0628\u0644 \u062e\u0635\u0645 \u0627\u0644\u0631\u0633\u0648\u0645.\"],\n\"blassti for Business\":[\"blassti pour les entreprises\",\"blassti \u0644\u0644\u0634\u0631\u0643\u0627\u062a\"],\n\"Manage a residence, office building, clinic or venue? Put unused spaces to work and give visitors a place to park, with occupancy tracked for you.\":[\"Vous g\u00e9rez une r\u00e9sidence, un immeuble de bureaux, une clinique ou une salle ? Rentabilisez les places inutilis\u00e9es et offrez un stationnement \u00e0 vos visiteurs, avec un suivi automatique de l'occupation.\",\"\u0647\u0644 \u062a\u062f\u064a\u0631 \u0625\u0642\u0627\u0645\u0629 \u0633\u0643\u0646\u064a\u0629 \u0623\u0648 \u0645\u0628\u0646\u0649 \u0645\u0643\u0627\u062a\u0628 \u0623\u0648 \u0645\u0635\u062d\u0629 \u0623\u0648 \u0642\u0627\u0639\u0629\u061f \u0627\u0633\u062a\u062b\u0645\u0631 \u0627\u0644\u0623\u0645\u0627\u0643\u0646 \u063a\u064a\u0631 \u0627\u0644\u0645\u0633\u062a\u0639\u0645\u0644\u0629 \u0648\u0648\u0641\u0651\u0631 \u0644\u0632\u0648\u0627\u0631\u0643 \u0645\u0648\u0642\u0641\u0627\u064b\u060c \u0645\u0639 \u062a\u062a\u0628\u0639 \u062a\u0644\u0642\u0627\u0626\u064a \u0644\u0644\u0625\u0634\u063a\u0627\u0644.\"],\n\"Talk to our team\":[\"Contacter notre \u00e9quipe\",\"\u062a\u0648\u0627\u0635\u0644 \u0645\u0639 \u0641\u0631\u064a\u0642\u0646\u0627\"],\n\"Questions, answered\":[\"Vos questions, nos r\u00e9ponses\",\"\u0623\u0633\u0626\u0644\u062a\u0643\u0645 \u0648\u0623\u062c\u0648\u0628\u062a\u0647\u0627\"],\n\"How do you know a space is really free?\":[\"Comment savez-vous qu'une place est vraiment libre ?\",\"\u0643\u064a\u0641 \u062a\u0639\u0631\u0641\u0648\u0646 \u0623\u0646 \u0627\u0644\u0645\u0643\u0627\u0646 \u0634\u0627\u063a\u0631 \u0641\u0639\u0644\u0627\u064b\u061f\"],\n\"Each listed space is monitored by camera. Computer vision detects when a car arrives or leaves and updates availability in the app.\":[\"Chaque place est surveill\u00e9e par cam\u00e9ra. La vision par ordinateur d\u00e9tecte l'arriv\u00e9e ou le d\u00e9part d'une voiture et met \u00e0 jour la disponibilit\u00e9 dans l'application.\",\"\u0643\u0644 \u0645\u0643\u0627\u0646 \u0645\u0639\u0631\u0648\u0636 \u0645\u0631\u0627\u0642\u064e\u0628 \u0628\u0627\u0644\u0643\u0627\u0645\u064a\u0631\u0627. \u062a\u0631\u0635\u062f \u0627\u0644\u0631\u0624\u064a\u0629 \u0627\u0644\u062d\u0627\u0633\u0648\u0628\u064a\u0629 \u0648\u0635\u0648\u0644 \u0627\u0644\u0633\u064a\u0627\u0631\u0629 \u0623\u0648 \u0645\u063a\u0627\u062f\u0631\u062a\u0647\u0627 \u0648\u062a\u062d\u062f\u0651\u062b \u0627\u0644\u062a\u0648\u0641\u0631 \u0641\u064a \u0627\u0644\u062a\u0637\u0628\u064a\u0642.\"],\n\"Who owns the spaces?\":[\"\u00c0 qui appartiennent les places ?\",\"\u0645\u0646 \u064a\u0645\u0644\u0643 \u0627\u0644\u0623\u0645\u0627\u0643\u0646\u061f\"],\n\"Hosts: private owners and operators who list a garage, driveway or car park and set their own hours and price.\":[\"Aux h\u00f4tes : des particuliers et des exploitants qui proposent un garage, une all\u00e9e ou un parking, et fixent leurs horaires et leur prix.\",\"\u0627\u0644\u0645\u0636\u064a\u0641\u0648\u0646: \u0645\u0644\u0627\u0643 \u062e\u0648\u0627\u0635 \u0648\u0645\u0634\u063a\u0651\u0644\u0648\u0646 \u064a\u0639\u0631\u0636\u0648\u0646 \u0645\u0631\u0623\u0628\u0627\u064b \u0623\u0648 \u0645\u0645\u0631\u0627\u064b \u0623\u0648 \u0645\u0648\u0642\u0641\u0627\u064b \u0648\u064a\u062d\u062f\u062f\u0648\u0646 \u0633\u0627\u0639\u0627\u062a\u0647\u0645 \u0648\u0623\u0633\u0639\u0627\u0631\u0647\u0645.\"],\n\"When can I start booking?\":[\"Quand pourrai-je r\u00e9server ?\",\"\u0645\u062a\u0649 \u064a\u0645\u0643\u0646\u0646\u064a \u0627\u0644\u0628\u062f\u0621 \u0641\u064a \u0627\u0644\u062d\u062c\u0632\u061f\"],\n\"The app is in development. Leave your email at the bottom of this page and you will be told the day it opens.\":[\"L'application est en cours de d\u00e9veloppement. Laissez votre e-mail en bas de cette page et vous serez pr\u00e9venu le jour de l'ouverture.\",\"\u0627\u0644\u062a\u0637\u0628\u064a\u0642 \u0642\u064a\u062f \u0627\u0644\u062a\u0637\u0648\u064a\u0631. \u0627\u062a\u0631\u0643 \u0628\u0631\u064a\u062f\u0643 \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0623\u0633\u0641\u0644 \u0647\u0630\u0647 \u0627\u0644\u0635\u0641\u062d\u0629 \u0648\u0633\u0646\u062e\u0628\u0631\u0643 \u064a\u0648\u0645 \u0627\u0644\u0627\u0641\u062a\u062a\u0627\u062d.\"],\n\"Your spot. Smarter.\":[\"Votre place. En plus malin.\",\"\u0645\u0643\u0627\u0646\u0643. \u0628\u0630\u0643\u0627\u0621 \u0623\u0643\u0628\u0631.\"],\n\"The blassti app is coming to iOS and Android. Leave your email to be notified at launch.\":[\"L'application blassti arrive sur iOS et Android. Laissez votre e-mail pour \u00eatre pr\u00e9venu au lancement.\",\"\u062a\u0637\u0628\u064a\u0642 blassti \u0642\u0627\u062f\u0645 \u0625\u0644\u0649 iOS \u0648Android. \u0627\u062a\u0631\u0643 \u0628\u0631\u064a\u062f\u0643 \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0644\u0646\u062e\u0628\u0631\u0643 \u0639\u0646\u062f \u0627\u0644\u0625\u0637\u0644\u0627\u0642.\"],\n\"Email address\":[\"Adresse e-mail\",\"\u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a\"],\n\"Notify me\":[\"Me pr\u00e9venir\",\"\u0623\u062e\u0628\u0631\u0646\u064a\"],\n\"Sign-ups are not open yet. Please check back soon.\":[\"Les inscriptions ne sont pas encore ouvertes. Revenez bient\u00f4t.\",\"\u0627\u0644\u062a\u0633\u062c\u064a\u0644 \u063a\u064a\u0631 \u0645\u062a\u0627\u062d \u0628\u0639\u062f. \u0639\u064f\u062f \u0642\u0631\u064a\u0628\u0627\u064b.\"],\n\"Smarter parking. Easier journeys.\":[\"Un stationnement plus malin. Des trajets plus simples.\",\"\u0631\u0643\u0646 \u0623\u0630\u0643\u0649. \u062a\u0646\u0642\u0644\u0627\u062a \u0623\u0633\u0647\u0644.\"],\n\"Find parking\":[\"Trouver une place\",\"\u0627\u0628\u062d\u062b \u0639\u0646 \u0645\u0648\u0642\u0641\"],\n\"Get the app\":[\"T\u00e9l\u00e9charger l'application\",\"\u062d\u0645\u0651\u0644 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\"],\n\"Earnings estimate\":[\"Estimation des revenus\",\"\u062a\u0642\u062f\u064a\u0631 \u0627\u0644\u0623\u0631\u0628\u0627\u062d\"],\n\"Company\":[\"Soci\u00e9t\u00e9\",\"\u0627\u0644\u0634\u0631\u0643\u0629\"],\n\"Contact\":[\"Contact\",\"\u0627\u062a\u0635\u0644 \u0628\u0646\u0627\"],\n\"\u00a9 2026 blassti.ma \u00b7 Casablanca, Morocco\":[\"\u00a9 2026 blassti.ma \u00b7 Casablanca, Maroc\",\"\u00a9 2026 blassti.ma \u00b7 \u0627\u0644\u062f\u0627\u0631 \u0627\u0644\u0628\u064a\u0636\u0627\u0621\u060c \u0627\u0644\u0645\u063a\u0631\u0628\"],\n\"Address, station, venue or neighbourhood\":[\"Adresse, gare, lieu ou quartier\",\"\u0639\u0646\u0648\u0627\u0646\u060c \u0645\u062d\u0637\u0629\u060c \u0645\u0643\u0627\u0646 \u0623\u0648 \u062d\u064a\"],\n\"Today, 09:00\":[\"Aujourd'hui, 09:00\",\"\u0627\u0644\u064a\u0648\u0645\u060c 09:00\"],\n\"Today, 11:00\":[\"Aujourd'hui, 11:00\",\"\u0627\u0644\u064a\u0648\u0645\u060c 11:00\"]\n};\nwindow.blI18n={D:D,apply:function(){apply();}};var lang='en';\nfunction t(k){if(lang==='en')return k;var e=D[k];return e?e[lang==='fr'?0:1]:k;}\nfunction apply(){\nvar w=document.createTreeWalker(root,NodeFilter.SHOW_TEXT),n;\nwhile((n=w.nextNode())){var p=n.parentNode&&n.parentNode.nodeName;if(p==='SCRIPT'||p==='STYLE')continue;\nif(n.__en===undefined)n.__en=n.nodeValue;var k=n.__en.trim();if(!k)continue;n.nodeValue=n.__en.replace(k,t(k));}\nArray.prototype.forEach.call(root.querySelectorAll('input[placeholder]'),function(el){if(el.__ph===undefined)el.__ph=el.getAttribute('placeholder');el.setAttribute('placeholder',t(el.__ph));});\n}\nfunction setLang(l){lang=l;root.setAttribute('dir',l==='ar'?'rtl':'ltr');root.setAttribute('lang',l);document.documentElement.setAttribute('lang',l);\nArray.prototype.forEach.call(document.querySelectorAll('#bl-lang button'),function(b){b.setAttribute('aria-pressed',b.getAttribute('data-l')===l?'true':'false');});\napply();try{localStorage.setItem('bl-lang',l);}catch(e){}}\nArray.prototype.forEach.call(document.querySelectorAll('#bl-lang button'),function(b){b.addEventListener('click',function(){setLang(b.getAttribute('data-l'));});});\nvar saved=null;try{saved=localStorage.getItem('bl-lang');}catch(e){}\nif(!saved){var nl=(navigator.language||'en').slice(0,2);saved=(nl==='fr'||nl==='ar')?nl:'en';}\nvar tabs=document.getElementById('bl-tabs'),touched=false,cur=0;\nvar card=root.querySelector('.bl-card'),ct=root.querySelector('.bl-case-t');\ntabs.addEventListener('pointerdown',function(){touched=true;});\ntabs.addEventListener('keydown',function(){touched=true;});\ntabs.addEventListener('click',function(e){var i=Array.prototype.indexOf.call(tabs.children,e.target);if(i>=0)cur=i;apply();\n[card,ct].forEach(function(el){el.classList.remove('pop');void el.offsetWidth;el.classList.add('pop');});});\nsetLang(saved);\nvar rm=window.matchMedia('(prefers-reduced-motion: reduce)').matches;\nif(!rm){setInterval(function(){if(touched||document.hidden)return;cur=(cur+1)%tabs.children.length;tabs.children[cur].click();},6000);}\nif(!rm&&'IntersectionObserver' in window){\nvar io=new IntersectionObserver(function(es){es.forEach(function(e){if(e.isIntersecting){e.target.classList.add('in');io.unobserve(e.target);}});},{threshold:0.12});\nArray.prototype.forEach.call(root.querySelectorAll('.bl-sec h2,.bl-sec>.bl-lead,.bl-case,.bl-steps li,.bl-tech .bl-w>div,.bl-hosts>*,.bl-biz,.bl-faq details,.bl-vals .bl-w>div,.bl-app>*'),function(el){\nel.classList.add('bl-rv');el.style.transitionDelay=(Array.prototype.indexOf.call(el.parentNode.children,el)%4*90)+'ms';io.observe(el);});\n}\n})();\n<\/script>\n<script>\n(function(){\nvar el=document.getElementById('bl-demo');if(!el)return;\nvar I=window.blI18n,root=document.querySelector('.bl');\nvar T={\n\"Demo\":[\"D\u00e9mo\",\"\u0639\u0631\u0636 \u062a\u062c\u0631\u064a\u0628\u064a\"],\n\"Try the app before it launches\":[\"Essayez l'application avant son lancement\",\"\u062c\u0631\u0651\u0628 \u0627\u0644\u062a\u0637\u0628\u064a\u0642 \u0642\u0628\u0644 \u0625\u0637\u0644\u0627\u0642\u0647\"],\n\"This is a working preview with sample data. Search a car park, book a space, pay from the demo wallet and get your access code. Nothing is charged.\":[\"Voici un aper\u00e7u fonctionnel avec des donn\u00e9es fictives. Cherchez un parking, r\u00e9servez une place, payez avec le portefeuille de d\u00e9monstration et recevez votre code d'acc\u00e8s. Rien n'est d\u00e9bit\u00e9.\",\"\u0647\u0630\u0647 \u0645\u0639\u0627\u064a\u0646\u0629 \u062a\u0639\u0645\u0644 \u0628\u0628\u064a\u0627\u0646\u0627\u062a \u062a\u062c\u0631\u064a\u0628\u064a\u0629. \u0627\u0628\u062d\u062b \u0639\u0646 \u0645\u0648\u0642\u0641\u060c \u0627\u062d\u062c\u0632 \u0645\u0643\u0627\u0646\u0627\u064b\u060c \u0627\u062f\u0641\u0639 \u0645\u0646 \u0627\u0644\u0645\u062d\u0641\u0638\u0629 \u0627\u0644\u062a\u062c\u0631\u064a\u0628\u064a\u0629 \u0648\u0627\u062d\u0635\u0644 \u0639\u0644\u0649 \u0631\u0645\u0632 \u0627\u0644\u062f\u062e\u0648\u0644. \u0644\u0627 \u064a\u064f\u062e\u0635\u0645 \u0623\u064a \u0645\u0628\u0644\u063a.\"],\n\"Pick a car park on the home screen or the map\":[\"Choisissez un parking sur l'accueil ou la carte\",\"\u0627\u062e\u062a\u0631 \u0645\u0648\u0642\u0641\u0627\u064b \u0645\u0646 \u0627\u0644\u0634\u0627\u0634\u0629 \u0627\u0644\u0631\u0626\u064a\u0633\u064a\u0629 \u0623\u0648 \u0627\u0644\u062e\u0631\u064a\u0637\u0629\"],\n\"Choose your hours and pay with the wallet\":[\"Choisissez vos heures et payez avec le portefeuille\",\"\u0627\u062e\u062a\u0631 \u0633\u0627\u0639\u0627\u062a\u0643 \u0648\u0627\u062f\u0641\u0639 \u0628\u0627\u0644\u0645\u062d\u0641\u0638\u0629\"],\n\"Get an access code, then cancel for a refund\":[\"Recevez un code d'acc\u00e8s, puis annulez pour \u00eatre rembours\u00e9\",\"\u0627\u062d\u0635\u0644 \u0639\u0644\u0649 \u0631\u0645\u0632 \u0627\u0644\u062f\u062e\u0648\u0644\u060c \u062b\u0645 \u0623\u0644\u063a\u0650 \u0644\u0627\u0633\u062a\u0631\u062f\u0627\u062f \u0627\u0644\u0645\u0628\u0644\u063a\"],\n\"Ask the assistant in your own words\":[\"Interrogez l'assistant avec vos propres mots\",\"\u0627\u0633\u0623\u0644 \u0627\u0644\u0645\u0633\u0627\u0639\u062f \u0628\u0643\u0644\u0645\u0627\u062a\u0643\"],\n\"Restart demo\":[\"Recommencer la d\u00e9mo\",\"\u0625\u0639\u0627\u062f\u0629 \u062a\u0634\u063a\u064a\u0644 \u0627\u0644\u0639\u0631\u0636\"],\n\"Find your spot\":[\"Trouvez votre place\",\"\u0627\u0639\u062b\u0631 \u0639\u0644\u0649 \u0645\u0643\u0627\u0646\u0643\"],\n\"Search city or facility\":[\"Rechercher une ville ou un parking\",\"\u0627\u0628\u062d\u062b \u0639\u0646 \u0645\u062f\u064a\u0646\u0629 \u0623\u0648 \u0645\u0648\u0642\u0641\"],\n\"All\":[\"Tout\",\"\u0627\u0644\u0643\u0644\"],\n\"Rabat\":[\"Rabat\",\"\u0627\u0644\u0631\u0628\u0627\u0637\"],\n\"Marrakech\":[\"Marrakech\",\"\u0645\u0631\u0627\u0643\u0634\"],\n\"Tangier\":[\"Tanger\",\"\u0637\u0646\u062c\u0629\"],\n\"spots left\":[\"places libres\",\"\u0623\u0645\u0627\u0643\u0646 \u0645\u062a\u0627\u062d\u0629\"],\n\"Full\":[\"Complet\",\"\u0645\u0645\u062a\u0644\u0626\"],\n\"\/ hr\":[\"\/ h\",\"\/ \u0633\u0627\u0639\u0629\"],\n\"Book now\":[\"R\u00e9server maintenant\",\"\u0627\u062d\u062c\u0632 \u0627\u0644\u0622\u0646\"],\n\"Covered\":[\"Couvert\",\"\u0645\u063a\u0637\u0649\"],\n\"EV charging\":[\"Recharge \u00e9lectrique\",\"\u0634\u062d\u0646 \u0643\u0647\u0631\u0628\u0627\u0626\u064a\"],\n\"CCTV 24\/7\":[\"Vid\u00e9osurveillance 24h\/24\",\"\u0645\u0631\u0627\u0642\u0628\u0629 24\/7\"],\n\"Valet\":[\"Voiturier\",\"\u062e\u062f\u0645\u0629 \u0635\u0641 \u0627\u0644\u0633\u064a\u0627\u0631\u0627\u062a\"],\n\"Availability\":[\"Disponibilit\u00e9\",\"\u0627\u0644\u062a\u0648\u0641\u0631\"],\n\"Open 24\/7\":[\"Ouvert 24h\/24\",\"\u0645\u0641\u062a\u0648\u062d 24\/7\"],\n\"Features\":[\"\u00c9quipements\",\"\u0627\u0644\u0645\u0632\u0627\u064a\u0627\"],\n\"Review and pay\":[\"V\u00e9rifier et payer\",\"\u0627\u0644\u0645\u0631\u0627\u062c\u0639\u0629 \u0648\u0627\u0644\u062f\u0641\u0639\"],\n\"Start time\":[\"Heure de d\u00e9but\",\"\u0648\u0642\u062a \u0627\u0644\u0628\u062f\u0621\"],\n\"Today\":[\"Aujourd'hui\",\"\u0627\u0644\u064a\u0648\u0645\"],\n\"Tomorrow\":[\"Demain\",\"\u063a\u062f\u0627\u064b\"],\n\"Duration\":[\"Dur\u00e9e\",\"\u0627\u0644\u0645\u062f\u0629\"],\n\"hours\":[\"heures\",\"\u0633\u0627\u0639\u0627\u062a\"],\n\"Total due\":[\"Total \u00e0 payer\",\"\u0627\u0644\u0645\u0628\u0644\u063a \u0627\u0644\u0645\u0633\u062a\u062d\u0642\"],\n\"Available balance\":[\"Solde disponible\",\"\u0627\u0644\u0631\u0635\u064a\u062f \u0627\u0644\u0645\u062a\u0627\u062d\"],\n\"Balance after payment\":[\"Solde apr\u00e8s paiement\",\"\u0627\u0644\u0631\u0635\u064a\u062f \u0628\u0639\u062f \u0627\u0644\u062f\u0641\u0639\"],\n\"Pay with wallet\":[\"Payer avec le portefeuille\",\"\u0627\u0644\u062f\u0641\u0639 \u0628\u0627\u0644\u0645\u062d\u0641\u0638\u0629\"],\n\"Processing\u2026\":[\"Traitement\u2026\",\"\u062c\u0627\u0631\u064d \u0627\u0644\u0645\u0639\u0627\u0644\u062c\u0629\u2026\"],\n\"Insufficient balance\":[\"Solde insuffisant\",\"\u0631\u0635\u064a\u062f \u063a\u064a\u0631 \u0643\u0627\u0641\u064d\"],\n\"You need\":[\"Il vous manque\",\"\u062a\u062d\u062a\u0627\u062c \u0625\u0644\u0649\"],\n\"more to complete this booking.\":[\"pour finaliser cette r\u00e9servation.\",\"\u0625\u0636\u0627\u0641\u064a\u0629 \u0644\u0625\u062a\u0645\u0627\u0645 \u0627\u0644\u062d\u062c\u0632.\"],\n\"Add money\":[\"Ajouter de l'argent\",\"\u0625\u0636\u0627\u0641\u0629 \u0631\u0635\u064a\u062f\"],\n\"Full refund up to 2h before start, 50% until start, none after.\":[\"Remboursement int\u00e9gral jusqu'\u00e0 2 h avant le d\u00e9but, 50 % jusqu'au d\u00e9but, aucun ensuite.\",\"\u0627\u0633\u062a\u0631\u062f\u0627\u062f \u0643\u0627\u0645\u0644 \u062d\u062a\u0649 \u0633\u0627\u0639\u062a\u064a\u0646 \u0642\u0628\u0644 \u0627\u0644\u0628\u062f\u0621\u060c 50\u066a \u062d\u062a\u0649 \u0627\u0644\u0628\u062f\u0621\u060c \u0648\u0644\u0627 \u0634\u064a\u0621 \u0628\u0639\u062f\u0647.\"],\n\"Booking confirmed\":[\"R\u00e9servation confirm\u00e9e\",\"\u062a\u0645 \u062a\u0623\u0643\u064a\u062f \u0627\u0644\u062d\u062c\u0632\"],\n\"Access code\":[\"Code d'acc\u00e8s\",\"\u0631\u0645\u0632 \u0627\u0644\u062f\u062e\u0648\u0644\"],\n\"View my bookings\":[\"Voir mes r\u00e9servations\",\"\u0639\u0631\u0636 \u062d\u062c\u0648\u0632\u0627\u062a\u064a\"],\n\"Bookings\":[\"R\u00e9servations\",\"\u0627\u0644\u062d\u062c\u0648\u0632\u0627\u062a\"],\n\"Cancel booking\":[\"Annuler la r\u00e9servation\",\"\u0625\u0644\u063a\u0627\u0621 \u0627\u0644\u062d\u062c\u0632\"],\n\"Cancelled\":[\"Annul\u00e9e\",\"\u0645\u0644\u063a\u0649\"],\n\"Active\":[\"Active\",\"\u0646\u0634\u0637\"],\n\"No bookings yet.\":[\"Aucune r\u00e9servation pour l'instant.\",\"\u0644\u0627 \u062a\u0648\u062c\u062f \u062d\u062c\u0648\u0632\u0627\u062a \u0628\u0639\u062f.\"],\n\"Wallet\":[\"Portefeuille\",\"\u0627\u0644\u0645\u062d\u0641\u0638\u0629\"],\n\"Total deposited\":[\"Total d\u00e9pos\u00e9\",\"\u0625\u062c\u0645\u0627\u0644\u064a \u0627\u0644\u0625\u064a\u062f\u0627\u0639\u0627\u062a\"],\n\"Recent transactions\":[\"Transactions r\u00e9centes\",\"\u0622\u062e\u0631 \u0627\u0644\u0645\u0639\u0627\u0645\u0644\u0627\u062a\"],\n\"Top-up\":[\"Recharge\",\"\u0634\u062d\u0646\"],\n\"Parking charge\":[\"Frais de stationnement\",\"\u0631\u0633\u0648\u0645 \u0631\u0643\u0646\"],\n\"Refund\":[\"Remboursement\",\"\u0627\u0633\u062a\u0631\u062f\u0627\u062f\"],\n\"Refunded\":[\"Rembours\u00e9\",\"\u062a\u0645 \u0627\u0644\u0627\u0633\u062a\u0631\u062f\u0627\u062f\"],\n\"Succeeded\":[\"R\u00e9ussi\",\"\u0646\u0627\u062c\u062d\"],\n\"Demo top-up\":[\"Recharge de d\u00e9monstration\",\"\u0634\u062d\u0646 \u062a\u062c\u0631\u064a\u0628\u064a\"],\n\"Choose an amount\":[\"Choisissez un montant\",\"\u0627\u062e\u062a\u0631 \u0627\u0644\u0645\u0628\u0644\u063a\"],\n\"Confirm top-up\":[\"Confirmer la recharge\",\"\u062a\u0623\u0643\u064a\u062f \u0627\u0644\u0634\u062d\u0646\"],\n\"Top-up successful\":[\"Recharge r\u00e9ussie\",\"\u062a\u0645 \u0627\u0644\u0634\u062d\u0646 \u0628\u0646\u062c\u0627\u062d\"],\n\"Demo mode \u2014 this is not real money and no card is charged.\":[\"Mode d\u00e9mo \u2014 ce n'est pas de l'argent r\u00e9el et aucune carte n'est d\u00e9bit\u00e9e.\",\"\u0648\u0636\u0639 \u062a\u062c\u0631\u064a\u0628\u064a \u2014 \u0647\u0630\u0627 \u0644\u064a\u0633 \u0645\u0627\u0644\u0627\u064b \u062d\u0642\u064a\u0642\u064a\u0627\u064b \u0648\u0644\u0627 \u064a\u062a\u0645 \u062e\u0635\u0645 \u0623\u064a \u0628\u0637\u0627\u0642\u0629.\"],\n\"Home\":[\"Accueil\",\"\u0627\u0644\u0631\u0626\u064a\u0633\u064a\u0629\"],\n\"Map\":[\"Carte\",\"\u0627\u0644\u062e\u0631\u064a\u0637\u0629\"],\n\"Assistant\":[\"Assistant\",\"\u0627\u0644\u0645\u0633\u0627\u0639\u062f\"],\n\"Parking Near Me\":[\"Parkings pr\u00e8s de moi\",\"\u0645\u0648\u0627\u0642\u0641 \u0642\u0631\u0628\u064a\"],\n\"Near your location\":[\"Pr\u00e8s de votre position\",\"\u0642\u0631\u0628 \u0645\u0648\u0642\u0639\u0643\"],\n\"Clear\":[\"Effacer\",\"\u0645\u0633\u062d\"],\n\"Parking near you\":[\"Parkings pr\u00e8s de vous\",\"\u0645\u0648\u0627\u0642\u0641 \u0642\u0631\u064a\u0628\u0629 \u0645\u0646\u0643\"],\n\"Recording\u2026\":[\"Enregistrement\u2026\",\"\u062c\u0627\u0631\u064d \u0627\u0644\u062a\u0633\u062c\u064a\u0644\u2026\"],\n\"Transcribing\u2026\":[\"Transcription\u2026\",\"\u062c\u0627\u0631\u064d \u0627\u0644\u062a\u062d\u0648\u064a\u0644 \u0625\u0644\u0649 \u0646\u0635\u2026\"],\n\"No car parks match your search.\":[\"Aucun parking ne correspond \u00e0 votre recherche.\",\"\u0644\u0627 \u062a\u0648\u062c\u062f \u0645\u0648\u0627\u0642\u0641 \u0645\u0637\u0627\u0628\u0642\u0629 \u0644\u0628\u062d\u062b\u0643.\"],\n\"Hi! Ask me where to park, prices, or how the wallet works.\":[\"Bonjour ! Demandez-moi o\u00f9 vous garer, les prix ou le fonctionnement du portefeuille.\",\"\u0645\u0631\u062d\u0628\u0627\u064b! \u0627\u0633\u0623\u0644\u0646\u064a \u0623\u064a\u0646 \u062a\u0631\u0643\u0646\u060c \u0639\u0646 \u0627\u0644\u0623\u0633\u0639\u0627\u0631 \u0623\u0648 \u0639\u0646 \u0627\u0644\u0645\u062d\u0641\u0638\u0629.\"],\n\"Demo \u00b7 answers come from the sample inventory\":[\"D\u00e9mo \u00b7 les r\u00e9ponses viennent des donn\u00e9es fictives\",\"\u0639\u0631\u0636 \u062a\u062c\u0631\u064a\u0628\u064a \u00b7 \u0627\u0644\u0625\u062c\u0627\u0628\u0627\u062a \u0645\u0646 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u0646\u0645\u0648\u0630\u062c\u064a\u0629\"],\n\"Ask about parking, prices, or your bookings\u2026\":[\"Posez une question sur le stationnement, les prix ou vos r\u00e9servations\u2026\",\"\u0627\u0633\u0623\u0644 \u0639\u0646 \u0627\u0644\u0645\u0648\u0627\u0642\u0641 \u0623\u0648 \u0627\u0644\u0623\u0633\u0639\u0627\u0631 \u0623\u0648 \u062d\u062c\u0648\u0632\u0627\u062a\u0643\u2026\"],\n\"Cheapest parking in Casablanca?\":[\"Le parking le moins cher \u00e0 Casablanca ?\",\"\u0623\u0631\u062e\u0635 \u0645\u0648\u0642\u0641 \u0641\u064a \u0627\u0644\u062f\u0627\u0631 \u0627\u0644\u0628\u064a\u0636\u0627\u0621\u061f\"],\n\"Where can I charge my EV?\":[\"O\u00f9 puis-je recharger ma voiture \u00e9lectrique ?\",\"\u0623\u064a\u0646 \u064a\u0645\u0643\u0646\u0646\u064a \u0634\u062d\u0646 \u0633\u064a\u0627\u0631\u062a\u064a \u0627\u0644\u0643\u0647\u0631\u0628\u0627\u0626\u064a\u0629\u061f\"],\n\"Covered parking in Casablanca under 20 MAD for 3 hours\":[\"Parking couvert \u00e0 Casablanca \u00e0 moins de 20 MAD pour 3 heures\",\"\u0645\u0648\u0642\u0641 \u0645\u063a\u0637\u0649 \u0641\u064a \u0627\u0644\u062f\u0627\u0631 \u0627\u0644\u0628\u064a\u0636\u0627\u0621 \u0628\u0623\u0642\u0644 \u0645\u0646 20 \u062f\u0631\u0647\u0645 \u0644\u0645\u062f\u0629 3 \u0633\u0627\u0639\u0627\u062a\"],\n\"How do refunds work?\":[\"Comment fonctionnent les remboursements ?\",\"\u0643\u064a\u0641 \u064a\u0639\u0645\u0644 \u0627\u0644\u0627\u0633\u062a\u0631\u062f\u0627\u062f\u061f\"],\n\"Understanding your request\":[\"Analyse de votre demande\",\"\u0641\u0647\u0645 \u0637\u0644\u0628\u0643\"],\n\"Searching the inventory\":[\"Recherche dans l'inventaire\",\"\u0627\u0644\u0628\u062d\u062b \u0641\u064a \u0627\u0644\u0645\u062e\u0632\u0648\u0646\"],\n\"Checking live availability\":[\"V\u00e9rification de la disponibilit\u00e9 en direct\",\"\u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0627\u0644\u062a\u0648\u0641\u0631 \u0627\u0644\u0645\u0628\u0627\u0634\u0631\"],\n\"Calculating the price\":[\"Calcul du prix\",\"\u062d\u0633\u0627\u0628 \u0627\u0644\u0633\u0639\u0631\"],\n\"Reading the refund policy\":[\"Lecture de la politique de remboursement\",\"\u0642\u0631\u0627\u0621\u0629 \u0633\u064a\u0627\u0633\u0629 \u0627\u0644\u0627\u0633\u062a\u0631\u062f\u0627\u062f\"],\n\"Checking your wallet\":[\"Consultation de votre portefeuille\",\"\u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0645\u062d\u0641\u0638\u062a\u0643\"],\n\"Looking up your bookings\":[\"Recherche de vos r\u00e9servations\",\"\u0627\u0644\u0628\u062d\u062b \u0639\u0646 \u062d\u062c\u0648\u0632\u0627\u062a\u0643\"],\n\"Preparing your booking\":[\"Pr\u00e9paration de votre r\u00e9servation\",\"\u062a\u062c\u0647\u064a\u0632 \u062d\u062c\u0632\u0643\"],\n\"Live availability from the sample inventory\":[\"Disponibilit\u00e9 en direct, donn\u00e9es fictives\",\"\u062a\u0648\u0641\u0631 \u0645\u0628\u0627\u0634\u0631 \u0645\u0646 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u0646\u0645\u0648\u0630\u062c\u064a\u0629\"],\n\"Book\":[\"R\u00e9server\",\"\u0627\u062d\u062c\u0632\"],\n\"Show on map\":[\"Voir sur la carte\",\"\u0639\u0631\u0636 \u0639\u0644\u0649 \u0627\u0644\u062e\u0631\u064a\u0637\u0629\"],\n\"Open wallet\":[\"Ouvrir le portefeuille\",\"\u0627\u0641\u062a\u062d \u0627\u0644\u0645\u062d\u0641\u0638\u0629\"],\n\"Casa Marina Parking\":[\"Casa Marina Parking\",\"\u0645\u0648\u0642\u0641 \u0643\u0627\u0632\u0627 \u0645\u0627\u0631\u064a\u0646\u0627\"],\n\"Twin Center Garage\":[\"Twin Center Garage\",\"\u0645\u0631\u0622\u0628 \u062a\u0648\u064a\u0646 \u0633\u0646\u062a\u0631\"],\n\"Ma\u00e2rif Open Lot\":[\"Ma\u00e2rif Open Lot\",\"\u0645\u0648\u0642\u0641 \u0627\u0644\u0645\u0639\u0627\u0631\u064a\u0641\"],\n\"Agdal Smart Park\":[\"Agdal Smart Park\",\"\u0645\u0648\u0642\u0641 \u0623\u0643\u062f\u0627\u0644 \u0627\u0644\u0630\u0643\u064a\"],\n\"Gueliz Central\":[\"Gueliz Central\",\"\u0645\u0631\u0643\u0632 \u0643\u0644\u064a\u0632\"],\n\"Tanger City Center\":[\"Tanger City Center\",\"\u0637\u0646\u062c\u0629 \u0633\u064a\u062a\u064a \u0633\u0646\u062a\u0631\"]\n};\nif(I){Object.keys(T).forEach(function(k){I.D[k]=T[k];});}\nfunction ap(){if(I)I.apply();}\nfunction lg(){var l=root.getAttribute('lang');return l==='fr'?1:(l==='ar'?2:0);}\nvar IMG='https:\/\/blassti.ma\/wp-content\/uploads\/2026\/11\/blassti-demo-';\nvar F=[\n{id:0,n:'Casa Marina Parking',ar:'\u0645\u0648\u0642\u0641 \u0643\u0627\u0632\u0627 \u0645\u0627\u0631\u064a\u0646\u0627',c:'Casablanca',a:'Boulevard des Almohades',p:15,cap:320,av0:84,img:'garage',ft:['covered','ev','cctv'],r:4.8,x:68,y:26,d:3400,k:['marina']},\n{id:1,n:'Twin Center Garage',ar:'\u0645\u0631\u0622\u0628 \u062a\u0648\u064a\u0646 \u0633\u0646\u062a\u0631',c:'Casablanca',a:'Boulevard Zerktouni',p:20,cap:220,av0:31,img:'underground',ft:['covered','cctv','valet'],r:4.6,x:50,y:47,d:1200,k:['twin']},\n{id:2,n:'Ma\u00e2rif Open Lot',ar:'\u0645\u0648\u0642\u0641 \u0627\u0644\u0645\u0639\u0627\u0631\u064a\u0641',c:'Casablanca',a:'Rue Ibnou Mounir',p:8,cap:90,av0:22,img:'openlot',ft:['cctv'],r:4.3,x:22,y:40,d:450,k:['maarif','ma\u00e2rif open']},\n{id:3,n:'Agdal Smart Park',ar:'\u0645\u0648\u0642\u0641 \u0623\u0643\u062f\u0627\u0644 \u0627\u0644\u0630\u0643\u064a',c:'Rabat',a:'Avenue de France',p:12,cap:180,av0:57,img:'rooftop',ft:['ev','covered'],r:4.7,k:['agdal']},\n{id:4,n:'Gueliz Central',ar:'\u0645\u0631\u0643\u0632 \u0643\u0644\u064a\u0632',c:'Marrakech',a:'Avenue Mohammed V',p:10,cap:150,av0:40,img:'garage',ft:['cctv','covered'],r:4.5,k:['gueliz','gu\u00e9liz']},\n{id:5,n:'Tanger City Center',ar:'\u0637\u0646\u062c\u0629 \u0633\u064a\u062a\u064a \u0633\u0646\u062a\u0631',c:'Tangier',a:'Route de Rabat',p:13,cap:260,av0:0,img:'underground',ft:['covered','ev','cctv'],r:4.4,k:['tanger city']}];\nvar CITIES=['All','Casablanca','Rabat','Marrakech','Tangier'];\nvar FL={covered:'Covered',ev:'EV charging',cctv:'CCTV 24\/7',valet:'Valet'};\nvar FI={covered:'umb',ev:'zap',cctv:'shield',valet:'car'};\nvar IC={\nhome:'M3 10.5 12 3l9 7.5V20a1 1 0 0 1-1 1h-5v-6H9v6H4a1 1 0 0 1-1-1z',\nmap:'M9 4 3 6v14l6-2 6 2 6-2V4l-6 2-6-2zM9 4v14M15 6v14',\nspark:'M12 3l1.9 5.1L19 10l-5.1 1.9L12 17l-1.9-5.1L5 10l5.1-1.9zM19 15l.8 2.2L22 18l-2.2.8L19 21l-.8-2.2L16 18l2.2-.8z',\ncal:'M4 6h16v15H4zM8 3v5M16 3v5M4 11h16M9 16l2 2 4-4',\nwallet:'M3 7a2 2 0 0 1 2-2h13v4M3 7v11a2 2 0 0 0 2 2h15V9H5a2 2 0 0 1-2-2zM16.5 14.5h.01',\nsearch:'M11 4a7 7 0 1 0 0 14 7 7 0 0 0 0-14zM20 20l-4-4',\nmic:'M12 3a3 3 0 0 0-3 3v6a3 3 0 0 0 6 0V6a3 3 0 0 0-3-3zM5 11a7 7 0 0 0 14 0M12 18v3',\npin:'M12 21s7-6 7-11a7 7 0 1 0-14 0c0 5 7 11 7 11zM12 12.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5z',\nstar:'M12 3.5l2.6 5.4 5.9.8-4.3 4.1 1 5.8L12 16.9 6.8 19.6l1-5.8L3.5 9.7l5.9-.8z',\nclock:'M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18zM12 7v5l3 2',\nzap:'M13 2 4 14h7l-1 8 9-12h-7z',\nshield:'M12 3l8 3v6c0 4.5-3.2 8-8 9-4.8-1-8-4.5-8-9V6z',\numb:'M3 12a9 9 0 0 1 18 0zM12 12v7a2 2 0 0 0 4 0',\ncar:'M5 16v-4l2-5h10l2 5v4M3 16h18M7 16v2M17 16v2',\nsend:'M5 12h14M13 6l6 6-6 6',\nplus:'M12 5v14M5 12h14',\ncheck:'M5 12.5l4.5 4.5L19 7.5',\ndown:'M17 7 7 17M7 8v9h9',\nup:'M7 17 17 7M8 7h9v9',\nundo:'M4 9h10a5 5 0 0 1 0 10H8M4 9l4-4M4 9l4 4',\ninfo:'M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18zM12 11v6M12 7.5h.01',\nnav:'M4 11l16-7-7 16-2-7z',\nback:'M15 5l-7 7 7 7',\nx:'M6 6l12 12M18 6 6 18'};\nfunction ic(n,s,c,fill){return '<svg width=\"'+s+'\" height=\"'+s+'\" viewBox=\"0 0 24 24\" fill=\"'+(fill||'none')+'\" stroke=\"'+(c||'currentColor')+'\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"'+IC[n]+'\"><\/path><\/svg>';}\nvar STAR=ic('star',14,'#E0A93B','#E0A93B');\nvar LOGO='<svg width=\"28\" height=\"28\" viewBox=\"0 0 36 36\" aria-hidden=\"true\"><rect width=\"36\" height=\"36\" rx=\"9\" fill=\"#0E6B4E\"><\/rect><path d=\"M18 7.5c-4.7 0-8.5 3.6-8.5 8.2 0 5.6 6.300 10.600 8 12 .3.2.7.2 1 0 1.700-1.400 8-6.400 8-12 0-4.600-3.800-8.200-8.500-8.200z\" fill=\"#fff\"><\/path><path d=\"M15.600 20.600v-9h3.400a3 3 0 0 1 0 6h-3.400\" stroke=\"#0E6B4E\" stroke-width=\"2.200\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg>';\nvar DOTS='<span class=\"pd-dots\"><i><\/i><i><\/i><i><\/i><\/span>';\nvar S,TM=[],AT=[];\nfunction later(fn,ms){var id=setTimeout(fn,ms);TM.push(id);return id;}\nfunction alater(fn,ms){var id=setTimeout(fn,ms);AT.push(id);return id;}\nfunction reset(){TM.forEach(function(i){clearTimeout(i);clearInterval(i);});AT.forEach(function(i){clearTimeout(i);clearInterval(i);});TM=[];AT=[];F.forEach(function(f){f.av=f.av0;});\nS={v:'home',stack:[],dir:'tab',city:'All',q:'',f:0,h:2,bal:200,shown:200,dep:200,tx:[{t:'Top-up',a:200,d:'Demo top-up'}],bk:[],chat:[],pin:null,last:null,loading:true,near:false,locating:false,rec:0,paying:false,sheet:false,amt:100,toping:false,busy:false,pending:null,ctx:{city:null,feat:null,max:0,last:null},lastV:''};\nlater(function(){S.loading=false;if(S.v==='home'){fill();}},650);}\nfunction $(id){return document.getElementById(id);}\nfunction L(s){return '<span>'+s+'<\/span>';}\nfunction esc(s){var d=document.createElement('div');d.textContent=String(s);return d.innerHTML;}\nfunction m(n){return n.toFixed(2);}\nfunction mad(n){return '<b>'+m(n)+' '+L('MAD')+'<\/b>';}\nfunction km(d){return d>=1000?(d\/1000).toFixed(1)+' km':d+' m';}\nfunction startLabel(){var d=new Date(),h=d.getHours()+3;return L(h>23?'Tomorrow':'Today')+'<span>, '+('0'+(h%24)).slice(-2)+':00<\/span>';}\nfunction has(s,a){var r=false;a.forEach(function(w){if(s.indexOf(w)>=0)r=true;});return r;}\nfunction card(f,sm,i){return '<button type=\"button\" class=\"pd-card'+(sm?' sm':'')+'\" data-act=\"open\" data-id=\"'+f.id+'\" style=\"animation-delay:'+((i||0)*70)+'ms\"><span class=\"pd-img\" style=\"background-image:url('+IMG+f.img+'-768x576.jpg)\"><span class=\"pd-badge'+(f.av>0?'':' full')+'\">'+(f.av>0?'<b>'+f.av+'<\/b> '+L('spots left'):L('Full'))+'<\/span><\/span><span class=\"pd-ci\"><span class=\"pd-sb\"><b>'+L(f.n)+'<\/b><span class=\"pd-rate\">'+STAR+f.r+'<\/span><\/span><span class=\"pd-mut pd-ic\">'+ic('pin',13)+'<span>'+f.a+', '+L(f.c)+'<\/span><\/span>'+((S.near?f.d:0)?'<span class=\"pd-dist pd-ic\">'+ic('nav',12)+km(f.d)+'<\/span>':'')+'<span class=\"pd-price\">'+mad(f.p)+' '+L('\/ hr')+'<\/span><\/span><\/button>';}\nfunction rows(){var q=S.q.toLowerCase();\nif(S.near){return F.filter(function(f){return !!f.d;}).sort(function(a,b){return a.d-b.d;});}\nreturn F.filter(function(f){if(S.city!=='All'){if(f.c!==S.city)return false;}if(q){if((f.n+' '+f.c+' '+f.a+' '+f.ar).toLowerCase().indexOf(q)===-1)return false;}return true;});}\nfunction listHtml(){if(S.loading)return '<div class=\"pd-skel\"><\/div><div class=\"pd-skel\"><\/div>';var r=rows();return r.length?r.map(function(f,i){return card(f,false,i);}).join(''):'<p class=\"pd-note\" style=\"padding:20px 0\">'+L('No car parks match your search.')+'<\/p>';}\nfunction fill(){var l=$('pd-list');if(l){l.innerHTML=listHtml();ap();}}\nfunction hdr(title,back){return '<div class=\"pd-hd\">'+(back?'<button type=\"button\" class=\"pd-back\" data-act=\"back\" aria-label=\"Back\">'+ic('back',16)+'<\/button>':LOGO)+'<div class=\"pd-disp pd-ttl\">'+L(title)+'<\/div><\/div>';}\nvar TABS=[['home','Home','home'],['map','Map','map'],['assistant','Assistant','spark'],['bookings','Bookings','cal'],['wallet','Wallet','wallet']];\nfunction nav(){var cur=S.stack.length?S.stack[0]:S.v;return '<div class=\"pd-nav\">'+TABS.map(function(t){return '<button type=\"button\" data-act=\"tab\" data-id=\"'+t[0]+'\" class=\"'+(cur===t[0]?'on':'')+'\"><i>'+ic(t[2],19)+'<\/i>'+L(t[1])+'<\/button>';}).join('')+'<\/div>';}\nvar V={};\nV.home=function(){var rec='';\nif(S.rec===1){rec='<div class=\"pd-rec\"><i><\/i>'+L('Recording\u2026')+' <span id=\"pd-recn\">0<\/span>s \/ 30s<span class=\"pd-wave\"><u><\/u><u><\/u><u><\/u><u><\/u><u><\/u><\/span><\/div>';}\nif(S.rec===2){rec='<div class=\"pd-rec\"><span class=\"pd-spin g\"><\/span>'+L('Transcribing\u2026')+'<\/div>';}\nreturn {t:'blassti',h:'<div class=\"pd-hero\"><p class=\"pd-tag\">'+L('Smarter parking. Easier journeys.')+'<\/p><div class=\"pd-disp pd-h1\">'+L('Find your spot')+'<\/div><div class=\"pd-srow\"><label class=\"pd-search\">'+ic('search',16,'#6B756F')+'<input id=\"pd-q\" type=\"text\" aria-label=\"Search\" placeholder=\"Search city or facility\"><\/label><button type=\"button\" class=\"pd-mic\" data-act=\"mic\" aria-label=\"Voice search\">'+ic('mic',18,'#fff')+'<\/button><\/div>'+rec+'<button type=\"button\" class=\"pd-near\" data-act=\"near\">'+(S.locating?'<span class=\"pd-spin\"><\/span>':ic('pin',16,'#fff'))+L('Parking Near Me')+'<\/button>'+(S.near?'<p class=\"pd-nearnote\">\u25cf '+L('Near your location')+' \u00b7 5 km<button type=\"button\" data-act=\"clearnear\">'+L('Clear')+'<\/button><\/p>':'')+'<\/div><div class=\"pd-quick\"><button type=\"button\" data-act=\"tab\" data-id=\"wallet\">'+ic('wallet',18,'#0E6B4E')+'<span class=\"pd-mut\">'+L('Wallet')+'<\/span><b>'+m(S.bal)+' '+L('MAD')+'<\/b><\/button><button type=\"button\" data-act=\"tab\" data-id=\"assistant\">'+ic('spark',18,'#2F9E57')+'<span class=\"pd-mut\">blassti AI<\/span><b>'+L('Assistant')+'<\/b><\/button><\/div>'+(S.near?'':'<div class=\"pd-chips\">'+CITIES.map(function(c){return '<button type=\"button\" data-act=\"city\" data-id=\"'+c+'\" class=\"'+(S.city===c?'on':'')+'\">'+L(c)+'<\/button>';}).join('')+'<\/div>')+'<div class=\"pd-disp pd-sec\">'+L(S.near?'Near your location':'Parking near you')+'<\/div><div class=\"pd-list\" id=\"pd-list\">'+listHtml()+'<\/div>'};};\nV.map=function(){var pins=F.filter(function(f){return !!f.x;});var rail=pins.slice().sort(function(a,b){return (b.id===S.pin?1:0)-(a.id===S.pin?1:0);});\nreturn {t:'Map',h:'<div class=\"pd-mapv\"><i class=\"sea\"><\/i><i class=\"rd r1\"><\/i><i class=\"rd r2\"><\/i><i class=\"rd r3\"><\/i><i class=\"me\"><\/i>'+pins.map(function(f,i){return '<button type=\"button\" class=\"pd-pin'+(S.pin===f.id?' on':'')+'\" data-act=\"pin\" data-id=\"'+f.id+'\" style=\"left:'+f.x+'%;top:'+f.y+'%;animation-delay:'+(i*120)+'ms\">'+f.p+' '+L('MAD')+'<\/button>';}).join('')+'<\/div><div class=\"pd-rail\">'+rail.map(function(f,i){return card(f,true,i);}).join('')+'<\/div>'};};\nV.fac=function(){var f=F[S.f],pct=Math.round(f.av\/f.cap*100);\nreturn {t:f.n,b:true,h:'<div class=\"pd-photo\" style=\"background-image:url('+IMG+f.img+'-768x576.jpg)\"><\/div><div class=\"pd-sheet\"><div class=\"pd-sb\"><div><div class=\"pd-disp pd-h2\">'+L(f.n)+'<\/div><p class=\"pd-mut pd-ic\" style=\"margin-top:4px\">'+ic('pin',14)+'<span>'+f.a+', '+L(f.c)+'<\/span><\/p><\/div><span class=\"pd-pill\">'+STAR+f.r+'<\/span><\/div><div class=\"pd-stats\"><div><span class=\"pd-mut\">'+L('\/ hr')+'<\/span><b class=\"pd-g\">'+m(f.p)+' '+L('MAD')+'<\/b><\/div><div><span class=\"pd-mut\">'+L('Availability')+'<\/span><b>'+f.av+'\/'+f.cap+'<\/b><\/div><div>'+ic('clock',16,'#0E6B4E')+'<b style=\"font-size:12px\">'+L('Open 24\/7')+'<\/b><\/div><\/div><div class=\"pd-bar\"><i style=\"width:'+pct+'%\"><\/i><\/div><b>'+L('Features')+'<\/b><div class=\"pd-feats\">'+f.ft.map(function(k,i){return '<span class=\"pd-feat\" style=\"animation-delay:'+(i*80)+'ms\">'+ic(FI[k],14,'#0E6B4E')+L(FL[k])+'<\/span>';}).join('')+'<\/div><p class=\"pd-note\">'+L('Full refund up to 2h before start, 50% until start, none after.')+'<\/p>'+(f.av>0?'<button type=\"button\" class=\"pd-cta\" data-act=\"book\">'+L('Book now')+'<\/button>':'<button type=\"button\" class=\"pd-cta\" disabled>'+L('Full')+'<\/button>')+'<\/div>'};};\nV.book=function(){var f=F[S.f],cost=f.p*S.h,short=cost-S.bal,hs=[1,2,3,4,8];if(hs.indexOf(S.h)===-1){hs=[1,2,3,4,S.h].sort(function(a,b){return a-b;});}\nreturn {t:'Review and pay',b:true,h:'<div class=\"pd-pad\"><div class=\"pd-box\" style=\"flex-direction:row;align-items:center\"><span class=\"pd-thumb\" style=\"background-image:url('+IMG+f.img+'-768x576.jpg)\"><\/span><div><b>'+L(f.n)+'<\/b><p class=\"pd-mut\">'+f.a+', '+L(f.c)+'<\/p><p class=\"pd-g\" style=\"font-weight:700;margin-top:2px\">'+m(f.p)+' '+L('MAD')+' '+L('\/ hr')+'<\/p><\/div><\/div><div class=\"pd-box\"><div class=\"pd-row\"><span>'+L('Start time')+'<\/span><b>'+startLabel()+'<\/b><\/div><div>'+L('Duration')+' \u00b7 <b>'+S.h+'<\/b> '+L('hours')+'<\/div><div class=\"pd-durs\">'+hs.map(function(h){return '<button type=\"button\" data-act=\"dur\" data-id=\"'+h+'\" class=\"'+(S.h===h?'on':'')+'\">'+h+'h<\/button>';}).join('')+'<\/div><\/div><div class=\"pd-box\"><div class=\"pd-row\"><span class=\"pd-mut\">'+m(f.p)+' '+L('MAD')+' \u00d7 '+S.h+' '+L('hours')+'<\/span><span>'+m(cost)+' '+L('MAD')+'<\/span><\/div><div class=\"pd-row\" style=\"font-size:16px\"><b>'+L('Total due')+'<\/b>'+mad(cost)+'<\/div><div class=\"pd-hr\"><\/div><div class=\"pd-row\"><span class=\"pd-mut\">'+L('Available balance')+'<\/span><span>'+m(S.bal)+' '+L('MAD')+'<\/span><\/div>'+(short>0?'':'<div class=\"pd-row\"><span class=\"pd-mut\">'+L('Balance after payment')+'<\/span><span>'+m(S.bal-cost)+' '+L('MAD')+'<\/span><\/div>')+'<\/div>'+(short>0?'<div class=\"pd-warn\"><b style=\"color:#D4483B\">'+L('Insufficient balance')+'<\/b><p>'+L('You need')+' <b>'+m(short)+' '+L('MAD')+'<\/b> '+L('more to complete this booking.')+'<\/p><button type=\"button\" class=\"pd-cta\" data-act=\"topup\" data-id=\"'+(Math.ceil(short\/50)*50)+'\">'+L('Add money')+'<\/button><\/div>':(S.paying?'<button type=\"button\" class=\"pd-cta busy\" disabled style=\"background:#0E6B4E;color:#fff\"><span class=\"pd-spin\"><\/span>'+L('Processing\u2026')+'<\/button>':'<button type=\"button\" class=\"pd-cta\" data-act=\"pay\">'+L('Pay with wallet')+' \u00b7 '+m(cost)+' '+L('MAD')+'<\/button>'))+'<p class=\"pd-note\">'+L('Full refund up to 2h before start, 50% until start, none after.')+'<\/p><\/div>'};};\nV.done=function(){var b=S.last,f=F[b.f];\nreturn {t:'Booking confirmed',h:'<div class=\"pd-pad\"><div class=\"pd-okw\"><i>'+ic('check',34,'#fff')+'<\/i><\/div><div class=\"pd-disp pd-h2\" style=\"text-align:center\">'+L('Booking confirmed')+'<\/div><div class=\"pd-box\"><b>'+L(f.n)+'<\/b><p class=\"pd-mut\">'+f.a+', '+L(f.c)+'<\/p><p>'+b.when+' \u00b7 '+b.h+'h<\/p><b class=\"pd-g\">'+m(b.cost)+' '+L('MAD')+'<\/b><div class=\"pd-codebox\"><span class=\"pd-mut\">'+L('Access code')+'<\/span><div class=\"pd-code\">'+b.code.split('').map(function(ch,i){return '<span style=\"animation-delay:'+(400+i*90)+'ms\">'+ch+'<\/span>';}).join('')+'<\/div><\/div><\/div><button type=\"button\" class=\"pd-cta\" data-act=\"tab\" data-id=\"bookings\">'+L('View my bookings')+'<\/button><\/div>'};};\nV.bookings=function(){return {t:'Bookings',h:'<div class=\"pd-pad\">'+(S.bk.length?S.bk.map(function(b,i){var on=b.st==='Active',f=F[b.f];return '<div class=\"pd-box\" style=\"animation-delay:'+(i*70)+'ms\"><div class=\"pd-sb\"><div><b>'+L(f.n)+'<\/b><p class=\"pd-mut\">'+b.when+' \u00b7 '+b.h+'h<\/p><\/div><span class=\"pd-pill'+(on?'':' off')+'\" style=\"font-size:12px\">'+L(b.st)+'<\/span><\/div><div class=\"pd-row\"><div><b class=\"pd-g\">'+m(b.cost)+' '+L('MAD')+'<\/b>'+(b.ref?'<p class=\"pd-mut\">'+L('Refund')+': '+m(b.ref)+' '+L('MAD')+'<\/p>':'')+'<\/div>'+(on?'<b style=\"font-family:ui-monospace,Menlo,monospace;letter-spacing:.14em;direction:ltr\">'+b.code+'<\/b>':'')+'<\/div>'+(on?'<button type=\"button\" class=\"pd-cta line\" data-act=\"cancel\" data-id=\"'+i+'\">'+L('Cancel booking')+'<\/button>':'')+'<\/div>';}).join(''):'<p class=\"pd-note\" style=\"padding:48px 0;font-size:14px\">'+L('No bookings yet.')+'<\/p>')+'<\/div>'};};\nV.wallet=function(){var res=0;S.bk.forEach(function(b){if(b.st==='Active')res+=b.cost;});\nreturn {t:'Wallet',h:'<div class=\"pd-pad\"><div class=\"pd-wal\"><div class=\"pd-row\"><span style=\"font-size:13px;opacity:.85\">'+L('Available balance')+'<\/span><span class=\"pd-demo\">DEMO<\/span><\/div><div class=\"pd-disp pd-big\"><span id=\"pd-balv\">'+m(S.shown)+'<\/span> MAD<\/div><div style=\"display:flex;gap:22px;margin-top:14px;font-size:13px\"><div><p style=\"opacity:.75\">'+L('Reserved')+'<\/p><b>'+m(res)+' MAD<\/b><\/div><div><p style=\"opacity:.75\">'+L('Total deposited')+'<\/p><b>'+m(S.dep)+' MAD<\/b><\/div><\/div><\/div><button type=\"button\" class=\"pd-cta\" data-act=\"topup\" data-id=\"100\">'+ic('plus',18,'#fff')+L('Add money')+'<\/button><p class=\"pd-info\">'+ic('info',15)+L('Demo mode \u2014 this is not real money and no card is charged.')+'<\/p><div class=\"pd-box\" style=\"gap:0\"><b style=\"padding-bottom:6px\">'+L('Recent transactions')+'<\/b>'+S.tx.slice(0,7).map(function(t){var icn=t.t==='Top-up'?'down':(t.t==='Refund'?'undo':'up');return '<div class=\"pd-tx\"><span class=\"pd-txi\">'+ic(icn,18)+'<\/span><div style=\"flex:1;min-width:0\"><b style=\"font-size:13px\">'+L(t.t)+' \u00b7 DEMO<\/b><p class=\"pd-mut\">'+L(t.d)+'<\/p><\/div><div style=\"text-align:end\"><b style=\"font-size:13px;direction:ltr;display:block;color:'+(t.a>0?'#0E6B4E':'#1F2A24')+'\">'+(t.a>0?'+':'\u2212')+m(Math.abs(t.a))+'<\/b><span class=\"pd-mut pd-g\" style=\"font-weight:600\">'+L('Succeeded')+'<\/span><\/div><\/div>';}).join('')+'<\/div><\/div>'};};\nfunction aiRow(inner){return '<div class=\"pd-ai\"><span class=\"pd-av\">'+ic('spark',14,'#fff')+'<\/span><div class=\"pd-bub\">'+inner+'<\/div><\/div>';}\nfunction stepHtml(s,ok){return '<div class=\"pd-step'+(ok?' ok':'')+'\"><span class=\"pd-spin g\"><\/span><span class=\"ck\">'+ic('check',12,'#0E6B4E')+'<\/span>'+L(s.l)+(s.m?'<code>'+esc(s.m)+'<\/code>':'')+'<\/div>';}\nfunction actsHtml(a){return a.length?'<div class=\"pd-sug\">'+a.map(function(x,i){return '<button type=\"button\" data-act=\"aiact\" data-id=\"'+i+'\" data-k=\"'+x.act+'\" data-v=\"'+(x.id===undefined?'':x.id)+'\" data-h=\"'+(x.h||2)+'\">'+L(x.l)+(x.n===undefined?'':' \u00b7 '+L(F[x.n].n))+'<\/button>';}).join('')+'<\/div>':'';}\nfunction cardsHtml(c){return c.length?'<p class=\"pd-cap\">'+L('Live availability from the sample inventory')+'<\/p><div class=\"pd-cards\">'+c.map(function(id,i){return card(F[id],true,i);}).join('')+'<\/div>':'';}\nfunction msgHtml(c){if(c.me)return '<div class=\"pd-me\">'+(c.k?L(c.t):esc(c.t))+'<\/div>';return '<div class=\"pd-trace\">'+c.steps.map(function(s){return stepHtml(s,true);}).join('')+'<\/div>'+aiRow(esc(c.t))+cardsHtml(c.cards)+actsHtml(c.acts);}\nvar SUGS=['Cheapest parking in Casablanca?','Where can I charge my EV?','Covered parking in Casablanca under 20 MAD for 3 hours','How do refunds work?'];\nV.assistant=function(){return {t:'Assistant',ask:true,h:'<div class=\"pd-chat\" id=\"pd-chat\">'+aiRow(L('Hi! Ask me where to park, prices, or how the wallet works.'))+'<p class=\"pd-cap\">'+L('Demo \u00b7 answers come from the sample inventory')+'<\/p>'+(S.chat.length?'':'<div class=\"pd-sug\" id=\"pd-sug\">'+SUGS.map(function(q,i){return '<button type=\"button\" data-act=\"sug\" style=\"animation-delay:'+(i*80)+'ms\">'+L(q)+'<\/button>';}).join('')+'<\/div>')+S.chat.map(msgHtml).join('')+'<\/div>'};};\nfunction sheet(){if(!S.sheet)return '';return '<div class=\"pd-ov\"><div class=\"pd-sh\"><div class=\"pd-row\"><div class=\"pd-disp\" style=\"font-size:19px\">'+L('Choose an amount')+'<\/div><button type=\"button\" class=\"pd-back\" data-act=\"closesheet\" aria-label=\"Close\">'+ic('x',14)+'<\/button><\/div><div class=\"pd-durs four\">'+[50,100,200,500].map(function(a){return '<button type=\"button\" data-act=\"amt\" data-id=\"'+a+'\" class=\"'+(S.amt===a?'on':'')+'\">'+a+'<\/button>';}).join('')+'<\/div>'+(S.toping?'<button type=\"button\" class=\"pd-cta busy\" disabled style=\"background:#0E6B4E;color:#fff\"><span class=\"pd-spin\"><\/span>'+L('Processing\u2026')+'<\/button>':'<button type=\"button\" class=\"pd-cta\" data-act=\"confirmtop\">'+L('Confirm top-up')+' \u00b7 '+m(S.amt)+' '+L('MAD')+'<\/button>')+'<p class=\"pd-note\">'+L('Demo mode \u2014 this is not real money and no card is charged.')+'<\/p><\/div><\/div>';}\nfunction flush(){if(S.pending){AT.forEach(function(i){clearTimeout(i);clearInterval(i);});AT=[];var p=S.pending;S.chat.push({t:p.text,steps:p.steps,cards:p.cards,acts:p.acts});S.pending=null;S.busy=false;}}\nfunction render(){flush();var old=$('pd-main'),keep=0;if(old){if(S.lastV===S.v){if(!S.dir)keep=old.scrollTop;}}\nvar v=V[S.v](),cls=S.dir==='push'?' pd-in-r':(S.dir==='pop'?' pd-in-l':(S.dir==='tab'?' pd-in-f':''));\nel.innerHTML=hdr(v.t,v.b)+'<div class=\"pd-main'+cls+'\" id=\"pd-main\">'+v.h+'<\/div>'+(v.ask?'<form class=\"pd-ask\" id=\"pd-ask\"><input id=\"pd-ai\" type=\"text\" autocomplete=\"off\" aria-label=\"Message\" placeholder=\"Ask about parking, prices, or your bookings\u2026\"><button type=\"submit\" id=\"pd-send\" aria-label=\"Send\">'+ic('send',17,'#fff')+'<\/button><\/form>':'')+nav()+sheet()+'<div class=\"pd-toasts\" id=\"pd-toasts\"><\/div>';\nap();S.dir='';S.lastV=S.v;var mn=$('pd-main');\nif(keep)mn.scrollTop=keep;\nvar q=$('pd-q');if(q)q.value=S.q;\nif(S.v==='assistant')mn.scrollTop=mn.scrollHeight;\nif(S.v==='wallet')countUp();}\nfunction countUp(){var n=$('pd-balv');if(!n)return;var a=S.shown,b=S.bal,i=0;if(a===b)return;var iv=setInterval(function(){i+=1;n.textContent=m(a+(b-a)*(i\/18));if(i>=18){clearInterval(iv);n.textContent=m(b);S.shown=b;}},30);TM.push(iv);}\nfunction toast(key,extra){var t=$('pd-toasts');if(!t)return;var d=document.createElement('div');d.className='pd-toast';d.innerHTML=ic('check',14,'#fff')+L(key)+(extra?' <b style=\"direction:ltr\">'+extra+'<\/b>':'');t.appendChild(d);ap();setTimeout(function(){if(d.parentNode)d.parentNode.removeChild(d);},2400);}\nfunction go(v,dir){if(dir==='push')S.stack.push(S.v);S.v=v;S.dir=dir;render();}\nfunction tab(v){S.stack=[];S.sheet=false;S.v=v;S.dir='tab';render();}\nvar P={\ngreet:[\"Hi! Tell me where you're going and I'll find you a space. For example: covered parking in Casablanca under 20 MAD.\",\"Bonjour ! Dites-moi o\u00f9 vous allez et je vous trouve une place. Par exemple : parking couvert \u00e0 Casablanca \u00e0 moins de 20 MAD.\",\"\u0645\u0631\u062d\u0628\u0627\u064b! \u0623\u062e\u0628\u0631\u0646\u064a \u0625\u0644\u0649 \u0623\u064a\u0646 \u0623\u0646\u062a \u0630\u0627\u0647\u0628 \u0648\u0633\u0623\u062c\u062f \u0644\u0643 \u0645\u0643\u0627\u0646\u0627\u064b. \u0645\u062b\u0644\u0627\u064b: \u0645\u0648\u0642\u0641 \u0645\u063a\u0637\u0649 \u0641\u064a \u0627\u0644\u062f\u0627\u0631 \u0627\u0644\u0628\u064a\u0636\u0627\u0621 \u0628\u0623\u0642\u0644 \u0645\u0646 20 \u062f\u0631\u0647\u0645.\"],\nfound:[\"I found {k} car parks{w} with space right now. The best rated is {n} ({r}\u2605) at {p} MAD\/h, with {a} of {c} spaces free.\",\"J'ai trouv\u00e9 {k} parkings{w} avec de la place en ce moment. Le mieux not\u00e9 est {n} ({r}\u2605) \u00e0 {p} MAD\/h, avec {a} places libres sur {c}.\",\"\u0648\u062c\u062f\u062a {k} \u0645\u0648\u0627\u0642\u0641{w} \u0641\u064a\u0647\u0627 \u0623\u0645\u0627\u0643\u0646 \u0634\u0627\u063a\u0631\u0629 \u0627\u0644\u0622\u0646. \u0627\u0644\u0623\u0639\u0644\u0649 \u062a\u0642\u064a\u064a\u0645\u0627\u064b \u0647\u0648 {n} ({r}\u2605) \u0628\u0633\u0639\u0631 {p} \u062f\u0631\u0647\u0645\/\u0633\u0627\u0639\u0629\u060c \u0645\u0639 {a} \u0645\u0643\u0627\u0646\u0627\u064b \u0634\u0627\u063a\u0631\u0627\u064b \u0645\u0646 \u0623\u0635\u0644 {c}.\"],\nfound1:[\"I found one car park{w} with space right now: {n} ({r}\u2605) at {p} MAD\/h, with {a} of {c} spaces free.\",\"J'ai trouv\u00e9 un parking{w} avec de la place en ce moment : {n} ({r}\u2605) \u00e0 {p} MAD\/h, avec {a} places libres sur {c}.\",\"\u0648\u062c\u062f\u062a \u0645\u0648\u0642\u0641\u0627\u064b \u0648\u0627\u062d\u062f\u0627\u064b{w} \u0641\u064a\u0647 \u0623\u0645\u0627\u0643\u0646 \u0634\u0627\u063a\u0631\u0629 \u0627\u0644\u0622\u0646: {n} ({r}\u2605) \u0628\u0633\u0639\u0631 {p} \u062f\u0631\u0647\u0645\/\u0633\u0627\u0639\u0629\u060c \u0645\u0639 {a} \u0645\u0643\u0627\u0646\u0627\u064b \u0634\u0627\u063a\u0631\u0627\u064b \u0645\u0646 \u0623\u0635\u0644 {c}.\"],\ncheap:[\"The cheapest option{w} right now is {n} at {p} MAD\/h, with {a} of {c} spaces free.\",\"L'option la moins ch\u00e8re{w} en ce moment est {n} \u00e0 {p} MAD\/h, avec {a} places libres sur {c}.\",\"\u0623\u0631\u062e\u0635 \u062e\u064a\u0627\u0631{w} \u0627\u0644\u0622\u0646 \u0647\u0648 {n} \u0628\u0633\u0639\u0631 {p} \u062f\u0631\u0647\u0645\/\u0633\u0627\u0639\u0629\u060c \u0645\u0639 {a} \u0645\u0643\u0627\u0646\u0627\u064b \u0634\u0627\u063a\u0631\u0627\u064b \u0645\u0646 \u0623\u0635\u0644 {c}.\"],\nnext:[\" Next is {n} at {p} MAD\/h.\",\" Vient ensuite {n} \u00e0 {p} MAD\/h.\",\" \u064a\u0644\u064a\u0647 {n} \u0628\u0633\u0639\u0631 {p} \u062f\u0631\u0647\u0645\/\u0633\u0627\u0639\u0629.\"],\nhours:[\" For {h} h at {n} you would pay {t} MAD.\",\" Pour {h} h \u00e0 {n}, vous paieriez {t} MAD.\",\" \u0644\u0645\u062f\u0629 {h} \u0633\u0627\u0639\u0627\u062a \u0641\u064a {n} \u0633\u062a\u062f\u0641\u0639 {t} \u062f\u0631\u0647\u0645.\"],\nnone:[\"Nothing in the inventory matches{w} right now. Try another city or drop a filter.\",\"Rien dans l'inventaire ne correspond{w} pour l'instant. Essayez une autre ville ou retirez un filtre.\",\"\u0644\u0627 \u064a\u0648\u062c\u062f \u0641\u064a \u0627\u0644\u0645\u062e\u0632\u0648\u0646 \u0645\u0627 \u064a\u0637\u0627\u0628\u0642{w} \u062d\u0627\u0644\u064a\u0627\u064b. \u062c\u0631\u0651\u0628 \u0645\u062f\u064a\u0646\u0629 \u0623\u062e\u0631\u0649 \u0623\u0648 \u0623\u0632\u0644 \u0623\u062d\u062f \u0627\u0644\u0634\u0631\u0648\u0637.\"],\nfullonly:[\"{n} is the only match{w} and it is full right now. Want me to look in another city?\",\"{n} est le seul r\u00e9sultat{w} et il est complet en ce moment. Voulez-vous que je cherche dans une autre ville ?\",\"{n} \u0647\u0648 \u0627\u0644\u0646\u062a\u064a\u062c\u0629 \u0627\u0644\u0648\u062d\u064a\u062f\u0629{w} \u0648\u0647\u0648 \u0645\u0645\u062a\u0644\u0626 \u062d\u0627\u0644\u064a\u0627\u064b. \u0647\u0644 \u0623\u0628\u062d\u062b \u0641\u064a \u0645\u062f\u064a\u0646\u0629 \u0623\u062e\u0631\u0649\u061f\"],\nrefund:[\"Refund policy: full refund 2 h or more before your booking starts, 50% until it starts, none after. You cancel from Bookings.\",\"Politique de remboursement : remboursement int\u00e9gral 2 h ou plus avant le d\u00e9but, 50 % jusqu'au d\u00e9but, aucun ensuite. Vous annulez depuis R\u00e9servations.\",\"\u0633\u064a\u0627\u0633\u0629 \u0627\u0644\u0627\u0633\u062a\u0631\u062f\u0627\u062f: \u0627\u0633\u062a\u0631\u062f\u0627\u062f \u0643\u0627\u0645\u0644 \u0642\u0628\u0644 \u0633\u0627\u0639\u062a\u064a\u0646 \u0623\u0648 \u0623\u0643\u062b\u0631 \u0645\u0646 \u0628\u062f\u0621 \u0627\u0644\u062d\u062c\u0632\u060c 50\u066a \u062d\u062a\u0649 \u0627\u0644\u0628\u062f\u0621\u060c \u0648\u0644\u0627 \u0627\u0633\u062a\u0631\u062f\u0627\u062f \u0628\u0639\u062f\u0647. \u064a\u0645\u0643\u0646\u0643 \u0627\u0644\u0625\u0644\u063a\u0627\u0621 \u0645\u0646 \u0635\u0641\u062d\u0629 \u0627\u0644\u062d\u062c\u0648\u0632\u0627\u062a.\"],\nnear:[\"I can't read your location from the chat. Tap Parking Near Me on the home screen, or tell me a city: Casablanca, Rabat, Marrakech or Tangier.\",\"Je ne peux pas lire votre position depuis la discussion. Touchez Parkings pr\u00e8s de moi sur l'accueil, ou donnez-moi une ville : Casablanca, Rabat, Marrakech ou Tanger.\",\"\u0644\u0627 \u0623\u0633\u062a\u0637\u064a\u0639 \u0645\u0639\u0631\u0641\u0629 \u0645\u0648\u0642\u0639\u0643 \u0645\u0646 \u0627\u0644\u0645\u062d\u0627\u062f\u062b\u0629. \u0627\u0636\u063a\u0637 \u00ab\u0645\u0648\u0627\u0642\u0641 \u0642\u0631\u0628\u064a\u00bb \u0641\u064a \u0627\u0644\u0631\u0626\u064a\u0633\u064a\u0629\u060c \u0623\u0648 \u0623\u062e\u0628\u0631\u0646\u064a \u0628\u0627\u0644\u0645\u062f\u064a\u0646\u0629: \u0627\u0644\u062f\u0627\u0631 \u0627\u0644\u0628\u064a\u0636\u0627\u0621\u060c \u0627\u0644\u0631\u0628\u0627\u0637\u060c \u0645\u0631\u0627\u0643\u0634 \u0623\u0648 \u0637\u0646\u062c\u0629.\"],\nwallet:[\"Your demo wallet has {b} MAD available.\",\"Votre portefeuille de d\u00e9monstration dispose de {b} MAD.\",\"\u0641\u064a \u0645\u062d\u0641\u0638\u062a\u0643 \u0627\u0644\u062a\u062c\u0631\u064a\u0628\u064a\u0629 {b} \u062f\u0631\u0647\u0645 \u0645\u062a\u0627\u062d\u0629.\"],\nnobk:[\"You have no active bookings yet. Tell me a city and I'll find you a space.\",\"Vous n'avez aucune r\u00e9servation active. Donnez-moi une ville et je vous trouve une place.\",\"\u0644\u064a\u0633 \u0644\u062f\u064a\u0643 \u062d\u062c\u0648\u0632\u0627\u062a \u0646\u0634\u0637\u0629 \u0628\u0639\u062f. \u0623\u062e\u0628\u0631\u0646\u064a \u0628\u0627\u0644\u0645\u062f\u064a\u0646\u0629 \u0648\u0633\u0623\u062c\u062f \u0644\u0643 \u0645\u0643\u0627\u0646\u0627\u064b.\"],\nbk:[\"You have {k} active booking(s). The latest is {n} for {h} h, access code {c}.\",\"Vous avez {k} r\u00e9servation(s) active(s). La derni\u00e8re : {n} pour {h} h, code d'acc\u00e8s {c}.\",\"\u0644\u062f\u064a\u0643 {k} \u062d\u062c\u0632 \u0646\u0634\u0637. \u0622\u062e\u0631\u0647\u0627 {n} \u0644\u0645\u062f\u0629 {h} \u0633\u0627\u0639\u0627\u062a\u060c \u0631\u0645\u0632 \u0627\u0644\u062f\u062e\u0648\u0644 {c}.\"],\nbook:[\"I've prepared {h} h at {n}: {t} MAD from your wallet. Open the review screen to confirm. I never pay without you.\",\"J'ai pr\u00e9par\u00e9 {h} h \u00e0 {n} : {t} MAD depuis votre portefeuille. Ouvrez l'\u00e9cran de v\u00e9rification pour confirmer. Je ne paie jamais sans vous.\",\"\u062c\u0647\u0651\u0632\u062a {h} \u0633\u0627\u0639\u0627\u062a \u0641\u064a {n}: {t} \u062f\u0631\u0647\u0645 \u0645\u0646 \u0645\u062d\u0641\u0638\u062a\u0643. \u0627\u0641\u062a\u062d \u0634\u0627\u0634\u0629 \u0627\u0644\u0645\u0631\u0627\u062c\u0639\u0629 \u0644\u0644\u062a\u0623\u0643\u064a\u062f. \u0644\u0627 \u0623\u062f\u0641\u0639 \u0623\u0628\u062f\u0627\u064b \u0645\u0646 \u062f\u0648\u0646\u0643.\"],\nbookfull:[\"{n} is full right now, so I can't book it. Ask me for another option.\",\"{n} est complet en ce moment, je ne peux pas le r\u00e9server. Demandez-moi une autre option.\",\"{n} \u0645\u0645\u062a\u0644\u0626 \u062d\u0627\u0644\u064a\u0627\u064b\u060c \u0644\u0630\u0644\u0643 \u0644\u0627 \u0623\u0633\u062a\u0637\u064a\u0639 \u062d\u062c\u0632\u0647. \u0627\u0637\u0644\u0628 \u0645\u0646\u064a \u062e\u064a\u0627\u0631\u0627\u064b \u0622\u062e\u0631.\"],\nbooknone:[\"Tell me which car park you mean, or ask me to find one first.\",\"Dites-moi de quel parking il s'agit, ou demandez-moi d'abord d'en trouver un.\",\"\u0623\u062e\u0628\u0631\u0646\u064a \u0623\u064a \u0645\u0648\u0642\u0641 \u062a\u0642\u0635\u062f\u060c \u0623\u0648 \u0627\u0637\u0644\u0628 \u0645\u0646\u064a \u0623\u0646 \u0623\u062c\u062f \u0648\u0627\u062d\u062f\u0627\u064b \u0623\u0648\u0644\u0627\u064b.\"],\nprice:[\"{h} h at {n} comes to {t} MAD ({p} MAD\/h).\",\"{h} h \u00e0 {n} reviennent \u00e0 {t} MAD ({p} MAD\/h).\",\"{h} \u0633\u0627\u0639\u0627\u062a \u0641\u064a {n} \u062a\u0643\u0644\u0651\u0641 {t} \u062f\u0631\u0647\u0645 ({p} \u062f\u0631\u0647\u0645\/\u0633\u0627\u0639\u0629).\"],\nfallback:[\"I can find parking by city, price or feature, work out a price, and check your wallet or bookings. Try: cheapest parking in Casablanca for 3 hours.\",\"Je peux trouver un parking par ville, prix ou \u00e9quipement, calculer un prix et consulter votre portefeuille ou vos r\u00e9servations. Essayez : le parking le moins cher \u00e0 Casablanca pour 3 heures.\",\"\u0623\u0633\u062a\u0637\u064a\u0639 \u0625\u064a\u062c\u0627\u062f \u0645\u0648\u0642\u0641 \u062d\u0633\u0628 \u0627\u0644\u0645\u062f\u064a\u0646\u0629 \u0623\u0648 \u0627\u0644\u0633\u0639\u0631 \u0623\u0648 \u0627\u0644\u0645\u0632\u0627\u064a\u0627\u060c \u0648\u062d\u0633\u0627\u0628 \u0627\u0644\u0633\u0639\u0631\u060c \u0648\u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0645\u062d\u0641\u0638\u062a\u0643 \u0623\u0648 \u062d\u062c\u0648\u0632\u0627\u062a\u0643. \u062c\u0631\u0651\u0628: \u0623\u0631\u062e\u0635 \u0645\u0648\u0642\u0641 \u0641\u064a \u0627\u0644\u062f\u0627\u0631 \u0627\u0644\u0628\u064a\u0636\u0627\u0621 \u0644\u0645\u062f\u0629 3 \u0633\u0627\u0639\u0627\u062a.\"]\n};\nfunction say(key,v){var s=P[key][lg()];Object.keys(v||{}).forEach(function(k){s=s.split('{'+k+'}').join(v[k]);});return s;}\nfunction nm(f){return lg()===2?f.ar:f.n;}\nvar CN={Casablanca:['Casablanca','Casablanca','\u0627\u0644\u062f\u0627\u0631 \u0627\u0644\u0628\u064a\u0636\u0627\u0621'],Rabat:['Rabat','Rabat','\u0627\u0644\u0631\u0628\u0627\u0637'],Marrakech:['Marrakech','Marrakech','\u0645\u0631\u0627\u0643\u0634'],Tangier:['Tangier','Tanger','\u0637\u0646\u062c\u0629']};\nvar FN={covered:['covered','couvert','\u0645\u063a\u0637\u0649'],ev:['EV charging','recharge \u00e9lectrique','\u0634\u062d\u0646 \u0643\u0647\u0631\u0628\u0627\u0626\u064a'],cctv:['CCTV','vid\u00e9osurveillance','\u0645\u0631\u0627\u0642\u0628\u0629 \u0628\u0627\u0644\u0643\u0627\u0645\u064a\u0631\u0627\u062a'],valet:['valet','voiturier','\u062e\u062f\u0645\u0629 \u0635\u0641 \u0627\u0644\u0633\u064a\u0627\u0631\u0627\u062a']};\nvar CT={Casablanca:['casablanca','casa','\u0627\u0644\u062f\u0627\u0631 \u0627\u0644\u0628\u064a\u0636\u0627\u0621','\u0627\u0644\u0628\u064a\u0636\u0627\u0621','\u0643\u0627\u0632\u0627'],Rabat:['rabat','\u0627\u0644\u0631\u0628\u0627\u0637'],Marrakech:['marrakech','marrakesh','\u0645\u0631\u0627\u0643\u0634'],Tangier:['tangier','tanger','\u0637\u0646\u062c\u0629']};\nvar FT={ev:['ev charging','electric','\u00e9lectrique','electrique','charging','charge my','recharge','recharger','\u0634\u062d\u0646','\u0643\u0647\u0631\u0628'],covered:['covered','indoor','garage','couvert','\u0645\u063a\u0637\u0649','\u0645\u0631\u0622\u0628'],cctv:['cctv','camera','cam\u00e9ra','secure','security','s\u00e9cur','surveill','\u0645\u0631\u0627\u0642\u0628\u0629','\u0623\u0645\u0627\u0646'],valet:['valet','voiturier']};\nfunction key(s,tb){var r=null;Object.keys(tb).forEach(function(k){if(r===null){if(has(s,tb[k]))r=k;}});return r;}\nvar R1=\/([0-9]+(?:[.,][0-9]+)?) *(?:mad|dh|\u062f\u0631\u0647\u0645)\/,R2=\/(?:under|below|less than|moins de|max|\u0623\u0642\u0644 \u0645\u0646) *([0-9]+(?:[.,][0-9]+)?)\/,R3=\/([0-9]{1,2}) *(?:hours?|heures?|hrs?|h|\u0633\u0627\u0639\u0627\u062a|\u0633\u0627\u0639\u0629)(?![a-z])\/;\nfunction think(q){var s=q.toLowerCase(),tok=s.split(\/[^a-z]+\/),C=S.ctx;\nvar city=key(s,CT),feat=key(s,FT);if(!feat){if(tok.indexOf('ev')>=0)feat='ev';}\nvar cm=s.match(R1)||s.match(R2),max=cm?parseFloat(cm[1].replace(',','.')):0;\nvar hm=s.match(R3),hrs=hm?Math.max(1,Math.min(24,parseInt(hm[1],10))):0;\nvar cheap=has(s,['cheapest','cheap','moins cher','pas cher','lowest','\u0623\u0631\u062e\u0635','\u0631\u062e\u064a\u0635']);\nvar named=null;F.forEach(function(f){if(has(s,[f.n.toLowerCase(),f.ar].concat(f.k)))named=f;});\nvar steps=[{l:'Understanding your request'}];\nfunction res(text,cards,acts){return {steps:steps,text:text,cards:cards||[],acts:acts||[]};}\nvar mybk=has(s,['my booking','bookings','mes r\u00e9servations','r\u00e9servations','reservations','\u062d\u062c\u0648\u0632\u0627\u062a\u064a','\u0627\u0644\u062d\u062c\u0648\u0632\u0627\u062a']);\nif(24>s.length){if(has(s,['hi','hello','hey','salam','bonjour','salut','\u0645\u0631\u062d\u0628\u0627','\u0627\u0644\u0633\u0644\u0627\u0645','\u0623\u0647\u0644\u0627'])){if(!city){if(!feat){if(!named){if(!mybk)return res(say('greet'));}}}}}\nif(has(s,['book','r\u00e9serv','reserv','\u0627\u062d\u062c\u0632','\u062d\u062c\u0632'])){if(!mybk){var bf=named;if(!bf){if(C.last!==null)bf=F[C.last];}\nsteps.push({l:'Preparing your booking',m:bf?'create_booking_draft(facility=\"'+bf.n+'\", hours='+(hrs||2)+')':''});\nif(!bf)return res(say('booknone'));\nif(1>bf.av)return res(say('bookfull',{n:nm(bf)}));\nvar bh=hrs||2;C.last=bf.id;return res(say('book',{h:bh,n:nm(bf),t:m(bf.p*bh)}),[],[{l:'Review and pay',act:'aibook',id:bf.id,h:bh}]);}}\nif(mybk){steps.push({l:'Looking up your bookings',m:'list_bookings(status=\"active\")'});var act=S.bk.filter(function(b){return b.st==='Active';});\nif(!act.length)return res(say('nobk'));\nreturn res(say('bk',{k:act.length,n:nm(F[act[0].f]),h:act[0].h,c:act[0].code}),[],[{l:'View my bookings',act:'tab',id:'bookings'}]);}\nif(has(s,['wallet','balance','solde','portefeuille','\u0631\u0635\u064a\u062f','\u0645\u062d\u0641\u0638'])){steps.push({l:'Checking your wallet',m:'get_wallet()'});return res(say('wallet',{b:m(S.bal)}),[],[{l:'Open wallet',act:'tab',id:'wallet'}]);}\nif(has(s,['near me','nearby','pr\u00e8s de moi','proche de moi','\u0642\u0631\u064a\u0628 \u0645\u0646\u064a','\u0642\u0631\u0628\u064a']))return res(say('near'),[],[{l:'Parking Near Me',act:'near'}]);\nif(has(s,['refund','rembours','\u0627\u0633\u062a\u0631\u062f\u0627\u062f','cancel','annul','\u0625\u0644\u063a\u0627\u0621'])){if(!city){steps.push({l:'Reading the refund policy',m:'get_policy(\"refund\")'});return res(say('refund'),[],S.bk.length?[{l:'View my bookings',act:'tab',id:'bookings'}]:[]);}}\nvar follow=has(s,['what about','how about','and in','et \u00e0','et pour','et a ','\u0648\u0645\u0627\u0630\u0627','\u0645\u0627\u0630\u0627 \u0639\u0646']);\nvar searchy=!!(city||feat||max||cheap||named)||has(s,['park','where','o\u00f9','space','spot','place','find','trouve','\u0645\u0648\u0642\u0641','\u0623\u064a\u0646','\u0645\u0643\u0627\u0646']);\nif(hrs){if(!(city||feat||max||cheap||named)){if(C.last!==null){var pf=F[C.last];steps.push({l:'Calculating the price',m:'quote(facility=\"'+pf.n+'\", hours='+hrs+')'});return res(say('price',{h:hrs,n:nm(pf),t:m(pf.p*hrs),p:m(pf.p)}),[],[{l:'Review and pay',act:'aibook',id:pf.id,h:hrs}]);}}}\nif(!searchy){if(!follow)return res(say('fallback'));}\nif(follow){if(!city)city=C.city;if(!feat)feat=C.feat;if(!max)max=C.max;}\nC.city=city;C.feat=feat;C.max=max;\nvar args=[],wp=[];\nif(named){if(!city){if(!feat){if(!max)args.push('name=\"'+named.n+'\"');}}}\nif(city){args.push('city=\"'+city+'\"');wp.push(CN[city][lg()]);}\nif(feat){args.push('feature=\"'+feat+'\"');wp.push(FN[feat][lg()]);}\nif(max){args.push('max_price='+max);wp.push('\u2264 '+max+' MAD\/h');}\nargs.push('sort=\"'+(cheap?'price':'rating')+'\"');\nvar w=wp.length?' ('+wp.join(' \u00b7 ')+')':'';\nsteps.push({l:'Searching the inventory',m:'search_parking('+args.join(', ')+')'});steps.push({l:'Checking live availability',m:'get_availability()'});\nfunction ok(f,needAv){if(needAv){if(1>f.av)return false;}if(city){if(f.c!==city)return false;}if(feat){if(f.ft.indexOf(feat)===-1)return false;}if(max){if(f.p>max)return false;}return true;}\nvar only=args.length===2?(args[0].indexOf('name=')===0):false;\nvar all=only?[named]:F.filter(function(f){return ok(f,false);});\nvar rws=all.filter(function(f){return f.av>0;});\nrws.sort(function(a,b){return cheap?a.p-b.p:b.r-a.r;});\nif(!rws.length){if(all.length){C.last=all[0].id;return res(say('fullonly',{n:nm(all[0]),w:w}),[all[0].id]);}return res(say('none',{w:w}));}\nvar top=rws[0];C.last=top.id;var v={k:rws.length,w:w,n:nm(top),r:top.r,p:m(top.p),a:top.av,c:top.cap};\nvar text=cheap?say('cheap',v):(rws.length>1?say('found',v):say('found1',v));\nif(cheap){if(rws.length>1)text+=say('next',{n:nm(rws[1]),p:m(rws[1].p)});}\nif(hrs){steps.push({l:'Calculating the price',m:'quote(facility=\"'+top.n+'\", hours='+hrs+')'});text+=say('hours',{h:hrs,n:nm(top),t:m(top.p*hrs)});}\nvar acts=[{l:'Book',n:top.id,act:'aibook',id:top.id,h:hrs||2}];if(top.x)acts.push({l:'Show on map',act:'aimap',id:top.id});\nreturn res(text,rws.slice(0,3).map(function(f){return f.id;}),acts);}\nfunction send(text,isKey){if(S.busy)return;if(S.v!=='assistant')return;S.busy=true;\nvar chat=$('pd-chat'),mn=$('pd-main'),sb=$('pd-send');if(sb)sb.disabled=true;\nfunction add(html){var d=document.createElement('div');d.innerHTML=html;var n=d.firstChild;while(n){var nx=n.nextSibling;chat.appendChild(n);n=nx;}mn.scrollTop=mn.scrollHeight;}\nvar sg=$('pd-sug');if(sg)sg.parentNode.removeChild(sg);\nS.chat.push({me:true,t:text,k:isKey});add(msgHtml({me:true,t:text,k:isKey}));ap();\nvar plan=think(isKey?(T[text]?(lg()?T[text][lg()-1]:text):text):text);S.pending=plan;\nadd('<div class=\"pd-trace\" id=\"pd-tr\"><\/div>');add(aiRow(DOTS));\nvar tr=$('pd-tr');tr.removeAttribute('id');var bub=chat.lastChild.querySelector('.pd-bub'),i=0;\nfunction fin(){S.pending=null;S.chat.push({t:plan.text,steps:plan.steps,cards:plan.cards,acts:plan.acts});add(cardsHtml(plan.cards)+actsHtml(plan.acts));ap();mn.scrollTop=mn.scrollHeight;S.busy=false;var b=$('pd-send');if(b)b.disabled=false;}\nfunction stream(){var words=plan.text.split(' '),k=0;bub.textContent='';bub.classList.add('typing');var iv=setInterval(function(){k+=1;bub.textContent=words.slice(0,k).join(' ');mn.scrollTop=mn.scrollHeight;if(k>=words.length){clearInterval(iv);bub.classList.remove('typing');alater(fin,220);}},48);AT.push(iv);}\nfunction step(){if(i>=plan.steps.length){alater(stream,260);return;}var d=document.createElement('div');d.innerHTML=stepHtml(plan.steps[i],false);var node=d.firstChild;tr.appendChild(node);ap();mn.scrollTop=mn.scrollHeight;alater(function(){node.classList.add('ok');i+=1;step();},520+Math.floor(Math.random()*480));}\nalater(step,450);}\nel.addEventListener('click',function(ev){var b=ev.target.closest('[data-act]');if(!b)return;if(b.disabled)return;var a=b.getAttribute('data-act'),id=b.getAttribute('data-id'),f=F[S.f];\nif(a==='tab'){tab(id);return;}\nif(a==='city'){S.city=id;S.loading=true;render();later(function(){S.loading=false;fill();},420);return;}\nif(a==='open'){S.f=+id;go('fac','push');return;}\nif(a==='back'){S.v=S.stack.length?S.stack.pop():'home';S.dir='pop';S.paying=false;render();return;}\nif(a==='book'){S.h=2;go('book','push');return;}\nif(a==='dur'){S.h=+id;render();return;}\nif(a==='pay'){if(S.paying)return;var cost=f.p*S.h;if(cost>S.bal)return;if(1>f.av)return;S.paying=true;render();later(function(){S.paying=false;S.bal-=cost;f.av-=1;var A='ABCDEFGHJKLMNPQRSTUVWXYZ23456789',code='';[0,1,2,3,4,5].forEach(function(){code+=A.charAt(Math.floor(Math.random()*A.length));});S.last={f:f.id,h:S.h,cost:cost,code:code,st:'Active',when:startLabel(),ref:0};S.bk.unshift(S.last);S.tx.unshift({t:'Parking charge',a:-cost,d:f.n});S.stack=['bookings'];S.v='done';S.dir='push';render();toast('Booking confirmed');},1150);return;}\nif(a==='topup'){S.sheet=true;S.amt=[50,100,200,500].indexOf(+id)>=0?+id:(+id>200?500:(+id>100?200:100));render();return;}\nif(a==='amt'){S.amt=+id;render();return;}\nif(a==='closesheet'){S.sheet=false;S.toping=false;render();return;}\nif(a==='confirmtop'){if(S.toping)return;S.toping=true;render();later(function(){S.toping=false;S.sheet=false;S.bal+=S.amt;S.dep+=S.amt;S.tx.unshift({t:'Top-up',a:S.amt,d:'Demo top-up'});render();toast('Top-up successful','+'+m(S.amt)+' MAD');},950);return;}\nif(a==='cancel'){var k=S.bk[+id];if(k){if(k.st==='Active'){k.st='Cancelled';k.ref=k.cost;S.bal+=k.cost;F[k.f].av+=1;S.tx.unshift({t:'Refund',a:k.cost,d:F[k.f].n});render();toast('Refunded','+'+m(k.cost)+' MAD');}}return;}\nif(a==='pin'){S.pin=+id;render();return;}\nif(a==='mic'){if(S.rec)return;S.rec=1;render();var c=0,iv=setInterval(function(){c+=1;var e=$('pd-recn');if(e)e.textContent=c;},1000);TM.push(iv);later(function(){clearInterval(iv);S.rec=2;if(S.v==='home')render();later(function(){S.rec=0;S.q='Casablanca';S.near=false;S.city='All';if(S.v==='home')render();},950);},2700);return;}\nif(a==='near'){if(S.locating)return;S.locating=true;render();later(function(){S.locating=false;S.near=true;S.q='';if(S.v==='home')render();},1300);return;}\nif(a==='clearnear'){S.near=false;render();return;}\nif(a==='sug'){send(b.textContent,false);return;}\nif(a==='aiact'){var kk=b.getAttribute('data-k'),vv=b.getAttribute('data-v');\nif(kk==='tab'){tab(vv);return;}\nif(kk==='aibook'){S.f=+vv;S.h=+b.getAttribute('data-h');go('book','push');return;}\nif(kk==='aimap'){S.pin=+vv;tab('map');return;}\nif(kk==='near'){tab('home');S.locating=true;render();later(function(){S.locating=false;S.near=true;S.q='';if(S.v==='home')render();},1300);return;}}\n});\nel.addEventListener('input',function(ev){if(ev.target.id==='pd-q'){S.q=ev.target.value;S.near=false;fill();}});\nel.addEventListener('submit',function(ev){ev.preventDefault();var i=$('pd-ai');var q=i?i.value.trim():'';if(q){if(!S.busy){i.value='';send(q,false);}}});\nvar rb=$('bl-demo-reset');if(rb)rb.addEventListener('click',function(){reset();render();});\nreset();render();\n})();\n<\/script>\n<script>\n(function(){\nvar hd=document.querySelector('.bl-head'),b=document.getElementById('bl-menu');\nif(!hd)return;if(!b)return;\nfunction set(o){if(o){hd.classList.add('open');}else{hd.classList.remove('open');}b.setAttribute('aria-expanded',o?'true':'false');}\nb.addEventListener('click',function(){set(!hd.classList.contains('open'));});\nArray.prototype.forEach.call(hd.querySelectorAll('.bl-nav a'),function(a){a.addEventListener('click',function(){set(false);});});\ndocument.addEventListener('keydown',function(e){if(e.key==='Escape')set(false);});\n})();\n<\/script>\n<script>\n(function(){\nvar hd=document.querySelector('.bl-head');if(!hd)return;\nvar last=window.pageYOffset,tick=false;\nfunction run(){tick=false;var y=window.pageYOffset,d=y-last;\nif(hd.classList.contains('open')){last=y;return;}\nif(d>6){if(y>140){hd.classList.add('hide');}last=y;}\nelse if(-d>6){hd.classList.remove('hide');last=y;}\nif(20>y){hd.classList.remove('hide');}}\nwindow.addEventListener('scroll',run,{passive:true});\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>blassti.ma DriversDemoHostsBusinessTechnologyHelp ENFRAR Get early access Reserved parking, wherever the day takes you. blassti.ma connects drivers with private garages, driveways and car parks across Casablanca. Compare prices, see live availability and book your space in advance. Where are you going? Arrive Leave Search spaces Booking opens when the app launches. Leave your email below and [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"blassti-landing","meta":{"footnotes":""},"class_list":["post-9","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/blassti.ma\/index.php?rest_route=\/wp\/v2\/pages\/9","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blassti.ma\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blassti.ma\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blassti.ma\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blassti.ma\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=9"}],"version-history":[{"count":9,"href":"https:\/\/blassti.ma\/index.php?rest_route=\/wp\/v2\/pages\/9\/revisions"}],"predecessor-version":[{"id":24,"href":"https:\/\/blassti.ma\/index.php?rest_route=\/wp\/v2\/pages\/9\/revisions\/24"}],"wp:attachment":[{"href":"https:\/\/blassti.ma\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=9"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}