/*! WindspeedSEO Visual System - Google Analytics 4 page objects v1.5.3
 * Objects built only for the GA4 integration page: a visitor-journey connection card (hero), a value balance scale,
 * a landing-page board that re-sorts itself by value, a key-events coin jar, two puzzle pieces (Search Console + GA4),
 * three settings switches and a "view only" gallery rope. One root class (.ws-ga) on distinct element tags, styled by
 * structure. Colours: the WindspeedSEO brand kit only (slate, brand green, data blue, neutrals); the kit's error red appears only where it means a problem.
 * The FAQ and CTA keep the standard site style.
 * Loads after ws-visual-gs.css.
 */

/* two hero parts lost their single-use classes to free global class slots; styled by structure now */
html .elementor .ws-hx:has(> .ws-hx-radar) { display: grid; grid-template-columns: minmax(0, 200px) minmax(0, 1fr); gap: 16px; align-items: center; }
@media (max-width: 599px) { html .elementor .ws-hx:has(> .ws-hx-radar) { grid-template-columns: minmax(0, 1fr); } }
html .elementor .ws-hx-report > .ws-hx-chip { position: absolute; right: 2%; bottom: 4px; z-index: 3; box-shadow: 0 8px 20px -10px rgba(83, 116, 24, .55); }
.ws-js .ws-hx-report > .ws-hx-chip { opacity: 0; transform: translateY(10px) scale(.9); }
.ws-js .ws-in .ws-hx-report > .ws-hx-chip { animation: ws-hx-send 8s var(--ws-ease-out) 2.6s infinite; }

.elementor .ws-ga { --ga-orange: #6B951B; --ga-amber: #83B422; --ga-gold: #D8ECAE; --ga-coral: #4C9CC8; --ga-teal: #286788; --ga-plum: #202A38; --ga-cream: #F7FBEF; --ga-ink: #141B26; --ga-muted: #4D5C74; }
html .elementor .ws-ga .e-div-block-base { min-width: 0; }
html .elementor .ws-ga .e-paragraph-base, html .elementor .ws-ga .e-heading-base { margin: 0; }

/* ============================================================ HERO: VISITOR JOURNEY  (.ws-hero div.ws-ga) */
html .elementor .ws-hero div.ws-ga { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 24px; padding: 38px 34px 32px; border-radius: 30px; color: var(--ga-ink); background: #fff; box-shadow: 0 40px 80px -40px rgba(20, 27, 38, .9); }
html .elementor .ws-hero div.ws-ga::before { content: ""; position: absolute; inset: auto; top: 0; left: 0; right: 0; bottom: auto; width: auto; height: 6px; background: linear-gradient(90deg, var(--ga-orange), var(--ga-amber) 50%, var(--ga-coral)); transform-origin: left center; }
html .elementor .ws-hero div.ws-ga > .e-con:first-child { display: flex; align-items: center; gap: 14px; }
html .elementor .ws-hero div.ws-ga > .e-con:first-child > .e-con:first-child { flex: 0 0 auto; width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center; color: var(--ga-orange); background: #fff; border: 1px solid #EDF6DB; box-shadow: 0 8px 18px -12px rgba(20, 27, 38, .6); }
html .elementor .ws-hero div.ws-ga > .e-con:first-child > .e-con:first-child .ws-icon { width: 24px; height: 24px; }
html .elementor .ws-hero div.ws-ga > .e-con:first-child > :nth-child(2) { font-size: 21px; font-weight: 800; letter-spacing: -.01em; }
html .elementor .ws-hero div.ws-ga > .e-con:first-child > :last-child { margin-left: auto; display: inline-flex; align-items: center; gap: 8px; padding: 6px 13px; border-radius: 9999px; font-size: 13px; font-weight: 800; color: #2A3546; background: #EDF6DB; white-space: nowrap; }
html .elementor .ws-hero div.ws-ga > .e-con:first-child > :last-child::before { content: ""; width: 8px; height: 8px; border-radius: 9999px; background: var(--ga-teal); }
/* the path */
html .elementor .ws-hero div.ws-ga > .e-con:nth-child(2) { position: relative; display: flex; flex-direction: column; gap: 18px; }
html .elementor .ws-hero div.ws-ga > .e-con:nth-child(2)::before { content: ""; position: absolute; inset: auto; left: 27px; top: 28px; bottom: 28px; right: auto; width: 3px; height: auto; background: repeating-linear-gradient(180deg, var(--ga-amber) 0 7px, transparent 7px 13px); }
html .elementor .ws-hero div.ws-ga > .e-con:nth-child(2)::after { content: ""; position: absolute; inset: auto; left: 22px; top: 28px; right: auto; bottom: auto; width: 13px; height: 13px; border-radius: 9999px; background: var(--ga-orange); box-shadow: 0 0 0 5px rgba(107, 149, 27, .2); opacity: 0; }
html .elementor .ws-hero div.ws-ga > .e-con:nth-child(2) > .e-con { --c: var(--ga-orange); --bg: #EDF6DB; position: relative; z-index: 1; display: grid; grid-template-columns: 56px minmax(0, 1fr); align-items: center; gap: 16px; }
html .elementor .ws-hero div.ws-ga > .e-con:nth-child(2) > :nth-child(3) { --c: var(--ga-teal); --bg: #EDF6DB; }
html .elementor .ws-hero div.ws-ga > .e-con:nth-child(2) > .e-con > .e-con:first-child { width: 56px; height: 56px; border-radius: 9999px; display: grid; place-items: center; color: var(--c); background: var(--bg); border: 3px solid #fff; box-shadow: 0 0 0 1px #EDF6DB; }
html .elementor .ws-hero div.ws-ga > .e-con:nth-child(2) > .e-con > .e-con:first-child .ws-icon { width: 23px; height: 23px; }
html .elementor .ws-hero div.ws-ga > .e-con:nth-child(2) > .e-con > .e-con:last-child { display: flex; flex-direction: column; gap: 2px; }
html .elementor .ws-hero div.ws-ga > .e-con:nth-child(2) > .e-con > .e-con:last-child > :first-child { font-size: 17.5px; font-weight: 800; line-height: 1.25; }
html .elementor .ws-hero div.ws-ga > .e-con:nth-child(2) > .e-con > .e-con:last-child > :last-child { font-size: 13.5px; font-weight: 600; color: var(--ga-muted); }
/* the win */
html .elementor .ws-hero div.ws-ga > .e-con:nth-child(3) { display: flex; align-items: center; gap: 16px; padding: 18px 22px; border-radius: 22px; color: #fff; background: linear-gradient(135deg, var(--ga-orange), var(--ga-amber)); box-shadow: 0 18px 30px -18px rgba(107, 149, 27, .9); }
html .elementor .ws-hero div.ws-ga > .e-con:nth-child(3) > :first-child { font-size: 46px; font-weight: 900; line-height: 1; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
html .elementor .ws-hero div.ws-ga > .e-con:nth-child(3) > :last-child { font-size: 15.5px; font-weight: 700; line-height: 1.3; }
/* motion */
.ws-js .ws-hero div.ws-ga::before { scale: 0 1; }
.ws-js .ws-hero.ws-in div.ws-ga::before { scale: 1 1; transition: scale 900ms var(--ws-ease-out) 200ms; }
.ws-js .ws-hero div.ws-ga > .e-con:nth-child(2) > .e-con { opacity: 0; translate: -14px 0; }
.ws-js .ws-hero.ws-in div.ws-ga > .e-con:nth-child(2) > .e-con { opacity: 1; translate: 0 0; transition: opacity 400ms ease-out calc(400ms + var(--ws-i, 0) * 350ms), translate 600ms var(--ws-ease-out) calc(400ms + var(--ws-i, 0) * 350ms); }
.ws-js .ws-hero.ws-in div.ws-ga > .e-con:nth-child(2)::after { animation: ws-ga-walk 6s ease-in-out 1.6s infinite; }
@keyframes ws-ga-walk { 0% { top: 28px; opacity: 0; } 8% { opacity: 1; } 45%, 50% { top: calc(50% - 6px); } 88% { top: calc(100% - 41px); opacity: 1; } 100% { top: calc(100% - 41px); opacity: 0; } }
.ws-js .ws-hero.ws-in div.ws-ga > .e-con:nth-child(2) > .e-con > .e-con:first-child { animation: ws-ga-light 6s ease-in-out calc(1.6s + var(--ws-i, 0) * 2.6s) infinite; }
@keyframes ws-ga-light { 0%, 18%, 100% { scale: 1; box-shadow: 0 0 0 1px #EDF6DB; } 7% { scale: 1.12; box-shadow: 0 0 0 7px rgba(131, 180, 34, .28); } }
.ws-js .ws-hero div.ws-ga > .e-con:nth-child(3) { opacity: 0; scale: .9; }
.ws-js .ws-hero.ws-in div.ws-ga > .e-con:nth-child(3) { opacity: 1; scale: 1; transition: opacity 400ms ease-out 1.5s, scale 650ms cubic-bezier(.34, 1.6, .64, 1) 1.5s; }
@media (max-width: 767px) {
  html .elementor .ws-hero div.ws-ga { gap: 20px; padding: 30px 18px 22px; }
  html .elementor .ws-hero div.ws-ga > .e-con:first-child > .e-con:first-child { width: 44px; height: 44px; border-radius: 13px; }
  html .elementor .ws-hero div.ws-ga > .e-con:first-child > :nth-child(2) { font-size: 18px; }
  html .elementor .ws-hero div.ws-ga > .e-con:first-child > :last-child { padding: 5px 10px; font-size: 12px; }
  html .elementor .ws-hero div.ws-ga > .e-con:nth-child(2) > .e-con { grid-template-columns: 48px minmax(0, 1fr); gap: 14px; }
  html .elementor .ws-hero div.ws-ga > .e-con:nth-child(2) > .e-con > .e-con:first-child { width: 48px; height: 48px; }
  html .elementor .ws-hero div.ws-ga > .e-con:nth-child(2)::before { left: 23px; top: 24px; bottom: 24px; }
  html .elementor .ws-hero div.ws-ga > .e-con:nth-child(2)::after { left: 18px; }
  html .elementor .ws-hero div.ws-ga > .e-con:nth-child(2) > .e-con > .e-con:last-child > :first-child { font-size: 16px; }
  html .elementor .ws-hero div.ws-ga > .e-con:nth-child(3) { padding: 16px 18px; }
  html .elementor .ws-hero div.ws-ga > .e-con:nth-child(3) > :first-child { font-size: 38px; }
  html .elementor .ws-hero div.ws-ga > .e-con:nth-child(3) > :last-child { font-size: 14px; }
}

/* ============================================================ A. VALUE BALANCE SCALE  (header.ws-ga) */
html .elementor header.ws-ga { position: relative; overflow: hidden; display: flex; flex-direction: column; align-items: center; gap: 18px; padding: 72px 40px 40px; border-radius: 36px; text-align: center; color: #fff; background: radial-gradient(circle at 15% 10%, rgba(76, 156, 200, .35), transparent 40%), radial-gradient(circle at 90% 90%, rgba(131, 180, 34, .3), transparent 45%), var(--ga-plum); }
html .elementor header.ws-ga > .e-heading-base { max-width: 760px; font-size: clamp(32px, 4.4vw, 54px); line-height: 1.08; letter-spacing: -.025em; color: #fff; }
html .elementor header.ws-ga > .e-paragraph-base { max-width: 680px; font-size: 18px; line-height: 1.6; color: #E2F1F8; }
html .elementor header.ws-ga > .e-con { position: relative; width: min(640px, 100%); height: 300px; margin-top: 16px; }
/* the post and base */
html .elementor header.ws-ga > .e-con > .e-con:last-child { position: absolute; left: 50%; top: 44px; bottom: 14px; width: 12px; margin-left: -6px; border-radius: 6px; background: linear-gradient(90deg, #6B951B, var(--ga-gold), #6B951B); }
html .elementor header.ws-ga > .e-con > .e-con:last-child::after { content: ""; position: absolute; inset: auto; left: 50%; bottom: -14px; width: 150px; height: 14px; margin-left: -75px; border-radius: 10px 10px 4px 4px; background: linear-gradient(90deg, #6B951B, var(--ga-gold), #6B951B); }
/* the beam */
html .elementor header.ws-ga > .e-con > .e-con:first-child { position: absolute; z-index: 2; left: 8%; right: 8%; top: 38px; width: auto; height: 10px; border-radius: 10px; background: linear-gradient(180deg, #D8ECAE, var(--ga-amber)); transform-origin: 50% 50%; rotate: 8deg; }
html .elementor header.ws-ga > .e-con > .e-con:first-child::after { content: ""; position: absolute; inset: auto; left: 50%; top: 50%; width: 24px; height: 24px; margin: -12px 0 0 -12px; border-radius: 9999px; background: #fff; box-shadow: 0 0 0 5px rgba(216, 236, 174, .5); }
/* the pans */
html .elementor header.ws-ga > .e-con > .e-con:first-child > .e-con { position: absolute; top: 58px; width: 196px; display: flex; flex-direction: column; gap: 3px; padding: 16px 14px; border-radius: 20px; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .28); backdrop-filter: blur(4px); transform-origin: 50% -58px; rotate: -8deg; }
html .elementor header.ws-ga > .e-con > .e-con:first-child > :first-child { left: -60px; }
html .elementor header.ws-ga > .e-con > .e-con:first-child > :last-child { right: -60px; background: rgba(40, 103, 136, .22); border-color: rgba(190, 221, 121, .6); }
html .elementor header.ws-ga > .e-con > .e-con:first-child > .e-con::before { content: ""; position: absolute; inset: auto; left: 50%; bottom: 100%; top: auto; right: auto; width: 2px; height: 48px; margin-left: -1px; background: var(--ga-gold); }
html .elementor header.ws-ga > .e-con > .e-con:first-child > .e-con > :first-child { font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--ga-gold); }
html .elementor header.ws-ga > .e-con > .e-con:first-child > .e-con > :nth-child(2) { font-size: 20px; font-weight: 800; color: #fff; font-variant-numeric: tabular-nums; }
html .elementor header.ws-ga > .e-con > .e-con:first-child > .e-con > :last-child { font-size: 16px; font-weight: 800; color: #E7A6A2; }
html .elementor header.ws-ga > .e-con > .e-con:first-child > :last-child > :last-child { color: #D8ECAE; }
.ws-js header.ws-ga.ws-in > .e-con > .e-con:first-child { animation: ws-ga-tip 7s ease-in-out infinite; }
.ws-js header.ws-ga.ws-in > .e-con > .e-con:first-child > .e-con { animation: ws-ga-level 7s ease-in-out infinite; }
@keyframes ws-ga-tip { 0%, 6% { rotate: -5deg; } 22% { rotate: 11deg; } 28% { rotate: 6deg; } 34% { rotate: 9deg; } 38%, 88% { rotate: 8deg; } 100% { rotate: -5deg; } }
@keyframes ws-ga-level { 0%, 6% { rotate: 5deg; } 22% { rotate: -11deg; } 28% { rotate: -6deg; } 34% { rotate: -9deg; } 38%, 88% { rotate: -8deg; } 100% { rotate: 5deg; } }
@media (max-width: 767px) {
  html .elementor header.ws-ga { padding: 52px 16px 30px; border-radius: 28px; }
  html .elementor header.ws-ga > .e-paragraph-base { font-size: 16.5px; }
  html .elementor header.ws-ga > .e-con { height: 260px; }
  html .elementor header.ws-ga > .e-con > .e-con:first-child { left: 22%; right: 22%; }
  html .elementor header.ws-ga > .e-con > .e-con:first-child > .e-con { width: 128px; padding: 12px 8px; }
  html .elementor header.ws-ga > .e-con > .e-con:first-child > :first-child { left: -56px; }
  html .elementor header.ws-ga > .e-con > .e-con:first-child > :last-child { right: -56px; }
  html .elementor header.ws-ga > .e-con > .e-con:first-child > .e-con > :first-child { font-size: 10.5px; }
  html .elementor header.ws-ga > .e-con > .e-con:first-child > .e-con > :nth-child(2) { font-size: 16px; }
  html .elementor header.ws-ga > .e-con > .e-con:first-child > .e-con > :last-child { font-size: 14px; }
}

/* ============================================================ B. LANDING PAGES, RE-SORTED BY VALUE  (article.ws-ga) */
html .elementor article.ws-ga { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); align-items: center; gap: 56px; }
html .elementor article.ws-ga > .e-con:first-child { display: flex; flex-direction: column; gap: 16px; }
html .elementor article.ws-ga > .e-con:first-child > .e-heading-base { font-size: clamp(28px, 3.4vw, 42px); line-height: 1.12; letter-spacing: -.02em; color: var(--ga-ink); }
html .elementor article.ws-ga > .e-con:first-child > .e-paragraph-base { font-size: 17.5px; line-height: 1.6; color: #4D5C74; }
html .elementor article.ws-ga > .e-con:first-child > .e-paragraph-base:last-child { width: fit-content; font-size: 19px; font-weight: 800; color: var(--ga-ink); background: linear-gradient(transparent 62%, #D8ECAE 62%); }
html .elementor article.ws-ga > .e-con:last-child { display: flex; flex-direction: column; gap: 18px; padding: 26px; border-radius: 30px; background: linear-gradient(160deg, var(--ga-cream), #EDF6DB); box-shadow: 0 30px 60px -40px rgba(20, 27, 38, .6); }
/* the toggle */
html .elementor article.ws-ga > .e-con:last-child > .e-con:first-child { position: relative; align-self: flex-start; display: grid; grid-template-columns: 1fr 1fr; padding: 5px; border-radius: 9999px; background: #fff; box-shadow: 0 6px 16px -10px rgba(20, 27, 38, .5); }
html .elementor article.ws-ga > .e-con:last-child > .e-con:first-child::before { content: ""; position: absolute; inset: auto; top: 5px; left: 5px; bottom: 5px; right: auto; width: calc(50% - 5px); height: auto; border-radius: 9999px; background: var(--ga-plum); }
html .elementor article.ws-ga > .e-con:last-child > .e-con:first-child > .e-paragraph-base { position: relative; z-index: 1; padding: 8px 18px; font-size: 13.5px; font-weight: 800; text-align: center; color: var(--ga-muted); white-space: nowrap; }
html .elementor article.ws-ga > .e-con:last-child > .e-con:first-child > :first-child { color: #fff; }
/* the rows */
html .elementor article.ws-ga > .e-con:last-child > .e-con:last-child { display: flex; flex-direction: column; gap: 10px; }
html .elementor article.ws-ga > .e-con:last-child > .e-con:last-child > .e-con { --w: 2%; --d: 0px; position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 12px; row-gap: 7px; height: 64px; padding: 10px 16px; border-radius: 16px; background: #fff; box-shadow: 0 8px 18px -14px rgba(20, 27, 38, .6); }
html .elementor article.ws-ga > .e-con:last-child > .e-con:last-child > .e-con > :first-child { font-size: 15px; font-weight: 800; color: var(--ga-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
html .elementor article.ws-ga > .e-con:last-child > .e-con:last-child > .e-con > :nth-child(2) { font-size: 12.5px; font-weight: 700; color: var(--ga-muted); white-space: nowrap; font-variant-numeric: tabular-nums; }
html .elementor article.ws-ga > .e-con:last-child > .e-con:last-child > .e-con > .e-con { grid-column: 1 / -1; width: var(--w); height: 8px; border-radius: 9999px; background: linear-gradient(90deg, var(--ga-orange), var(--ga-amber)); }
html .elementor article.ws-ga > .e-con:last-child > .e-con:last-child > :nth-child(1) { --w: 2%; --d: 296px; }
html .elementor article.ws-ga > .e-con:last-child > .e-con:last-child > :nth-child(2) { --w: 5%; --d: 148px; }
html .elementor article.ws-ga > .e-con:last-child > .e-con:last-child > :nth-child(3) { --w: 88%; --d: -74px; }
html .elementor article.ws-ga > .e-con:last-child > .e-con:last-child > :nth-child(4) { --w: 100%; --d: -222px; }
html .elementor article.ws-ga > .e-con:last-child > .e-con:last-child > :nth-child(5) { --w: 50%; --d: -148px; }
html .elementor article.ws-ga > .e-con:last-child > .e-con:last-child > :nth-child(-n+2) > .e-con { background: #E2F1F8; }
.ws-js article.ws-ga.ws-in > .e-con:last-child > .e-con:last-child > .e-con { animation: ws-ga-sort 9s cubic-bezier(.65, 0, .35, 1) 1s infinite; }
@keyframes ws-ga-sort { 0%, 25% { translate: 0 0; } 40%, 85% { translate: 0 var(--d); } 100% { translate: 0 0; } }
.ws-js article.ws-ga.ws-in > .e-con:last-child > .e-con:first-child::before { animation: ws-ga-knob 9s cubic-bezier(.65, 0, .35, 1) 1s infinite; }
@keyframes ws-ga-knob { 0%, 25% { translate: 0 0; } 32%, 85% { translate: 100% 0; } 95%, 100% { translate: 0 0; } }
.ws-js article.ws-ga.ws-in > .e-con:last-child > .e-con:first-child > :first-child { animation: ws-ga-tog-a 9s step-end 1s infinite; }
.ws-js article.ws-ga.ws-in > .e-con:last-child > .e-con:first-child > :last-child { animation: ws-ga-tog-b 9s step-end 1s infinite; }
@keyframes ws-ga-tog-a { 0% { color: #fff; } 30% { color: var(--ga-muted); } 92% { color: #fff; } }
@keyframes ws-ga-tog-b { 0% { color: var(--ga-muted); } 30% { color: #fff; } 92% { color: var(--ga-muted); } }
@media (max-width: 1024px) {
  html .elementor article.ws-ga { grid-template-columns: minmax(0, 1fr); gap: 36px; }
}
@media (max-width: 640px) {
  html .elementor article.ws-ga > .e-con:last-child { padding: 16px; border-radius: 24px; }
  html .elementor article.ws-ga > .e-con:last-child > .e-con:last-child > .e-con { padding: 10px 12px; }
  html .elementor article.ws-ga > .e-con:last-child > .e-con:last-child > .e-con > :first-child { font-size: 14px; }
  html .elementor article.ws-ga > .e-con:last-child > .e-con:last-child > .e-con > :nth-child(2) { font-size: 11.5px; }
}

/* ============================================================ C. KEY-EVENTS COIN JAR  (section.ws-ga) */
html .elementor section.ws-ga { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 56px; padding: 56px 52px; border-radius: 36px; background: linear-gradient(135deg, #EDF6DB, #F7FBEF 70%); }
html .elementor section.ws-ga > .e-con:first-child { position: relative; height: 390px; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; }
html .elementor section.ws-ga > .e-con:first-child > .e-con:first-child { position: absolute; inset: 0; z-index: 2; pointer-events: none; }
html .elementor section.ws-ga > .e-con:first-child > .e-con:first-child > .e-paragraph-base { --x: 2%; position: absolute; top: 0; left: var(--x); width: 96px; height: 96px; display: grid; place-items: center; padding: 10px; border-radius: 9999px; text-align: center; font-size: 12.5px; font-weight: 900; line-height: 1.15; color: #fff; background: radial-gradient(circle at 35% 30%, #BEDD79, var(--ga-amber) 45%, var(--ga-orange)); border: 4px solid var(--ga-gold); box-shadow: 0 12px 20px -12px rgba(42, 53, 70, .8); }
html .elementor section.ws-ga > .e-con:first-child > .e-con:first-child > :nth-child(2) { --x: calc(34% - 48px); }
html .elementor section.ws-ga > .e-con:first-child > .e-con:first-child > :nth-child(3) { --x: calc(66% - 48px); }
html .elementor section.ws-ga > .e-con:first-child > .e-con:first-child > :nth-child(4) { --x: calc(98% - 96px); }
/* the jar */
html .elementor section.ws-ga > .e-con:first-child > .e-con:last-child { position: relative; overflow: hidden; width: 230px; height: 200px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; padding: 20px; border: 5px solid rgba(40, 103, 136, .55); border-top: 0; border-radius: 0 0 48px 48px; background: rgba(255, 255, 255, .65); text-align: center; }
html .elementor section.ws-ga > .e-con:first-child > .e-con:last-child::before { content: ""; position: absolute; inset: auto; left: 0; right: 0; bottom: 0; top: auto; width: auto; height: 62%; background: linear-gradient(180deg, var(--ga-gold), var(--ga-amber)); transform-origin: 50% 100%; }
html .elementor section.ws-ga > .e-con:first-child > .e-con:last-child > .e-paragraph-base { position: relative; z-index: 1; }
html .elementor section.ws-ga > .e-con:first-child > .e-con:last-child > :first-child { font-size: 56px; font-weight: 900; line-height: 1; letter-spacing: -.03em; color: var(--ga-plum); font-variant-numeric: tabular-nums; }
html .elementor section.ws-ga > .e-con:first-child > .e-con:last-child > :last-child { max-width: 160px; font-size: 13.5px; font-weight: 800; line-height: 1.3; color: var(--ga-ink); }
/* the copy */
html .elementor section.ws-ga > .e-con:last-child { display: flex; flex-direction: column; gap: 16px; }
html .elementor section.ws-ga > .e-con:last-child > .e-heading-base { font-size: clamp(28px, 3.4vw, 42px); line-height: 1.12; letter-spacing: -.02em; color: var(--ga-ink); }
html .elementor section.ws-ga > .e-con:last-child > .e-paragraph-base { font-size: 17.5px; line-height: 1.6; color: #4D5C74; }
html .elementor section.ws-ga > .e-con:last-child > .e-paragraph-base:last-child { padding: 14px 18px; border-left: 5px solid var(--ga-teal); border-radius: 6px 16px 16px 6px; font-size: 16px; font-weight: 700; color: #2A3546; background: rgba(255, 255, 255, .7); }
.ws-js section.ws-ga.ws-in > .e-con:first-child > .e-con:first-child > .e-paragraph-base { animation: ws-ga-drop 8s cubic-bezier(.5, 0, .75, .4) calc(.6s + var(--ws-i, 0) * 1.3s) infinite; }
@keyframes ws-ga-drop { 0% { top: 0; left: var(--x); scale: 1; opacity: 1; } 22% { top: 0; left: var(--x); scale: 1; opacity: 1; } 34% { top: 205px; left: calc(50% - 48px); scale: .6; opacity: 1; } 38%, 92% { top: 225px; left: calc(50% - 48px); scale: .4; opacity: 0; } 100% { top: 0; left: var(--x); scale: 1; opacity: 1; } }
.ws-js section.ws-ga.ws-in > .e-con:first-child > .e-con:last-child::before { animation: ws-ga-fill 8s ease-in-out .6s infinite; }
@keyframes ws-ga-fill { 0%, 18% { scale: 1 .35; } 40% { scale: 1 .55; } 56% { scale: 1 .75; } 72%, 92% { scale: 1 1; } 100% { scale: 1 .35; } }
@media (max-width: 1024px) {
  html .elementor section.ws-ga { grid-template-columns: minmax(0, 1fr); gap: 36px; padding: 48px 32px; }
  html .elementor section.ws-ga > .e-con:last-child { order: -1; }
}
@media (max-width: 640px) {
  html .elementor section.ws-ga { padding: 40px 18px; border-radius: 28px; }
  html .elementor section.ws-ga > .e-con:first-child { height: 340px; }
  html .elementor section.ws-ga > .e-con:first-child > .e-con:first-child > .e-paragraph-base { width: 76px; height: 76px; padding: 6px; font-size: 10.5px; border-width: 3px; }
  html .elementor section.ws-ga > .e-con:first-child > .e-con:first-child > :nth-child(2) { --x: calc(34% - 38px); }
  html .elementor section.ws-ga > .e-con:first-child > .e-con:first-child > :nth-child(3) { --x: calc(66% - 38px); }
  html .elementor section.ws-ga > .e-con:first-child > .e-con:first-child > :nth-child(4) { --x: calc(98% - 76px); }
  html .elementor section.ws-ga > .e-con:first-child > .e-con:last-child { width: 200px; height: 180px; }
  @keyframes ws-ga-drop { 0% { top: 0; left: var(--x); scale: 1; opacity: 1; } 22% { top: 0; left: var(--x); scale: 1; opacity: 1; } 34% { top: 180px; left: calc(50% - 38px); scale: .6; opacity: 1; } 38%, 92% { top: 200px; left: calc(50% - 38px); scale: .4; opacity: 0; } 100% { top: 0; left: var(--x); scale: 1; opacity: 1; } }
}

/* ============================================================ D. TWO PUZZLE PIECES  (aside.ws-ga) */
html .elementor aside.ws-ga { display: flex; flex-direction: column; align-items: center; gap: 18px; padding: 64px 40px; border-radius: 36px; text-align: center; background: linear-gradient(115deg, #F1F8FC, #F7FBEF 55%, #EDF6DB); }
html .elementor aside.ws-ga > .e-heading-base { max-width: 760px; font-size: clamp(30px, 3.6vw, 46px); line-height: 1.1; letter-spacing: -.02em; color: var(--ga-ink); }
html .elementor aside.ws-ga > .e-paragraph-base:nth-child(2) { max-width: 660px; font-size: 17.5px; line-height: 1.6; color: #4D5C74; }
html .elementor aside.ws-ga > .e-con { display: flex; justify-content: center; margin: 22px 0 8px; }
html .elementor aside.ws-ga > .e-con > .e-con { position: relative; width: 320px; max-width: 50%; display: flex; flex-direction: column; gap: 8px; padding: 30px 40px 30px 30px; text-align: left; color: #fff; background: #4C9CC8; border-radius: 26px 0 0 26px; box-shadow: 0 24px 40px -26px rgba(20, 27, 38, .8); }
html .elementor aside.ws-ga > .e-con > .e-con:last-child { padding: 30px 30px 30px 46px; background: var(--ga-orange); border-radius: 0 26px 26px 0; }
html .elementor aside.ws-ga > .e-con > .e-con:first-child::after { content: ""; position: absolute; inset: auto; right: -22px; top: 50%; width: 44px; height: 44px; margin-top: -22px; border-radius: 9999px; background: #4C9CC8; z-index: 2; }
html .elementor aside.ws-ga > .e-con > .e-con > :first-child { font-size: 12.5px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; opacity: .9; }
html .elementor aside.ws-ga > .e-con > .e-con > :last-child { position: relative; z-index: 3; font-size: 18px; font-weight: 700; line-height: 1.4; }
html .elementor aside.ws-ga > .e-paragraph-base:nth-child(4) { display: inline-flex; align-items: center; gap: 10px; padding: 12px 22px; border-radius: 9999px; font-size: 16.5px; font-weight: 800; color: #fff; background: var(--ga-plum); box-shadow: 0 16px 30px -18px rgba(32, 42, 56, .9); }
html .elementor aside.ws-ga > .e-paragraph-base:nth-child(4)::before { content: "="; font-size: 20px; color: var(--ga-gold); }
html .elementor aside.ws-ga > .e-paragraph-base:last-child { max-width: 640px; font-size: 15.5px; line-height: 1.6; color: #4D5C74; }
html .elementor aside.ws-ga > .e-paragraph-base:last-child a { color: #6B951B; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.ws-js aside.ws-ga.ws-in > .e-con > .e-con:first-child { animation: ws-ga-join-a 7s cubic-bezier(.34, 1.3, .64, 1) .4s infinite; }
.ws-js aside.ws-ga.ws-in > .e-con > .e-con:last-child { animation: ws-ga-join-b 7s cubic-bezier(.34, 1.3, .64, 1) .4s infinite; }
@keyframes ws-ga-join-a { 0%, 8% { translate: -46px 0; rotate: -5deg; } 24%, 88% { translate: 0 0; rotate: 0deg; } 100% { translate: -46px 0; rotate: -5deg; } }
@keyframes ws-ga-join-b { 0%, 8% { translate: 46px 0; rotate: 5deg; } 24%, 88% { translate: 0 0; rotate: 0deg; } 100% { translate: 46px 0; rotate: 5deg; } }
.ws-js aside.ws-ga.ws-in > .e-paragraph-base:nth-child(4) { animation: ws-ga-glow 7s ease-in-out .4s infinite; }
@keyframes ws-ga-glow { 0%, 22%, 100% { scale: 1; } 30% { scale: 1.08; } 38% { scale: 1; } }
@media (max-width: 767px) {
  html .elementor aside.ws-ga { padding: 44px 16px; border-radius: 28px; }
  html .elementor aside.ws-ga > .e-con { flex-direction: column; align-items: stretch; width: 100%; margin: 26px 0 40px; }
  html .elementor aside.ws-ga > .e-con > .e-con { width: auto; max-width: none; padding: 24px 22px 32px; border-radius: 22px 22px 0 0; }
  html .elementor aside.ws-ga > .e-con > .e-con:last-child { padding: 34px 22px 24px; border-radius: 0 0 22px 22px; }
  html .elementor aside.ws-ga > .e-con > .e-con:first-child::after { right: auto; left: 50%; top: auto; bottom: -22px; margin: 0 0 0 -22px; }
  html .elementor aside.ws-ga > .e-con > .e-con > :last-child { font-size: 16.5px; }
  html .elementor aside.ws-ga > .e-paragraph-base:nth-child(4) { font-size: 15px; padding: 11px 18px; }
  @keyframes ws-ga-join-a { 0%, 8% { translate: 0 -30px; rotate: -3deg; } 24%, 88% { translate: 0 0; rotate: 0deg; } 100% { translate: 0 -30px; rotate: -3deg; } }
  @keyframes ws-ga-join-b { 0%, 8% { translate: 0 30px; rotate: 3deg; } 24%, 88% { translate: 0 0; rotate: 0deg; } 100% { translate: 0 30px; rotate: 3deg; } }
}

/* ============================================================ E. THREE SETTINGS SWITCHES  (footer.ws-ga) */
html .elementor footer.ws-ga { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: center; gap: 48px; padding: 60px 52px; border-radius: 36px; background: #F7FBEF; }
html .elementor footer.ws-ga::before { content: ""; position: absolute; inset: auto; left: -120px; bottom: -160px; width: 380px; height: 380px; border-radius: 9999px; background: radial-gradient(circle, rgba(76, 156, 200, .35), rgba(76, 156, 200, 0) 70%); pointer-events: none; }
html .elementor footer.ws-ga > * { position: relative; z-index: 1; }
html .elementor footer.ws-ga > .e-con:first-child { display: flex; flex-direction: column; gap: 16px; }
html .elementor footer.ws-ga > .e-con:first-child > .e-heading-base { font-size: clamp(28px, 3.4vw, 42px); line-height: 1.12; letter-spacing: -.02em; color: var(--ga-ink); }
html .elementor footer.ws-ga > .e-con:first-child > .e-paragraph-base { font-size: 17.5px; line-height: 1.6; color: #4D5C74; }
html .elementor footer.ws-ga > .e-con:last-child { display: flex; flex-direction: column; gap: 14px; }
html .elementor footer.ws-ga > .e-con:last-child > .e-con { display: grid; grid-template-columns: 60px minmax(0, 1fr); align-items: start; gap: 18px; padding: 20px 22px; border-radius: 22px; background: #fff; box-shadow: 0 16px 30px -24px rgba(20, 27, 38, .7); }
html .elementor footer.ws-ga > .e-con:last-child > .e-con > .e-con:first-child { position: relative; width: 58px; height: 32px; margin-top: 2px; border-radius: 9999px; background: var(--ga-teal); transition: background-color 300ms ease; }
html .elementor footer.ws-ga > .e-con:last-child > .e-con > .e-con:first-child > .e-con { position: absolute; top: 4px; left: 4px; width: 24px; height: 24px; border-radius: 9999px; background: #fff; box-shadow: 0 2px 6px rgba(20, 27, 38, .25); translate: 26px 0; }
html .elementor footer.ws-ga > .e-con:last-child > .e-con > .e-con:last-child { display: flex; flex-direction: column; gap: 4px; }
html .elementor footer.ws-ga > .e-con:last-child > .e-con > .e-con:last-child > .e-heading-base { font-size: 19px; font-weight: 800; line-height: 1.3; color: var(--ga-ink); }
html .elementor footer.ws-ga > .e-con:last-child > .e-con > .e-con:last-child > .e-paragraph-base { font-size: 15px; line-height: 1.5; color: var(--ga-muted); }
.ws-js footer.ws-ga > .e-con:last-child > .e-con > .e-con:first-child { background: #E2F1F8; }
.ws-js footer.ws-ga > .e-con:last-child > .e-con > .e-con:first-child > .e-con { translate: 0 0; }
.ws-js footer.ws-ga.ws-in > .e-con:last-child > .e-con > .e-con:first-child { background: var(--ga-teal); transition: background-color 300ms ease calc(600ms + var(--ws-i, 0) * 700ms); }
.ws-js footer.ws-ga.ws-in > .e-con:last-child > .e-con > .e-con:first-child > .e-con { translate: 26px 0; transition: translate 450ms cubic-bezier(.34, 1.6, .64, 1) calc(600ms + var(--ws-i, 0) * 700ms); }
.ws-js footer.ws-ga.ws-in > .e-con:last-child > .e-con { animation: ws-ga-flash 7s ease-in-out calc(3s + var(--ws-i, 0) * 1.2s) infinite; }
@keyframes ws-ga-flash { 0%, 16%, 100% { box-shadow: 0 16px 30px -24px rgba(20, 27, 38, .7); } 8% { box-shadow: 0 0 0 3px rgba(40, 103, 136, .35), 0 16px 30px -24px rgba(20, 27, 38, .7); } }
@media (max-width: 1024px) {
  html .elementor footer.ws-ga { grid-template-columns: minmax(0, 1fr); gap: 32px; padding: 48px 32px; }
}
@media (max-width: 640px) {
  html .elementor footer.ws-ga { padding: 40px 16px; border-radius: 28px; }
  html .elementor footer.ws-ga > .e-con:last-child > .e-con { grid-template-columns: 58px minmax(0, 1fr); gap: 14px; padding: 16px; }
  html .elementor footer.ws-ga > .e-con:last-child > .e-con > .e-con:last-child > .e-heading-base { font-size: 17px; }
}

/* ============================================================ F. VIEW-ONLY GALLERY ROPE  (.ws-section div.ws-ga) */
html .elementor .ws-section div.ws-ga { display: flex; flex-direction: column; align-items: center; gap: 16px; padding: 64px 40px 56px; border-radius: 36px; text-align: center; color: #fff; background: linear-gradient(135deg, var(--ga-coral), var(--ga-orange) 55%, var(--ga-amber)); }
html .elementor .ws-section div.ws-ga > .e-heading-base { max-width: 760px; font-size: clamp(30px, 3.6vw, 46px); line-height: 1.1; letter-spacing: -.02em; color: #fff; }
html .elementor .ws-section div.ws-ga > .e-paragraph-base { max-width: 660px; font-size: 17.5px; line-height: 1.6; color: #F7FBEF; }
html .elementor .ws-section div.ws-ga > .e-con:nth-child(3) { position: relative; width: min(720px, 100%); margin-top: 26px; }
html .elementor .ws-section div.ws-ga > .e-con:nth-child(3) > .e-con:first-child { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
html .elementor .ws-section div.ws-ga > .e-con:nth-child(3) > .e-con:first-child > .e-paragraph-base { position: relative; padding: 38px 14px 30px; border-radius: 18px; font-size: 18px; font-weight: 800; color: var(--ga-plum); background: #fff; border: 6px solid #EDF6DB; box-shadow: 0 22px 36px -24px rgba(32, 42, 56, .9); }
html .elementor .ws-section div.ws-ga > .e-con:nth-child(3) > .e-con:first-child > .e-paragraph-base::after { content: "View only"; position: absolute; top: -13px; left: 50%; translate: -50% 0; padding: 4px 10px; border-radius: 9999px; font-size: 10.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #fff; background: var(--ga-plum); white-space: nowrap; }
/* the rope */
html .elementor .ws-section div.ws-ga > .e-con:nth-child(3) > .e-con:last-child { position: relative; height: 96px; margin-top: -34px; z-index: 2; }
html .elementor .ws-section div.ws-ga > .e-con:nth-child(3) > .e-con:last-child > .e-con:first-child, html .elementor .ws-section div.ws-ga > .e-con:nth-child(3) > .e-con:last-child > .e-con:last-child { position: absolute; bottom: 0; width: 14px; height: 92px; border-radius: 7px 7px 3px 3px; background: linear-gradient(90deg, #6B951B, #D8ECAE 45%, #6B951B); }
html .elementor .ws-section div.ws-ga > .e-con:nth-child(3) > .e-con:last-child > .e-con:first-child { left: 3%; }
html .elementor .ws-section div.ws-ga > .e-con:nth-child(3) > .e-con:last-child > .e-con:last-child { right: 3%; }
html .elementor .ws-section div.ws-ga > .e-con:nth-child(3) > .e-con:last-child > .e-con:first-child::before, html .elementor .ws-section div.ws-ga > .e-con:nth-child(3) > .e-con:last-child > .e-con:last-child::before { content: ""; position: absolute; inset: auto; top: -12px; left: -6px; width: 26px; height: 26px; border-radius: 9999px; background: radial-gradient(circle at 35% 35%, #EDF6DB, #6B951B 60%, #6B951B); }
html .elementor .ws-section div.ws-ga > .e-con:nth-child(3) > .e-con:last-child > .e-con:nth-child(2) { position: absolute; left: calc(3% + 7px); right: calc(3% + 7px); top: 0; width: auto; height: 58px; border-bottom: 9px solid #286788; border-radius: 0 0 50% 50% / 0 0 100% 100%; transform-origin: 50% 0; filter: drop-shadow(0 6px 6px rgba(32, 42, 56, .35)); }
html .elementor .ws-section div.ws-ga > .e-con:nth-child(4) { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 18px; }
html .elementor .ws-section div.ws-ga > .e-con:nth-child(4) > .e-paragraph-base { display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; border-radius: 9999px; font-size: 14.5px; font-weight: 800; color: #fff; background: rgba(32, 42, 56, .82); }
html .elementor .ws-section div.ws-ga > .e-con:nth-child(4) > .e-paragraph-base::before { content: "\2713"; color: #D8ECAE; font-weight: 900; }
.ws-js .ws-section div.ws-ga > .e-con:nth-child(3) > .e-con:first-child > .e-paragraph-base { opacity: 0; translate: 0 20px; }
.ws-js .ws-section div.ws-ga.ws-in > .e-con:nth-child(3) > .e-con:first-child > .e-paragraph-base { opacity: 1; translate: 0 0; transition: opacity 400ms ease-out calc(var(--ws-i, 0) * 180ms), translate 650ms cubic-bezier(.34, 1.45, .64, 1) calc(var(--ws-i, 0) * 180ms); }
.ws-js .ws-section div.ws-ga.ws-in > .e-con:nth-child(3) > .e-con:last-child > .e-con:nth-child(2) { animation: ws-ga-rope 3.6s ease-in-out infinite; }
@keyframes ws-ga-rope { 0%, 100% { scale: 1 1; } 50% { scale: 1 .8; } }
.ws-js .ws-section div.ws-ga.ws-in > .e-con:nth-child(3) > .e-con:first-child > .e-paragraph-base::after { animation: ws-ga-tag 4s ease-in-out calc(1s + var(--ws-i, 0) * .6s) infinite; }
@keyframes ws-ga-tag { 0%, 20%, 100% { rotate: 0deg; } 6% { rotate: -6deg; } 12% { rotate: 5deg; } }
@media (max-width: 767px) {
  html .elementor .ws-section div.ws-ga { padding: 44px 16px 36px; border-radius: 28px; }
  html .elementor .ws-section div.ws-ga > .e-con:nth-child(3) > .e-con:first-child { gap: 8px; }
  html .elementor .ws-section div.ws-ga > .e-con:nth-child(3) > .e-con:first-child > .e-paragraph-base { padding: 30px 6px 24px; font-size: 14px; border-width: 4px; }
  html .elementor .ws-section div.ws-ga > .e-con:nth-child(3) > .e-con:first-child > .e-paragraph-base::after { font-size: 9px; padding: 3px 7px; }
  html .elementor .ws-section div.ws-ga > .e-con:nth-child(3) > .e-con:last-child { height: 76px; margin-top: -26px; }
  html .elementor .ws-section div.ws-ga > .e-con:nth-child(3) > .e-con:last-child > .e-con:first-child, html .elementor .ws-section div.ws-ga > .e-con:nth-child(3) > .e-con:last-child > .e-con:last-child { height: 72px; }
  html .elementor .ws-section div.ws-ga > .e-con:nth-child(4) > .e-paragraph-base { font-size: 13.5px; padding: 9px 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .ws-js .ws-ga, .ws-js .ws-ga *, .ws-js .ws-ga::before, .ws-js .ws-ga::after, .ws-js .ws-ga *::before, .ws-js .ws-ga *::after { animation: none !important; }
}
