/* ============================================================
   FLIPKART SELLER SAMVAAD SURAT 2026 — PoC visual layer
   Goes in: Settings -> Custom CSS
   Light theme only. SPA-safe. All overrides scoped to real
   Backstage selectors confirmed on the live zephyr theme.
   ============================================================ */

/* ---------- 1. PALETTE + FONT ---------- */
:root {
  --fk-blue:   #2874F0;
  --fk-blue-d: #1856b8;
  --fk-yellow: #FFE11B;
  --fk-navy:   #172337;
  --fk-grey:   #878787;
  --fk-white:  #FFFFFF;
  --fk-band:   #F1F3F6;
  --fk-line:   #E3E8EF;
  --fk-new:    #4b81ab;  /* Launchpad track */
  --fk-exist:  #02BECA;  /* Growth track    */
  --fk-font: "Inter", -apple-system, BlinkMacSystemFont,
             "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

/* Pull Inter (no-op if already present) */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

body.bs-website,
body.bs-website .bs-section,
body.bs-website .bs-main-menu {
  font-family: var(--fk-font) !important;
}

/* ---------- 2. NATIVE TEXT-COLOUR VARIABLES ---------- */
/* Define the empty theme vars so all native text follows brand */
body.bs-website {
  --text-color: var(--fk-navy);
  --secondary-text-color: var(--fk-grey);
  --title-text-color: var(--fk-navy);
  --heading-color: var(--fk-navy);
  --section-text-color: var(--fk-navy);
  --section-title-text-color: var(--fk-navy);
  --section-secondary-text-color: var(--fk-grey);
  --alternate-section-text-color: var(--fk-navy);
  --alternate-section-title-text-color: var(--fk-navy);
  --alternate-section-secondary-text-color: var(--fk-grey);
  --banner-text-color: var(--fk-navy);
  --banner-title-text-color: var(--fk-navy);
  --banner-secondary-text-color: var(--fk-grey);
  --inner-banner-text-color: var(--fk-navy);
  --inner-banner-secondary-text-color: var(--fk-grey);
  --number-counter-color: var(--fk-blue);
  --light-border-color: var(--fk-line);
  --border-color: var(--fk-line);
  /* The event's configured accent is an off-theme brown (#8A400A).
     Re-point the primary/highlight accent vars to brand blue so
     ticket headers, primary buttons, tabs etc. all follow. */
  --primary-button-bg-color: var(--fk-blue) !important;
  --highlight-button-bg-color: var(--fk-blue) !important;
}

/* Force native section headings to brand colours (theme hard-sets
   per-section accent colours that beat the :root variables) */
.bs-section:not(.main-banner) .section-title,
.bs-section:not(.main-banner) .section-head { color:var(--fk-navy) !important; }
.bs-section:not(.main-banner) .section-sub-title { color:var(--fk-grey) !important; }
.bs-section:not(.main-banner) .markdown-contain { color:var(--fk-navy) !important; }

/* ---------- 3. SECTION BACKGROUNDS (kill zephyr image) ---------- */
.bs-section > .background-layer {
  background-image: none !important;
}
/* Default bands -> white */
.bs-section.default > .background-layer {
  background-color: var(--fk-white) !important;
}
/* Alternate bands -> light grey */
.bs-section.alternative-background > .background-layer {
  background-color: var(--fk-band) !important;
}
/* Neutralise the dark overlay :after on inner sections */
.bs-section:not(.main-banner) > .background-layer::after {
  background: transparent !important;
  opacity: 0 !important;
}

/* ---------- 4. HERO (white + soft pastel blobs) ---------- */
section.main-banner > .background-layer {
  background-color: var(--fk-white) !important;
  background-image:
    radial-gradient(46% 60% at 92% 8%, rgba(40,116,240,.12), transparent 60%),
    radial-gradient(40% 50% at 4% 96%, rgba(255,225,27,.20), transparent 60%) !important;
}
section.main-banner.overlay > .background-layer::after {
  background: transparent !important;
  opacity: 0 !important;
}
section.main-banner .foreground-layer,
section.main-banner .banner-widget { text-align:center !important; }
section.main-banner .banner-widget {
  display:block !important;
  justify-content:center !important;
}
section.main-banner .banner-content {
  margin:0 auto !important;
  max-width:820px;
  float:none !important;
  width:auto !important;
}
section.main-banner .banner-content > * { text-align:center; }
/* Hero title + yellow underline accent on the event name */
section.main-banner h1.section-head {
  color: var(--fk-navy) !important;
  font-weight: 800 !important;
  font-size: clamp(34px, 5.5vw, 58px) !important;
  line-height: 1.1 !important;
  letter-spacing: -1px;
}
section.main-banner h1.section-head {
  background-image: linear-gradient(var(--fk-yellow), var(--fk-yellow));
  background-repeat: no-repeat;
  background-position: 0 92%;
  background-size: 0% 10px;             /* Fix 4: wipes in on load */
  transition: background-size .7s ease .45s;
  display: inline;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  padding-bottom: 2px;
}
section.main-banner.fk-hero-go h1.section-head { background-size: 100% 10px; }
/* Pill badge injected above the title */
.fk-badge {
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 16px;
  border-radius:999px;
  background:rgba(40,116,240,.10);
  color:var(--fk-blue);
  font-weight:700;
  font-size:13px;
  letter-spacing:.3px;
  margin-bottom:18px;
}
.fk-badge::before {
  content:"";
  width:8px; height:8px; border-radius:50%;
  background:var(--fk-blue);
}
/* Hide native date/time/venue widget (shows a wrong backend range) */
section.main-banner .bs-dtl { display:none !important; }
/* Visually hide the native hero "Register Now" button but keep it in
   the DOM and programmatically clickable (the yellow CTA triggers it) */
.fk-native-hidden {
  position:absolute !important;
  width:1px !important; height:1px !important;
  padding:0 !important; margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  border:0 !important;
  opacity:0 !important;
  pointer-events:none !important;
}
/* Hero subtitle + meta row */
.fk-hero-sub {
  font-size:clamp(18px,2.4vw,22px);
  color:var(--fk-grey);
  font-weight:500;
  margin:18px auto 0;
  max-width:620px;
}
.fk-meta {
  display:flex;
  gap:8px 22px;
  justify-content:center;
  flex-wrap:wrap;
  margin-top:20px;
  color:var(--fk-navy);
  font-size:16px;
  font-weight:600;
}
.fk-meta span {
  display:inline-flex;
  align-items:center;
  gap:9px;
}
.fk-meta span::before {
  content:"";
  width:7px; height:7px; border-radius:50%;
  background:var(--fk-blue);
}
/* Hero CTA row injected under the meta line */
.fk-hero-cta {
  display:flex;
  gap:14px;
  justify-content:center;
  flex-wrap:wrap;
  margin-top:26px;
}
.fk-hero-cta a {
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:14px 26px;
  border-radius:12px;
  font-weight:700;
  font-size:16px;
  text-decoration:none;
  transition:transform .18s, box-shadow .2s, background .2s;
}
.fk-hero-cta .fk-cta-primary {
  background:var(--fk-yellow);
  color:var(--fk-navy);
}
.fk-hero-cta .fk-cta-primary:hover {
  transform:translateY(-2px);
  box-shadow:0 12px 26px rgba(255,225,27,.5);
}
.fk-hero-cta .fk-cta-ghost {
  background:var(--fk-white);
  color:var(--fk-blue);
  border:2px solid var(--fk-line);
}
.fk-hero-cta .fk-cta-ghost:hover {
  border-color:var(--fk-blue);
  transform:translateY(-2px);
}

/* ---------- 5. HERO ENTRANCE (staggered) ---------- */
section.main-banner .banner-content > * {
  opacity: 0;
  transform: translateY(18px);
}
section.main-banner.fk-hero-go .banner-content > * {
  animation: fkRise .7s cubic-bezier(.2,.7,.2,1) forwards;
}
section.main-banner.fk-hero-go .banner-content > *:nth-child(1){ animation-delay:.05s; }
section.main-banner.fk-hero-go .banner-content > *:nth-child(2){ animation-delay:.18s; }
section.main-banner.fk-hero-go .banner-content > *:nth-child(3){ animation-delay:.31s; }
section.main-banner.fk-hero-go .banner-content > *:nth-child(4){ animation-delay:.44s; }
section.main-banner.fk-hero-go .banner-content > *:nth-child(n+5){ animation-delay:.55s; }
@keyframes fkRise {
  to { opacity:1; transform:none; }
}

/* ---------- 6. INJECTED COUNTDOWN ---------- */
.bs-countdown-wgt { display:none !important; }   /* hide native */
.fk-cd-eyebrow {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin:34px 0 14px;
  font-size:12px;
  font-weight:700;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--fk-grey);
}
.fk-cd-eyebrow::before {
  content:"";
  width:8px; height:8px; border-radius:50%;
  background:var(--fk-blue);
}
.fk-countdown {
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  justify-content:center;
}
.fk-cd-seg {
  min-width:84px;
  padding:16px 14px;
  text-align:center;
  border-radius:16px;
  background:var(--fk-band);
  border:1px solid var(--fk-line);
}
.fk-cd-num {
  font-size:38px;
  font-weight:800;
  color:var(--fk-navy);
  line-height:1;
  font-variant-numeric:tabular-nums;
}
.fk-cd-seg:last-child .fk-cd-num { color:var(--fk-blue); }
.fk-cd-lbl {
  margin-top:8px;
  font-size:11px;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--fk-grey);
  font-weight:600;
}

/* ---------- 7. CHOOSE-YOUR-PATH ---------- */
.fk-path { margin:34px 0 6px; }
.fk-path-head {
  font-size:13px;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--fk-blue);
  font-weight:700;
  margin-bottom:14px;
}
.fk-path-cards {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
@media (max-width:640px){
  .fk-path-cards { grid-template-columns:1fr; }
}
.fk-path-card {
  position:relative;
  cursor:pointer;
  padding:22px 22px 20px;
  border-radius:16px;
  background:var(--fk-white);
  border:2px solid var(--fk-line);
  transition:transform .25s, box-shadow .25s, border-color .25s;
  overflow:hidden;
}
.fk-path-card::before {
  content:"";
  position:absolute; left:0; top:0; bottom:0;
  width:5px;
  background:var(--accent, var(--fk-blue));
  transform:scaleY(0);
  transform-origin:top;
  transition:transform .3s;
}
.fk-path-card:hover {
  transform:translateY(-4px);
  box-shadow:0 14px 34px rgba(23,35,55,.12);
  border-color:var(--accent, var(--fk-blue));
}
.fk-path-card.is-active {
  border-color:var(--accent, var(--fk-blue));
  box-shadow:0 14px 34px rgba(40,116,240,.18);
}
.fk-path-card.is-active::before { transform:scaleY(1); }
.fk-path-card .fk-pc-icon {
  width:46px; height:46px;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:16px;
  background:rgba(40,116,240,.12);
}
.fk-path-card .fk-pc-icon i {
  width:16px; height:16px;
  border-radius:5px;
  background:var(--accent, var(--fk-blue));
  display:block;
}
.fk-path-card[data-path="new"] .fk-pc-icon { background:rgba(255,225,27,.30); }
.fk-path-card[data-path="new"] .fk-pc-icon i { border-radius:50%; background:var(--fk-navy); }
.fk-path-card .fk-pc-tag {
  display:inline-block;
  font-size:11px;
  font-weight:700;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--accent, var(--fk-blue));
  margin-bottom:8px;
}
.fk-path-card .fk-pc-title {
  font-size:21px;
  font-weight:700;
  color:var(--fk-navy);
  margin:0 0 6px;
}
.fk-path-card .fk-pc-sub {
  font-size:15px;
  color:var(--fk-grey);
  line-height:1.5;
  margin:0;
}
.fk-path-card .fk-pc-pick {
  margin-top:14px;
  font-size:13px;
  font-weight:700;
  color:var(--accent, var(--fk-blue));
  opacity:0;
  transition:opacity .25s;
}
.fk-path-card.is-active .fk-pc-pick { opacity:1; }

/* Swappable about copy */
.fk-path-copy { display:none; margin-top:24px; }
.fk-path-copy-inner {
  border-left:4px solid var(--accent, var(--fk-blue));
  padding:20px 24px;
  background:var(--fk-band);
  border-radius:0 12px 12px 0;
}
/* Fix 2: scannable callout — heading, line, 3 bullets, one button */
.fk-co-head {
  margin:0 0 6px;
  font-size:20px;
  font-weight:700;
  color:var(--fk-navy);
}
.fk-co-line {
  margin:0 0 14px;
  font-size:15px;
  line-height:1.55;
  color:var(--fk-grey);
}
.fk-co-list {
  list-style:none;
  margin:0 0 16px;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.fk-co-list li {
  position:relative;
  padding-left:24px;
  font-size:15px;
  font-weight:500;
  color:var(--fk-navy);
}
.fk-co-list li::before {
  content:"";
  position:absolute;
  left:0; top:6px;
  width:9px; height:9px;
  border-radius:3px;            /* rounded-square dot, echoes the logo */
  background:var(--fk-blue);
}
.fk-co-btn {
  border:0;
  background:none;
  padding:6px 0;
  cursor:pointer;
  font-family:inherit;
  font-size:15px;
  font-weight:700;
  color:var(--fk-blue);
  transition:gap .2s, opacity .2s;
}
.fk-co-btn:hover { opacity:.78; text-decoration:underline; }
body[data-fk-path="new"]      .fk-path-copy[data-path="new"]      { display:block; }
body[data-fk-path="existing"] .fk-path-copy[data-path="existing"]{ display:block; }
body[data-fk-path="all"]      .fk-path-prompt,
body:not([data-fk-path])      .fk-path-prompt { display:block; }
.fk-path-prompt {
  display:none;
  margin-top:22px;
  font-size:16px;
  color:var(--fk-grey);
}
body[data-fk-path="new"]      .fk-path-prompt,
body[data-fk-path="existing"] .fk-path-prompt { display:none; }

/* ---------- 8. STATS BAND ---------- */
.fk-band-stats {
  background:var(--fk-blue);
  background-image:
    radial-gradient(36% 80% at 6% 18%, rgba(255,255,255,.10), transparent 60%),
    radial-gradient(40% 90% at 96% 6%, rgba(255,255,255,.08), transparent 60%);
  padding:56px 20px;
}
.fk-band-stats .fk-band-title {
  text-align:center;
  color:var(--fk-white);
  font-size:clamp(22px,3vw,30px);
  font-weight:800;
  margin:0 0 36px;
}
.fk-stats-wrap {
  max-width:1080px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:24px;
}
@media (max-width:760px){
  .fk-stats-wrap { grid-template-columns:repeat(2,1fr); gap:30px; }
}
.fk-stat { text-align:center; color:var(--fk-white); }
.fk-stat-num {
  font-size:clamp(34px,5vw,52px);
  font-weight:800;
  line-height:1;
  font-variant-numeric:tabular-nums;
}
.fk-stat-num .fk-suffix { color:rgba(255,255,255,.92); }
.fk-stat-lbl {
  margin-top:10px;
  font-size:14px;
  letter-spacing:.4px;
  color:rgba(255,255,255,.82);
}

/* ---------- 9. SCROLL REVEALS ---------- */
.fk-reveal {
  opacity:0;
  transform:translateY(20px);
  transition:opacity .6s ease, transform .6s cubic-bezier(.2,.7,.2,1);
  will-change:opacity, transform;
}
.fk-reveal.fk-in { opacity:1; transform:none; }

/* ---------- 10. AGENDA: track cue + path filter ---------- */
.bs-timeline .timeline-content {
  border-left:4px solid var(--track-bg-color, var(--fk-line)) !important;
  border-radius:8px;
  transition:opacity .35s, filter .35s, box-shadow .25s, transform .25s;
}
.bs-timeline .timeline-content:hover {
  box-shadow:0 8px 22px rgba(23,35,55,.10);
}
/* Path highlight: matching sessions get an additive ring only.
   No dimming/greying — every session stays full-colour & legible. */
body[data-fk-path="new"] .bs-timeline .timeline-content[data-fk-track="new"],
body[data-fk-path="existing"] .bs-timeline .timeline-content[data-fk-track="existing"] {
  box-shadow:0 0 0 2px var(--track-bg-color, var(--fk-blue)) inset;
}

/* Agenda path banner */
.fk-agenda-bar {
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
  margin:0 0 18px;
  padding:14px 18px;
  border-radius:12px;
  background:var(--fk-band);
  border:1px solid var(--fk-line);
  font-size:15px;
  color:var(--fk-navy);
}
.fk-agenda-bar b { color:var(--fk-blue); }
.fk-agenda-bar .fk-ab-dot {
  width:10px; height:10px; border-radius:50%;
  background:var(--accent, var(--fk-blue));
  display:inline-block;
}
.fk-agenda-bar .fk-ab-reset {
  margin-left:auto;
  cursor:pointer;
  font-weight:600;
  color:var(--fk-blue);
  background:none; border:none;
  font-size:14px;
}
.fk-agenda-bar .fk-ab-reset:hover { text-decoration:underline; }

/* ---------- 11. SPEAKER CARDS ---------- */
.bs-speakerList-wgt .li-item,
.community-page-speakers .li-item {
  transition:transform .28s cubic-bezier(.2,.7,.2,1), box-shadow .28s;
  border-radius:14px;
}
.bs-speakerList-wgt .li-item:hover,
.community-page-speakers .li-item:hover {
  transform:translateY(-6px);
  box-shadow:0 18px 38px rgba(23,35,55,.16);
}

/* ---------- 12. NAV (solid white, slim on scroll) ---------- */
header.bs-main-menu.fixed {
  background:var(--fk-white) !important;
  border-bottom:1px solid var(--fk-line);
  transition:box-shadow .3s, padding .3s;
}
header.bs-main-menu .overlay { opacity:0 !important; }
header.bs-main-menu a.item { color:var(--fk-navy) !important; font-weight:600; }
header.bs-main-menu a.nav-active {
  color:var(--fk-blue) !important;
  background:transparent !important;
}
header.bs-main-menu .active-bdr { background:var(--fk-blue) !important; }
body.fk-scrolled header.bs-main-menu.fixed {
  box-shadow:0 4px 20px rgba(23,35,55,.10);
  border-bottom-color:transparent;
}
/* All nav items hover to blue — Tickets is no longer singled out */
header.bs-main-menu a.item { transition:color .18s; }
header.bs-main-menu a.item:hover { color:var(--fk-blue) !important; }

/* Injected wordmark in the empty .left-menu */
.fk-brand {
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-weight:700;
  font-size:19px;
  color:var(--fk-navy);
  letter-spacing:-.3px;
  text-decoration:none;
  white-space:nowrap;
}
.fk-brand .fk-mark {
  width:30px; height:30px;
  border-radius:8px;
  background:var(--fk-yellow);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--fk-blue);
  font-size:17px;
  font-weight:800;
  font-style:normal;
}
.fk-brand b { font-weight:800; color:var(--fk-blue); }

/* ---------- 13. BUTTONS + MICRO-INTERACTIONS ---------- */
.bs-button.primary:not(.link) {
  background-color:var(--fk-blue) !important;
  border-color:var(--fk-blue) !important;
  color:var(--fk-white) !important;
  transition:transform .18s, box-shadow .2s, background-color .2s;
}
.bs-button.primary:not(.link):hover {
  background-color:var(--fk-blue-d) !important;
  transform:translateY(-2px);
  box-shadow:0 10px 22px rgba(40,116,240,.32);
}
.bs-button.primary:not(.link):active { transform:translateY(0); }
.bs-button.st-fill {
  transition:transform .18s, box-shadow .2s;
}
.bs-button.st-fill:hover { transform:translateY(-2px); }
.bs-button.link { transition:color .2s; }

/* Yellow accent CTA helper (one CTA only — sparingly) */
.fk-cta-yellow {
  background-color:var(--fk-yellow) !important;
  border-color:var(--fk-yellow) !important;
  color:var(--fk-navy) !important;
  font-weight:700 !important;
}

/* Smooth scroll + visible focus */
html { scroll-behavior:smooth; }
a:focus-visible,
button:focus-visible,
.bs-button:focus-visible,
.fk-path-card:focus-visible {
  outline:3px solid var(--fk-blue);
  outline-offset:2px;
  border-radius:6px;
}

/* ---------- 14. FOOTER ---------- */
.community-section-footer > .background-layer {
  background:var(--fk-navy) !important;
}
.community-section-footer,
.community-section-footer a,
.bs-footer, .bs-footer a {
  color:#cdd5e0 !important;
}

/* ---------- 15. HARD-CODED WHITE BITS + DAY TABS (agenda) ---------- */
.day-switcher-menu, .time-zone {
  background:var(--fk-white) !important;
  color:var(--fk-navy) !important;
}
/* Day/track tab active state (theme paints it brown via ::before/::after) */
.bs-tab-menu .nav-item.active {
  background:var(--fk-blue) !important;
  color:var(--fk-white) !important;
  border-color:var(--fk-blue) !important;
}
.bs-tab-menu .nav-item.active::before,
.bs-tab-menu .nav-item.active::after {
  background:var(--fk-blue) !important;
  border-color:var(--fk-blue) !important;
}
.bs-tab-menu .nav-item.active * { color:var(--fk-white) !important; }

/* ---------- 15b. TICKET CLASS CARDS ---------- */
.bs-ticketList-wgt .li-item {
  border-radius:12px !important;
  overflow:hidden;
  background:var(--fk-white) !important;
  box-shadow:0 10px 30px rgba(23,35,55,.10) !important;
  border:1px solid var(--fk-line) !important;
}
.bs-ticketList-wgt .li-content { background:var(--fk-white) !important; }
/* Header → solid brand blue, white text */
.bs-ticketList-wgt .ticket-card-header {
  background:var(--fk-blue) !important;
  color:var(--fk-white) !important;
  padding:18px 20px !important;
}
.bs-ticketList-wgt .ticket-card-header,
.bs-ticketList-wgt .ticket-card-header * { color:var(--fk-white) !important; }
/* Title: single clean line (backstop if backend name is long) */
.bs-ticketList-wgt .ticket-name,
.bs-ticketList-wgt .ticket-name .lt-line-clamp {
  font-size:20px !important;
  font-weight:700 !important;
  display:-webkit-box !important;
  -webkit-line-clamp:1 !important;
  -webkit-box-orient:vertical !important;
  overflow:hidden !important;
}
.bs-ticketList-wgt .tkt-date { opacity:.9; font-size:13px; }
/* Body: white, navy text */
.bs-ticketList-wgt .ticket-card-nav,
.bs-ticketList-wgt .ticket-card-content { color:var(--fk-navy) !important; }
.bs-ticketList-wgt .ticket-price {
  color:var(--fk-navy) !important;
  font-weight:800 !important;
}
.bs-ticketList-wgt .ticket-description,
.bs-ticketList-wgt .ticket-description * { color:var(--fk-grey) !important; }
/* Register button stays brand blue (var override already covers it) */
.bs-ticketList-wgt .bs-button.primary {
  background-color:var(--fk-blue) !important;
  border-color:var(--fk-blue) !important;
  color:var(--fk-white) !important;
}

/* ---------- 17. CUSTOM CURSOR ---------- */
.fk-cursor-ring, .fk-cursor-dot {
  position:fixed;
  top:0; left:0;
  pointer-events:none;          /* never blocks clicks */
  z-index:2147483600;
  border-radius:50%;
  will-change:transform;
  /* centring is done in JS: translate(x,y) translate(-50%,-50%) */
}
.fk-cursor-dot {
  width:7px; height:7px;
  background:var(--fk-navy);
}
.fk-cursor-ring {
  width:32px; height:32px;
  border:2px solid var(--fk-blue);
  background:transparent;
  transition:width .18s ease, height .18s ease,
             background-color .18s ease, border-color .18s ease;
}
.fk-cursor-ring.fk-cur-hover {
  width:48px; height:48px;
  background:rgba(40,116,240,.15);
}
.fk-cursor-hidden { opacity:0 !important; }
/* hide native cursor only when custom cursor is active... */
html.fk-cursor-on, html.fk-cursor-on * { cursor:none !important; }
/* ...but always keep the real text caret in editable fields */
html.fk-cursor-on input,
html.fk-cursor-on textarea,
html.fk-cursor-on select,
html.fk-cursor-on [contenteditable="true"] { cursor:auto !important; }
/* never on touch devices */
@media (pointer: coarse) {
  .fk-cursor-ring, .fk-cursor-dot { display:none !important; }
}

/* ---------- 18. AMBIENT BACKGROUND SHAPES (fix 3) ---------- */
/* Only the background-layers we inject into get clipped (scoped) */
.bs-section > .background-layer.fk-shape-host { overflow:hidden; }
.fk-shapes {
  position:absolute; inset:0;
  pointer-events:none;            /* purely decorative, never blocks */
  z-index:0;                      /* above the layer bg, below foreground */
  will-change:transform;
}
.fk-shape {
  position:absolute;
  display:block;
  will-change:transform;
}
.fk-sq { border-radius:18px; }    /* echoes the logo's rounded square */
.fk-ci { border-radius:50%; }
.fk-blue   { background:var(--fk-blue); }
.fk-yellow { background:var(--fk-yellow); }
.fk-d1 { animation:fkFloat1 ease-in-out infinite; }
.fk-d2 { animation:fkFloat2 ease-in-out infinite; }
.fk-d3 { animation:fkFloat3 ease-in-out infinite; }
@keyframes fkFloat1 {
  0%,100% { transform:translate(0,0) rotate(0deg); }
  50%     { transform:translate(16px,-22px) rotate(8deg); }
}
@keyframes fkFloat2 {
  0%,100% { transform:translate(0,0); }
  50%     { transform:translate(-18px,16px); }
}
@keyframes fkFloat3 {
  0%,100% { transform:translate(0,0) rotate(0deg); }
  50%     { transform:translate(12px,18px) rotate(-6deg); }
}

/* ---------- 19. CARD HOVER POLISH (fix 6) ---------- */
.bs-ticketList-wgt .li-item {
  transition:transform .28s cubic-bezier(.2,.7,.2,1), box-shadow .28s;
}
.bs-ticketList-wgt .li-item:hover {
  transform:translateY(-6px);
  box-shadow:0 18px 40px rgba(23,35,55,.16) !important;
}
.bs-frame.featured-session {
  transition:transform .28s cubic-bezier(.2,.7,.2,1), box-shadow .28s;
  border-radius:12px;
}
.bs-frame.featured-session:hover {
  transform:translateY(-6px);
  box-shadow:0 16px 36px rgba(23,35,55,.14);
}
.bs-timeline .timeline-content:hover { transform:translateY(-2px); }

/* ---------- 16. REDUCED MOTION ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .fk-reveal { opacity:1 !important; transform:none !important; transition:none !important; }
  section.main-banner .banner-content > * { opacity:1 !important; transform:none !important; }
  section.main-banner.fk-hero-go .banner-content > * { animation:none !important; }
  .fk-path-card, .bs-speakerList-wgt .li-item,
  .community-page-speakers .li-item, .bs-button { transition:none !important; }
  /* custom cursor disabled; restore native cursor */
  .fk-cursor-ring, .fk-cursor-dot { display:none !important; }
  html.fk-cursor-on, html.fk-cursor-on * { cursor:auto !important; }
  /* ambient shapes: keep visible but frozen, no parallax */
  .fk-shape { animation:none !important; }
  .fk-shapes { transform:none !important; }
  /* hero underline shown fully, no wipe */
  section.main-banner h1.section-head {
    background-size:100% 10px !important;
    transition:none !important;
  }
}
