/* GOLDVESTRA Persian design v4 (card #354): targeted refinement of 3 home sections. Scoped to body.gvfa4, loads after fa3.css. */

/* ---------- 1. Intro (team in Dubai) ---------- */
.gvfa4 .fx4-intro { padding-block: clamp(3rem, 5.2vw, 4.5rem) clamp(2.6rem, 4.4vw, 3.8rem); overflow: hidden; }
.gvfa4 .fx4-intro .fx-intro__grid { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: stretch; }
.gvfa4 .fx4-intro .fx-intro__head { position: relative; top: auto; display: flex; flex-direction: column; justify-content: flex-start; padding-top: .35rem; min-height: 100%; }
.gvfa4 .fx4-intro .fx-h2 { font-size: clamp(2rem, 1.2vw + 1.6rem, 2.65rem); line-height: 1.5; margin: 0; }
.gvfa4 .fx4-rule { display: block; width: 64px; height: 3px; margin-top: 1.4rem; border-radius: 3px; background: linear-gradient(90deg, var(--gold-2), rgba(213, 181, 109, 0)); }
.gvfa4 .fx4-arch { position: absolute; inset-inline-start: 0; bottom: -2.2rem; width: clamp(130px, 12vw, 170px); aspect-ratio: 1 / 1.2; border: 1px solid rgba(213, 181, 109, .22); border-bottom: 0; border-radius: 999px 999px 0 0; pointer-events: none; }
.gvfa4 .fx4-arch::before { content: ""; position: absolute; inset: 14% 14% 0; border: 1px solid rgba(213, 181, 109, .14); border-bottom: 0; border-radius: 999px 999px 0 0; }
.gvfa4 .fx4-arch::after { content: ""; position: absolute; inset-inline: 50%; top: 22%; width: 7px; height: 7px; margin-inline: -3.5px; border-radius: 50%; background: var(--gold-2); opacity: .45; }
.gvfa4 .fx4-intro .fx-intro__body p { max-width: 41em; margin-bottom: 1.05rem; }
.gvfa4 .fx4-intro .fx-intro__body p:last-of-type { margin-bottom: 1.5rem; }
.gvfa4 .fx4-intro .fx-intro__lead { margin-bottom: 1.3rem !important; }

/* ---------- 2. World map ---------- */
.gvfa4 .fx3-cor__map { padding: clamp(.8rem, 2vw, 1.6rem) clamp(.6rem, 1.6vw, 1.4rem) 0; }
.gvfa4 .fxw { display: block; width: 100%; height: auto; direction: ltr; }
.gvfa4 .fxw-land { fill: none; stroke: var(--gold-2); stroke-width: 4.6; stroke-linecap: round; opacity: .38; }
.gvfa4 .fxw-arc { stroke: var(--gold-2); stroke-width: 2.2; stroke-linecap: round; stroke-dasharray: 2 3; opacity: .9; animation: fxw-flow 6s linear infinite; }
.gvfa4 .fxw-arc--in, .gvfa4 .fxw-arc--tr { animation-duration: 4s; }
@keyframes fxw-flow { to { stroke-dashoffset: -50; } }
.gvfa4 .fxw-dot { fill: var(--gold-2); stroke: var(--deep); stroke-width: 2.5; }
.gvfa4 .fxw-pulse { fill: var(--gold-2); opacity: .5; transform-box: fill-box; transform-origin: center; animation: fxw-pulse 3.4s ease-out infinite; }
.gvfa4 .fxw-node--eu .fxw-pulse { animation-delay: -.7s; } .gvfa4 .fxw-node--in .fxw-pulse { animation-delay: -1.4s; } .gvfa4 .fxw-node--cn .fxw-pulse { animation-delay: -2.1s; } .gvfa4 .fxw-node--au .fxw-pulse { animation-delay: -2.7s; } .gvfa4 .fxw-node--ca .fxw-pulse { animation-delay: -1s; }
@keyframes fxw-pulse { from { transform: scale(1); opacity: .5; } to { transform: scale(3); opacity: 0; } }
.gvfa4 .fxw text { font-family: var(--yb); font-weight: 700; font-size: 25px; fill: #fff; paint-order: stroke; stroke: var(--deep); stroke-width: 6px; stroke-linejoin: round; direction: rtl; }
.gvfa4 .fxw-hub__t { fill: var(--gold-2) !important; font-size: 32px !important; font-weight: 800 !important; }
.gvfa4 .fxw-hub__s { font-size: 21px !important; font-weight: 500 !important; fill: rgba(255, 255, 255, .85) !important; }
.gvfa4 .fxw-core { fill: #fff; stroke: var(--gold); stroke-width: 4.5; }
.gvfa4 .fxw-ring { fill: none; stroke: var(--gold-2); stroke-width: 1.8; transform-box: fill-box; transform-origin: center; animation: fxw-ring 3.4s ease-out infinite; }
.gvfa4 .fxw-ring--2 { animation-delay: -1.7s; }
@keyframes fxw-ring { from { transform: scale(.6); opacity: .9; } to { transform: scale(3); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .gvfa4 .fxw * { animation: none !important; } }

.gvfa4 .fxw-scroll { direction: ltr; }
.gvfa4 .fxw-hint { display: none; }

/* ---------- 3. Quote section ---------- */
.gvfa4 .fx-cta { align-items: center; padding-block: clamp(2rem, 4vw, 3.2rem) !important; gap: clamp(1.6rem, 4vw, 4rem); }
.gvfa4 .fx-cta__grid { position: relative; align-self: stretch; display: flex; flex-direction: column; justify-content: center; }
.gvfa4 .fx4-cta__tag { display: inline-flex; align-items: center; gap: .5rem; margin: 0 0 .9rem; padding: .25rem .9rem; border: 1px solid rgba(213, 181, 109, .45); border-radius: 999px; color: var(--gold-2); font-size: .9375rem !important; font-weight: 700; }
.gvfa4 .fx-cta .fx-h2 { font-size: clamp(2.1rem, 1.6vw + 1.6rem, 3rem); line-height: 1.4; margin-bottom: 1rem; }
.gvfa4 .fx-cta__copy > p:not(.fx4-cta__tag):not(.fx-cta__alt):not(.fx-cta__contact) { max-width: 31em; line-height: 2; }
.gvfa4 .fx4-ben { list-style: none; margin: 1.6rem 0 1.5rem; padding: 0; display: grid; gap: 1.05rem; }
.gvfa4 .fx4-ben li { display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 1rem; align-items: start; margin: 0; }
.gvfa4 .fx4-ben__i { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px; border: 1px solid rgba(213, 181, 109, .4); background: rgba(213, 181, 109, .09); color: var(--gold-2); }
.gvfa4 .fx4-ben b { display: block; font-size: 1.1875rem; font-weight: 800; color: #fff; line-height: 1.6; }
.gvfa4 .fx4-ben span.fx4-ben__d { display: block; font-size: 1rem; line-height: 1.85; color: rgba(255, 255, 255, .78); }
.gvfa4 .fx-cta p.fx4-cta__tag, .gvfa4 .fx4-ben span.fx4-ben__d { font-size: 1rem; }
.gvfa4 .fx4-globe { position: absolute; inset-inline-end: -9%; bottom: -14%; width: min(360px, 62%); aspect-ratio: 1; color: var(--gold-2); opacity: .17; pointer-events: none; z-index: -1; }
.gvfa4 .fx-cta__alt, .gvfa4 .fx-cta__contact { position: relative; }
/* The form's privacy note had flex-basis 260px inside a column flexbox = 260px of empty height under the button. */
.gvfa4 .fx-cta .gvf--compact .gvf-actions { gap: .85rem; }
.gvfa4 .fx-cta .gvf-note { flex: 0 0 auto; }
.gvfa4 .fx-cta .gvf { padding: clamp(1.4rem, 2.6vw, 2.2rem); }
.gvfa4 .fx-cta .gvf-wrap { margin-top: 0; }
.gvfa4 .fx-cta .gvf--compact .gvf-grid { margin-top: 0; }

/* ---------- Responsive ---------- */
@media (max-width: 1000px) {
	.gvfa4 .fx4-intro .fx-intro__grid { grid-template-columns: 1fr; gap: 1.6rem; }
	.gvfa4 .fx4-intro .fx-intro__head { min-height: 0; }
	.gvfa4 .fx4-arch { display: none; }
	.gvfa4 .fx-cta__grid { align-self: auto; }
	.gvfa4 .fx4-globe { inset-inline-end: -6%; bottom: -6%; width: 220px; }
}
@media (max-width: 680px) {
	.gvfa4 .fx4-intro { padding-block: 2.8rem 2.4rem; }
	.gvfa4 .fx4-rule { margin-top: 1rem; }
	.gvfa4 .fx3-cor__map { padding-inline: 0; }
	.gvfa4 .fxw-scroll { overflow-x: auto; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; scrollbar-width: thin; scrollbar-color: rgba(213, 181, 109, .5) transparent; padding-bottom: .4rem; }
	.gvfa4 .fxw { min-width: 880px; }
	.gvfa4 .fxw text { font-size: 22px; stroke-width: 5.5px; }
	.gvfa4 .fxw-hub__t { font-size: 29px !important; }
	.gvfa4 .fxw-hub__s { font-size: 19px !important; }
	.gvfa4 .fxw-hint { display: block; margin: 0; padding: .2rem 1rem .3rem; text-align: center; font-size: .875rem; color: rgba(255, 255, 255, .6); }
	.gvfa4 .fx4-ben { gap: .9rem; margin-block: 1.3rem; }
	.gvfa4 .fx4-ben li { grid-template-columns: 40px minmax(0, 1fr); gap: .8rem; }
	.gvfa4 .fx4-ben__i { width: 40px; height: 40px; border-radius: 12px; }
	.gvfa4 .fx-cta .gvf { padding: 1.3rem 1.1rem; }
}
