/* =========================
   card.css — Observ Cards UI (universal)
   ========================= */

:root{
  --card-bg: rgba(0,0,0,.16);
  --card-stroke: rgba(255,255,255,.10);
  --card-hover: rgba(122,167,255,.35);
  --card-radius: 18px;
  --card-shadow: 0 10px 34px rgba(0,0,0,.35);

  --media-h-desktop: 260px;
  --media-h-tablet:  230px;
  --media-h-mobile:  220px;

  --pad: 14px;
  --gap: 18px;
}

/* Cards container */
.cards{
  display:flex;
  flex-direction:column;
  gap: var(--gap);
}

/* Optional: grid mode */
.cards.cards--grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 12px;
}

/* One card */
.card{
  border-radius: var(--card-radius);
  border: 1px solid var(--card-stroke);
  background: var(--card-bg);
  box-shadow: var(--card-shadow);
  overflow:hidden;
  transition: transform .12s ease, border-color .12s ease;
}
.card:hover{
  transform: translateY(-1px);
  border-color: var(--card-hover);
}

/* Media */
.card-media-wrap{
  background: rgba(0,0,0,.22);
  overflow:hidden;
  border-radius: 14px;
}

.card-media{
  display:block;
  width:100%;
  height: var(--media-h-desktop);
  object-fit: cover;
}

.card-media-empty{
  display:flex;
  height: var(--media-h-desktop);
  align-items:center;
  justify-content:center;
  color: rgba(234,240,255,.6);
}

/* ✅ Image credit BELOW image (as requested) */
.img-credit{
  margin-top: 6px;
  color: rgba(234,240,255,.70);
  font-size: 11.5px;
  line-height: 1.35;
  overflow:hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Body */
.card-body{
  padding: var(--pad);
}

.card-title{
  margin:0 0 10px;
  font-size: 15px;
  line-height: 1.25;
  color: rgba(234,240,255,.94);
}

.card-summary{
  margin:0 0 12px;
  font-size: 13.2px;
  color: rgba(234,240,255,.76);
  line-height: 1.55;
}

/* Fact */
.card-fact{
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid rgba(255,255,255,.08);
  color: rgba(234,240,255,.86);
  font-size: 13px;
  line-height: 1.5;
}

/* ✅ meta row like: group:category ........ date */
.card-meta-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  margin-top: 12px;
  font-size: 11.5px;
  color: rgba(234,240,255,.58);
}
.card-meta-left{
  min-width:0;
  overflow:hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.card-meta-right{
  flex:0 0 auto;
  opacity:.85;
}

/* Actions */
.card-actions{
  display:flex;
  gap:10px;
  align-items:center;
  justify-content:flex-end;
  margin-top: 10px;
}

/* Buttons */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 9px 12px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.05);
  color: rgba(234,240,255,.92);
  text-decoration:none;
  font-size: 13px;
  cursor:pointer;
  transition: .15s ease;
}
.btn:hover{
  border-color: rgba(122,167,255,.45);
  background: rgba(122,167,255,.12);
}

/* Full article variant */
.card--article .card-body{ padding: 16px; }
.card--article .card-title{ font-size: 18px; line-height: 1.25; }
.card--article .card-summary{ font-size: 14px; line-height: 1.7; }

/* Info card (About / Contact) */
.card--info .card-title{ font-size: 16px; }
.card--info .card-summary{ margin-bottom: 0; }
.card--info .info-block{
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(255,255,255,.08);
  color: rgba(234,240,255,.80);
  line-height: 1.7;
  font-size: 13.6px;
}

/* Form elements inside cards */
.card .field{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin: 12px 0;
}
.card label{
  font-size: 12px;
  color: rgba(234,240,255,.72);
}
.card input, .card textarea{
  width: 100%;
  padding: 11px 12px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(0,0,0,.22);
  color: rgba(234,240,255,.92);
  outline: none;
}
.card input:focus, .card textarea:focus{
  border-color: rgba(122,167,255,.45);
  background: rgba(0,0,0,.28);
}

/* Responsive */
@media (max-width: 1024px){
  .card-media, .card-media-empty{ height: var(--media-h-tablet); }
  .cards.cards--grid{ grid-template-columns: 1fr; }
}
@media (max-width: 860px){
  :root{ --gap: 16px; }
  .card-media, .card-media-empty{ height: var(--media-h-mobile); }
  .card-actions{ justify-content: stretch; }
  .btn{ width: 100%; }
}