
/* ===== AESAL overrides v2 ===== */

/* 1) Hero header: sin sombra, esquinas superiores redondeadas y leve margen */
.hero-header {
  margin-top: 12px;
  border-radius: 24px 24px 0 0;
  overflow: hidden;
  box-shadow: none; /* sin shadow abajo */
  position: relative;
}
@media (max-width: 991.98px) {
  .hero-header {
    border-radius: 18px 18px 0 0;
    margin-top: 8px;
  }
}

/* 2) Carousel: mostrar tarjetas con tamaño natural (no estiradas) */
.screenshot-carousel .owl-item { 
  text-align: center; 
}
/* imagen real de tarjeta */
.screenshot-carousel .card-img {
  display: inline-block;
  width: auto;           /* no forzar 100% */
  height: auto;          /* no estirar vertical */
  max-width: 100%;       /* que no desborde en pantallas pequeñas */
  max-height: 460px;     /* altura cómoda para hero */
  object-fit: contain;   /* respetar proporción */
  border-radius: 14px;
}

/* Si usas tarjetas simuladas, también sin deformar el layout */
.screenshot-carousel .simulated-card {
  width: 223px;
  height: 470px;
  border-radius: 14px;
  box-shadow: 0 10px 24px rgba(0,0,0,.12);
  display: inline-block;
  position: relative;
  overflow: hidden;
}

/* Variantes simuladas */
.screenshot-carousel .sim--gold { background: linear-gradient(135deg, #FAD961 0%, #F76B1C 100%); }
.screenshot-carousel .sim--pink { background: linear-gradient(135deg, #FF6CAB 0%, #7366FF 100%); }
.screenshot-carousel .sim--silver { background: linear-gradient(135deg, #ECE9E6 0%, #FFFFFF 100%); }
.screenshot-carousel .sim--black { background: linear-gradient(135deg, #434343 0%, #000000 100%); }
.screenshot-carousel .sim--blue { background: linear-gradient(135deg, #36D1DC 0%, #5B86E5 100%); }
.screenshot-carousel .sim--orange { background: linear-gradient(135deg, #F8B500 0%, #FCEABB 100%); }

.screenshot-carousel .simulated-card::after {
  content: "";
  position: absolute;
  top: 16px;
  right: 16px;
  width: 42px;
  height: 28px;
  border-radius: 6px;
  background: rgba(255,255,255,.35);
  filter: blur(.2px);
}

/* Corregir alturas forzadas si algún estilo previo las dejó fijas */
.screenshot-carousel .owl-stage,
.screenshot-carousel .owl-stage-outer {
  height: auto !important;
}







/* --- HERO profesional tipo mock --- */
.hero-header.hero-modern {
  margin-top: 12px;
  border-radius: 24px 24px 0 0; /* solo arriba */
  overflow: hidden;
  box-shadow: none; /* sin sombra inferior */
  position: relative;
}
@media (max-width: 991.98px) {
  .hero-header.hero-modern { border-radius: 18px 18px 0 0; margin-top: 8px; }
}

/* Pilar naranja central */
.hero-search-pillar{
  width: 64px; height: 360px;
  margin-inline: auto;
  border-radius: 12px;
  background: linear-gradient(180deg, #ff9a3f 0%, #ff7a00 100%);
  display: flex; align-items: center; justify-content: center;
  position: relative;
}
.hero-search-pillar .fa-star{
  color:#fff; font-size: 22px; opacity:.95;
}

/* Grid de tarjetas (derecha) */
.hero-cards-grid{
  display: grid;
  grid-template-columns: 1fr;
  grid-auto-rows: 140px;
  gap: 16px;
}
@media (min-width: 1200px){
  .hero-cards-grid{ grid-auto-rows: 160px; }
}
.hero-grid-img, .hero-grid-sim {
  width: 100%; height: 100%;
  object-fit: cover; border-radius: 14px;
  box-shadow: 0 8px 22px rgba(0,0,0,.15);
}

/* simuladas por si faltan imágenes */
.hero-grid-sim.sim--gold { background: linear-gradient(135deg, #FAD961 0%, #F76B1C 100%); }
.hero-grid-sim.sim--pink { background: linear-gradient(135deg, #FF6CAB 0%, #7366FF 100%); }
.hero-grid-sim.sim--blue { background: linear-gradient(135deg, #36D1DC 0%, #5B86E5 100%); }

/* --- Franja inferior “Featured” --- */
.feature-strip-wrapper{ margin-top: -28px; } /* se pega al hero como en el mock */
.feature-strip{
  background: linear-gradient(180deg, #101725 0%, #0b1322 100%);
  border-radius: 18px;
  padding: 14px 18px;
  box-shadow: 0 12px 28px rgba(0,0,0,.18);
}
.feature-row{
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(180px, 1fr);
  gap: 14px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}
.feat-card{
  display: flex;
  align-items: center;
  gap: 12px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 14px;
  padding: 12px 14px;
  color: #fff; text-decoration: none;
  transition: transform .2s ease, background .2s ease, border-color .2s ease;
}
.feat-card:hover{ transform: translateY(-2px); background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.12); }
.feat-icon{
  width: 46px; height: 46px; border-radius: 50%;
  background: linear-gradient(135deg, #5b86e5, #36d1dc);
  display:flex; align-items:center; justify-content:center;
  font-size: 20px; color: #fff;
}
.feat-text strong{ display:block; font-weight:600; }
.feat-text small{ opacity:.8; }



/* ===== Soluciones Corporativas & Club de Descuentos ===== */
.corp-card, .club-card {
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 18px;
  box-shadow: 0 10px 28px rgba(0,0,0,.06);
  background: #fff;
}

.corp-badge, .club-badge {
  background: linear-gradient(to bottom right, var(--primary), var(--secondary));
  color: #fff;
  font-weight: 600;
  border-radius: 999px;
  padding: 6px 10px;
  letter-spacing: .2px;
}

.corp-lead, .club-lead {
  color: #465064;
  font-weight: 400;
}

.corp-list li {
  display: flex; gap: 10px; align-items: start;
  padding: 8px 0; color: #5f6575;
  border-bottom: 1px dashed rgba(0,0,0,.08);
}
.corp-list li:last-child { border-bottom: 0; }
.corp-list i { color: var(--secondary); margin-top: 3px; }

/* Chips de rubros */
.chip {
  background: #f7f8fb;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 999px;
  padding: 8px 12px;
  font-size: .95rem;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #495467;
}
.chip i { color: var(--secondary); }

/* Carousel de afiliados */
.affiliates-carousel .aff-card {
  background: #fff;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 14px;
  height: 90px;
  display: flex; align-items: center; justify-content: center;
  padding: 10px;
  box-shadow: 0 6px 18px rgba(0,0,0,.05);
}
.affiliates-carousel .aff-card img {
  max-height: 60px; width: auto; object-fit: contain;
  filter: grayscale(10%);
  transition: filter .2s ease, transform .2s ease;
}
.affiliates-carousel .aff-card:hover img {
  filter: none; transform: scale(1.03);
}

/* Espaciado fino en móviles */
@media (max-width: 575.98px) {
  .corp-card .card-body, .club-card .card-body { padding: 20px; }
}


/* ===== Sección Vendedores (Contrata Aquí) ===== */
.vendor-card {
  background: #ffffff;
  border: 1px solid rgba(0,0,0,.06);
  box-shadow: 0 10px 28px rgba(0,0,0,.06);
}

.vendor-badge {
  background: linear-gradient(to bottom right, var(--primary), var(--secondary));
  color: #fff;
  font-weight: 600;
  border-radius: 999px;
  padding: 6px 10px;
  letter-spacing: .2px;
}

.vendor-input {
  background: #f9fbff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 12px;
  padding: 10px 12px;
}

.vendor-input:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 .2rem rgba(30,96,170,.15);
}

.vendor-safe {
  font-size: .9rem;
  color: #5f6575;
}

/* Pasos en una sola fila (4 col desktop, 2 tablet, 1 móvil) */
.process-grid.process-grid--wide {
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
@media (max-width: 991.98px) {
  .process-grid.process-grid--wide { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 575.98px) {
  .process-grid.process-grid--wide { grid-template-columns: 1fr; }
}

/* Modal vendedor: inputs y tipografía */
.vendor-input {
  background: #f9fbff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 12px;
  padding: 10px 12px;
}
.vendor-input:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 .2rem rgba(30,96,170,.15);
}
.vendor-safe {
  font-size: .9rem;
  color: #5f6575;
}


@media (max-width: 575.98px) {
  #vendedores .vendor-card { padding: 20px; }
}


#ubicacion iframe,
#vendorAccessModal iframe {
  filter: grayscale(10%) contrast(105%);
  transition: filter .3s ease;
}

#ubicacion iframe:hover,
#vendorAccessModal iframe:hover {
  filter: none;
}


/* CTA WhatsApp */
.contact-cta {
  background: #f7f8fb;
  border: 1px solid rgba(0,0,0,.06);
  box-shadow: 0 10px 28px rgba(0,0,0,.06);
}
.cta-logo {
  height: 36px; width: auto; object-fit: contain;
  filter: drop-shadow(0 2px 6px rgba(0,0,0,.08));
}
.contact-number {
  font-size: 1.8rem;
  font-weight: 800;
  color: #25D366; /* verde WhatsApp */
  letter-spacing: .5px;
}


/* ===== Chatbot bounds fix ===== */
/* ===== Chatbot: fijar dentro del viewport en móviles ===== */
#aesal-chatbot{
  position: fixed;
  right: clamp(5px, env(safe-area-inset-right) + 5px, 16px) !important;
  bottom: clamp(5px, env(safe-area-inset-bottom) + 5px, 16px) !important;
  z-index: 1045; /* debajo de modals Bootstrap (~1050), encima de botones flotantes */
}

/* FAB */
#aesal-chatbot .chat-fab{
  width:56px; height:56px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  border:0; color:#fff; cursor:pointer;
  background: linear-gradient(to bottom right, var(--primary, #0d6efd), var(--secondary, #6f42c1));
  box-shadow:0 10px 28px rgba(0,0,0,.18);
}

/* Panel: anclado al FAB y con ancho máximo por viewport */
#aesal-chatbot .chat-panel{
  position:absolute;
  right:0;
  bottom:68px; /* alto del FAB + separación */
  width:min(360px, calc(100vw - 24px));
  max-height:min(70vh, calc(100dvh - 120px));
  background:#fff;
  border:1px solid rgba(0,0,0,.08);
  border-radius:16px;
  box-shadow:0 16px 38px rgba(0,0,0,.18);
  overflow:hidden;          /* evita desbordes visuales */
  display:none;
}

/* En móviles pequeños: ocupar casi todo el ancho disponible, sin salirse */
@media (max-width: 575.98px){
  #aesal-chatbot{
    right: clamp(25px, env(safe-area-inset-right) + 10px, 12px) !important;
    bottom: clamp(10px, env(safe-area-inset-bottom) + 10px, 12px);
  }
  #aesal-chatbot .chat-panel{
    left:auto;            /* asegura que no calcule un “left” que empuje fuera */
    right:0;              /* pegado al borde interno */
    width: calc(100vw - 24px);
    max-height: min(72vh, calc(100dvh - 110px));
  }
  #aesal-chatbot .chat-body{
    height: clamp(280px, 48vh, 380px); /* alto cómodo en móviles */
    overflow:auto;
    -webkit-overflow-scrolling: touch;
  }
}

/* Burbujas y header con fallbacks de color */
#aesal-chatbot .chat-header{
  background: linear-gradient(to bottom right, var(--primary, #0d6efd), var(--secondary, #6f42c1));
  color:#fff;
}
#aesal-chatbot .msg.user .bubble{
  background: linear-gradient(to bottom right, var(--primary, #0d6efd), var(--secondary, #6f42c1));
  color:#fff;
}









/* ===== Chatbot AESAL (fix) ===== */
#aesal-chatbot {
  position: fixed;
  right: 10px;
  bottom: 190px;
  z-index: 1085; /* > Bootstrap modals (1055) y otros flotantes */
}

/* Botón flotante */
.chat-fab{
  width:56px;height:56px;border-radius:50%;border:0;cursor:pointer;color:#fff;
  background: linear-gradient(
    to bottom right,
    var(--primary, #0d6efd),
    var(--secondary, #6f42c1)
  );
  box-shadow:0 10px 28px rgba(0,0,0,.18);
  display:flex;align-items:center;justify-content:center;
}
.chat-fab i{ font-size:1.4rem; }

/* Panel: absoluto dentro del contenedor fijo */
.chat-panel{
  position:absolute; right:0; bottom:68px; /* 56 btn + ~12px */
  width:340px; max-height:70vh;
  background:#fff; border:1px solid rgba(0,0,0,.08); border-radius:16px;
  box-shadow:0 16px 38px rgba(0,0,0,.18); display:none; overflow:hidden;
}
@media (max-width:575.98px){
  .chat-panel{ right:0; width:calc(100vw - 24px); left:12px; }
}

.chat-header{
  display:flex; align-items:center; justify-content:space-between; padding:10px 12px;
  background: linear-gradient(
    to bottom right,
    var(--primary, #0d6efd),
    var(--secondary, #6f42c1)
  );
  color:#fff;
}
.chat-brand{ display:flex; gap:10px; align-items:center;}
.chat-brand img{ width:34px; height:34px; object-fit:contain; border-radius:8px; background:#fff; }
.chat-brand small{ display:block; opacity:.9; }
.chat-close{ background:transparent; border:0; color:#fff; font-size:1.1rem; cursor:pointer; }

.chat-body{ padding:12px; height:340px; overflow:auto; background:#f8fafc; }
.msg{ display:flex; margin-bottom:10px; gap:8px; }
.msg.bot .bubble{ background:#fff; border:1px solid rgba(0,0,0,.06); color:#2e3a4d; }
.msg.user{ justify-content:flex-end; }
.bubble{
  max-width:78%; padding:10px 12px; border-radius:14px; box-shadow:0 2px 8px rgba(0,0,0,.06);
}
.msg.user .bubble{
  background:linear-gradient(
    to bottom right,
    var(--primary, #0d6efd),
    var(--secondary, #6f42c1)
  );
  color:#fff;
}
.msg .meta{ font-size:.75rem; color:#8691a6; margin-top:2px; }

.chat-footer{ padding:10px 12px; background:#fff; border-top:1px solid rgba(0,0,0,.06); }
.chat-actions{ display:flex; gap:8px; margin-bottom:8px; flex-wrap:wrap; }

/* Aumenta especificidad para que no choquen con Bootstrap .btn */
#aesal-chatbot .btn-chip{
  border:1px solid rgba(0,0,0,.08); background:#f4f6fb; color:#2d3548; border-radius:999px;
  padding:6px 10px; font-size:.9rem; cursor:pointer;
}

#chat-form{ display:flex; gap:8px; }
#chat-input{
  flex:1; border-radius:12px; border:1px solid rgba(0,0,0,.12); padding:10px 12px; background:#fff;
}
#chat-form button{
  border:0; width:44px; border-radius:12px; color:#fff; cursor:pointer;
  background: linear-gradient(
    to bottom right,
    var(--primary, #0d6efd),
    var(--secondary, #6f42c1)
  );
}
.suggestions{ display:flex; flex-direction:column; gap:6px; margin-top:8px; }
.btn-mini{ align-self:flex-start; border:0; background:transparent; color:var(--secondary, #6f42c1); padding:0; }
