/* =====================================================================
   Motion & showcase layer — page transitions, live sections, polish.
   ===================================================================== */

/* ---------- Page transitions (cross-document View Transitions; ignored where unsupported) ---------- */
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: jk-vt-out .35s cubic-bezier(.4, 0, .2, 1) both; }
::view-transition-new(root) { animation: jk-vt-in .55s cubic-bezier(.22, 1, .36, 1) both; }
@keyframes jk-vt-out { to { opacity: 0; transform: translateY(-14px) scale(.995); filter: blur(2px); } }
@keyframes jk-vt-in { from { opacity: 0; transform: translateY(18px); } }
.jks .site-header { view-transition-name: jk-header; }
::view-transition-old(jk-header), ::view-transition-new(jk-header) { animation: none; }
body.jks { animation: jk-page-in .7s cubic-bezier(.22, 1, .36, 1) both; }
@keyframes jk-page-in { from { opacity: 0; } }

/* ---------- Heading word reveal (JS splits words) ---------- */
.jks .wd { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .08em; margin-bottom: -.08em; }
.jks .wd > span { display: inline-block; transform: translateY(105%); opacity: 0; transition: transform .9s cubic-bezier(.22, 1, .36, 1), opacity .6s; transition-delay: calc(var(--wi, 0) * 55ms); }
.jks .words-in .wd > span { transform: none; opacity: 1; }
.jks .grad-text .wd > span { background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.jks .grad-text:has(.wd) { background: none; -webkit-text-fill-color: initial; }

/* ---------- Hero: living background ---------- */
.jks .hero { isolation: isolate; }
.jks .hero::before { content: ""; position: absolute; inset: -20% -10% auto -10%; height: 140%; z-index: -1; pointer-events: none;
  background: radial-gradient(38% 42% at 78% 22%, rgba(255, 140, 90, .32), transparent 70%), radial-gradient(30% 36% at 18% 70%, rgba(124, 135, 255, .22), transparent 70%), radial-gradient(26% 30% at 55% 85%, rgba(255, 90, 120, .14), transparent 70%);
  animation: jk-aurora 18s ease-in-out infinite alternate; filter: blur(10px); }
@keyframes jk-aurora { 0% { transform: translate3d(0, 0, 0) rotate(0deg) scale(1); } 50% { transform: translate3d(-3%, 2%, 0) rotate(4deg) scale(1.06); } 100% { transform: translate3d(2%, -2%, 0) rotate(-3deg) scale(1.02); } }
.jks .hero .hero-spot { position: absolute; inset: 0; pointer-events: none; z-index: 0; background: radial-gradient(420px 420px at var(--mx, 70%) var(--my, 30%), rgba(255, 120, 80, .14), transparent 70%); transition: background .2s; }
.jks .hero-particles { position: absolute; inset: 0; pointer-events: none; overflow: hidden; z-index: 0; }
.jks .hero-particles i { position: absolute; width: 6px; height: 6px; border-radius: 50%; background: var(--grad); opacity: .35; animation: jk-float 12s ease-in-out infinite; }
@keyframes jk-float { 0%, 100% { transform: translate3d(0, 0, 0); } 50% { transform: translate3d(14px, -28px, 0); } }

/* ---------- Cursor glow (desktop) ---------- */
.jk-cursor { position: fixed; left: 0; top: 0; width: 34px; height: 34px; margin: -17px 0 0 -17px; border-radius: 50%; pointer-events: none; z-index: 3000;
  border: 1.5px solid rgba(255, 90, 60, .55); transition: width .25s, height .25s, margin .25s, background .25s, border-color .25s, opacity .3s; mix-blend-mode: multiply; opacity: 0; }
.jk-cursor.on { opacity: 1; }
.jk-cursor.hover { width: 64px; height: 64px; margin: -32px 0 0 -32px; background: rgba(255, 120, 80, .12); border-color: rgba(255, 90, 60, .25); }
.jk-cursor-dot { position: fixed; left: 0; top: 0; width: 6px; height: 6px; margin: -3px 0 0 -3px; border-radius: 50%; background: var(--brand); pointer-events: none; z-index: 3001; opacity: 0; transition: opacity .3s; }
.jk-cursor-dot.on { opacity: 1; }
@media (hover: none), (max-width: 1080px) { .jk-cursor, .jk-cursor-dot { display: none; } }

/* ---------- Animated gradient border on key cards ---------- */
@property --jk-angle { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
.jks .s-card, .jks .ach-card, .jks .offer-card, .jks .tool-grid.hub .tool-card, .jks .feature, .jks .case { position: relative; }
.jks .s-card::before, .jks .ach-card::before, .jks .case::before, .jks .feature::before { content: ""; position: absolute; inset: -1px; border-radius: inherit; padding: 1.5px; pointer-events: none; z-index: 2;
  background: conic-gradient(from var(--jk-angle), transparent 0 60%, #ff4b3e 75%, #ff9a4d 88%, transparent 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; opacity: 0; transition: opacity .4s; animation: jk-spin-border 3.2s linear infinite; }
.jks .s-card:hover::before, .jks .ach-card:hover::before, .jks .case:hover::before, .jks .feature:hover::before { opacity: 1; }
@keyframes jk-spin-border { to { --jk-angle: 360deg; } }
.jks .s-card, .jks .case, .jks .feature, .jks .p-card { transition: transform .5s cubic-bezier(.22, 1, .36, 1), box-shadow .5s cubic-bezier(.22, 1, .36, 1); }
.jks .case:hover, .jks .p-card:hover { transform: translateY(-6px); box-shadow: var(--shadow); }

/* ---------- Section accents ---------- */
.jks .jk-sec:not(.bg-soft):not(.tools-band):not(.contact)::after { content: ""; position: absolute; left: 50%; top: 0; width: min(1100px, 80%); height: 1px; transform: translateX(-50%);
  background: linear-gradient(90deg, transparent, rgba(255, 110, 70, .35), transparent); }
.jks .stats-band::after { content: ""; position: absolute; inset: 0; background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, .06) 50%, transparent 70%); background-size: 250% 100%; animation: jk-sheen 6s linear infinite; pointer-events: none; }
@keyframes jk-sheen { from { background-position: 150% 0; } to { background-position: -100% 0; } }

/* ---------- Showcase (about + credentials) ---------- */
.jks .showcase-sec { overflow: hidden; background: radial-gradient(900px 500px at 12% 10%, #f4f1ff 0%, transparent 60%), radial-gradient(800px 500px at 95% 90%, #fff1ea 0%, transparent 60%), #fff; }
.jks .showcase-sec::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(rgba(11, 18, 32, .08) 1.5px, transparent 1.5px); background-size: 34px 34px;
  mask-image: radial-gradient(ellipse 60% 70% at 50% 50%, #000 20%, transparent 80%); -webkit-mask-image: radial-gradient(ellipse 60% 70% at 50% 50%, #000 20%, transparent 80%); pointer-events: none; }
.jks .showcase { align-items: center; position: relative; }
.jks .cert-col { height: 640px; overflow: hidden; position: relative; gap: 0;
  mask-image: linear-gradient(transparent, #000 12%, #000 88%, transparent); -webkit-mask-image: linear-gradient(transparent, #000 12%, #000 88%, transparent); }
.jks .cert-col .cert-track { display: flex; flex-direction: column; gap: 16px; animation: jk-vscroll 32s linear infinite; }
.jks .cert-col:hover .cert-track { animation-play-state: paused; }
@keyframes jk-vscroll { to { transform: translateY(-50%); } }
.jks .cert-tile { flex: none; padding: 20px 18px; border-radius: 18px; background: #fbf8f4; border: 1px solid #efe7dd; box-shadow: 0 1px 0 #fff inset, 0 10px 24px -18px rgba(11, 18, 32, .35); text-align: center; gap: 4px; transition: transform .4s cubic-bezier(.22, 1, .36, 1), box-shadow .4s; }
.jks .cert-tile:hover { transform: scale(1.04); box-shadow: 0 18px 34px -18px rgba(11, 18, 32, .4); }
.jks .ct-name .elementor-heading-title { font: 800 21px/1.1 var(--font-head); letter-spacing: -.01em; }
.jks .ct-sub p { font-size: 12px; color: var(--muted); line-height: 1.35; margin: 0; }
.jks .t-iit .ct-name .elementor-heading-title { color: #1f3c88; font-family: Georgia, "Times New Roman", serif; }
.jks .t-purdue .ct-name .elementor-heading-title { color: #8e6f3e; font-family: Georgia, serif; letter-spacing: .02em; }
.jks .t-darden .ct-name .elementor-heading-title { color: #232d4b; font-family: Georgia, serif; }
.jks .t-vandy .ct-name .elementor-heading-title { color: #866d4b; font-family: Georgia, serif; }
.jks .t-google .ct-name .elementor-heading-title { background: linear-gradient(90deg, #4285f4 0 30%, #ea4335 30% 50%, #fbbc05 50% 70%, #34a853 70%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.jks .t-meta .ct-name .elementor-heading-title { color: #0866ff; }
.jks .t-hubspot .ct-name .elementor-heading-title { color: #ff5c35; }
.jks .t-ms .ct-name .elementor-heading-title { color: #5e5e5e; }
.jks .t-bluearray .ct-name .elementor-heading-title { color: #1b5fd6; }
.jks .pill-wrap { position: relative; isolation: isolate; padding: 0 0 0 26px; }
.jks .pill-wrap::before { content: ""; position: absolute; left: 0; top: 4%; bottom: -2%; width: calc(100% - 26px); border-radius: 999px; background: linear-gradient(160deg, #ffb59a, #ff6a3d 55%, #c7cdfc); z-index: -1; transform: translateX(-14px); }
.jks .pill-photo { border-radius: 999px; overflow: hidden; aspect-ratio: 380 / 560; box-shadow: var(--shadow-lg); }
.jks .pill-photo .elementor-widget-container, .jks .pill-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; display: block; transition: transform 1.2s cubic-bezier(.22, 1, .36, 1); }
.jks .pill-wrap:hover .pill-photo img { transform: scale(1.04); }
.jks .pill-vtext { position: absolute; right: -44px; top: 0; bottom: 0; width: auto; display: flex; align-items: center; justify-content: center; }
.jks .pill-vtext .elementor-heading-title { writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; }
.jks .pill-vtext .elementor-heading-title { font: 600 15px/1 var(--font-head); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); }
.jks .pill-badge { position: absolute; left: -8px; bottom: 9%; width: auto; background: #fff; padding: 12px 16px; border-radius: 16px; box-shadow: var(--shadow-lg); animation: bob 7s ease-in-out infinite; z-index: 2; }
.jks .pill-badge .ic .elementor-icon { width: 38px; height: 38px; border-radius: 11px; background: var(--grad); color: #fff; }
.jks .pill-badge .ic svg { width: 19px; height: 19px; }
.jks .show-title .elementor-heading-title { text-transform: none; }
.jks .show-accent { margin: 22px 0 6px; padding-left: 16px; border-left: 4px solid #f4b183; }
.jks .show-accent .elementor-heading-title { font: italic 600 19px/1.3 Georgia, serif; color: var(--ink-2); }
.jks .show-sub { margin: 24px 0 14px; }
.jks .show-sub .elementor-heading-title { font: 800 18px var(--font-head); letter-spacing: .06em; text-transform: uppercase; }
.jks .ach-list { gap: 14px; }
.jks .ach-card { padding: 18px 20px; border-radius: 20px; background: linear-gradient(120deg, #fff4fb, #fff7f2); border: 1px solid #f6e3ee; transition: transform .45s cubic-bezier(.22, 1, .36, 1), box-shadow .45s; }
.jks .ach-card:hover { transform: translateX(6px); box-shadow: 0 18px 34px -20px rgba(255, 75, 62, .45); }
.jks .ach-card .ic .elementor-icon { width: 54px; height: 54px; border-radius: 16px; background: #fff; color: var(--brand-ink); box-shadow: 0 8px 18px -10px rgba(255, 75, 62, .5); }
.jks .ach-card .ic svg { width: 24px; height: 24px; }
.jks .ach-card > .e-con { gap: 2px; flex: 1; width: auto; }
.jks .ach-t .elementor-heading-title { font: 700 17px/1.25 var(--font-head); }
.jks .ach-d p { font-size: 14.5px; color: var(--muted); margin: 0; line-height: 1.45; }
.jks .show-copy .about-btns { margin-top: 26px; }

/* ---------- Recommendations: live layout ---------- */
.jks .recos-live { background: radial-gradient(900px 500px at 10% 0%, #fff1ea, transparent 60%), radial-gradient(700px 500px at 100% 100%, #f1f0ff, transparent 60%), #fffaf7 !important; overflow: hidden; }
.jks .jks-recos.live .rl-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 34px; align-items: stretch; }
.jks .rl-spot { position: relative; overflow: hidden; border-radius: 32px; background: var(--ink); color: #dfe4ee; padding: 44px 44px 30px; display: flex; flex-direction: column; min-height: 520px; box-shadow: var(--shadow-lg); }
.jks .rl-glow { position: absolute; width: 520px; height: 520px; right: -200px; top: -220px; border-radius: 50%; background: radial-gradient(circle, rgba(255, 106, 61, .45), transparent 65%); animation: drift 14s ease-in-out infinite alternate; pointer-events: none; }
.jks .rl-mark { position: relative; width: 62px; height: 62px; border-radius: 18px; background: var(--grad); display: grid; place-items: center; color: #fff; box-shadow: 0 16px 30px -14px rgba(255, 75, 62, .8); margin-bottom: 26px; }
.jks .rl-mark svg { width: 28px; height: 28px; }
.jks .rl-slides { position: relative; flex: 1; display: grid; }
.jks .rl-slide { grid-area: 1 / 1; margin: 0; display: flex; flex-direction: column; opacity: 0; visibility: hidden; transform: translateY(24px); transition: opacity .7s, transform .8s cubic-bezier(.22, 1, .36, 1), visibility 0s .8s; }
.jks .rl-slide.on { opacity: 1; visibility: visible; transform: none; transition: opacity .7s .1s, transform .8s .1s cubic-bezier(.22, 1, .36, 1), visibility 0s; }
.jks .rl-meta { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 16px; }
.jks .rl-rel { font: 600 13px var(--font-head); color: #ffb18f; letter-spacing: .04em; }
.jks .rl-spot .tm-src { background: rgba(255, 255, 255, .1); color: #9fc9ff; }
.jks .rl-spot .tm-client { background: rgba(74, 222, 128, .12); color: #86efac; }
.jks .rl-slide blockquote { margin: 0 0 26px; font: 500 clamp(18px, 1.7vw, 22px)/1.6 var(--font-head); color: #fff; letter-spacing: -.005em; }
.jks .rl-slide figcaption { display: flex; align-items: center; gap: 14px; margin-top: auto; }
.jks .rl-slide .av, .jks .rl-card .av { flex: none; width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; background: var(--grad); color: #fff; font: 700 17px var(--font-head); }
.jks .rl-slide figcaption strong { display: block; color: #fff; font: 700 17px var(--font-head); }
.jks .rl-slide figcaption span:not(.av) { font-size: 13.5px; color: #9aa4b8; }
.jks .rl-nav { position: relative; display: flex; align-items: center; gap: 14px; margin-top: 30px; padding-top: 22px; border-top: 1px solid rgba(255, 255, 255, .1); }
.jks .rl-nav button { width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .18); background: transparent; color: #fff; display: grid; place-items: center; cursor: pointer; transition: background .3s, border-color .3s; }
.jks .rl-nav button:hover { background: var(--grad); border-color: transparent; }
.jks .rl-nav button svg { width: 18px; height: 18px; }
.jks .rl-count { font: 600 14px var(--font-head); color: #9aa4b8; min-width: 64px; }
.jks .rl-count b { color: #fff; }
.jks .rl-bar { flex: 1; height: 3px; border-radius: 3px; background: rgba(255, 255, 255, .12); overflow: hidden; }
.jks .rl-bar i { display: block; height: 100%; width: 100%; background: var(--grad); transform-origin: left; transform: scaleX(0); }
.jks .rl-bar i.run { animation: jk-bar var(--rl-dur, 7s) linear forwards; }
@keyframes jk-bar { to { transform: scaleX(1); } }
.jks .rl-spot:hover .rl-bar i.run { animation-play-state: paused; }
.jks .rl-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; height: 600px; overflow: hidden;
  mask-image: linear-gradient(transparent, #000 10%, #000 90%, transparent); -webkit-mask-image: linear-gradient(transparent, #000 10%, #000 90%, transparent); }
.jks .rl-track { display: flex; flex-direction: column; gap: 16px; animation: jk-vscroll 38s linear infinite; }
.jks .rl-col.rev .rl-track { animation-direction: reverse; animation-duration: 44s; }
.jks .rl-cols:hover .rl-track { animation-play-state: paused; }
.jks .rl-card { display: flex; flex-direction: column; gap: 12px; text-align: left; padding: 20px; border-radius: 20px; background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow-sm); cursor: pointer; font: inherit; color: inherit; transition: transform .4s cubic-bezier(.22, 1, .36, 1), box-shadow .4s, border-color .4s; }
.jks .rl-card:hover, .jks .rl-card.on { transform: translateY(-4px); box-shadow: var(--shadow); border-color: #ffc9b8; }
.jks .rl-card.on { box-shadow: 0 0 0 2px #ff9a4d, var(--shadow); }
.jks .rl-card-top { display: flex; justify-content: space-between; align-items: center; }
.jks .rl-card-q { font-size: 14.5px; line-height: 1.6; color: var(--ink-3); }
.jks .rl-card-who { display: flex; align-items: center; gap: 10px; }
.jks .rl-card .av { width: 38px; height: 38px; font-size: 13px; }
.jks .rl-card b { display: block; font: 700 14.5px var(--font-head); color: var(--ink); }
.jks .rl-card small { font-size: 12px; color: var(--muted); }

/* ---------- FAQ help card ---------- */
.jks .faq-side { position: sticky; top: 110px; align-self: start; }
.jks .faq-help { margin-top: 30px; padding: 24px; border-radius: 24px; background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow); gap: 16px; }
.jks .fh-head .ic .elementor-icon { width: 48px; height: 48px; border-radius: 14px; background: var(--grad); color: #fff; }
.jks .fh-head .ic svg { width: 22px; height: 22px; }
.jks .fh-head > .e-con { gap: 2px; width: auto; flex: 1; }
.jks .fh-t .elementor-heading-title { font: 700 17px var(--font-head); }
.jks .fh-d p { font-size: 14px; color: var(--muted); margin: 0; }
.jks .fh-list .elementor-icon-list-item { padding: 0 0 8px !important; font-size: 14.5px; color: var(--ink-3); }
.jks .fh-list .elementor-icon-list-icon svg { width: 17px; height: 17px; color: var(--brand-ink); }
.jks .faq-grid { align-items: start; }
.jks .jk-faq .elementor-accordion-item:first-child .elementor-tab-title { padding-top: 6px; }
.jks .jk-faq .elementor-accordion-item:first-child .elementor-tab-title::after { margin-top: -15px; }

/* ---------- Footer identity ---------- */
.jks .f-id { margin-bottom: 18px; }
.jks .f-id .f-logo img { height: 70px; margin: 0; }
.jks .f-id > .e-con { gap: 4px; width: auto; }
.jks .f-name .elementor-heading-title { font: 800 22px/1.15 var(--font-head); letter-spacing: .08em; color: #fff; background: linear-gradient(120deg, #fff 40%, #ffb18f); -webkit-background-clip: text; background-clip: text; color: transparent; }
.jks .f-role p { font-size: 13px; color: #8f99ad; margin: 0; letter-spacing: .02em; }
.jks .footer .f-id + .elementor-widget-text-editor p { margin-top: 0; }

/* ---------- Floating "free audit" tab + back to top ---------- */
.jk-audit-tab { position: fixed; right: 0; top: 50%; z-index: 950; transform: translateY(-50%) translateX(100%); writing-mode: vertical-rl; rotate: 180deg; padding: 18px 11px; border: 0; border-radius: 0 14px 14px 0; background: var(--grad); color: #fff; font: 700 13.5px var(--font-head); letter-spacing: .06em; cursor: pointer; box-shadow: 0 14px 28px -12px rgba(255, 75, 62, .7); transition: transform .5s cubic-bezier(.22, 1, .36, 1), padding .3s; display: flex; align-items: center; gap: 8px; }
.jk-audit-tab.show { transform: translateY(-50%); }
.jk-audit-tab:hover { padding-right: 15px; }
.jk-audit-tab svg { width: 16px; height: 16px; rotate: 90deg; }
.jk-top { position: fixed; right: 24px; bottom: 96px; z-index: 900; width: 50px; height: 50px; border-radius: 50%; border: 0; background: #fff; box-shadow: var(--shadow); cursor: pointer; display: grid; place-items: center; opacity: 0; transform: translateY(16px); pointer-events: none; transition: opacity .4s, transform .4s cubic-bezier(.22, 1, .36, 1); }
.jk-top.show { opacity: 1; transform: none; pointer-events: auto; }
.jk-top svg.ring { position: absolute; inset: 0; width: 50px; height: 50px; transform: rotate(-90deg); }
.jk-top svg.ring circle { fill: none; stroke-width: 3; }
.jk-top svg.ring .bg { stroke: #eef0f5; }
.jk-top svg.ring .fg { stroke: url(#jk-tg); stroke-linecap: round; stroke-dasharray: 138; stroke-dashoffset: 138; }
.jk-top .arr { width: 18px; height: 18px; color: var(--ink); rotate: -90deg; }

/* ---------- Responsive ---------- */
@media (max-width: 1080px) {
  .jks .showcase { grid-template-columns: 1fr !important; }
  .jks .cert-col { height: auto; mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); order: 3; }
  .jks .cert-col .cert-track { flex-direction: row; width: max-content; animation: jk-hscroll 40s linear infinite; }
  .jks .cert-tile { width: 220px; }
  .jks .pill-wrap { max-width: 400px; margin: 0 auto; width: 100%; }
  .jks .pill-vtext { display: none; }
  .jks .jks-recos.live .rl-grid { grid-template-columns: 1fr; }
  .jks .rl-cols { height: auto; grid-template-columns: 1fr; mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
  .jks .rl-col.rev { display: none; }
  .jks .rl-track { flex-direction: row; width: max-content; animation-name: jk-hscroll; }
  .jks .rl-card { width: 300px; }
  .jks .faq-side { position: static; }
}
@keyframes jk-hscroll { to { transform: translateX(-50%); } }
@media (max-width: 680px) {
  .jks .rl-spot { padding: 30px 24px 22px; min-height: 0; }
  .jks .pill-badge { left: 0; }
  .jk-audit-tab { padding: 14px 9px; font-size: 12px; }
  .jk-top { right: 16px; bottom: 90px; width: 44px; height: 44px; }
  .jk-top svg.ring { width: 44px; height: 44px; }
  .jks .f-id { flex-direction: row; }
  .jks .f-name .elementor-heading-title { font-size: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .jks .hero::before, .jks .cert-col .cert-track, .jks .rl-track, .jks .stats-band::after, .jks .s-card::before { animation: none !important; }
  .jks .wd > span { transform: none !important; opacity: 1 !important; }
  @view-transition { navigation: none; }
}

/* ---------- Blog figures ---------- */
.jks .prose figure.jk-fig, .jks .prose figure { margin: 34px 0 38px; }
.jks .prose figure img { width: 100%; height: auto; border-radius: 22px; border: 1px solid var(--line); box-shadow: 0 24px 50px -30px rgba(11, 18, 32, .35); display: block; transition: transform .6s cubic-bezier(.22, 1, .36, 1); }
.jks .prose figure:hover img { transform: scale(1.01); }
.jks .prose figcaption { margin-top: 12px; text-align: center; font-size: 14.5px; color: var(--muted); font-style: italic; }
.jks .prose h3 { font-size: 22px; margin: 30px 0 10px; }
.jks .prose ol { padding-left: 22px; margin: 0 0 24px; display: grid; gap: 10px; }
.jks .prose ol li::marker { color: var(--brand-ink); font-weight: 800; }
.jks .post-art.has-img { height: auto; margin: 6px 0 34px; border-radius: 26px; overflow: hidden; box-shadow: var(--shadow-lg); }
.jks .post-art.has-img img { width: 100%; height: auto; display: block; }
.jks .post .thumb img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- fixes: theme button reset on recommendation cards, badges, mobile floating UI ---------- */
.jks .rl-card, .jks .rl-card:hover, .jks .rl-card:focus { white-space: normal; background: #fff; color: inherit; text-transform: none; letter-spacing: normal; }
.jks .rl-nav button, .jks .rl-nav button:focus { white-space: normal; color: #fff; }
.jks .rl-cols { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.jks .rl-col { min-width: 0; }
.jks .pill-badge { flex-direction: row !important; flex-wrap: nowrap !important; }
.jks .pill-badge > .e-con { width: auto !important; gap: 0; }
.jks .pill-vtext { right: -34px; }
@media (max-width: 1080px) { .jks .rl-cols { grid-template-columns: 1fr; } }
@media (max-width: 680px) {
  .jks .tm-summary { flex-direction: column; text-align: center; padding: 16px 18px; }
  .jks .jks-recos .tm-summary-wrap { margin-bottom: 22px; }
  .jks .pill-badge { padding: 10px 14px; bottom: 6%; }
  .jk-audit-tab { writing-mode: horizontal-tb; rotate: 0deg; top: auto; bottom: 22px; left: 16px; right: auto; transform: translateY(140%); border-radius: 999px; padding: 12px 18px; }
  .jk-audit-tab.show { transform: none; }
  .jk-audit-tab svg { rotate: 0deg; }
  .jk-top { display: none; }
}
.jks .elementor-popup-modal .dialog-close-button { border: 0; background: rgba(255, 255, 255, .92); box-shadow: 0 6px 16px -8px rgba(0, 0, 0, .35); }
.jks .elementor-popup-modal .dialog-close-button i, .jks .elementor-popup-modal .dialog-close-button svg { font-size: 16px; width: 16px; height: 16px; color: var(--ink); fill: var(--ink); }
.jks .jk-form select.elementor-field { padding-right: 38px; background-position: right 12px center; }
.jks .jk-form .elementor-select-wrapper::before { display: none; }
@media (max-width: 680px) {
  .jks .elementor-popup-modal .elementor-widget.lp-points, .jks .elementor-popup-modal .lp-sub { display: none !important; }
  .jks .elementor-popup-modal .lp-side { padding: 24px 20px 18px; }
  .jks .elementor-popup-modal .lp-title .elementor-heading-title { font-size: 22px; margin: 10px 0 4px; }
  .jks .elementor-popup-modal .lp-price .elementor-heading-title { font-size: 22px; margin: 0; }
}
.jks .post .thumb:has(img) .cat { display: none; }
.jks .c-list-w ul, .jks .c-list-w .elementor-icon-list-items { list-style: none !important; padding: 0 !important; margin: 0 !important; }
.jks .c-list-w .elementor-icon-list-item::before, .jks .c-list-w .elementor-icon-list-item::marker { content: none !important; display: none !important; }
.jks .toc-w .elementor-toc { border: 0 !important; box-shadow: none !important; }
.jks .toc-w .elementor-toc__header { padding: 0 0 10px !important; }

/* ---------- Footer identity: tight name + tagline ---------- */
.jks .footer .f-id .elementor-heading-title, .jks .footer .f-name .elementor-heading-title { margin: 0 !important; }
.jks .footer .f-id > .e-con { gap: 4px !important; padding: 0 !important; }
.jks .footer .f-id .f-role p { margin: 0 !important; line-height: 1.4; }
.jks .footer .f-id .elementor-widget { margin: 0 !important; }

/* ---------- Intro portrait: tight backdrop + sparkling animated gradient line ---------- */
.jks .pill-wrap { padding: 0 0 0 12px; }
.jks .pill-wrap::before { left: 0; top: 14px; bottom: -14px; width: calc(100% - 12px); transform: none; opacity: .9; }
.jks .pill-photo { position: relative; isolation: isolate; overflow: visible !important; }
.jks .pill-photo .elementor-widget-container { border-radius: 999px; overflow: hidden; }
.jks .pill-photo::after { content: ""; position: absolute; inset: -7px; border-radius: 999px; padding: 3px; pointer-events: none; z-index: 2;
  background: conic-gradient(from var(--jk-angle), transparent 0deg, #ff3d3d 40deg, #ff9a4d 90deg, #ffe0b0 110deg, transparent 160deg, transparent 200deg, #8b95ff 250deg, #ff6a3d 300deg, transparent 340deg);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude;
  animation: jk-spin-border 4.5s linear infinite; filter: drop-shadow(0 0 6px rgba(255, 120, 70, .7)); }
.jks .pill-wrap .sparkle { position: absolute; z-index: 3; width: 14px; height: 14px; pointer-events: none; background: radial-gradient(circle, #fff 0 18%, transparent 20%),
  conic-gradient(from 0deg, transparent 0 40deg, #ffd29a 45deg, transparent 50deg 130deg, #ffd29a 135deg, transparent 140deg 220deg, #ffd29a 225deg, transparent 230deg 310deg, #ffd29a 315deg, transparent 320deg);
  border-radius: 50%; filter: drop-shadow(0 0 4px #ff9a4d); animation: jk-twinkle 2.6s ease-in-out infinite; opacity: 0; }
@keyframes jk-twinkle { 0%, 100% { opacity: 0; transform: scale(.3) rotate(0deg); } 50% { opacity: 1; transform: scale(1) rotate(45deg); } }
@media (prefers-reduced-motion: reduce) { .jks .pill-photo::after, .jks .pill-wrap .sparkle { animation: none; opacity: 1; } }
