:root{
  --esh-title-size:18px;
  --esh-desc-size:15px;
  --esh-title-color:#ffffff;
  --esh-desc-color:#c7d7cf;
  --esh-card-bg:#1a2e23;
  --esh-card-border:#264532;
  --esh-radius:16px;
  --esh-gap:20px;
  --esh-padding:20px;
}
.esh-grid{ width:100%; }
.esh-items{
  display:grid;
  grid-template-columns: repeat(var(--esh-cols,2), minmax(0,1fr));
  gap: var(--esh-gap);
}
.esh-card{
  background: var(--esh-card-bg);
  border: 1px solid var(--esh-card-border);
  border-radius: var(--esh-radius);
  padding: var(--esh-padding);
  box-shadow: 0 2px 0 rgba(0,0,0,.1);
}
.esh-title{
  color: var(--esh-title-color);
  font-weight: 800;
  font-size: var(--esh-title-size);
  margin: 0 0 8px 0;
  letter-spacing: -0.01em;
}
.esh-desc{
  color: var(--esh-desc-color);
  font-size: var(--esh-desc-size);
  line-height: 1.6;
  margin: 0;
  opacity:.95;
}

/* Animation */
.esh-anim{ opacity:0; transform: translateY(10px); }
.esh-in .esh-anim{ animation: eshUp .5s ease-out forwards; }
@keyframes eshUp{ to{ opacity:1; transform:translateY(0);} }

/* Responsive columns defaults (can be overridden by inline CSS set in PHP) */
@media (min-width:1024px){ .esh-grid{ --esh-cols: 2; } }
@media (max-width:1023.98px) and (min-width:768px){ .esh-grid{ --esh-cols: 2; } }
@media (max-width:767.98px){ .esh-grid{ --esh-cols: 1; } }