/* Ajuste final de legibilidad y densidad. Mantiene intacta la escala de titulares. */
body {
  font-size: 17px;
}

/* El bloque de calculadoras necesita respirar antes del mapa tecnológico. */
.calculatorBanner {
  margin-bottom: clamp(42px, 5vw, 72px);
}

/* Tarjetas compactas, legibles y con acciones alineadas. */
.productGrid {
  gap: 16px;
}

.productImage {
  flex-basis: 235px;
  height: 235px;
  min-height: 235px;
  padding: 20px 18px 12px;
}

.productCopy {
  padding: 19px 21px 21px;
}

.productCopy h3 {
  -webkit-line-clamp: 2;
  min-height: 53px;
  margin: 8px 0 12px;
  font-size: 21px;
  line-height: 1.25;
}

.specPills {
  min-height: 54px;
}

.productCopy > p {
  -webkit-line-clamp: 3;
  min-height: 77px;
  margin: 14px 0 18px;
  font-size: 16px;
  line-height: 1.6;
}

.productCopy > em,
.productIntro > em,
.footerLegal {
  font-size: 13px;
}

.visionStory figcaption,
.imageNarrative figcaption {
  font-size: 12px;
}

@media (max-width: 700px) {
  .calculatorBanner {
    margin: 0 18px 44px;
  }

  .productImage {
    flex-basis: 220px;
    height: 220px;
    min-height: 220px;
    padding: 18px 16px 10px;
  }

  .productCopy {
    padding: 19px 18px 21px;
  }

  .productCopy h3,
  .productCopy > p,
  .specPills {
    min-height: 0;
  }

  .productCopy h3,
  .productCopy > p {
    -webkit-line-clamp: unset;
  }

  .productCopy h3 {
    font-size: 21px;
  }

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

  .detailsButton,
  .amazonButton {
    min-height: 50px;
    font-size: 15px;
  }

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

  .mapTeaserVisual {
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 20px !important;
  }
}

@media (max-width: 390px) {
  .productImage {
    flex-basis: 200px;
    height: 200px;
    min-height: 200px;
  }
}

/* Fotografías editoriales genéricas: identificación separada del producto real */
.productImage[data-image-mode="editorial"],
.productVisual a[data-image-mode="editorial"] {
  position: relative;
  overflow: hidden;
  background: #fff;
}

.productImage[data-image-mode="editorial"] img,
.productVisual a[data-image-mode="editorial"] img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

.productImage[data-image-mode="editorial"]::before,
.productVisual a[data-image-mode="editorial"]::before {
  content: attr(data-visual-label);
  position: absolute;
  z-index: 2;
  top: 12px;
  left: 12px;
  max-width: calc(100% - 24px);
  padding: 7px 10px 6px;
  background: #082832;
  color: #c6ff3d;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: .06em;
}

.productImage[data-image-mode="editorial"]::after,
.productVisual a[data-image-mode="editorial"]::after {
  content: "REPRESENTACIÓN · " attr(data-visual-code);
  position: absolute;
  z-index: 2;
  right: 10px;
  bottom: 10px;
  padding: 5px 7px;
  border: 1px solid #cbd8d2;
  background: rgba(255, 255, 255, .94);
  color: #536970;
  font-size: 9px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: .05em;
}

.productVisual a[data-image-mode="editorial"] {
  display: block;
  min-height: 420px;
}

.editorialImageNote {
  margin: 10px 0 0;
  color: #5d7177;
  font-size: 12px;
  line-height: 1.45;
  text-align: center;
}

@media (max-width: 700px) {
  .productImage[data-image-mode="editorial"]::before,
  .productVisual a[data-image-mode="editorial"]::before {
    top: 9px;
    left: 9px;
    padding: 6px 8px 5px;
    font-size: 10px;
  }

  .productVisual a[data-image-mode="editorial"] {
    min-height: 300px;
  }
}
