/* IBL practice-group pages (Luis 20 Oct 2026).
   Layout parts used on the group pages: the "In this group" index next to the consultation form,
   and the service-area cards that replace the long bullet list. Scoped to ibl-gp-* classes only. */

:root {
  --ibl-gp-ink: #000033;
  --ibl-gp-link: #0A4478;
  --ibl-gp-accent: #288FD0;
  --ibl-gp-rule: #D3E2EF;
  --ibl-gp-rule-soft: #E4EDF6;
}

/* Small uppercase labels ("In this group", counts, section overline) */
.ibl-gp-label .elementor-heading-title,
.ibl-gp-count .elementor-heading-title,
.ibl-gp-overline .elementor-heading-title {
  font-family: Poppins, sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  color: var(--ibl-gp-link) !important;
  margin: 0 !important;
}
.ibl-gp-overline { margin-bottom: 6px !important; }

/* "In this group" index beside the form */
.ibl-gp-label { margin-top: 30px !important; margin-bottom: 4px !important; }
.ibl-gp-index .elementor-icon-list-items { border-top: 1px solid var(--ibl-gp-rule); margin: 0 !important; padding: 0 !important; }
.ibl-gp-index .elementor-icon-list-item { border-bottom: 1px solid var(--ibl-gp-rule); margin: 0 !important; padding: 0 !important; }
.ibl-gp-index .elementor-icon-list-item::after { display: none !important; }
.ibl-gp-index .elementor-icon-list-item > a {
  display: flex !important; align-items: center; justify-content: space-between; gap: 16px;
  width: 100%; padding: 15px 2px !important;
  font-family: Poppins, sans-serif; font-size: 17px; font-weight: 600; line-height: 1.35;
  color: var(--ibl-gp-ink) !important; text-decoration: none !important;
}
.ibl-gp-index .elementor-icon-list-text { color: inherit !important; padding: 0 !important; }
.ibl-gp-index .elementor-icon-list-item > a::after {
  content: ""; flex: none; width: 9px; height: 9px;
  border-right: 2px solid var(--ibl-gp-accent); border-bottom: 2px solid var(--ibl-gp-accent);
  transform: translateY(-3px) rotate(45deg); transition: transform 0.2s ease;
}

/* Service-area cards */
.ibl-gp-grid { --gap: 24px 24px; --row-gap: 24px; --column-gap: 24px; margin-top: 28px !important; }
.ibl-gp-card {
  background: #FFFFFF !important;
  border: 1px solid var(--ibl-gp-rule) !important;
  border-top: 3px solid var(--ibl-gp-accent) !important;
  border-radius: 4px 4px 12px 12px !important;
  --padding-top: 26px; --padding-right: 28px; --padding-bottom: 14px; --padding-left: 28px;
  padding: 26px 28px 14px !important;
  scroll-margin-top: 120px;
}
.ibl-gp-cat .elementor-heading-title {
  font-family: Poppins, sans-serif !important; font-size: 21px !important; font-weight: 700 !important;
  line-height: 1.25 !important; letter-spacing: -0.01em !important; text-transform: none !important;
  color: var(--ibl-gp-ink) !important; margin: 6px 0 12px !important;
}
.ibl-gp-links .elementor-icon-list-items { margin: 0 !important; padding: 0 !important; }
.ibl-gp-links .elementor-icon-list-item { border-top: 1px solid var(--ibl-gp-rule-soft); margin: 0 !important; padding: 0 !important; }
.ibl-gp-links .elementor-icon-list-item::after { display: none !important; }
.ibl-gp-links .elementor-icon-list-item > a {
  display: flex !important; align-items: baseline; justify-content: space-between; gap: 16px;
  width: 100%; padding: 12px 0 !important;
  font-family: Poppins, sans-serif; font-size: 15.5px; font-weight: 500; line-height: 1.45;
  color: var(--ibl-gp-link) !important; text-decoration: none !important;
}
.ibl-gp-links .elementor-icon-list-text { color: inherit !important; padding: 0 !important; }
.ibl-gp-links .elementor-icon-list-item > a::after {
  content: "\2192"; flex: none; color: var(--ibl-gp-accent); font-weight: 600; transition: transform 0.18s ease;
}

@media (hover: hover) {
  .ibl-gp-index .elementor-icon-list-item > a:hover { color: var(--ibl-gp-link) !important; }
  .ibl-gp-index .elementor-icon-list-item > a:hover::after { transform: translateY(0) rotate(45deg); }
  .ibl-gp-links .elementor-icon-list-item > a:hover { color: var(--ibl-gp-ink) !important; }
  .ibl-gp-links .elementor-icon-list-item > a:hover::after { transform: translateX(4px); }
}
.ibl-gp-index a:focus-visible, .ibl-gp-links a:focus-visible {
  outline: 2px solid var(--ibl-gp-accent); outline-offset: 3px; border-radius: 2px;
}
@media (prefers-reduced-motion: reduce) {
  .ibl-gp-index .elementor-icon-list-item > a::after,
  .ibl-gp-links .elementor-icon-list-item > a::after { transition: none; }
}
@media (max-width: 767px) {
  .ibl-gp-index .elementor-icon-list-item > a { font-size: 16px; padding: 14px 2px !important; }
  .ibl-gp-card { padding: 22px 20px 10px !important; }
  .ibl-gp-cat .elementor-heading-title { font-size: 19px !important; }
}
