/* card.css — Visitenkarte 85x55 mm mit 3D-Flip, Front (Logo + Praegung) und Back (Daten) */

.vk-stage {
  perspective: 1500px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.vk-card {
  width: var(--vk-card-w, 85mm);
  height: var(--vk-card-h, 55mm);
  position: relative;
  transform-style: preserve-3d;
  transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
  border-radius: var(--vk-card-radius, 2mm);
  box-shadow: var(--vk-card-shadow);
  cursor: pointer;
  outline: none;
  background: var(--vk-front-bg, #ffffff);
}

.vk-card:focus-visible {
  outline: 2px solid var(--vk-app-accent);
  outline-offset: 4px;
}

.vk-card.is-flipped {
  transform: rotateY(180deg);
}

.vk-card.is-flipped .vk-card__face--front {
  display: none;
}

.vk-card__inner {
  width: 100%;
  height: 100%;
  position: relative;
  transform-style: preserve-3d;
}

.vk-card__face {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  overflow: hidden;
  padding: 5mm;
  display: flex;
}

.vk-card__face--front {
  background: var(--vk-front-bg, #ffffff);
  color: var(--vk-front-fg, #1a1a1a);
  font-family: var(--vk-front-font, "Inter", system-ui, sans-serif);
  align-items: center;
  justify-content: center;
  position: relative;
  display: flex;
}

.vk-front__bg {
  position: absolute;
  inset: 1.2mm;
  background-image: url("../assets/back-worldmap.svg");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  opacity: 0.24;
  filter: grayscale(1) contrast(1.05);
  pointer-events: none;
  z-index: 0;
}

.vk-card__face--back {
  background: var(--vk-back-bg, #ffffff);
  color: var(--vk-back-fg, #1a1a1a);
  font-family: var(--vk-back-font, "Inter", system-ui, sans-serif);
  transform: rotateY(180deg);
  flex-direction: column;
  justify-content: space-between;
  position: relative;
}

.vk-back__bg {
  position: absolute;
  inset: 1.2mm;
  background-image: url("../assets/back-worldmap.svg");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  opacity: 0.28;
  pointer-events: none;
  z-index: 0;
}

.vk-back__logo-watermark {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 50mm;
  height: 28mm;
  transform: translate(-50%, -50%);
  opacity: 0.16;
  pointer-events: none;
  z-index: 1;
}

.vk-back__logo-watermark svg,
.vk-back__logo-watermark img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.vk-logo-wrap {
  width: 78mm;
  height: 49mm;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 1;
}

.vk-logo {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.vk-logo-svg {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--vk-front-fg, #1a1a1a);
}

.vk-logo-svg svg {
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  fill: currentColor;
}

.vk-card__face--front .vk-logo-svg svg {
  transform: scale(1.1);
  transform-origin: center;
}

.vk-logo--png-embossed {
  filter:
    drop-shadow(0.6px 0.6px 0 rgba(255, 255, 255, 0.55))
    drop-shadow(-0.6px -0.6px 0 rgba(0, 0, 0, 0.45));
}

.vk-back {
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 2;
}

.vk-card__face--back::before,
.vk-card__face--back::after {
  content: "";
  position: absolute;
  pointer-events: none;
  z-index: 0;
}

.vk-card__face--back::before {
  left: -12mm;
  top: -6mm;
  width: 44mm;
  height: 70mm;
  background: linear-gradient(165deg, #114f8f 0%, #2db2df 60%, #66d9ee 100%);
  clip-path: polygon(0 0, 82% 0, 38% 52%, 100% 100%, 0 100%);
  opacity: 0.92;
}

.vk-card__face--back::after {
  left: -8mm;
  bottom: -9mm;
  width: 34mm;
  height: 42mm;
  background: #1c77b6;
  clip-path: polygon(0 0, 70% 0, 100% 30%, 45% 100%, 0 100%);
  opacity: 0.92;
}

.vk-back__content {
  position: absolute;
  right: 4mm;
  top: 4.6mm;
  bottom: 4.6mm;
  left: 36mm;
  display: flex;
  flex-direction: column;
  z-index: 2;
}

.vk-back__heading {
  display: flex;
  flex-direction: column;
  gap: 0.8mm;
}

.vk-back__name {
  font-size: 4.5mm;
  font-weight: 700;
  letter-spacing: 0.01em;
  line-height: 1.15;
  color: #25283a;
}

.vk-back__role {
  font-size: 2.4mm;
  opacity: 0.92;
  font-weight: 400;
  line-height: 1.2;
  color: #313649;
}

.vk-back__divider {
  width: 100%;
  height: 0.8mm;
  margin-top: 1.1mm;
  background: linear-gradient(90deg, #14538f 0 24%, #6f7fd4 24% 100%);
  border-radius: 99px;
}

.vk-back__rows {
  display: flex;
  flex-direction: column;
  gap: 2mm;
  margin-top: 3.2mm;
  flex: 1;
}

.vk-back__row {
  display: flex;
  align-items: flex-start;
  gap: 1.9mm;
}

.vk-back__icon {
  width: 6.2mm;
  height: 6.2mm;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 1.2mm;
  background: linear-gradient(180deg, #3ab2df, #1769ad);
  color: #ffffff;
  font-size: 3.4mm;
  font-weight: 700;
  line-height: 1.3;
}

.vk-back__row-lines {
  display: flex;
  flex-direction: column;
  gap: 0.2mm;
  color: #272b3e;
  min-width: 0;
}

.vk-back__phone,
.vk-back__email,
.vk-back__web,
.vk-back__addr1,
.vk-back__addr2 {
  font-size: 2.2mm;
  line-height: 1.22;
}

.vk-back__phone {
  font-variant-numeric: tabular-nums;
}

body[data-vk-bleed="1"] .vk-card::before {
  content: "";
  position: absolute;
  inset: -3mm;
  border: 0.15mm dashed color-mix(in srgb, var(--vk-front-fg, #1a1a1a) 55%, transparent);
  border-radius: calc(var(--vk-card-radius, 2mm) + 3mm);
  pointer-events: none;
  z-index: 1;
}

.vk-back__name:empty,
.vk-back__role:empty,
.vk-back__addr1:empty,
.vk-back__addr2:empty,
.vk-back__phone:empty,
.vk-back__email:empty,
.vk-back__web:empty {
  display: none;
}
