.bpa-archive {
  --bpa-ink: #111;
  --bpa-paper: #fff;
  --bpa-accent: #e10600;
  position: relative;
  background: var(--bpa-paper);
  color: var(--bpa-ink);
  font-family: "Archivo", "Arial Narrow", "Helvetica Neue", sans-serif;
}

.bpa-archive__pin {
  position: relative;
  height: 100vh;
  width: 100%;
  overflow: hidden;
  background: var(--bpa-paper);
}

.bpa-intro {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: grid;
  place-items: center;
  pointer-events: none;
}

.bpa-thumbs {
  position: absolute;
  inset: 0;
}

.bpa-thumb {
  position: absolute;
  margin: 0;
  overflow: hidden;
  background: #ddd;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.12);
  will-change: transform;
}

.bpa-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.bpa-thumb--1 { width: min(18vw, 260px); height: min(12vw, 170px); top: 8%; left: 6%; }
.bpa-thumb--2 { width: min(11vw, 160px); height: min(16vw, 230px); top: 5%; left: 30%; }
.bpa-thumb--3 { width: min(14vw, 210px); height: min(16vw, 240px); top: 7%; right: 24%; }
.bpa-thumb--4 { width: min(16vw, 240px); height: min(11vw, 160px); top: 10%; right: 5%; }
.bpa-thumb--5 { width: min(17vw, 250px); height: min(11vw, 160px); bottom: 10%; left: 5%; }
.bpa-thumb--6 { width: min(11vw, 160px); height: min(17vw, 250px); bottom: 6%; left: 30%; }
.bpa-thumb--7 { width: min(16vw, 240px); height: min(11vw, 155px); bottom: 12%; right: 24%; }
.bpa-thumb--8 { width: min(15vw, 220px); height: min(11vw, 155px); bottom: 9%; right: 5%; }

.bpa-hero {
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.85rem;
  text-align: center;
  padding: 0 1.5rem;
}

/* Beat Elementor typography overrides */
.elementor .bpa-archive .bpa-title,
.elementor-widget-shortcode .bpa-archive .bpa-title,
.bpa-archive h2.bpa-title,
.bpa-archive .bpa-title {
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  font-family: "Bebas Neue", sans-serif !important;
  font-weight: 700 !important;
  font-size: clamp(3rem, 10vw, 120px) !important;
  line-height: 0.92 !important;
  letter-spacing: 0.01em !important;
  text-transform: uppercase !important;
  color: #111 !important;
}

.elementor .bpa-archive .bpa-title span,
.bpa-archive .bpa-title span {
  font-family: inherit !important;
  font-weight: inherit !important;
  font-size: inherit !important;
  color: inherit !important;
  line-height: inherit !important;
}

@media (min-width: 1025px) {
  .elementor .bpa-archive .bpa-title,
  .elementor-widget-shortcode .bpa-archive .bpa-title,
  .bpa-archive h2.bpa-title,
  .bpa-archive .bpa-title {
    font-size: 120px !important;
  }
}

.bpa-arrow {
  width: 28px;
  height: 28px;
  transform-origin: 50% 50%;
  will-change: transform;
}

.bpa-arrow svg {
  width: 100%;
  height: 100%;
  display: block;
}

.bpa-stage {
  position: absolute;
  inset: 0;
  z-index: 4;
  overflow: hidden;
}

.bpa-slide {
  position: absolute;
  inset: 0;
  overflow: hidden;
  background: #111;
  will-change: transform;
}

.bpa-slide__bg {
  position: absolute;
  inset: -4%;
  background-size: cover;
  background-position: center;
  transform: scale(1.05);
}

.bpa-slide__veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0.2) 40%, rgba(0, 0, 0, 0.45) 100%);
}

.elementor .bpa-archive .bpa-slide__copy,
.bpa-archive .bpa-slide__copy {
  position: absolute !important;
  z-index: 2;
  inset: 0;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: clamp(2rem, 6vh, 4.5rem) clamp(1.5rem, 8vw, 5rem) !important;
  color: #fff !important;
  box-sizing: border-box;
}

.elementor .bpa-archive .bpa-slide__index,
.bpa-archive .bpa-slide__index {
  margin: 0 0 1.35rem !important;
  font-size: 0.82rem !important;
  font-weight: 400 !important;
  letter-spacing: 0.06em !important;
  line-height: 1 !important;
  color: #fff !important;
  text-align: center !important;
  opacity: 1 !important;
}

.bpa-slide__index-current {
  position: relative;
  display: inline-block;
  padding-bottom: 0.35rem;
  color: #fff !important;
}

.bpa-slide__index-current::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  background: #e10600;
}

.bpa-slide__index-total {
  color: rgba(255, 255, 255, 0.55) !important;
  font-weight: 400 !important;
}

.elementor .bpa-archive .bpa-slide__title,
.elementor-widget-shortcode .bpa-archive .bpa-slide__title,
.bpa-archive h3.bpa-slide__title,
.bpa-archive .bpa-slide__title {
  margin: 0 !important;
  padding: 0 !important;
  max-width: 18ch !important;
  font-family: "Bebas Neue", sans-serif !important;
  font-weight: 700 !important;
  font-size: clamp(3rem, 10vw, 120px) !important;
  line-height: 1.02 !important;
  letter-spacing: 0.01em !important;
  text-transform: uppercase !important;
  color: #fff !important;
  text-align: center !important;
}

@media (min-width: 1025px) {
  .elementor .bpa-archive .bpa-slide__title,
  .elementor-widget-shortcode .bpa-archive .bpa-slide__title,
  .bpa-archive h3.bpa-slide__title,
  .bpa-archive .bpa-slide__title {
    font-size: 120px !important;
  }
}

.elementor .bpa-archive .bpa-slide__category,
.bpa-archive .bpa-slide__category {
  margin: 1rem 0 0 !important;
  font-family: inherit !important;
  font-weight: 700 !important;
  font-size: 0.72rem !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  color: #fff !important;
  text-align: center !important;
  opacity: 0.95 !important;
}

.elementor .bpa-archive .bpa-slide__dex,
.elementor-widget-shortcode .bpa-archive .bpa-slide__dex,
.bpa-archive p.bpa-slide__dex,
.bpa-archive .bpa-slide__dex {
  margin: 1.25rem auto 0 !important;
  max-width: 36rem !important;
  font-family: "News Cycle", sans-serif !important;
  font-size: clamp(0.95rem, 1.2vw, 1.08rem) !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
  color: #fff !important;
  text-align: center !important;
  opacity: 0.95 !important;
}

.bpa-collage {
  position: absolute;
  inset: 0;
  z-index: 5;
  pointer-events: none;
  overflow: hidden;
}

.bpa-frame {
  position: absolute;
  top: 0;
  margin: 0;
  width: 50%;
  height: 100%;
  overflow: hidden;
  box-shadow: none;
  will-change: transform, opacity;
}

.bpa-frame img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.bpa-frame--left {
  left: 0;
}

.bpa-frame--right {
  right: 0;
  left: auto;
}

.bpa-mouse {
  position: absolute;
  right: 1.35rem;
  bottom: 1.35rem;
  z-index: 25;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 1px;
  width: 44px;
  height: 44px;
  padding: 6px 4px 5px;
  background: #fff;
  color: #111;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
  opacity: 0;
}

.bpa-mouse__icon {
  width: 22px;
  height: 22px;
  display: block;
}

.bpa-mouse__label {
  font-size: 0.62rem;
  font-weight: 700;
  line-height: 1;
  color: #16a34a;
}

@media (max-width: 900px) {
  .bpa-thumb--7 { display: none; }
  .bpa-archive .bpa-slide__copy { padding-inline: 1.25rem !important; }
  .bpa-archive .bpa-slide__title { max-width: 14ch !important; }
}
