
.dlsCardField {
  position: relative;
  visibility: hidden;
}

.dlsCardField .dlsCardFieldFront,
.dlsCardField .dlsCardFieldBack {
  backface-visibility: hidden;
  background-repeat: no-repeat;
  background-size: contain;
  border-radius: inherit;
  box-sizing: content-box;
  display: block;
  height: 100%;
  position: absolute;
  transition: transform 0.8S ease-out;
  visibility: visible;
  width: 100%;
}

@media (prefers-reduced-motion) {  .dlsCardField .dlsCardFieldFront,
.dlsCardField .dlsCardFieldBack {
    transition: transform 0s;
  }
}

.dlsCardField .dlsCardFieldFront img,
.dlsCardField .dlsCardFieldBack img {
  position: absolute;
}

.dlsCardField .dlsCardFieldFront::before,
.dlsCardField .dlsCardFieldBack::before {
  background-color: rgba(0, 0, 0, 0.4);
  border-radius: inherit;
  bottom: 0;
  content: "";
  display: block;
  left: 0;
  opacity: 0;
  position: absolute;
  right: 0;
  top: 0;
  transition: opacity 0.25S ease-out;
}

.dlsCardField .dlsCardFieldBack {
  transform: rotateY(180deg);
}

.dlsCardField .dlsCardFieldBack::before {
  opacity: 1;
}

.dlsCardField .dlsCardFieldBack .dlsCardFieldNumber {
  opacity: 0.2;
  color: #000;
  text-shadow: 1px 1px #fff;
  right: 14%;
  transform: scaleX(-1);
}

.dlsCardField .dlsCardFieldFront {
  background-image: inherit;
}

.dlsCardField.dlsCardFieldFocusReverse .dlsCardFieldFront {
  transform: rotateY(-180deg);
}

.dlsCardField.dlsCardFieldFocusReverse .dlsCardFieldBack {
  transform: rotateY(0deg);
}

.dlsCardFieldFocus .dlsCardFieldFront::before {
  opacity: 1;
}

.dlsCardFieldNumber, .dlsCardFieldCid, .dlsCardFieldCsc {
  display: block;
  font-family: "amex-card-number";
  opacity: 0.6;
  position: absolute;
  transition: opacity 0.25S ease-out, transform 0.25S ease-out;
  white-space: nowrap;
}

@media (prefers-reduced-motion) {  .dlsCardFieldNumber, .dlsCardFieldCid, .dlsCardFieldCsc {
    transition: opacity 0.25S ease-out, transform 0s;
  }
}

.dlsCardFieldNumber {
  color: #c8c9c7;
  font-size: 1em;
  text-align: center;
  top: 50%;
  width: 100%;
}

.dlsCardFieldCid {
  color: #c8c9c7;
  font-size: 0.75Em;
  right: 4%;
  top: 37%;
}

.dlsCardFieldCsc {
  color: #f7f8f9;
  font-size: 0.5Em;
  left: 66%;
  top: 39.9%;
}

.dlsCardFieldFocusNumber .dlsCardFieldNumber {
  opacity: 1;
  transform: scale(1.05);
}

.dlsCardFieldFocusCid .dlsCardFieldCid {
  opacity: 1;
  transform: scale(1.05);
}

.dlsCardFieldFocusCsc .dlsCardFieldCsc {
  opacity: 1;
  transform: scale(1.05);
}

.dlsCardField:not(.dlsCardFieldFocus).dlsCardFieldHasNumber .dlsCardFieldFront .dlsCardFieldNumber {
  opacity: 1 !important;
}

.dlsCardField:not(.dlsCardFieldFocus).dlsCardFieldHasCid .dlsCardFieldCid {
  opacity: 1;
}