/*! WindspeedSEO Visual System - AI search visibility objects v1.4.3
 * Objects built only for the AI search visibility page (owner: "every page must have different and unique assets
 * specific to the topic"): a floating buyer-question cloud, the same question answered across three runs, a
 * citation-share bar and a mention-rate dial with a period chart. The site is at Elementor's 1,000 global class
 * limit, so each object is one root class (.ws-ai) on a distinct element tag (header / article / aside / footer),
 * styled by structure, with .ws-ai-on marking "your brand" items. Loads after ws-visual-objects.css.
 */
@property --ws-ai-p { syntax: "<percentage>"; inherits: true; initial-value: 0%; }

html .elementor .ws-ai .e-div-block-base { min-width: 0; }
html .elementor .ws-ai .e-paragraph-base { margin: 0; }

/* ============================================================ A. BUYER-QUESTION CLOUD  (header.ws-ai) */
html .elementor header.ws-ai { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 14px; padding: 6px 0 2px; }
html .elementor header.ws-ai > .e-con { display: inline-flex; align-items: center; gap: 9px; width: auto; max-width: 100%; padding: 10px 16px 10px 14px; border-radius: 9999px; background: #fff; border: 1px solid var(--ws-border-default); box-shadow: 0 10px 22px -16px rgba(23, 33, 48, .4); }
html .elementor header.ws-ai > .e-con::before { content: ""; display: block; position: static; flex: 0 0 auto; width: 9px; height: 9px; border-radius: 9999px; background: var(--ws-color-neutral-300); }
html .elementor header.ws-ai > .ws-ai-on { border-color: var(--ws-color-brand-green-300); background: var(--ws-color-brand-green-50); }
html .elementor header.ws-ai > .ws-ai-on::before { background: var(--ws-color-brand-green-500); box-shadow: 0 0 0 4px rgba(161, 203, 69, .25); }
html .elementor header.ws-ai .e-paragraph-base { font-size: 14px; line-height: 1.3; color: var(--ws-text-primary); }
html .elementor header.ws-ai > .ws-ai-on .e-paragraph-base { color: var(--ws-color-brand-green-800); font-weight: 600; }
html .elementor header.ws-ai > :nth-child(3n+1) { --d: 5.2s; } html .elementor header.ws-ai > :nth-child(3n+2) { --d: 6.4s; } html .elementor header.ws-ai > :nth-child(3n) { --d: 4.6s; }
html .elementor header.ws-ai > :nth-child(2) { --i: 1; } html .elementor header.ws-ai > :nth-child(3) { --i: 2; } html .elementor header.ws-ai > :nth-child(4) { --i: 3; }
html .elementor header.ws-ai > :nth-child(5) { --i: 4; } html .elementor header.ws-ai > :nth-child(6) { --i: 5; } html .elementor header.ws-ai > :nth-child(7) { --i: 6; }
html .elementor header.ws-ai > :nth-child(8) { --i: 7; } html .elementor header.ws-ai > :nth-child(9) { --i: 8; } html .elementor header.ws-ai > :nth-child(10) { --i: 9; }
.ws-js header.ws-ai > .e-con { opacity: 0; scale: .7; }
.ws-js header.ws-ai.ws-in > .e-con { opacity: 1; scale: 1; transition: opacity 420ms var(--ws-ease-out) calc(var(--i, 0) * 90ms), scale 560ms cubic-bezier(.34, 1.56, .64, 1) calc(var(--i, 0) * 90ms);
  animation: ws-ai-float var(--d, 5s) ease-in-out calc(1s + var(--i, 0) * -.7s) infinite alternate; }
.ws-js header.ws-ai.ws-in > .ws-ai-on::before { animation: ws-ai-ping 2.6s ease-out calc(1.2s + var(--i, 0) * .3s) infinite; }
@keyframes ws-ai-float { from { translate: 0 -4px; } to { translate: 0 5px; } }
@keyframes ws-ai-ping { 0% { box-shadow: 0 0 0 0 rgba(131, 180, 34, .55); } 70%, 100% { box-shadow: 0 0 0 9px rgba(131, 180, 34, 0); } }

/* ============================================================ B. ONE QUESTION, THREE RUNS  (article.ws-ai) */
html .elementor article.ws-ai { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
html .elementor article.ws-ai > .e-con { position: relative; display: flex; flex-direction: column; gap: 12px; padding: 14px 16px 16px; border-radius: 14px; border: 1px solid var(--ws-border-default); background: #fff; box-shadow: 0 14px 30px -20px rgba(23, 33, 48, .45); overflow: hidden; }
html .elementor article.ws-ai > .ws-ai-on { border-color: var(--ws-color-brand-green-300); }
html .elementor article.ws-ai > .e-con > :first-child { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding-bottom: 10px; border-bottom: 1px solid var(--ws-divider); }
html .elementor article.ws-ai > .e-con:not(.ws-ai-on) .ws-hx-mention { background: var(--ws-color-neutral-100); border-color: var(--ws-color-neutral-300); }
html .elementor article.ws-ai > .e-con:not(.ws-ai-on) .ws-hx-mention .e-paragraph-base { color: var(--ws-text-muted); }
/* a light scans across the three answers in turn */
html .elementor article.ws-ai > .e-con::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(100deg, transparent 20%, rgba(76, 156, 200, .10) 45%, rgba(161, 203, 69, .12) 55%, transparent 80%); translate: -110% 0; }
.ws-js article.ws-ai.ws-in > .e-con::after { animation: ws-ai-scan 7.5s ease-in-out calc(1.8s + var(--c, 0) * 2.5s) infinite; }
@keyframes ws-ai-scan { 0% { translate: -110% 0; } 18%, 100% { translate: 110% 0; } }
html .elementor article.ws-ai > .e-con:nth-child(2) { --c: 1; } html .elementor article.ws-ai > .e-con:nth-child(3) { --c: 2; }
.ws-js article.ws-ai > .e-con { opacity: 0; translate: 0 22px; }
.ws-js article.ws-ai.ws-in > .e-con { opacity: 1; translate: 0 0; transition: opacity 500ms var(--ws-ease-out) calc(var(--c, 0) * 220ms), translate 700ms var(--ws-ease-out) calc(var(--c, 0) * 220ms); }
.ws-js article.ws-ai .ws-hx-line, .ws-js article.ws-ai .ws-hx-mentionrow { clip-path: inset(0 100% 0 0); }
.ws-js article.ws-ai.ws-in .ws-hx-line, .ws-js article.ws-ai.ws-in .ws-hx-mentionrow { clip-path: inset(0 0 0 0); transition: clip-path 800ms var(--ws-ease-out) calc(500ms + var(--c, 0) * 380ms); }
.ws-js article.ws-ai .ws-hx-mention { scale: .6; opacity: 0; }
.ws-js article.ws-ai.ws-in .ws-hx-mention { scale: 1; opacity: 1; transition: scale 560ms cubic-bezier(.34, 1.56, .64, 1) calc(1100ms + var(--c, 0) * 380ms), opacity 300ms ease-out calc(1100ms + var(--c, 0) * 380ms); }
.ws-js article.ws-ai.ws-in > .ws-ai-on .ws-hx-mention { animation: ws-ai-glow 3s ease-in-out calc(2s + var(--c, 0) * .4s) infinite; }
@keyframes ws-ai-glow { 0%, 100% { box-shadow: 0 0 0 0 rgba(161, 203, 69, 0); } 50% { box-shadow: 0 0 0 5px rgba(161, 203, 69, .25), 0 0 16px rgba(161, 203, 69, .4); } }
@media (max-width: 767px) { html .elementor article.ws-ai { grid-template-columns: minmax(0, 1fr); } }

/* ============================================================ C. CITATION SHARE BAR  (aside.ws-ai) */
html .elementor aside.ws-ai > :first-child { position: relative; display: flex; height: 60px; border-radius: 14px; overflow: hidden; box-shadow: 0 16px 34px -22px rgba(23, 33, 48, .55); }
html .elementor aside.ws-ai > :first-child > .e-con { display: grid; place-items: center; height: 100%; min-width: 0; }
html .elementor aside.ws-ai > :first-child > :nth-child(1) { flex: 0 0 32%; background: linear-gradient(135deg, #83B422, #A1CB45); }
html .elementor aside.ws-ai > :first-child > :nth-child(2) { flex: 0 0 24%; background: #347FA8; }
html .elementor aside.ws-ai > :first-child > :nth-child(3) { flex: 0 0 18%; background: #4C9CC8; }
html .elementor aside.ws-ai > :first-child > :nth-child(4) { flex: 0 0 14%; background: #6FB2D5; }
html .elementor aside.ws-ai > :first-child > :nth-child(5) { flex: 1 1 auto; background: #AFBAC9; }
html .elementor aside.ws-ai > :first-child .e-paragraph-base { font-size: 15px; font-weight: 700; color: #fff; font-variant-numeric: tabular-nums; }
html .elementor aside.ws-ai > :first-child::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(100deg, transparent 30%, rgba(255, 255, 255, .35) 50%, transparent 70%); translate: -100% 0; }
html .elementor aside.ws-ai > :nth-child(2) { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin-top: 20px; }
html .elementor aside.ws-ai > :nth-child(2) > .e-con { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-radius: 10px; border: 1px solid var(--ws-border-default); background: #fff; }
html .elementor aside.ws-ai > :nth-child(2) > .ws-ai-on { border-color: var(--ws-color-brand-green-300); background: var(--ws-color-brand-green-50); }
html .elementor aside.ws-ai > :nth-child(2) > .e-con::before { content: ""; display: block; position: static; flex: 0 0 auto; width: 10px; height: 10px; border-radius: 3px; background: #AFBAC9; }
html .elementor aside.ws-ai > :nth-child(2) > :nth-child(1)::before { background: #83B422; } html .elementor aside.ws-ai > :nth-child(2) > :nth-child(2)::before { background: #347FA8; }
html .elementor aside.ws-ai > :nth-child(2) > :nth-child(3)::before { background: #4C9CC8; } html .elementor aside.ws-ai > :nth-child(2) > :nth-child(4)::before { background: #6FB2D5; }
html .elementor aside.ws-ai > :nth-child(2) .e-paragraph-base { font-size: 13px; line-height: 1.25; color: var(--ws-text-secondary); }
html .elementor aside.ws-ai > :nth-child(2) > .ws-ai-on .e-paragraph-base { color: var(--ws-color-brand-green-800); font-weight: 600; }
.ws-js aside.ws-ai > :first-child { clip-path: inset(0 100% 0 0 round 14px); }
.ws-js aside.ws-ai.ws-in > :first-child { clip-path: inset(0 0 0 0 round 14px); transition: clip-path 1600ms var(--ws-ease-out) 200ms; }
.ws-js aside.ws-ai > :first-child .e-paragraph-base { opacity: 0; }
.ws-js aside.ws-ai.ws-in > :first-child .e-paragraph-base { opacity: 1; transition: opacity 500ms ease-out 1500ms; }
.ws-js aside.ws-ai.ws-in > :first-child::after { animation: ws-ai-shine 5s ease-in-out 2.4s infinite; }
@keyframes ws-ai-shine { 0% { translate: -100% 0; } 30%, 100% { translate: 100% 0; } }
.ws-js aside.ws-ai.ws-in > :first-child > :nth-child(1) { animation: ws-ai-you 3.6s ease-in-out 2.6s infinite; }
@keyframes ws-ai-you { 0%, 100% { filter: brightness(1); } 50% { filter: brightness(1.12); } }
.ws-js aside.ws-ai > :nth-child(2) > .e-con { opacity: 0; translate: 0 12px; }
.ws-js aside.ws-ai.ws-in > :nth-child(2) > .e-con { opacity: 1; translate: 0 0; transition: opacity 420ms var(--ws-ease-out), translate 520ms var(--ws-ease-out); }
.ws-js aside.ws-ai.ws-in > :nth-child(2) > :nth-child(1) { transition-delay: 1.3s; } .ws-js aside.ws-ai.ws-in > :nth-child(2) > :nth-child(2) { transition-delay: 1.42s; }
.ws-js aside.ws-ai.ws-in > :nth-child(2) > :nth-child(3) { transition-delay: 1.54s; } .ws-js aside.ws-ai.ws-in > :nth-child(2) > :nth-child(4) { transition-delay: 1.66s; }
.ws-js aside.ws-ai.ws-in > :nth-child(2) > :nth-child(5) { transition-delay: 1.78s; }
@media (max-width: 767px) {
  html .elementor aside.ws-ai > :nth-child(2) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  html .elementor aside.ws-ai > :first-child .e-paragraph-base { font-size: 12px; }
  html .elementor aside.ws-ai > :first-child > :nth-child(5) .e-paragraph-base { display: none; }
}

/* ============================================================ D. MENTION-RATE DIAL + PERIOD CHART  (footer.ws-ai) */
html .elementor footer.ws-ai { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 48px; align-items: center; }
html .elementor footer.ws-ai > :first-child { position: relative; isolation: isolate; width: 220px; aspect-ratio: 1; margin: 0 auto; border-radius: 9999px; display: grid; place-items: center; --ws-ai-p: 0%; }
html .elementor footer.ws-ai > :first-child::before { content: ""; display: block; position: absolute; inset: 0; z-index: -1; border-radius: 9999px; background: conic-gradient(from 0deg, #A1CB45 0, #83B422 var(--ws-ai-p), var(--ws-color-neutral-100) var(--ws-ai-p)); -webkit-mask: radial-gradient(farthest-side, transparent 74%, #000 75%); mask: radial-gradient(farthest-side, transparent 74%, #000 75%); }
html .elementor footer.ws-ai > :first-child::after { content: ""; position: absolute; inset: -12px; z-index: -2; border-radius: 9999px; border: 2px dashed var(--ws-color-accent-data-blue-200); }
html .elementor footer.ws-ai > :first-child > .e-con { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 4px; }
html .elementor footer.ws-ai > :first-child .e-paragraph-base:first-child { font-size: 46px; line-height: 1; font-weight: 700; letter-spacing: -.02em; color: var(--ws-color-brand-green-800); font-variant-numeric: tabular-nums; }
html .elementor footer.ws-ai > :first-child .e-paragraph-base:last-child { font-size: 13px; line-height: 1.3; color: var(--ws-text-secondary); max-width: 12ch; }
html .elementor footer.ws-ai > :nth-child(2) { display: flex; align-items: flex-end; gap: 14px; height: 210px; padding: 28px 4px 0; border-bottom: 2px solid var(--ws-border-default); }
html .elementor footer.ws-ai > :nth-child(2) > .e-con { position: relative; flex: 1 1 0; height: var(--h, 50%); border-radius: 8px 8px 0 0; background: linear-gradient(180deg, #6FB2D5, #BFDDED); transform-origin: 50% 100%; }
html .elementor footer.ws-ai > :nth-child(2) > .ws-ai-on { background: linear-gradient(180deg, #A1CB45, #D8ECAE); }
html .elementor footer.ws-ai > :nth-child(2) > .e-con .e-paragraph-base { position: absolute; left: -8px; right: -8px; top: -22px; text-align: center; white-space: nowrap; font-family: var(--ws-mono); font-size: 12px; font-weight: 700; color: var(--ws-text-secondary); }
html .elementor footer.ws-ai > :nth-child(2) > :nth-child(1) { --h: 30%; --b: 0; } html .elementor footer.ws-ai > :nth-child(2) > :nth-child(2) { --h: 30%; --b: 1; }
html .elementor footer.ws-ai > :nth-child(2) > :nth-child(3) { --h: 40%; --b: 2; } html .elementor footer.ws-ai > :nth-child(2) > :nth-child(4) { --h: 50%; --b: 3; }
html .elementor footer.ws-ai > :nth-child(2) > :nth-child(5) { --h: 50%; --b: 4; } html .elementor footer.ws-ai > :nth-child(2) > :nth-child(6) { --h: 60%; --b: 5; }
html .elementor footer.ws-ai > :nth-child(2) > :nth-child(7) { --h: 60%; --b: 6; } html .elementor footer.ws-ai > :nth-child(2) > :nth-child(8) { --h: 70%; --b: 7; }
.ws-js footer.ws-ai > :first-child { transition: --ws-ai-p 1800ms var(--ws-ease-out) 300ms; }
.ws-js footer.ws-ai.ws-in > :first-child { --ws-ai-p: 70%; }
.ws-js footer.ws-ai.ws-in > :first-child::after { animation: ws-hx-spin 28s linear infinite; }
.ws-js footer.ws-ai > :nth-child(2) > .e-con { scale: 1 0; }
.ws-js footer.ws-ai.ws-in > :nth-child(2) > .e-con { scale: 1 1; transition: scale 700ms var(--ws-ease-out) calc(400ms + var(--b, 0) * 140ms); }
.ws-js footer.ws-ai.ws-in > :nth-child(2) > :last-child { animation: ws-ai-newest 2.8s ease-in-out 2.2s infinite; }
@keyframes ws-ai-newest { 0%, 100% { box-shadow: 0 0 0 0 rgba(161, 203, 69, 0); } 50% { box-shadow: 0 0 0 6px rgba(161, 203, 69, .25), 0 -8px 22px rgba(161, 203, 69, .35); } }
@media (max-width: 767px) {
  html .elementor footer.ws-ai { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  html .elementor footer.ws-ai > :first-child { width: 190px; }
  html .elementor footer.ws-ai > :nth-child(2) { gap: 8px; height: 180px; }
  html .elementor footer.ws-ai > :nth-child(2) > .e-con .e-paragraph-base { font-size: 10px; }
}

/* ---- reduced motion: final state, nothing moves */
@media (prefers-reduced-motion: reduce) {
  .ws-js .ws-ai *, .ws-js .ws-ai > * { opacity: 1 !important; scale: 1 !important; translate: none; clip-path: none !important; animation: none !important; transition: none !important; }
  .ws-js article.ws-ai > .e-con::after, .ws-js aside.ws-ai > :first-child::after { display: none; }
  .ws-js footer.ws-ai > :first-child { --ws-ai-p: 70%; }
  .ws-js footer.ws-ai > :nth-child(2) > .e-con { scale: 1 1 !important; }
}
.ws-reduced .ws-ai *, .ws-reduced .ws-ai > * { animation: none !important; }
