/* 1. Main wrapper - Tall enough to hold the large circle */
.banner-block {
  position: relative;
  width: 100%;
  padding-top: 2rem;
  padding-bottom: 2rem;
  z-index: 10;
}

/* 2. Yellow Strip - Decoupled from the block height so it forms a thin ribbon */
.banner-block-skew-bg {
  position: absolute;
  /* Instead of inset: 0, we leave empty space at the top and bottom */
  top: 15%;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: #F3B52A;
  transform: skewY(-3deg);
  transform-origin: top left;
  box-shadow: -2px 15px 0px 0px #c67c00, 0 20px 40px rgba(0, 0, 0, 0.4);
  z-index: 0;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* 3. Watermark Background Pattern */
.banner-block-watermark {
  position: absolute;
  inset: -25%;
  width: 150%;
  height: 150%;
  opacity: 0.6;
  background-repeat: repeat;
  background-position: center;
  background-image: var(--wt-banner-bg-image, url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="150" height="80"><text x="10" y="50" font-family="Arial" font-weight="bold" font-size="40" fill="rgba(255,255,255,0.2)" transform="rotate(-15)">PAVE+</text></svg>'));
  transform: skewY(4deg);
}

/* 4. Content Container */
.banner-block-content {
  position: relative;
  z-index: 10;
  margin: 0 auto;
  padding: 0 1.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
}

/* 5. Typography Container */
.banner-block-text {
  text-align: left;
  width: 100%;
  margin-bottom: 2.5rem;
  transform: skewY(-3deg);
}

/* Main Headline */
.banner-block-headline {
  margin: 0;
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 1.05;
  text-transform: uppercase;
  color: #fff;
  filter: drop-shadow(0 6px 10px rgba(0, 0, 0, 0.2));
}

/* Sub-headline */
.banner-block-subheadline {
  margin: 0.5rem 0 0 0;
  font-weight: 400;
  letter-spacing: 0.12em;
  line-height: 1.1;
  text-transform: uppercase;
  color: #1a1a1a;
  opacity: 0.95;
}

/* 6. Circular Product Image Area */
.banner-block-product {
  position: relative;
  flex-shrink: 0;
  width: 18rem;
  height: 18rem;
}

/* The circular mask */
.banner-block-product-circle {
  width: 100%;
  height: 100%;
  border-radius: 9999px;
  overflow: hidden;
  border: 4px solid #ffffff;
  background-color: #111111;
  position: relative;
  cursor: pointer;
}

/* Product image */
.banner-block-product-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 700ms ease;
}

.banner-block-product-circle:hover .banner-block-product-image {
  transform: scale(1.1);
}

/* 7. Pave+ Badge Inside the Circle */
.banner-block-badge {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 22%;
  background-color: #111111;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding-bottom: 0.75rem;
  z-index: 10;
  transform: skewY(-3deg);
  border-top: 1px solid #222;
}

.banner-block-badge-logo {
  display: flex;
  align-items: center;
  color: #ffffff;
  font-family: 'Bebas Neue', sans-serif;
  font-size: 2.25rem;
  font-style: italic;
  letter-spacing: 0.05em;
  line-height: 1;
}

.banner-block-badge-plus {
  color: #F3B52A;
  font-size: 1.5rem;
  margin-left: 0.25rem;
  margin-top: 0.25rem;
  font-style: normal;
}

.banner-block-badge-text {
  font-size: 0.65rem;
  color: #9ca3af;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  margin-top: 0.25rem;
  font-family: 'Roboto', sans-serif;
}

.banner-block-product-placeholder {
  width: 100%;
  height: 100%;
  border-radius: 9999px;
  background: rgba(0, 0, 0, 0.25);
  border: 2px dashed rgba(255, 255, 255, 0.7);
}


/* <= 1199px: scale typography down */
@media (max-width: 1199px) {
  .banner-block-headline {
    font-size: clamp(2.1rem, 5vw, 3.25rem);
  }

  .banner-block-subheadline {
    font-size: clamp(1.05rem, 2.6vw, 1.6rem);
  }
}

/* 767px–875px: reduce circle so it stays inside */
@media (min-width: 767px) and (max-width: 875px) {
  .banner-block-product {
    width: 18rem;
    height: 18rem;
    margin-top: -3rem;
    margin-bottom: -3rem;
    transform: none;
  }
}

/* <= 767px: stack reversed + add gap */
@media (max-width: 767px) {
  .banner-block-content {
    flex-direction: column-reverse;
    gap: 15px;
  }

  .banner-block-text {
    margin-bottom: 0;
  }
}

/* Desktop Layout - Breaking the circle out of the bounds */
@media (min-width: 768px) {

  .banner-block {
    padding-top: 3rem;
    padding-bottom: 3rem;
  }

  .banner-block-content {
    flex-direction: row;
    align-items: center;

  }

  .banner-block-text {
    width: 60%;
    margin-bottom: 0;
  }

  /* * By simply making the circle huge (26rem), it automatically becomes
   * much taller than the yellow strip (which is restricted to the middle),
   * creating the exact overlap effect from the screenshot without negative margins!
   */
  .banner-block-product {
    /* Make the circle huge */
    width: 28rem;
    height: 28rem;
    /* Use negative margins to pull the circle outside the top and bottom of the yellow banner */
    margin-top: -6rem;
    margin-bottom: -6rem;
    transform: translateX(1rem);
  }
}
