/* ==========================================================================
   PCR — REALISATIONS CARD (PRO) — FULL TOKENS
   Dépend : variables.css + main.css
   Objectifs :
   - Vignette paysage (ratio stable) au-dessus
   - Badge type overlay top-left sur l’image
   - Card premium : hover, border, shadow, lisibilité
   ========================================================================== */

.pcr-realCard{
  position: relative;
  display: flex;
  flex-direction: column;

  border-radius: var(--pcr-radius-xl);
  border: 1px solid var(--pcr-color-border);
  background: color-mix(in srgb, var(--pcr-color-surface) 92%, transparent);

  overflow: hidden;
  box-shadow: var(--pcr-shadow-sm);

  transition:
    transform var(--pcr-dur) var(--pcr-ease),
    box-shadow var(--pcr-dur) var(--pcr-ease),
    border-color var(--pcr-dur) var(--pcr-ease);
}

.pcr-realCard:hover{
  transform: translateY(-2px);
  border-color: color-mix(in srgb, var(--pcr-color-border) 55%, var(--pcr-color-heading) 45%);
  box-shadow: var(--pcr-shadow-md);
}

/* MEDIA (image paysage) */
.pcr-realCard__media{
  position: relative;
  display: block;
  width: 100%;

  aspect-ratio: 16 / 9;

  background: color-mix(in srgb, var(--pcr-color-surface-2) 86%, transparent);
  overflow: hidden;
  text-decoration: none;
}

.pcr-realCard__img,
.pcr-realCard__media img{
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;

  transform: scale(1.01);
  transition:
    transform var(--pcr-dur-slow) var(--pcr-ease),
    filter var(--pcr-dur-slow) var(--pcr-ease);
}

.pcr-realCard:hover .pcr-realCard__media img,
.pcr-realCard:hover .pcr-realCard__img{
  transform: scale(1.06);
  filter: saturate(1.05) contrast(1.03);
}

/* Overlay léger pour lisibilité du badge */
.pcr-realCard__media::after{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(0,0,0,.38), rgba(0,0,0,.08) 44%, rgba(0,0,0,0));
}

/* Fallback sans image */
.pcr-realCard__mediaFallback{
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  text-align: center;
  padding: var(--pcr-space-5);

  color: color-mix(in srgb, var(--pcr-color-text) 70%, transparent);
  background:
    radial-gradient(circle at 18% 22%, var(--pcr-color-primary-soft), transparent 52%),
    radial-gradient(circle at 82% 18%, var(--pcr-color-secondary-soft), transparent 56%),
    linear-gradient(180deg, rgba(0,0,0,.14), rgba(0,0,0,.28));
}

html[data-theme="light"] .pcr-realCard__mediaFallback{
  background:
    radial-gradient(circle at 18% 22%, var(--pcr-color-primary-soft), transparent 52%),
    radial-gradient(circle at 82% 18%, var(--pcr-color-secondary-soft), transparent 56%),
    linear-gradient(180deg, rgba(255,255,255,.88), rgba(255,255,255,.70));
}

/* BADGE (type) TOP-LEFT SUR IMAGE */
.pcr-realCard__badge{
  position: absolute;
  top: var(--pcr-space-4);
  left: var(--pcr-space-4);
  z-index: 2;

  display: inline-flex;
  align-items: center;
  gap: var(--pcr-space-2);

  padding: 7px 12px;
  border-radius: var(--pcr-radius-sm);

  font-size: var(--pcr-text-sm);
  font-weight: var(--pcr-weight-semibold);
  letter-spacing: .01em;

  color: color-mix(in srgb, var(--pcr-color-text) 92%, transparent);
  background: color-mix(in srgb, var(--pcr-color-surface) 58%, transparent);
  border: 1px solid color-mix(in srgb, var(--pcr-color-border) 70%, transparent);
  backdrop-filter: blur(8px);

  box-shadow: var(--pcr-shadow-sm);
}

html[data-theme="light"] .pcr-realCard__badge{
  color: color-mix(in srgb, var(--pcr-color-text) 86%, transparent);
  background: color-mix(in srgb, var(--pcr-color-surface-2) 70%, transparent);
  border-color: color-mix(in srgb, var(--pcr-color-border) 85%, transparent);
  box-shadow: none;
}

/* BODY (titre + meta) */
.pcr-realCard__body{
  padding: var(--pcr-space-6);
  display: flex;
  flex-direction: column;
  gap: var(--pcr-space-3);
}

.pcr-realCard__title{
  margin: 0;
  font-family: var(--pcr-font-heading);
  font-size: clamp(18px, 1.4vw, 22px);
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: var(--pcr-color-heading);
}

.pcr-realCard__titleLink{
  color: var(--pcr-color-heading);
  text-decoration: none;
  transition: color var(--pcr-dur-fast) var(--pcr-ease);
}

.pcr-realCard__titleLink:hover{
  color: var(--pcr-link-hover);
  text-decoration: underline;
}

.pcr-realCard__meta{
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: var(--pcr-space-3);

  font-family: var(--pcr-font-body);
  font-size: var(--pcr-text-sm);
  color: color-mix(in srgb, var(--pcr-color-text) 76%, transparent);
}

.pcr-realCard__pin{
  display: inline-flex;
  width: 22px;
  height: 22px;
  align-items: center;
  justify-content: center;

  border-radius: var(--pcr-radius-sm);
  border: 1px solid var(--pcr-color-border);
  background: color-mix(in srgb, var(--pcr-color-surface-2) 78%, transparent);
}

/* ACCESSIBILITY / FOCUS */
.pcr-realCard__media:focus-visible,
.pcr-realCard__titleLink:focus-visible{
  outline: none;
  box-shadow: var(--pcr-focus-ring);
  border-radius: var(--pcr-radius-lg);
}

/* RESPONSIVE */
@media (max-width: 640px){
  .pcr-realCard{
    border-radius: var(--pcr-radius-lg);
  }
  .pcr-realCard__body{
    padding: var(--pcr-space-5);
  }
  .pcr-realCard__badge{
    top: var(--pcr-space-3);
    left: var(--pcr-space-3);
    padding: 6px 10px;
  }
}
