.container_slider {
  width: 100%;
  max-width: 1366px;
  min-width: 320px;
  margin: auto;
  height: auto;
}

.container_slider img {
  width: 100%;
  height: auto;
  /* border-radius: 15px; */
  box-shadow: 0px 3px 5px rgba(15, 15, 15, 0.5);

  max-inline-size: 100%;
  block-size: auto;
  aspect-ratio: 2/1;
  object-fit: cover;
  object-position: top center;
}

.navbar .brand {
  margin-top: -1.9rem;
}

.brand img {
  height: 50px;
  width: 250px;
  /* padding-bottom: 5px; */
}

.contactanos {
  font-size: 22px;
}
.col-service h4 {
  margin: 0.6rem 0 !important;
  font-size: 1.75rem !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
}
.col-service h6 {
  margin: 0.6rem 0 !important;
  font-size: 1.75rem !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
}
.col-service p {
  font-size: 18px !important;
  line-height: 1.65 !important;
  font-family: "Open Sans", sans-serif !important;
  margin-bottom: 10px !important;
}
.contenido {
  margin-top: 15px;
}

.section-subtitle2 {
  letter-spacing: normal;
  padding-top: 10px;
  padding-bottom: 10px;
  font-weight: 600;
}
.tituloMonserrat {
  font-family: "Montserrat", sans-serif;
}

.margintitulo {
  margin: 1rem 0;
}

blockquote,
p {
  margin-bottom: 2.6rem;
}
p {
  margin: 0 0 10px;
  line-height: 1.7;
  font-family: "Open Sans", sans-serif;
}

/* Unificar estilo de párrafos en NOSOTROS con el de servicios */
#about p {
  font-size: 18px !important;
  line-height: 1.65 !important;
  font-family: "Open Sans", sans-serif !important;
  margin-bottom: 10px !important;
}

.section {
  padding: 2.28rem 0;
}
.section-about-title {
  margin-bottom: 1rem;
}
.project-carousel {
  margin-top: 0.92rem;
}

/* Testimonials grid and cards (shared with clientes.html look&feel) */
.testimonials-grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  margin-top: 5px;
}
@media (min-width: 576px){ .testimonials-grid{ grid-template-columns: repeat(2,1fr); } }
@media (min-width: 992px){ .testimonials-grid{ grid-template-columns: repeat(3,1fr); } }

.testimonial-card {
  background: #fff;
  border-radius: 8px;
  padding: 28px 22px 22px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.08);
  position: relative;
  transition: transform .3s ease, box-shadow .3s ease;
  display: flex;
  flex-direction: column;
  min-height: 480px;
}
.testimonial-card:hover{ transform: translateY(-4px); box-shadow:0 8px 28px rgba(0,0,0,0.12); }

.testimonial-card .image-quote{
  position: absolute; right: 12px; top: 12px; width: 28px; height: 28px; opacity:.4;
}
.testimonial-image-wrapper{ text-align:center; margin-bottom: 16px; }
.testimonial-client-image{ width:100%; max-width:180px; max-height:240px; border-radius:8px; object-fit:cover; border:3px solid #e8e8e8; box-shadow:0 4px 10px rgba(0,0,0,0.08); margin:0 auto; display:block; }
.testimonial-text{ font-size:14px; line-height:1.6; color:#555; margin: 10px 0 18px; text-align:center; font-style: italic; flex-grow:1; padding:0 6px; }
.testimonial-author{ text-align:center; border-top:1px solid #e0e0e0; padding-top:14px; margin-top:auto; }
.testimonial-author-name{ font-size:15px; font-weight:600; color:#000; }
.testimonial-author-role{ font-size:12px; color:#999; }

@media (max-width: 767px){ .testimonial-card .image-quote{ display:none; } }
ul.plan {
  font-size: 18px;
  padding-left: 40px;
  margin-top: 3.6rem;
}

ul.plan p {
  line-height: 1.3;
  text-align: left;
}
ul.plan li {
  line-height: 1.1;
}

.contenedor {
  display: flex;
  flex-wrap: wrap; /* Permite que los elementos se envuelvan en una nueva línea */
  justify-content: space-around; /* Espacio uniforme entre las tarjetas */
  gap: 1rem; /* Espaciado entre las tarjetas */
}
.contenido {
  flex: 1; /* Hace que todas las tarjetas tengan el mismo ancho */
  /* Limita el tamaño máximo en pantallas grandes */
  display: flex; /* Hace que la tarjeta sea un contenedor flexible */
  flex-direction: column;

  background-color: #fff;
  padding-top: 0px;
  border-color: rgb(168, 168, 165);
  border-width: 1px;
  border-style: solid;
  padding: 0px 0px;
}
.card-body {
  flex: 1;
}
.card-footer {
  margin-top: auto; /* Posiciona el footer en la parte inferior de la tarjeta */
}

.planbasic {
  /* background-color: #fff;
  padding-top: 0px; */

  visibility: visible;
  animation-name: fadeInUp;
  /* border-color: rgb(168, 168, 165);
  border-width: 1px;
  border-style: solid; */
}

.tituloplan1 {
  text-align: center;
  background-color: #ff9527;
  padding-top: 30px;
  padding-bottom: 10px;
}
.tituloplan2 {
  text-align: center;
  background-color: #474747;
  padding-top: 30px;
  padding-bottom: 10px;
}
.tituloplan3 {
  text-align: center;
  background-color: #6f6e6e;
  padding-top: 30px;
  padding-bottom: 10px;
}
.subtituloplan {
  margin: 0.6rem 0;
}
.center {
  text-align: center;
}
.buttonplan {
  padding-left: 20px;
  padding-right: 20px;
  padding-top: 5px;
  padding-bottom: 5px;
  margin-bottom: 20px;
  border-radius: 2px;
  cursor: pointer;
  display: inline-block;
  font-size: 16px;
  font-weight: 600;
  line-height: normal;
  -webkit-user-select: none;
  touch-action: manipulation;
}

.text-white {
  color: white;
}

.marginPlanJunta {
  margin-top: 43px;
}

.col-contact {
  margin-top: 3rem;
  padding: 0 3.5rem;
}

.button {
  margin-bottom: 20px;
  margin-top: 20px;
}

.button-80 {
  background: #fff;
  backface-visibility: hidden;
  border-radius: 0.375rem;
  border-style: solid;
  border-width: 0.125rem;
  box-sizing: border-box;
  color: #212121;
  cursor: pointer;
  display: inline-block;
  font-family: Circular, Helvetica, sans-serif;
  font-size: 1.125rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.3;
  padding: 0.875rem 1.125rem;
  position: relative;
  text-align: left;
  text-decoration: none;
  transform: translateZ(0) scale(1);
  transition: transform 0.2s;
  user-select: none;
  -webkit-user-select: none;
  touch-action: manipulation;
}

.button-80:not(:disabled):hover {
  transform: scale(1.05);
}

.button-80:not(:disabled):hover:active {
  transform: scale(1.05) translateY(0.125rem);
}

.button-80:focus {
  outline: 0 solid transparent;
}

.button-80:focus:before {
  content: "";
  left: calc(-1 * 0.375rem);
  pointer-events: none;
  position: absolute;
  top: calc(-1 * 0.375rem);
  transition: border-radius;
  user-select: none;
}

.button-80:focus:not(:focus-visible) {
  outline: 0 solid transparent;
}

.button-80:focus:not(:focus-visible):before {
  border-width: 0;
}

.button-80:not(:disabled):active {
  transform: translateY(0.125rem);
}
.hide {
  display: none;
}

/* ---------------------------------------------
   BENEFICIOS (benefits) layout fix
   Issue: On some desktop widths the 6th item ("Tecnología de punta") was wrapping
   alone below creating an unbalanced 3rd row. This enforces a stable 3x2 grid
   from the large breakpoint upward, while preserving existing 2-column layout
   on tablets and single column on small screens. Minimal, non-intrusive.
----------------------------------------------*/
.benefits .row-services { /* allow flex wrapping without affecting other sections */
  display: flex;
  flex-wrap: wrap;
}
/* Base keeps Bootstrap sm (>=768) behaviour: two columns via col-sm-6 */
@media (min-width: 992px) { /* large screens: force 3 columns */
  .benefits .row-services .col-service {
    float: none;               /* neutralize float side-effects */
    flex: 0 0 33.333%;
    max-width: 33.333%;
    box-sizing: border-box;    /* ensure internal padding doesn't overflow width */
  }
}
/* Slight safeguard if extremely wide screens introduce spacing anomalies */
@media (min-width: 1400px) {
  .benefits .row-services {justify-content: flex-start;}
}

/* =============================================
   Tablet layout fixes for "¿Qué inspeccionamos?" (#servicios)
   and "PROCESO" (#proceso)
   Issue: On mid-width screens (tablet ~768-991px) items were using col-sm-6
   causing 2-column wrap and uneven vertical whitespace; for 3 items sets this
   produced an orphan below and visual gaps.
   Solution: Use flexbox to enforce consistent wrapping.
   - 768-991px: keep 2 columns if desired? Request says elements "se desordenan";
     We'll standardize to 3 columns from 768px upward for uniformity.
   - Preserve mobile stacking below 768px.
   Implementation is additive and non-destructive.
============================================= */
@media (min-width: 768px) and (max-width: 991px) {
  #servicios .row-services,
  #proceso .row-services {display:flex;flex-wrap:wrap;}
  #servicios .row-services .col-service,
  #proceso .row-services .col-service {flex:0 0 33.333%;max-width:33.333%;padding-left:12px;padding-right:12px;}
  #servicios .row-services .col-service:nth-child(3n+1),
  #proceso .row-services .col-service:nth-child(3n+1){clear:left;}
}
@media (min-width: 992px){
  #servicios .row-services .col-service,
  #proceso .row-services .col-service {flex:0 0 33.333%;max-width:33.333%;}
}

/* =============================================
   "Ver más..." button sizing fix for OBSERVACIONES section
   Issue: .add-new-team element was not matching the 270x270px dimensions
   of the fallas images on mobile/tablet, causing layout inconsistency.
   Solution: Mimic .team-profile behavior exactly - position relative and 
   treat .add-new-team like an image inside .team-profile with width:100% display:block
============================================= */
#team .col-team .add-new-team.fallas {
  padding-top: 0 !important;  /* Override the 100% padding-top from main stylesheet */
  position: relative;         /* Match .team-profile behavior */
  width: 100%;                /* Match .team-profile img width:100% */
  height: auto;               /* Let aspect ratio determine height */
  aspect-ratio: 1 / 1;        /* Force square ratio like 270x270 images */
  display: block;             /* Match .team-profile img display:block */
  box-sizing: border-box;
  margin: 0;
  border: 1px solid #bfbfbf;  /* Restore subtle border without changing size */
}

/* Keep theme hover behavior (border becomes transparent on hover) */
#team .col-team .add-new-team.fallas:hover {
  border-color: transparent;
}

/* Ensure images in OBSERVACIONES are perfect squares too (match the tile) */
#team .team-profile img.fallas {
  width: 100%;
  height: auto !important;   /* override any presentational height attr or JS */
  aspect-ratio: 1 / 1;       /* force square */
  object-fit: cover;         /* fill square without distortion */
  display: block;            /* remove inline gap */
}

/* Tablet breakpoint: ensure square ratio maintained */
@media (min-width: 768px) and (max-width: 991px) {
  #team .col-team .add-new-team.fallas {
    aspect-ratio: 1 / 1;
  }
}

/* Mobile: maintain square ratio */
@media (max-width: 767px) {
  #team .col-team .add-new-team.fallas {
    aspect-ratio: 1 / 1;
  }
}

/* Additional fix: ensure the parent col-team doesn't add unexpected spacing */
#team .col-team {
  display: block;
}


/* EXTERNAL UNIT */
/* EXTERNAL INIT- MHB */

.container_slider {
  width: 100%;
  max-width: 1366px;
  min-width: 320px;
  margin: auto;
  height: auto;
}

.container_slider img {
  width: 100%;
  height: auto;
  /* border-radius: 15px; */
  box-shadow: 0px 3px 5px rgba(15, 15, 15, 0.5);

  max-inline-size: 100%;
  block-size: auto;
  aspect-ratio: 2/1;
  object-fit: cover;
  object-position: top center;
}

.navbar .brand {
  margin-top: -1.9rem;
}

.brand img {
  height: 50px;
  width: 250px;
  /* padding-bottom: 5px; */
}

.contactanos {
  font-size: 22px;
}
.col-service h4 {
  margin-top: 0.15rem;
}
.contenido {
  margin-top: 15px;
}

.section-subtitle2 {
  letter-spacing: normal;
  padding-top: 10px;
  padding-bottom: 10px;
  font-weight: 600;
}
.tituloMonserrat {
  font-family: "Montserrat", sans-serif;
}

.margintitulo {
  margin: 1rem 0;
}

blockquote,
p {
  margin-bottom: 2.6rem;
}
p {
  margin: 0 0 10px;
  line-height: 1.7;
  font-family: "Open Sans", sans-serif;
}

.section {
  padding: 2.28rem 0;
}
.section-about-title {
  margin-bottom: 1rem;
}
.project-carousel {
  margin-top: 0.92rem;
}
ul.plan {
  font-weight: 400;
  letter-spacing: .025em;
  font-size: 18px;
  padding-left: 40px;
  margin-top: 3.6rem;
}

ul.plan p {
  line-height: 1.3;
  text-align: left;
}
ul.plan li {
  line-height: 1.1;
}

.contenedor {
  display: flex;
  flex-wrap: wrap; /* Permite que los elementos se envuelvan en una nueva línea */
  justify-content: space-around; /* Espacio uniforme entre las tarjetas */
  gap: 1rem; /* Espaciado entre las tarjetas */
}
.contenido {
  flex: 1; /* Hace que todas las tarjetas tengan el mismo ancho */
  /* Limita el tamaño máximo en pantallas grandes */
  display: flex; /* Hace que la tarjeta sea un contenedor flexible */
  flex-direction: column;

  background-color: #fff;
  padding-top: 0px;
  border-color: rgb(168, 168, 165);
  border-width: 1px;
  border-style: solid;
  padding: 0px 0px;
}
.card-body {
  flex: 1;
}
.card-footer {
  margin-top: auto; /* Posiciona el footer en la parte inferior de la tarjeta */
}

.planbasic {
  /* background-color: #fff;
  padding-top: 0px; */

  visibility: visible;
  animation-name: fadeInUp;
  /* border-color: rgb(168, 168, 165);
  border-width: 1px;
  border-style: solid; */
}

.tituloplan1 {
  text-align: center;
  background-color: #ff9527;
  padding-top: 30px;
  padding-bottom: 10px;
}
.tituloplan2 {
  text-align: center;
  background-color: #474747;
  padding-top: 30px;
  padding-bottom: 10px;
}
.tituloplan3 {
  text-align: center;
  background-color: #6f6e6e;
  padding-top: 30px;
  padding-bottom: 10px;
}
.subtituloplan {
  margin: 0.6rem 0;
}
.center {
  text-align: center;
}
.buttonplan {
  padding-left: 20px;
  padding-right: 20px;
  padding-top: 5px;
  padding-bottom: 5px;
  margin-bottom: 20px;
  border-radius: 2px;
  cursor: pointer;
  display: inline-block;
  font-size: 16px;
  font-weight: 600;
  line-height: normal;
  -webkit-user-select: none;
  touch-action: manipulation;
}

.text-white {
  color: white;
}

.marginPlanJunta {
  margin-top: 43px;
}

.col-contact {
  margin-top: 3rem;
  padding: 0 3.5rem;
}

.button {
  margin-bottom: 20px;
  margin-top: 20px;
}

.button-80 {
  background: #fff;
  backface-visibility: hidden;
  border-radius: 0.375rem;
  border-style: solid;
  border-width: 0.125rem;
  box-sizing: border-box;
  color: #212121;
  cursor: pointer;
  display: inline-block;
  font-family: Circular, Helvetica, sans-serif;
  font-size: 1.125rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.3;
  padding: 0.875rem 1.125rem;
  position: relative;
  text-align: left;
  text-decoration: none;
  transform: translateZ(0) scale(1);
  transition: transform 0.2s;
  user-select: none;
  -webkit-user-select: none;
  touch-action: manipulation;
}

.button-80:not(:disabled):hover {
  transform: scale(1.05);
}

.button-80:not(:disabled):hover:active {
  transform: scale(1.05) translateY(0.125rem);
}

.button-80:focus {
  outline: 0 solid transparent;
}

.button-80:focus:before {
  content: "";
  left: calc(-1 * 0.375rem);
  pointer-events: none;
  position: absolute;
  top: calc(-1 * 0.375rem);
  transition: border-radius;
  user-select: none;
}

.button-80:focus:not(:focus-visible) {
  outline: 0 solid transparent;
}

.button-80:focus:not(:focus-visible):before {
  border-width: 0;
}

.button-80:not(:disabled):active {
  transform: translateY(0.125rem);
}
.hide {
  display: none;
}
