@font-face {
	font-family: "IRANYekanLocal";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("../fonts/iranyekanwebbold.woff2") format("woff2");
}

:root {
	--gisha-brand: #1769ff;
	--gisha-luminous: #244892;
	--gisha-deep: #0b3d91;
	--gisha-ink: #06101f;
	--gisha-navy: #0b1b30;
	--gisha-surface: #ffffff;
	--gisha-muted-surface: #f6f8fb;
	--gisha-border: #d6dce5;
	--gisha-text: #182235;
	--gisha-muted-text: #566275;
	--gisha-focus: #72a2ff;
	--gisha-content: 77.5rem;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	overflow-x: clip;
	background: var(--gisha-surface);
	color: var(--gisha-text);
	font-family: "DM Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	line-height: 1.65;
}

body.rtl,
html[lang="fa-IR"] body {
	font-family: "Vazirmatn", Tahoma, Arial, sans-serif;
}

html[lang^="fa"] main :is(h1, h2, h3, h4, h5, h6),
html[lang^="fa"] main .elementor-heading-title,
html[lang^="fa"] main :is(.elementor-icon-box-title, .elementor-flip-box__layer__title),
html[lang^="fa"] footer :is(h2, h3, h4, h5, h6, .elementor-heading-title) {
	font-family: "IRANYekanLocal", "Vazirmatn", Tahoma, Arial, sans-serif !important;
}

body.gg-source-lang-en .gg-lang-fa,
body.gg-source-lang-fa .gg-lang-en,
html[lang^="en"] body:not(.gg-source-lang-en):not(.gg-source-lang-fa) .gg-lang-fa,
html[lang^="fa"] body:not(.gg-source-lang-en):not(.gg-source-lang-fa) .gg-lang-en {
	display: none !important;
}

img {
	max-width: 100%;
	height: auto;
}

a {
	color: var(--gisha-deep);
	text-underline-offset: 0.2em;
}

:where(a, button) {
	touch-action: manipulation;
}

:where(h1, h2, h3, h4, h5, h6),
.elementor-heading-title {
	text-wrap: balance;
}

:where(h1, h2, h3, h4, h5, h6)[id] {
	scroll-margin-top: 6rem;
}

:where(p, li, a, .elementor-widget-text-editor) {
	overflow-wrap: anywhere;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.skip-link:focus-visible {
	z-index: 100000;
	top: 1rem;
	left: 1rem;
	width: auto;
	height: auto;
	padding: 0.75rem 1rem;
	margin: 0;
	overflow: visible;
	clip: auto;
	border-radius: 0.5rem;
	background: var(--gisha-surface);
	color: var(--gisha-ink);
}

:where(a, button, input, textarea, select):focus-visible {
	outline: 3px solid var(--gisha-focus);
	outline-offset: 3px;
}

/* Elementor Theme Builder header: logo and the two language flags anchor
 * opposite ends; navigation and booking remain compact between them. */
.gg-site-header > .e-con-inner {
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
}

.gg-logo-panel,
.gg-header-book,
.gg-language-switcher {
	flex: 0 0 auto;
}

.gg-language-switcher {
	margin-inline-start: auto;
}

.gg-header-nav {
	min-width: 0;
	flex: 1 1 auto;
}

.gg-language-switcher .wpml-ls,
.gg-language-switcher .wpml-ls ul {
	margin: 0;
	padding: 0;
	border: 0;
}

.gg-language-switcher .wpml-ls ul {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	list-style: none;
}

.gg-language-switcher .wpml-ls-item {
	display: block;
}

.gg-language-switcher .wpml-ls-link {
	display: grid;
	width: 2rem;
	height: 2rem;
	min-height: 2rem;
	place-items: center;
	padding: 0.28rem;
	border: 1px solid rgb(255 255 255 / 26%);
	border-radius: 50%;
	background: rgb(255 255 255 / 8%);
	transition: background-color 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.gg-language-switcher .wpml-ls-link:hover,
.gg-language-switcher .wpml-ls-link:focus-visible,
.gg-language-switcher .wpml-ls-current-language .wpml-ls-link {
	border-color: var(--gisha-focus);
	background: rgb(114 162 255 / 20%);
	transform: translateY(-1px);
}

.gg-language-switcher .wpml-ls-flag {
	display: block;
	width: 1.25rem;
	height: auto;
	margin: 0;
}

@media (max-width: 767px) {
	.gg-site-header > .e-con-inner {
		gap: 0.5rem !important;
	}

	.gg-site-header .gg-logo-panel {
		width: 4rem !important;
		min-width: 0;
	}

	.gg-site-header .gg-header-nav {
		width: 2.75rem !important;
		min-width: 2.75rem;
		flex: 0 0 2.75rem;
	}

	.gg-site-header .gg-header-book {
		width: auto !important;
		min-width: 0;
		flex: 0 1 auto;
	}

	.gg-site-header .gg-header-book .elementor-button {
		width: auto;
		min-width: 0;
		padding-inline: 0.65rem !important;
		font-size: 0.75rem !important;
		white-space: nowrap;
	}

	.elementor-form :is(input:not([type="hidden"]), textarea, select) {
		font-size: 1rem !important;
	}
}

/* Keep nested footer items close to their parent when the accordion opens. */
.gg-footer-menu .sub-menu,
.gg-footer-menu .elementor-nav-menu--dropdown .sub-menu {
	position: static !important;
	inset: auto !important;
	width: 100% !important;
	min-width: 0 !important;
	margin: 0.2rem 0 0.55rem !important;
	padding: 0 0.7rem;
	border: 0;
	background: transparent;
	box-shadow: none;
	transform: none !important;
}

.gg-footer-menu .sub-menu .elementor-sub-item {
	min-height: 0;
	padding-block: 0.35rem;
	border: 0;
	background: transparent;
	color: #afc2e5;
	line-height: 1.4;
}

.rtl .gg-footer-menu .sub-menu {
	padding-right: 0.7rem;
	padding-left: 0;
}

.site-shell {
	width: min(calc(100% - 3rem), var(--gisha-content));
	margin-inline: auto;
}

.site-header,
.site-footer {
	background: var(--gisha-ink);
	color: #fff;
}

.site-header__inner,
.site-footer__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	min-height: 5rem;
}

.site-brand__name,
.site-header a,
.site-footer a {
	color: inherit;
}

.site-navigation__list,
.site-footer__menu {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 1.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-entry,
.site-message,
.site-stack {
	padding-block: clamp(3rem, 8vw, 7rem);
}

.site-button {
	display: inline-flex;
	min-height: 2.75rem;
	align-items: center;
	justify-content: center;
	padding-inline: 1.5rem;
	border-radius: 999px;
	background: var(--gisha-brand);
	color: #fff;
	font-weight: 700;
	text-decoration: none;
}

/* Elementor Pro Flip Box is hover-driven by default. Once the companion
 * script initializes a widget, click/keyboard state owns every supported
 * effect site-wide. The explicit duration also wins over Elementor's bundled
 * transitions and this theme's broad reduced-motion fallback. */
.gg-flip-click-ready .elementor-widget-flip-box .elementor-flip-box {
	cursor: pointer;
	touch-action: manipulation;
	/* Keep the rotated back face from widening the mobile document. */
	overflow: clip;
}

.gg-flip-click-ready .elementor-widget-flip-box .elementor-flip-box:focus-visible {
	outline: 3px solid var(--gisha-focus);
	outline-offset: 4px;
}

.gg-flip-click-ready .elementor-widget-flip-box .elementor-flip-box__layer {
	transition: transform var(--gisha-flip-duration, 1s) ease-in-out !important;
}

/* Elementor flex children grow into a single compressed row by default.
 * Generated service grids use explicit responsive card columns instead. */
.gg-flip-grid > .elementor-widget-flip-box {
	width: calc((100% - 3rem) / 3);
	max-width: calc((100% - 3rem) / 3);
	flex: 0 0 calc((100% - 3rem) / 3);
}

.gg-flip-grid {
	overflow: clip;
}

@media (max-width: 1024px) {
	.gg-flip-grid > .elementor-widget-flip-box {
		width: calc((100% - 1.5rem) / 2);
		max-width: calc((100% - 1.5rem) / 2);
		flex-basis: calc((100% - 1.5rem) / 2);
	}
}

@media (max-width: 767px) {
	.gg-flip-grid > .elementor-widget-flip-box {
		width: 100%;
		max-width: 100%;
		flex-basis: 100%;
	}
}

.gg-flip-click-ready .elementor-widget-flip-box .elementor-flip-box:not(.gg-is-flipped) .elementor-flip-box__back,
.gg-flip-click-ready .elementor-widget-flip-box .elementor-flip-box.gg-is-flipped .elementor-flip-box__front {
	pointer-events: none;
}

.gg-flip-click-ready .elementor-flip-box--effect-flip.elementor-flip-box--direction-right .elementor-flip-box:not(.gg-is-flipped) .elementor-flip-box__back {
	transform: rotateX(0) rotateY(-180deg) !important;
}

.gg-flip-click-ready .elementor-flip-box--effect-flip.elementor-flip-box--direction-left .elementor-flip-box:not(.gg-is-flipped) .elementor-flip-box__back {
	transform: rotateX(0) rotateY(180deg) !important;
}

.gg-flip-click-ready .elementor-flip-box--effect-flip.elementor-flip-box--direction-up .elementor-flip-box:not(.gg-is-flipped) .elementor-flip-box__back {
	transform: rotateX(-180deg) rotateY(0) !important;
}

.gg-flip-click-ready .elementor-flip-box--effect-flip.elementor-flip-box--direction-down .elementor-flip-box:not(.gg-is-flipped) .elementor-flip-box__back {
	transform: rotateX(180deg) rotateY(0) !important;
}

.gg-flip-click-ready .elementor-widget-flip-box.elementor-flip-box--effect-flip .elementor-flip-box:not(.gg-is-flipped) .elementor-flip-box__front,
.gg-flip-click-ready .elementor-widget-flip-box.elementor-flip-box--effect-flip .elementor-flip-box.gg-is-flipped .elementor-flip-box__back {
	transform: none !important;
}

.gg-flip-click-ready .elementor-flip-box--effect-flip.elementor-flip-box--direction-right .elementor-flip-box.gg-is-flipped .elementor-flip-box__front {
	transform: rotateX(0) rotateY(180deg) !important;
}

.gg-flip-click-ready .elementor-flip-box--effect-flip.elementor-flip-box--direction-left .elementor-flip-box.gg-is-flipped .elementor-flip-box__front {
	transform: rotateX(0) rotateY(-180deg) !important;
}

.gg-flip-click-ready .elementor-flip-box--effect-flip.elementor-flip-box--direction-up .elementor-flip-box.gg-is-flipped .elementor-flip-box__front {
	transform: rotateX(180deg) rotateY(0) !important;
}

.gg-flip-click-ready .elementor-flip-box--effect-flip.elementor-flip-box--direction-down .elementor-flip-box.gg-is-flipped .elementor-flip-box__front {
	transform: rotateX(-180deg) rotateY(0) !important;
}

.gg-flip-click-ready :is(.elementor-flip-box--effect-push, .elementor-flip-box--effect-slide).elementor-flip-box--direction-right .elementor-flip-box:not(.gg-is-flipped) .elementor-flip-box__back {
	transform: translateX(-100%) translateY(0) !important;
}

.gg-flip-click-ready :is(.elementor-flip-box--effect-push, .elementor-flip-box--effect-slide).elementor-flip-box--direction-left .elementor-flip-box:not(.gg-is-flipped) .elementor-flip-box__back {
	transform: translateX(100%) translateY(0) !important;
}

.gg-flip-click-ready :is(.elementor-flip-box--effect-push, .elementor-flip-box--effect-slide).elementor-flip-box--direction-up .elementor-flip-box:not(.gg-is-flipped) .elementor-flip-box__back {
	transform: translateX(0) translateY(100%) !important;
}

.gg-flip-click-ready :is(.elementor-flip-box--effect-push, .elementor-flip-box--effect-slide).elementor-flip-box--direction-down .elementor-flip-box:not(.gg-is-flipped) .elementor-flip-box__back {
	transform: translateX(0) translateY(-100%) !important;
}

.gg-flip-click-ready :is(.elementor-flip-box--effect-push, .elementor-flip-box--effect-slide) .elementor-flip-box.gg-is-flipped .elementor-flip-box__back,
.gg-flip-click-ready .elementor-flip-box--effect-push .elementor-flip-box:not(.gg-is-flipped) .elementor-flip-box__front {
	transform: none !important;
}

.gg-flip-click-ready .elementor-flip-box--effect-push.elementor-flip-box--direction-right .elementor-flip-box.gg-is-flipped .elementor-flip-box__front {
	transform: translateX(100%) translateY(0) !important;
}

.gg-flip-click-ready .elementor-flip-box--effect-push.elementor-flip-box--direction-left .elementor-flip-box.gg-is-flipped .elementor-flip-box__front {
	transform: translateX(-100%) translateY(0) !important;
}

.gg-flip-click-ready .elementor-flip-box--effect-push.elementor-flip-box--direction-up .elementor-flip-box.gg-is-flipped .elementor-flip-box__front {
	transform: translateX(0) translateY(-100%) !important;
}

.gg-flip-click-ready .elementor-flip-box--effect-push.elementor-flip-box--direction-down .elementor-flip-box.gg-is-flipped .elementor-flip-box__front {
	transform: translateX(0) translateY(100%) !important;
}

.gg-flip-click-ready .elementor-flip-box--effect-zoom-out .elementor-flip-box__front,
.gg-flip-click-ready .elementor-flip-box--effect-zoom-in .elementor-flip-box__back {
	transition: transform var(--gisha-flip-duration, 1s) ease-in-out, opacity var(--gisha-flip-duration, 1s) ease-in-out !important;
}

.gg-flip-click-ready .elementor-flip-box--effect-zoom-out .elementor-flip-box:not(.gg-is-flipped) .elementor-flip-box__front {
	width: 100% !important;
	opacity: 1 !important;
	transform: scale(1) !important;
}

.gg-flip-click-ready .elementor-flip-box--effect-zoom-out .elementor-flip-box.gg-is-flipped .elementor-flip-box__front {
	width: 100% !important;
	opacity: 0 !important;
	transform: scale(0.7) !important;
}

.gg-flip-click-ready .elementor-flip-box--effect-zoom-in .elementor-flip-box:not(.gg-is-flipped) .elementor-flip-box__back {
	opacity: 0 !important;
	transform: scale(0.7) !important;
}

.gg-flip-click-ready .elementor-flip-box--effect-zoom-in .elementor-flip-box.gg-is-flipped .elementor-flip-box__back {
	opacity: 1 !important;
	transform: scale(1) !important;
}

.gg-flip-click-ready .elementor-flip-box--effect-fade .elementor-flip-box__back {
	transition: opacity var(--gisha-flip-duration, 1s) ease-in-out !important;
}

.gg-flip-click-ready .elementor-flip-box--effect-fade .elementor-flip-box:not(.gg-is-flipped) .elementor-flip-box__back {
	opacity: 0 !important;
}

.gg-flip-click-ready .elementor-flip-box--effect-fade .elementor-flip-box.gg-is-flipped .elementor-flip-box__back {
	opacity: 1 !important;
}

/* Sections.docx reference composition: full-bleed Hero media, compact service
 * icons, open dark benefits, a flat six-step process, and a four-column Footer. */
.gg-home-reference-hero {
	position: relative;
	isolation: isolate;
	overflow: clip;
	background: #06101f;
}

.gg-home-reference-hero::after {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background: linear-gradient(90deg, rgba(4, 18, 37, 0.98) 0%, rgba(4, 18, 37, 0.9) 34%, rgba(4, 18, 37, 0.55) 58%, rgba(4, 18, 37, 0.08) 100%);
	content: "";
}

html[lang^="fa"] .gg-home-reference-hero::after {
	background: linear-gradient(270deg, rgba(4, 18, 37, 0.98) 0%, rgba(4, 18, 37, 0.9) 34%, rgba(4, 18, 37, 0.55) 58%, rgba(4, 18, 37, 0.08) 100%);
}

.gg-home-reference-hero > .gg-home-hero-visual {
	position: absolute;
	inset: 0;
	z-index: 0;
	width: 100%;
	max-width: none;
	min-height: 100%;
	background-position: center center !important;
	background-size: cover !important;
}

html[lang^="fa"] .gg-home-reference-hero > .gg-home-hero-visual {
	transform: scaleX(-1);
}

.gg-home-reference-hero > .gg-home-hero-content {
	position: relative;
	z-index: 2;
	width: 100%;
}

.gg-home-reference-hero .gg-home-hero-copy {
	width: min(48%, 36rem);
	max-width: 36rem;
}

.gg-home-reference-hero .gg-home-hero-copy > .elementor-element:last-child .elementor-widget-button:last-child .elementor-button:hover,
.gg-home-reference-hero .gg-home-hero-copy > .elementor-element:last-child .elementor-widget-button:last-child .elementor-button:focus-visible {
	background: #ffffff;
	color: #06101f;
}

.gg-home-about-image img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	box-shadow: 0 1.25rem 3rem rgba(6, 16, 31, 0.12);
}

.gg-home-services-grid > .elementor-widget-icon-box {
	width: calc((100% - 6.25rem) / 6);
	max-width: calc((100% - 6.25rem) / 6);
	min-width: 0;
	flex: 0 0 calc((100% - 6.25rem) / 6);
	padding: 1.7rem 1rem;
	background: #ffffff;
	border: 1px solid #e0e7f1;
	border-radius: 0.65rem;
	box-shadow: 0 0.75rem 2rem rgba(20, 56, 112, 0.07);
	transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.gg-home-services-grid > .elementor-widget-flip-box {
	width: calc((100% - 6.25rem) / 6);
	max-width: calc((100% - 6.25rem) / 6);
	min-width: 0;
	flex: 0 0 calc((100% - 6.25rem) / 6);
}

.gg-home-services-grid > .elementor-widget-flip-box > .elementor-widget-container,
.gg-home-services-grid .gg-home-service-flip .elementor-flip-box {
	height: 100%;
	min-height: 18.5rem;
}

.gg-home-services-grid .gg-home-service-flip .elementor-flip-box__layer {
	border: 1px solid #e0e7f1;
	border-radius: 0.65rem;
	box-shadow: 0 0.75rem 2rem rgba(20, 56, 112, 0.07);
}

.gg-home-services-grid .gg-home-service-flip .elementor-flip-box__front .elementor-flip-box__layer__description {
	display: none;
}

.gg-home-services-grid .gg-home-service-flip .elementor-flip-box__back .elementor-flip-box__layer__description {
	text-wrap: pretty;
}

.gg-home-services-grid .gg-home-service-flip .elementor-flip-box__button {
	min-height: 2.5rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
}

.gg-home-services-grid,
.gg-home-why-grid {
	flex-wrap: nowrap !important;
}

.gg-home-services-section > .elementor-widget-button {
	align-self: center;
	width: auto;
}

.gg-home-services-section > .elementor-widget-button .elementor-button-wrapper {
	text-align: center;
}

.gg-home-services-grid > .elementor-widget-icon-box:hover,
.gg-home-services-grid > .elementor-widget-icon-box:focus-within {
	border-color: #72a2ff;
	box-shadow: 0 1rem 2.5rem rgba(23, 105, 255, 0.13);
	transform: translateY(-0.25rem);
}

.gg-home-services-grid > .elementor-widget-flip-box:hover .elementor-flip-box__layer,
.gg-home-services-grid > .elementor-widget-flip-box:focus-within .elementor-flip-box__layer {
	border-color: #72a2ff;
	box-shadow: 0 1rem 2.5rem rgba(23, 105, 255, 0.13);
}

.gg-home-services-grid .elementor-icon-box-title,
.gg-home-why-grid .elementor-icon-box-title {
	text-wrap: balance;
}

.gg-home-services-grid .elementor-icon-box-description,
.gg-home-why-grid .elementor-icon-box-description {
	text-wrap: pretty;
}

.gg-home-why-grid {
	width: 100%;
}

.gg-home-why-grid > .elementor-widget-icon-box {
	width: calc((100% - 6.25rem) / 6);
	max-width: calc((100% - 6.25rem) / 6);
	min-width: 0;
	flex: 0 0 calc((100% - 6.25rem) / 6);
	padding: 1rem 0.35rem;
}

.gg-home-process-grid {
	position: relative;
	width: 100%;
}

.gg-home-process-grid::before {
	position: absolute;
	top: 1.4rem;
	right: 7%;
	left: 7%;
	z-index: 0;
	height: 1px;
	background: #cfd9e8;
	content: "";
}

.gg-home-process-grid > .gg-process-step {
	position: relative;
	z-index: 1;
	width: calc((100% - 5.625rem) / 6);
	max-width: calc((100% - 5.625rem) / 6);
	min-width: 0;
	flex: 0 0 calc((100% - 5.625rem) / 6);
	padding: 10px;
	border: 1px solid #e0e7f1;
	border-radius: 0.65rem;
	background: #f3f5f8;
	text-align: center;
}

.gg-home-process-grid > .gg-process-step:not(:last-child)::after {
	position: absolute;
	top: 1.5rem;
	inset-inline-end: -0.85rem;
	color: #1769ff;
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1;
	content: "\2192";
}

html[dir="rtl"] .gg-home-process-grid > .gg-process-step:not(:last-child)::after {
	content: "\2190";
}

.gg-home-process-grid > .gg-process-step > .elementor-widget-heading:first-child {
	display: grid;
	width: 2.85rem;
	height: 2.85rem;
	place-items: center;
	border-radius: 50%;
	background: #1769ff;
	box-shadow: 0 0 0 0.4rem #ffffff;
}

.gg-home-process-grid .elementor-widget-text-editor p {
	margin: 0;
}

.gg-home-final-media-cta {
	position: relative;
	min-height: 20rem !important;
	overflow: clip;
}

.gg-home-final-media-cta .elementor-background-video-container,
.gg-home-final-media-cta .elementor-background-video-container video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gg-home-final-media-cta > .e-con-inner,
.gg-home-final-media-cta > .e-con {
	position: relative;
	z-index: 2;
}

.gg-home-final-media-cta h2 {
	max-width: 52rem;
	font-size: clamp(2rem, 3.3vw, 3rem) !important;
}

.gg-home-final-cta-copy {
	max-width: 52rem;
}

.gg-home-final-cta-actions {
	align-items: flex-end;
}

html[dir="rtl"] .gg-home-final-cta-actions {
	align-items: flex-start;
}

.gg-final-light {
	color-scheme: light;
}

.gg-penultimate-dark {
	color-scheme: dark;
}

.gg-consulting-process .gg-consulting-process-grid {
	position: relative;
	width: 100%;
	flex-wrap: nowrap !important;
}

.gg-consulting-process .gg-consulting-process-grid::before {
	position: absolute;
	top: 1.5rem;
	right: 7%;
	left: 7%;
	z-index: 0;
	height: 1px;
	background: rgba(183, 199, 229, 0.42);
	content: "";
}

.gg-consulting-process .gg-consulting-process-grid > .e-con {
	position: relative;
	z-index: 1;
	width: calc((100% - 5.625rem) / 6);
	max-width: calc((100% - 5.625rem) / 6);
	min-width: 0;
	flex: 0 0 calc((100% - 5.625rem) / 6);
	align-items: center;
	padding: 0 0.35rem;
	border: 0;
	background: transparent;
	box-shadow: none;
	text-align: center;
}

.gg-consulting-process .gg-consulting-process-grid > .e-con > .elementor-widget-heading:first-child {
	display: grid;
	width: 3rem;
	height: 3rem;
	place-items: center;
	border-radius: 50%;
	background: #1769ff;
	box-shadow: 0 0 0 0.42rem #07182d;
}

.gg-consulting-process .gg-consulting-process-grid > .e-con:not(:last-child)::after {
	position: absolute;
	top: 0.85rem;
	inset-inline-end: -0.85rem;
	color: #72a2ff;
	font-size: 1.15rem;
	content: "\2192";
}

html[dir="rtl"] .gg-consulting-process .gg-consulting-process-grid > .e-con:not(:last-child)::after {
	content: "\2190";
}

.gg-reference-footer {
	color-scheme: dark;
}

.gg-footer-language-fa {
	display: none !important;
}

body.gg-source-lang-fa .gg-footer-language-en,
html[lang^="fa"] body:not(.gg-source-lang-en):not(.gg-source-lang-fa) .gg-footer-language-en {
	display: none !important;
}

body.gg-source-lang-fa .gg-footer-language-fa,
html[lang^="fa"] body:not(.gg-source-lang-en):not(.gg-source-lang-fa) .gg-footer-language-fa {
	display: flex !important;
}

.gg-reference-footer-grid {
	justify-content: space-between;
}

.gg-reference-footer-grid > .e-con:nth-child(1) {
	width: 28%;
	max-width: 28%;
}

.gg-reference-footer-grid > .e-con:nth-child(2) {
	width: 17%;
	max-width: 17%;
}

.gg-reference-footer-grid > .e-con:nth-child(3) {
	width: 25%;
	max-width: 25%;
}

.gg-reference-footer-grid > .e-con:nth-child(4) {
	width: 22%;
	max-width: 22%;
}

.gg-footer-brand .elementor-widget-theme-site-logo {
	max-width: 9rem;
}

.gg-footer-list {
	display: grid;
	gap: 0.55rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gg-footer-list a,
.gg-reference-footer a:not(.elementor-button) {
	color: #c7d4ea;
	text-decoration: none;
	transition: color 160ms ease;
}

.gg-footer-list a:hover,
.gg-footer-list a:focus-visible,
.gg-reference-footer a:not(.elementor-button):hover,
.gg-reference-footer a:not(.elementor-button):focus-visible {
	color: #ffffff;
}

.gg-reference-footer p {
	margin-block: 0;
}

@media (max-width: 64rem) {
	.gg-home-services-grid > .elementor-widget-icon-box,
	.gg-home-services-grid > .elementor-widget-flip-box,
	.gg-home-why-grid > .elementor-widget-icon-box {
		width: calc((100% - 2.5rem) / 3);
		max-width: calc((100% - 2.5rem) / 3);
		flex-basis: calc((100% - 2.5rem) / 3);
	}

	.gg-home-services-grid,
	.gg-home-why-grid,
	.gg-consulting-process .gg-consulting-process-grid {
		flex-wrap: wrap !important;
	}

	.gg-consulting-process .gg-consulting-process-grid::before,
	.gg-consulting-process .gg-consulting-process-grid > .e-con:not(:last-child)::after {
		display: none;
	}

	.gg-consulting-process .gg-consulting-process-grid > .e-con {
		width: calc((100% - 2.5rem) / 3);
		max-width: calc((100% - 2.5rem) / 3);
		flex-basis: calc((100% - 2.5rem) / 3);
		padding-block: 1rem;
	}

	.gg-home-process-grid {
		flex-wrap: wrap !important;
		flex-direction: column !important;
		align-items: stretch !important;
		gap: 1.25rem !important;
	}

	.gg-home-process-grid::before {
		display: none;
	}

	.gg-home-process-grid > .gg-process-step {
		width: 100%;
		max-width: 100%;
		flex-basis: auto;
		padding: 10px;
	}

	.gg-home-process-grid > .gg-process-step:not(:last-child) {
		margin-bottom: 1.35rem;
	}

	.gg-home-process-grid > .gg-process-step:not(:last-child)::after,
	html[dir="rtl"] .gg-home-process-grid > .gg-process-step:not(:last-child)::after {
		top: auto;
		right: auto;
		bottom: -1.45rem;
		left: 50%;
		font-size: 1.35rem;
		content: "\2193";
		transform: translateX(-50%);
	}

	.gg-reference-footer-grid > .e-con:nth-child(n) {
		width: calc((100% - 1.75rem) / 2);
		max-width: calc((100% - 1.75rem) / 2);
	}
}

@media (max-width: 47.9375rem) {
	.gg-home-reference-hero::after,
	html[lang^="fa"] .gg-home-reference-hero::after {
		background: rgba(4, 18, 37, 0.82);
	}

	.gg-home-reference-hero .gg-home-hero-copy {
		width: 100%;
		max-width: none;
	}

	.gg-home-reference-hero > .gg-home-hero-visual {
		background-position: center center !important;
	}

	.gg-home-services-grid > .elementor-widget-icon-box,
	.gg-home-services-grid > .elementor-widget-flip-box,
	.gg-home-why-grid > .elementor-widget-icon-box {
		width: calc((100% - 1.25rem) / 2);
		max-width: calc((100% - 1.25rem) / 2);
		flex-basis: calc((100% - 1.25rem) / 2);
	}

	.gg-consulting-process .gg-consulting-process-grid > .e-con {
		width: calc((100% - 1.25rem) / 2);
		max-width: calc((100% - 1.25rem) / 2);
		flex-basis: calc((100% - 1.25rem) / 2);
	}

	.gg-home-final-media-cta {
		min-height: 28rem !important;
	}

	.gg-home-final-cta-copy,
	.gg-home-final-cta-actions {
		width: 100%;
		max-width: none;
		align-items: flex-start;
	}

	.gg-reference-footer-grid > .e-con:nth-child(n) {
		width: 100%;
		max-width: 100%;
	}
}

@media (max-width: 30rem) {
	.gg-home-services-grid > .elementor-widget-icon-box {
		padding: 1.35rem 0.8rem;
	}
}

@media (max-width: 47.9375rem) {
	.site-shell {
		width: min(calc(100% - 2.5rem), var(--gisha-content));
	}

	.site-header__inner,
	.site-footer__inner {
		align-items: flex-start;
		flex-direction: column;
		padding-block: 1.25rem;
	}
}

@media (max-width: 64rem) {
	.gg-site-header > .e-con-inner {
		gap: 0.5rem;
	}

	.gg-logo-panel {
		order: 1;
	}

	.gg-header-nav {
		order: 2;
		max-width: 2.75rem;
		flex: 0 0 2.75rem;
	}

	.gg-header-book {
		order: 3;
	}

	.gg-language-switcher {
		order: 4;
	}

	.gg-header-nav .elementor-menu-toggle {
		width: 2.75rem;
		height: 2.75rem;
		margin: 0;
		padding: 0.65rem;
		border: 0;
		background: transparent !important;
		box-shadow: none !important;
	}

	.gg-header-nav .elementor-menu-toggle:hover,
	.gg-header-nav .elementor-menu-toggle:focus-visible,
	.gg-header-nav .elementor-menu-toggle.elementor-active {
		background: transparent !important;
		box-shadow: none !important;
	}

	.gg-header-book .elementor-button {
		min-height: 2.75rem;
		padding: 0.7rem 1rem;
		font-size: 0.78rem;
		white-space: nowrap;
	}

	.gg-language-switcher .wpml-ls ul {
		gap: 0.25rem;
	}

	.gg-language-switcher .wpml-ls-link {
		width: 1.8rem;
		height: 1.8rem;
		min-height: 1.8rem;
		padding: 0.25rem;
	}
}

@media (max-width: 30rem) {
	.gg-site-header > .e-con-inner {
		gap: 0.35rem;
	}

	.gg-header-book .elementor-button {
		padding-inline: 0.7rem;
		font-size: 0.72rem;
	}

	.gg-language-switcher .wpml-ls-link {
		width: 1.65rem;
		height: 1.65rem;
		min-height: 1.65rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		/* Accessibility override: intentionally limited to non-essential motion. */
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}
