{"id":35760,"date":"2026-10-19T16:34:09","date_gmt":"2026-10-19T13:04:09","guid":{"rendered":"https:\/\/xiavi.ir\/home\/?post_type=portfolio&#038;p=35760"},"modified":"2026-10-19T17:22:26","modified_gmt":"2026-10-19T13:52:26","slug":"45m2","status":"publish","type":"portfolio","link":"https:\/\/xiavi.ir\/home\/portfolio\/45m2\/","title":{"rendered":"\u062e\u0627\u0646\u0647 \u0628\u0627\u063a \u0647\u0627\u06cc  \u062f\u0648 \u062e\u0648\u0627\u0628"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"35760\" class=\"elementor elementor-35760\" data-elementor-post-type=\"portfolio\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fad91c0 e-con e-atomic-element e-flexbox-base e-default-div e-43a10d8 \" data-id=\"fad91c0\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"fad91c0\" data-e-type=\"e-flexbox\" data-id=\"fad91c0\">\n    \t\t<div class=\"elementor-element elementor-element-33fbec5 elementor-widget elementor-widget-wp-widget-custom_html\" data-id=\"33fbec5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wp-widget-custom_html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"textwidget custom-html-widget\">\r\n<div id=\"glass-gallery\" dir=\"rtl\">\r\n  <section class=\"gg-card\">\r\n    <header class=\"gg-header\">\r\n      <span class=\"gg-eyebrow\">\u06af\u0627\u0644\u0631\u06cc \u067e\u0644\u0627\u0646\u200c\u0647\u0627\u06cc \u0645\u0639\u0645\u0627\u0631\u06cc<\/span>\r\n      <h2 class=\"gg-title\">\u062e\u0627\u0646\u0647\u200c\u0647\u0627\u06cc \u0628\u0627\u063a\u06cc\u061b \u0633\u0628\u06a9\u060c \u0627\u0642\u062a\u0635\u0627\u062f\u06cc \u0648 \u0633\u0631\u06cc\u0639\u200c\u0627\u062c\u0631\u0627<\/h2>\r\n      <p class=\"gg-description\">\r\n        \u0637\u0631\u062d\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u062e\u0627\u0646\u0647\u200c\u0627\u06cc \u062f\u0644\u0646\u0634\u06cc\u0646 \u062f\u0631 \u0628\u0627\u063a \u0648 \u0628\u0627\u063a\u0686\u0647\u061b \u0628\u0627 \u0631\u0648\u06cc\u06a9\u0631\u062f\u06cc \u0627\u0642\u062a\u0635\u0627\u062f\u06cc\u060c \u0637\u0631\u0627\u062d\u06cc \u0633\u0628\u06a9 \u0648 \u0627\u0645\u06a9\u0627\u0646 \u0627\u062c\u0631\u0627\u06cc \u0633\u0631\u06cc\u0639\u200c\u062a\u0631. \u0686\u0647\u0627\u0631 \u067e\u0644\u0627\u0646 \u062f\u0648\u062e\u0648\u0627\u0628\u0647 \u062f\u0631 \u0645\u062a\u0631\u0627\u0698\u0647\u0627\u06cc \u0645\u062a\u0646\u0648\u0639\u060c \u0628\u0631\u0627\u06cc \u0627\u0646\u062a\u062e\u0627\u0628 \u0645\u062a\u0646\u0627\u0633\u0628 \u0628\u0627 \u0646\u06cc\u0627\u0632 \u0648 \u0641\u0636\u0627\u06cc \u0632\u0645\u06cc\u0646 \u0634\u0645\u0627.\r\n      <\/p>\r\n    <\/header>\r\n\r\n    <div class=\"gg-slider\">\r\n      <button class=\"gg-arrow gg-prev\" type=\"button\" aria-label=\"\u062a\u0635\u0648\u06cc\u0631 \u0642\u0628\u0644\u06cc\">\r\n        <svg viewbox=\"0 0 24 24\"><path d=\"m15 18-6-6 6-6\" \/><\/svg>\r\n      <\/button>\r\n\r\n      <div class=\"gg-viewport\">\r\n        <div class=\"gg-track\"><\/div>\r\n      <\/div>\r\n\r\n      <button class=\"gg-arrow gg-next\" type=\"button\" aria-label=\"\u062a\u0635\u0648\u06cc\u0631 \u0628\u0639\u062f\u06cc\">\r\n        <svg viewbox=\"0 0 24 24\"><path d=\"m9 18 6-6-6-6\" \/><\/svg>\r\n      <\/button>\r\n    <\/div>\r\n\r\n    <div class=\"gg-footer\">\r\n      <div class=\"gg-dots\"><\/div>\r\n      <span class=\"gg-counter\" aria-live=\"polite\"><\/span>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <div class=\"gg-lightbox\" aria-hidden=\"true\" role=\"dialog\" aria-label=\"\u0646\u0645\u0627\u06cc\u0634 \u0628\u0632\u0631\u06af \u067e\u0644\u0627\u0646\u200c\u0647\u0627\">\r\n\r\n    <button class=\"gg-lb-close\" type=\"button\" aria-label=\"\u0628\u0633\u062a\u0646\">\u00d7<\/button>\r\n\r\n    <button class=\"gg-lb-arrow gg-lb-prev\" type=\"button\" aria-label=\"\u062a\u0635\u0648\u06cc\u0631 \u0642\u0628\u0644\u06cc\">\r\n      <svg viewbox=\"0 0 24 24\"><path d=\"m15 18-6-6 6-6\" \/><\/svg>\r\n    <\/button>\r\n\r\n    <figure class=\"gg-lb-figure\">\r\n      <img decoding=\"async\" class=\"gg-lb-image\" src=\"\" alt=\"\">\r\n      <figcaption class=\"gg-lb-caption\"><\/figcaption>\r\n    <\/figure>\r\n\r\n    <button class=\"gg-lb-arrow gg-lb-next\" type=\"button\" aria-label=\"\u062a\u0635\u0648\u06cc\u0631 \u0628\u0639\u062f\u06cc\">\r\n      <svg viewbox=\"0 0 24 24\"><path d=\"m9 18 6-6-6-6\" \/><\/svg>\r\n    <\/button>\r\n\r\n    <span class=\"gg-lb-counter\"><\/span>\r\n  <\/div>\r\n<\/div>\r\n\r\n<style>\r\n#glass-gallery {\r\n  --gg-ink: #11323b;\r\n  --gg-deep: #0a3a46;\r\n  --gg-muted: #506b73;\r\n  --gg-accent: #00897b;\r\n  --gg-x: 50%;\r\n  --gg-y: 30%;\r\n  width: 100%;\r\n  color: var(--gg-ink);\r\n  font-family: inherit;\r\n  direction: rtl;\r\n}\r\n\r\n#glass-gallery,\r\n#glass-gallery * {\r\n  box-sizing: border-box;\r\n}\r\n\r\n#glass-gallery button {\r\n  font-family: inherit;\r\n  -webkit-appearance: none;\r\n  appearance: none;\r\n  touch-action: manipulation;\r\n}\r\n\r\n#glass-gallery button:focus-visible {\r\n  outline: 3px solid #00a896;\r\n  outline-offset: 3px;\r\n}\r\n\r\n#glass-gallery .gg-card {\r\n  position: relative;\r\n  isolation: isolate;\r\n  overflow: hidden;\r\n  width: 100%;\r\n  padding: clamp(16px, 3vw, 28px);\r\n  border: 1px solid rgba(255,255,255,.9);\r\n  border-radius: 18px;\r\n  background:\r\n    radial-gradient(\r\n      circle at var(--gg-x) var(--gg-y),\r\n      rgba(255,255,255,.96),\r\n      transparent 48%\r\n    ),\r\n    rgba(224,242,241,.72);\r\n  -webkit-backdrop-filter: blur(18px);\r\n  backdrop-filter: blur(18px);\r\n  box-shadow:\r\n    0 12px 35px rgba(13,76,92,.12),\r\n    inset 0 1px 1px rgba(255,255,255,.9);\r\n}\r\n\r\n#glass-gallery .gg-header {\r\n  margin: 0 0 20px;\r\n  text-align: right;\r\n}\r\n\r\n#glass-gallery .gg-eyebrow {\r\n  display: inline-block;\r\n  margin-bottom: 6px;\r\n  color: var(--gg-accent);\r\n  font-size: 12px;\r\n  font-weight: 700;\r\n}\r\n\r\n#glass-gallery .gg-title {\r\n  margin: 0 0 7px;\r\n  padding: 0;\r\n  color: var(--gg-deep);\r\n  font-size: clamp(20px, 2.4vw, 25px);\r\n  font-weight: 800;\r\n  line-height: 1.7;\r\n}\r\n\r\n#glass-gallery .gg-description {\r\n  margin: 0;\r\n  color: var(--gg-muted);\r\n  font-size: 13px;\r\n  line-height: 2;\r\n}\r\n\r\n#glass-gallery .gg-slider {\r\n  position: relative;\r\n  width: 100%;\r\n  isolation: isolate;\r\n}\r\n\r\n#glass-gallery .gg-viewport {\r\n  position: relative;\r\n  z-index: 1;\r\n  width: 100%;\r\n  overflow: hidden;\r\n  border-radius: 14px;\r\n  touch-action: pan-y;\r\n  user-select: none;\r\n  -webkit-user-select: none;\r\n}\r\n\r\n#glass-gallery .gg-track {\r\n  display: flex;\r\n  flex-direction: row;\r\n  direction: rtl;\r\n  align-items: stretch;\r\n  width: 100%;\r\n  transition: transform .4s cubic-bezier(.2,.7,.2,1);\r\n  will-change: transform;\r\n}\r\n\r\n#glass-gallery .gg-slide {\r\n  flex: 0 0 100%;\r\n  min-width: 0;\r\n  width: 100%;\r\n}\r\n\r\n#glass-gallery .gg-image-button {\r\n  position: relative;\r\n  display: block;\r\n  width: 100%;\r\n  padding: 0;\r\n  border: 0;\r\n  border-radius: 14px;\r\n  overflow: hidden;\r\n  background: rgba(220,238,236,.35);\r\n  cursor: zoom-in;\r\n}\r\n\r\n#glass-gallery .gg-slide img {\r\n  display: block;\r\n  width: 100%;\r\n  height: clamp(230px, 52vw, 570px);\r\n  object-fit: contain;\r\n  object-position: center;\r\n  pointer-events: none;\r\n  -webkit-user-drag: none;\r\n  background: rgba(220,238,236,.35);\r\n}\r\n\r\n#glass-gallery .gg-image-hint {\r\n  position: absolute;\r\n  z-index: 2;\r\n  left: 10px;\r\n  bottom: 10px;\r\n  padding: 7px 10px;\r\n  border-radius: 30px;\r\n  background: rgba(255,255,255,.9);\r\n  color: #11323b;\r\n  font-size: 11px;\r\n  pointer-events: none;\r\n}\r\n\r\n\/* \u062f\u06a9\u0645\u0647\u200c\u0647\u0627\u06cc \u0627\u0633\u0644\u0627\u06cc\u062f\u0634\u0648 *\/\r\n#glass-gallery .gg-arrow {\r\n  position: absolute !important;\r\n  z-index: 20 !important;\r\n  top: 50% !important;\r\n  transform: translateY(-50%) !important;\r\n  display: flex !important;\r\n  align-items: center !important;\r\n  justify-content: center !important;\r\n  width: 44px !important;\r\n  height: 44px !important;\r\n  min-width: 44px !important;\r\n  min-height: 44px !important;\r\n  padding: 0 !important;\r\n  margin: 0 !important;\r\n  border: 1px solid rgba(255,255,255,.95) !important;\r\n  border-radius: 50% !important;\r\n  background: rgba(255,255,255,.94) !important;\r\n  color: #0a585e !important;\r\n  box-shadow: 0 3px 15px rgba(0,0,0,.2) !important;\r\n  cursor: pointer;\r\n  opacity: 1 !important;\r\n  visibility: visible !important;\r\n  pointer-events: auto !important;\r\n  line-height: 1 !important;\r\n}\r\n\r\n#glass-gallery .gg-prev {\r\n  right: 10px !important;\r\n  left: auto !important;\r\n}\r\n\r\n#glass-gallery .gg-next {\r\n  left: 10px !important;\r\n  right: auto !important;\r\n}\r\n\r\n#glass-gallery .gg-arrow svg,\r\n#glass-gallery .gg-lb-arrow svg {\r\n  display: block;\r\n  width: 22px;\r\n  height: 22px;\r\n  fill: none;\r\n  stroke: currentColor;\r\n  stroke-width: 2;\r\n  stroke-linecap: round;\r\n  stroke-linejoin: round;\r\n  pointer-events: none;\r\n}\r\n\r\n#glass-gallery .gg-footer {\r\n  display: flex;\r\n  justify-content: space-between;\r\n  align-items: center;\r\n  gap: 12px;\r\n  margin-top: 14px;\r\n}\r\n\r\n#glass-gallery .gg-dots {\r\n  display: flex;\r\n  align-items: center;\r\n  flex-wrap: wrap;\r\n  gap: 7px;\r\n}\r\n\r\n#glass-gallery .gg-dot {\r\n  display: block;\r\n  width: 8px;\r\n  height: 8px;\r\n  padding: 0;\r\n  border: 0;\r\n  border-radius: 10px;\r\n  background: #a8c9c6;\r\n  cursor: pointer;\r\n}\r\n\r\n#glass-gallery .gg-dot[aria-current=\"true\"] {\r\n  width: 24px;\r\n  background: #00897b;\r\n}\r\n\r\n#glass-gallery .gg-counter {\r\n  color: #5c7c82;\r\n  font-size: 12px;\r\n  font-variant-numeric: tabular-nums;\r\n  white-space: nowrap;\r\n}\r\n\r\n\/* \u0644\u0627\u06cc\u062a\u200c\u0628\u0627\u06a9\u0633 *\/\r\n#glass-gallery .gg-lightbox {\r\n  position: fixed;\r\n  z-index: 999999;\r\n  inset: 0;\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  gap: 16px;\r\n  padding: 65px 65px 55px;\r\n  background: rgba(5,18,23,.95);\r\n  direction: ltr;\r\n  opacity: 0;\r\n  visibility: hidden;\r\n  pointer-events: none;\r\n  transition: opacity .2s, visibility .2s;\r\n  touch-action: pan-y;\r\n  overscroll-behavior: contain;\r\n}\r\n\r\n#glass-gallery .gg-lightbox.is-open {\r\n  opacity: 1;\r\n  visibility: visible;\r\n  pointer-events: auto;\r\n}\r\n\r\n#glass-gallery .gg-lb-figure {\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  flex-direction: column;\r\n  min-width: 0;\r\n  max-width: 100%;\r\n  max-height: 100%;\r\n  margin: 0;\r\n  touch-action: pan-y;\r\n}\r\n\r\n#glass-gallery .gg-lb-image {\r\n  display: block;\r\n  width: auto;\r\n  height: auto;\r\n  max-width: 100%;\r\n  max-height: calc(100dvh - 145px);\r\n  object-fit: contain;\r\n  border-radius: 4px;\r\n  -webkit-user-drag: none;\r\n  user-select: none;\r\n  -webkit-user-select: none;\r\n}\r\n\r\n#glass-gallery .gg-lb-caption {\r\n  margin-top: 10px;\r\n  color: white;\r\n  font-size: 12px;\r\n  text-align: center;\r\n}\r\n\r\n#glass-gallery .gg-lb-close {\r\n  position: absolute;\r\n  z-index: 30;\r\n  top: 12px;\r\n  right: 12px;\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  width: 46px;\r\n  height: 46px;\r\n  padding: 0;\r\n  border: 1px solid rgba(255,255,255,.35);\r\n  border-radius: 50%;\r\n  background: rgba(255,255,255,.12);\r\n  color: white;\r\n  font-size: 30px;\r\n  cursor: pointer;\r\n}\r\n\r\n#glass-gallery .gg-lb-arrow {\r\n  position: relative;\r\n  z-index: 30;\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  flex: 0 0 44px;\r\n  width: 44px;\r\n  height: 44px;\r\n  padding: 0;\r\n  border: 1px solid rgba(255,255,255,.35);\r\n  border-radius: 50%;\r\n  background: rgba(255,255,255,.12);\r\n  color: white;\r\n  cursor: pointer;\r\n}\r\n\r\n#glass-gallery .gg-lb-counter {\r\n  position: absolute;\r\n  bottom: 17px;\r\n  left: 50%;\r\n  transform: translateX(-50%);\r\n  color: white;\r\n  font-size: 12px;\r\n}\r\n\r\n\/* \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0645\u0648\u0628\u0627\u06cc\u0644 *\/\r\n@media (max-width: 600px) {\r\n  #glass-gallery .gg-card {\r\n    padding: 14px;\r\n    border-radius: 14px;\r\n  }\r\n\r\n  #glass-gallery .gg-header {\r\n    margin-bottom: 14px;\r\n  }\r\n\r\n  #glass-gallery .gg-title {\r\n    font-size: 20px;\r\n  }\r\n\r\n  #glass-gallery .gg-description {\r\n    font-size: 12px;\r\n    line-height: 1.9;\r\n  }\r\n\r\n  #glass-gallery .gg-viewport,\r\n  #glass-gallery .gg-image-button {\r\n    border-radius: 10px;\r\n  }\r\n\r\n  #glass-gallery .gg-slide img {\r\n    height: clamp(230px, 70vw, 440px);\r\n  }\r\n\r\n  #glass-gallery .gg-arrow {\r\n    width: 42px !important;\r\n    height: 42px !important;\r\n    min-width: 42px !important;\r\n    min-height: 42px !important;\r\n    top: 50% !important;\r\n    opacity: 1 !important;\r\n    visibility: visible !important;\r\n  }\r\n\r\n  #glass-gallery .gg-prev {\r\n    right: 7px !important;\r\n  }\r\n\r\n  #glass-gallery .gg-next {\r\n    left: 7px !important;\r\n  }\r\n\r\n  #glass-gallery .gg-lightbox {\r\n    gap: 0;\r\n    padding: 60px 8px 65px;\r\n  }\r\n\r\n  #glass-gallery .gg-lb-figure {\r\n    width: 100%;\r\n  }\r\n\r\n  #glass-gallery .gg-lb-image {\r\n    max-width: 100%;\r\n    max-height: calc(100dvh - 145px);\r\n  }\r\n\r\n  #glass-gallery .gg-lb-arrow {\r\n    position: absolute;\r\n    bottom: 12px;\r\n    width: 46px;\r\n    height: 46px;\r\n    flex: none;\r\n    background: rgba(255,255,255,.18);\r\n  }\r\n\r\n  #glass-gallery .gg-lb-prev {\r\n    left: 18px;\r\n  }\r\n\r\n  #glass-gallery .gg-lb-next {\r\n    right: 18px;\r\n  }\r\n\r\n  #glass-gallery .gg-lb-close {\r\n    top: 10px;\r\n    right: 10px;\r\n  }\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n  #glass-gallery *,\r\n  #glass-gallery *::before,\r\n  #glass-gallery *::after {\r\n    transition: none !important;\r\n  }\r\n}\r\n<\/style>\r\n\r\n\r\n(function () {\r\n  var root = document.getElementById('glass-gallery');\r\n\r\n  if (!root || root.dataset.ggReady === '1') return;\r\n  root.dataset.ggReady = '1';\r\n\r\n  var images = [\r\n    {\r\n      src: 'https:\/\/xiavi.ir\/home\/wp-content\/uploads\/2026\/10\/\u062f\u0648-\u062e\u0648\u0627\u0628-\u0637\u0631\u062d-4-75\u0645\u062a\u0631\u06cc.jpg',\r\n      alt: '\u067e\u0644\u0627\u0646 \u062e\u0627\u0646\u0647 \u062f\u0648\u062e\u0648\u0627\u0628\u0647 \u0637\u0631\u062d \u06f4 \u0628\u0627 \u0632\u06cc\u0631\u0628\u0646\u0627\u06cc \u06f7\u06f5 \u0645\u062a\u0631\u0645\u0631\u0628\u0639'\r\n    },\r\n    {\r\n      src: 'https:\/\/xiavi.ir\/home\/wp-content\/uploads\/2026\/10\/\u062f\u0648-\u062e\u0648\u0627\u0628-\u0637\u0631\u062d-3-70\u0645\u062a\u0631\u06cc.jpg',\r\n      alt: '\u067e\u0644\u0627\u0646 \u062e\u0627\u0646\u0647 \u062f\u0648\u062e\u0648\u0627\u0628\u0647 \u0637\u0631\u062d \u06f3 \u0628\u0627 \u0632\u06cc\u0631\u0628\u0646\u0627\u06cc \u06f7\u06f0 \u0645\u062a\u0631\u0645\u0631\u0628\u0639'\r\n    },\r\n    {\r\n      src: 'https:\/\/xiavi.ir\/home\/wp-content\/uploads\/2026\/10\/\u062f\u0648-\u062e\u0648\u0627\u0628-\u0637\u0631\u062d-2-90\u0645\u062a\u0631\u06cc.jpg',\r\n      alt: '\u067e\u0644\u0627\u0646 \u062e\u0627\u0646\u0647 \u062f\u0648\u062e\u0648\u0627\u0628\u0647 \u0637\u0631\u062d \u06f2 \u0628\u0627 \u0632\u06cc\u0631\u0628\u0646\u0627\u06cc \u06f9\u06f0 \u0645\u062a\u0631\u0645\u0631\u0628\u0639'\r\n    },\r\n    {\r\n      src: 'https:\/\/xiavi.ir\/home\/wp-content\/uploads\/2026\/10\/\u062f\u0648-\u062e\u0648\u0627\u0628-\u0637\u0631\u062d-1-80\u0645\u062a\u0631\u06cc.jpg',\r\n      alt: '\u067e\u0644\u0627\u0646 \u062e\u0627\u0646\u0647 \u062f\u0648\u062e\u0648\u0627\u0628\u0647 \u0637\u0631\u062d \u06f1 \u0628\u0627 \u0632\u06cc\u0631\u0628\u0646\u0627\u06cc \u06f8\u06f0 \u0645\u062a\u0631\u0645\u0631\u0628\u0639'\r\n    }\r\n  ];\r\n\r\n  var track = root.querySelector('.gg-track');\r\n  var viewport = root.querySelector('.gg-viewport');\r\n  var dots = root.querySelector('.gg-dots');\r\n  var counter = root.querySelector('.gg-counter');\r\n  var lightbox = root.querySelector('.gg-lightbox');\r\n  var lbImage = root.querySelector('.gg-lb-image');\r\n  var lbCaption = root.querySelector('.gg-lb-caption');\r\n  var lbCounter = root.querySelector('.gg-lb-counter');\r\n  var closeButton = root.querySelector('.gg-lb-close');\r\n\r\n  var current = 0;\r\n  var lbOpen = false;\r\n  var previousFocus = null;\r\n  var previousOverflow = '';\r\n  var suppressViewportClickUntil = 0;\r\n\r\n  function number(n) {\r\n    return String(n).padStart(2, '0');\r\n  }\r\n\r\n  \/* \u0633\u0627\u062e\u062a \u0627\u0633\u0644\u0627\u06cc\u062f\u0647\u0627 \u0648 \u0646\u0634\u0627\u0646\u06af\u0631\u0647\u0627 *\/\r\n  images.forEach(function (item, index) {\r\n    var slide = document.createElement('div');\r\n    slide.className = 'gg-slide';\r\n\r\n    var button = document.createElement('button');\r\n    button.type = 'button';\r\n    button.className = 'gg-image-button';\r\n    button.setAttribute(\r\n      'aria-label',\r\n      '\u0646\u0645\u0627\u06cc\u0634 \u0628\u0632\u0631\u06af \u062a\u0635\u0648\u06cc\u0631 ' + (index + 1)\r\n    );\r\n\r\n    var img = document.createElement('img');\r\n    img.src = item.src;\r\n    img.alt = item.alt;\r\n    img.loading = index === 0 ? 'eager' : 'lazy';\r\n    img.decoding = 'async';\r\n    img.draggable = false;\r\n\r\n    var hint = document.createElement('span');\r\n    hint.className = 'gg-image-hint';\r\n    hint.textContent = '\u0628\u0631\u0627\u06cc \u0628\u0632\u0631\u06af\u200c\u0646\u0645\u0627\u06cc\u06cc \u0644\u0645\u0633 \u06a9\u0646\u06cc\u062f';\r\n\r\n    button.appendChild(img);\r\n    button.appendChild(hint);\r\n\r\n    button.addEventListener('click', function () {\r\n      if (Date.now() &lt; suppressViewportClickUntil) return;\r\n      openLightbox(index, button);\r\n    });\r\n\r\n    slide.appendChild(button);\r\n    track.appendChild(slide);\r\n\r\n    var dot = document.createElement(&#039;button&#039;);\r\n    dot.type = &#039;button&#039;;\r\n    dot.className = &#039;gg-dot&#039;;\r\n    dot.setAttribute(&#039;aria-label&#039;, &#039;\u062a\u0635\u0648\u06cc\u0631 &#039; + (index + 1));\r\n\r\n    dot.addEventListener(&#039;click&#039;, function () {\r\n      goTo(index);\r\n    });\r\n\r\n    dots.appendChild(dot);\r\n  });\r\n\r\n  \/* \u062a\u063a\u06cc\u06cc\u0631 \u062a\u0635\u0648\u06cc\u0631 \u062f\u0631 \u0647\u0631 \u062f\u0648 \u062d\u0627\u0644\u062a *\/\r\n  function goTo(index) {\r\n    current = (index + images.length) % images.length;\r\n\r\n    var slideWidth = viewport.getBoundingClientRect().width;\r\n\r\n    track.style.transform =\r\n      &#039;translate3d(&#039; + (current * slideWidth) + &#039;px, 0, 0)&#039;;\r\n\r\n    Array.prototype.forEach.call(dots.children, function (dot, i) {\r\n      dot.setAttribute(\r\n        &#039;aria-current&#039;,\r\n        i === current ? &#039;true&#039; : &#039;false&#039;\r\n      );\r\n    });\r\n\r\n    counter.textContent =\r\n      number(current + 1) + &#039; \/ &#039; + number(images.length);\r\n\r\n    if (lbOpen) updateLightbox();\r\n  }\r\n\r\n  function updateLightbox() {\r\n    var item = images[current];\r\n\r\n    lbImage.src = item.src;\r\n    lbImage.alt = item.alt;\r\n    lbCaption.textContent = item.alt;\r\n\r\n    lbCounter.textContent =\r\n      number(current + 1) + &#039; \/ &#039; + number(images.length);\r\n  }\r\n\r\n  \/* \u0628\u0627\u0632 \u06a9\u0631\u062f\u0646 \u0644\u0627\u06cc\u062a\u200c\u0628\u0627\u06a9\u0633 *\/\r\n  function openLightbox(index, focusEl) {\r\n    if (lbOpen) {\r\n      goTo(index);\r\n      return;\r\n    }\r\n\r\n    previousFocus = focusEl || document.activeElement;\r\n    previousOverflow = document.documentElement.style.overflow;\r\n\r\n    lbOpen = true;\r\n    goTo(index);\r\n    updateLightbox();\r\n\r\n    lightbox.classList.add(&#039;is-open&#039;);\r\n    lightbox.setAttribute(&#039;aria-hidden&#039;, &#039;false&#039;);\r\n\r\n    document.documentElement.style.overflow = &#039;hidden&#039;;\r\n    closeButton.focus();\r\n  }\r\n\r\n  \/* \u0628\u0633\u062a\u0646 \u0644\u0627\u06cc\u062a\u200c\u0628\u0627\u06a9\u0633 *\/\r\n  function closeLightbox() {\r\n    if (!lbOpen) return;\r\n\r\n    lbOpen = false;\r\n    lightbox.classList.remove(&#039;is-open&#039;);\r\n    lightbox.setAttribute(&#039;aria-hidden&#039;, &#039;true&#039;);\r\n\r\n    document.documentElement.style.overflow = previousOverflow;\r\n\r\n    if (previousFocus &amp;&amp; typeof previousFocus.focus === &#039;function&#039;) {\r\n      previousFocus.focus();\r\n    }\r\n  }\r\n\r\n  \/* \u062f\u06a9\u0645\u0647\u200c\u0647\u0627\u06cc \u06af\u0627\u0644\u0631\u06cc *\/\r\n  root.querySelector(&#039;.gg-prev&#039;).addEventListener(&#039;click&#039;, function () {\r\n    goTo(current - 1);\r\n  });\r\n\r\n  root.querySelector(&#039;.gg-next&#039;).addEventListener(&#039;click&#039;, function () {\r\n    goTo(current + 1);\r\n  });\r\n\r\n  \/* \u062f\u06a9\u0645\u0647\u200c\u0647\u0627\u06cc \u0644\u0627\u06cc\u062a\u200c\u0628\u0627\u06a9\u0633 *\/\r\n  root.querySelector(&#039;.gg-lb-prev&#039;).addEventListener(&#039;click&#039;, function (e) {\r\n    e.stopPropagation();\r\n    goTo(current - 1);\r\n  });\r\n\r\n  root.querySelector(&#039;.gg-lb-next&#039;).addEventListener(&#039;click&#039;, function (e) {\r\n    e.stopPropagation();\r\n    goTo(current + 1);\r\n  });\r\n\r\n  closeButton.addEventListener(&#039;click&#039;, closeLightbox);\r\n\r\n  lightbox.addEventListener(&#039;click&#039;, function (e) {\r\n    if (e.target === lightbox) {\r\n      closeLightbox();\r\n    }\r\n  });\r\n\r\n  root.querySelector(&#039;.gg-lb-figure&#039;).addEventListener(&#039;click&#039;, function (e) {\r\n    e.stopPropagation();\r\n  });\r\n\r\n  \/* \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u0635\u0641\u062d\u0647\u200c\u06a9\u0644\u06cc\u062f *\/\r\n  document.addEventListener(&#039;keydown&#039;, function (e) {\r\n    if (!lbOpen) return;\r\n\r\n    if (e.key === &#039;Escape&#039;) {\r\n      closeLightbox();\r\n    } else if (e.key === &#039;ArrowLeft&#039;) {\r\n      goTo(current + 1);\r\n    } else if (e.key === &#039;ArrowRight&#039;) {\r\n      goTo(current - 1);\r\n    }\r\n  });\r\n\r\n  \/*\r\n   * \u0633\u0648\u0627\u06cc\u067e \u0644\u0645\u0633\u06cc:\r\n   * \u06a9\u0634\u06cc\u062f\u0646 \u0628\u0647 \u0686\u067e = \u062a\u0635\u0648\u06cc\u0631 \u0628\u0639\u062f\u06cc\r\n   * \u06a9\u0634\u06cc\u062f\u0646 \u0628\u0647 \u0631\u0627\u0633\u062a = \u062a\u0635\u0648\u06cc\u0631 \u0642\u0628\u0644\u06cc\r\n   *\r\n   * touchstart \/ touchend \u0628\u0631\u0627\u06cc \u0645\u0648\u0628\u0627\u06cc\u0644\r\n   * pointer events \u0628\u0631\u0627\u06cc \u0645\u0627\u0648\u0633 \u0648 \u0642\u0644\u0645\r\n   *\/\r\n  function enableSwipe(element, isLightbox) {\r\n    var startX = 0;\r\n    var startY = 0;\r\n    var startTime = 0;\r\n    var active = false;\r\n    var pointerId = null;\r\n    var moved = false;\r\n\r\n    function isEnabled() {\r\n      return !isLightbox || lbOpen;\r\n    }\r\n\r\n    function begin(x, y) {\r\n      if (!isEnabled()) return;\r\n\r\n      startX = x;\r\n      startY = y;\r\n      startTime = Date.now();\r\n      active = true;\r\n      moved = false;\r\n    }\r\n\r\n    function finish(x, y) {\r\n      if (!active || !isEnabled()) {\r\n        active = false;\r\n        return;\r\n      }\r\n\r\n      active = false;\r\n\r\n      var dx = x - startX;\r\n      var dy = y - startY;\r\n      var elapsed = Date.now() - startTime;\r\n\r\n      \/* \u062d\u062f\u0627\u0642\u0644 \u062c\u0627\u0628\u0647\u200c\u062c\u0627\u06cc\u06cc \u0627\u0641\u0642\u06cc \u0648 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u062a\u0634\u062e\u06cc\u0635 \u0627\u0633\u06a9\u0631\u0648\u0644 \u0639\u0645\u0648\u062f\u06cc *\/\r\n      if (Math.abs(dx) &lt; 45) return;\r\n      if (Math.abs(dx) <Math> 800) return;\r\n\r\n      moved = true;\r\n\r\n      if (!isLightbox) {\r\n        suppressViewportClickUntil = Date.now() + 500;\r\n      }\r\n\r\n      if (dx &lt; 0) {\r\n        goTo(current + 1);\r\n      } else {\r\n        goTo(current - 1);\r\n      }\r\n    }\r\n\r\n    \/* \u0644\u0645\u0633 \u0645\u0648\u0628\u0627\u06cc\u0644 *\/\r\n    element.addEventListener(&#039;touchstart&#039;, function (e) {\r\n      if (!isEnabled()) return;\r\n      if (!e.touches || e.touches.length !== 1) {\r\n        active = false;\r\n        return;\r\n      }\r\n\r\n      begin(\r\n        e.touches[0].clientX,\r\n        e.touches[0].clientY\r\n      );\r\n    }, { passive: true });\r\n\r\n    element.addEventListener(&#039;touchend&#039;, function (e) {\r\n      if (!e.changedTouches || e.changedTouches.length !== 1) {\r\n        active = false;\r\n        return;\r\n      }\r\n\r\n      finish(\r\n        e.changedTouches[0].clientX,\r\n        e.changedTouches[0].clientY\r\n      );\r\n    }, { passive: true });\r\n\r\n    element.addEventListener(&#039;touchcancel&#039;, function () {\r\n      active = false;\r\n    }, { passive: true });\r\n\r\n    \/* \u0645\u0627\u0648\u0633 \u0648 \u0642\u0644\u0645 *\/\r\n    element.addEventListener(&#039;pointerdown&#039;, function (e) {\r\n      if (e.pointerType === &#039;touch&#039;) return;\r\n      if (e.pointerType === &#039;mouse&#039; &amp;&amp; e.button !== 0) return;\r\n      if (!isEnabled()) return;\r\n\r\n      pointerId = e.pointerId;\r\n      begin(e.clientX, e.clientY);\r\n    });\r\n\r\n    element.addEventListener(&#039;pointerup&#039;, function (e) {\r\n      if (e.pointerType === &#039;touch&#039;) return;\r\n      if (pointerId === null || e.pointerId !== pointerId) return;\r\n\r\n      pointerId = null;\r\n      finish(e.clientX, e.clientY);\r\n    });\r\n\r\n    element.addEventListener(&#039;pointercancel&#039;, function () {\r\n      pointerId = null;\r\n      active = false;\r\n    });\r\n\r\n    \/* \u067e\u0633 \u0627\u0632 \u0633\u0648\u0627\u06cc\u067e\u060c \u06a9\u0644\u06cc\u06a9 \u0646\u0627\u062e\u0648\u0627\u0633\u062a\u0647 \u0631\u0648\u06cc \u067e\u0644\u0627\u0646 \u0628\u0627\u0632 \u0646\u0634\u0648\u062f *\/\r\n    if (!isLightbox) {\r\n      element.addEventListener(&#039;click&#039;, function (e) {\r\n        if (Date.now() &lt; suppressViewportClickUntil) {\r\n          e.preventDefault();\r\n          e.stopPropagation();\r\n          if (e.stopImmediatePropagation) {\r\n            e.stopImmediatePropagation();\r\n          }\r\n        }\r\n      }, true);\r\n    }\r\n  }\r\n\r\n  \/* \u0633\u0648\u0627\u06cc\u067e \u0631\u0648\u06cc \u06af\u0627\u0644\u0631\u06cc \u0648 \u0631\u0648\u06cc \u062a\u0635\u0648\u06cc\u0631 \u0628\u0632\u0631\u06af *\/\r\n  enableSwipe(viewport, false);\r\n  enableSwipe(lightbox, true);\r\n\r\n  \/* \u0627\u0641\u06a9\u062a \u0646\u0648\u0631 \u0645\u062a\u062d\u0631\u06a9 *\/\r\n  var card = root.querySelector(&#039;.gg-card&#039;);\r\n\r\n  card.addEventListener(&#039;pointermove&#039;, function (e) {\r\n    if (e.pointerType === &#039;touch&#039;) return;\r\n\r\n    var rect = card.getBoundingClientRect();\r\n\r\n    card.style.setProperty(\r\n      &#039;--gg-x&#039;,\r\n      ((e.clientX - rect.left) \/ rect.width * 100) + &#039;%&#039;\r\n    );\r\n\r\n    card.style.setProperty(\r\n      &#039;--gg-y&#039;,\r\n      ((e.clientY - rect.top) \/ rect.height * 100) + &#039;%&#039;\r\n    );\r\n  });\r\n\r\n  card.addEventListener(&#039;pointerleave&#039;, function () {\r\n    card.style.setProperty(&#039;--gg-x&#039;, &#039;50%&#039;);\r\n    card.style.setProperty(&#039;--gg-y&#039;, &#039;30%&#039;);\r\n  });\r\n\r\n  \/* \u062d\u0641\u0638 \u0645\u0648\u0642\u0639\u06cc\u062a \u0627\u0633\u0644\u0627\u06cc\u062f \u067e\u0633 \u0627\u0632 \u062a\u063a\u06cc\u06cc\u0631 \u0627\u0646\u062f\u0627\u0632\u0647 \u0635\u0641\u062d\u0647 *\/\r\n  var resizeTimer;\r\n\r\n  window.addEventListener(&#039;resize&#039;, function () {\r\n    clearTimeout(resizeTimer);\r\n\r\n    resizeTimer = setTimeout(function () {\r\n      goTo(current);\r\n    }, 100);\r\n  });\r\n\r\n  \/* \u0646\u0645\u0627\u06cc\u0634 \u062a\u0635\u0648\u06cc\u0631 \u0627\u0648\u0644 *\/\r\n  goTo(0);\r\n})();\r\n\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u0637\u0631\u062d\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u062e\u0627\u0646\u0647\u200c\u0627\u06cc \u062f\u0644\u0646\u0634\u06cc\u0646 \u062f\u0631 \u0628\u0627\u063a \u0648 \u0628\u0627\u063a\u0686\u0647\u061b \u0628\u0627 \u0631\u0648\u06cc\u06a9\u0631\u062f\u06cc \u0627\u0642\u062a\u0635\u0627\u062f\u06cc\u060c \u0637\u0631\u0627\u062d\u06cc \u0633\u0628\u06a9 \u0648 \u0627\u0645\u06a9\u0627\u0646 \u0627\u062c\u0631\u0627\u06cc \u0633\u0631\u06cc\u0639\u200c\u062a\u0631. \u0686\u0647\u0627\u0631 \u067e\u0644\u0627\u0646 \u062f\u0648\u062e\u0648\u0627\u0628\u0647 \u062f\u0631 \u0645\u062a\u0631\u0627\u0698\u0647\u0627\u06cc \u0645\u062a\u0646\u0648\u0639\u060c \u0628\u0631\u0627\u06cc \u0627\u0646\u062a\u062e\u0627\u0628 \u0645\u062a\u0646\u0627\u0633\u0628 \u0628\u0627 \u0646\u06cc\u0627\u0632 \u0648 \u0641\u0636\u0627\u06cc \u0632\u0645\u06cc\u0646 \u0634\u0645\u0627.<\/p>\n","protected":false},"featured_media":35772,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","project-cat":[74],"class_list":["post-35760","portfolio","type-portfolio","status-publish","has-post-thumbnail","hentry","project-cat-74"],"_links":{"self":[{"href":"https:\/\/xiavi.ir\/home\/wp-json\/wp\/v2\/portfolio\/35760","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xiavi.ir\/home\/wp-json\/wp\/v2\/portfolio"}],"about":[{"href":"https:\/\/xiavi.ir\/home\/wp-json\/wp\/v2\/types\/portfolio"}],"replies":[{"embeddable":true,"href":"https:\/\/xiavi.ir\/home\/wp-json\/wp\/v2\/comments?post=35760"}],"version-history":[{"count":14,"href":"https:\/\/xiavi.ir\/home\/wp-json\/wp\/v2\/portfolio\/35760\/revisions"}],"predecessor-version":[{"id":35799,"href":"https:\/\/xiavi.ir\/home\/wp-json\/wp\/v2\/portfolio\/35760\/revisions\/35799"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/xiavi.ir\/home\/wp-json\/wp\/v2\/media\/35772"}],"wp:attachment":[{"href":"https:\/\/xiavi.ir\/home\/wp-json\/wp\/v2\/media?parent=35760"}],"wp:term":[{"taxonomy":"project-cat","embeddable":true,"href":"https:\/\/xiavi.ir\/home\/wp-json\/wp\/v2\/project-cat?post=35760"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}