.cpn.v2 {
  --flx-gap: .89rem;


  /* -- Featured card ------------------------ */

  .cpn-feat {

    .cpn-feat-img {
      flex-shrink: 0;

      img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
        max-height: 22rem;
      }
    }

    .cpn-feat-bdy {
      flex: 1;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
    }

    .cpn-bdg {
      display: inline-block;
      padding: 0.25em 0.9em;
      border-radius: 99px;
      border: 1px solid hsl(from var(--bdr-clr) h s l / 0.4);
      font-size: 0.88rem;
      background-color: hsl(from var(--text-color) h s l / 0.2);
      color: var(--text-color);
    }

    .cpn-feat-ttl {
      color: var(--text-color);
      font-size: 1.25rem;
      font-weight: bold;
    }

    .cpn-feat-exp {
      opacity: 0.5;
      font-size: 0.875rem;
    }
  }

  /* -- Stacked coupon list ------------------ */
  &:not(:has(.cpn-feat)) .cpn-lst {
    @media screen and (min-width:1280px) {
      flex-direction: row;
    }
  }

  .cpn-lst {
    align-items: stretch;

     div.cpn-lyt {
        &::after {
          display: none;
        }    
    }  

    .cpn-itm {
      flex: 1;
      display: flex;
      flex-direction: column;
      padding: 0;

      &::after {
        border-style: none;
      }

      .cpn-lyt {
        flex: 1;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        gap: 1rem;
      }

      .ttl {
        color: var(--buttons);
        font-style: normal;
        display: block;
        margin-top: 0.25rem;
      }

      .dsc {
        opacity: 0.7;
        margin-top: 0.4rem;
      }


      .act {
        justify-content: center;
        gap: var(--grd-sp);

        a {
          color: var(--title-color);
          font-size: 0.9rem;
          white-space: nowrap;
        }

        svg {
          font-size: var(--cpn-act-icn-s);
        }
      }
    }
  }

}
