:root {
    --cor-e-main: #1a164f;
    --cor-e-blue: #409ff3;
    --cor-e-blue-dark: #3269c3;
    --cor-e-yellow: #f8e330;
    --cor-e-orange: #f49729;
    --cor-e-red: #f15e37;
    --cor-e-gradient: linear-gradient(90deg, #409ff3 0%, #6b49d1 100%);
}

body {
  background: #f8fafc;
  font-family: 'Inter', 'Segoe UI', Arial, sans-serif;
  color: var(--cor-e-main);
  margin: 0;
}

.section-bg {
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  padding: 0;
  min-width: 100vw;
}

.section-dark {
  background: linear-gradient(180deg, #1a164f 0%, #3269c3 100%);
  color: #fff;
}

.section-light {
  background: #fff;
  color: var(--cor-e-main);
}

.core-section {
  background: transparent;
  border-radius: 36px;
  margin: 0 auto 64px auto;
  box-shadow: 0 8px 40px 0 rgba(31, 38, 135, 0.10);
  max-width: 1200px;
  padding: 64px 32px 72px 32px;
  position: relative;
  overflow: hidden;
  transition: background 0.3s, color 0.3s;
}

.core-section-title {
  font-size: 2.2rem;
  font-weight: 800;
  letter-spacing: 1px;
  margin: 0 auto 32px auto;
  text-align: center;
  display: block;
}

.core-feature-list {
  display: flex;
  flex-direction: column;
  gap: 48px;
  margin: 0 auto;
  max-width: 900px;
}

.core-feature-row {
  display: flex;
  align-items: center;
  gap: 36px;
  flex-wrap: wrap;
  flex-direction: row;
}

.core-feature-img {
  width: 72px;
  height: 72px;
  min-width: 72px;
  min-height: 72px;
  max-width: 72px;
  max-height: 72px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 2px 12px #409ff344;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 18px;
  margin-bottom: 0;
  aspect-ratio: 1/1;
}

.section-dark .core-feature-img {
  background: rgba(255,255,255,0.08);
  box-shadow: 0 2px 12px #0002;
}

.core-feature-img i {
  font-size: 2.2rem;
  color: var(--cor-e-blue-dark);
}

.section-dark .core-feature-img i {
  color: #fff;
}

.core-feature-content {
  flex: 1 1 300px;
  min-width: 220px;
}

.core-feature-title {
  font-size: 1.35rem;
  font-weight: 800;
  margin-bottom: 10px;
  letter-spacing: 0.5px;
}

.core-feature-desc {
  color: #64748b;
  font-size: 1.08rem;
  line-height: 1.7;
  margin-bottom: 0;
}

.section-dark .core-feature-desc {
  color: #e2e8f0;
}

/* HERO BANNER */
.hero-globant {
  position: relative;
  min-height: 60vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  overflow: hidden;
  border-radius: 0 0 32px 32px;
  box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.08);
  padding: 0 16px;
}

.banner-bg-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
  border-radius: 0 0 32px 32px;
  pointer-events: none;
  opacity: 0.98;
  /* Puedes agregar un filtro si quieres simular el overlay */
  /* filter: brightness(0.85) saturate(1.1); */
}

.hero-globant::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    url('/images/banner.webp') center center/cover no-repeat,
    linear-gradient(120deg, #1a164f 60%, #409ff3 100%);
  border-radius: 0 0 32px 32px;
  will-change: transform;
  transform: scale(1.08);
  transition: transform 2s cubic-bezier(.4,0,.2,1);
  background-blend-mode: overlay;
}

.hero-globant.banner-animate::before {
  transform: scale(1);
}

.hero-globant::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  border-radius: 0 0 32px 32px;
  background: linear-gradient(120deg, #1a164f 40%, #3269c3 80%, #409ff3 100%);
  opacity: 0.8; /* Más opacidad para un azul más intenso */
}

.hero-content-globant {
  position: relative;
  z-index: 2;
  max-width: 700px;
  margin: 0 auto;
  padding: 72px 24px 64px 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.8s cubic-bezier(.4,0,.2,1), transform 0.8s cubic-bezier(.4,0,.2,1);
}
.hero-globant.banner-animate .hero-content-globant {
  opacity: 1;
  transform: translateY(0);
}
.hero-title-globant {
  font-size: 3rem;
  font-weight: 900;
  color: #fff;
  letter-spacing: 2px;
  line-height: 1.1;
  margin-bottom: 22px;
  text-shadow: 0 4px 32px #1a164f66;
}
.hero-title-globant .highlight {
  color: var(--cor-e-yellow);
  letter-spacing: 3px;
}
.hero-subtitle-globant {
  font-size: 1.35rem;
  color: #e2e8f0;
  font-weight: 500;
  margin-bottom: 38px;
  text-shadow: 0 2px 8px #1a164f99;
  max-width: 540px;
}
.hero-subtitle-globant .highlight-blue {
  color: var(--cor-e-blue);
  font-weight: 700;
}
.hero-subtitle-globant .highlight-yellow {
  color: var(--cor-e-yellow);
  font-weight: 700;
}
.hero-btn-globant {
  background: var(--cor-e-gradient);
  color: #fff;
  border: none;
  font-weight: 700;
  padding: 18px 48px;
  border-radius: 12px;
  font-size: 1.18rem;
  transition: background 0.3s, box-shadow 0.2s, transform 0.2s;
  box-shadow: 0 4px 24px 0 #409ff344;
  letter-spacing: 0.5px;
  text-shadow: 0 2px 8px #1a164f33;
  margin-top: 10px;
  text-decoration: none;
  display: inline-block;
}
.hero-btn-globant:hover {
  background: linear-gradient(90deg, #6b49d1 0%, #409ff3 100%);
  color: #fff;
  box-shadow: 0 8px 32px 0 #409ff355;
  transform: translateY(-2px) scale(1.04);
}
.hero-bottom-line {
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 120px;
  height: 4px;
  background: var(--cor-e-yellow);
  border-radius: 2px;
  transform: translateX(-50%);
  z-index: 2;
}

@media (max-width: 900px) {
  .core-section {
    border-radius: 18px;
    margin-bottom: 32px;
    padding: 32px 8px;
  }
  .core-section-title {
    display: block;
    font-size: 1.3rem;
    margin: 0 auto 18px auto;
    padding-top: 12px;
    padding-bottom: 12px;
  }
  .core-feature-row {
    flex-direction: column !important;
    gap: 18px;
    align-items: flex-start;
  }
  .core-feature-img {
    width: 56px;
    height: 56px;
    min-width: 56px;
    min-height: 56px;
    max-width: 56px;
    max-height: 56px;
  }
  .core-feature-img i {
    font-size: 1.5rem;
    width: 32px;
    height: 32px;
  }
  .core-feature-content {
    min-width: 0;
  }
  .hero-globant {
    border-radius: 0 0 18px 18px;
    min-height: 40vh;
    padding: 0 4px;
    background: #1a164f;
  }
  .hero-content-globant {
    padding: 36px 8px 32px 8px;
  }
  .hero-title-globant {
    font-size: 2rem;
  }
  .hero-subtitle-globant {
    font-size: 1.05rem;
  }
  .hero-btn-globant {
    font-size: 1rem;
    padding: 12px 28px;
  }
  .hero-bottom-line {
    width: 60px;
  }
}

/* Mejora para las filas de features en móvil */
@media (max-width: 900px) {
  .core-feature-row {
    flex-direction: row !important;
    align-items: flex-start !important;
    gap: 14px;
    margin-bottom: 18px;
  }
  .core-feature-img {
    margin-right: 12px;
    margin-bottom: 0;
    align-items: center;
    justify-content: center;
    display: flex;
  }
  .core-feature-img i {
    font-size: 1.7rem;
    width: auto;
    height: auto;
    line-height: 1;
    display: block;
    margin: 0 auto;
    text-align: center;
  }
  .core-feature-content {
    min-width: 0;
    flex: 1 1 0;
  }
  .core-feature-list {
    gap: 18px;
  }
}

/* Ajuste extra para pantallas muy pequeñas */
@media (max-width: 600px) {
  .core-section {
    padding: 18px 2vw 28px 2vw;
  }
  .core-feature-row {
    gap: 10px;
    margin-bottom: 12px;
  }
  .core-feature-img {
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    max-width: 44px;
    max-height: 44px;
  }
  .core-feature-img i {
    font-size: 1.2rem;
  }
}

/* Tarjetas para items en móvil y mayor padding para títulos */
@media (max-width: 900px) {
  .core-section {
    padding-left: 5vw;
    padding-right: 5vw;
  }
  .core-section-title {
    display: block;
    padding-top: 12px;
    padding-bottom: 12px;
  }
  .core-feature-list {
    gap: 24px;
  }
  .core-feature-row {
    background: #fff;
    border-radius: 18px;
    box-shadow: 0 2px 16px 0 rgba(31,38,135,0.07);
    padding: 18px 14px;
    margin: 0;
    flex-direction: row !important;
    align-items: center !important;
    gap: 14px;
    margin-bottom: 0;
  }
  .section-dark .core-feature-row {
    background: rgba(255,255,255,0.08);
    color: #fff;
  }
}

@media (max-width: 600px) {
  .core-section {
    padding-left: 6vw;
    padding-right: 6vw;
  }
  .core-section-title {
    padding-top: 16px;
    padding-bottom: 16px;
    margin: 0 auto 12px auto;
  }
  .core-feature-row {
    padding: 14px 8px;
    border-radius: 14px;
  }
}

/* NAVBAR ESTILOS OSCUROS Y EFECTOS */
.custom-navbar {
  background: #181c2a !important;
  color: #fff !important;
  border-bottom: 2px solid #23273a;
  font-family: 'Inter', 'Segoe UI', Arial, sans-serif;
  letter-spacing: 0.5px;
  z-index: 100;
  transition: background 0.3s, box-shadow 0.3s, opacity 0.3s;
  box-shadow: 0 2px 16px 0 #181c2a22;
}
.custom-navbar .navbar-brand {
  color: #fff !important;
  letter-spacing: 1px;
  text-shadow: 1px 1px 8px #409ff344;
  font-weight: 800;
}
.custom-navbar .navbar-nav .nav-link {
  color: #fff !important;
  font-size: 1.08rem;
  border-radius: 0.5rem;
  padding: 0.5rem 1rem;
  transition: background 0.2s, color 0.2s;
}
.custom-navbar .navbar-nav .nav-link:hover,
.custom-navbar .navbar-nav .nav-link:focus {
  background: #23273a;
  color: #409ff3 !important;
}
.custom-navbar .btn-primary {
  background: linear-gradient(90deg, #409ff3 0%, #6b49d1 100%);
  border: none;
  color: #fff;
  font-weight: 700;
  letter-spacing: 0.5px;
  box-shadow: 0 2px 8px 0 #409ff344;
  transition: background 0.2s;
}
.custom-navbar .btn-primary:hover, 
.custom-navbar .btn-primary:focus {
  background: linear-gradient(90deg, #6b49d1 0%, #409ff3 100%);
  color: #fff;
}
@media (max-width: 991.98px) {
  .custom-navbar .navbar-brand {
    font-size: 1.1rem;
    padding: 0.3rem 0;
    gap: 6px;
  }
  .custom-navbar .navbar-nav {
    gap: 0 !important;
    align-items: stretch !important;
  }
  .custom-navbar .navbar-nav .nav-link {
    padding: 0.9rem 1.2rem;
    font-size: 1.08rem;
    border-radius: 0;
    text-align: left;
    border-bottom: 1px solid #23273a;
  }
  .custom-navbar .navbar-nav .nav-link:last-child {
    border-bottom: none;
  }
  .custom-navbar .btn-primary {
    width: 100%;
    margin: 10px 0;
    padding: 12px 0;
    font-size: 1.08rem;
  }
  .navbar-toggler {
    border-color: #409ff3;
    background: #23273a;
  }
  .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(64,159,243,1)' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
  }
  .navbar-title-consulting {
    display: none !important;
  }
  .navbar-title-core {
    font-size: 1.25rem;
    font-weight: 800;
    letter-spacing: 1px;
  }
  .navbar-toggler {
    margin-left: auto !important;
    margin-right: 0 !important;
    order: 2;
  }
  .navbar-brand {
    flex: 1 1 auto;
    min-width: 0;
  }
  .navbar .container {
    flex-wrap: nowrap;
  }
  /* Cuando el menú está abierto, oculta el brand y el botón hamburguesa */
  .custom-navbar .navbar-collapse.show ~ .navbar-brand,
  .custom-navbar .navbar-collapse.show ~ .navbar-toggler {
    display: none !important;
  }
  /* Alternativamente, oculta el brand y hamburguesa cuando el menú está abierto */
  .custom-navbar .navbar-collapse.show ~ .navbar-brand,
  .custom-navbar .navbar-collapse.show ~ .navbar-toggler {
    display: none !important;
  }
  /* Mejor compatibilidad: oculta el brand y hamburguesa cuando el menú está abierto */
  .custom-navbar .navbar-collapse.show + .navbar-brand,
  .custom-navbar .navbar-collapse.show + .navbar-toggler {
    display: none !important;
  }
  /* O usando absolute para el menú */
  .custom-navbar .navbar-collapse {
    background: #181c2a;
    position: absolute;
    top: 100%;
    left: 0;
    width: 100vw;
    z-index: 1000;
    border-radius: 0 0 18px 18px;
    box-shadow: 0 8px 32px 0 #181c2a44;
    padding-bottom: 24px;
  }
}

/* Efecto de transparencia al hacer scroll */
.custom-navbar.scrolled {
  background: rgba(24, 28, 42, 0.82) !important;
  box-shadow: 0 2px 16px 0 #181c2a44;
  opacity: 0.96;
}
.custom-navbar.scrolled:hover,
.custom-navbar.scrolled:focus-within {
  background: #181c2a !important;
  opacity: 1;
}

/* FOOTER ESTILOS - Ajuste de fuente para parecerse a https://en.cor-econsulting.com/EN/ */
.footer-tcs {
  background: #181c2a;
  color: #fff;
  font-family: 'Inter', 'Segoe UI', Arial, sans-serif;
  letter-spacing: 0.5px;
  margin-top: 48px;
  font-size: 15px; /* Tamaño base del footer */
}

.footer-main {
  min-height: 80px;
  font-size: 15px; /* Tamaño base para datos y enlaces */
}

.footer-logo {
  border-radius: 8px;
  box-shadow: 0 2px 8px #409ff344;
  padding: 4px;
}

.footer-company {
  color: #fff;
  font-size: 15px; /* Igual que el resto del footer */
  letter-spacing: 1px;
}

.footer-social {
  font-size: 15px;
}

.footer-social strong {
  font-size: 15px;
}

.footer-link {
  color: #bfc7d5;
  text-decoration: none;
  font-weight: 500;
  margin: 0 6px;
  font-size: 15px;
  transition: color 0.2s;
  position: relative;
}

.footer-link:hover,
.footer-link:focus {
  color: #409ff3;
  text-decoration: underline;
}

.footer-divider {
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg, #409ff3 0%, #6b49d1 100%);
  opacity: 0.18;
  margin: 0 auto;
}

.footer-copyright {
  color: #bfc7d5;
  font-size: 13px; /* Más pequeño, como en la página de ejemplo */
  letter-spacing: 0.5px;
  margin-top: 8px;
}

@media (max-width: 767.98px) {
  .footer-main {
    flex-direction: column !important;
    align-items: center !important;
    gap: 18px;
    text-align: center;
    padding: 24px 0 !important;
  }
  .footer-brand {
    width: 100% !important;
    align-items: center !important;
    margin-bottom: 12px;
  }
  .footer-company {
    font-size: 14px;
    margin-bottom: 8px;
  }
  .footer-social {
    font-size: 14px;
    margin-bottom: 8px;
  }
  .footer-logo {
    max-width: 90vw;
    height: auto;
    margin-bottom: 8px;
  }
  .footer-divider {
    margin: 10px 0 !important;
  }
  .footer-copyright {
    font-size: 12px;
    padding: 8px 0;
  }
}

.banner-logo {
  display: inline-block;
  vertical-align: middle;
  margin-right: 8px;
  margin-bottom: 4px;
  max-height: 1.4em;   /* antes 2.2em, ahora más pequeño */
  height: 1.4em;
  width: auto;
}
@media (max-width: 600px) {
  .banner-logo {
    max-height: 1em;
    height: 1em;
    margin-right: 6px;
    margin-bottom: 2px;
  }
}

@media (max-width: 600px) {
  .img-fadein-mobile {
    opacity: 0;
    transform: scale(2.2);
    transition: opacity 1.6s cubic-bezier(.4,0,.2,1), transform 2.2s cubic-bezier(.4,0,.2,1);
  }
  .img-fadein-mobile.img-fadein-mobile--show {
    opacity: 1;
    transform: scale(1);
  }
}

/* Efecto divertido para las tarjetas de servicios */
.service-card {
  transition: transform 0.25s cubic-bezier(.4,0,.2,1), box-shadow 0.25s cubic-bezier(.4,0,.2,1), border 0.2s;
  cursor: pointer;
  border-radius: 1.25rem;
  background: #fff;
  position: relative;
  overflow: visible;
}
.service-card:hover, .service-card:focus-within {
  transform: translateY(-10px) scale(1.04) rotate(-1deg);
  box-shadow: 0 8px 32px 0 #409ff344, 0 2px 12px 0 #1a164f22;
  border: 2px solid var(--cor-e-blue);
  z-index: 2;
}
.service-card:hover .card-title,
.service-card:focus-within .card-title {
  color: var(--cor-e-blue-dark);
  letter-spacing: 1px;
}
.service-card:hover .card-body i,
.service-card:focus-within .card-body i {
  filter: drop-shadow(0 2px 8px #409ff355);
  transform: scale(1.18) rotate(-6deg);
  transition: transform 0.2s, filter 0.2s;
}

/* Flip cards for profiles - SOLUCIÓN ROBUSTA */
.profiles-row {
  margin-bottom: 32px;
  gap: 32px 0;
}
.profile-flip-card {
  background: transparent;
  width: 100%;
  height: 220px;
  perspective: 1000px;
  border-radius: 1.25rem;
  margin-bottom: 16px;
  /* Para que el overflow no muestre caras fuera del borde */
  overflow: visible;
}
.profile-flip-card-inner {
  position: relative;
  width: 100%;
  height: 100%;
  transition: transform 0.7s cubic-bezier(.4,0,.2,1);
  transform-style: preserve-3d;
}
.profile-flip-card:hover .profile-flip-card-inner,
.profile-flip-card:focus-within .profile-flip-card-inner {
  transform: rotateY(180deg);
}
.profile-flip-card-front,
.profile-flip-card-back {
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  border-radius: 1.25rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 24px 12px;
  /* El truco: oculta la cara que está de espaldas */
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
.profile-flip-card-front {
  background: #fff;
  box-shadow: 0 4px 24px 0 #409ff322;
  border: 2px solid transparent;
  z-index: 2;
  transition: border 0.2s;
}
.profile-flip-card:hover .profile-flip-card-front,
.profile-flip-card:focus-within .profile-flip-card-front {
  border: 2px solid #f49729;
}
.profile-icon {
  font-size: 2rem;
  margin-bottom: 10px;
}
.profile-flip-card-back {
  background: linear-gradient(120deg, #1a164f 40%, #409ff3 100%);
  color: #fff;
  transform: rotateY(180deg);
  z-index: 3;
  box-shadow: 0 4px 24px 0 #409ff344;
  padding: 32px 20px 32px 20px; /* Más padding solo en el respaldo */
  text-align: center;           /* Centra todo el contenido */
}

.profile-flip-card-back .profile-desc {
  text-align: center;           /* Centra el texto de descripción */
  margin-top: 10px;
}

.profile-icon {
  font-size: 2.5rem;
  margin-bottom: 12px;
  color: var(--cor-e-blue, #409ff3);
}
.profile-title {
  font-size: 1.15rem;
  font-weight: 700;
  margin-bottom: 8px;
}
.profile-desc {
  font-size: 1rem;
  margin: 0;
}
@media (max-width: 900px) {
  .profile-flip-card {
    height: 180px;
  }
  .profile-title { font-size: 1rem; }
  .profile-desc { font-size: 0.95rem; }
}

/* Nuevo grid de perfiles */
.profiles-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 32px 24px;
  margin-top: 40px;
  margin-bottom: 24px;
}

.profile-block {
  background: #fff;
  border-radius: 1.25rem;
  box-shadow: 0 2px 16px 0 #409ff322;
  display: flex;
  align-items: flex-start;
  gap: 18px;
  padding: 28px 22px 22px 22px;
  transition: box-shadow 0.2s, transform 0.2s, background 0.2s;
  cursor: pointer;
}

.profile-block:hover, .profile-block:focus-within {
  box-shadow: 0 8px 32px 0 #f4972944, 0 2px 12px 0 #1a164f22;
  background: #fff7f0;
  transform: translateY(-4px) scale(1.03);
}

.profile-avatar {
  background: #f49729;
  color: #fff;
  border-radius: 50%;
  width: 54px;
  height: 54px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  flex-shrink: 0;
  box-shadow: 0 2px 8px #f4972944;
  transition: background 0.2s, box-shadow 0.2s, font-size 0.2s;
}

.profile-block:hover .profile-avatar {
  background: #fff;
  color: #f49729;
  font-size: 2.3rem;
  box-shadow: 0 4px 16px #f4972944;
}

.profile-info {
  flex: 1 1 auto;
}

.profile-name {
  font-size: 1.13rem;
  font-weight: 700;
  margin-bottom: 6px;
  color: #1a164f;
}

.profile-desc {
  font-size: 1rem;
  color: #64748b;
  margin: 0;
}

@media (max-width: 600px) {
  .profiles-grid {
    grid-template-columns: 1fr;
    gap: 18px 0;
  }
  .profile-block {
    padding: 18px 10px 14px 10px;
    gap: 10px;
  }
  .profile-avatar {
    width: 40px;
    height: 40px;
    font-size: 1.3rem;
  }
  .profile-name {
    font-size: 1rem;
  }
  .profile-desc {
    font-size: 0.95rem;
  }
}

/* People Directory List Style */
.profiles-list {
  max-width: 700px;
  margin: 40px auto 24px auto;
  background: none;
  border-radius: 0;
  padding: 0;
}
.profile-list-item {
  display: flex;
  align-items: flex-start;
  gap: 18px;
  padding: 22px 0;
  border-bottom: 1px solid #e5e7eb;
}
.profile-list-item:last-child {
  border-bottom: none;
}
.profile-list-avatar {
  color: #f49729;
  font-size: 2.2rem;
  flex-shrink: 0;
  margin-top: 2px;
}
.profile-list-info {
  flex: 1 1 auto;
}
.profile-list-name {
  font-size: 1.13rem;
  font-weight: 700;
  color: #1a164f;
  display: block;
}
.profile-list-desc {
  font-size: 1rem;
  color: #64748b;
  display: block;
}
@media (max-width: 600px) {
  .profiles-list {
    max-width: 100%;
    padding: 0 4vw;
  }
  .profiles-list-dark .profile-list-item,
  .profiles-list .profile-list-item {
    flex-direction: column;
    align-items: center; /* <-- Cambia de flex-start a center */
    gap: 8px;
    padding: 14px 0;
  }
  .profiles-list-dark .profile-list-avatar,
  .profiles-list .profile-list-avatar {
    font-size: 1.3rem;
    width: 36px;
    height: 36px;
    margin-top: 0;
    margin-bottom: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .profiles-list-dark .profile-list-name,
  .profiles-list .profile-list-name {
    font-size: 0.93rem;
    text-align: center;
    width: 100%;
    display: block;
  }
  .profiles-list-dark .profile-list-desc,
  .profiles-list .profile-list-desc {
    font-size: 0.82rem;
    text-align: justify;
    margin-top: 4px;
    line-height: 1.25;
    display: -webkit-box;
    -webkit-line-clamp: 2;   /* Muestra solo 2 líneas */
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    max-height: 2.2em;       /* Ajusta según el font-size y line-height */
    white-space: normal;
  }
}

/* People Table Style */
.profiles-table-wrapper {
  max-width: 900px;
  margin: 40px auto 24px auto;
  overflow-x: auto;
}
.profiles-table {
  width: 100%;
  border-collapse: collapse;
  background: none;
  font-size: 1rem;
}
.profiles-table td {
  padding: 18px 12px;
  border-bottom: 1px solid #e5e7eb;
  vertical-align: top;
}
.profiles-table td:first-child {
  font-weight: 700;
  color: #1a164f;
  white-space: nowrap;
}
.profiles-table i {
  color: #f49729;
  margin-right: 8px;
  font-size: 1.2em;
}
@media (max-width: 600px) {
  .profiles-table td {
    padding: 12px 6px;
    font-size: 0.95rem;
  }
}

/* Timeline vertical corporativo */
.profiles-timeline {
  position: relative;
  margin: 40px auto 24px auto;
  max-width: 700px;
  padding-left: 32px;
}
.profiles-timeline::before {
  content: "";
  position: absolute;
  left: 18px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: #e5e7eb;
}
.timeline-item {
  display: flex;
  align-items: flex-start;
  margin-bottom: 32px;
  position: relative;
}
.timeline-dot {
  background: #fff;
  border: 2px solid #f49729;
  color: #f49729;
  border-radius: 50%;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  position: absolute;
  left: -18px;
  top: 0;
  box-shadow: 0 2px 8px #f4972944;
}
.timeline-content {
  margin-left: 36px;
}
.timeline-title {
  font-size: 1.13rem;
  font-weight: 700;
  color: #1a164f;
}
.timeline-desc {
  font-size: 1rem;
  color: #64748b;
}
@media (max-width: 600px) {
  .profiles-timeline {
    max-width: 100%;
    padding-left: 18px;
  }
  .timeline-dot {
    width: 28px;
    height: 28px;
    font-size: 1.1rem;
    left: -14px;
  }
  .timeline-content {
    margin-left: 24px;
  }
  .timeline-title {
    font-size: 1rem;
  }
  .timeline-desc {
    font-size: 0.95rem;
  }
}

/* Estilos oscuros para la lista de perfiles */
.profiles-list-dark .profile-list-item {
  border-bottom: 1px solid #334155;
}
.profiles-list-dark .profile-list-avatar {
  color: #fff;
  background: #f49729;
  border-radius: 50%;
  font-size: 2.2rem;
  flex-shrink: 0;
  margin-top: 2px;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px #f4972922;
}
.profiles-list-dark .profile-list-name {
  font-size: 1.13rem;
  font-weight: 700;
  color: #fff;
  display: block;
}
.profiles-list-dark .profile-list-desc {
  font-size: 1rem;
  color: #f1f5f9;
  display: block;
  margin-top: 6px;
  line-height: 1.7;
}

.profile-list-desc-short {
  display: none;
}

@media (max-width: 600px) {
  .profiles-list-dark .profile-list-desc,
  .profiles-list .profile-list-desc {
    display: none !important;
  }
  .profiles-list-dark .profile-list-desc-short,
  .profiles-list .profile-list-desc-short {
    display: block !important;
    font-size: 0.75rem;
    text-align: justify;
    margin-top: 4px;
    line-height: 1.15;
    color: #f1f5f9;
  }
}

@media (max-width: 600px) {
  .service-card {
    transition: none !important;
    transform: none !important;
    box-shadow: 0 2px 8px 0 #409ff322 !important;
    border: none !important;
    cursor: default !important;
  }
  .service-card:hover,
  .service-card:focus-within {
    transform: none !important;
    box-shadow: 0 2px 8px 0 #409ff322 !important;
    border: none !important;
  }
  .service-card:hover .card-title,
  .service-card:focus-within .card-title {
    color: inherit !important;
    letter-spacing: normal !important;
  }
  .service-card:hover .card-body i,
  .service-card:focus-within .card-body i {
    filter: none !important;
    transform: none !important;
    transition: none !important;
  }
}

/* Ajuste de las tarjetas de misión y visión en móvil */
@media (max-width: 700px) {
  .core-feature-row {
    flex-direction: column !important;
    align-items: center !important;
    gap: 12px;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .core-feature-img {
    margin: 0 0 10px 0 !important;
    align-self: center !important;
  }
  .core-feature-content {
    width: 100%;
    padding-left: 8px !important;
    padding-right: 8px !important;
    min-width: 0;
  }
  .core-feature-desc {
    padding-left: 2px !important;
    padding-right: 2px !important;
  }
}

/* Nuevas clases para mejorar el formulario de contacto */
.core-form-row--2col {
  display: flex;
  gap: 18px;
}
.core-form-col {
  flex: 1 1 0;
  min-width: 0;
}
.core-form-row--checkbox {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 0;
}
.core-form-label-checkbox {
  margin: 0;
  font-weight: 500;
}
.core-form-actions {
  text-align: center;
  margin-top: 18px;
}
@media (max-width: 700px) {
  .core-form-row--2col {
    flex-direction: column;
    gap: 6px;
  }
}

/* Estilos visuales para los campos del formulario de contacto */
.core-contact-form input,
.core-contact-form select,
.core-contact-form textarea {
  width: 100%;
  padding: 12px 10px;
  border: 1.5px solid #e5e7eb;
  border-radius: 8px;
  font-size: 1rem;
  background: #f8fafc;
  color: var(--cor-e-main);
  transition: border 0.2s, background 0.2s;
  margin-bottom: 0;
  box-sizing: border-box;
}

.core-contact-form input:focus,
.core-contact-form select:focus,
.core-contact-form textarea:focus {
  border: 1.5px solid var(--cor-e-blue);
  outline: none;
  background: #fff;
}

.core-contact-form label {
  font-weight: 600;
  margin-bottom: 6px;
  display: block;
  color: var(--cor-e-main);
}

.core-contact-form textarea {
  resize: vertical;
  min-height: 100px;
}

.core-contact-form input[type="checkbox"] {
  width: 20px;
  height: 20px;
  margin-right: 10px;
  accent-color: var(--cor-e-blue);
  margin-top: 0;
}

@media (max-width: 700px) {
  .core-contact-form {
    max-width: 100%;
    padding: 0 2vw;
  }
}

/* Puedes agregar esto a tu core.css si quieres mejorar el tamaño del select en móvil */

@media (max-width: 700px) {
  .core-contact-form select {
    font-size: 1.1rem;
    padding: 14px 10px;
  }
}

/* Estilos para el mensaje introductorio del formulario de contacto */
.core-intro-message {
  margin-bottom: 32px;
  text-align: center;
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 12px;
  color: var(--cor-e-main);
  position: relative;
}

.core-intro-message p {
  font-size: 1.1rem;
  line-height: 1.6;
  margin-bottom: 24px;
}

.core-whatsapp-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background-color: #25D366;
  color: white;
  text-decoration: none;
  padding: 10px 20px;
  border-radius: 10px;
  font-weight: 600;
  transition: all 0.3s ease;
  box-shadow: 0 4px 12px rgba(37, 211, 102, 0.3);
  margin-bottom: 18px;
}

.core-whatsapp-link:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(37, 211, 102, 0.4);
  background-color: #22c35e;
}

/* Responsive para móvil */
@media (max-width: 700px) {
  .core-intro-message {
    margin-bottom: 24px;
    padding: 0 6px;
  }
  
  .core-intro-message p {
    font-size: 1rem;
    line-height: 1.5;
    margin-bottom: 18px;
  }
  
  .core-whatsapp-link {
    padding: 8px 16px;
    font-size: 0.95rem;
  }
}

/* Mostrar solo en escritorio */
.show-desktop { display: block; }
.show-mobile { display: none; }

@media (max-width: 700px) {
  .show-desktop { display: none !important; }
  .show-mobile { display: block !important; }
}

/* Contenedor responsivo para iframes de formularios */
.responsive-iframe-container {
  position: relative;
  width: 100%;
  padding-bottom: 1400px; /* Ajusta este valor según el largo de tu formulario */
  height: 0;
  overflow: hidden;
  max-width: 100vw;
}

.responsive-iframe-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
}

/* Mejoras para móvil */
@media (max-width: 700px) {
  .responsive-iframe-container {
    padding-bottom: 1700px; /* Más alto para formularios largos en móvil */
  }
}


/* --- LOGIN PAGE STYLES --- */
.login-form-container,
.login-form-responsive {
  max-width: 400px;
  width: 100%;
  margin: 0 auto;
}

.login-logo-img {
  display: block;
  margin: 0 auto 18px auto;
  object-fit: contain;
  border-radius: 16px;
  box-shadow: 0 4px 24px #409ff322, 0 1.5px 8px #0001;
  border: 1.5px solid var(--cor-e-blue);
  background: #fff;
  padding: 8px 12px;
  width: 90px;
  height: 90px;
}

@media (max-width: 600px) {
  .login-form-container,
  .login-form-responsive {
    max-width: 98vw !important;
    padding: 0 2vw;
  }
  .login-logo-img {
    width: 60px !important;
    height: 60px !important;
    padding: 4px 6px !important;
    border-radius: 10px !important;
  }
}

.login-form-card {
  background: #fff;
  box-shadow: 0 8px 32px 0 #409ff344;
  border-radius: 18px;
  border: 1.5px solid #e5e7eb;
  padding: 1.5rem;
}

@media (max-width: 600px) {
  .login-form-card {
    padding: 18px 6px !important;
    border-radius: 12px !important;
  }
}

.login-form-card .form-label {
  color: var(--cor-e-main);
  font-weight: 700;
}

.login-form-card .form-control {
  background: #f8fafc;
  color: #1a164f;
  border: 1.5px solid var(--cor-e-blue);
  border-radius: 8px;
  box-shadow: 0 1px 6px #409ff322;
  transition: border-color 0.2s;
  font-size: 1rem;
  padding: 10px 8px;
}

.login-form-card .form-control:focus {
  border-color: var(--cor-e-yellow);
  outline: none;
}

.login-form-card .btn {
  margin-top: 10px;
  font-weight: bold;
  font-size: 1.1rem;
  letter-spacing: 0.5px;
  border-radius: 8px;
  box-shadow: 0 2px 8px #409ff322;
  width: 100%;
  padding: 12px 0;
}

@media (max-width: 600px) {
  .login-form-card .form-label,
  .login-form-card .form-control,
  .login-form-card .btn {
    font-size: 1rem !important;
  }
  .login-form-card .btn {
    padding: 12px 0 !important;
    border-radius: 7px !important;
  }
  .login-form-card .form-control {
    border-radius: 7px !important;
  }
}

/* Justificar texto de las descripciones de servicios */
.card-text {
  text-align: justify;
}

/* Justificar texto de los perfiles (desktop y móvil) */
.profile-list-desc,
.profile-list-desc-short,
.profile-desc {
  text-align: justify !important;
}

/* Ajuste para grid de perfiles en tarjetas */
.profile-block .profile-desc {
  text-align: justify !important;
}

/* Ajuste para la lista de perfiles en modo oscuro y claro */
.profiles-list-dark .profile-list-desc,
.profiles-list .profile-list-desc {
  text-align: justify !important;
}

/* Ajuste para la tabla de perfiles */
.profiles-table .profile-desc {
  text-align: justify !important;
}

/* Ajuste para timeline de perfiles */
.timeline-desc {
  text-align: justify !important;
}