/* ==============================================================
 * HC JOYN MAINPAGE - Hero Section
 *
 * Mobile  : carousel of slides (gradient backgrounds + dots)
 * Desktop : 7:5 split with eyebrow / headline / lead / CTAs / stats
 *           + featured live preview card on right
 * ============================================================== */

/* ==============================================================
 * MOBILE HERO (carousel)
 * ============================================================== */
.hcjm-hero{
  position:relative;
  border-radius:12px;
  overflow:hidden;
  box-shadow:var(--hcjm-shadow-primary);
}
.hcjm-hero-track{
  display:flex;
  width:100%;
  height:100%;
  transition:transform var(--hcjm-dur-slow) var(--hcjm-ease);
  will-change:transform;
}
.hcjm-hero-slide{
  flex:0 0 100%;
  height:100%;
  padding:26px 20px 28px;
  color:#fff;
  position:relative;
  background:
    radial-gradient(circle at 85% 30%, rgba(255,255,255,.55), transparent 22%),
    linear-gradient(120deg, var(--hcjm-primary-dark) 0%, var(--hcjm-primary) 45%, #8A87FF 75%, var(--hcjm-primary-dark) 100%);
}

/* ---- Gradient presets ---- */
.hcjm-hero-slide[data-gradient="1"]{
  background:
    radial-gradient(circle at 85% 30%, rgba(255,255,255,.55), transparent 22%),
    linear-gradient(120deg, var(--hcjm-primary-dark) 0%, var(--hcjm-primary) 45%, #8A87FF 75%, var(--hcjm-primary-dark) 100%);
}
.hcjm-hero-slide[data-gradient="2"]{
  background:
    radial-gradient(circle at 20% 70%, rgba(255,255,255,.45), transparent 28%),
    linear-gradient(135deg, #1E1A8A 0%, #4541FF 50%, #B8B6FF 100%);
}
.hcjm-hero-slide[data-gradient="3"]{
  background:
    radial-gradient(circle at 70% 20%, rgba(255,255,255,.5), transparent 25%),
    linear-gradient(160deg, var(--hcjm-primary-dark) 0%, var(--hcjm-primary-light) 60%, var(--hcjm-primary-dark) 100%);
}
.hcjm-hero-slide[data-gradient="4"]{
  background:
    radial-gradient(circle at 30% 30%, rgba(255,178,255,.4), transparent 30%),
    radial-gradient(circle at 70% 70%, rgba(120,200,255,.4), transparent 30%),
    linear-gradient(140deg, #2E29D4 0%, #6E6BFF 50%, #B89BFF 100%);
}
.hcjm-hero-slide[data-gradient="5"]{
  background:
    linear-gradient(135deg, #0F1024 0%, #2E29D4 80%, #4541FF 100%);
}

/* ---- JOYN Form default hero (.jf-block-hero) ---- */
.hcjm-hero.hcjm-hero--joyn-form{
  border-radius:clamp(16px, 3vw, 20px);
  box-shadow:0 24px 48px rgba(69,65,255,.18), 0 12px 24px rgba(10,15,31,.08);
  border:none;
}
.hcjm-hero-slide.is-joyn-form-theme,
.hcjm-hero-slide[data-gradient="joyn-form"]{
  color:#fff;
  background:linear-gradient(135deg, #1a1ee0 0%, #4541FF 35%, #6366f1 75%, #8B5CF6 100%);
  overflow:hidden;
}
.hcjm-hero-deco{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  overflow:hidden;
}
.hcjm-hero-grid-pattern{
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size:32px 32px;
  mask-image:radial-gradient(ellipse at center, #000 30%, transparent 80%);
  -webkit-mask-image:radial-gradient(ellipse at center, #000 30%, transparent 80%);
}
.hcjm-hero-orb{
  position:absolute;
  border-radius:50%;
  filter:blur(48px);
  opacity:.55;
  animation:hcjm-jf-float 12s ease-in-out infinite;
}
.hcjm-hero-orb-1{
  width:min(72vw, 280px);
  height:min(72vw, 280px);
  top:-15%;
  right:-10%;
  background:radial-gradient(circle, #C7CCFF, transparent 70%);
}
.hcjm-hero-orb-2{
  width:min(58vw, 220px);
  height:min(58vw, 220px);
  bottom:-20%;
  left:40%;
  background:radial-gradient(circle, #A78BFA, transparent 70%);
  animation-delay:-4s;
}
.hcjm-hero-orb-3{
  width:min(64vw, 240px);
  height:min(64vw, 240px);
  top:30%;
  left:-15%;
  background:radial-gradient(circle, #818CF8, transparent 70%);
  animation-delay:-8s;
}
@keyframes hcjm-jf-float{
  0%, 100% { transform:translate(0,0) scale(1); }
  33%      { transform:translate(14px,-10px) scale(1.04); }
  66%      { transform:translate(-10px,14px) scale(.96); }
}
@media (prefers-reduced-motion: reduce){
  .hcjm-hero-orb{ animation:none; }
}
.hcjm-hero-slide.is-joyn-form-theme .hcjm-hero-slide-inner{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  min-height:300px;
  padding:32px 22px 40px;
  box-sizing:border-box;
}
.hcjm-hero-slide.is-joyn-form-theme .hcjm-hero-badge{
  margin-bottom:16px;
  padding:6px 14px;
  font-size:11px;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:#fff;
  background:rgba(255,255,255,.13);
  border:1px solid rgba(255,255,255,.18);
  box-shadow:0 4px 14px rgba(0,0,0,.15);
}
.hcjm-hero-badge-dot.is-jf-dot{
  width:6px;
  height:6px;
  background:#ECFCCB;
  box-shadow:0 0 10px #BEF264;
  animation:hcjm-jf-pulse 2s ease-in-out infinite;
}
@keyframes hcjm-jf-pulse{
  0%, 100% { opacity:1; transform:scale(1); }
  50%      { opacity:.5; transform:scale(1.25); }
}
.hcjm-hero-slide.is-joyn-form-theme .hcjm-hero-title{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:6px;
  margin:0 0 14px;
  max-width:100%;
  font-size:clamp(26px, 7vw, 36px);
  font-weight:900;
  line-height:1.1;
  letter-spacing:-.03em;
  color:#fff;
  text-shadow:0 4px 20px rgba(0,0,0,.15);
}
.hcjm-hero-slide.is-joyn-form-theme .hcjm-hero-title-line{
  color:#fff;
}
.hcjm-hero-slide.is-joyn-form-theme .hcjm-hero-title-gold,
.hcjm-hero-slide.is-joyn-form-theme .hcjm-hero-title em{
  font-style:normal;
  background:linear-gradient(135deg, #FCD34D 0%, #FBBF24 50%, #F59E0B 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:#FCD34D;
}
.hcjm-hero-slide.is-joyn-form-theme .hcjm-hero-sub{
  margin:0 0 20px;
  max-width:100%;
  font-size:clamp(14px, 3.2vw, 16px);
  line-height:1.65;
  color:rgba(255,255,255,.92);
  opacity:1;
}
.hcjm-hero-slide.is-joyn-form-theme .hcjm-hero-btn--primary{
  background:#fff;
  color:var(--hcjm-primary, #4541FF);
  box-shadow:0 10px 28px rgba(69,65,255,.35);
}
.hcjm-hero-slide.is-joyn-form-theme .hcjm-hero-btn--ghost{
  background:rgba(255,255,255,.13);
  color:#fff;
  border:1px solid rgba(255,255,255,.2);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
  box-shadow:0 4px 14px rgba(0,0,0,.12);
}
.hcjm-hero-slide.is-joyn-form-theme .hcjm-hero-btn--ghost i{
  color:#fff;
}
.hcjm-hero--joyn-form .hcjm-hero-dot{
  background:rgba(255,255,255,.4);
}
.hcjm-hero--joyn-form .hcjm-hero-dot.is-active{
  background:#fff;
}

/* ---- Light theme (desktop hero match) ---- */
.hcjm-hero.hcjm-hero--light{
  box-shadow:0 4px 20px rgba(69,65,255,.08);
  border:1px solid rgba(69,65,255,.14);
  background:var(--hcjm-primary-soft, #ECEBFF);
}
.hcjm-hero.hcjm-hero--auto-height{
  height:auto !important;
  min-height:300px;
}
.hcjm-hero-slide.is-light-theme,
.hcjm-hero-slide[data-gradient="light"]{
  color:var(--hcjm-text, #0F1024);
  background-color:var(--hcjm-primary-soft, #ECEBFF);
  background-image:
    radial-gradient(ellipse 88% 72% at 100% 0%, rgba(110,107,255,.14), transparent 54%),
    radial-gradient(ellipse 65% 55% at 0% 100%, rgba(69,65,255,.08), transparent 48%);
  background-repeat:no-repeat;
}
.hcjm-hero-slide.is-light-theme .hcjm-hero-slide-inner{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  min-height:270px;
  padding:28px 22px 36px;
  box-sizing:border-box;
}
.hcjm-hero-slide-overlay{
  position:absolute;
  inset:0;
  z-index:0;
  background:var(--hcjm-primary-soft, #ECEBFF);
  pointer-events:none;
}
.hcjm-hero-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  max-width:100%;
  margin-bottom:14px;
  padding:7px 14px;
  border-radius:999px;
  font-size:12px;
  font-weight:700;
  line-height:1.35;
  letter-spacing:-0.1px;
}
.hcjm-hero-slide.is-light-theme .hcjm-hero-badge{
  background:rgba(69,65,255,.16);
  border:1px solid rgba(69,65,255,.22);
  color:var(--hcjm-primary-dark, #2E29D4);
}
.hcjm-hero-badge-dot{
  flex-shrink:0;
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--hcjm-live, #FF3B5C);
  animation:hcjm-pulse 1.6s ease-in-out infinite;
}
.hcjm-hero-slide:not(.is-light-theme):not(.is-joyn-form-theme) .hcjm-hero-badge-dot{
  display:none;
}
.hcjm-hero-slide.is-light-theme .hcjm-hero-title{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:4px;
  margin:0 0 10px;
  max-width:100%;
  font-size:28px;
  font-weight:900;
  line-height:1.15;
  letter-spacing:-1px;
  color:var(--hcjm-text, #0F1024);
}
.hcjm-hero-title-line{
  display:block;
  color:var(--hcjm-text, #0F1024);
}
.hcjm-hero-title-accent,
.hcjm-hero-slide.is-light-theme .hcjm-hero-title em{
  display:block;
  font-style:normal;
  color:var(--hcjm-primary, #4541FF);
}
.hcjm-hero-slide.is-light-theme .hcjm-hero-sub{
  margin:0 0 18px;
  max-width:100%;
  font-size:14px;
  font-weight:500;
  line-height:1.55;
  color:var(--hcjm-text-sub, #4A4D63);
  opacity:1;
}
.hcjm-hero-cta-row{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  margin-top:4px;
  width:100%;
}
.hcjm-hero-btn--primary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  margin-top:0;
  padding:12px 20px;
  border-radius:12px;
  background:var(--hcjm-primary, #4541FF);
  color:#fff;
  font-size:14px;
  font-weight:800;
  box-shadow:var(--hcjm-shadow-primary, 0 14px 30px rgba(69,65,255,.28));
}
.hcjm-hero-btn--primary i{
  font-size:16px;
}
.hcjm-hero-btn--ghost{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  margin-top:0;
  padding:12px 18px;
  border-radius:12px;
  background:#fff;
  color:var(--hcjm-text, #0F1024);
  border:1px solid var(--hcjm-border, #E5E5F0);
  font-size:14px;
  font-weight:800;
  box-shadow:0 1px 2px rgba(15,16,36,.04);
}
.hcjm-hero-btn--ghost i{
  font-size:16px;
  color:var(--hcjm-text-sub, #4A4D63);
}
.hcjm-hero--light .hcjm-hero-dots{
  bottom:14px;
}
.hcjm-hero--light .hcjm-hero-dot{
  background:rgba(69,65,255,.25);
}
.hcjm-hero--light .hcjm-hero-dot.is-active{
  background:var(--hcjm-primary, #4541FF);
}

/* Optional cross decoration */
.hcjm-hero.has-cross-deco .hcjm-hero-slide::before{
  content:"✝";
  position:absolute;
  right:24px; top:18px;
  font-size:92px;
  font-weight:200;
  color:rgba(255,255,255,.32);
  text-shadow:14px 14px 24px rgba(20,15,120,.4);
  pointer-events:none;
  line-height:1;
}

/* Badge on gradient (dark) slides */
.hcjm-hero-slide:not(.is-light-theme) .hcjm-hero-badge{
  background:rgba(255,255,255,.18);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  color:#fff;
}

/* ---- Live badge in slide (legacy) ---- */
.hcjm-hero-live{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.18);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  font-size:12px;
  font-weight:800;
  letter-spacing:.3px;
}
.hcjm-hero-live::before{
  content:"";
  width:6px; height:6px;
  border-radius:50%;
  background:#fff;
  animation:hcjm-pulse 1.6s ease-in-out infinite;
}

/* ---- Slide content ---- */
.hcjm-hero-title{
  margin:16px 0 6px;
  font-size:23px;
  font-weight:800;
  line-height:1.25;
  letter-spacing:-0.8px;
  max-width:75%;
}
.hcjm-hero-sub{
  margin:0;
  font-size:13px;
  opacity:.92;
  font-weight:500;
}
.hcjm-hero-btn{
  display:inline-flex;
  align-items:center;
  gap:4px;
  margin-top:14px;
  padding:10px 18px;
  border-radius:999px;
  background:#fff;
  color:var(--hcjm-primary);
  font-size:13px;
  font-weight:800;
  text-decoration:none;
  box-shadow:0 8px 18px rgba(0,0,0,.16);
  transition:transform var(--hcjm-dur-fast) ease;
  font-family:inherit;
}
.hcjm-hero-btn:active{transform:scale(.96);}
button.hcjm-hero-btn{
  border:none;
  cursor:pointer;
  appearance:none;
  -webkit-appearance:none;
}
button.hcjm-btn-primary.hcjm-hero-video-trigger,
button.hcjm-hero-play.hcjm-hero-video-trigger{
  border:none;
  cursor:pointer;
  font-family:inherit;
}

/* ---- Dots ---- */
.hcjm-hero-dots{
  position:absolute;
  left:50%; bottom:12px;
  transform:translateX(-50%);
  display:flex;
  gap:6px;
  z-index:2;
  background:transparent;
  padding:0;
}
.hcjm-hero-dot{
  width:6px; height:6px;
  padding:0;
  border:0;
  background:rgba(255,255,255,.45);
  border-radius:50%;
  cursor:pointer;
  transition:all var(--hcjm-dur) ease;
}
.hcjm-hero-dot.is-active{
  width:18px;
  border-radius:99px;
  background:#fff;
}
.hcjm-hero-dot:focus-visible{
  outline:2px solid #fff;
  outline-offset:2px;
}

/* ==============================================================
 * DESKTOP HERO (split layout)
 * ============================================================== */
.hcjm-hero-desktop{display:none;}

@media (min-width:1024px){
  .hcjm-hero-desktop{
    display:block;
    background:
      radial-gradient(circle at 20% 30%, rgba(69,65,255,.06), transparent 40%);
    position:relative;
  }

  /* ---- Padding variants ---- */
  .hcjm-hero-desktop.is-padding-small  { padding:24px 0 32px; }
  .hcjm-hero-desktop.is-padding-medium { padding:40px 0 56px; }
  .hcjm-hero-desktop.is-padding-large  { padding:64px 0 80px; }

  .hcjm-hero-desktop .hcjm-container{
    display:grid;
    gap:40px;
    align-items:center;
  }

  /* ---- Layout ratio variants ---- */
  .hcjm-hero-desktop.is-layout-7-5 .hcjm-container { grid-template-columns:7fr 5fr; }
  .hcjm-hero-desktop.is-layout-6-6 .hcjm-container { grid-template-columns:1fr 1fr; }
  .hcjm-hero-desktop.is-layout-8-4 .hcjm-container { grid-template-columns:2fr 1fr; }
  .hcjm-hero-desktop.is-no-featured .hcjm-container{ grid-template-columns:1fr; max-width:880px; text-align:center; }

  /* ==========================
   * LEFT: text content
   * ========================== */
  .hcjm-hero-left{padding:20px 0; max-width:640px;}

  .hcjm-hero-desktop.is-no-featured .hcjm-hero-left{
    margin:0 auto;
    text-align:center;
    max-width:780px;
  }
  .hcjm-hero-desktop.is-no-featured .hcjm-hero-cta,
  .hcjm-hero-desktop.is-no-featured .hcjm-hero-stats{
    justify-content:center;
  }

  /* Eyebrow */
  .hcjm-hero-eyebrow{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:6px 14px;
    background:rgba(69,65,255,.08);
    border:1px solid rgba(69,65,255,.15);
    border-radius:999px;
    color:var(--hcjm-primary);
    font-size:12px;
    font-weight:800;
    letter-spacing:.5px;
    margin-bottom:24px;
  }
  .hcjm-hero-eyebrow .dot{
    width:6px; height:6px;
    border-radius:50%;
    background:var(--hcjm-live);
    animation:hcjm-pulse 1.6s ease-in-out infinite;
  }

  /* Headline */
  .hcjm-hero-headline{
    margin:0 0 18px;
    font-size:56px;
    font-weight:900;
    line-height:1.1;
    letter-spacing:-2.5px;
    color:var(--hcjm-text);
  }
  .hcjm-hero-headline em{
    font-style:normal;
    background:linear-gradient(120deg, var(--hcjm-primary), var(--hcjm-primary-light));
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
  }

  /* Lead text */
  .hcjm-hero-lead{
    margin:0 0 32px;
    font-size:17px;
    color:var(--hcjm-text-sub);
    font-weight:500;
    line-height:1.6;
    max-width:480px;
  }
  .hcjm-hero-desktop.is-no-featured .hcjm-hero-lead{margin-left:auto; margin-right:auto;}

  /* CTAs */
  .hcjm-hero-cta{
    display:flex;
    gap:12px;
    align-items:center;
    flex-wrap:wrap;
  }
  .hcjm-btn-primary{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:14px 22px;
    background:var(--hcjm-primary);
    color:#fff;
    border:0;
    border-radius:12px;
    font-size:15px;
    font-weight:800;
    text-decoration:none;
    box-shadow:var(--hcjm-shadow-primary);
    cursor:pointer;
    transition:transform var(--hcjm-dur-fast) ease, box-shadow var(--hcjm-dur-fast) ease;
    font-family:inherit;
  }
  .hcjm-btn-primary:hover{
    transform:translateY(-1px);
    box-shadow:0 18px 36px rgba(69,65,255,.36);
  }
  .hcjm-btn-ghost{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:14px 22px;
    background:transparent;
    color:var(--hcjm-text);
    border:1px solid var(--hcjm-border);
    border-radius:12px;
    font-size:15px;
    font-weight:800;
    text-decoration:none;
    cursor:pointer;
    transition:all var(--hcjm-dur-fast) ease;
    font-family:inherit;
  }
  .hcjm-btn-ghost:hover{
    border-color:var(--hcjm-primary);
    color:var(--hcjm-primary);
  }

  /* Stats bar */
  .hcjm-hero-stats{
    display:flex;
    gap:36px;
    margin-top:40px;
    padding-top:28px;
    border-top:1px solid var(--hcjm-border);
    flex-wrap:wrap;
  }
  .hcjm-hero-stat strong{
    display:block;
    font-size:28px;
    font-weight:900;
    color:var(--hcjm-text);
    letter-spacing:-1px;
  }
  .hcjm-hero-stat span{
    display:block;
    font-size:12px;
    color:var(--hcjm-muted);
    font-weight:700;
    margin-top:2px;
  }

  /* ==========================
   * RIGHT: featured card
   * ========================== */
  .hcjm-hero-right{
    position:relative;
    max-height:520px;
    border-radius:24px;
    overflow:hidden;
    background-size:cover;
    background-position:center;
    box-shadow:var(--hcjm-shadow-lg);
  }
  .hcjm-hero-right::before{
    content:"";
    position:absolute;
    inset:0;
    border:1px solid rgba(255,255,255,.15);
    border-radius:24px;
    pointer-events:none;
    z-index:2;
  }

  .hcjm-hero-feature-badge{
    position:absolute;
    top:20px; left:20px;
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:7px 14px;
    background:#fff;
    color:var(--hcjm-text);
    border-radius:999px;
    font-size:12px;
    font-weight:800;
    letter-spacing:.5px;
    z-index:2;
  }
  .hcjm-hero-feature-badge.is-live{
    background:var(--hcjm-live);
    color:#fff;
  }
  .hcjm-hero-feature-badge.is-live::before{
    content:"";
    width:6px; height:6px;
    border-radius:50%;
    background:#fff;
    animation:hcjm-pulse 1.6s ease-in-out infinite;
  }

  .hcjm-hero-play{
    position:absolute;
    top:50%; left:50%;
    transform:translate(-50%,-50%);
    width:80px; height:80px;
    background:rgba(255,255,255,.94);
    border:0;
    border-radius:50%;
    color:var(--hcjm-primary);
    font-size:32px;
    cursor:pointer;
    display:grid;
    place-items:center;
    box-shadow:0 20px 40px rgba(0,0,0,.3);
    z-index:2;
    transition:transform var(--hcjm-dur) ease;
    text-decoration:none;
  }
  .hcjm-hero-play:hover{transform:translate(-50%,-50%) scale(1.08);}

  .hcjm-hero-feature-info{
    position:absolute;
    left:20px; right:20px; bottom:20px;
    color:#fff;
    z-index:2;
  }
  .hcjm-hero-feature-info h3{
    margin:0 0 4px;
    font-size:22px;
    font-weight:800;
    letter-spacing:-0.6px;
  }
  .hcjm-hero-feature-info p{
    margin:0;
    font-size:13px;
    opacity:.88;
    display:flex;
    align-items:center;
    gap:14px;
    flex-wrap:wrap;
  }
  .hcjm-hero-feature-info p span{
    display:inline-flex;
    align-items:center;
    gap:5px;
  }

  /* Narrower desktop adjustments */
  @media (max-width:1199px){
    .hcjm-hero-headline{font-size:48px; letter-spacing:-2px;}
    .hcjm-hero-lead{font-size:16px;}
    .hcjm-hero-stat strong{font-size:24px;}
    .hcjm-hero-stats{gap:24px;}
  }
}

