/* ==========================================
   STD-CARD: Standard V3 card visual
   Reusable component for card preview
   Uses CSS variables for dynamic theming
   ========================================== */
:root {
  --card-bg: #004bb7;
  --card-text: #ffffff;
}

.std-card {
  width: 320px;
  aspect-ratio: 1.586;
  border-radius: 12px;
  background: var(--card-bg);
  color: var(--card-text);
  padding: 1rem 1.25rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  overflow: hidden;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
.std-card:after {
  content: "";
  position: absolute;
  top: -30%;
  right: -20%;
  width: 60%;
  height: 80%;
  background: rgba(255, 255, 255, 0.04);
  border-radius: 50%;
  pointer-events: none;
}

.std-card--has-bg {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.std-card__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
  z-index: 0;
}

.std-card__bg-watermark {
  display: none;
  position: absolute;
  right: -10%;
  bottom: -15%;
  width: 55%;
  opacity: 0.08;
  pointer-events: none;
  z-index: 0;
}

.std-card__bg-watermark img {
  width: 100%;
  filter: brightness(0) invert(1);
}

.std-card__top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  position: relative;
  z-index: 1;
}

.std-card__logo-block {
  display: flex;
  flex-direction: column;
  gap: 2px;
  position: relative;
}

.std-card__logo {
  width: 110px;
}

.std-card__logo img {
  max-height: 35px;
  max-width: 110px;
}

.std-card__type {
  font-size: 0.6em;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  opacity: 0.7;
  position: absolute;
  right: 0;
  top: 80%;
}

.std-card__format {
  font-size: 0.65em;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  opacity: 0.85;
  background: rgba(255, 255, 255, 0.15);
  padding: 2px 8px;
  border-radius: 6px;
  align-self: flex-start;
}

.std-card__client {
  font-size: 0.85em;
  font-weight: 600;
  letter-spacing: 0.3px;
  position: relative;
  z-index: 1;
}

.std-card__bottom {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  position: relative;
  z-index: 1;
}

.std-card__number {
  font-family: "Courier New", Courier, monospace;
  font-size: 0.8em;
  letter-spacing: 1.5px;
  font-weight: 600;
}

.std-card__status {
  font-size: 0.6em;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  opacity: 0.7;
  margin-top: 2px;
}

.std-card__right {
  text-align: right;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
}

.std-card__balance {
  font-size: 1.4em;
  font-weight: 700;
  line-height: 1;
}

.std-card__cta {
  font-size: 0.65em;
  color: rgba(255, 255, 255, 0.8);
  text-decoration: none;
  font-weight: 600;
  letter-spacing: 0.3px;
}

.std-card__cta:hover {
  color: #fff;
  text-decoration: underline;
}

/* Sizes */
.std-card--sm {
  width: 220px;
  padding: 0.75rem 1rem;
  font-size: 0.85em;
}

.std-card--sm .std-card__logo img {
  max-height: 22px;
  max-width: 80px;
}

.std-card--sm .std-card__balance {
  font-size: 1.1em;
}

.std-card--sm .std-card__cta {
  font-size: 0.6em;
}

.std-card--lg {
  width: 380px;
}

@media (max-width: 575.98px) {
  .std-card {
    width: 100%;
  }
  .std-card--lg {
    width: 100%;
  }
}
