{"id":31,"date":"2026-07-30T14:04:51","date_gmt":"2026-07-30T14:04:51","guid":{"rendered":"https:\/\/mahall.org\/?page_id=31"},"modified":"2026-07-30T14:05:48","modified_gmt":"2026-07-30T14:05:48","slug":"pricing","status":"publish","type":"page","link":"https:\/\/mahall.org\/index.php\/pricing\/","title":{"rendered":"Pricing"},"content":{"rendered":"\n<!--\n  MAHALL \u2014 pricing & subscriptions (v0.8)\n  ------------------------------------------------------------------\n  HOW TO USE\n  Paste into a WordPress page, e.g. mahall.org\/pricing\n\n  TWO AUDIENCES on one page, toggled by a switch:\n    - Venue owners  \u2192 subscription tiers (Free \/ Featured \/ Premium)\n    - Event clients \u2192 how inquiry and booking works (always free)\n\n  WOOCOMMERCE INTEGRATION\n  The \"Subscribe now\" buttons link to WooCommerce product pages.\n  Before going live:\n  1. Install WooCommerce + WooCommerce Subscriptions plugin.\n  2. Create three Subscription products:\n       - \"Mahall Featured Listing\"  \u2192 499 MAD\/month\n       - \"Mahall Premium Listing\"   \u2192 1,200 MAD\/month\n       - \"Mahall Annual Featured\"   \u2192 4,990 MAD\/year (2 months free)\n       - \"Mahall Annual Premium\"    \u2192 11,990 MAD\/year (2 months free)\n  3. Replace the PLAN_URLS object in the script with your real\n     WooCommerce product\/checkout URLs.\n  4. For plan detection (showing current plan on return visits),\n     add a GET \/wp-json\/mahall\/v1\/owner\/plan endpoint that returns\n     {plan: \"free\"|\"featured\"|\"premium\"} for the logged-in user.\n     Falls back to \"free\" if not wired.\n\n  BILLING TOGGLE (monthly \u2194 annual)\n  Switching to annual shows the discounted prices and updates\n  all CTA URLs to the annual product pages automatically.\n------------------------------------------------------------------- -->\n<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Fraunces:ital,opsz,wght@0,9..144,300..700;1,9..144,400..600&family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap');\n\n#mahall-pricing{\n  --bg:#16130F; --bg-raised:#1E1A14; --bg-card:#241F18;\n  --ink:#F3ECE0; --ink-soft:#BBAE99; --ink-faint:#7A7163;\n  --gold:#D98E33; --gold-soft:#E8B978;\n  --teal:#2F6F62; --teal-soft:#5C988B;\n  --terracotta:#B5532D;\n  --line:rgba(243,236,224,0.12);\n  --radius:14px;\n  font-family:'Inter',sans-serif; background:var(--bg); color:var(--ink);\n  -webkit-font-smoothing:antialiased; overflow-x:hidden;\n}\n#mahall-pricing *{box-sizing:border-box; margin:0; padding:0;}\n#mahall-pricing a{color:inherit; text-decoration:none;}\n#mahall-pricing .wrap{max-width:1060px; margin:0 auto; padding:0 28px;}\n#mahall-pricing .wrap-narrow{max-width:720px; margin:0 auto; padding:0 28px;}\n#mahall-pricing .eyebrow{font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-soft);}\n#mahall-pricing h1,#mahall-pricing h2,#mahall-pricing h3{font-family:'Fraunces',serif; font-weight:500; color:var(--ink); line-height:1.12;}\n#mahall-pricing p{color:var(--ink-soft); line-height:1.65;}\n#mahall-pricing .btn{display:inline-flex; align-items:center; gap:8px; font-weight:500; font-size:14px; padding:13px 24px; border-radius:999px; border:1px solid var(--line); cursor:pointer; background:transparent; color:var(--ink); transition:border-color .2s, transform .15s, background .2s; text-align:center; justify-content:center;}\n#mahall-pricing .btn:hover{border-color:var(--gold-soft); transform:translateY(-1px);}\n#mahall-pricing .btn-solid{background:var(--gold); border-color:var(--gold); color:#1A1305;}\n#mahall-pricing .btn-solid:hover{background:var(--gold-soft);}\n#mahall-pricing .btn-teal{background:var(--teal); border-color:var(--teal); color:var(--ink);}\n#mahall-pricing .btn-teal:hover{background:var(--teal-soft);}\n#mahall-pricing .btn-block{width:100%;}\n#mahall-pricing .star{position:relative; width:16px; height:16px; flex:none;}\n#mahall-pricing .star span{position:absolute; inset:0; border:1.4px solid var(--gold);}\n#mahall-pricing .star span:last-child{transform:rotate(45deg);}\n\n\/* nav *\/\n#mahall-pricing nav{position:sticky; top:0; z-index:40; backdrop-filter:blur(10px); background:rgba(22,19,15,0.88); border-bottom:1px solid var(--line);}\n#mahall-pricing nav .row{display:flex; align-items:center; justify-content:space-between; padding:16px 28px; max-width:1060px; margin:0 auto;}\n#mahall-pricing .logo{display:flex; align-items:center; gap:10px; font-family:'Fraunces',serif; font-size:20px;}\n#mahall-pricing .navcta{display:flex; gap:10px;}\n\n\/* hero *\/\n#mahall-pricing .hero{padding:72px 0 48px; text-align:center;}\n#mahall-pricing .hero .eyebrow{display:block; margin-bottom:14px;}\n#mahall-pricing .hero h1{font-size:clamp(32px,5vw,52px); margin-bottom:14px;}\n#mahall-pricing .hero p{font-size:16px; max-width:480px; margin:0 auto 32px;}\n\n\/* audience toggle *\/\n#mahall-pricing .audience-toggle{display:inline-flex; background:var(--bg-card); border:1px solid var(--line); border-radius:999px; padding:4px; gap:4px; margin-bottom:8px;}\n#mahall-pricing .aud-btn{font-size:13px; font-weight:500; padding:9px 22px; border-radius:999px; border:none; background:transparent; color:var(--ink-soft); cursor:pointer; transition:background .2s, color .2s;}\n#mahall-pricing .aud-btn.active{background:var(--bg-raised); color:var(--ink); box-shadow:0 1px 4px rgba(0,0,0,.3);}\n\n\/* billing toggle *\/\n#mahall-pricing .billing-row{display:flex; align-items:center; justify-content:center; gap:14px; margin-bottom:48px; font-size:14px;}\n#mahall-pricing .toggle-track{width:44px; height:24px; border-radius:999px; background:var(--bg-card); border:1px solid var(--line); position:relative; cursor:pointer; transition:background .2s;}\n#mahall-pricing .toggle-track.on{background:var(--teal);}\n#mahall-pricing .toggle-thumb{width:18px; height:18px; border-radius:50%; background:var(--ink); position:absolute; top:2px; left:2px; transition:transform .2s;}\n#mahall-pricing .toggle-track.on .toggle-thumb{transform:translateX(20px);}\n#mahall-pricing .save-badge{font-family:'JetBrains Mono',monospace; font-size:10px; background:var(--teal); color:var(--ink); padding:3px 9px; border-radius:999px; letter-spacing:.04em;}\n#mahall-pricing .billing-label{color:var(--ink-soft);}\n#mahall-pricing .billing-label.active{color:var(--ink); font-weight:600;}\n\n\/* plan cards *\/\n#mahall-pricing .plan-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-bottom:64px;}\n#mahall-pricing .plan-card{background:var(--bg-raised); border:1.5px solid var(--line); border-radius:20px; padding:28px; display:flex; flex-direction:column; position:relative; transition:border-color .2s, transform .2s;}\n#mahall-pricing .plan-card:hover{transform:translateY(-3px);}\n#mahall-pricing .plan-card.highlighted{border-color:var(--gold); background:linear-gradient(160deg, rgba(217,142,51,.07), var(--bg-raised));}\n#mahall-pricing .plan-card.current{border-color:var(--teal-soft);}\n#mahall-pricing .plan-badge{position:absolute; top:-12px; left:50%; transform:translateX(-50%); font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; background:var(--gold); color:#1A1305; padding:4px 14px; border-radius:999px; white-space:nowrap;}\n#mahall-pricing .plan-badge.teal{background:var(--teal); color:var(--ink);}\n#mahall-pricing .plan-name{font-family:'Fraunces',serif; font-size:22px; margin-bottom:6px;}\n#mahall-pricing .plan-tagline{font-size:13px; color:var(--ink-faint); margin-bottom:20px;}\n#mahall-pricing .plan-price{margin-bottom:6px;}\n#mahall-pricing .plan-price b{font-family:'Fraunces',serif; font-size:36px; color:var(--gold-soft);}\n#mahall-pricing .plan-price span{font-size:13px; color:var(--ink-faint); margin-left:4px;}\n#mahall-pricing .plan-price .was{font-size:13px; color:var(--ink-faint); text-decoration:line-through; margin-right:6px; display:none;}\n#mahall-pricing .plan-price .was.show{display:inline;}\n#mahall-pricing .plan-period{font-size:12px; color:var(--ink-faint); margin-bottom:22px;}\n#mahall-pricing .plan-divider{height:1px; background:var(--line); margin-bottom:18px;}\n#mahall-pricing .plan-features{list-style:none; display:flex; flex-direction:column; gap:10px; margin-bottom:24px; flex:1;}\n#mahall-pricing .plan-features li{font-size:13px; display:flex; align-items:flex-start; gap:10px; color:var(--ink-soft);}\n#mahall-pricing .plan-features li .ic{font-size:12px; flex:none; margin-top:1px;}\n#mahall-pricing .plan-features li .ic.ok{color:var(--teal-soft);}\n#mahall-pricing .plan-features li .ic.na{color:var(--ink-faint); opacity:.4;}\n#mahall-pricing .plan-features li.dim{color:var(--ink-faint);}\n#mahall-pricing .current-label{display:none; font-size:12px; font-family:'JetBrains Mono',monospace; color:var(--teal-soft); text-align:center; margin-top:10px;}\n#mahall-pricing .plan-card.current .current-label{display:block;}\n#mahall-pricing .plan-card.current .btn{opacity:.5; cursor:not-allowed; pointer-events:none;}\n\n\/* comparison table *\/\n#mahall-pricing .table-section{margin-bottom:64px;}\n#mahall-pricing .table-section h2{font-size:26px; margin-bottom:24px; text-align:center;}\n#mahall-pricing .comp-table{width:100%; border-collapse:collapse; font-size:13px;}\n#mahall-pricing .comp-table th{font-family:'JetBrains Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-faint); padding:12px 16px; text-align:left; border-bottom:1px solid var(--line);}\n#mahall-pricing .comp-table th:not(:first-child){text-align:center;}\n#mahall-pricing .comp-table td{padding:12px 16px; border-bottom:1px solid var(--line); color:var(--ink-soft); vertical-align:middle;}\n#mahall-pricing .comp-table td:not(:first-child){text-align:center;}\n#mahall-pricing .comp-table tr:hover td{background:var(--bg-card);}\n#mahall-pricing .comp-table .cat-row td{font-family:'JetBrains Mono',monospace; font-size:10px; text-transform:uppercase; letter-spacing:.1em; color:var(--ink-faint); background:var(--bg-card); padding:8px 16px;}\n#mahall-pricing .check{color:var(--teal-soft);}\n#mahall-pricing .cross{color:var(--ink-faint); opacity:.35;}\n#mahall-pricing .highlight-col{color:var(--gold-soft); font-weight:600;}\n\n\/* client section *\/\n#mahall-pricing .client-section{background:var(--bg-raised); border:1px solid var(--line); border-radius:20px; padding:48px; margin-bottom:64px; display:none;}\n#mahall-pricing .client-section.show{display:block;}\n#mahall-pricing .client-steps{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:32px;}\n#mahall-pricing .client-step{text-align:center;}\n#mahall-pricing .client-step .num{width:40px; height:40px; border-radius:50%; background:rgba(217,142,51,.12); border:1px solid var(--gold); display:flex; align-items:center; justify-content:center; font-family:'Fraunces',serif; font-size:18px; color:var(--gold-soft); margin:0 auto 14px;}\n#mahall-pricing .client-step h3{font-size:15px; margin-bottom:8px;}\n\n\/* FAQ *\/\n#mahall-pricing .faq-section{margin-bottom:64px;}\n#mahall-pricing .faq-section h2{font-size:26px; margin-bottom:24px; text-align:center;}\n#mahall-pricing .faq-item{border-bottom:1px solid var(--line);}\n#mahall-pricing .faq-q{display:flex; justify-content:space-between; align-items:center; padding:18px 0; cursor:pointer; font-size:15px; color:var(--ink); gap:16px;}\n#mahall-pricing .faq-q .arrow{font-size:12px; color:var(--gold-soft); transition:transform .25s; flex:none;}\n#mahall-pricing .faq-item.open .faq-q .arrow{transform:rotate(180deg);}\n#mahall-pricing .faq-a{max-height:0; overflow:hidden; transition:max-height .35s ease; font-size:14px; color:var(--ink-soft); line-height:1.7;}\n#mahall-pricing .faq-item.open .faq-a{max-height:300px; padding-bottom:18px;}\n\n\/* owner CTA *\/\n#mahall-pricing .bottom-cta{text-align:center; padding:64px 0 80px;}\n#mahall-pricing .bottom-cta h2{font-size:30px; margin-bottom:12px;}\n#mahall-pricing .bottom-cta p{max-width:420px; margin:0 auto 28px;}\n\n#mahall-pricing footer{border-top:1px solid var(--line); padding:28px; text-align:center; font-size:12px; color:var(--ink-faint);}\n\n@media(max-width:860px){\n  #mahall-pricing .plan-grid{grid-template-columns:1fr;}\n  #mahall-pricing .client-steps{grid-template-columns:1fr;}\n  .comp-table-wrap{overflow-x:auto;}\n}\n<\/style>\n\n<div id=\"mahall-pricing\">\n\n  <nav>\n    <div class=\"row\">\n      <a class=\"logo\" href=\"\/\"><span class=\"star\"><span><\/span><span><\/span><\/span> Mahall<\/a>\n      <div class=\"navcta\">\n        <a class=\"btn\" href=\"\/register#login\">Log in<\/a>\n        <a class=\"btn btn-solid\" href=\"\/list-your-venue\">List your venue<\/a>\n      <\/div>\n    <\/div>\n  <\/nav>\n\n  <section class=\"hero\">\n    <div class=\"wrap-narrow\">\n      <span class=\"eyebrow\">Simple, transparent pricing<\/span>\n      <h1>The right plan for every venue<\/h1>\n      <p>Start free and upgrade when you&#8217;re ready to grow. No setup fees, no long-term contracts.<\/p>\n\n      <div class=\"audience-toggle\" id=\"audience-toggle\">\n        <button class=\"aud-btn active\" data-aud=\"owner\">I own a venue<\/button>\n        <button class=\"aud-btn\" data-aud=\"client\">I&#8217;m planning an event<\/button>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- OWNER SECTION -->\n  <div id=\"owner-section\">\n    <div class=\"wrap\">\n\n      <div class=\"billing-row\">\n        <span class=\"billing-label active\" id=\"lbl-monthly\">Monthly<\/span>\n        <div class=\"toggle-track\" id=\"billing-toggle\">\n          <div class=\"toggle-thumb\"><\/div>\n        <\/div>\n        <span class=\"billing-label\" id=\"lbl-annual\">Annual<\/span>\n        <span class=\"save-badge\">Save 2 months<\/span>\n      <\/div>\n\n      <div class=\"plan-grid\" id=\"plan-grid\"><\/div>\n\n      <!-- Comparison table -->\n      <div class=\"table-section\">\n        <h2>Compare plans in detail<\/h2>\n        <div class=\"comp-table-wrap\">\n          <table class=\"comp-table\" id=\"comp-table\"><\/table>\n        <\/div>\n      <\/div>\n\n    <\/div>\n  <\/div>\n\n  <!-- CLIENT SECTION -->\n  <div class=\"wrap\">\n    <div class=\"client-section\" id=\"client-section\">\n      <div style=\"text-align:center; max-width:500px; margin:0 auto;\">\n        <span class=\"eyebrow\" style=\"display:block; margin-bottom:12px;\">For event planners &#038; clients<\/span>\n        <h2 style=\"font-size:28px; margin-bottom:12px;\">Finding and booking venues is always free<\/h2>\n        <p>Mahall is free to use for event planners, brands, and travellers. Venue owners pay to list \u2014 you never do.<\/p>\n      <\/div>\n      <div class=\"client-steps\">\n        <div class=\"client-step\">\n          <div class=\"num\">1<\/div>\n          <h3>Search &amp; browse<\/h3>\n          <p>Use our AI search or browse by category, city, and guest count. No account needed to explore.<\/p>\n        <\/div>\n        <div class=\"client-step\">\n          <div class=\"num\">2<\/div>\n          <h3>Send an inquiry<\/h3>\n          <p>Fill in the inquiry form on any listing. Your request goes directly to the venue host \u2014 no middleman, no fees.<\/p>\n        <\/div>\n        <div class=\"client-step\">\n          <div class=\"num\">3<\/div>\n          <h3>Confirm &amp; plan<\/h3>\n          <p>The host responds with availability and pricing. You negotiate and confirm directly. Mahall logs the trail.<\/p>\n        <\/div>\n      <\/div>\n      <div style=\"text-align:center; margin-top:36px;\">\n        <a class=\"btn btn-solid\" href=\"\/register\">Create a free client account &#10148;<\/a>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- FAQ -->\n  <div class=\"wrap-narrow\">\n    <div class=\"faq-section\" id=\"faq-section\"><\/div>\n  <\/div>\n\n  <!-- Bottom CTA -->\n  <div class=\"bottom-cta\" id=\"bottom-cta\">\n    <h2>Ready to get discovered?<\/h2>\n    <p>Your first listing is free. Upgrade to Featured or Premium when you&#8217;re ready to grow.<\/p>\n    <a class=\"btn btn-solid\" href=\"\/list-your-venue\">List your venue &#10148;<\/a>\n  <\/div>\n\n  <footer>mahall.org &middot; Morocco &rarr; MENA &middot; Pricing in MAD (Moroccan dirham)<\/footer>\n<\/div>\n\n<script>\n(function(){\n\n  var PLAN_URLS = {\n    \/* Replace with real WooCommerce product\/checkout URLs *\/\n    free:             '\/list-your-venue',\n    featured_monthly: '\/checkout?plan=featured-monthly',\n    featured_annual:  '\/checkout?plan=featured-annual',\n    premium_monthly:  '\/checkout?plan=premium-monthly',\n    premium_annual:   '\/checkout?plan=premium-annual'\n  };\n\n  var isAnnual  = false;\n  var audience  = 'owner';\n  var currentPlan = 'free'; \/* overwritten by REST call *\/\n\n  var PLANS = [\n    {\n      id:'free', name:'Free listing', tagline:'Get started at no cost',\n      monthly:0, annual:0,\n      badge:null,\n      features:[\n        {ok:true,  text:'Listing page on Mahall'},\n        {ok:true,  text:'Up to 6 photos'},\n        {ok:true,  text:'Standard search placement'},\n        {ok:true,  text:'Inquiry form for clients'},\n        {ok:false, text:'Priority placement'},\n        {ok:false, text:'Video tour'},\n        {ok:false, text:'3D \/ 360\u00b0 tour'},\n        {ok:false, text:'Lead analytics dashboard'},\n        {ok:false, text:'Homepage rotation'},\n        {ok:false, text:'Account support'}\n      ]\n    },\n    {\n      id:'featured', name:'Featured', tagline:'Get noticed \u2014 most popular',\n      monthly:499, annual:4990,\n      badge:'Most popular', badgeStyle:'',\n      features:[\n        {ok:true,  text:'Everything in Free'},\n        {ok:true,  text:'Unlimited photos'},\n        {ok:true,  text:'Video tour'},\n        {ok:true,  text:'3D \/ 360\u00b0 tour (Pannellum or Matterport)'},\n        {ok:true,  text:'Priority placement in category & search'},\n        {ok:true,  text:'Lead analytics dashboard'},\n        {ok:false, text:'Homepage rotation'},\n        {ok:false, text:'Dedicated account support'}\n      ]\n    },\n    {\n      id:'premium', name:'Premium', tagline:'Maximum visibility',\n      monthly:1200, annual:11990,\n      badge:'Best value annual', badgeStyle:'teal',\n      features:[\n        {ok:true, text:'Everything in Featured'},\n        {ok:true, text:'Homepage rotation (hero & featured strip)'},\n        {ok:true, text:'Top placement across all search & category'},\n        {ok:true, text:'Dedicated Mahall account manager'},\n        {ok:true, text:'Quarterly performance review'},\n        {ok:true, text:'Early access to new features'}\n      ]\n    }\n  ];\n\n  var TABLE_ROWS = [\n    {cat:'Listing'},\n    {feature:'Listing page', free:'&#10003;', featured:'&#10003;', premium:'&#10003;'},\n    {feature:'Photos', free:'Up to 6', featured:'Unlimited', premium:'Unlimited'},\n    {feature:'Video tour', free:'&#10005;', featured:'&#10003;', premium:'&#10003;'},\n    {feature:'3D \/ 360\u00b0 tour', free:'&#10005;', featured:'&#10003;', premium:'&#10003;'},\n    {cat:'Visibility'},\n    {feature:'Search placement', free:'Standard', featured:'Priority', premium:'Top'},\n    {feature:'Category placement', free:'Standard', featured:'Priority', premium:'Top'},\n    {feature:'Homepage rotation', free:'&#10005;', featured:'&#10005;', premium:'&#10003;'},\n    {feature:'Featured strip', free:'&#10005;', featured:'&#10003;', premium:'&#10003;'},\n    {cat:'Leads & analytics'},\n    {feature:'Inquiry form', free:'&#10003;', featured:'&#10003;', premium:'&#10003;'},\n    {feature:'Lead inbox (dashboard)', free:'&#10003;', featured:'&#10003;', premium:'&#10003;'},\n    {feature:'Lead analytics', free:'&#10005;', featured:'&#10003;', premium:'&#10003;'},\n    {feature:'AI draft reply', free:'&#10005;', featured:'&#10003;', premium:'&#10003;'},\n    {cat:'Support'},\n    {feature:'Email support', free:'&#10005;', featured:'&#10003;', premium:'&#10003;'},\n    {feature:'Dedicated account manager', free:'&#10005;', featured:'&#10005;', premium:'&#10003;'},\n    {feature:'Quarterly review', free:'&#10005;', featured:'&#10005;', premium:'&#10003;'}\n  ];\n\n  var FAQS_OWNER = [\n    {q:'Can I switch plans at any time?', a:'Yes \u2014 you can upgrade, downgrade, or cancel at any time from your owner dashboard. Upgrades take effect immediately; downgrades apply at the end of your current billing period.'},\n    {q:'What payment methods are accepted?', a:'We accept Visa, Mastercard, and bank transfer (virement bancaire) for Moroccan accounts. Payments are processed securely via WooCommerce \/ Stripe.'},\n    {q:'Is there a free trial for Featured or Premium?', a:'We offer a 14-day free trial on the Featured plan for new venues. No credit card required to start \u2014 you\\'ll only be charged if you decide to continue after the trial.'},\n    {q:'What happens to my listing if I cancel?', a:'Your listing moves to Free tier automatically. It stays live with standard placement; photos, video, and 3D tour are preserved but won\\'t be shown on search result cards until you re-subscribe.'},\n    {q:'Do you offer discounts for multiple listings?', a:'Yes \u2014 if you own more than three venues, contact us for a multi-listing package. Corporate and agency accounts with large portfolios get custom pricing.'},\n    {q:'Is my listing reviewed before it goes live?', a:'All new listings are reviewed by our team within 48 hours. Featured and Premium submissions are prioritised. We check for completeness, accuracy, and that the venue matches its stated category.'}\n  ];\n\n  var FAQS_CLIENT = [\n    {q:'Is Mahall free for event planners?', a:'Yes, completely. Searching, browsing, saving, and sending inquiries is always free for clients. You never pay Mahall anything \u2014 venue owners pay to list their spaces.'},\n    {q:'Does Mahall handle payments or deposits?', a:'Not currently. Mahall connects you with the venue host; payment terms (deposit, final balance, cancellation policy) are agreed directly with the host. We\\'re working on integrated payments for a future release.'},\n    {q:'How quickly do venues respond to inquiries?', a:'Featured and Premium venues are committed to responding within 24 hours. Free-tier owners don\\'t have a formal SLA, but most respond within 48 hours. You\\'ll see a typical response time on each listing page.'},\n    {q:'Can I make multiple inquiries for the same date?', a:'Yes \u2014 we recommend sending inquiries to 2\u20133 venues in parallel and comparing responses before committing. There\\'s no obligation until you agree terms directly with a host.'}\n  ];\n\n  \/* ---- plan cards ---- *\/\n  function renderPlans(){\n    document.getElementById('plan-grid').innerHTML = PLANS.map(function(p){\n      var price    = isAnnual ? p.annual : p.monthly;\n      var wasPrice = isAnnual ? p.monthly * 12 : null;\n      var period   = price === 0 ? '' : (isAnnual ? '\/ year' : '\/ month');\n      var url = p.id==='free' ? PLAN_URLS.free :\n                p.id==='featured' ? (isAnnual?PLAN_URLS.featured_annual:PLAN_URLS.featured_monthly) :\n                (isAnnual?PLAN_URLS.premium_annual:PLAN_URLS.premium_monthly);\n      var isCurrent = p.id === currentPlan;\n      var isHL = p.id === 'featured';\n      return '<div class=\"plan-card'+(isHL?' highlighted':'')+(isCurrent?' current':'')+'\">'+\n        (p.badge?'<div class=\"plan-badge'+(p.badgeStyle?' '+p.badgeStyle:'')+'\">'+p.badge+'<\/div>':'')+\n        '<div class=\"plan-name\">'+p.name+'<\/div>'+\n        '<div class=\"plan-tagline\">'+p.tagline+'<\/div>'+\n        '<div class=\"plan-price\">'+\n        (wasPrice?'<span class=\"was show\">'+wasPrice.toLocaleString()+' MAD<\/span>':'')+\n        '<b>'+(price===0?'Free':price.toLocaleString()+' MAD')+'<\/b>'+\n        '<\/div>'+\n        '<div class=\"plan-period\">'+(price===0?'Always free':period+(isAnnual?' \u2014 billed once':''))+'<\/div>'+\n        '<div class=\"plan-divider\"><\/div>'+\n        '<ul class=\"plan-features\">'+\n        p.features.map(function(f){\n          return '<li'+(f.ok?'':' class=\"dim\"')+'><span class=\"ic '+(f.ok?'ok':'na')+'\">'+(f.ok?'&#10003;':'&#10005;')+'<\/span>'+f.text+'<\/li>';\n        }).join('')+'<\/ul>'+\n        '<a class=\"btn '+(p.id==='free'?'':p.id==='featured'?'btn-solid':'btn-teal')+' btn-block\" href=\"'+url+'\">'+\n        (isCurrent?'Current plan':p.id==='free'?'Get started free &#10148;':'Subscribe now &#10148;')+'<\/a>'+\n        '<div class=\"current-label\">&#10003; Your current plan<\/div>'+\n        '<\/div>';\n    }).join('');\n  }\n\n  \/* ---- comparison table ---- *\/\n  function renderTable(){\n    var head = '<thead><tr>'+\n      '<th style=\"width:40%\">Feature<\/th>'+\n      '<th>Free<\/th>'+\n      '<th style=\"color:var(--gold-soft)\">Featured<\/th>'+\n      '<th>Premium<\/th>'+\n      '<\/tr><\/thead>';\n    var body = '<tbody>'+TABLE_ROWS.map(function(row){\n      if(row.cat) return '<tr class=\"cat-row\"><td colspan=\"4\">'+row.cat+'<\/td><\/tr>';\n      function cell(v){ return v==='&#10003;'?'<span class=\"check\">&#10003;<\/span>':v==='&#10005;'?'<span class=\"cross\">&#10005;<\/span>':v; }\n      return '<tr><td>'+row.feature+'<\/td>'+\n        '<td>'+cell(row.free)+'<\/td>'+\n        '<td class=\"highlight-col\">'+cell(row.featured)+'<\/td>'+\n        '<td>'+cell(row.premium)+'<\/td>'+\n        '<\/tr>';\n    }).join('')+'<\/tbody>';\n    document.getElementById('comp-table').innerHTML = head+body;\n  }\n\n  \/* ---- FAQ ---- *\/\n  function renderFaq(faqs){\n    var el = document.getElementById('faq-section');\n    el.innerHTML = '<h2>Frequently asked questions<\/h2>'+\n      faqs.map(function(f,i){\n        return '<div class=\"faq-item\" data-i=\"'+i+'\">'+\n          '<div class=\"faq-q\">'+f.q+'<span class=\"arrow\">&#9660;<\/span><\/div>'+\n          '<div class=\"faq-a\">'+f.a+'<\/div>'+\n          '<\/div>';\n      }).join('');\n    el.addEventListener('click', function(e){\n      var item = e.target.closest('.faq-item');\n      if(!item) return;\n      item.classList.toggle('open');\n    });\n  }\n\n  \/* ---- audience toggle ---- *\/\n  document.getElementById('audience-toggle').addEventListener('click', function(e){\n    var btn = e.target.closest('.aud-btn'); if(!btn) return;\n    audience = btn.getAttribute('data-aud');\n    document.querySelectorAll('.aud-btn').forEach(function(b){ b.classList.toggle('active', b===btn); });\n    var isOwner = audience==='owner';\n    document.getElementById('owner-section').style.display = isOwner?'':'none';\n    document.getElementById('client-section').classList.toggle('show', !isOwner);\n    document.getElementById('bottom-cta').style.display = isOwner?'':'none';\n    renderFaq(isOwner ? FAQS_OWNER : FAQS_CLIENT);\n  });\n\n  \/* ---- billing toggle ---- *\/\n  document.getElementById('billing-toggle').addEventListener('click', function(){\n    isAnnual = !isAnnual;\n    this.classList.toggle('on', isAnnual);\n    document.getElementById('lbl-monthly').classList.toggle('active', !isAnnual);\n    document.getElementById('lbl-annual').classList.toggle('active', isAnnual);\n    renderPlans();\n  });\n\n  \/* ---- try to load current plan ---- *\/\n  async function loadCurrentPlan(){\n    try{\n      var res = await fetch('\/wp-json\/mahall\/v1\/owner\/plan');\n      if(res.ok){ var d = await res.json(); currentPlan = d.plan || 'free'; }\n    }catch(e){}\n    renderPlans();\n  }\n\n  \/* ---- boot ---- *\/\n  renderPlans();\n  renderTable();\n  renderFaq(FAQS_OWNER);\n  loadCurrentPlan();\n\n})();\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>Mahall Log in List your venue Simple, transparent pricing The right plan for every venue Start free and upgrade when you&#8217;re ready to grow. No setup fees, no long-term contracts. I own a venue I&#8217;m planning an event Monthly Annual Save 2 months Compare plans in detail For event planners &#038; clients Finding and booking [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"folder":[],"class_list":["post-31","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/mahall.org\/index.php\/wp-json\/wp\/v2\/pages\/31","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mahall.org\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mahall.org\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mahall.org\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mahall.org\/index.php\/wp-json\/wp\/v2\/comments?post=31"}],"version-history":[{"count":2,"href":"https:\/\/mahall.org\/index.php\/wp-json\/wp\/v2\/pages\/31\/revisions"}],"predecessor-version":[{"id":33,"href":"https:\/\/mahall.org\/index.php\/wp-json\/wp\/v2\/pages\/31\/revisions\/33"}],"wp:attachment":[{"href":"https:\/\/mahall.org\/index.php\/wp-json\/wp\/v2\/media?parent=31"}],"wp:term":[{"taxonomy":"folder","embeddable":true,"href":"https:\/\/mahall.org\/index.php\/wp-json\/wp\/v2\/folder?post=31"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}