@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&family=Montserrat:wght@100;300;400;500;600;700;800;900&display=swap');

:root {
  --primary-color: #2d155d;
  --secondary-color: #576cbc;
  --light-color: #a5d7e8;
  --white: #ffffff;
  --text-dark: #1a1a1a;
  --bg-light: #f2f0ff;
--subtitle-size: clamp(16px, 2.5vw, 22px);
  --subtitle-line: 1.6;
  --nav-h: 80px;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html { scroll-behavior: smooth; }
html, body { overflow-x: hidden; width: 100%; }

body {
  font-family: 'Inter', sans-serif;
  color: var(--text-dark);
  background-color: #f2f0ff;
  padding-top: var(--nav-h);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body.preload .hero-overlay,
body.preload .hero-image,
body.preload .gestion-container,
body.preload .modulos-container,
body.preload .beneficios-container,
body.preload .contact-container{
  opacity: 0;
  transform: translateY(12px);
}

body.page-loaded .hero-overlay,
body.page-loaded .hero-image,
body.page-loaded .gestion-container,
body.page-loaded .modulos-container,
body.page-loaded .beneficios-container,
body.page-loaded .contact-container{
  opacity: 1;
  transform: translateY(0);
}

.hero-overlay,
.hero-image,
.gestion-container,
.modulos-container,
.beneficios-container,
.contact-container{
  transition-duration: 0.65s;
  transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}

@media (prefers-reduced-motion: reduce){
  body.preload .hero-overlay,
  body.preload .hero-image,
  body.preload .gestion-container,
  body.preload .modulos-container,
  body.preload .beneficios-container,
  body.preload .contact-container{
    opacity: 1 !important;
    transform: none !important;
  }

  .hero-overlay,
  .hero-image,
  .gestion-container,
  .modulos-container,
  .beneficios-container,
  .contact-container{
    transition: none !important;
  }
}

.navbar {
  position: fixed;
  top: 0;
  width: 100%;
  background-color: var(--bg-light);
  z-index: 1000;
  transition: background-color 0.2s ease;
}

.navbar.navbar-dark { background-color: #5e74b6; }

.navbar-container {
  max-width: 1400px;
  margin: 0 auto;
  padding: clamp(15px, 2vw, 20px) clamp(40px, 5vw, 60px);
  height: var(--nav-h);
  transition: border-bottom 0.3s ease, padding 0.3s ease;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: clamp(20px, 5vw, 60px);
  position: relative;
}

.logo {
  display: flex;
  gap: 12px;
  cursor: pointer;
  flex-shrink: 0;
}

.logo-dot {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background-color: var(--primary-color);
  display: block;
  transition: background-color 0.3s ease;
}

.navbar.navbar-dark .logo-dot { background-color: #ffffff; }

.nav-menu {
  display: flex;
  list-style: none;
  gap: clamp(20px, 5vw, 60px);
  justify-content: center;

  border-bottom: 3px solid var(--primary-color);
  padding-bottom: 20px;
  margin-bottom: -20px;

  width: fit-content;
  margin: 0 auto -20px auto;
  transition: gap 0.3s ease;
}

.nav-link {
  text-decoration: none;
  color: var(--primary-color);
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0.8px;
  position: relative;
  white-space: nowrap;
  user-select: none;
  transition: color 0.3s ease, font-size 0.3s ease, transform 0.3s ease;
}

.navbar.navbar-dark .nav-link { color: #ffffff; }

.nav-link:hover {
  font-size: 18px;
  transform: scale(1.05);
}

.nav-link::after {
  content: '';
  position: absolute;
  bottom: -23px;
  left: 0;
  width: 0%;
  height: 3px;
  background-color: var(--secondary-color);
  transition: width 0.3s ease;
}

.nav-link:hover::after { width: 100%; }

.btn-ingresar {
  background-color: var(--primary-color);
  color: var(--white);
  border: none;
  padding: clamp(10px, 1.5vw, 12px) clamp(16px, 2.5vw, 28px);
  border-radius: 24px;
  font-weight: 700;
  cursor: pointer;
  font-size: clamp(12px, 2vw, 13px);
  letter-spacing: 0.5px;
  flex-shrink: 0;
  transition: background-color 0.3s ease, color 0.3s ease, transform 0.2s ease, box-shadow 0.3s ease;
  box-shadow: 0 2px 8px rgba(45, 21, 93, 0.1);
}

.btn-ingresar:hover {
  background-color: var(--secondary-color);
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(45, 21, 93, 0.2);
}

.navbar.navbar-dark .btn-ingresar {
  background-color: #ffffff;
  color: #5e74b6;
}

.navbar.navbar-dark .hamburger span{ background: #ffffff; }

.hamburger {
  display: none;
  width: 44px;
  height: 44px;
  border: none;
  background: transparent;
  cursor: pointer;

  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 6px;
}

.hamburger span {
  width: 30px;
  height: 3px;
  background: var(--primary-color);
  border-radius: 3px;
  transition: transform .25s ease, opacity .25s ease;
}

.hamburger.is-active span:nth-child(1) { transform: translateY(9px) rotate(45deg); }
.hamburger.is-active span:nth-child(2) { opacity: 0; }
.hamburger.is-active span:nth-child(3) { transform: translateY(-9px) rotate(-45deg); }

.hero {
  width: 100%;
  margin-top: 0px;
  height: calc(100vh - var(--nav-h));
  background-color: #f2f0ff;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.hero-content {
  width: 100%;
  height: 100%;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

.hero-image {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center bottom;
  transform: scale(clamp(1.1, 1.12, 1.15)) translateY(10px);
  z-index: 1;
  pointer-events: none;
  user-select: none;
  transition: transform 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.hero-overlay {
  position: absolute;
  top: 12%;
  left: 0;
  width: 100%;
  z-index: 5;
  display: flex;
  justify-content: center;
}

.hero-brand-row { display: flex; align-items: flex-start; gap: 0; }
.hr-section { display: flex; flex-direction: column; align-items: flex-start; }

.hero-brand {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(70px, 9vw, 90px);
  font-weight: 600;
  letter-spacing: clamp(32px, 5vw, 55px);
  color: #222222;
  line-height: 1;
  margin: 0;
}

.hero-brand .hr-text { color: #576cbc; }

.hero-dots{
  display: flex;
  gap: clamp(8px, 2vw, 18px);
  margin-top: clamp(6px, 2vw, 15px);
  margin-left: clamp(6px, 2vw, 20px);
}

.hero-dots .dot{
  width: clamp(18px, 4vw, 55px);
  height: clamp(18px, 4vw, 55px);
  border-radius: 50%;
  display: inline-block;
  transition: all 0.3s ease;
}

.hero-dots .light { background: var(--light-color); }
.hero-dots .mid   { background: #193b6d; }
.hero-dots .dark  { background: #0f2a52; }

.hero-side-text {
  position: absolute;
  bottom: 140px;
  width: 260px;
  z-index: 6;
  font-family: 'Inter', sans-serif;
  font-size: 18px;
  line-height: 1.4;
  color: #111;
  user-select: text;
}

.hero-side-text.left { left: 120px; }
.hero-side-text.right { right: 120px; }

.hero-line {
  display: block;
  width: 90px;
  height: 3px;
  background: var(--primary-color);
  margin-bottom: 18px;
  border-radius: 3px;
}

.gestion-humana{
  width: 100%;
  min-height: 100vh;
  height: auto;
  background: #5e74b6;
  display: flex;
  align-items: center;
  justify-content: center;
}

.gestion-container{
  max-width: 1200px;
  margin: 0 auto;

  padding-top: 0px;
  padding-left: 0px;
  padding-right: 10px;

  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
}

.gestion-title-section{
  width: 100%;
  margin-top: 80px;
  margin-bottom: -25px;
  text-align: center;
}

.gestion-content{
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  align-items: center;
  gap: clamp(20px, 4vw, 50px);
  width: 100%;
  margin-top: 20px;
  transition: gap 0.3s ease;
}

.gestion-text{
  color: #ffffff;
  font-family: 'Inter', sans-serif;
  text-align: left;
  width: 100%;
}

.gestion-content .gestion-text{
  margin-left: -10px;
  padding-left: 0px;
  padding-right: 0px;
}

.gestion-kicker{
  font-size: clamp(14px, 3.5vw, 20px);
  letter-spacing: clamp(1.2px, 0.2vw, 2px);
  font-weight: 500;
  opacity: 0.9;
  margin-bottom: 8px;
  text-transform: uppercase;
  transition: font-size 0.3s ease;
}

.gestion-title{
  font-size: clamp(32px, 7vw, 64px);
  font-weight: 900;
  margin-bottom: 8px;
  line-height: 1.05;
  transition: font-size 0.3s ease;
}

.gestion-desc{
  font-size: clamp(14px, 2.2vw, 20px);
  line-height: 1.7;
  opacity: 0.95;
  margin: 0;
  max-width: 100%;
  transition: font-size 0.3s ease;
}

.gestion-img{
  width: 100%;
  height: clamp(280px, 35vw, 450px);
  object-fit: cover;
  border-radius: 16px;
  display: block;
  object-position: center;
  transition: height 0.3s ease;
}

.gestion-kicker,
.gestion-title{
  text-align: center !important;
}

.gestion-content .gestion-text{
  text-align: left;
}

.modulos-section {
  width: 100%;
  min-height: 100vh;
  height: auto;
  background: #f2f0ff;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
}

.modulos-bg-image {
  position: absolute;
  top: 55%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: clamp(320px, 85vw, 1400px);
  height: auto;
  z-index: 1;
  pointer-events: none;
  user-select: none;
  max-width: 100%;
  transition: none;
}

.modulos-bg {
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
}

.modulos-container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding-top: 15px;
  padding-left: 24px;
  padding-right: 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  position: relative;
  z-index: 2;
}

.modulos-title-section { width: 100%; margin-top: 70px; text-align: center; }
.modulos-text { color: #111111; font-family: 'Inter', sans-serif; text-align: center; width: 100%; }

.modulos-kicker {
  font-size: clamp(14px, 3.5vw, 20px);
  letter-spacing: clamp(1.2px, 0.2vw, 2px);
  font-weight: 500;
  opacity: 0.7;
  margin-bottom: 8px;
  text-transform: uppercase;
}

.modulos-title {
  font-family: 'Inter', sans-serif;
  font-size: clamp(26px, 5.5vw, 50px);
  font-weight: 400;
  margin-bottom: 8px;
  line-height: 1.05;
  color: #576cbc;

  white-space: normal;
  overflow-wrap: anywhere;
}

.modulos-title-span { color: #576cbc; font-weight: 700; letter-spacing: clamp(1.5px, 0.3vw, 3px); }

.modulos-gallery {
  width: 100%;
  margin-top: 15px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(14px, 3vw, 30px);
  align-items: start;
  justify-items: center;
  overflow: hidden;
}

.modulos-gallery-img {
  width: 100%;
  max-width: 500px;
  height: auto;
  display: block;
  border-radius: clamp(8px, 2vw, 16px);
  object-fit: cover;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  box-shadow: 0 4px 20px rgba(45, 21, 93, 0.08);
  overflow: hidden;
}

.modulos-gallery-img:hover {
  transform: scale(1.02);
  box-shadow: 0 8px 30px rgba(45, 21, 93, 0.15);
}

/* SUBTÍTULO */
.modulos-subtitle{
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: 30px;
}

.modulos-line{ display: none; }

.modulos-subtitle-text{
  display: inline-block;
  position: relative;
  padding-top: 14px;
  font-family: 'Inter', sans-serif;
  font-size: var(--subtitle-size) !important;
  color: var(--primary-color);
  font-style: italic;
  text-align: center;
  line-height: var(--subtitle-line) !important;
  margin: 0;
}

.modulos-subtitle-text::before{
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 90px;
  height: 3px;
  background: var(--primary-color);
  border-radius: 3px;
}

.beneficios-section{
  width: 100%;
  min-height: calc(100vh - var(--nav-h));
  height: auto;
  background: #5e74b6;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 55px 16px;
  scroll-margin-top: 50px;
}

.beneficios-container{
  width: 100%;
  max-width: 1100px;
  text-align: center;
}

.beneficios-title{
  font-family: 'Inter', sans-serif;
  font-size: clamp(28px, 3.5vw, 48px) !important;
  font-weight: 300;
  letter-spacing: 1.5px;
  color: #ffffff;
  margin-bottom: 38px;
  text-transform: uppercase;
}

.beneficios-bold { font-weight: 700; }

.beneficios-grid{
  width: 100%;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(18px, 2.8vw, 40px);
  align-items: start;
  justify-items: center;
}

.beneficio-item{
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  max-width: 260px;
}

.beneficio-icon{
  width: clamp(105px, 11vw, 190px) !important;
  height: auto;
  object-fit: contain;
  display: block;
  filter: drop-shadow(0 6px 14px rgba(0,0,0,0.15));
  transition: transform 0.3s ease;
  cursor: pointer;
}

.beneficio-icon:hover { transform: scale(1.15); }

.beneficio-text{
  font-family: 'Inter', sans-serif;
  font-size: clamp(15px, 1.75vw, 22px);
  color: #ffffff;
  font-style: italic;
  line-height: 1.15;
  opacity: 0.95;
  text-align: center;
}

.beneficio-escalabilidad { margin-top: 15px; }

.beneficios-footer{
  margin-top: 38px;
  width: 100%;
  display: flex;
  justify-content: center;
}

.beneficios-footer-text{
  font-family: 'Inter', sans-serif;
  display: inline-block;
  position: relative;
  padding-top: 14px;
  font-size: var(--subtitle-size) !important;
  color: #ffffff;
  font-style: italic;
  line-height: var(--subtitle-line) !important;
  opacity: 0.95;
  text-align: center;
}

.beneficios-footer-text::before{
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 120px;
  height: 3px;
  background: #ffffff;
  border-radius: 3px;
}

.contact-section{
  width: 100%;
  min-height: auto;
  background: #f2f0ff;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 70px 20px;
  scroll-margin-top: 60px;
}

.contact-container{ width: 100%; max-width: 1250px; }

.contact-title{
  text-align: center;
  font-family: 'Inter', sans-serif;
  font-size: clamp(28px, 3.5vw, 48px);
  font-weight: 900; /* ✅ negrilla fuerte (como lo dejaste al final) */
  letter-spacing: 2px;
  color: #576cbc;
  margin-bottom: 60px;
  font-style: normal;
}

.contact-grid{
  width: 100%;
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: clamp(30px, 5vw, 70px);
  align-items: center;
}

/* IZQUIERDA */
.contact-left{
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  margin-top: -150px;
}

.contact-follow{
  font-family: 'Inter', sans-serif;
  font-size: clamp(16px, 2vw, 24px);
  font-weight: 600;
  font-style: italic;
  color: #576cbc;
  margin-bottom: 2px;
  text-align: center;
}

.contact-social{
  font-family: 'Inter', sans-serif;
  font-size: clamp(36px, 4vw, 60px);
  font-weight: 400; /* ✅ sin negrilla (como lo dejaste al final) */
  font-style: italic;
  color: #576cbc;
  line-height: 0.95;
  margin-bottom: 2px;
  white-space: nowrap;
}

.contact-icons{
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: center;
  margin-bottom: 0px;
}

.contact-icon-wrap{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
  transition: transform .25s ease;
}

.contact-icon-wrap:hover{ transform: translateY(-4px) scale(1.06); }

.contact-icon-img{
  width: clamp(55px, 5.5vw, 75px);
  height: auto;
  object-fit: contain;
  display: block;
}

/* FORM */
.contact-form{ width: 100%; display: flex; flex-direction: column; gap: 12px; }
.contact-row{ display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.contact-field{ width: 100%; display: flex; flex-direction: column; gap: 10px; }
.contact-label{ font-family: 'Inter', sans-serif; font-size: 20px; font-weight: 700; color: #576cbc; }

.contact-input{
  width: 100%;
  height: 64px;
  border-radius: 40px;
  background: #dcd9ee;
  border: none;
  outline: none;
  padding: 0 26px;
  font-size: 16px;
  color: #2d155d;
}

.contact-input::placeholder{ color: rgba(45, 21, 93, 0.45); }

.contact-field-full{ width: 100%; }

.contact-textarea{
  width: 100%;
  min-height: 220px;
  border-radius: 30px;
  background: #dcd9ee;
  border: none;
  outline: none;
  padding: 18px 22px;
  font-size: 16px;
  resize: none;
  color: #2d155d;
}

.contact-btn{
  width: fit-content;
  margin-top: 18px;
  padding: 10px 20px;
  border-radius: 14px;
  border: none;
  cursor: pointer;
  background: #2d155d;
  color: #ffffff;
  font-weight: 800;
  letter-spacing: 1px;
  font-size: 16px;
  transition: transform .25s ease, background .25s ease, box-shadow .25s ease;
  box-shadow: 0 10px 25px rgba(45, 21, 93, 0.15);
}

.contact-btn:hover{
  transform: translateY(-2px);
  background: #576cbc;
  box-shadow: 0 14px 35px rgba(45, 21, 93, 0.20);
}

/* ==========================
   ✅ WHATSAPP (FIJO SIEMPRE + COLORES INVERTIDOS)
========================== */
.whatsapp-float{
  position: fixed;
  right: 18px;
  bottom: 22px;
  z-index: 9999;

  height: 74px;
  width: 74px;
  border-radius: 90px;

  background: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;

  box-shadow: 0 14px 32px rgba(0,0,0,0.22);

  transform: none !important;
  transition: filter 0.2s ease, transform 0.2s ease;
}

.whatsapp-float:hover{
  transform: translateY(-2px);
  filter: brightness(1.02);
}

.whatsapp-svg{
  width: 46px;
  height: 46px;
  display: block;
}

.whatsapp-float svg{ fill: #25D366; }

@media (max-width: 1024px) {
  .modulos-title-section { margin-top: 10px; }
  .modulos-bg-image{ top: 74%; width: clamp(300px, 60vw, 620px); }
  .modulos-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .modulos-gallery-img { max-width: 320px; }
}

@media (max-width: 768px) {
  .modulos-section { padding: 55px 0; height: auto; min-height: auto; }
  .modulos-container { padding-top: 12px; padding-left: 12px; padding-right: 12px; }
  .modulos-title-section { margin-top: 10px; }
  .modulos-title { font-size: clamp(30px, 7vw, 42px); }
  .modulos-bg-image{ top: 78%; width: clamp(260px, 75vw, 520px); opacity: 0.95; }
  .modulos-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(12px, 2vw, 18px); }
  .modulos-gallery-img { max-width: 320px; }
}

@media (max-width: 520px) {
  .modulos-gallery { grid-template-columns: 1fr; }
  .modulos-gallery-img{ max-width: 360px; }
  .modulos-section { height: auto; min-height: auto; }
  .modulos-bg-image{
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: clamp(280px, 85vw, 600px);
    height: auto;
  }
}

@media (max-width: 1280px) {
  .navbar-container { padding: 18px 50px; gap: 50px; }
  .nav-menu { gap: 40px; }
  .hero-brand { font-size: clamp(70px, 10vw, 90px); letter-spacing: clamp(35px, 5vw, 55px); }
}

@media (max-width: 1200px) {
  .navbar-container { padding: 18px 40px; gap: 40px; }
  .nav-menu { gap: 34px; }
  .hero-overlay { top: 10%; }
  .hero-brand { font-size: clamp(65px, 9vw, 82px); letter-spacing: clamp(28px, 4.5vw, 42px); }
  .hero-side-text.left { left: 70px; }
  .hero-side-text.right { right: 70px; }
}

@media (max-width: 1100px) {
  .gestion-content { grid-template-columns: 1.12fr 0.88fr; gap: 35px; }
  .gestion-img { height: 400px; }
  .gestion-desc { font-size: 18px; }
}

@media (max-width: 1024px) {
  .navbar-container { padding: 15px 22px; gap: 20px; }
  .nav-menu { gap: 20px; }
  .hero-overlay { top: 8%; }
  .hero-brand { font-size: clamp(60px, 8vw, 72px); letter-spacing: clamp(22px, 3.8vw, 26px); }
  .hero-side-text { display: none; }
  .logo { display: none; }

  .gestion-container{ padding-left: 24px; padding-right: 24px; }
  .gestion-content{ grid-template-columns: 1.15fr 0.85fr; gap: 24px; margin-top: 20px; align-items: center; }
  .gestion-desc{ max-width: 100%; font-size: 16px; line-height: 1.65; }
  .gestion-img{ height: 360px; object-fit: cover; object-position: center; }
  .gestion-content .gestion-text{ margin-left: 0; padding-left: 8px; padding-right: 8px; }

  /* FIX HERO (tablet) */
  .hero-content{ align-items: center; justify-content: center; }
  .hero-image{
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 35%;
    transform: none;
  }
}

@media (max-width: 950px) {
  .navbar-container { padding: 14px 18px; }
  .nav-menu { gap: 18px; }
  .hero-brand { font-size: clamp(58px, 7.5vw, 70px); letter-spacing: clamp(20px, 3.5vw, 24px); }
  .gestion-content { grid-template-columns: 1.1fr 0.9fr; gap: 22px; }
  .gestion-desc { font-size: 15px; }
  .gestion-title { font-size: 56px; }
}

@media (max-width: 900px) {
  .nav-menu { gap: 16px; }
  .hero-overlay { top: 9%; }
  .hero-brand { font-size: clamp(54px, 7vw, 64px); letter-spacing: clamp(18px, 3.2vw, 20px); }
  .gestion-content { grid-template-columns: 1.05fr 0.95fr; gap: 20px; }
  .gestion-desc { font-size: 15px; }
  .gestion-content .gestion-text{ padding-left: 12px; padding-right: 12px; }
}

@media (max-width: 820px) {
  .hero-brand { font-size: clamp(50px, 6.5vw, 60px); }
  .gestion-content { grid-template-columns: 1fr 1fr; }
  .gestion-desc { font-size: 14px; }
  .gestion-img { height: 340px; }
  .gestion-title { font-size: 48px; }
}

@media (max-width: 768px) {
  :root { --nav-h: 70px; }
  body { padding-top: var(--nav-h); }

  .navbar-container {
    padding: 10px 15px;
    height: var(--nav-h);
    gap: 10px;
  }

  .logo { display: none; }

  .hamburger {
    display: inline-flex;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
  }

  .btn-ingresar {
    padding: 10px 16px;
    font-size: 13px;
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
  }

  .nav-menu {
    position: fixed;
    top: var(--nav-h);
    left: 0;
    right: 0;
    width: 100%;

    flex-direction: column;
    align-items: center;
    gap: 14px;

    background: var(--bg-light);
    margin: 0;
    border-bottom: 2px solid var(--primary-color);
    z-index: 999;

    max-height: 0;
    padding: 0;
    overflow: hidden;
    opacity: 0;

    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1),
                opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1),
                padding 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  }

  .nav-menu.open {
    max-height: 320px;
    opacity: 1;
    padding: 20px 0;
  }

  .nav-menu.open .nav-link{ color: #2d155d !important; }
  .nav-link::after { display: none; }

  .hero { height: calc(100vh - var(--nav-h)); overflow: hidden; }

  .hero-content {
    position: relative;
    width: 100%;
    height: 100%;
    align-items: flex-end;
    justify-content: center;
  }

  .hero-image{
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 30%;
    transform: none;
  }

  .hero-overlay { top: 84px; }
  .hero-brand-row { padding-left: 56px; }

  .hero-brand {
    font-size: clamp(36px, 7.2vw, 50px);
    letter-spacing: clamp(8px, 2.5vw, 14px);
    text-align: center;
  }

  .hero-dots {
    justify-content: flex-end !important;
    margin-left: 0 !important;
    width: 100%;
    padding-right: 16vw;
  }

  .hero-side-text { display: none; }

  .gestion-humana{ padding: 55px 0; }

  .gestion-container{
    padding-top: 0px;
    padding-left: 10px;
    padding-right: 10px;
  }

  .gestion-title-section{
    margin-top: 45px;
    margin-bottom: -10px;
  }

  .gestion-kicker{
    font-size: 13px;
    letter-spacing: 1.5px;
  }

  .gestion-title{
    font-size: clamp(32px, 8vw, 40px);
  }

  .gestion-desc{
    font-size: clamp(14px, 4vw, 16px);
    line-height: 1.5;
    opacity: 0.95;
    margin: 0;
    max-width: 100%;
  }

  .gestion-img{ height: clamp(280px, 50vw, 340px); }

  .gestion-content{
    grid-template-columns: 1fr;
    margin-top: 10px;
    gap: 10px;
  }

  .gestion-kicker,
  .gestion-title{ text-align: center; }

  .gestion-content .gestion-text{
    margin-left: 0px;
    text-align: left;
    padding-left: 16px;
    padding-right: 16px;
  }
}

@media (max-width: 640px) {
  .hero-overlay { top: 80px; }
  .hero-brand-row { padding-left: 45px; }

  .hero-dots { padding-right: 14vw; }

  .gestion-title { font-size: clamp(28px, 7vw, 36px); }
  .gestion-desc { font-size: clamp(13px, 3.5vw, 15px); }
  .gestion-img { height: clamp(260px, 45vw, 320px); }

  .gestion-content .gestion-text{ padding-left: 15px; padding-right: 15px; }
}

@media (max-width: 600px){
  .gestion-img{ height: 280px; object-position: center top; }
}

@media (max-width: 520px) {
  .hero-overlay { top: 76px; }
  .hero-brand-row { padding-left: 34px; }

  .hero-dots { padding-right: 12vw; }

  .gestion-title { font-size: clamp(26px, 6.5vw, 32px); }
  .gestion-desc { font-size: clamp(13px, 3vw, 14px); line-height: 1.45; }
  .gestion-img { height: clamp(240px, 40vw, 300px); }
  .gestion-content { gap: 10px; margin-top: 12px; }

  .gestion-content .gestion-text{ padding-left: 14px; padding-right: 14px; }
}

@media (max-width: 420px) {
  .btn-ingresar { padding: 9px 14px; font-size: 12px; }
  .hero-brand-row { padding-left: 28px; }
  .hero-brand { letter-spacing: clamp(6px, 2vw, 8px); }
  .hero-dots { padding-right: 11vw; }

  .gestion-title { font-size: clamp(24px, 6vw, 28px); }
  .gestion-desc { font-size: clamp(12px, 2.8vw, 13px); }

  .gestion-content .gestion-text{ padding-left: 13px; padding-right: 13px; }
}

@media (max-width: 380px) {
  .btn-ingresar { padding: 9px 14px; font-size: 12px; }
  .hero-brand-row { padding-left: 24px; }
  .hero-brand { letter-spacing: clamp(6px, 1.8vw, 7px); }
  .hero-dots { padding-right: 10vw; }

  .gestion-content .gestion-text{ padding-left: 12px; padding-right: 12px; }
}

@media (max-width: 1024px) {
  .beneficios-section{ padding: 45px 16px; }
  .beneficios-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
  .beneficios-title{ font-size: clamp(24px, 3.6vw, 40px) !important; margin-bottom: 30px; }
  .beneficio-icon{ width: clamp(120px, 14vw, 200px) !important; }
}

@media (max-width: 600px) {
  .beneficios-section{ padding: 40px 14px; }
  .beneficios-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
  .beneficios-title{ font-size: clamp(22px, 6vw, 34px) !important; margin-bottom: 26px !important; }
  .beneficio-icon{ width: clamp(110px, 22vw, 160px) !important; }
  .beneficios-footer{ margin-top: 28px; }
  .beneficios-footer-text::before{ width: 95px; }
}

@media (max-width: 1024px) and (min-width: 601px){
  .contact-form{ max-width: 640px; margin: 0 auto; }
  .contact-input{ height: 70px; }
  .contact-textarea{ min-height: 320px; }
  .contact-section{ padding: 55px 20px; }
}

/* ✅ Cuando se apila en vertical (<=1024): SOLO "¡CONTACTANOS!" + iconos pegados */
@media (max-width: 1024px){
  .contact-grid{ grid-template-columns: 1fr; gap: 30px; }
  .contact-left{
    margin-top: 0 !important;
    align-items: center;
    text-align: center;
  }

  .contact-title{
    display: block !important;
    margin-bottom: 16px !important;
    font-weight: 900 !important;
  }

  .contact-follow,
  .contact-social{
    display: none !important;
  }

  .contact-left::after{
    content: none !important;
    display: none !important;
  }

  .contact-icons{
    margin-top: 0 !important;
    margin-bottom: 10px !important;
    gap: 10px;
    justify-content: center;
  }
}

@media (max-width: 600px){
  .contact-section{ padding: 55px 16px; }
  .contact-left{ margin-top: -40px; }
  .contact-row{ grid-template-columns: 1fr; gap: 18px; }
  .contact-input{ height: 58px; }
  .contact-textarea{ min-height: 200px; }
  .contact-btn{ width: 100%; text-align: center; padding: 12px 18px; border-radius: 16px; }
}

/* CONTACTO móvil: form debajo */
@media (max-width: 600px){
  .contact-grid{ display: flex; flex-direction: column; gap: 18px; }
  .contact-left{ order: 1; }
  .contact-form{ order: 2; width: 100%; max-width: 520px; margin: 0 auto; }
  .contact-textarea{ min-height: 240px; }
}

/* ✅ iPad Air (820) tweaks */
@media (width: 820px) {
  .contact-section{
    min-height: auto;
    align-items: flex-start;
    justify-content: flex-start;
    padding: 45px 20px;
  }
  .contact-left{ margin-top: 0; }
  .contact-title{ margin-bottom: 28px; }
  .contact-grid{ gap: 22px; align-items: flex-start; }
  .contact-form{ max-width: 600px; }
  .contact-textarea{ min-height: 340px; }
}

@media (width: 820px) {
  .gestion-title-section{
    margin-top: 70px;
    margin-bottom: 20px;
    text-align: center;
  }

  .gestion-kicker{
    font-size: 18px;
    line-height: 1.4;
    margin-bottom: 14px;
  }

  .gestion-title{
    font-size: 56px;
    line-height: 1.12;
    margin-bottom: 22px;
  }

  .gestion-content{
    grid-template-columns: 1fr;
    gap: 18px;
    margin-top: 14px;
  }

  .gestion-content .gestion-text{
    text-align: center;
    margin-left: 0;
    padding-left: 26px;
    padding-right: 26px;
  }

  .gestion-desc{
    font-size: 18px;
    line-height: 1.9;
    max-width: 720px;
    margin: 0 auto;
  }

  .gestion-desc br{
    content: "";
    display: block;
    margin: 14px 0;
  }

  .gestion-card{ display: flex; justify-content: center; }

  .gestion-img{
    width: min(520px, 100%);
    height: 360px;
    object-fit: cover;
    object-position: center;
  }
}

@media (min-width: 768px) and (max-width: 1024px){
  .gestion-kicker{
    font-size: clamp(20px, 2.6vw, 26px) !important;
    line-height: 1.35 !important;
    letter-spacing: 2px !important;
    margin-bottom: 16px !important;
  }

  .gestion-title{
    font-size: clamp(62px, 6.5vw, 76px) !important;
    line-height: 1.05 !important;
    margin-bottom: 26px !important;
  }

  .gestion-img{
    height: 440px !important;
    width: min(720px, 100%) !important;
    object-fit: cover !important;
    object-position: center !important;
  }

  .gestion-content{ row-gap: 22px !important; }
}

@media (max-width: 600px){
  .gestion-kicker{
    font-size: 13px !important;
    line-height: 1.35 !important;
    letter-spacing: 1.6px !important;
    margin-bottom: 12px !important;
  }

  .gestion-title{
    font-size: 30px !important;
    line-height: 1.08 !important;
    margin-bottom: 18px !important;
  }

  .gestion-content{ row-gap: 14px !important; }

  .gestion-content .gestion-text{ text-align: center !important; }

  .gestion-desc{
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
    margin-top: 0 !important;
  }
}

@media (min-width: 768px) and (max-width: 1024px){
  .whatsapp-float{
    width: 86px;
    height: 86px;
    border-radius: 90px;
    right: 20px;
    bottom: 24px;
  }

  .whatsapp-svg{
    width: 56px;
    height: 56px;
  }
}

/* Móvil */
@media (max-width: 600px){
  .whatsapp-float{
    width: 72px;
    height: 72px;
    border-radius: 90px;
    right: 14px;
    bottom: 18px;
  }

  .whatsapp-svg{
    width: 46px;
    height: 46px;
  }
}

@media (min-width: 768px) and (max-width: 1024px){

  /* Aire antes de la siguiente sección */
  .modulos-section{
    padding-bottom: 80px;
  }

  /* Separación del subtítulo */
  .modulos-subtitle{
    margin-bottom: 55px;
  }

  /* ✅ Ambos subtítulos con MISMO tamaño en iPad */
  .modulos-subtitle-text,
  .beneficios-footer-text{
    font-size: 20px !important;   /* ajusta si quieres 18/19/21 */
    line-height: 1.6 !important;
  }

  /* ✅ 14.png SIEMPRE al pie de la sección MÓDULOS (iPad) */
  .modulos-bg-image{
    top: auto !important;
    bottom: 0 !important;
    left: 50%;
    transform: translateX(-50%) !important;
    width: clamp(300px, 85vw, 1200px);
  }
  .modulos-tittle, .beneficios-title, .contact-title{font-size:  40px !important; line-height:  1.08 !important;} 
}


/* =========================================
   ✅ TOAST (aviso bonito)
   - Agrega en HTML: <div class="toast" id="toast"></div>
========================================= */
.toast{
  position: fixed;
  top: 18px;
  right: 18px;
  z-index: 99999;

  background: #2d155d;
  color: #ffffff;

  padding: 14px 16px;
  border-radius: 14px;

  box-shadow: 0 14px 32px rgba(0,0,0,0.22);
  font-family: 'Inter', sans-serif;
  font-weight: 800;
  letter-spacing: .3px;
  font-size: 15px;

  opacity: 0;
  transform: translateY(-10px);
  pointer-events: none;

  transition: opacity .25s ease, transform .25s ease;
}

.toast.show{
  opacity: 1;
  transform: translateY(0);
}

.toast.error{
  background: #b00020;
}

/* En tablet/móvil lo hacemos centrado y ancho completo */
@media (max-width: 1024px){
  .toast{
    left: 16px;
    right: 16px;
    text-align: center;
  }
}

/* =========================================
   ✅ TURNSTILE (captcha)
   - Manual execute: no ocupa espacio raro
   - Se muestra como botón/challenge cuando ejecutas
========================================= */

/* Empuja un poco el captcha y que se vea limpio */
#tsWidget{
  margin-top: 8px;
  margin-bottom: 14px;
}

/* Si el widget queda muy pegado en algunos tamaños */
@media (max-width: 600px){
  #tsWidget{
    margin-top: 10px;
    margin-bottom: 12px;
  }
}

/* Evita que el iframe (si aparece) se salga */
#tsWidget iframe{
  max-width: 100% !important;
}

/* Si quieres que el "botón/captcha" quede centrado dentro del form */
#tsWidget{
  display: flex;
  justify-content: flex-start; /* cambia a center si lo prefieres centrado */
}

/* En móviles lo centramos para que se vea más pro */
@media (max-width: 600px){
  #tsWidget{
    justify-content: center;
  }
}


input[name="website"]{
  position: absolute !important;
  left: -9999px !important;
  opacity: 0 !important;
  height: 0 !important;
  width: 0 !important;
  pointer-events: none !important;
}

#formStatus{
  display: none !important;
}

.contact-actions{
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  margin-top: 10px;
}

/* botón sin margen extra */
.contact-actions .contact-btn{
  margin-top: 0;
}

/* ✅ contenedor del captcha: RECTÁNGULO */

/* el iframe no se sale y queda centrado */
#tsWidget iframe{
  max-width: 100% !important;
  height: 100% !important;
  display: block;
}

/* ✅ en móvil: mejor centrado y ocupa el ancho */
/* En móvil: se apila bonito */
@media (max-width: 600px){
  .contact-actions{
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }
  #tsWidget{
    justify-content: center;
  }
  .contact-actions .contact-btn{
    width: 100%;
  }
}