.cards {
  --card-profile-desktop-width: 270px;
  --card-profile-image-width: 238px;

  --carousel-partner-small-height: 80px;
  --carousel-partner-small-width: 172px;

  --carousel-partner-large-desktop-width: 270px;
  --carousel-partner-large-tablet-width: 136px;
  --carousel-partner-large-mobile-width: 156px;

  --card-background-light-left: linear-gradient(143deg, rgba(255, 255, 255, 0.00) 76.77%, rgba(0, 212, 166, 0.20) 100%), #F1F4F8;
  --card-background-light-left-hover: linear-gradient(143deg,rgba(255, 255, 255, 0.00) 60%,rgba(0, 212, 166, 0.20) 100%),#F1F4F8;
  --card-background-light-right: linear-gradient(217deg, rgba(255, 255, 255, 0) 76.77%, rgba(0, 212, 166, 0.20) 100%), #F1F4F8;
  --card-background-dark: linear-gradient(180deg, #12498A 0%, #051324 100%);
}

.cards>ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: nowrap;
  overflow: hidden;
}

.cards>ul>li {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 0;
  border-radius: var(--corner-radius-cr-4);
}

.cards .card-image {
  overflow: hidden;
  aspect-ratio: 1 / 1;
}

.cards .card-image img {
  border-radius: var(--corner-radius-cr-2);
}

.cards .card-content-container {
  flex-grow: 1;
}

.cards .card-description {
  font-size: var(--scale-paragraph-large);
  line-height: var(--paragraph-large-line-height);
  margin-bottom: var(--size-16);
  height: auto;
  pointer-events: none;
}

.cards .card-description ul {
    margin: 0;
    padding-left: var(--size-24);
}

/* Styles for profile card variant */
.cards.profile-cards .card-container {
  position: absolute;
  inset: 0;
  z-index: 1;
}

.cards.profile-cards > ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: center;
  gap: var(--size-16);
  row-gap: var(--size-16);
  flex-wrap: wrap;
  width: 100%;
}

.cards.profile-cards > ul > li {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  height: 100%;
  padding-bottom: 0;
  border-radius: var(--corner-radius-cr-4);
  background: var(--card-background-light-left);
  max-width: var(--card-profile-desktop-width);
  width: 100%;
  aspect-ratio: 2 / 3;
  border-bottom-right-radius: 0;
}

.cards.profile-cards > ul > li:hover {
  background: var(--card-background-light-left-hover)
}

.cards.profile-cards > ul > li.card-item .card-image img:hover {
  scale: 1.1;
}

.cards.profile-cards .card-image {
   overflow: visible;
   border-radius: var(--corner-radius-cr-2);
}

.cards.profile-cards .card-image img {
  line-height: 0;
  align-self: stretch;
  overflow: hidden;
  width: 100%;
  object-fit: cover;
  scale: 1;
  transition: 1s scale;
}

.cards.profile-cards > ul > li.card-item {
  transition: aspect-ratio 0.3s ease-in-out;
  aspect-ratio: 2 / 1;
  background: transparent;
}

.cards.profile-cards > ul > li.card-item:hover {
  background: transparent;
}

.cards.profile-cards > ul > li.card-item.expand {
  aspect-ratio: 2 / 3;
} 

.cards.profile-cards > ul > li.card-item .card-image {
  height: 0;
  opacity: 0;
  overflow: hidden;
  transform-origin: top;
  width: 100%;

  transition:
    height 0.3s ease-in-out,
    opacity 0.3s ease-in-out 0.1s;
}

.cards.profile-cards > ul > li.card-item.expand .card-image {
  height: var(--card-profile-image-width);
  opacity: 1;
}

.cards.profile-cards > ul > li.card-item .card-image img {
  opacity: 0;
  transform-origin: top;
  height: 100%;
  width: 100%;
  object-fit: cover;
  transition: opacity 0.6s ease-in-out, scale 1s;
}

.cards.profile-cards > ul > li.card-item.expand .card-image img {
  opacity: 1;
}

.cards.profile-cards > ul > li.card-item.no-image {
  transition: aspect-ratio 0.3s ease-in-out;
  aspect-ratio: 2 / 3;
  padding-top: 0;
}

.cards.profile-cards > ul > li.card-item.no-image.collapse {
  aspect-ratio: 2 / 1;
  opacity: 1;
} 

.cards.profile-cards > ul > li.card-item.no-image .card-image {
  transform: scaleY(1);   
  opacity: 1;
  height: var(--card-profile-image-width);
  overflow: hidden;
  transform-origin: top;

  transition:
    height 0.3s ease-in-out,
    transform 0.3s ease-in-out,
    opacity 0.3s ease-in-out 0.1s;
}

.cards.profile-cards > ul > li.card-item.no-image.collapse .card-image {
  transform: scaleY(0);
  opacity: 0;
  height: 0;
}

.cards.profile-cards .card-heading {
  margin-top: var(--size-16);
  font-size: var(--scale-paragraph-large);
  line-height: var(--paragraph-large-line-height);
  margin-bottom: var(--size-16);
  font-weight: var(--font-weight-bold);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
}

.cards.profile-cards .card-description {
  margin-bottom: var(--size-16);
  pointer-events: unset;
  font-size: var(--scale-paragraph-small);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3; 
  line-clamp: 3;
  overflow: hidden;
  text-overflow: ellipsis;
}

.cards.profile-cards .card-content-container {
  padding: var(--gap-padding-162-x, 16px);
}
.cards.profile-cards .card-content-container p {
  margin-top: 0;
  margin-bottom: 0;
  font-size: var(--scale-paragraph-small);
  line-height: var(--paragraph-small-line-height);
  color: var(--text-primary);
  text-align: left;
}

.cards.profile-cards .card-cta {
  position: absolute;
  bottom: 0;
  right: 0;
  padding-top: var(--size-4);
  padding-left: var(--size-4);
  border-top-left-radius: var(--corner-radius-cr-2);
  margin: 0;
  z-index: 1;
}

.cards.profile-cards .card-item {
  display: block;
  width: 100%;
  height: 100%;
}

.cards.profile-cards .card-item::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: var(--corner-radius-cr-4);
  border-bottom-right-radius: 0;
  background: var(--card-background-light-left);
  pointer-events: none;
  z-index: 0;
}

.cards.profile-cards > ul > li.card-item:hover::before {
  background: var(--card-background-light-left-hover);
}

.cards.profile-cards .card-cta a {
  height: var(--size-24);
  width: var(--size-24);
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  aspect-ratio: 1 / 1;
  background-color: var(--color-teal-500);
  border-radius: var(--corner-radius-cr-2);
  padding: var(--size-2);
  margin: 0;
}

.cards.profile-cards .card-cta a:hover {
  background-color: var(--color-teal-300);
  text-decoration: none;
}

.cards.profile-cards .card-item:not(:has(.card-cta)) {
  border-bottom-right-radius: var(--corner-radius-cr-4);
}


.cards.profile-cards .card-cta a::before {
  content: "";
  display: block;
  width: var(--size-18);
  height: var(--size-18);
  mask-image: url(./../../icons/arrow-outward.svg);
  mask-repeat: no-repeat;
  mask-size: contain;
  background-color: var(--color-blue-brand);
}

/* Styles for partner showcase variants */
.cards.partner-showcase ul {
  display: flex;
  padding: 0;
  margin: 0;
  list-style: none;
  gap: var(--size-16);
  row-gap: var(--size-24);
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  width: 100%;
}

.cards.partner-showcase > ul > li  {
  border-radius: var(--corner-radius-cr-4);
  flex: calc(50% - var(--size-16));
  display: flex;
  justify-content: center;
  align-items: center;
  aspect-ratio: 1 / 1;
  background: var(--card-background-light-left);
  min-height: unset;
}

.cards.partner-showcase .card-inner-container {
  transition: transform 0.7s ease-in-out;
  transform-origin: center, center;
  transform-style: preserve-3d;
  position: relative;
  aspect-ratio: 3/4;
  z-index: 1;
  width: 100%;
  border-radius: var(--corner-radius-cr-3);
}

.cards.partner-showcase .card-container {
  perspective: 1000px;
  width: 100%;
  height: 100%;
}

.cards.partner-showcase.partner-showcase-mobile-tablet .card-container[data-redirect-link] {
  cursor: pointer;
}

.cards.partner-showcase .card-content-container,
.cards.partner-showcase .card-flip-content-container {
  backface-visibility: hidden;
  position: absolute;
  width: 100%;
  height: 100%;
  padding: var(--size-16);
  padding-bottom: 0;
  transition: opacity 1s ease;
  border-radius: var(--corner-radius-cr-3);
}

.cards.partner-showcase .card-content-container {
  opacity: 1;
}

.cards.partner-showcase .card-flip-content-container {
  transform: rotateY(180deg);
  background: var(--card-background-light-right);
  width: 100%;
  height: 100%;
  opacity: 0;
}

.cards.partner-showcase .card-flip-content-container .card-description {
  color: var(--text-primary);
  font-size: var(--scale-paragraph);
  margin-top: 0;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  text-overflow: ellipsis;
  overflow: hidden;
}

.cards.partner-showcase .card-flip-content-container .card-description p {
  margin-top: 0;
}

.cards.partner-showcase .card-inner-container {
  aspect-ratio: 1/1;
  width: 100%;
  height: auto;
  min-width: auto;
}

.cards.partner-showcase .card-image {
  border-radius: var(--corner-radius-cr-4);
}

.cards.partner-showcase .card-image picture {
  display: flex;
  flex-direction: column;
  height: auto;
  width: 100%;
  justify-content: center;
  align-items: center;
  border-radius: var(--corner-radius-cr-4);
  background: none;
}

.cards.partner-showcase .card-image img  {
  max-width: 100%;
  max-height: 100%;
  object-fit: cover;
  aspect-ratio: 1 / 1;
  background: none;
}

.cards.partner-showcase .card-content-container .button-container {
  margin: 0;
}

.cards.partner-showcase .card-flip-content-container .card-flip-cta {
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  align-items: baseline;
  gap: var(--size-4);
  font-size: var(--scale-paragraph);
  line-height: var(--paragraph-line-height);
}

.cards.partner-showcase .card-flip-content-container .card-flip-cta::after {
  all: unset;
  content: "";
  display: block;
  width: var(--size-18);
  height: var(--size-18);
  mask-image: url(./../../icons/arrow-outward.svg);
  mask-repeat: no-repeat;
  mask-size: contain;
  background-color: var(--color-blue-link);
  position: relative;
  top: var(--size-4);
}

.cards.partner-showcase .card-flip-content-container .card-flip-cta a {
  background-color: transparent;
  padding: 0;
  border-radius: 0;
  box-shadow: none;
  position: relative;
  text-decoration: none;
  color: var(--color-blue-link)
}

.cards.partner-showcase .card-flip-content-container a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  height: var(--size-2);
  width: 100%;
  background: var(--color-mint-brand);
  mask: none;

  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.3s ease;
}

.cards.partner-showcase .card-flip-content-container a:hover::after {
  transform: scaleX(1);
}

.cards.partner-showcase .card-flip-content-container a:hover{
  font-weight: var(--font-weight-semibold);
}

.cards.partner-showcase .cards-list .card-item {
  max-height: var(--carousel-partner-large-mobile-width);
  max-width: var(--carousel-partner-large-mobile-width);
}

/* Tablet */
@media (min-width: 600px) {
  .cards.partner-showcase .card-flip-content-container {
    padding: var(--size-16);
  }
}

/* Desktop */
@media (min-width: 900px) {
  .cards.partner-showcase .cards-list .card-item  {
    max-height: var(--carousel-partner-large-desktop-width);
    max-width: var(--carousel-partner-large-desktop-width);
    flex: 0 0 calc(25% - var(--size-16));
  }

  .cards.partner-showcase .card-container:hover .card-inner-container {
    transform: rotateY(180deg);
  }

  .cards.partner-showcase .card-container:hover .card-flip-content-container {
    opacity: 1;
  }

  .cards.partner-showcase .card-container:hover .card-content-container {
    opacity: 0;
  }

  .cards.partner-showcase .card-flip-content-container .card-description {
    -webkit-line-clamp: 7;
    line-clamp: 7;
  }

  .cards.partner-showcase .card-flip-content-container {
    padding: var(--size-24);
  }
}

/* Partner Grid Variant */

.cards.partner-grid .card-container {
  height: 100%;
  width: 100%;
  aspect-ratio: 1 / 1;
}

.cards.partner-grid .card-image {
  border-radius: var(--corner-radius-cr-4);
  background: var(--color-white);
}

.cards.partner-grid .card-image img  {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  aspect-ratio: 1 / 1;
  transform: scale(0.95);
  height: 100%;
}

.cards.partner-grid .card-image picture > img:hover {
  transform: scale(1);
  transition: transform .3s ease;
  cursor: pointer;
  }

  .cards.partner-grid > ul {
  display: flex;
  flex-wrap: wrap;
  gap: var(--size-24);
  width:100%;
  justify-content: center;
}

.cards.partner-grid > ul > li  {
  min-height: var(--carousel-partner-large-mobile-width);
  max-width: var(--carousel-partner-large-mobile-width);
  padding: var(--size-16);
  border-radius: var(--corner-radius-cr-4);
  background-color: var(--color-white);
  flex: calc(50% - var(--size-16));
  display: flex;
  justify-content: center;
  align-items: center;
  aspect-ratio: 1 / 1;
}

@media (min-width: 600px){
  .cards.partner-grid > ul > li  {
    min-height: var(--carousel-partner-large-tablet-width);
    max-width: var(--carousel-partner-large-tablet-width);
    flex: calc(33% - var(--size-16));
  }
}

@media (min-width: 900px) {
  .cards.partner-grid > ul > li  {
    min-height: var(--carousel-partner-large-desktop-width);
    max-width: var(--carousel-partner-large-desktop-width);
    flex: calc(25% - var(--size-16));
  }
}

/* Carousel Partner Variant - Small */
.cards.partner-grid.small > ul {
  gap: var(--size-16);
}

.cards.partner-grid.small > ul > li  {
  max-width: var(--carousel-partner-small-width);
  min-height: var(--carousel-partner-small-height);
  flex: calc(50% - var(--size-16));
  aspect-ratio: 2 / 1;
  padding: var(--size-8);
}

.cards.partner-grid.small .card-container {
  width: 100%;
  height: 100%;
  aspect-ratio: 2 / 1;
}

.cards.partner-grid.small .card-inner-container {
  height: 100%;
  width: 100%;
  display: flex;
}

.cards.partner-grid.small .card-image {
  width: 100%;
  height: 100%;
  aspect-ratio: 2 / 1;
}

.cards.partner-grid.small .card-image img {
  width: 100%;
  height: 100%;
  max-height: var(--carousel-partner-small-height);
  aspect-ratio: 2 / 1;
  object-fit: contain;
}

@media (min-width: 600px) {
  .cards.partner-grid.small > ul > li {
    flex: calc(33% - var(--size-16));
  } 
}

@media (min-width: 900px) {
  .cards.partner-grid.small > ul > li {
    flex: calc(16.66% - var(--size-16));
  }
}

/* Text color overrides for sections with light text */
main .section[data-text-color='section-text-light'] .cards * {
  color: var(--color-charcoal-brand);
}

main .section[data-text-color='section-text-light'] .cards a {
  color: var(--color-blue-link);
  text-decoration: underline;
}
/* Template overrides for profile cards */
.template-right-column .cards.profile-cards > ul > li.card-item.expand,
.template-left-column .cards.profile-cards > ul > li.card-item.expand {
  aspect-ratio: unset;
} 
