{"id":29836,"date":"2026-01-31T11:21:31","date_gmt":"2026-01-31T16:21:31","guid":{"rendered":"https:\/\/www.portablebar.com\/?page_id=29836"},"modified":"2026-02-09T16:01:34","modified_gmt":"2026-02-09T21:01:34","slug":"mobile-bartending-laws","status":"publish","type":"page","link":"https:\/\/www.portablebar.com\/ar\/mobile-bartending-laws\/","title":{"rendered":"\u0642\u0648\u0627\u0646\u064a\u0646 \u0627\u0644\u0633\u0642\u0627\u064a\u0629 \u0627\u0644\u0645\u062a\u0646\u0642\u0644\u0629 \u062d\u0633\u0628 \u0627\u0644\u0648\u0644\u0627\u064a\u0629: \u062f\u0644\u064a\u0644 \u0627\u0644\u062a\u0631\u062e\u064a\u0635 \u0627\u0644\u0646\u0647\u0627\u0626\u064a"},"content":{"rendered":"<p><!DOCTYPE html><br \/>\n<html lang=\"en\"><br \/>\n<head><br \/>\n    <meta charset=\"UTF-8\"><br \/>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"><br \/>\n    <title>\u0642\u0648\u0627\u0646\u064a\u0646 \u0627\u0644\u0633\u0642\u0627\u064a\u0629 \u0627\u0644\u0645\u062a\u0646\u0642\u0644\u0629 \u062d\u0633\u0628 \u0627\u0644\u0648\u0644\u0627\u064a\u0629 | PortableBar.com<\/title><br \/>\n    <script src=\"https:\/\/cdn.tailwindcss.com\"><\/script><br \/>\n    <script>\n        tailwind.config = {\n            important: true,\n        }\n    <\/script><\/p>\n<style>\n        \/* Typography Overrides *\/\n        .pb-hub h2 { margin-top: 2rem; margin-bottom: 1rem; line-height: 1.2; color: #1e293b; }\n        .pb-hub p { margin-bottom: 1.2rem; }\n        .pb-hub a { text-decoration: none; transition: all 0.2s; }<\/p>\n<p>        \/* Map Container *\/\n        #map-container {\n            background: #f8fafc;\n            border-radius: 12px;\n            padding: 20px;\n            border: 2px solid #e2e8f0;\n        }<\/p>\n<p>        \/* State Styling *\/\n        .state {\n            stroke: #ffffff;\n            stroke-width: 1.5;\n            stroke-linejoin: round;\n            cursor: pointer;\n            transition: all 0.2s ease;\n        }<\/p>\n<p>        .state.active {\n            fill: #3b82f6;\n        }<\/p>\n<p>        .state.active:hover {\n            fill: #2563eb;\n            stroke-width: 2.5;\n            filter: drop-shadow(0 0 8px rgba(59, 130, 246, 0.6));\n        }<\/p>\n<p>        .state.inactive {\n            fill: #cbd5e1;\n            cursor: not-allowed;\n        }<\/p>\n<p>        .state.inactive:hover {\n            fill: #94a3b8;\n        }<\/p>\n<p>        \/* State Labels *\/\n        .state-label {\n            font-size: 10px;\n            font-weight: 700;\n            fill: #1f2937;\n            pointer-events: none;\n            text-anchor: middle;\n            dominant-baseline: middle;\n        }<\/p>\n<p>        \/* Tooltip *\/\n        .map-tooltip {\n            position: absolute;\n            background: white;\n            border: 3px solid #3b82f6;\n            border-radius: 10px;\n            padding: 14px 18px;\n            box-shadow: 0 6px 20px rgba(0,0,0,0.15);\n            pointer-events: none;\n            opacity: 0;\n            transition: opacity 0.2s;\n            z-index: 1000;\n            min-width: 220px;\n        }<\/p>\n<p>        .map-tooltip.show {\n            opacity: 1;\n        }<\/p>\n<p>        .map-tooltip h3 {\n            font-size: 16px;\n            font-weight: 700;\n            margin-bottom: 8px;\n            color: #1e293b;\n            border-bottom: 2px solid #3b82f6;\n            padding-bottom: 4px;\n        }<\/p>\n<p>        .map-tooltip .available {\n            color: #3b82f6;\n            font-weight: 600;\n            font-size: 13px;\n        }<\/p>\n<p>        .map-tooltip .coming-soon {\n            color: #94a3b8;\n            font-weight: 600;\n            font-size: 13px;\n        }<\/p>\n<p>        \/* State Card Styling *\/\n        .state-card { \n            transition: all 0.2s; \n        }<\/p>\n<p>        .state-card:hover { \n            transform: translateY(-2px); \n            box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1); \n            border-color: #3b82f6; \n        }<\/p>\n<p>        .state-card.inactive { \n            opacity: 0.6; \n            cursor: default; \n        }<\/p>\n<p>        .state-card.inactive:hover { \n            transform: none; \n            box-shadow: none; \n            border-color: #e2e8f0; \n        }<\/p>\n<p>        \/* Mobile hide\/show *\/\n        @media (max-width: 1023px) {\n            #desktop-map-section {\n                display: none !important;\n            }\n            #mobile-list-section {\n                display: block !important;\n            }\n        }<\/p>\n<p>        @media (min-width: 1024px) {\n            #desktop-map-section {\n                display: block !important;\n            }\n            #mobile-list-section {\n                display: none !important;\n            }\n        }<\/p>\n<p>        \/* Search Box *\/\n        .search-box {\n            position: relative;\n        }<\/p>\n<p>        .search-icon {\n            position: absolute;\n            left: 12px;\n            top: 50%;\n            transform: translateY(-50%);\n            color: #94a3b8;\n        }\n    <\/style>\n<p><\/head><br \/>\n<body class=\"bg-white\"><\/p>\n<p>    <script>\n            const STATE_CONFIG = {\n            'alabama': { name: 'Alabama', abbr: 'AL', active: true},\n            'alaska': { name: 'Alaska', abbr: 'AK', active: false },\n            'arizona': { name: 'Arizona', abbr: 'AZ', active: true },\n            'arkansas': { name: 'Arkansas', abbr: 'AR', active: false },\n            'california': { name: 'California', abbr: 'CA', active: true },\n            'colorado': { name: 'Colorado', abbr: 'CO', active: true },\n            'connecticut': { name: 'Connecticut', abbr: 'CT', active: true },\n            'delaware': { name: 'Delaware', abbr: 'DE', active: false },\n            'florida': { name: 'Florida', abbr: 'FL', active: true },\n            'georgia': { name: 'Georgia', abbr: 'GA', active: true },\n            'hawaii': { name: 'Hawaii', abbr: 'HI', active: false },\n            'idaho': { name: 'Idaho', abbr: 'ID', active: false },\n            'illinois': { name: 'Illinois', abbr: 'IL', active: true },\n            'indiana': { name: 'Indiana', abbr: 'IN', active: true },\n            'iowa': { name: 'Iowa', abbr: 'IA', active: false },\n            'kansas': { name: 'Kansas', abbr: 'KS', active: false },\n            'kentucky': { name: 'Kentucky', abbr: 'KY', active: true },\n            'louisiana': { name: 'Louisiana', abbr: 'LA', active: true },\n            'maine': { name: 'Maine', abbr: 'ME', active: false },\n            'maryland': { name: 'Maryland', abbr: 'MD', active: true },\n            'massachusetts': { name: 'Massachusetts', abbr: 'MA', active: true },\n            'michigan': { name: 'Michigan', abbr: 'MI', active: true },\n            'minnesota': { name: 'Minnesota', abbr: 'MN', active: false },\n            'mississippi': { name: 'Mississippi', abbr: 'MS', active: true },\n            'missouri': { name: 'Missouri', abbr: 'MO', active: false },\n            'montana': { name: 'Montana', abbr: 'MT', active: false },\n            'nebraska': { name: 'Nebraska', abbr: 'NE', active: false },\n            'nevada': { name: 'Nevada', abbr: 'NV', active: true },\n            'new-hampshire': { name: 'New Hampshire', abbr: 'NH', active: false },\n            'new-jersey': { name: 'New Jersey', abbr: 'NJ', active: true },\n            'new-mexico': { name: 'New Mexico', abbr: 'NM', active: false },\n            'new-york': { name: 'New York', abbr: 'NY', active: true },\n            'north-carolina': { name: 'North Carolina', abbr: 'NC', active: true },\n            'north-dakota': { name: 'North Dakota', abbr: 'ND', active: false },\n            'ohio': { name: 'Ohio', abbr: 'OH', active: true },\n            'oklahoma': { name: 'Oklahoma', abbr: 'OK', active: false },\n            'oregon': { name: 'Oregon', abbr: 'OR', active: true },\n            'pennsylvania': { name: 'Pennsylvania', abbr: 'PA', active: true },\n            'rhode-island': { name: 'Rhode Island', abbr: 'RI', active: false },\n            'south-carolina': { name: 'South Carolina', abbr: 'SC', active: true },\n            'south-dakota': { name: 'South Dakota', abbr: 'SD', active: false },\n            'tennessee': { name: 'Tennessee', abbr: 'TN', active: true },\n            'texas': { name: 'Texas', abbr: 'TX', active: true },\n            'utah': { name: 'Utah', abbr: 'UT', active: false },\n            'vermont': { name: 'Vermont', abbr: 'VT', active: true },\n            'virginia': { name: 'Virginia', abbr: 'VA', active: true },\n            'washington': { name: 'Washington', abbr: 'WA', active: true },\n            'west-virginia': { name: 'West Virginia', abbr: 'WV', active: true },\n            'wisconsin': { name: 'Wisconsin', abbr: 'WI', active: false },\n            'wyoming': { name: 'Wyoming', abbr: 'WY', active: false }\n        };<\/p>\n<p>        \/\/ Create reverse lookup by abbreviation\n        const stateByAbbr = {};\n        Object.entries(STATE_CONFIG).forEach(([slug, data]) => {\n            stateByAbbr[data.abbr] = { ...data, slug };\n        });\n    <\/script><\/p>\n<div class=\"pb-hub w-full bg-white p-6 md:p-12 text-slate-800 font-sans leading-relaxed shadow-sm my-8\">\n<p>        <!-- Breadcrumb --><\/p>\n<nav class=\"text-sm text-slate-500 mb-6 flex items-center\">\n            <a class=\"hover:text-blue-600 transition-colors\" href=\"\/ar\/\">\u0627\u0644\u0635\u0641\u062d\u0629 \u0627\u0644\u0631\u0626\u064a\u0633\u064a\u0629<\/a><br \/>\n            <span class=\"mx-2 text-slate-300\">\/<\/span><br \/>\n            <span class=\"text-slate-800 font-semibold\">\u0642\u0648\u0627\u0646\u064a\u0646 \u0627\u0644\u0633\u0642\u0627\u064a\u0629 \u0627\u0644\u0645\u062a\u0646\u0642\u0644\u0629<\/span><br \/>\n        <\/nav>\n<p>        <!-- Header --><\/p>\n<header class=\"border-b-4 border-blue-900 pb-8 mb-10 text-center max-w-4xl mx-auto\">\n<p class=\"text-sm font-bold text-blue-600 uppercase tracking-widest mb-2\">\u0642\u0627\u0639\u062f\u0629 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u062a\u0646\u0638\u064a\u0645\u064a\u0629 \u0627\u0644\u0648\u0637\u0646\u064a\u0629<\/p>\n<h1 class=\"text-4xl md:text-5xl font-extrabold text-slate-900 mb-6\">\u0642\u0648\u0627\u0646\u064a\u0646 \u0627\u0644\u0633\u0642\u0627\u064a\u0629 \u0627\u0644\u0645\u062a\u0646\u0642\u0644\u0629 \u062d\u0633\u0628 \u0627\u0644\u0648\u0644\u0627\u064a\u0629<\/h1>\n<p class=\"text-xl text-slate-600\">\u0642\u0648\u0627\u0646\u064a\u0646 \u0627\u0644\u062e\u0645\u0648\u0631 \u0645\u062d\u0644\u064a\u0629. \u0645\u0627 \u064a\u0635\u0644\u062d \u0641\u064a \u062a\u0643\u0633\u0627\u0633 \u0642\u062f \u064a\u0643\u0648\u0646 \u063a\u064a\u0631 \u0642\u0627\u0646\u0648\u0646\u064a \u0641\u064a \u0646\u064a\u0648\u064a\u0648\u0631\u0643. \u0646\u062d\u0646 \u0646\u0642\u0648\u0645 \u0628\u062a\u062c\u0645\u064a\u0639 \u0627\u0644\u062f\u0644\u064a\u0644 \u0627\u0644\u0646\u0647\u0627\u0626\u064a \u0644\u0645\u0633\u0627\u0639\u062f\u062a\u0643 \u0639\u0644\u0649 \u0627\u0644\u0639\u0645\u0644 \u0628\u0634\u0643\u0644 \u0642\u0627\u0646\u0648\u0646\u064a\u060c \u0633\u0648\u0627\u0621 \u0643\u0646\u062a <strong>\u0627\u0644\u0627\u0633\u062a\u0626\u062c\u0627\u0631 \u0627\u0644\u062c\u0627\u0641<\/strong> \u062e\u062f\u0645\u0629 \u0623\u0648 <strong>\u0627\u0644\u0627\u0633\u062a\u0626\u062c\u0627\u0631 \u0627\u0644\u0631\u0637\u0628<\/strong> \u0645\u062a\u0639\u0647\u062f \u062a\u0642\u062f\u064a\u0645 \u0627\u0644\u0637\u0639\u0627\u0645.<\/p>\n<\/header>\n<p>        <!-- Dry vs Wet Explainer --><\/p>\n<section class=\"grid md:grid-cols-2 gap-8 mb-16 max-w-5xl mx-auto\">\n<div class=\"bg-slate-50 p-6 rounded-lg border border-slate-200\">\n<h3 class=\"text-xl font-bold text-green-700 mb-2\">\u0645\u0627 \u0647\u0648 \u0627\u0644\u062a\u0623\u062c\u064a\u0631 \u0627\u0644\u062c\u0627\u0641\u061f<\/h3>\n<p class=\"text-sm text-slate-600 mb-0\">\u0623\u0646\u062a \u062a\u0648\u0641\u0631 \u0627\u0644\u0639\u0645\u0627\u0644\u0629 (\u0627\u0644\u0633\u0642\u0627\u0629) \u0648\u0627\u0644\u0645\u0639\u062f\u0627\u062a (\u0627\u0644\u0642\u0636\u0628\u0627\u0646 \u0627\u0644\u0645\u062d\u0645\u0648\u0644\u0629 \u0648\u0627\u0644\u0623\u062f\u0648\u0627\u062a). \u0648 <strong>\u0627\u0644\u0639\u0645\u064a\u0644<\/strong> \u064a\u0634\u062a\u0631\u064a \u0627\u0644\u0643\u062d\u0648\u0644. \u0641\u064a \u0645\u0639\u0638\u0645 \u0627\u0644\u0648\u0644\u0627\u064a\u0627\u062a\u060c \u0644\u0627 \u064a\u062a\u0637\u0644\u0628 \u0630\u0644\u0643 \u0627\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 \u062a\u0631\u062e\u064a\u0635 \u0644\u0628\u064a\u0639 \u0627\u0644\u0643\u062d\u0648\u0644\u060c \u0648\u0644\u0643\u0646\u0647 \u064a\u062a\u0637\u0644\u0628 \u0627\u0644\u0627\u0644\u062a\u0632\u0627\u0645 \u0627\u0644\u0635\u0627\u0631\u0645 \u0628\u0642\u0648\u0627\u0639\u062f \u201c\u0639\u062f\u0645 \u0627\u0644\u0628\u064a\u0639\u201d.<\/p>\n<\/p><\/div>\n<div class=\"bg-slate-50 p-6 rounded-lg border border-slate-200\">\n<h3 class=\"text-xl font-bold text-red-700 mb-2\">\u0645\u0627 \u0647\u0648 \u0627\u0644\u062a\u0623\u062c\u064a\u0631 \u0627\u0644\u0645\u0628\u0644\u0644\u061f<\/h3>\n<p class=\"text-sm text-slate-600 mb-0\">\u0623\u0646\u062a \u062a\u0648\u0641\u0631 \u0627\u0644\u0643\u062d\u0648\u0644 \u0648\u0627\u0644\u0639\u0645\u0627\u0644\u0629 \u0648\u0627\u0644\u0645\u0633\u0624\u0648\u0644\u064a\u0629. \u064a\u062a\u0637\u0644\u0628 \u0647\u0630\u0627 \u062f\u0627\u0626\u0645\u064b\u0627 \u062a\u0642\u0631\u064a\u0628\u064b\u0627 \u0627\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 <strong>\u062a\u0631\u062e\u064a\u0635 \u0627\u0644\u0645\u0634\u0631\u0648\u0628\u0627\u062a \u0627\u0644\u0643\u062d\u0648\u0644\u064a\u0629<\/strong> \u0623\u0648 <strong>\u062a\u0635\u0631\u064a\u062d \u062a\u0642\u062f\u064a\u0645 \u0627\u0644\u0637\u0639\u0627\u0645<\/strong>, \u0628\u0627\u0644\u0625\u0636\u0627\u0641\u0629 \u0625\u0644\u0649 \u062a\u063a\u0637\u064a\u0629 \u062a\u0623\u0645\u064a\u0646\u064a\u0629 \u0643\u0628\u064a\u0631\u0629.<\/p>\n<\/p><\/div>\n<\/section>\n<p>        <!-- Desktop: Interactive Map --><\/p>\n<section id=\"desktop-map-section\" class=\"mb-16\" style=\"display: none;\">\n<h2 class=\"text-3xl font-bold text-slate-900 mb-8 text-center\">\u0627\u062e\u062a\u0631 \u0648\u0644\u0627\u064a\u062a\u0643<\/h2>\n<div class=\"max-w-6xl mx-auto\">\n<div id=\"map-container\">\n                    <svg id=\"us-map\" viewbox=\"0 0 960 600\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" preserveaspectratio=\"xMidYMid meet\">\n                        <!-- Map loaded by JavaScript -->\n                    <\/svg><\/p>\n<div id=\"map-tooltip\" class=\"map-tooltip\"><\/div>\n<\/p><\/div>\n<p class=\"text-center text-slate-400 text-sm mt-6\">\n                    <span class=\"inline-block mr-4\"><span class=\"inline-block w-3 h-3 bg-blue-500 rounded-sm mr-1\"><\/span> \u0645\u062a\u0648\u0641\u0631 \u0627\u0644\u0622\u0646<\/span><br \/>\n                    <span class=\"inline-block\"><span class=\"inline-block w-3 h-3 bg-slate-300 rounded-sm mr-1\"><\/span> \u0642\u0631\u064a\u0628\u0627\u064b<\/span>\n                <\/p>\n<p class=\"text-center text-slate-400 text-sm mt-2\"><em><strong><span id=\"active-count-desktop\">0<\/span> \u0645\u0646 50 \u0648\u0644\u0627\u064a\u0629<\/strong> \u0645\u062a\u0627\u062d\u0629. \u0646\u0642\u0648\u0645 \u0628\u062a\u062d\u062f\u064a\u062b \u0642\u0627\u0639\u062f\u0629 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0647\u0630\u0647 \u0623\u0633\u0628\u0648\u0639\u064a\u0627\u064b.<\/em><\/p>\n<\/p><\/div>\n<\/section>\n<p>        <!-- Mobile: State Cards --><\/p>\n<section id=\"mobile-list-section\" class=\"mb-16\" style=\"display: none;\">\n<h2 class=\"text-3xl font-bold text-slate-900 mb-8 text-center\">\u0627\u062e\u062a\u0631 \u0648\u0644\u0627\u064a\u062a\u0643<\/h2>\n<p>            <!-- Search Box --><\/p>\n<div class=\"search-box mb-6 max-w-md mx-auto\">\n                <svg class=\"search-icon w-5 h-5\" fill=\"none\" stroke=\"currentColor\" viewbox=\"0 0 24 24\">\n                    <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\"><\/path>\n                <\/svg><br \/>\n                <input \n                    type=\"text\" \n                    id=\"state-search\" \n                    placeholder=\"\u0627\u0628\u062d\u062b \u0639\u0646 \u0648\u0644\u0627\u064a\u062a\u0643...\" \n                    class=\"w-full pl-10 pr-4 py-3 border-2 border-slate-200 rounded-lg focus:border-blue-600 focus:outline-none\"\n                \/>\n            <\/div>\n<p>            <!-- State Cards Grid --><\/p>\n<div id=\"state-cards-grid\" class=\"grid grid-cols-2 md:grid-cols-4 lg:grid-cols-5 gap-4\">\n                <!-- Generated by JavaScript -->\n            <\/div>\n<p class=\"text-center text-slate-400 text-sm mt-8\"><em>\u0623\u0644\u0627 \u062a\u0631\u0649 \u0648\u0644\u0627\u064a\u062a\u0643\u061f \u0646\u062d\u0646 \u0646\u0642\u0648\u0645 \u0628\u062a\u062d\u062f\u064a\u062b \u0642\u0627\u0639\u062f\u0629 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0647\u0630\u0647 \u0623\u0633\u0628\u0648\u0639\u064a\u0627\u064b. \u062a\u062d\u0642\u0642 \u0645\u0631\u0629 \u0623\u062e\u0631\u0649 \u0642\u0631\u064a\u0628\u0627\u064b.<\/em><\/p>\n<\/section>\n<p>        <!-- CTA Section --><\/p>\n<section class=\"bg-slate-900 text-white p-8 rounded-xl text-center\">\n<h2 class=\"text-2xl font-bold text-white mb-4 mt-0\">Regulations Are Complicated. Your Bar Shouldn&#8217;t Be.<\/h2>\n<p class=\"text-slate-300 max-w-2xl mx-auto mb-8\">You&#8217;ve got enough to figure out with permits and insurance. Get equipment that shows up, plugs in, and makes you look like you&#8217;ve been doing this for years.<\/p>\n<p>            <a class=\"inline-block bg-blue-600 hover:bg-blue-500 text-white font-bold py-3 px-8 rounded-full transition-all\" href=\"\/ar\/\"><br \/>\n                Get the Bar That Sells Itself \u2192<br \/>\n            <\/a><br \/>\n        <\/section>\n<\/p><\/div>\n<p>    <!-- Load D3 and TopoJSON --><br \/>\n    <script src=\"https:\/\/d3js.org\/d3.v7.min.js\"><\/script><br \/>\n    <script src=\"https:\/\/d3js.org\/topojson.v3.min.js\"><\/script><\/p>\n<p>    <script>\n        \/\/ Initialize on page load\n        document.addEventListener('DOMContentLoaded', () => {\n            loadUSMap();\n            generateStateCards();\n            setupSearch();\n            updateActiveCount();\n        });<\/p>\n<p>        \/\/ Load US map with D3 and TopoJSON\n        async function loadUSMap() {\n            try {\n                const us = await d3.json('https:\/\/cdn.jsdelivr.net\/npm\/us-atlas@3\/states-10m.json');<\/p>\n<p>                const svg = d3.select('#us-map');\n                const width = 960;\n                const height = 600;<\/p>\n<p>                const projection = d3.geoAlbersUsa()\n                    .scale(1280)\n                    .translate([width \/ 2, height \/ 2]);<\/p>\n<p>                const path = d3.geoPath().projection(projection);\n                const states = topojson.feature(us, us.objects.states);<\/p>\n<p>                const stateIdToAbbr = {\n                    '01': 'AL', '02': 'AK', '04': 'AZ', '05': 'AR', '06': 'CA', '08': 'CO', '09': 'CT', '10': 'DE',\n                    '12': 'FL', '13': 'GA', '15': 'HI', '16': 'ID', '17': 'IL', '18': 'IN', '19': 'IA', '20': 'KS',\n                    '21': 'KY', '22': 'LA', '23': 'ME', '24': 'MD', '25': 'MA', '26': 'MI', '27': 'MN', '28': 'MS',\n                    '29': 'MO', '30': 'MT', '31': 'NE', '32': 'NV', '33': 'NH', '34': 'NJ', '35': 'NM', '36': 'NY',\n                    '37': 'NC', '38': 'ND', '39': 'OH', '40': 'OK', '41': 'OR', '42': 'PA', '44': 'RI', '45': 'SC',\n                    '46': 'SD', '47': 'TN', '48': 'TX', '49': 'UT', '50': 'VT', '51': 'VA', '53': 'WA', '54': 'WV',\n                    '55': 'WI', '56': 'WY'\n                };<\/p>\n<p>                svg.selectAll('path')\n                    .data(states.features)\n                    .enter()\n                    .append('path')\n                    .attr('d', path)\n                    .attr('class', d => {\n                        const abbr = stateIdToAbbr[d.id];\n                        const stateData = stateByAbbr[abbr];\n                        return `state ${stateData && stateData.active ? 'active' : 'inactive'}`;\n                    })\n                    .attr('data-state-id', d => d.id)\n                    .attr('data-abbr', d => stateIdToAbbr[d.id])\n                    .on('click', function(event, d) {\n                        const abbr = stateIdToAbbr[d.id];\n                        const stateData = stateByAbbr[abbr];\n                        if (stateData && stateData.active) {\n                            window.location.href = `\/mobile-bartending-laws\/${stateData.slug}\/`;\n                        }\n                    })\n                    .on('mouseenter', function(event, d) {\n                        const abbr = stateIdToAbbr[d.id];\n                        const stateData = stateByAbbr[abbr];\n                        if (stateData) {\n                            showTooltip(event, stateData);\n                        }\n                    })\n                    .on('mousemove', moveTooltip)\n                    .on('mouseleave', hideTooltip);<\/p>\n<p>                svg.selectAll('text')\n                    .data(states.features)\n                    .enter()\n                    .append('text')\n                    .attr('class', 'state-label')\n                    .attr('transform', d => `translate(${path.centroid(d)})`)\n                    .text(d => stateIdToAbbr[d.id]);<\/p>\n<p>            } catch (error) {\n                console.error('Error loading map:', error);\n            }\n        }<\/p>\n<p>        \/\/ Show tooltip\n        function showTooltip(e, data) {\n            const tooltip = document.getElementById('map-tooltip');\n            let html = `<\/p>\n<h3>${data.name}<\/h3>\n<p>`;<\/p>\n<p>            if (data.active) {\n                html += `<\/p>\n<p class=\"available\">Guide Available \u2192<\/p>\n<p>`;\n            } else {\n                html += `<\/p>\n<p class=\"coming-soon\">Coming Soon<\/p>\n<p>`;\n            }<\/p>\n<p>            tooltip.innerHTML = html;\n            tooltip.classList.add('show');\n        }<\/p>\n<p>        function moveTooltip(e) {\n            const tooltip = document.getElementById('map-tooltip');\n            tooltip.style.left = (e.pageX + 15) + 'px';\n            tooltip.style.top = (e.pageY + 15) + 'px';\n        }<\/p>\n<p>        function hideTooltip() {\n            document.getElementById('map-tooltip').classList.remove('show');\n        }<\/p>\n<p>        \/\/ Generate state cards for mobile\n        function generateStateCards() {\n            const container = document.getElementById('state-cards-grid');\n            const states = Object.entries(STATE_CONFIG).sort((a, b) => a[1].name.localeCompare(b[1].name));<\/p>\n<p>            container.innerHTML = states.map(([slug, data]) => {\n                if (data.active) {\n                    return `\n                        <a class=\"state-card block bg-blue-50 border-2 border-blue-200 p-4 rounded-lg text-center group\" href=\"\/mobile-bartending-laws\/${slug}\/\">\n                            <span class=\"block font-bold text-blue-900 text-lg group-hover:text-blue-700\">${data.name}<\/span>\n                            <span class=\"text-xs font-bold text-blue-600 uppercase tracking-wide\">View Guide \u2192<\/span>\n                        <\/a>\n                    `;\n                } else {\n                    return `<\/p>\n<div class=\"state-card inactive bg-slate-50 border border-slate-200 p-4 rounded-lg text-center\">\n                            <span class=\"block font-bold text-slate-400\">${data.name}<\/span>\n                            <span class=\"text-xs text-slate-400\">Coming Soon<\/span>\n                        <\/div>\n<p>                    `;\n                }\n            }).join('');\n        }<\/p>\n<p>        \/\/ Search functionality\n        function setupSearch() {\n            const searchInput = document.getElementById('state-search');\n            searchInput.addEventListener('input', (e) => {\n                const term = e.target.value.toLowerCase();\n                document.querySelectorAll('.state-card').forEach(card => {\n                    const name = card.querySelector('span').textContent.toLowerCase();\n                    card.style.display = name.includes(term) ? 'block' : 'none';\n                });\n            });\n        }<\/p>\n<p>        \/\/ Update active count\n        function updateActiveCount() {\n            const count = Object.values(STATE_CONFIG).filter(s => s.active).length;\n            const desktopCounter = document.getElementById('active-count-desktop');\n            if (desktopCounter) {\n                desktopCounter.textContent = count;\n            }\n        }\n    <\/script><\/p>\n<p><\/body><br \/>\n<\/html><\/p>","protected":false},"excerpt":{"rendered":"<p>\u0642\u0648\u0627\u0646\u064a\u0646 \u0627\u0644\u0633\u0642\u0627\u064a\u0629 \u0627\u0644\u0645\u062a\u0646\u0642\u0644\u0629 \u062d\u0633\u0628 \u0627\u0644\u0648\u0644\u0627\u064a\u0629 | PortableBar.com \u0627\u0644\u0635\u0641\u062d\u0629 \u0627\u0644\u0631\u0626\u064a\u0633\u064a\u0629 \/ \u0642\u0648\u0627\u0646\u064a\u0646 \u0627\u0644\u0633\u0642\u0627\u064a\u0629 \u0627\u0644\u0645\u062a\u0646\u0642\u0644\u0629 \u0642\u0627\u0639\u062f\u0629 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u062a\u0646\u0638\u064a\u0645\u064a\u0629 \u0627\u0644\u0648\u0637\u0646\u064a\u0629 \u0642\u0648\u0627\u0646\u064a\u0646 \u0627\u0644\u0633\u0642\u0627\u064a\u0629 \u0627\u0644\u0645\u062a\u0646\u0642\u0644\u0629 \u062d\u0633\u0628 \u0627\u0644\u0648\u0644\u0627\u064a\u0629 \u0642\u0648\u0627\u0646\u064a\u0646 \u0627\u0644\u062e\u0645\u0648\u0631 \u0645\u062d\u0644\u064a\u0629. \u0645\u0627 \u064a\u0635\u0644\u062d \u0641\u064a \u062a\u0643\u0633\u0627\u0633 \u0642\u062f \u064a\u0643\u0648\u0646 \u063a\u064a\u0631 \u0642\u0627\u0646\u0648\u0646\u064a \u0641\u064a \u0646\u064a\u0648\u064a\u0648\u0631\u0643. \u0646\u062d\u0646 \u0646\u0642\u0648\u0645 \u0628\u062a\u062c\u0645\u064a\u0639 \u0627\u0644\u062f\u0644\u064a\u0644 \u0627\u0644\u0646\u0647\u0627\u0626\u064a \u0644\u0645\u0633\u0627\u0639\u062f\u062a\u0643 \u0639\u0644\u0649 \u0627\u0644\u0639\u0645\u0644 \u0628\u0634\u0643\u0644 \u0642\u0627\u0646\u0648\u0646\u064a\u060c \u0633\u0648\u0627\u0621 \u0643\u0646\u062a \u062a\u0639\u0645\u0644 \u0641\u064a \u062e\u062f\u0645\u0629 \u0627\u0644\u062a\u0623\u062c\u064a\u0631 \u0627\u0644\u062c\u0627\u0641 \u0623\u0648 \u0627\u0644\u0631\u0637\u0628<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-tailwind-canvas.php","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-29836","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Mobile Bartending Laws by State: The Ultimate Licensing Guide | PortableBar.com<\/title>\n<meta name=\"description\" content=\"Starting a mobile bar? Don&#039;t guess on permits. Browse our comprehensive state-by-state guide to liquor laws, licensing requirements, and Dry Hire vs. Wet Hire rules.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.portablebar.com\/ar\/mobile-bartending-laws\/\" \/>\n<meta property=\"og:locale\" content=\"ar_AR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Mobile Bartending Laws by State: The Ultimate Licensing Guide | PortableBar.com\" \/>\n<meta property=\"og:description\" content=\"Starting a mobile bar? Don&#039;t guess on permits. Browse our comprehensive state-by-state guide to liquor laws, licensing requirements, and Dry Hire vs. Wet Hire rules.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.portablebar.com\/ar\/mobile-bartending-laws\/\" \/>\n<meta property=\"og:site_name\" content=\"Portable Bars by Customized Designs\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-09T21:01:34+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u0648\u0642\u062a \u0627\u0644\u0642\u0631\u0627\u0621\u0629 \u0627\u0644\u0645\u064f\u0642\u062f\u0651\u0631\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.portablebar.com\\\/ar\\\/mobile-bartending-laws\\\/\",\"url\":\"https:\\\/\\\/www.portablebar.com\\\/ar\\\/mobile-bartending-laws\\\/\",\"name\":\"Mobile Bartending Laws by State: The Ultimate Licensing Guide | PortableBar.com\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.portablebar.com\\\/ar\\\/#website\"},\"datePublished\":\"2026-01-31T16:21:31+00:00\",\"dateModified\":\"2026-02-09T21:01:34+00:00\",\"description\":\"Starting a mobile bar? Don't guess on permits. Browse our comprehensive state-by-state guide to liquor laws, licensing requirements, and Dry Hire vs. Wet Hire rules.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.portablebar.com\\\/ar\\\/mobile-bartending-laws\\\/#breadcrumb\"},\"inLanguage\":\"ar\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.portablebar.com\\\/ar\\\/mobile-bartending-laws\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.portablebar.com\\\/ar\\\/mobile-bartending-laws\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.portablebar.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mobile Bartending Laws by State: The Ultimate Licensing Guide\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.portablebar.com\\\/ar\\\/#website\",\"url\":\"https:\\\/\\\/www.portablebar.com\\\/ar\\\/\",\"name\":\"Portable Bars by Customized Designs\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.portablebar.com\\\/ar\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ar\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u0642\u0648\u0627\u0646\u064a\u0646 \u0627\u0644\u0633\u0642\u0627\u064a\u0629 \u0627\u0644\u0645\u062a\u0646\u0642\u0644\u0629 \u062d\u0633\u0628 \u0627\u0644\u0648\u0644\u0627\u064a\u0629: \u062f\u0644\u064a\u0644 \u0627\u0644\u062a\u0631\u062e\u064a\u0635 \u0627\u0644\u0646\u0647\u0627\u0626\u064a | PortableBar.com","description":"\u0647\u0644 \u062a\u0631\u064a\u062f \u0625\u0646\u0634\u0627\u0621 \u062d\u0627\u0646\u0629 \u0645\u062a\u0646\u0642\u0644\u0629\u061f \u0644\u0627 \u062a\u062e\u0645\u0646 \u0628\u0634\u0623\u0646 \u0627\u0644\u062a\u0635\u0627\u0631\u064a\u062d. \u062a\u0635\u0641\u062d \u062f\u0644\u064a\u0644\u0646\u0627 \u0627\u0644\u0634\u0627\u0645\u0644 \u0644\u0643\u0644 \u0648\u0644\u0627\u064a\u0629 \u0639\u0644\u0649 \u062d\u062f\u0629 \u0644\u0642\u0648\u0627\u0646\u064a\u0646 \u0627\u0644\u0645\u0634\u0631\u0648\u0628\u0627\u062a \u0627\u0644\u0643\u062d\u0648\u0644\u064a\u0629 \u0648\u0645\u062a\u0637\u0644\u0628\u0627\u062a \u0627\u0644\u062a\u0631\u062e\u064a\u0635 \u0648\u0642\u0648\u0627\u0639\u062f \u0627\u0644\u062a\u0623\u062c\u064a\u0631 \u0627\u0644\u062c\u0627\u0641 \u0645\u0642\u0627\u0628\u0644 \u0627\u0644\u062a\u0623\u062c\u064a\u0631 \u0627\u0644\u0631\u0637\u0628.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.portablebar.com\/ar\/mobile-bartending-laws\/","og_locale":"ar_AR","og_type":"article","og_title":"Mobile Bartending Laws by State: The Ultimate Licensing Guide | PortableBar.com","og_description":"Starting a mobile bar? Don't guess on permits. Browse our comprehensive state-by-state guide to liquor laws, licensing requirements, and Dry Hire vs. Wet Hire rules.","og_url":"https:\/\/www.portablebar.com\/ar\/mobile-bartending-laws\/","og_site_name":"Portable Bars by Customized Designs","article_modified_time":"2026-02-09T21:01:34+00:00","twitter_card":"summary_large_image","twitter_misc":{"\u0648\u0642\u062a \u0627\u0644\u0642\u0631\u0627\u0621\u0629 \u0627\u0644\u0645\u064f\u0642\u062f\u0651\u0631":"\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.portablebar.com\/ar\/mobile-bartending-laws\/","url":"https:\/\/www.portablebar.com\/ar\/mobile-bartending-laws\/","name":"\u0642\u0648\u0627\u0646\u064a\u0646 \u0627\u0644\u0633\u0642\u0627\u064a\u0629 \u0627\u0644\u0645\u062a\u0646\u0642\u0644\u0629 \u062d\u0633\u0628 \u0627\u0644\u0648\u0644\u0627\u064a\u0629: \u062f\u0644\u064a\u0644 \u0627\u0644\u062a\u0631\u062e\u064a\u0635 \u0627\u0644\u0646\u0647\u0627\u0626\u064a | PortableBar.com","isPartOf":{"@id":"https:\/\/www.portablebar.com\/ar\/#website"},"datePublished":"2026-01-31T16:21:31+00:00","dateModified":"2026-02-09T21:01:34+00:00","description":"\u0647\u0644 \u062a\u0631\u064a\u062f \u0625\u0646\u0634\u0627\u0621 \u062d\u0627\u0646\u0629 \u0645\u062a\u0646\u0642\u0644\u0629\u061f \u0644\u0627 \u062a\u062e\u0645\u0646 \u0628\u0634\u0623\u0646 \u0627\u0644\u062a\u0635\u0627\u0631\u064a\u062d. \u062a\u0635\u0641\u062d \u062f\u0644\u064a\u0644\u0646\u0627 \u0627\u0644\u0634\u0627\u0645\u0644 \u0644\u0643\u0644 \u0648\u0644\u0627\u064a\u0629 \u0639\u0644\u0649 \u062d\u062f\u0629 \u0644\u0642\u0648\u0627\u0646\u064a\u0646 \u0627\u0644\u0645\u0634\u0631\u0648\u0628\u0627\u062a \u0627\u0644\u0643\u062d\u0648\u0644\u064a\u0629 \u0648\u0645\u062a\u0637\u0644\u0628\u0627\u062a \u0627\u0644\u062a\u0631\u062e\u064a\u0635 \u0648\u0642\u0648\u0627\u0639\u062f \u0627\u0644\u062a\u0623\u062c\u064a\u0631 \u0627\u0644\u062c\u0627\u0641 \u0645\u0642\u0627\u0628\u0644 \u0627\u0644\u062a\u0623\u062c\u064a\u0631 \u0627\u0644\u0631\u0637\u0628.","breadcrumb":{"@id":"https:\/\/www.portablebar.com\/ar\/mobile-bartending-laws\/#breadcrumb"},"inLanguage":"ar","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.portablebar.com\/ar\/mobile-bartending-laws\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.portablebar.com\/ar\/mobile-bartending-laws\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.portablebar.com\/"},{"@type":"ListItem","position":2,"name":"Mobile Bartending Laws by State: The Ultimate Licensing Guide"}]},{"@type":"WebSite","@id":"https:\/\/www.portablebar.com\/ar\/#website","url":"https:\/\/www.portablebar.com\/ar\/","name":"\u0642\u0636\u0628\u0627\u0646 \u0645\u062d\u0645\u0648\u0644\u0629 \u0645\u0646 \u062a\u0635\u0645\u064a\u0645\u0627\u062a \u0645\u062e\u0635\u0635\u0629","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.portablebar.com\/ar\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ar"}]}},"_links":{"self":[{"href":"https:\/\/www.portablebar.com\/ar\/wp-json\/wp\/v2\/pages\/29836","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.portablebar.com\/ar\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.portablebar.com\/ar\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.portablebar.com\/ar\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.portablebar.com\/ar\/wp-json\/wp\/v2\/comments?post=29836"}],"version-history":[{"count":35,"href":"https:\/\/www.portablebar.com\/ar\/wp-json\/wp\/v2\/pages\/29836\/revisions"}],"predecessor-version":[{"id":30142,"href":"https:\/\/www.portablebar.com\/ar\/wp-json\/wp\/v2\/pages\/29836\/revisions\/30142"}],"wp:attachment":[{"href":"https:\/\/www.portablebar.com\/ar\/wp-json\/wp\/v2\/media?parent=29836"}],"curies":[{"name":"\u062f\u0628\u0644\u064a\u0648 \u0628\u064a","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}