/**
 * Featured services box — BEM: tgwv-fs
 * Colors: empty panel values inherit theme (--tgwv-color-dark / --tgwv-brand).
 */

.tgwv-fs {
  --tgwv-fs-text: var(--tgwv-color-dark, #000000);
  --tgwv-fs-title: var(--tgwv-fs-text);
  --tgwv-fs-accent: var(--tgwv-brand, #000000);
  --tgwv-fs-icon: var(--tgwv-fs-accent);
  --tgwv-fs-gap: 24px;
  --tgwv-fs-image-aspect: 4 / 3;
  --tgwv-fs-padding-y: 0px;
  --tgwv-fs-box-title-size: 32px;
  --tgwv-fs-box-title-weight: 700;
  --tgwv-fs-header-align: left;

  padding-top: var(--tgwv-fs-padding-y);
  padding-bottom: var(--tgwv-fs-padding-y);
  color: var(--tgwv-fs-text);
}

.tgwv-fs .tgwv-service-list {
  --tgwv-service-list-gap: var(--tgwv-fs-gap);
  margin-bottom: 0;
}

.tgwv-fs .tgwv-service-card {
  --tgwv-service-card-badge-bg: var(--tgwv-fs-icon);
}

.tgwv-fs .tgwv-service-card__media-link {
  aspect-ratio: var(--tgwv-fs-image-aspect);
}

.tgwv-fs .tgwv-service-card__title,
.tgwv-fs .tgwv-service-card__link {
  color: var(--tgwv-fs-text);
}

.tgwv-fs .tgwv-service-card__excerpt {
  color: color-mix(in srgb, var(--tgwv-fs-text) 72%, transparent);
}

.tgwv-fs .tgwv-service-card__cta {
  border-color: var(--tgwv-fs-accent);
  color: var(--tgwv-fs-accent);
}

/* Keep FS color/typography panel controls while sharing service_list header markup. */
.tgwv-fs .tgwv-service-list__header {
  margin: 0 0 1.5rem;
  text-align: var(--tgwv-fs-header-align, var(--tgwv-service-list-header-align, left));
}

.tgwv-fs .tgwv-service-list__section-title {
  margin: 0 0 0.5rem;
  font-size: var(--tgwv-fs-box-title-size, 32px);
  font-weight: var(--tgwv-fs-box-title-weight, 700);
  line-height: 1.25;
  color: var(--tgwv-fs-title, var(--tgwv-color-dark, #111));
}

.tgwv-fs .tgwv-service-list__section-desc {
  margin: 0 0 0.75rem;
  font-size: 1rem;
  line-height: 1.6;
  color: color-mix(in srgb, var(--tgwv-fs-text, var(--tgwv-color-dark, #111)) 68%, transparent);
}

.tgwv-fs .tgwv-service-list__section-desc > *:first-child {
  margin-top: 0;
}

.tgwv-fs .tgwv-service-list__section-desc > *:last-child {
  margin-bottom: 0;
}

.tgwv-fs .tgwv-service-list__section-desc p {
  margin: 0 0 0.5rem;
}

.tgwv-fs a.tgwv-service-list__view-all {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: var(--tgwv-fs-accent, var(--tgwv-brand, #111));
  font-weight: 600;
  line-height: 1.4;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.tgwv-fs a.tgwv-service-list__view-all:hover,
.tgwv-fs a.tgwv-service-list__view-all:focus-visible {
  opacity: 0.85;
  color: var(--tgwv-fs-accent, var(--tgwv-brand, #111));
  text-decoration: none;
}

.tgwv-fs a.tgwv-service-list__view-all i {
  font-size: 0.85em;
}

@media (hover: hover) and (pointer: fine) {
  .tgwv-fs .tgwv-service-card:hover .tgwv-service-card__title,
  .tgwv-fs .tgwv-service-card__link:hover {
    color: var(--tgwv-fs-accent);
  }

  .tgwv-fs .tgwv-service-card__cta:hover {
    background-color: var(--tgwv-fs-accent);
    border-color: var(--tgwv-fs-accent);
    color: var(--tgwv-color-light, #ffffff);
  }
}
