/*
 * Home section headings
 * Decorative only: section queries, product loops, carousels and page templates
 * remain untouched. Every color is derived from the global Customizer tokens.
 */
.pd-home .pd-home-heading {
  --pd-head-accent: var(--violet);
  --pd-head-accent-alt: var(--cyan);
  position: relative;
  isolation: isolate;
  min-width: 0;
}

.pd-home .pd-home-heading > * {
  position: relative;
  z-index: 2;
}

.pd-home .pd-home-heading h2 {
  text-wrap: balance;
}

/* Circuit board: a calm, technical heading with traces in both brand colors. */
.pd-home .pd-home-heading--circuit {
  min-height: 154px;
  align-items: center;
  padding: 28px 32px 46px;
  border: 1px solid color-mix(in srgb, var(--pd-head-accent) 22%, var(--border));
  border-radius: 22px;
  background:
    radial-gradient(circle at 9% 18%, color-mix(in srgb, var(--pd-head-accent-alt) 20%, transparent) 0 4px, transparent 5px),
    radial-gradient(circle at 22% 72%, color-mix(in srgb, var(--pd-head-accent) 25%, transparent) 0 3px, transparent 4px),
    linear-gradient(118deg, color-mix(in srgb, var(--pd-head-accent) 9%, var(--paper)), color-mix(in srgb, var(--pd-head-accent-alt) 7%, var(--surface)));
  overflow: hidden;
}

.pd-home .pd-home-heading--circuit::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0 52% 0 0;
  opacity: .42;
  background:
    linear-gradient(45deg, transparent 0 35%, var(--pd-head-accent-alt) 35% 36%, transparent 36% 58%, var(--pd-head-accent) 58% 59%, transparent 59%),
    repeating-linear-gradient(0deg, transparent 0 31px, color-mix(in srgb, var(--pd-head-accent-alt) 24%, transparent) 32px 33px);
  -webkit-mask-image: linear-gradient(90deg, #000, transparent);
  mask-image: linear-gradient(90deg, #000, transparent);
  pointer-events: none;
}

.pd-home .pd-home-heading--circuit::after {
  content: "";
  position: absolute;
  z-index: 1;
  right: 32px;
  bottom: 25px;
  width: 52px;
  height: 4px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--pd-head-accent), var(--pd-head-accent-alt));
  box-shadow: 62px 0 0 -1px color-mix(in srgb, var(--pd-head-accent) 24%, transparent);
}

/* Dark showcase: closest to the supplied mobile reference, with a circuit glow. */
.pd-home .pd-home-heading--dark {
  --pd-head-accent: var(--violet);
  min-height: 178px;
  align-items: center;
  padding: 30px 34px 56px;
  border: 1px solid color-mix(in srgb, var(--pd-head-accent-alt) 16%, transparent);
  border-radius: 24px;
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(ellipse 50% 150% at 7% 62%, color-mix(in srgb, var(--pd-head-accent-alt) 28%, transparent), transparent 74%),
    radial-gradient(circle at 88% 12%, color-mix(in srgb, var(--pd-head-accent) 30%, transparent), transparent 42%),
    linear-gradient(120deg, color-mix(in srgb, var(--ink-2) 74%, #07111f), #071421 75%);
  box-shadow: 0 24px 48px -38px color-mix(in srgb, var(--ink-2) 72%, transparent);
}

.pd-home .pd-home-heading--dark::before {
  content: "";
  position: absolute;
  inset: 0 48% 0 0;
  opacity: .35;
  background:
    linear-gradient(45deg, transparent 0 39%, var(--pd-head-accent-alt) 39% 40%, transparent 40% 64%, var(--pd-head-accent-alt) 64% 65%, transparent 65%),
    repeating-linear-gradient(0deg, transparent 0 34px, color-mix(in srgb, var(--pd-head-accent-alt) 22%, transparent) 35px 36px);
  pointer-events: none;
}

.pd-home .pd-home-heading--dark::after {
  content: "";
  position: absolute;
  left: 32px;
  bottom: 28px;
  width: 70px;
  height: 1px;
  background: color-mix(in srgb, var(--pd-head-accent-alt) 70%, transparent);
  box-shadow: -10px 0 0 3px var(--pd-head-accent-alt);
}

.pd-home .pd-home-heading--dark h2,
.pd-home .pd-home-heading--dark p {
  color: #fff;
}

.pd-home .pd-home-heading--dark p {
  color: rgba(255,255,255,.72);
}

/* Sale: a bright offset panel so adjacent product groups do not repeat. */
.pd-home .pd-home-heading--sale {
  --pd-head-accent: var(--danger);
  padding: 25px 30px 27px;
  margin-inline: 18px 0;
  border: 1px solid color-mix(in srgb, var(--pd-head-accent) 22%, var(--border));
  border-radius: 18px 18px 18px 6px;
  background: linear-gradient(105deg, color-mix(in srgb, var(--pd-head-accent) 11%, var(--paper)), var(--paper) 68%);
  box-shadow: -10px 10px 0 color-mix(in srgb, var(--pd-head-accent) 8%, transparent);
}

.pd-home .pd-home-heading--sale::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 8px;
  border-radius: 18px 0 0 6px;
  background: linear-gradient(var(--pd-head-accent), var(--orange));
}

/* Edge: open and structural, with a strong side rail rather than a full card. */
.pd-home .pd-home-heading--edge {
  padding: 9px 25px 12px 8px;
  border-right: 5px solid var(--pd-head-accent);
}

.pd-home .pd-home-heading--edge::before {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: min(460px, 78%);
  height: 1px;
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--pd-head-accent) 40%, transparent));
}

.pd-home .pd-home-heading--edge::after {
  content: "";
  width: 11px;
  height: 11px;
  position: absolute;
  right: -8px;
  top: -2px;
  border-radius: 50%;
  background: var(--pd-head-accent-alt);
  box-shadow: 0 0 0 6px color-mix(in srgb, var(--pd-head-accent-alt) 12%, transparent);
}

/* Stripe: a diagonal technical label inspired by component packaging. */
.pd-home .pd-home-heading--stripe {
  padding: 25px 30px;
  border-radius: 18px;
  border: 1px solid color-mix(in srgb, var(--ink) 9%, transparent);
  background:
    linear-gradient(115deg, color-mix(in srgb, var(--pd-head-accent-alt) 12%, var(--paper)) 0 31%, transparent 31%),
    repeating-linear-gradient(135deg, transparent 0 13px, color-mix(in srgb, var(--pd-head-accent) 5%, transparent) 14px 15px),
    var(--paper);
}

.pd-home .pd-home-heading--stripe::after {
  content: "";
  width: 12px;
  height: 12px;
  border: 3px solid var(--pd-head-accent);
  border-radius: 4px;
  position: absolute;
  left: 24px;
  top: 24px;
  transform: rotate(45deg);
}

/* Review spotlight keeps the rating summary visually tied to its heading. */
.pd-home .pd-home-heading--spotlight {
  --pd-head-accent: var(--orange);
  padding: 28px 30px;
  border-radius: 22px;
  border: 1px solid color-mix(in srgb, var(--pd-head-accent) 18%, var(--border));
  background:
    radial-gradient(circle at 10% 50%, color-mix(in srgb, var(--pd-head-accent) 20%, transparent), transparent 24%),
    linear-gradient(108deg, var(--paper), color-mix(in srgb, var(--pd-head-accent) 7%, var(--surface)));
}

.pd-home .pd-home-heading--spotlight .pd-rating-summary {
  min-width: 132px;
  padding: 10px 14px;
  border: 1px solid color-mix(in srgb, var(--pd-head-accent) 25%, transparent);
  border-radius: 14px;
  background: color-mix(in srgb, var(--pd-head-accent) 10%, var(--paper));
}

.pd-home .pd-home-heading--spotlight .pd-rating-summary b {
  color: color-mix(in srgb, var(--pd-head-accent) 70%, var(--ink));
}

/* Editorial: deliberately flatter and more typographic for articles. */
.pd-home .pd-home-heading--editorial {
  padding: 5px 0 19px;
  border-bottom: 2px solid color-mix(in srgb, var(--pd-head-accent) 24%, var(--border));
}

.pd-home .pd-home-heading--editorial h2 {
  display: inline;
  background: linear-gradient(transparent 67%, color-mix(in srgb, var(--pd-head-accent-alt) 28%, transparent) 67%);
}

.pd-home .pd-home-heading--editorial::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -2px;
  width: 92px;
  height: 2px;
  background: var(--pd-head-accent);
}

/* Compact twins: related, but not identical, for paired lists and brands. */
.pd-home .pd-product-block > .pd-home-heading--compact-tech,
.pd-home .pd-guides > .pd-home-heading--compact-tech {
  padding: 14px 16px 15px;
  margin: -4px -4px 14px;
  border: 0;
  border-radius: 14px;
  background: linear-gradient(110deg, color-mix(in srgb, var(--pd-head-accent) 11%, var(--paper)), var(--paper));
}

.pd-home .pd-home-heading--compact-tech::after {
  content: "";
  position: absolute;
  right: 16px;
  bottom: 0;
  width: 38px;
  height: 3px;
  border-radius: 999px;
  background: var(--pd-head-accent);
}

.pd-home .pd-product-block > .pd-home-heading--compact-fresh {
  --pd-head-accent: var(--green);
  padding: 12px 17px 13px;
  margin: -4px -4px 14px;
  border: 1px dashed color-mix(in srgb, var(--pd-head-accent) 28%, var(--border));
  border-radius: 999px 16px 16px 999px;
  background: color-mix(in srgb, var(--pd-head-accent) 6%, var(--paper));
}

.pd-home .pd-home-heading--compact-tech h2,
.pd-home .pd-home-heading--compact-fresh h2 {
  font-size: 19px;
  margin-bottom: 5px;
}

.pd-home .pd-home-heading--compact-tech p,
.pd-home .pd-home-heading--compact-fresh p {
  margin-bottom: 0;
}

/* Sourcing: framed like a datasheet header while retaining both original CTAs. */
.pd-home .pd-home-heading--sourcing {
  padding: 26px 28px;
  border-radius: 20px;
  border: 1px solid color-mix(in srgb, var(--pd-head-accent) 20%, var(--border));
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--pd-head-accent) 9%, var(--paper)), transparent 46%),
    repeating-linear-gradient(90deg, transparent 0 54px, color-mix(in srgb, var(--ink) 3.5%, transparent) 55px 56px),
    var(--paper);
}

.pd-home .pd-home-heading--sourcing::before {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 6px;
  background: linear-gradient(var(--pd-head-accent), var(--pd-head-accent-alt));
}

/* Product cards visually tuck under the two showcase headings, like the reference. */
.pd-home .pd-home-heading--dark + .pd-grid,
.pd-home .pd-home-heading--circuit + .pd-grid {
  position: relative;
  z-index: 3;
  margin-top: -22px;
  padding-inline: 14px;
}

@media (max-width: 840px) {
  .pd-home .pd-home-heading--circuit,
  .pd-home .pd-home-heading--dark {
    min-height: 156px;
    padding: 24px 20px 49px;
    border-radius: 20px;
  }

  .pd-home .pd-home-heading--circuit h2,
  .pd-home .pd-home-heading--dark h2,
  .pd-home .pd-home-heading--sale h2,
  .pd-home .pd-home-heading--spotlight h2 {
    font-size: 25px;
  }

  .pd-home .pd-home-heading--circuit::before,
  .pd-home .pd-home-heading--dark::before {
    inset-inline: 42% 0;
    -webkit-mask-image: linear-gradient(270deg, #000, transparent);
    mask-image: linear-gradient(270deg, #000, transparent);
  }

  .pd-home .pd-home-heading--sale {
    padding: 21px 20px 23px;
    margin-inline: 9px 0;
  }

  .pd-home .pd-home-heading--edge {
    padding-inline-start: 18px;
  }

  .pd-home .pd-home-heading--stripe,
  .pd-home .pd-home-heading--spotlight,
  .pd-home .pd-home-heading--sourcing {
    padding: 22px 19px;
  }

  .pd-home .pd-home-heading--spotlight {
    align-items: stretch;
  }

  .pd-home .pd-home-heading--spotlight .pd-rating-summary {
    align-items: flex-start;
    min-width: 0;
  }

  .pd-home .pd-home-heading--dark + .pd-grid,
  .pd-home .pd-home-heading--circuit + .pd-grid {
    margin-top: -18px;
    padding-inline: 8px;
  }
}

@media (max-width: 520px) {
  .pd-home .pd-home-heading p {
    font-size: 12px;
    line-height: 1.9;
  }

  .pd-home .pd-home-heading--dark,
  .pd-home .pd-home-heading--circuit {
    min-height: 168px;
  }

  .pd-home .pd-home-heading--dark::after {
    left: 20px;
  }

  .pd-home .pd-home-heading--circuit::after {
    right: 20px;
  }

  .pd-home .pd-home-heading--stripe::after {
    left: 16px;
    top: 18px;
    opacity: .65;
  }

  .pd-home .pd-home-heading--sourcing .pd-chip-row {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pd-home .pd-home-heading,
  .pd-home .pd-home-heading::before,
  .pd-home .pd-home-heading::after {
    transition: none !important;
  }
}
