{"version":3,"file":"shared-lib.DBUC-CJs.mjs","names":["metadata","siteMetadata","metadataVersion","__FramerMetadata__","metadata","siteMetadata"],"sources":["https:/framerusercontent.com/modules/oCkigYIBZ6wtzsov8Z3j/mkU0vYuwGU10zAZorj1D/siteMetadata.js","https:/framerusercontent.com/modules/lkh0eHT5ZzLe4rQT1J6z/m8K5ezkPFDmKFSAfrYZL/augiA20Il.js","https:/framerusercontent.com/modules/NNPRBe2qPKAI0UdIurRb/IgVHa0oIeDB44bZk0EDO/PCkwnVlkI.js"],"sourcesContent":["// Generated by Framer (0dc35dd)\nconst valuesByLocaleId={JzBJB0y1s:{v0:\"صفحة | استديو تصميم مواقع في الكويت والخليج\",v1:\"صفحة استوديو تصميم مواقع في الكويت يقدّم مواقع حديثة وسريعة للشركات الناشئة والأعمال في الخليج. نبتكر مواقع ثنائية اللغة ومتوافقة مع الهواتف تُطلق خلال أيام، لنساعد العلامات التجارية على النمو رقميًا والتميز بتصميم مخصص وتجربة سلسة.\"}};function getLocalizedValue(key,locale){while(locale){const values=valuesByLocaleId[locale.id];if(values){const value=values[key];if(value)return value;}locale=locale.fallback;}}export default function metadata(params,activeLocale){return{customHTMLHeadEnd:'<!-- Alexandria for Arabic -->\\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin=\"\">\\n<link href=\"https://fonts.googleapis.com/css2?family=Alexandria:wght@100..900&amp;display=swap\" rel=\"stylesheet\">\\n\\n<script>\\n(function () {\\n  var AR_PREFIXES = [\"ar\"];           // change if your Arabic slug differs\\n  var TEXT_SEL =\\n    \\'.framer-text,[data-framer-component-type=\"Text\"],[data-framer-component-type=\"RichText\"],p,h1,h2,h3,h4,h5,h6,li\\';\\n\\n  // how long to keep re-applying after a switch, in ms\\n  var STABILIZE_MS = 800;\\n  var RAF_EACH_MS = 16; // ~60fps\\n\\n  function isArabicPath() {\\n    var seg = location.pathname.split(\"/\").filter(Boolean)[0] || \"\";\\n    seg = seg.toLowerCase();\\n    return AR_PREFIXES.some(function (p) { return seg === p || seg.startsWith(p + \"-\"); });\\n  }\\n\\n  function targetDir() {\\n    var lang = (document.documentElement.getAttribute(\"lang\") || \"\").toLowerCase();\\n    return (isArabicPath() || lang.startsWith(\"ar\")) ? \"rtl\" : \"ltr\";\\n  }\\n\\n  function setDir() {\\n    var dir = targetDir();\\n    var html = document.documentElement;\\n    if (html.getAttribute(\"dir\") !== dir) html.setAttribute(\"dir\", dir);\\n    stabilizeAlign(dir);\\n  }\\n\\n  // Re-apply alignment repeatedly for a short window after locale switch,\\n  // because Framer re-mounts content and can clobber inline styles.\\n  var stabilizing = false, stopAt = 0;\\n  function stabilizeAlign(dir) {\\n    stopAt = performance.now() + STABILIZE_MS;\\n    if (stabilizing) return;\\n    stabilizing = true;\\n    (function tick() {\\n      flipAlign(dir);\\n      if (performance.now() < stopAt) {\\n        setTimeout(function(){ requestAnimationFrame(tick); }, RAF_EACH_MS);\\n      } else {\\n        stabilizing = false;\\n      }\\n    })();\\n  }\\n\\n  function flipAlign(dir) {\\n    var want = dir === \"rtl\" ? \"right\" : \"left\";\\n    var nodes = document.querySelectorAll(TEXT_SEL);\\n    for (var i = 0; i < nodes.length; i++) {\\n      var el = nodes[i];\\n\\n      // Optional opt-out: add class=\"keep-align\" on any block you never want flipped\\n      if (el.classList && el.classList.contains(\"keep-align\")) continue;\\n\\n      var cs = getComputedStyle(el);\\n      var ta = (cs.textAlign || \"\").toLowerCase();\\n\\n      // Keep center and justify untouched\\n      if (ta === \"center\" || ta === \"justify\") continue;\\n\\n      // If already desired, skip\\n      if (ta === want) continue;\\n\\n      // Force alignment inline so it survives Framer’s style churn\\n      el.style.setProperty(\"text-align\", want, \"important\");\\n    }\\n  }\\n\\n  // Initial\\n  setDir();\\n\\n  // SPA hooks\\n  var _ps = history.pushState, _rs = history.replaceState;\\n  history.pushState = function(){ _ps.apply(this, arguments); setDir(); };\\n  history.replaceState = function(){ _rs.apply(this, arguments); setDir(); };\\n  window.addEventListener(\"popstate\", setDir);\\n\\n  // Link clicks Framer intercepts\\n  addEventListener(\"click\", function (e) {\\n    if (e.target && e.target.closest && e.target.closest(\"a[href]\")) setDir();\\n  }, true);\\n\\n  // Follow <html lang> changes\\n  new MutationObserver(setDir).observe(document.documentElement, {\\n    attributes: true, attributeFilter: [\"lang\"]\\n  });\\n\\n  // If the page injects or replaces content after the switch, keep aligning\\n  new MutationObserver(function(){ stabilizeAlign(targetDir()); })\\n    .observe(document.body, { childList: true, subtree: true });\\n})();\\n</script>\\n\\n<style>\\n  /* Base reading order */\\n  html[dir=\"rtl\"] { direction: rtl; }\\n  html[dir=\"ltr\"] { direction: ltr; }\\n\\n  /* Mixed-language runs behave */\\n  .framer-text,\\n  [data-framer-component-type=\"Text\"],\\n  [data-framer-component-type=\"RichText\"] { unicode-bidi: plaintext; }\\n\\n  /* Arabic font in Arabic locale; English stays unchanged */\\n  html[dir=\"rtl\"] body,\\n  html[dir=\"rtl\"] .framer-text,\\n  html[dir=\"rtl\"] [data-framer-component-type=\"Text\"],\\n  html[dir=\"rtl\"] [data-framer-component-type=\"RichText\"] {\\n    font-family: \"Alexandria\", system-ui, -apple-system, \"Segoe UI\", Roboto, Arial, sans-serif !important;\\n    font-optical-sizing: auto;\\n  }\\n</style>\\n\\n<link rel=\"alternate\" href=\"https://safha.club/en\" hreflang=\"en\">\\n<link rel=\"alternate\" href=\"https://safha.club/ar\" hreflang=\"ar\">\\n<link rel=\"alternate\" href=\"https://safha.club\" hreflang=\"x-default\">\\n\\n<script type=\"application/ld+json\">\\n{\\n  \"@context\":\"https://schema.org\",\\n  \"@type\":\"Organization\",\\n  \"name\":\"Safha\",\\n  \"url\":\"https://safha.club\",\\n  \"areaServed\":[\"KW\",\"SA\",\"AE\",\"QA\",\"BH\",\"OM\"]\\n}\\n</script>\\n',description:getLocalizedValue(\"v1\",activeLocale)??\"Safha is a web design studio in Kuwait building fast, modern websites for startups and businesses across the GCC. We create bilingual, mobile-ready sites that launch in days, helping brands grow online with custom design and seamless user experience.\",favicon:\"https://framerusercontent.com/assets/lBtT70vVFwb28RNQsF4ntMUSs.png\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/QmE8FFxpPtV5zPN1wi2PaqHVKA.png\",title:getLocalizedValue(\"v0\",activeLocale)??\"Safha – Website Design Studio Kuwait & GCC\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (26c37fd)\nimport siteMetadata from\"https://framerusercontent.com/modules/oCkigYIBZ6wtzsov8Z3j/mkU0vYuwGU10zAZorj1D/siteMetadata.js\";const valuesByLocaleId={};function getLocalizedValue(key,locale){while(locale){const values=valuesByLocaleId[locale.id];if(values){const value=values[key];if(value)return value;}locale=locale.fallback;}}export default function metadata(params,activeLocale){return{breakpoints:[{hash:\"72rtr7\",mediaQuery:\"(min-width: 1204px)\"},{hash:\"jsmt68\",mediaQuery:\"(min-width: 810px) and (max-width: 1203.98px)\"},{hash:\"13lsron\",mediaQuery:\"(max-width: 809.98px)\"}],description:siteMetadata(params,activeLocale).description,elements:{cxQrJDtMJ:\"navbar\",Xd9fWyHNE:\"start\"},robots:\"max-image-preview:large\",serializationId:\"framer-ZjKuf\",socialImage:\"https://framerusercontent.com/assets/QmE8FFxpPtV5zPN1wi2PaqHVKA.png\",title:siteMetadata(params,activeLocale).title||\"Home\",viewport:\"width=device-width\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (0dc35dd)\nimport siteMetadata from\"https://framerusercontent.com/modules/oCkigYIBZ6wtzsov8Z3j/mkU0vYuwGU10zAZorj1D/siteMetadata.js\";const valuesByLocaleId={};function getLocalizedValue(key,locale){while(locale){const values=valuesByLocaleId[locale.id];if(values){const value=values[key];if(value)return value;}locale=locale.fallback;}}export default function metadata(params,activeLocale){return{breakpoints:[{hash:\"7prais\"}],description:siteMetadata(params,activeLocale).description,elements:{},framerSearch:{index:false},robots:\"noindex\",serializationId:\"framer-GiG1G\",title:siteMetadata(params,activeLocale).title||\"404\",viewport:\"width=1200\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"2DACoU,SAAS,EAAkB,EAAI,EAAO,CAAC,KAAM,GAAO,CAAC,IAAM,EAAO,EAAiB,EAAO,IAAI,GAAG,EAAO,CAAC,IAAM,EAAM,EAAO,GAAK,GAAG,EAAM,OAAO,EAAO,EAAO,EAAO,UAAW,SAAwB,EAAS,EAAO,EAAa,CAAC,MAAM,CAAC,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAk7I,YAAY,EAAkB,KAAK,EAAa,EAAE,6PAA6P,QAAQ,qEAAqE,OAAO,0BAA0B,YAAY,sEAAsE,MAAM,EAAkB,KAAK,EAAa,EAAE,6CAA6C,iBAAxjL,EAAiB,CAAC,UAAU,CAAC,GAAG,8CAA8C,GAAG,2OAA2O,CAAC,ICAE,SAAwBI,EAAS,EAAO,EAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,SAAS,WAAW,sBAAsB,CAAC,CAAC,KAAK,SAAS,WAAW,gDAAgD,CAAC,CAAC,KAAK,UAAU,WAAW,wBAAwB,CAAC,CAAC,YAAYC,EAAa,EAAO,EAAa,CAAC,YAAY,SAAS,CAAC,UAAU,SAAS,UAAU,QAAQ,CAAC,OAAO,0BAA0B,gBAAgB,eAAe,YAAY,sEAAsE,MAAMA,EAAa,EAAO,EAAa,CAAC,OAAO,OAAO,SAAS,qBAAqB,sBAAtxB,CAAqyBH,EAAgB,EACl6BC,EAAqB,CAAC,QAAU,CAAC,gBAAkB,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,IAAI,CAAC,CAAC,QAAU,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,IAAI,CAAC,CAAC,mBAAqB,CAAC,KAAO,WAAW,CAAC,CAAC,ICDiF,SAAwBC,EAAS,EAAO,EAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,YAAYC,EAAa,EAAO,EAAa,CAAC,YAAY,SAAS,EAAE,CAAC,aAAa,CAAC,MAAM,GAAM,CAAC,OAAO,UAAU,gBAAgB,eAAe,MAAMA,EAAa,EAAO,EAAa,CAAC,OAAO,MAAM,SAAS,aAAa,sBAAlgB,CAAihB,EAAgB,EAC9oB,EAAqB,CAAC,QAAU,CAAC,gBAAkB,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,IAAI,CAAC,CAAC,QAAU,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,IAAI,CAAC,CAAC,mBAAqB,CAAC,KAAO,WAAW,CAAC,CAAC"}