/*! WindspeedSEO Visual System - content gap analysis objects v1.4.6
 * Objects built only for the Content gap analysis page: a topic coverage map (hero), a gap funnel, verdict flip
 * cards, a page-type sorter, a consolidation merge and a content plan board. Same pattern as the other page files:
 * one root class (.ws-cg) on distinct element tags, styled by structure, with .ws-cg-on marking the key item.
 * Colours: the WindspeedSEO brand kit only (slate, brand green, data blue, neutrals); the kit's error red appears only where it means a problem.
 * Loads after ws-visual-bl.css.
 */

/* two AI-visibility hero parts lost their single-use classes to free global class slots; styled by position now */
html .elementor .ws-hx-answer > .e-con:first-child { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
html .elementor .ws-hx-answer > .e-con:first-child > .e-con:first-child { display: flex; align-items: center; gap: 6px; color: var(--ws-color-accent-data-blue-700); }

.elementor .ws-cg { --cg-indigo: #347FA8; --cg-teal: #286788; --cg-rasp: #347FA8; --cg-tang: #83B422; --cg-green: #6B951B; --cg-blue: #347FA8; --cg-ink: #202A38; }
html .elementor .ws-cg .e-div-block-base { min-width: 0; }
html .elementor .ws-cg .e-paragraph-base { margin: 0; }

/* ============================================================ HERO: TOPIC COVERAGE MAP  (.ws-hero div.ws-cg) */
html .elementor .ws-hero div.ws-cg { display: flex; flex-direction: column; gap: 16px; padding: 26px 26px 22px; border-radius: 26px; color: var(--cg-ink);
  background: radial-gradient(90% 70% at 100% 0%, rgba(52, 127, 168, .16), transparent 60%), radial-gradient(80% 70% at 0% 100%, rgba(40, 103, 136, .16), transparent 60%), linear-gradient(160deg, #FFFFFF, #F1F8FC);
  border: 1px solid rgba(52, 127, 168, .18); box-shadow: 0 34px 70px -34px rgba(32, 42, 56, .65); }
html .elementor .ws-hero div.ws-cg > .e-con:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 6px 14px; flex-wrap: wrap; }
html .elementor .ws-hero div.ws-cg > .e-con:first-child > :first-child { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--cg-indigo); }
html .elementor .ws-hero div.ws-cg > .e-con:first-child > :last-child { font-size: 12.5px; font-weight: 600; color: #4D5C74; }
/* the tile grid */
html .elementor .ws-hero div.ws-cg > .e-con:nth-child(2) { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; padding: 4px; border-radius: 16px; overflow: hidden; }
html .elementor .ws-hero div.ws-cg > .e-con:nth-child(2) > .e-con { --c: var(--cg-blue); --t: #E2F1F8; --tx: #245773; position: relative; display: flex; align-items: flex-end; min-height: 66px; padding: 10px 10px 9px; border-radius: 14px; background: var(--t); border: 1.5px solid color-mix(in srgb, var(--c) 45%, transparent); }
html .elementor .ws-hero div.ws-cg > .e-con:nth-child(2) > .e-con::before { content: ""; position: absolute; top: 9px; left: 10px; right: auto; bottom: auto; width: 9px; height: 9px; border-radius: 9999px; background: var(--c); }
html .elementor .ws-hero div.ws-cg > .e-con:nth-child(2) > .e-con > .e-paragraph-base { font-size: 12.5px; font-weight: 700; line-height: 1.2; color: var(--tx); }
/* partial coverage */
html .elementor .ws-hero div.ws-cg > .e-con:nth-child(2) > :is(:nth-child(4), :nth-child(10)) { --c: var(--cg-tang); --t: #F7FBEF; --tx: #537418; }
/* gaps: dashed raspberry, pulsing */
html .elementor .ws-hero div.ws-cg > .e-con:nth-child(2) > :is(:nth-child(2), :nth-child(5), :nth-child(7), :nth-child(9), :nth-child(12)) { --c: var(--cg-rasp); --t: #FFFFFF; --tx: #347FA8; border-style: dashed; border-width: 2px; }
/* gaps that get planned (a check badge appears as they turn green) */
html .elementor .ws-hero div.ws-cg > .e-con:nth-child(2) > :is(:nth-child(2), :nth-child(7), :nth-child(12))::after { content: "✓"; position: absolute; top: 7px; right: 8px; left: auto; bottom: auto; width: 20px; height: 20px; border-radius: 9999px; display: grid; place-items: center; font-size: 12px; font-weight: 800; color: #fff; background: var(--cg-green); opacity: 0; scale: .4; }
/* a light sweep across the map */
html .elementor .ws-hero div.ws-cg > .e-con:nth-child(2)::after { content: ""; position: absolute; top: -30%; bottom: -30%; left: -30%; right: auto; width: 22%; height: auto; rotate: 18deg; background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, .75), rgba(255, 255, 255, 0)); pointer-events: none; z-index: 2; }
/* legend */
html .elementor .ws-hero div.ws-cg > .e-con:nth-child(3) { display: flex; flex-wrap: wrap; gap: 8px 16px; }
html .elementor .ws-hero div.ws-cg > .e-con:nth-child(3) > .e-paragraph-base { display: inline-flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 600; color: #4D5C74; }
html .elementor .ws-hero div.ws-cg > .e-con:nth-child(3) > .e-paragraph-base::before { content: ""; width: 11px; height: 11px; border-radius: 4px; background: var(--c, var(--cg-blue)); }
html .elementor .ws-hero div.ws-cg > .e-con:nth-child(3) > :nth-child(2) { --c: var(--cg-tang); }
html .elementor .ws-hero div.ws-cg > .e-con:nth-child(3) > :nth-child(3) { --c: var(--cg-rasp); }
html .elementor .ws-hero div.ws-cg > .e-con:nth-child(3) > :nth-child(4) { --c: var(--cg-green); }
/* summary chips */
html .elementor .ws-hero div.ws-cg > .e-con:nth-child(4) { display: flex; flex-wrap: wrap; gap: 10px; padding-top: 14px; border-top: 1px solid rgba(52, 127, 168, .14); }
html .elementor .ws-hero div.ws-cg > .e-con:nth-child(4) > .e-paragraph-base { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 9999px; font-size: 13px; font-weight: 700; color: #fff; background: linear-gradient(120deg, #347FA8, #83B422); box-shadow: 0 12px 24px -14px rgba(52, 127, 168, .9); }
html .elementor .ws-hero div.ws-cg > .e-con:nth-child(4) > :nth-child(2) { background: linear-gradient(120deg, #6B951B, #83B422); box-shadow: 0 12px 24px -14px rgba(83, 116, 24, .9); }
/* motion */
.ws-js .ws-hero div.ws-cg > .e-con:nth-child(2) > .e-con { opacity: 0; scale: .7; }
.ws-js .ws-hero.ws-in div.ws-cg > .e-con:nth-child(2) > .e-con { opacity: 1; scale: 1; transition: opacity 400ms ease-out calc(300ms + var(--ws-i, 0) * 70ms), scale 600ms cubic-bezier(.34, 1.5, .64, 1) calc(300ms + var(--ws-i, 0) * 70ms); }
.ws-js .ws-hero.ws-in div.ws-cg > .e-con:nth-child(2) > :is(:nth-child(5), :nth-child(9)) { animation: ws-cg-gap 2.4s ease-in-out 1.6s infinite; }
@keyframes ws-cg-gap { 0%, 100% { box-shadow: 0 0 0 0 rgba(52, 127, 168, 0); } 50% { box-shadow: 0 0 0 5px rgba(52, 127, 168, .18); } }
.ws-js .ws-hero.ws-in div.ws-cg > .e-con:nth-child(2) > :is(:nth-child(2), :nth-child(7), :nth-child(12)) { animation: ws-cg-plan 9s ease-in-out 2s infinite; }
.ws-js .ws-hero.ws-in div.ws-cg > .e-con:nth-child(2) > :nth-child(7) { animation-delay: 2.6s; }
.ws-js .ws-hero.ws-in div.ws-cg > .e-con:nth-child(2) > :nth-child(12) { animation-delay: 3.2s; }
@keyframes ws-cg-plan { 0%, 30% { background: #FFFFFF; border-color: #347FA8; } 42%, 88% { background: #EDF6DB; border-color: #6B951B; } 100% { background: #FFFFFF; border-color: #347FA8; } }
.ws-js .ws-hero.ws-in div.ws-cg > .e-con:nth-child(2) > :is(:nth-child(2), :nth-child(7), :nth-child(12))::after { animation: ws-cg-check 9s ease-in-out 2s infinite; }
.ws-js .ws-hero.ws-in div.ws-cg > .e-con:nth-child(2) > :nth-child(7)::after { animation-delay: 2.6s; }
.ws-js .ws-hero.ws-in div.ws-cg > .e-con:nth-child(2) > :nth-child(12)::after { animation-delay: 3.2s; }
@keyframes ws-cg-check { 0%, 34% { opacity: 0; scale: .4; } 44%, 86% { opacity: 1; scale: 1; } 96%, 100% { opacity: 0; scale: .4; } }
.ws-js .ws-hero.ws-in div.ws-cg > .e-con:nth-child(2)::after { animation: ws-cg-sweep 6s ease-in-out 1.4s infinite; }
@keyframes ws-cg-sweep { 0% { left: -30%; } 50%, 100% { left: 130%; } }
.ws-js .ws-hero div.ws-cg > .e-con:nth-child(4) > .e-paragraph-base { opacity: 0; translate: 0 8px; }
.ws-js .ws-hero.ws-in div.ws-cg > .e-con:nth-child(4) > .e-paragraph-base { opacity: 1; translate: 0 0; transition: opacity 500ms ease-out 1.5s, translate 600ms var(--ws-ease-out) 1.5s; }
.ws-js .ws-hero.ws-in div.ws-cg > .e-con:nth-child(4) > :nth-child(2) { transition-delay: 1.8s; }
@media (max-width: 767px) {
  html .elementor .ws-hero div.ws-cg { padding: 18px 16px 16px; gap: 14px; }
  html .elementor .ws-hero div.ws-cg > .e-con:nth-child(2) { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  html .elementor .ws-hero div.ws-cg > .e-con:nth-child(2) > .e-con { min-height: 58px; padding: 8px 8px 7px; }
  html .elementor .ws-hero div.ws-cg > .e-con:nth-child(2) > .e-con > .e-paragraph-base { font-size: 11.5px; }
}

/* ============================================================ A. GAP FUNNEL  (article.ws-cg) */
html .elementor article.ws-cg { position: relative; display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 8px 0; }
html .elementor article.ws-cg > .e-con { --w: 100%; --c1: #347FA8; --c2: #4C9CC8; position: relative; z-index: 1; width: var(--w); display: flex; align-items: center; gap: 14px; padding: 14px 20px; border-radius: 16px; color: #fff; background: linear-gradient(100deg, var(--c1), var(--c2)); box-shadow: 0 16px 30px -22px rgba(32, 42, 56, .8); transform-origin: center; }
html .elementor article.ws-cg > :nth-child(2) { --w: 86%; --c1: #347FA8; --c2: #4C9CC8; }
html .elementor article.ws-cg > :nth-child(3) { --w: 72%; --c1: #4C9CC8; --c2: #347FA8; }
html .elementor article.ws-cg > :nth-child(4) { --w: 58%; --c1: #286788; --c2: #347FA8; }
html .elementor article.ws-cg > :nth-child(5) { --w: 44%; --c1: #6B951B; --c2: #83B422; }
html .elementor article.ws-cg > .e-con > :first-child { font-family: var(--ws-mono); font-size: 24px; font-weight: 800; line-height: 1; min-width: 64px; }
html .elementor article.ws-cg > .e-con > :last-child { font-size: 14px; font-weight: 600; line-height: 1.3; opacity: .95; }
/* a flow of dots dropping through the funnel */
html .elementor article.ws-cg::before, html .elementor article.ws-cg::after { content: ""; position: absolute; left: 50%; top: 0; width: 10px; height: 10px; margin-left: -5px; border-radius: 9999px; background: #83B422; box-shadow: 0 0 12px 2px rgba(131, 180, 34, .55); z-index: 2; opacity: 0; }
.ws-js article.ws-cg.ws-in::before { animation: ws-cg-drop 3.2s ease-in 1.6s infinite; }
.ws-js article.ws-cg.ws-in::after { animation: ws-cg-drop 3.2s ease-in 3.2s infinite; }
@keyframes ws-cg-drop { 0% { top: 0; opacity: 0; } 10% { opacity: 1; } 85% { opacity: 1; } 100% { top: calc(100% - 12px); opacity: 0; } }
.ws-js article.ws-cg > .e-con { opacity: 0; scale: .2 1; }
.ws-js article.ws-cg.ws-in > .e-con { opacity: 1; scale: 1 1; transition: opacity 400ms ease-out calc(var(--ws-i, 0) * 260ms), scale 700ms cubic-bezier(.34, 1.3, .64, 1) calc(var(--ws-i, 0) * 260ms); }
.ws-js article.ws-cg.ws-in > .ws-cg-on { animation: ws-cg-glow 2.6s ease-in-out 1.8s infinite; }
@keyframes ws-cg-glow { 0%, 100% { box-shadow: 0 16px 30px -22px rgba(32, 42, 56, .8), 0 0 0 0 rgba(131, 180, 34, 0); } 50% { box-shadow: 0 16px 30px -22px rgba(32, 42, 56, .8), 0 0 0 7px rgba(131, 180, 34, .28); } }
@media (max-width: 767px) {
  html .elementor article.ws-cg > .e-con { padding: 12px 14px; gap: 10px; }
  html .elementor article.ws-cg > :nth-child(2) { --w: 92%; } html .elementor article.ws-cg > :nth-child(3) { --w: 84%; }
  html .elementor article.ws-cg > :nth-child(4) { --w: 76%; } html .elementor article.ws-cg > :nth-child(5) { --w: 68%; }
  html .elementor article.ws-cg > .e-con > :first-child { font-size: 19px; min-width: 48px; }
  html .elementor article.ws-cg > .e-con > :last-child { font-size: 12.5px; }
}

/* ============================================================ B. VERDICT FLIP CARDS  (header.ws-cg) */
html .elementor header.ws-cg { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
html .elementor header.ws-cg > .e-con { --c1: #347FA8; --c2: #83B422; height: 168px; perspective: 900px; }
html .elementor header.ws-cg > :nth-child(2) { --c1: #286788; --c2: #347FA8; }
html .elementor header.ws-cg > :nth-child(4) { --c1: #347FA8; --c2: #4C9CC8; }
html .elementor header.ws-cg > :nth-child(6) { --c1: #286788; --c2: #347FA8; }
html .elementor header.ws-cg > .e-con > .e-con { position: relative; width: 100%; height: 100%; transform-style: preserve-3d; }
html .elementor header.ws-cg > .e-con > .e-con > .e-con { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: space-between; gap: 8px; padding: 18px; border-radius: 18px; backface-visibility: hidden; -webkit-backface-visibility: hidden; }
/* front: the topic, being checked */
html .elementor header.ws-cg > .e-con > .e-con > :first-child { background: #fff; border: 1px solid #E2F1F8; box-shadow: 0 18px 34px -26px rgba(32, 42, 56, .7); }
html .elementor header.ws-cg > .e-con > .e-con > :first-child > :first-child { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #8190A5; }
html .elementor header.ws-cg > .e-con > .e-con > :first-child > :nth-child(2) { font-size: 18px; font-weight: 700; line-height: 1.25; color: var(--cg-ink); }
html .elementor header.ws-cg > .e-con > .e-con > :first-child > :last-child { position: relative; height: 6px; border-radius: 9999px; background: #F1F8FC; overflow: hidden; font-size: 0; }
html .elementor header.ws-cg > .e-con > .e-con > :first-child > :last-child::after { content: ""; position: absolute; top: 0; bottom: 0; left: -40%; width: 40%; border-radius: 9999px; background: linear-gradient(90deg, var(--c1), var(--c2)); }
.ws-js header.ws-cg.ws-in > .e-con > .e-con > :first-child > :last-child::after { animation: ws-cg-check-bar 1.6s ease-in-out infinite; }
@keyframes ws-cg-check-bar { from { left: -40%; } to { left: 100%; } }
/* back: the verdict */
html .elementor header.ws-cg > .e-con > .e-con > :last-child { rotate: y 180deg; color: #fff; background: linear-gradient(140deg, var(--c1), var(--c2)); box-shadow: 0 22px 40px -26px rgba(32, 42, 56, .8); }
html .elementor header.ws-cg > .e-con > .e-con > :last-child > :first-child { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; opacity: .85; }
html .elementor header.ws-cg > .e-con > .e-con > :last-child > :nth-child(2) { font-size: 26px; font-weight: 800; line-height: 1.05; }
html .elementor header.ws-cg > .e-con > .e-con > :last-child > :last-child { font-size: 13.5px; font-weight: 600; line-height: 1.35; opacity: .95; }
/* at rest (no JS) the verdict shows; with motion the cards flip back and forth on their own */
html .elementor header.ws-cg > .e-con > .e-con { rotate: y 180deg; }
.ws-js header.ws-cg > .e-con > .e-con { rotate: y 0deg; }
.ws-js header.ws-cg.ws-in > .e-con > .e-con { animation: ws-cg-flip 8s ease-in-out calc(600ms + var(--ws-i, 0) * 450ms) infinite; }
@keyframes ws-cg-flip { 0%, 22% { rotate: y 0deg; } 32%, 88% { rotate: y 180deg; } 98%, 100% { rotate: y 360deg; } }
@media (max-width: 1024px) { html .elementor header.ws-cg { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) {
  html .elementor header.ws-cg { gap: 10px; }
  html .elementor header.ws-cg > .e-con { height: 158px; }
  html .elementor header.ws-cg > .e-con > .e-con > .e-con { padding: 14px 12px; }
  html .elementor header.ws-cg > .e-con > .e-con > :first-child > :nth-child(2) { font-size: 15px; }
  html .elementor header.ws-cg > .e-con > .e-con > :last-child > :nth-child(2) { font-size: 20px; }
  html .elementor header.ws-cg > .e-con > .e-con > :last-child > :last-child { font-size: 12px; }
}

/* ============================================================ C. PAGE-TYPE SORTER  (section.ws-cg) */
html .elementor section.ws-cg { display: flex; flex-direction: column; gap: 22px; }
/* the belt: topic chips riding a loop (the chip list is written twice) */
html .elementor section.ws-cg > .e-con:first-child { position: relative; height: 64px; border-radius: 9999px; overflow: hidden; background: repeating-linear-gradient(90deg, #F1F8FC 0 18px, #E2F1F8 18px 36px); box-shadow: inset 0 2px 6px rgba(32, 42, 56, .08); -webkit-mask-image: linear-gradient(90deg, transparent 0, #141B26 6%, #141B26 94%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #141B26 6%, #141B26 94%, transparent 100%); }
html .elementor section.ws-cg > .e-con:first-child > .e-con { position: absolute; left: 0; top: 0; bottom: 0; display: flex; align-items: center; gap: 12px; width: max-content; padding-inline: 12px; }
html .elementor section.ws-cg > .e-con:first-child > .e-con > .e-paragraph-base { --c: var(--cg-tang); display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; padding: 9px 14px; border-radius: 9999px; font-size: 13px; font-weight: 700; color: var(--cg-ink); background: #fff; border: 2px solid var(--c); box-shadow: 0 8px 16px -12px rgba(32, 42, 56, .6); }
html .elementor section.ws-cg > .e-con:first-child > .e-con > .e-paragraph-base::before { content: ""; width: 9px; height: 9px; border-radius: 9999px; background: var(--c); }
html .elementor section.ws-cg > .e-con:first-child > .e-con > :nth-child(4n+2) { --c: var(--cg-indigo); }
html .elementor section.ws-cg > .e-con:first-child > .e-con > :nth-child(4n+3) { --c: var(--cg-teal); }
html .elementor section.ws-cg > .e-con:first-child > .e-con > :nth-child(4n+4) { --c: var(--cg-blue); }
.ws-js section.ws-cg.ws-in > .e-con:first-child > .e-con { animation: ws-cg-belt 26s linear infinite; }
@keyframes ws-cg-belt { from { translate: 0 0; } to { translate: -50% 0; } }
/* the bins */
html .elementor section.ws-cg > .e-con:last-child { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
html .elementor section.ws-cg > .e-con:last-child > .e-con { --c: var(--cg-tang); --t: #F7FBEF; position: relative; display: flex; flex-direction: column; gap: 6px; padding: 30px 18px 18px; border-radius: 0 0 20px 20px; background: #fff; border: 1px solid #E2F1F8; border-top: 6px solid var(--c); box-shadow: 0 20px 36px -28px rgba(32, 42, 56, .7); overflow: hidden; }
html .elementor section.ws-cg > .e-con:last-child > :nth-child(2) { --c: var(--cg-indigo); --t: #F1F8FC; }
html .elementor section.ws-cg > .e-con:last-child > :nth-child(3) { --c: var(--cg-teal); --t: #E2F1F8; }
html .elementor section.ws-cg > .e-con:last-child > :nth-child(4) { --c: var(--cg-blue); --t: #E2F1F8; }
html .elementor section.ws-cg > .e-con:last-child > .e-con > :nth-child(1) { font-size: 15px; font-weight: 700; line-height: 1.3; color: var(--cg-ink); }
html .elementor section.ws-cg > .e-con:last-child > .e-con > :nth-child(2) { align-self: flex-start; font-family: var(--ws-mono); font-size: 13px; font-weight: 800; padding: 3px 10px; border-radius: 9999px; background: var(--t); color: color-mix(in srgb, var(--c) 78%, #141B26); }
html .elementor section.ws-cg > .e-con:last-child > .e-con > :nth-child(3) { font-size: 13.5px; line-height: 1.45; color: #4D5C74; }
/* a chip drops into each bin */
html .elementor section.ws-cg > .e-con:last-child > .e-con::after { content: ""; position: absolute; top: -26px; left: 50%; right: auto; bottom: auto; width: 46px; height: 14px; margin-left: -23px; border-radius: 9999px; background: var(--c); opacity: 0; }
.ws-js section.ws-cg.ws-in > .e-con:last-child > .e-con::after { animation: ws-cg-bin 4.8s ease-in calc(1s + var(--ws-i, 0) * 1.2s) infinite; }
@keyframes ws-cg-bin { 0% { top: -26px; opacity: 0; } 10% { opacity: 1; } 30% { top: 6px; opacity: 1; } 40%, 100% { top: 6px; opacity: 0; } }
.ws-js section.ws-cg.ws-in > .e-con:last-child > .e-con > :nth-child(2) { animation: ws-cg-count 4.8s ease-out calc(1s + var(--ws-i, 0) * 1.2s) infinite; }
@keyframes ws-cg-count { 0%, 28% { scale: 1; } 34% { scale: 1.22; } 44%, 100% { scale: 1; } }
.ws-js section.ws-cg > .e-con:last-child > .e-con { opacity: 0; translate: 0 18px; }
.ws-js section.ws-cg.ws-in > .e-con:last-child > .e-con { opacity: 1; translate: 0 0; transition: opacity 450ms ease-out calc(var(--ws-i, 0) * 120ms), translate 600ms var(--ws-ease-out) calc(var(--ws-i, 0) * 120ms); }
@media (max-width: 1024px) { html .elementor section.ws-cg > .e-con:last-child { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { html .elementor section.ws-cg > .e-con:last-child { gap: 10px; } html .elementor section.ws-cg > .e-con:last-child > .e-con { padding: 24px 12px 14px; } html .elementor section.ws-cg > .e-con:last-child > .e-con > :nth-child(3) { font-size: 12.5px; } }

/* ============================================================ D. CONSOLIDATION MERGE  (aside.ws-cg) */
html .elementor aside.ws-cg { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: auto 70px auto; gap: 0 22px; padding: 8px; }
html .elementor aside.ws-cg > .e-con { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 4px; padding: 16px 18px; border-radius: 16px; background: #fff; border: 1px solid #E2F1F8; box-shadow: 0 18px 34px -26px rgba(32, 42, 56, .75); }
html .elementor aside.ws-cg > :nth-child(1) { grid-column: 1; grid-row: 1; border-top: 5px solid var(--cg-tang); }
html .elementor aside.ws-cg > :nth-child(2) { grid-column: 2; grid-row: 1; border-top: 5px solid var(--cg-rasp); }
html .elementor aside.ws-cg > :nth-child(3) { grid-column: 1 / -1; grid-row: 3; justify-self: center; width: min(360px, 100%); color: #fff; border: 0; background: linear-gradient(135deg, #286788, #347FA8); box-shadow: 0 26px 50px -26px rgba(52, 127, 168, .9); }
html .elementor aside.ws-cg > .e-con > :nth-child(1) { font-family: var(--ws-mono); font-size: 13.5px; font-weight: 700; color: var(--cg-ink); overflow-wrap: anywhere; }
html .elementor aside.ws-cg > .e-con > :nth-child(2) { font-size: 13px; font-weight: 600; color: #4D5C74; }
html .elementor aside.ws-cg > :nth-child(3) > :nth-child(1) { color: #fff; font-size: 15px; }
html .elementor aside.ws-cg > :nth-child(3) > :nth-child(2) { color: rgba(255, 255, 255, .9); }
html .elementor aside.ws-cg > :nth-child(3) > :nth-child(3) { align-self: flex-start; margin-top: 6px; padding: 4px 10px; border-radius: 9999px; font-size: 12px; font-weight: 800; letter-spacing: .04em; background: rgba(255, 255, 255, .2); color: #fff; }
/* the two merge lines */
html .elementor aside.ws-cg::before, html .elementor aside.ws-cg::after { content: ""; position: absolute; top: calc(50% - 44px); height: 70px; width: 3px; border-radius: 3px; background: repeating-linear-gradient(180deg, #6FB2D5 0 6px, transparent 6px 12px); background-size: 3px 24px; z-index: 0; }
html .elementor aside.ws-cg::before { left: 36%; rotate: -28deg; }
html .elementor aside.ws-cg::after { right: 36%; rotate: 28deg; }
.ws-js aside.ws-cg.ws-in::before, .ws-js aside.ws-cg.ws-in::after { animation: ws-cg-line 1s linear infinite; }
@keyframes ws-cg-line { from { background-position: 0 0; } to { background-position: 0 24px; } }
.ws-js aside.ws-cg.ws-in > :nth-child(1) { animation: ws-cg-pull-l 5s ease-in-out 1s infinite; }
.ws-js aside.ws-cg.ws-in > :nth-child(2) { animation: ws-cg-pull-r 5s ease-in-out 1s infinite; }
@keyframes ws-cg-pull-l { 0%, 100% { translate: 0 0; rotate: -2deg; } 45%, 60% { translate: 14px 12px; rotate: 0deg; } }
@keyframes ws-cg-pull-r { 0%, 100% { translate: 0 0; rotate: 2deg; } 45%, 60% { translate: -14px 12px; rotate: 0deg; } }
.ws-js aside.ws-cg.ws-in > :nth-child(3) { animation: ws-cg-merge 5s ease-in-out 1s infinite; }
@keyframes ws-cg-merge { 0%, 40%, 100% { scale: 1; box-shadow: 0 26px 50px -26px rgba(52, 127, 168, .9); } 55% { scale: 1.05; box-shadow: 0 26px 50px -26px rgba(52, 127, 168, .9), 0 0 0 8px rgba(40, 103, 136, .22); } }
.ws-js aside.ws-cg > .e-con { opacity: 0; }
.ws-js aside.ws-cg.ws-in > .e-con { opacity: 1; transition: opacity 600ms ease-out; }
.ws-js aside.ws-cg.ws-in > :nth-child(2) { transition-delay: 200ms; } .ws-js aside.ws-cg.ws-in > :nth-child(3) { transition-delay: 700ms; }
@media (max-width: 560px) {
  html .elementor aside.ws-cg { gap: 0 10px; grid-template-rows: auto 56px auto; padding: 0; }
  html .elementor aside.ws-cg > .e-con { padding: 12px; }
  html .elementor aside.ws-cg > .e-con > :nth-child(1) { font-size: 12px; }
  html .elementor aside.ws-cg > .e-con > :nth-child(2) { font-size: 12px; }
  html .elementor aside.ws-cg::before, html .elementor aside.ws-cg::after { height: 56px; top: calc(50% - 36px); }
}

/* ============================================================ E. CONTENT PLAN BOARD  (footer.ws-cg) */
html .elementor footer.ws-cg { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
html .elementor footer.ws-cg > .e-con:not(:last-child) { --c: var(--cg-rasp); --t: #F1F8FC; display: flex; flex-direction: column; gap: 10px; min-height: 300px; padding: 16px 14px 104px; border-radius: 20px; background: var(--t); }
html .elementor footer.ws-cg > :nth-child(2) { --c: var(--cg-tang); --t: #F7FBEF; }
html .elementor footer.ws-cg > :nth-child(3) { --c: #537418; --t: #EDF6DB; }
html .elementor footer.ws-cg > .e-con:not(:last-child) > :nth-child(1) { display: flex; align-items: center; justify-content: space-between; font-size: 13px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--c); }
html .elementor footer.ws-cg > .e-con:not(:last-child) > .e-con { display: flex; flex-direction: column; gap: 3px; padding: 12px 14px; border-radius: 12px; background: #fff; border-left: 4px solid var(--c); box-shadow: 0 10px 22px -18px rgba(32, 42, 56, .7); }
html .elementor footer.ws-cg .e-con > .e-con > :first-child { font-size: 14px; font-weight: 700; line-height: 1.3; color: var(--cg-ink); }
html .elementor footer.ws-cg .e-con > .e-con > :last-child { font-size: 12.5px; font-weight: 600; color: #4D5C74; }
/* the card that travels from Planned to Published */
html .elementor footer.ws-cg > .e-con:last-child { --c: var(--cg-rasp); position: absolute; left: 14px; bottom: 16px; z-index: 2; width: calc((100% - 32px) / 3 - 28px); display: flex; flex-direction: column; gap: 3px; padding: 12px 14px; border-radius: 12px; background: #fff; border-left: 4px solid var(--c); box-shadow: 0 18px 30px -16px rgba(32, 42, 56, .7); }
html .elementor footer.ws-cg > .e-con:last-child > :first-child { font-size: 14px; font-weight: 700; color: var(--cg-ink); }
html .elementor footer.ws-cg > .e-con:last-child > :last-child { font-size: 12.5px; font-weight: 600; color: #4D5C74; }
.ws-js footer.ws-cg.ws-in > .e-con:last-child { animation: ws-cg-travel 9s ease-in-out 1s infinite; }
@keyframes ws-cg-travel {
  0%, 20% { translate: 0 0; rotate: 0deg; border-left-color: #347FA8; }
  28% { rotate: 3deg; }
  36%, 56% { translate: calc(100% + 44px) 0; rotate: 0deg; border-left-color: #83B422; }
  64% { rotate: 3deg; }
  72%, 92% { translate: calc(200% + 88px) 0; rotate: 0deg; border-left-color: #6B951B; }
  100% { translate: calc(200% + 88px) 0; opacity: 0; }
}
.ws-js footer.ws-cg > .e-con:not(:last-child) { opacity: 0; translate: 0 16px; }
.ws-js footer.ws-cg.ws-in > .e-con:not(:last-child) { opacity: 1; translate: 0 0; transition: opacity 450ms ease-out calc(var(--ws-i, 0) * 140ms), translate 600ms var(--ws-ease-out) calc(var(--ws-i, 0) * 140ms); }
@media (max-width: 767px) {
  html .elementor footer.ws-cg { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  html .elementor footer.ws-cg > .e-con:not(:last-child) { min-height: 0; padding-bottom: 16px; }
  html .elementor footer.ws-cg > .e-con:last-child { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .ws-js .ws-cg, .ws-js .ws-cg *, .ws-js .ws-cg::before, .ws-js .ws-cg::after, .ws-js .ws-cg *::before, .ws-js .ws-cg *::after { animation: none !important; }
  .ws-js header.ws-cg > .e-con > .e-con { rotate: y 180deg; }
}
