/* ============================================================
   Buen Jale — Sistema tipográfico fluido global
   Cubre TODAS las plantillas del sitio (no solo hero / sx- / case-)
   Pensado para español (palabras más largas que el template original)
   ============================================================ */

/* Ajuste base para evitar amontonamiento en cualquier encabezado */
h1, h2, h3, h4,
.page-title_heading, .sec-title_heading, .team-block_one-heading,
.contact-one_heading, .gallery-block_one-heading, .service-block_one-heading,
.journal-block_one-heading, .case-section-title, .article-hero h1,
.article-section h2 {
  text-wrap: balance;
  word-spacing: 0.06em;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

/* Display / Hero */
.banner-one_heading {
  font-size: clamp(38px, 8vw, 110px) !important;
  line-height: 1.02 !important;
}

/* H1 de página */
.page-title_heading, .article-hero h1 {
  font-size: clamp(34px, 6vw, 64px) !important;
  line-height: 1.08 !important;
}

/* H2 de sección */
.sec-title_heading, .case-section-title,
.article-section h2 {
  font-size: clamp(26px, 4.5vw, 48px) !important;
  line-height: 1.16 !important;
}

/* H3 de tarjeta */
.team-block_one-heading, .service-block_one-heading,
.journal-block_one-heading, .contact-one_heading,
.gallery-block_one-heading {
  font-size: clamp(19px, 3vw, 28px) !important;
  line-height: 1.28 !important;
  word-spacing: 0.03em;
}

/* Cuerpo de texto general */
.article-section p, .sec-title_text, .page-title_text,
.contact-one_text, .team-block_one-text {
  font-size: clamp(15px, 1.6vw, 18px);
  line-height: 1.75;
}

/* ---------- Breakpoints faltantes: about / services / contact / journal ---------- */
@media (max-width: 991px) {
  .team-block_one, .service-block_one, .journal-block_one,
  .gallery-block_one, .contact-one_info-column, .contact-one_form-column {
    max-width: 100% !important;
  }
  .sec-title_heading { padding-right: 0 !important; }
}

@media (max-width: 767px) {
  .page-title_heading { font-size: clamp(32px, 10vw, 46px) !important; }
  .sec-title_heading { font-size: clamp(24px, 8vw, 34px) !important; }
  .team-block_one-heading, .service-block_one-heading,
  .journal-block_one-heading { font-size: clamp(18px, 5vw, 22px) !important; }
  .services-home-grid, .service-overview-grid, .team-block-grid {
    grid-template-columns: 1fr !important;
  }
  .contact-one_list li { font-size: 17px !important; line-height: 1.5 !important; }
}

@media (max-width: 420px) {
  .page-title_heading { font-size: 30px !important; }
  .sec-title_heading { font-size: 23px !important; }
}

@media (prefers-reduced-motion: reduce) {
  * { scroll-behavior: auto !important; }
}

/* ---------- Robot 3D del hero: recentrado simétrico en móvil/tablet ---------- */
@media (max-width: 991px) {
  .banner-one.banner-one-enhanced .robot {
    inset: -2% 0 -6% 0 !important;
    overflow: hidden !important;
  }
  .banner-one.banner-one-enhanced .robot spline-viewer {
    position: absolute !important;
    top: 0 !important;
    left: 50% !important;
    width: 125% !important;
    height: 100% !important;
    max-width: none !important;
    transform: translateX(-50%) scale(1.04) !important;
    transform-origin: center center !important;
  }
}
@media (max-width: 767px) {
  .banner-one.banner-one-enhanced .robot { inset: 0 !important; }
  .banner-one.banner-one-enhanced .robot spline-viewer {
    left: 50% !important;
    width: 145% !important;
    transform: translateX(-50%) scale(1.08) !important;
  }
}
@media (max-width: 420px) {
  .banner-one.banner-one-enhanced .robot spline-viewer {
    left: 50% !important;
    width: 160% !important;
    transform: translateX(-50%) scale(1.1) !important;
  }
}
