import Badge from "./Badge.wrn"

component Hero {
  props {
    eyebrow: string = ""
    eyebrowIcon: string = ""
    icon: string = ""
    title: string = "Build something remarkable"
    highlight: string = ""
    description: string = ""

    align: string = "left"
    size: string = "default"
    color: string = "primary"
    variant: string = "default"
    layout: string = "split"
    visualPosition: string = "right"
    visualStyle: string = "plain"
    showDecorations: boolean = true
    fullBleed: boolean = true

    visualEyebrow: string = ""
    visualTitle: string = ""
    visualDescription: string = ""
    visualIcon: string = ""
    visualImage: string = ""
    visualAlt: string = ""
    visualItems: unknown[] = []

    primaryLabel: string = ""
    primaryHref: string = ""
    primaryIcon: string = ""
    primaryTarget: string = ""

    secondaryLabel: string = ""
    secondaryHref: string = ""
    secondaryIcon: string = ""
    secondaryTarget: string = ""

    tertiaryLabel: string = ""
    tertiaryHref: string = ""
    tertiaryIcon: string = ""
    tertiaryTarget: string = ""

    badges: unknown[] = []
    trustItems: unknown[] = []
    maxWidth: string = "xl"
    class: string = ""
  }

  view {
    <section
      {...attrs}
      data-ui-component="Hero"
      data-size='{size}'
      data-color='{color}'
      data-variant='{variant}'
      data-layout='{layout}'
      data-align='{align}'
      data-visual-position='{visualPosition}'
      data-visual-style='{visualStyle}'
      data-max-width='{maxWidth}'
      data-full-bleed='{fullBleed}'
      aria-label='{title}'
      class='wire-hero {class}'
    >
        {#if showDecorations}
          <div class="wire-hero__decorations" aria-hidden="true">
            <span class="wire-hero__glow wire-hero__glow--one"></span>
            <span class="wire-hero__glow wire-hero__glow--two"></span>
            <span class="wire-hero__grid-pattern"></span>
          </div>
        {/if}

        <div class="wire-hero__inner">
          <div class="wire-hero__layout">
            <div class="wire-hero__content">
              <slot name="eyebrow"></slot>

              {#if eyebrow}
                <div class="wire-hero__eyebrow">
                  {#if eyebrowIcon}
                    <span class='wire-hero__eyebrow-icon {eyebrowIcon}' aria-hidden="true"></span>
                  {:else}
                    <span class="wire-hero__eyebrow-dot" aria-hidden="true"></span>
                  {/if}
                  <span>{eyebrow}</span>
                </div>
              {/if}

              <div class="wire-hero__heading-row">
                {#if icon}
                  <div class="wire-hero__icon" aria-hidden="true">
                    <span class='{icon}'></span>
                  </div>
                {/if}

                <div class="wire-hero__heading-copy">
                  <h1 class="wire-hero__title">
                    <span>{title}</span>
                    {#if highlight}
                      <span class="wire-hero__highlight">{highlight}</span>
                    {/if}
                  </h1>

                  {#if description}
                    <p class="wire-hero__description">{description}</p>
                  {/if}
                </div>
              </div>

              {#if badges.length > 0}
                <div class="wire-hero__badges">
                  {#each badges as badge}
                    <Badge
                      label='{badge.label || badge.title || badge}'
                      icon='{badge.icon || ""}'
                      color='{badge.color || color}'
                      variant='{badge.variant || "soft"}'
                      size='{badge.size || "sm"}'
                    />
                  {/each}
                </div>
              {/if}

              <div class="wire-hero__actions">
                {#if primaryLabel}
                  <a
                    href='{primaryHref || "#"}'
                    target='{primaryTarget}'
                    rel='{primaryTarget === "_blank" ? "noopener noreferrer" : ""}'
                    class="wire-hero__action wire-hero__action--primary"
                  >
                    <span>{primaryLabel}</span>
                    {#if primaryIcon}
                      <span class='wire-hero__action-icon {primaryIcon}' aria-hidden="true"></span>
                    {/if}
                  </a>
                {/if}

                {#if secondaryLabel}
                  <a
                    href='{secondaryHref || "#"}'
                    target='{secondaryTarget}'
                    rel='{secondaryTarget === "_blank" ? "noopener noreferrer" : ""}'
                    class="wire-hero__action wire-hero__action--secondary"
                  >
                    {#if secondaryIcon}
                      <span class='wire-hero__action-icon {secondaryIcon}' aria-hidden="true"></span>
                    {/if}
                    <span>{secondaryLabel}</span>
                  </a>
                {/if}

                {#if tertiaryLabel}
                  <a
                    href='{tertiaryHref || "#"}'
                    target='{tertiaryTarget}'
                    rel='{tertiaryTarget === "_blank" ? "noopener noreferrer" : ""}'
                    class="wire-hero__action wire-hero__action--tertiary"
                  >
                    <span>{tertiaryLabel}</span>
                    {#if tertiaryIcon}
                      <span class='wire-hero__action-icon {tertiaryIcon}' aria-hidden="true"></span>
                    {/if}
                  </a>
                {/if}

                <slot name="actions"></slot>
              </div>

              {#if trustItems.length > 0}
                <div class="wire-hero__trust" aria-label="Highlights">
                  {#each trustItems as item}
                    <span class="wire-hero__trust-item">
                      <span
                        class='wire-hero__trust-icon {(item.icon || "icon-[lucide--check-circle-2]")}'
                        aria-hidden="true"
                      ></span>
                      <span>{item.label || item.title || item}</span>
                    </span>
                  {/each}
                </div>
              {/if}

              <slot name="trust"></slot>
              <slot></slot>
            </div>

            <div class="wire-hero__visual">
              <slot name="visual"></slot>

              {#if visualImage || visualTitle || visualDescription || visualItems.length > 0}
                <div class="wire-hero__visual-card">
                  {#if visualImage}
                    <div class="wire-hero__visual-media">
                      <img
                        src='{visualImage}'
                        alt='{visualAlt || visualTitle || title}'
                        class="wire-hero__visual-image"
                      />
                    </div>
                  {/if}

                  {#if visualIcon || visualEyebrow || visualTitle || visualDescription}
                    <div class="wire-hero__visual-header">
                      {#if visualIcon}
                        <span class="wire-hero__visual-icon" aria-hidden="true">
                          <span class='{visualIcon}'></span>
                        </span>
                      {/if}

                      <div class="wire-hero__visual-copy">
                        {#if visualEyebrow}
                          <p class="wire-hero__visual-eyebrow">{visualEyebrow}</p>
                        {/if}

                        {#if visualTitle}
                          <h2 class="wire-hero__visual-title">{visualTitle}</h2>
                        {/if}

                        {#if visualDescription}
                          <p class="wire-hero__visual-description">{visualDescription}</p>
                        {/if}
                      </div>
                    </div>
                  {/if}

                  {#if visualItems.length > 0}
                    <div class="wire-hero__visual-items">
                      {#each visualItems as item}
                        <div class="wire-hero__visual-item">
                          {#if item.icon}
                            <span class='wire-hero__visual-item-icon {item.icon}' aria-hidden="true"></span>
                          {/if}

                          <div class="wire-hero__visual-item-copy">
                            <span class="wire-hero__visual-item-label">{item.label || item.title}</span>
                            {#if item.description}
                              <span class="wire-hero__visual-item-description">{item.description}</span>
                            {/if}
                          </div>

                          {#if item.value}
                            <strong class="wire-hero__visual-item-value">{item.value}</strong>
                          {/if}
                        </div>
                      {/each}
                    </div>
                  {/if}
                </div>
              {/if}
            </div>
          </div>

          <div class="wire-hero__footer">
            <slot name="footer"></slot>
          </div>
      </div>
    </section>
  }

  style {
    .wire-hero {
      --wire-hero-accent: var(--wire-color-primary);
      --wire-hero-accent-soft: var(--wire-color-primary-soft);
      --wire-hero-accent-muted: var(--wire-color-primary-muted);
      --wire-hero-contrast: var(--wire-color-primary-contrast);

      position: relative;
      isolation: isolate;
      overflow: hidden;
      width: 100%;
      max-width: 100%;
      box-sizing: border-box;
      color: var(--wire-color-text);
      background: transparent;
      border: 1px solid transparent;
      border-radius: 2rem;
    }

    .wire-hero[data-full-bleed="true"] {
      width: 100vw;
      max-width: 100vw;
      margin-inline: calc(50% - 50vw);
      border-right-width: 0;
      border-left-width: 0;
      border-radius: 0;
    }

    @supports (width: 100dvw) {
      .wire-hero[data-full-bleed="true"] {
        width: 100dvw;
        max-width: 100dvw;
        margin-inline: calc(50% - 50dvw);
      }
    }

    .wire-hero[data-color="secondary"] {
      --wire-hero-accent: var(--wire-color-secondary);
      --wire-hero-accent-soft: var(--wire-color-secondary-soft, var(--wire-color-primary-soft));
      --wire-hero-accent-muted: var(--wire-color-secondary-muted, var(--wire-color-primary-muted));
      --wire-hero-contrast: var(--wire-color-secondary-contrast, var(--wire-color-primary-contrast));
    }

    .wire-hero[data-color="success"] {
      --wire-hero-accent: var(--wire-color-success);
      --wire-hero-accent-soft: var(--wire-color-success-soft, var(--wire-color-primary-soft));
      --wire-hero-accent-muted: var(--wire-color-success-muted, var(--wire-color-primary-muted));
      --wire-hero-contrast: var(--wire-color-success-contrast, var(--wire-color-primary-contrast));
    }

    .wire-hero[data-color="info"] {
      --wire-hero-accent: var(--wire-color-info);
      --wire-hero-accent-soft: var(--wire-color-info-soft, var(--wire-color-primary-soft));
      --wire-hero-accent-muted: var(--wire-color-info-muted, var(--wire-color-primary-muted));
      --wire-hero-contrast: var(--wire-color-info-contrast, var(--wire-color-primary-contrast));
    }

    .wire-hero[data-color="warning"] {
      --wire-hero-accent: var(--wire-color-warning);
      --wire-hero-accent-soft: var(--wire-color-warning-soft, var(--wire-color-primary-soft));
      --wire-hero-accent-muted: var(--wire-color-warning-muted, var(--wire-color-primary-muted));
      --wire-hero-contrast: var(--wire-color-warning-contrast, var(--wire-color-primary-contrast));
    }

    .wire-hero[data-color="danger"] {
      --wire-hero-accent: var(--wire-color-danger);
      --wire-hero-accent-soft: var(--wire-color-danger-soft, var(--wire-color-primary-soft));
      --wire-hero-accent-muted: var(--wire-color-danger-muted, var(--wire-color-primary-muted));
      --wire-hero-contrast: var(--wire-color-danger-contrast, var(--wire-color-primary-contrast));
    }

    .wire-hero[data-variant="soft"] {
      background:
        linear-gradient(135deg, var(--wire-hero-accent-soft), transparent 58%),
        var(--wire-color-surface-raised);
      border-color: var(--wire-color-border);
    }

    .wire-hero[data-variant="raised"] {
      background: var(--wire-color-surface-raised);
      border-color: var(--wire-color-border);
      box-shadow: 0 1.5rem 4rem rgb(0 0 0 / 0.14);
    }

    .wire-hero[data-variant="outline"] {
      background: var(--wire-color-surface);
      border-color: color-mix(in srgb, var(--wire-hero-accent) 35%, var(--wire-color-border));
    }

    .wire-hero[data-variant="gradient"] {
      background:
        radial-gradient(circle at 10% 15%, var(--wire-hero-accent-muted), transparent 32%),
        radial-gradient(circle at 90% 85%, color-mix(in srgb, var(--wire-color-secondary) 24%, transparent), transparent 34%),
        linear-gradient(145deg, var(--wire-color-surface-raised), var(--wire-color-surface));
      border-color: color-mix(in srgb, var(--wire-hero-accent) 24%, var(--wire-color-border));
    }

    .wire-hero[data-variant="solid"] {
      color: var(--wire-hero-contrast);
      background:
        radial-gradient(circle at 85% 15%, rgb(255 255 255 / 0.16), transparent 30%),
        linear-gradient(135deg, var(--wire-hero-accent), color-mix(in srgb, var(--wire-hero-accent) 76%, black));
      border-color: transparent;
    }

    .wire-hero[data-variant="minimal"] {
      border-radius: 0;
    }

    .wire-hero__decorations {
      position: absolute;
      inset: 0;
      z-index: -1;
      overflow: hidden;
      pointer-events: none;
    }

    .wire-hero__glow {
      position: absolute;
      width: 22rem;
      height: 22rem;
      border-radius: 999px;
      background: var(--wire-hero-accent-muted);
      filter: blur(5rem);
      opacity: 0.42;
    }

    .wire-hero__glow--one {
      top: -12rem;
      right: -8rem;
    }

    .wire-hero__glow--two {
      bottom: -15rem;
      left: -10rem;
      opacity: 0.22;
    }

    .wire-hero__grid-pattern {
      position: absolute;
      inset: 0;
      opacity: 0.035;
      background-image:
        linear-gradient(var(--wire-color-text) 1px, transparent 1px),
        linear-gradient(90deg, var(--wire-color-text) 1px, transparent 1px);
      background-size: 2.5rem 2.5rem;
      mask-image: linear-gradient(to bottom, black, transparent 84%);
    }

    .wire-hero__inner {
      width: 100%;
      max-width: 80rem;
      margin-inline: auto;
      padding: 3rem 1.25rem;
      box-sizing: border-box;
    }

    .wire-hero[data-max-width="compact"] .wire-hero__inner,
    .wire-hero[data-max-width="sm"] .wire-hero__inner {
      max-width: 64rem;
    }

    .wire-hero[data-max-width="default"] .wire-hero__inner,
    .wire-hero[data-max-width="lg"] .wire-hero__inner {
      max-width: 72rem;
    }

    .wire-hero[data-max-width="wide"] .wire-hero__inner,
    .wire-hero[data-max-width="xl"] .wire-hero__inner {
      max-width: 80rem;
    }

    .wire-hero[data-max-width="2xl"] .wire-hero__inner {
      max-width: 90rem;
    }

    .wire-hero[data-max-width="full"] .wire-hero__inner {
      max-width: none;
    }

    .wire-hero[data-size="compact"] .wire-hero__inner,
    .wire-hero[data-size="sm"] .wire-hero__inner {
      padding-block: 2rem;
    }

    .wire-hero[data-size="lg"] .wire-hero__inner,
    .wire-hero[data-size="large"] .wire-hero__inner {
      padding-block: 4rem;
    }

    .wire-hero[data-size="xl"] .wire-hero__inner {
      padding-block: 5rem;
    }

    .wire-hero__layout {
      display: grid;
      grid-template-columns: minmax(0, 1fr);
      align-items: center;
      gap: 2.5rem;
    }

    .wire-hero__content {
      min-width: 0;
      max-width: 46rem;
    }

    .wire-hero[data-align="center"] .wire-hero__content {
      margin-inline: auto;
      text-align: center;
    }

    .wire-hero[data-align="right"] .wire-hero__content {
      margin-left: auto;
      text-align: right;
    }

    .wire-hero__eyebrow {
      display: inline-flex;
      align-items: center;
      gap: 0.6rem;
      width: fit-content;
      margin-bottom: 1.4rem;
      padding: 0.55rem 0.9rem;
      color: var(--wire-hero-accent);
      font-size: 0.75rem;
      font-weight: 600;
      line-height: 1;
      letter-spacing: 0.04em;
      background: var(--wire-hero-accent-soft);
      border: 1px solid color-mix(in srgb, var(--wire-hero-accent) 24%, transparent);
      border-radius: 999px;
    }

    .wire-hero[data-align="center"] .wire-hero__eyebrow {
      margin-inline: auto;
    }

    .wire-hero[data-align="right"] .wire-hero__eyebrow {
      margin-left: auto;
    }

    .wire-hero__eyebrow-dot {
      width: 0.45rem;
      height: 0.45rem;
      flex: 0 0 auto;
      background: currentColor;
      border-radius: 999px;
      box-shadow: 0 0 0 0.25rem color-mix(in srgb, currentColor 12%, transparent);
    }

    .wire-hero__eyebrow-icon {
      width: 0.9rem;
      height: 0.9rem;
      flex: 0 0 auto;
    }

    .wire-hero__heading-row {
      display: flex;
      align-items: flex-start;
      gap: 1.25rem;
    }

    .wire-hero[data-align="center"] .wire-hero__heading-row {
      justify-content: center;
    }

    .wire-hero[data-align="right"] .wire-hero__heading-row {
      justify-content: flex-end;
    }

    .wire-hero__heading-copy {
      min-width: 0;
    }

    .wire-hero__icon {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 3.5rem;
      height: 3.5rem;
      flex: 0 0 auto;
      color: var(--wire-hero-accent);
      font-size: 1.5rem;
      background: var(--wire-hero-accent-soft);
      border-radius: 1.1rem;
    }

    .wire-hero__title {
      max-width: 18ch;
      margin: 0;
      color: var(--wire-color-text);
      font-size: clamp(2.35rem, 6vw, 4.8rem);
      font-weight: 650;
      line-height: 1.02;
      letter-spacing: -0.045em;
      text-wrap: balance;
    }

    .wire-hero[data-size="compact"] .wire-hero__title,
    .wire-hero[data-size="sm"] .wire-hero__title {
      font-size: clamp(2rem, 5vw, 3.4rem);
    }

    .wire-hero[data-size="lg"] .wire-hero__title,
    .wire-hero[data-size="large"] .wire-hero__title {
      font-size: clamp(2.8rem, 7vw, 5.6rem);
    }

    .wire-hero[data-size="xl"] .wire-hero__title {
      font-size: clamp(3.1rem, 8vw, 6.4rem);
    }

    .wire-hero[data-variant="solid"] .wire-hero__title,
    .wire-hero[data-variant="solid"] .wire-hero__description,
    .wire-hero[data-variant="solid"] .wire-hero__trust {
      color: var(--wire-hero-contrast);
    }

    .wire-hero__highlight {
      display: block;
      color: var(--wire-hero-accent);
      background: linear-gradient(90deg, var(--wire-hero-accent), var(--wire-color-secondary));
      background-clip: text;
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
    }

    .wire-hero[data-variant="solid"] .wire-hero__highlight {
      color: inherit;
      background: none;
      -webkit-text-fill-color: currentColor;
      opacity: 0.9;
    }

    .wire-hero__description {
      max-width: 42rem;
      margin: 1.5rem 0 0;
      color: var(--wire-color-text-muted);
      font-size: 1.05rem;
      line-height: 1.8;
      text-wrap: pretty;
    }

    .wire-hero[data-align="center"] .wire-hero__title,
    .wire-hero[data-align="center"] .wire-hero__description {
      margin-inline: auto;
    }

    .wire-hero[data-align="right"] .wire-hero__title,
    .wire-hero[data-align="right"] .wire-hero__description {
      margin-left: auto;
    }

    .wire-hero__badges,
    .wire-hero__actions,
    .wire-hero__trust {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
    }

    .wire-hero__badges {
      gap: 0.5rem;
      margin-top: 1.5rem;
    }

    .wire-hero__actions {
      gap: 0.75rem;
      margin-top: 2rem;
    }

    .wire-hero__actions:empty {
      display: none;
    }

    .wire-hero__action {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 0.6rem;
      min-height: 3rem;
      padding: 0.75rem 1.15rem;
      font-size: 0.9rem;
      font-weight: 650;
      line-height: 1.2;
      text-decoration: none;
      border: 1px solid transparent;
      border-radius: 0.85rem;
      transition:
        transform 160ms ease,
        background-color 160ms ease,
        border-color 160ms ease,
        color 160ms ease,
        box-shadow 160ms ease;
    }

    .wire-hero__action:hover {
      transform: translateY(-2px);
    }

    .wire-hero__action:focus-visible {
      outline: 3px solid color-mix(in srgb, var(--wire-hero-accent) 30%, transparent);
      outline-offset: 3px;
    }

    .wire-hero__action--primary {
      color: var(--wire-hero-contrast);
      background: var(--wire-hero-accent);
      box-shadow: 0 0.75rem 2rem color-mix(in srgb, var(--wire-hero-accent) 24%, transparent);
    }

    .wire-hero__action--primary:hover {
      box-shadow: 0 1rem 2.4rem color-mix(in srgb, var(--wire-hero-accent) 34%, transparent);
    }

    .wire-hero__action--secondary {
      color: var(--wire-hero-accent);
      background: color-mix(in srgb, var(--wire-color-surface-raised) 76%, transparent);
      border-color: color-mix(in srgb, var(--wire-hero-accent) 45%, var(--wire-color-border));
    }

    .wire-hero__action--secondary:hover {
      background: var(--wire-hero-accent-soft);
    }

    .wire-hero__action--tertiary {
      color: var(--wire-color-text-muted);
      background: transparent;
    }

    .wire-hero__action--tertiary:hover {
      color: var(--wire-hero-accent);
      background: var(--wire-hero-accent-soft);
    }

    .wire-hero__action-icon {
      width: 1rem;
      height: 1rem;
      flex: 0 0 auto;
    }

    .wire-hero__trust {
      gap: 0.75rem 1.25rem;
      margin-top: 1.75rem;
      color: var(--wire-color-text-muted);
      font-size: 0.82rem;
      line-height: 1.5;
    }

    .wire-hero__trust-item {
      display: inline-flex;
      align-items: center;
      gap: 0.45rem;
    }

    .wire-hero__trust-icon {
      width: 1rem;
      height: 1rem;
      flex: 0 0 auto;
      color: var(--wire-hero-accent);
    }

    .wire-hero[data-align="center"] .wire-hero__badges,
    .wire-hero[data-align="center"] .wire-hero__actions,
    .wire-hero[data-align="center"] .wire-hero__trust {
      justify-content: center;
    }

    .wire-hero[data-align="right"] .wire-hero__badges,
    .wire-hero[data-align="right"] .wire-hero__actions,
    .wire-hero[data-align="right"] .wire-hero__trust {
      justify-content: flex-end;
    }

    .wire-hero__visual {
      position: relative;
      min-width: 0;
      width: 100%;
    }

    .wire-hero__visual:not(:has(> *)) {
      display: none;
    }

    .wire-hero__layout:not(:has(.wire-hero__visual > *)) {
      grid-template-columns: minmax(0, 1fr);
    }

    .wire-hero[data-visual-style="card"] .wire-hero__visual {
      padding: 0.75rem;
      background: color-mix(in srgb, var(--wire-color-surface-raised) 88%, transparent);
      border: 1px solid var(--wire-color-border);
      border-radius: 1.75rem;
      box-shadow: 0 1.5rem 4rem rgb(0 0 0 / 0.14);
    }

    .wire-hero[data-visual-style="soft"] .wire-hero__visual {
      padding: 1.25rem;
      background: var(--wire-hero-accent-soft);
      border-radius: 1.75rem;
    }

    .wire-hero__visual > * {
      width: 100%;
      max-width: 100%;
    }

    .wire-hero__visual-card {
      width: 100%;
      overflow: hidden;
      padding: 1.25rem;
      color: var(--wire-color-text);
      background: color-mix(in srgb, var(--wire-color-surface-raised) 92%, transparent);
      border: 1px solid color-mix(in srgb, var(--wire-hero-accent) 18%, var(--wire-color-border));
      border-radius: 1.75rem;
      box-shadow: 0 1.5rem 4rem rgb(0 0 0 / 0.14);
      backdrop-filter: blur(1rem);
    }

    .wire-hero__visual-media {
      overflow: hidden;
      margin: -0.5rem -0.5rem 1.25rem;
      border-radius: 1.25rem;
    }

    .wire-hero__visual-image {
      display: block;
      width: 100%;
      aspect-ratio: 16 / 10;
      object-fit: cover;
    }

    .wire-hero__visual-header {
      display: flex;
      align-items: flex-start;
      gap: 1rem;
    }

    .wire-hero__visual-icon {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 3rem;
      height: 3rem;
      flex: 0 0 auto;
      color: var(--wire-hero-accent);
      background: var(--wire-hero-accent-soft);
      border-radius: 1rem;
    }

    .wire-hero__visual-icon > span {
      width: 1.35rem;
      height: 1.35rem;
    }

    .wire-hero__visual-copy {
      min-width: 0;
    }

    .wire-hero__visual-eyebrow {
      margin: 0 0 0.35rem;
      color: var(--wire-hero-accent);
      font-size: 0.72rem;
      font-weight: 600;
      letter-spacing: 0.12em;
      text-transform: uppercase;
    }

    .wire-hero__visual-title {
      margin: 0;
      color: var(--wire-color-text);
      font-size: 1.35rem;
      font-weight: 650;
      line-height: 1.25;
    }

    .wire-hero__visual-description {
      margin: 0.55rem 0 0;
      color: var(--wire-color-text-muted);
      font-size: 0.9rem;
      line-height: 1.65;
    }

    .wire-hero__visual-items {
      display: grid;
      gap: 0.75rem;
      margin-top: 1.25rem;
    }

    .wire-hero__visual-item {
      display: flex;
      align-items: center;
      gap: 0.8rem;
      min-width: 0;
      padding: 0.9rem 1rem;
      background: color-mix(in srgb, var(--wire-color-surface) 82%, transparent);
      border: 1px solid var(--wire-color-border);
      border-radius: 1rem;
    }

    .wire-hero__visual-item-icon {
      width: 1.1rem;
      height: 1.1rem;
      flex: 0 0 auto;
      color: var(--wire-hero-accent);
    }

    .wire-hero__visual-item-copy {
      display: flex;
      flex: 1 1 auto;
      flex-direction: column;
      min-width: 0;
    }

    .wire-hero__visual-item-label {
      color: var(--wire-color-text);
      font-size: 0.88rem;
      font-weight: 600;
      line-height: 1.35;
    }

    .wire-hero__visual-item-description {
      margin-top: 0.15rem;
      color: var(--wire-color-text-muted);
      font-size: 0.76rem;
      line-height: 1.4;
    }

    .wire-hero__visual-item-value {
      flex: 0 0 auto;
      color: var(--wire-hero-accent);
      font-size: 0.9rem;
      font-weight: 700;
    }

    .wire-hero[data-variant="solid"] .wire-hero__visual-card,
    .wire-hero[data-variant="solid"] .wire-hero__visual-title,
    .wire-hero[data-variant="solid"] .wire-hero__visual-item-label {
      color: var(--wire-hero-contrast);
    }

    .wire-hero[data-variant="solid"] .wire-hero__visual-description,
    .wire-hero[data-variant="solid"] .wire-hero__visual-item-description {
      color: color-mix(in srgb, var(--wire-hero-contrast) 74%, transparent);
    }

    .wire-hero__footer:not(:has(> *)) {
      display: none;
    }

    .wire-hero__footer {
      margin-top: 2rem;
      padding-top: 1.5rem;
      border-top: 1px solid var(--wire-color-border);
    }

    @media (min-width: 640px) {
      .wire-hero__inner {
        padding-inline: 2rem;
      }
    }

    @media (min-width: 768px) {
      .wire-hero__actions {
        gap: 0.9rem;
      }

      .wire-hero__action {
        padding-inline: 1.35rem;
      }
    }

    @media (min-width: 1024px) {
      .wire-hero__inner {
        padding-inline: 3rem;
      }

      .wire-hero[data-layout="split"] .wire-hero__layout {
        grid-template-columns: minmax(0, 1.08fr) minmax(20rem, 0.92fr);
        gap: 4rem;
      }

      .wire-hero[data-layout="stacked"] .wire-hero__layout,
      .wire-hero[data-layout="content"] .wire-hero__layout {
        grid-template-columns: minmax(0, 1fr);
      }

      .wire-hero[data-layout="stacked"] .wire-hero__content {
        max-width: 58rem;
      }

      .wire-hero[data-layout="stacked"] .wire-hero__visual {
        max-width: 68rem;
      }

      .wire-hero[data-layout="content"] .wire-hero__visual {
        display: none;
      }

      .wire-hero[data-visual-position="left"] .wire-hero__visual {
        grid-column: 1;
        grid-row: 1;
      }

      .wire-hero[data-visual-position="left"] .wire-hero__content {
        grid-column: 2;
        grid-row: 1;
      }

      .wire-hero[data-layout="stacked"][data-visual-position="left"] .wire-hero__visual,
      .wire-hero[data-layout="stacked"][data-visual-position="left"] .wire-hero__content {
        grid-column: 1;
      }

      .wire-hero[data-layout="stacked"][data-visual-position="left"] .wire-hero__visual {
        grid-row: 1;
      }

      .wire-hero[data-layout="stacked"][data-visual-position="left"] .wire-hero__content {
        grid-row: 2;
      }
    }

    @media (max-width: 639px) {
      .wire-hero:not([data-full-bleed="true"]) {
        border-radius: 1.25rem;
      }

      .wire-hero__inner {
        padding: 2.25rem 1rem;
      }

      .wire-hero__heading-row {
        gap: 0.85rem;
      }

      .wire-hero__icon {
        width: 2.75rem;
        height: 2.75rem;
        font-size: 1.2rem;
        border-radius: 0.85rem;
      }

      .wire-hero__description {
        font-size: 0.95rem;
        line-height: 1.7;
      }

      .wire-hero__actions {
        align-items: stretch;
      }

      .wire-hero__action {
        width: 100%;
      }
    }

    @media (prefers-reduced-motion: reduce) {
      .wire-hero__action {
        transition: none;
      }

      .wire-hero__action:hover {
        transform: none;
      }
    }
  }
}
