
.csg-service-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin: 2em 0;
}
.csg-service-box {
  border: 1px solid #ccc;
  border-radius: 8px;
  background: #f9f9f9;
  padding: 1em;
  position: relative;
  overflow: hidden;
  min-height: 450px; /* increased height */
}
.csg-service-box h3,
.csg-service-box h4 { margin: 0 0 .5em; }
.csg-category-content {
  max-height: 380px; /* increased to fit taller box; adjust as needed */
  overflow: hidden;
  transition: max-height .4s ease;
  padding-bottom: 3em; /* prevents text overlapping the More/Less button */
}
.csg-service-box.csg-expanded .csg-category-content {
  max-height: 999px;
}
.csg-service-list {
  list-style: none;
  margin: 0 0 1em;
  padding: 0;
}
.csg-service-list > li { margin-bottom: .75em; }
.csg-service-list .csg-extra { display: none; }
.csg-service-box.csg-expanded .csg-extra { display: list-item; }
.csg-toggle-btn {
  position: absolute;
  right: 1em;
  bottom: 1em;
  padding: .5em 1em;
  background: #0073aa;
  color: #fff;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}
.csg-term-description {
  font-style: italic;
  margin-bottom: .5em;
  color: #555;
}
.csg-service-content p { margin: .3em 0; }
.csg-service-content ul { padding-left: 1.2em; margin: .3em 0; }
.csg-service-content li { list-style: disc; }

/* Hide toggle when JS marks it */
.csg-toggle-btn.is-hidden{display:none !important;}

/* Ensure the last line is never clipped when measuring heights */
.csg-service-content > :last-child { margin-bottom: 0 !important; }
/* Provide a tiny breathing room so text isn't flush with the border */
.csg-service-content { padding-bottom: 6px; }
.csg-toggle-btn.is-hidden{display:none !important;}
