.stack > * + * { margin-top: var(--space-4); }
.text-center { text-align: center; }
.muted { color: var(--color-text-secondary); }
.soft { color: var(--color-text-soft); }

/* ===== Iconos SVG (sustituyen a los emojis) ===== */
.ic { width: 1.25em; height: 1.25em; display: inline-block; vertical-align: -.2em; flex: 0 0 auto; }
.ic--lg { width: 1.6em; height: 1.6em; }

/* ===== Tarjeta premium con elevación ===== */
.card {
  position: relative;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  padding: var(--space-6);
  transition: transform var(--transition-base), box-shadow var(--transition-base);
}
/* Hilo dorado superior */
.card::before {
  content: ""; position: absolute; top: 0; left: var(--space-6); right: var(--space-6); height: 2px;
  background: var(--gradient-gold); opacity: 0; border-radius: 2px;
  transition: opacity var(--transition-base);
}
.card--interactive:hover { transform: translateY(-3px); box-shadow: var(--shadow-elevated); }
.card--interactive:hover::before { opacity: .85; }

/* Encabezado de sección con icono en "medallón" */
.section-head { display: flex; align-items: center; gap: var(--space-3); margin-bottom: var(--space-2); }
.section-head h2 { margin: 0; }
.medallion {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: var(--radius-md); flex: 0 0 auto;
  background: linear-gradient(135deg, rgba(224,164,88,.22), rgba(199,93,82,.16));
  color: var(--color-primary-dark);
  border: 1px solid var(--color-border-strong);
}
.medallion .ic { width: 22px; height: 22px; }

/* Badge */
.badge {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 12px; font-weight: var(--font-weight-semibold);
  color: var(--color-gold-deep);
  background: rgba(224,164,88,.16);
  border: 1px solid rgba(206,154,78,.4);
  padding: 2px 10px; border-radius: var(--radius-full);
}

/* Eyebrow / kicker editorial */
.eyebrow {
  text-transform: uppercase; letter-spacing: .16em; font-size: 12px;
  font-weight: var(--font-weight-semibold); color: var(--color-gold-deep);
  margin: 0 0 var(--space-2);
}

/* Checkbox con etiqueta */
.check { display: flex; align-items: center; gap: var(--space-2); font-weight: var(--font-weight-semibold); cursor: pointer; }
.check input[type="checkbox"] { width: 20px; height: 20px; accent-color: var(--color-primary); flex: 0 0 auto; }

/* Avisos */
.aviso { padding: var(--space-3) var(--space-4); border-radius: var(--radius-md); margin-bottom: var(--space-4); font-weight: var(--font-weight-medium); }
.aviso--ok { background: #e9f4ee; color: #2f6b4c; border: 1px solid #cbe7d6; }
.aviso--error { background: #fbeae8; color: var(--color-primary-deep); border: 1px solid #f3cfc9; }
