/* Hero */
    .hero {
      position: relative;
      width: 100%;
      max-width: 100%;
      min-height: 100vh;
      min-height: 100dvh;
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
      align-items: stretch;
      padding: calc(var(--header-h) + 24px) 48px 96px;
      overflow: hidden;
    }

    .hero-slider {
      position: absolute;
      inset: 0;
      z-index: 0;
    }

    .hero-slide {
      position: absolute;
      inset: 0;
      z-index: 0;
      opacity: 0;
      transition: opacity 0.8s ease;
    }

    .hero-slide.is-active { opacity: 1; }

    .hero-slide img,
    .hero-slide video {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
    }

    .hero-overlay {
      position: absolute;
      inset: 0;
      z-index: 1;
      pointer-events: none;
      /* Dark bottom-left (text/CTA), light top-right */
      background: linear-gradient(
        to top right,
        rgba(0, 0, 0, 0.78) 0%,
        rgba(0, 0, 0, 0.72) 32%,
        rgba(0, 0, 0, 0.24) 46%,
        rgba(0, 0, 0, 0.06) 54%,
        rgba(0, 0, 0, 0) 64%
      );
    }

    .hero-dots {
      position: absolute;
      z-index: 3;
      left: 48px;
      bottom: 28px;
      display: flex;
      gap: 10px;
    }

    .hero-dots button {
      width: 10px;
      height: 10px;
      border-radius: 50%;
      background: rgba(188, 150, 230, 0.45);
    }

    .hero-dots button.is-active {
      background: var(--gold);
      width: 28px;
      border-radius: 999px;
    }

    .hero-inner {
      position: relative;
      z-index: 2;
      width: 100%;
      max-width: 100%;
      min-width: 0;
      padding: 0;
      margin: 0;
      text-align: left;
    }

    .hero h1,
    .hero-title {
      color: #fff;
      font-size: clamp(40px, 6.5vw, 80px);
      font-weight: 600;
      letter-spacing: -0.03em;
      line-height: 0.95;
      text-align: left;
      margin-bottom: 20px;
      overflow-wrap: anywhere;
    }

    .hero-title {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
    }

    .hero-title__line {
      display: block;
    }

    .hero-subheadline {
      max-width: min(640px, 100%);
      margin-left: 0;
      margin-right: auto;
      color: rgba(255, 255, 255, 0.92);
      font-size: clamp(16px, 2.2vw, 20px);
      font-weight: 400;
      line-height: 1.5;
      text-align: left;
      margin-bottom: 28px;
      overflow-wrap: anywhere;
    }

    .hero-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      justify-content: flex-start;
      margin-bottom: 0;
    }







