/* ========================================
   Services & Competences
   ======================================== */

.section-services {
  --section-pt: 207px;
  background-color: var(--color-bg-dark);
  padding-top: var(--section-pt);
}

/* Header nasconde linee interne */
.services-header {
  position: relative;
  z-index: 1;
  padding-top: 90px;
}

.services-header::before {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  left: 1px; right: 1px;
  background-color: var(--color-bg-dark);
  z-index: -1;
}

/* Nascondo + template (top e bottom) */
.section-services .grid-crosses--top,
.section-services .grid-crosses--bottom {
  display: none;
}

/* Crosses sulle divider lines */
.services-crosses {
  position: relative;
  height: 0;
  z-index: 3;
  width: 100%;
  max-width: var(--container-max);
  margin: 0 auto;
}

.services-crosses .grid-cross:nth-child(1) { left: 0; }
.services-crosses .grid-cross:nth-child(2) { left: 100%; }

.services-label {
  display: block;
  font-family: var(--font-primary);
  font-weight: var(--fw-medium);
  font-size: var(--fs-subtitle);
  line-height: var(--lh-body);
  color: var(--color-gray-text);
  margin-bottom: 33px;
}

.services-title {
  font-family: var(--font-primary);
  font-weight: var(--fw-medium);
  font-size: var(--fs-section-title);
  line-height: var(--lh-section-title);
  color: var(--color-white);
  max-width: 765px;
  margin-bottom: 46px;
}

/* Full-width divider */
.services-divider {
  width: 100%;
  height: 1px;
  background-color: var(--color-grid-line-dark);
}
 
/* Grid — 4 colonne con bordi visibili */
.services-grid {
  display: grid;
  grid-template-columns: repeat(var(--grid-columns), 1fr);
  row-gap: 0;
  column-gap: 0;
  position: relative;
  margin-left: calc(-1 * var(--container-gutter));
  margin-right: calc(-1 * var(--container-gutter));
}

/* Linee verticali solide su tutta l'altezza della griglia */
.services-grid::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 10;
  background-image:
    linear-gradient(var(--color-grid-line-dark), var(--color-grid-line-dark)),
    linear-gradient(var(--color-grid-line-dark), var(--color-grid-line-dark)),
    linear-gradient(var(--color-grid-line-dark), var(--color-grid-line-dark)),
    linear-gradient(var(--color-grid-line-dark), var(--color-grid-line-dark));
  background-size: 1px 100%, 1px 100%, 1px 100%, 1px 100%;
  background-position: 0% 0, 25% 0, 50% 0, 75% 0;
  background-repeat: no-repeat;
}

.service-item {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: var(--card-p-service);
  min-height: 214px;
  background-color: var(--color-bg-dark);
  border-bottom: 1px solid var(--color-grid-line-dark);
}

/* Ultima riga senza bordo inferiore */
.service-item:nth-last-child(-n+4) {
  border-bottom: none;
}

.service-category {
  font-family: var(--font-primary);
  font-weight: var(--fw-medium);
  font-size: var(--fs-nav);
  line-height: 43px;
  color: var(--color-gray-text);
}

.service-name {
  font-family: var(--font-primary);
  font-weight: var(--fw-medium);
  font-size: 25px;
  line-height: var(--lh-body);
  color: var(--color-white);
}

/* CTA — nasconde linee interne, centrata verticalmente */
.services-cta-wrap {
  position: relative;
  z-index: 2;
  height: 215px;
  background-color: var(--color-bg-dark);
}

.services-cta-wrap::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: var(--container-max);
  pointer-events: none;
  z-index: 1;
  background-image:
    repeating-linear-gradient(to bottom, var(--color-grid-line-dark) 0, var(--color-grid-line-dark) 6px, transparent 6px, transparent 12px),
    repeating-linear-gradient(to bottom, var(--color-grid-line-dark) 0, var(--color-grid-line-dark) 6px, transparent 6px, transparent 12px);
  background-size: 1px 100%, 1px 100%;
  background-position: 0% 0, 100% 0;
  background-repeat: repeat-y, repeat-y;
}

.services-cta {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
}

/* ----------------------------------------
   Responsive
   ---------------------------------------- */

@media (max-width: 1024px) {
  .section-services {
    padding-top: 80px;
    padding-bottom: 80px;
  }

  .services-grid {
    grid-template-columns: repeat(2, 1fr);
    margin-left: 0;
    margin-right: 0;
  }

  .service-item:nth-child(4n+1) {
    border-left: 1px solid var(--color-grid-line-dark);
  }

  .service-item:nth-child(odd) {
    border-left: none;
  }

  .service-item:nth-last-child(-n+4) {
    border-bottom: 1px solid var(--color-grid-line-dark);
  }

  .service-item:nth-last-child(-n+2) {
    border-bottom: none;
  }

  .services-title {
    font-size: 36px;
  }

  .service-name {
    font-size: 22px;
  }
}

@media (max-width: 768px) {
  #tech-brands{background: transparent;}
  #tech-brands .tech-brand-item::before {
   content: none; 
  }
  .page-template-page-services .services-cta-wrap:after {
   width: 91%;
    }
  .services-crosses .grid-cross.grid-cross--dark {
    display: block;
  }

  .services-crosses .grid-cross:nth-child(1) {
    left: 20px;
  }

  .services-crosses .grid-cross:nth-child(2) {
    left: calc(100% - 20px);
  }

  .services-crosses .grid-cross--dark::before,
  .services-crosses .grid-cross--dark::after {
    background-color: var(--color-grid-line-dark);
  }

  .section-services {
    padding-top: 60px;
    padding-bottom: 60px;
  }

  .services-grid {
    grid-template-columns: 1fr;
  }

  .service-item {
    border-left: none !important;
  }

  .services-title {
    font-size: 28px;
  }

  .service-name {
    font-size: 20px;
  }
}
