/* =============================================================================
   GESCO MAULE — styles.css (ordenado + comentado)
   - Mantén este archivo como "global" (navbar + footer + secciones)
   - Prefijos:
     • General: clases existentes (site-header, nav, btn, footer...)
     • Hero:     gm-
   NOTA: No cambié tu lógica/estilos, solo:
   - Ordené bloques
   - Eliminé duplicados (mismo selector repetido con lo mismo)
   - Comenté cada sección
   ============================================================================= */

/* =============================================================================
   1) TOKENS / VARIABLES (colores, sombras, radios, anchos)
   - Definen el "sistema de diseño" del sitio.
   - Usamos tonos sobrios y un acento teal.
   ============================================================================= */
:root {
  --gm-ink: #0b1220;
  --gm-text: #0f172a;
  --gm-muted: #5b6677;
  --gm-bg: #f6f8fb;

  --gm-card: rgba(255, 255, 255, 0.8);
  --gm-border: rgba(15, 23, 42, 0.1);

  --gm-accent: #1f9d8a; /* teal sobrio */
  --gm-accent2: #176b5f; /* teal oscuro */
  --gm-navy: #0b1220;

  --gm-shadow: 0 18px 45px rgba(15, 23, 42, 0.12);
  --gm-shadow2: 0 10px 26px rgba(15, 23, 42, 0.1);

  --gm-radius: 18px;
  --gm-radius-lg: 26px;
  --gm-container: 1140px;
}

/* =============================================================================
   OFFSET PARA NAVBAR STICKY (evita que las secciones queden tapadas)
   - scroll-margin-top hace que los anchors (#id) se posicionen con margen superior
   - --gm-scroll-offset controla la distancia total bajo el header
============================================================================= */
:root {
  --gm-header-h: 74px; /* coincide con tu .header-inner min-height */
  --gm-header-gap: 16px; /* aire extra bajo el header */
  --gm-scroll-offset: calc(var(--gm-header-h) + var(--gm-header-gap));
}

/* Cualquier sección con id, al navegar desde el navbar, no quedará debajo del header */
section[id] {
  scroll-margin-top: var(--gm-scroll-offset);
}

/* =============================================================================
   2) BASE GLOBAL (reset suave + tipografía + comportamiento general)
   - Evita estilos “por defecto” del navegador (links, margenes, etc.)
   ============================================================================= */
* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth; /* scroll suave al hacer click en anchors (#) */
}

body {
  margin: 0;
  font-family: "Plus Jakarta Sans", system-ui, -apple-system, Segoe UI, Roboto,
    Arial, sans-serif;
  color: #0f172a;
  background: #fff;
}

img {
  max-width: 100%;
  display: block;
}

/* =============================================================================
   3) CONTENEDORES (layout global del sitio)
   - .container: lo usan navbar y footer (y futuras secciones globales)
   - .gm-container: contenedor propio del HERO (gm-)
   ============================================================================= */

/* Contenedor global (navbar/footer/secciones generales) */
.container {
  width: min(1140px, calc(100% - 40px));
  margin: 0 auto;
}

/* Contenedor independiente del HERO (no depende de estilos previos) */
.gm-container {
  width: min(var(--gm-container), calc(100% - 40px));
  margin: 0 auto;
}

/* =============================================================================
   4) NAVBAR (profesional + moderno)
   - Sticky + fondo con blur
   - Menú desktop + menú mobile con hamburger
   ============================================================================= */
.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: rgba(255, 255, 255, 0.82);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(15, 23, 42, 0.1);
}

/* Estructura interna del header: alinea logo, nav y botones */
.header-inner {
  min-height: 74px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

/* Link de marca (logo) */
.brand {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
}

/* Logo controlado (evita que se vea gigante) */
.brand-logo {
  height: 40px; /* ajusta 36–44 si quieres */
  width: auto;
  display: block;
  object-fit: contain;
}

/* Navegación desktop */
.nav {
  display: flex;
  align-items: center;
  gap: 10px;
}

/* Links del menú: estilo sobrio + hover suave */
.nav-link {
  position: relative;
  text-decoration: none;
  color: rgba(15, 23, 42, 0.78);
  font-weight: 850;
  font-size: 14px;
  padding: 10px 10px;
  border-radius: 999px;
  transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

.nav-link:hover {
  background: rgba(31, 157, 138, 0.1);
  color: rgba(15, 23, 42, 0.92);
}

/* Acciones del header (botones + hamburger) */
.header-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

/* Botones base (los usa el navbar) */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 42px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid rgba(15, 23, 42, 0.1);
  background: rgba(255, 255, 255, 0.82);
  color: rgba(15, 23, 42, 0.92);
  text-decoration: none;
  font-weight: 900;
  font-size: 14px;
  cursor: pointer;
  box-shadow: 0 10px 22px rgba(15, 23, 42, 0.06);
  transition: transform 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease;
}

.btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 14px 28px rgba(15, 23, 42, 0.1);
}

.btn:active {
  transform: translateY(0);
}

/* Variantes de botón */
.btn-primary {
  border: 0;
  background: linear-gradient(90deg, #1f9d8a, #176b5f);
  color: #07110d;
}

.btn-ghost {
  background: rgba(255, 255, 255, 0.6);
}

/* Botón hamburguesa (solo aparece en mobile) */
.nav-toggle {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  border: 1px solid rgba(15, 23, 42, 0.1);
  background: rgba(255, 255, 255, 0.82);
  display: none; /* se activa en mobile */
  align-items: center;
  justify-content: center;
  gap: 5px;
  cursor: pointer;
  box-shadow: 0 10px 22px rgba(15, 23, 42, 0.06);
}

.nav-toggle span {
  display: block;
  width: 18px;
  height: 2px;
  background: rgba(15, 23, 42, 0.78);
  border-radius: 99px;
}

/* Estado “menu abierto” en mobile (lo añade el JS) */
.site-header.is-open .nav {
  display: flex;
}

/* Navbar mobile: el menú pasa a ser desplegable tipo “panel” */
@media (max-width: 980px) {
  .nav {
    display: none;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    top: 76px;

    width: min(1140px, calc(100% - 40px));
    padding: 12px;

    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(15, 23, 42, 0.1);
    border-radius: 18px;
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.12);

    flex-direction: column;
    align-items: stretch;
    gap: 6px;
  }

  .nav-link {
    padding: 12px 12px;
    border-radius: 14px;
  }

  .nav-toggle {
    display: flex;
  }
}

/* =============================================================================
   5) FOOTER (profesional)
   - Fondo oscuro “corporativo”
   - Columnas en grid (3 columnas desktop, 1 mobile)
   - Links sin viñetas
   ============================================================================= */
.site-footer {
  margin-top: 40px;
  background: #0b1220;
  color: rgba(255, 255, 255, 0.86);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.2fr 0.9fr 0.9fr;
  gap: 22px;
  padding: 34px 0 18px;
}

/* Logo del footer */
.footer-brand img {
  height: 38px;
  width: auto;
  opacity: 0.95;
}

/* Títulos de columnas del footer */
.site-footer h4 {
  margin: 0 0 10px;
  font-size: 14px;
  letter-spacing: 0.02em;
  font-weight: 950;
  color: rgba(255, 255, 255, 0.92);
}

/* Texto descriptivo del footer */
.footer-text {
  margin: 12px 0 0;
  color: rgba(255, 255, 255, 0.72);
  line-height: 1.7;
  font-weight: 650;
}

/* Links del footer (sin estilo de lista por defecto) */
.footer-links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 8px;
}

.footer-links a {
  color: rgba(255, 255, 255, 0.78);
  text-decoration: none;
  font-weight: 750;
  padding: 6px 10px;
  border-radius: 12px;
  transition: background 0.15s ease, color 0.15s ease;
}

.footer-links a:hover {
  background: rgba(31, 157, 138, 0.14);
  color: rgba(255, 255, 255, 0.92);
}

/* Línea final del footer (copyright) */
.footer-bottom {
  padding: 14px 0 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.62);
  font-weight: 650;
}

/* Footer responsive (pasa a 1 columna) */
@media (max-width: 980px) {
  .footer-grid {
    grid-template-columns: 1fr;
    padding: 26px 0 14px;
  }
}

/* =============================================================================
   6) HERO — GESCO MAULE (gm-)
   - Layout a 2 columnas (texto + panel)
   - Botones y “proof cards”
   ============================================================================= */

/* Ajuste de ancho del bloque de texto del hero */
.gm-hero__copy {
  max-width: 640px;
}

/* HERO layout + fondo con gradientes suaves */
.gm-hero {
  position: relative;
  background: radial-gradient(
      900px 520px at 15% 10%,
      rgba(31, 157, 138, 0.14),
      transparent 60%
    ),
    radial-gradient(
      900px 520px at 85% 20%,
      rgba(11, 18, 32, 0.1),
      transparent 55%
    ),
    linear-gradient(180deg, #ffffff 0%, var(--gm-bg) 70%);
  padding: clamp(56px, 6vw, 90px) 0;
  overflow: hidden;
}

/* Capa decorativa adicional del hero (sutil) */
.gm-hero::before {
  content: "";
  position: absolute;
  inset: -2px;
  background: radial-gradient(
    540px 320px at 80% 70%,
    rgba(31, 157, 138, 0.12),
    transparent 65%
  );
  pointer-events: none;
}

/* Grid principal del hero: 2 columnas */
.gm-hero__grid {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: clamp(18px, 3vw, 34px);
  align-items: start;
  position: relative;
  z-index: 1;
}

/* Línea pequeña superior (kicker) */
.gm-hero__kicker {
  margin: 0 0 10px;
  color: rgba(15, 23, 42, 0.72);
  font-weight: 800;
  letter-spacing: 0.02em;
}

/* Título principal */
.gm-hero__title {
  margin: 0 0 12px;
  color: var(--gm-text);
  font-weight: 900;
  font-size: clamp(34px, 4.4vw, 54px);
  line-height: 1.05;
  letter-spacing: -0.02em;
}

/* Acento del título (palabra destacada) */
.gm-accent {
  color: var(--gm-accent2);
  position: relative;
}

/* Párrafo principal (lead) */
.gm-hero__lead {
  margin: 0 0 18px;
  color: rgba(15, 23, 42, 0.74);
  font-size: 16px;
  line-height: 1.75;
  max-width: 60ch;
}

/* Grupo de CTAs (botones) */
.gm-hero__cta {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 18px;
}

/* Botones del hero (gm-) */
.gm-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 46px;
  padding: 0 16px;
  border-radius: 999px;
  border: 1px solid var(--gm-border);
  background: rgba(255, 255, 255, 0.85);
  color: rgba(15, 23, 42, 0.92);
  text-decoration: none;
  font-weight: 900;
  font-size: 14px;
  cursor: pointer;
  box-shadow: 0 10px 22px rgba(15, 23, 42, 0.06);
  transition: transform 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease;
}

.gm-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 14px 28px rgba(15, 23, 42, 0.1);
}

.gm-btn:active {
  transform: translateY(0);
}

/* Variantes gm- */
.gm-btn--primary {
  border: 0;
  background: linear-gradient(90deg, var(--gm-accent), var(--gm-accent2));
  color: #07110d;
}

.gm-btn--ghost {
  background: rgba(255, 255, 255, 0.65);
}

/* Botón WhatsApp oscuro (gm-) */
.gm-btn--wa {
  border: 0;
  background: rgba(15, 23, 42, 0.92);
  color: rgba(255, 255, 255, 0.92);
}

/* Proof row: tarjetas pequeñas bajo el CTA */
.gm-hero__proof {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

/* Tarjeta proof (icono puntito + texto) */
.gm-proof {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 12px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(15, 23, 42, 0.08);
  box-shadow: var(--gm-shadow2);
  min-width: 220px;
}

/* Puntito/acento visual del proof */
.gm-proof__dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--gm-accent), var(--gm-accent2));
  box-shadow: 0 0 0 7px rgba(31, 157, 138, 0.16);
  margin-top: 5px;
}

/* Tipografía del proof */
.gm-proof__text strong {
  display: block;
  font-weight: 950;
}

.gm-proof__text small {
  display: block;
  margin-top: 2px;
  color: rgba(15, 23, 42, 0.68);
  font-weight: 750;
}

/* Panel derecho (resumen de servicio) */
.gm-panel {
  border-radius: var(--gm-radius-lg);
  background: radial-gradient(
      900px 480px at 20% 10%,
      rgba(31, 157, 138, 0.14),
      transparent 60%
    ),
    radial-gradient(
      900px 480px at 80% 30%,
      rgba(11, 18, 32, 0.14),
      transparent 60%
    ),
    var(--gm-card);
  border: 1px solid rgba(15, 23, 42, 0.1);
  box-shadow: var(--gm-shadow);
  padding: 18px;
}

.gm-panel__top {
  display: grid;
  gap: 12px;
}

/* Badge superior (Gestión activa + punto pulsante) */
.gm-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(15, 23, 42, 0.08);
  width: fit-content;
  font-weight: 950;
}

/* Punto pulsante del badge */
.gm-badge__pulse {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--gm-accent), var(--gm-accent2));
  box-shadow: 0 0 0 7px rgba(31, 157, 138, 0.16);
  animation: gmPulse 1.8s ease-in-out infinite;
}

/* Animación del punto pulsante */
@keyframes gmPulse {
  0%,
  100% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(1.15);
    opacity: 0.85;
  }
}

/* Grid de estadísticas (3 cards) */
.gm-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

.gm-stat {
  padding: 12px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(15, 23, 42, 0.08);
  box-shadow: var(--gm-shadow2);
}

.gm-stat strong {
  display: block;
  font-size: 22px;
  font-weight: 950;
  letter-spacing: -0.02em;
  color: var(--gm-text);
}

.gm-stat span {
  display: block;
  margin-top: 2px;
  color: rgba(15, 23, 42, 0.68);
  font-weight: 800;
  font-size: 13px;
}

/* Lista de mini-cards (Arriendos/Ventas/Gestión) */
.gm-panel__cards {
  margin-top: 14px;
  display: grid;
  gap: 10px;
}

.gm-mini {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 12px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.76);
  border: 1px solid rgba(15, 23, 42, 0.08);
  box-shadow: var(--gm-shadow2);
}

.gm-mini__icon {
  width: 42px;
  height: 42px;
  border-radius: 14px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  background: rgba(31, 157, 138, 0.14);
}

.gm-mini strong {
  display: block;
  font-weight: 950;
}

.gm-mini span {
  display: block;
  margin-top: 2px;
  color: rgba(15, 23, 42, 0.68);
  font-weight: 750;
}

/* Footer del panel (nota + link a destacadas) */
.gm-panel__foot {
  margin-top: 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.gm-note {
  margin: 0;
  color: rgba(15, 23, 42, 0.62);
  font-weight: 750;
  font-size: 13px;
}

.gm-link {
  color: rgba(15, 23, 42, 0.86);
  font-weight: 950;
  text-decoration: none;
  padding: 10px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.62);
  border: 1px solid rgba(15, 23, 42, 0.08);
}

.gm-link:hover {
  text-decoration: underline;
  text-decoration-thickness: 2px;
}

/* =============================================================================
   7) ANIMACIONES / REVEAL (entrada suave al hacer scroll)
   - .gm-reveal inicia oculto y se muestra con JS agregando .is-visible
   ============================================================================= */
.gm-reveal {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

.gm-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* =============================================================================
   8) RESPONSIVE + ACCESIBILIDAD
   - Ajusta layout en pantallas pequeñas
   - Respeta "prefers-reduced-motion" para usuarios sensibles a animaciones
   ============================================================================= */
@media (max-width: 980px) {
  .gm-hero__grid {
    grid-template-columns: 1fr;
  }

  .gm-stats {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .gm-reveal {
    transition: none;
  }

  .gm-badge__pulse {
    animation: none;
  }
}

/* =============================================================================
   BUSCADOR + RESULTADOS (gm-search)
   - Diseño sobrio + moderno
   - Panel filtros + grid de resultados con cards
   - Animaciones sutiles y estados (chips, empty, etc.)
============================================================================= */

.gm-section {
  padding: clamp(56px, 6vw, 88px) 0;
  background: linear-gradient(180deg, var(--gm-bg) 0%, #ffffff 70%);
}

.gm-section__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.gm-section__title {
  margin: 0;
  font-size: clamp(22px, 2.6vw, 30px);
  letter-spacing: -0.02em;
  color: var(--gm-text);
  font-weight: 950;
}

.gm-section__lead {
  margin: 6px 0 0;
  color: rgba(15, 23, 42, 0.72);
  line-height: 1.65;
  font-weight: 650;
}

.gm-sort {
  display: flex;
  align-items: center;
  gap: 10px;
}

.gm-sort__label {
  font-weight: 850;
  color: rgba(15, 23, 42, 0.72);
  font-size: 13px;
}

/* Layout principal (filtros + resultados) */
.gm-search__grid {
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 16px;
  align-items: start;
}

/* Panel filtros */
.gm-filter {
  /* ...lo que ya tienes... */
  position: sticky;
  top: var(--gm-scroll-offset); /* ✅ antes: top: 92px */
  z-index: 5; /* ✅ asegura que el panel quede arriba */
  border-radius: var(--gm-radius-lg);
  background: rgba(255, 255, 255, 0.85);
  border: 1px solid rgba(15, 23, 42, 0.1);
  box-shadow: var(--gm-shadow);
  padding: 16px;
}

.gm-filter__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
}

.gm-filter__badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 999px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  background: rgba(255, 255, 255, 0.7);
  font-weight: 950;
}

.gm-filter__dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--gm-accent), var(--gm-accent2));
  box-shadow: 0 0 0 7px rgba(31, 157, 138, 0.14);
}

.gm-filter__actions {
  display: flex;
  gap: 10px;
}

/* Form */
.gm-filter__form {
  display: grid;
  gap: 12px;
}

.gm-field {
  display: grid;
  gap: 6px;
}

.gm-label {
  font-size: 13px;
  font-weight: 900;
  color: rgba(15, 23, 42, 0.78);
}

.gm-help {
  margin: 0;
  font-size: 12px;
  color: rgba(15, 23, 42, 0.62);
  font-weight: 650;
}

/* Inputs */
.gm-input {
  height: 44px;
  border-radius: 14px;
  border: 1px solid rgba(15, 23, 42, 0.12);
  background: rgba(255, 255, 255, 0.9);
  padding: 0 12px;
  outline: none;
  font-weight: 750;
  color: rgba(15, 23, 42, 0.9);
  transition: box-shadow 0.15s ease, border-color 0.15s ease,
    transform 0.15s ease;
}

.gm-input:focus {
  border-color: rgba(31, 157, 138, 0.55);
  box-shadow: 0 0 0 5px rgba(31, 157, 138, 0.14);
}

.gm-input--select {
  padding-right: 10px;
}

.gm-row2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

/* Chips (filtros activos) */
.gm-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 10px 0 12px;
  min-height: 10px;
}

.gm-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 999px;
  background: rgba(31, 157, 138, 0.1);
  border: 1px solid rgba(31, 157, 138, 0.18);
  color: rgba(15, 23, 42, 0.88);
  font-weight: 900;
  font-size: 12px;
}

.gm-chip button {
  border: 0;
  background: transparent;
  cursor: pointer;
  font-weight: 950;
  line-height: 1;
  opacity: 0.8;
}

.gm-chip button:hover {
  opacity: 1;
}

/* Filtros avanzados (toggle) */
.gm-adv {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 44px;
  border-radius: 14px;
  border: 1px dashed rgba(15, 23, 42, 0.16);
  background: rgba(255, 255, 255, 0.6);
  padding: 0 12px;
  cursor: pointer;
  font-weight: 950;
  color: rgba(15, 23, 42, 0.82);
  transition: transform 0.15s ease, background 0.15s ease;
}

.gm-adv:hover {
  transform: translateY(-1px);
  background: rgba(255, 255, 255, 0.8);
}

.gm-adv__chev {
  opacity: 0.7;
  transition: transform 0.2s ease;
}

.gm-adv.is-open .gm-adv__chev {
  transform: rotate(180deg);
}

.gm-adv__panel {
  display: grid;
  gap: 12px;
  padding: 12px;
  border-radius: 16px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  background: rgba(255, 255, 255, 0.75);
}

/* Resultados */
.gm-results {
  border-radius: var(--gm-radius-lg);
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(15, 23, 42, 0.1);
  box-shadow: var(--gm-shadow);
  padding: 16px;
}

.gm-results__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 14px;
}

.gm-results__count strong {
  font-size: 22px;
  font-weight: 950;
  letter-spacing: -0.02em;
}

.gm-results__count span {
  color: rgba(15, 23, 42, 0.62);
  font-weight: 750;
  margin-left: 6px;
}

.gm-results__hint {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: rgba(15, 23, 42, 0.62);
}

.gm-hint-dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: rgba(31, 157, 138, 0.7);
  box-shadow: 0 0 0 6px rgba(31, 157, 138, 0.12);
}

/* Grid cards */
.gm-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

/* Card */
.gm-card {
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(15, 23, 42, 0.1);
  box-shadow: var(--gm-shadow2);
  overflow: hidden;
  transform: translateY(0);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.gm-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 34px rgba(15, 23, 42, 0.12);
}

.gm-card__media {
  height: 160px;
  background: radial-gradient(
      520px 220px at 20% 20%,
      rgba(31, 157, 138, 0.18),
      transparent 55%
    ),
    radial-gradient(
      520px 220px at 80% 40%,
      rgba(11, 18, 32, 0.12),
      transparent 60%
    ),
    linear-gradient(180deg, #ffffff, var(--gm-bg));
  position: relative;
}

.gm-card__tag {
  position: absolute;
  left: 12px;
  top: 12px;
  padding: 8px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 950;
  background: rgba(255, 255, 255, 0.75);
  border: 1px solid rgba(15, 23, 42, 0.1);
}

.gm-card__body {
  padding: 12px;
}

.gm-card__title {
  margin: 0 0 6px;
  font-weight: 950;
  color: rgba(15, 23, 42, 0.92);
  letter-spacing: -0.01em;
}

.gm-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 10px;
  color: rgba(15, 23, 42, 0.68);
  font-weight: 750;
  font-size: 13px;
  margin-bottom: 10px;
}

.gm-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(31, 157, 138, 0.08);
  border: 1px solid rgba(31, 157, 138, 0.14);
}

.gm-card__price {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin: 10px 0 12px;
}

.gm-price {
  font-size: 18px;
  font-weight: 950;
  letter-spacing: -0.01em;
}

.gm-city {
  color: rgba(15, 23, 42, 0.62);
  font-weight: 800;
  font-size: 13px;
}

.gm-card__actions {
  display: flex;
  gap: 10px;
}

/* Empty state */
.gm-empty {
  margin-top: 14px;
  border-radius: 18px;
  border: 1px dashed rgba(15, 23, 42, 0.18);
  background: rgba(255, 255, 255, 0.7);
  padding: 16px;
}

.gm-empty h3 {
  margin: 0 0 6px;
  font-weight: 950;
}

.gm-empty p {
  margin: 0 0 12px;
  color: rgba(15, 23, 42, 0.72);
  font-weight: 650;
  line-height: 1.6;
}

/* Responsive */
@media (max-width: 980px) {
  .gm-search__grid {
    grid-template-columns: 1fr;
  }

  .gm-filter {
    position: relative;
    top: auto;
  }

  .gm-cards {
    grid-template-columns: 1fr;
  }
}

/* =============================================================================
   FIX — Inputs/Selects no se salen del panel de filtros
   - Asegura que todos los controles ocupen SOLO el ancho del contenedor izquierdo
============================================================================= */

.gm-filter,
.gm-filter__form,
.gm-field,
.gm-row2 {
  max-width: 100%;
  min-width: 0; /* importante en grid/flex para evitar overflow */
}

.gm-filter__form .gm-input {
  width: 100%;
  max-width: 100%;
  display: block; /* evita comportamientos raros de inline/select */
}

.gm-row2 > * {
  min-width: 0; /* evita que 2 columnas empujen el ancho */
}

/* Select más “pro” y consistente (sin que se estire raro) */
select.gm-input {
  -webkit-appearance: none;
  appearance: none;
  padding-right: 40px; /* espacio para la flecha */
  background-image: linear-gradient(
      45deg,
      transparent 50%,
      rgba(15, 23, 42, 0.7) 50%
    ),
    linear-gradient(135deg, rgba(15, 23, 42, 0.7) 50%, transparent 50%);
  background-position: calc(100% - 18px) 50%, calc(100% - 12px) 50%;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
}

/* =============================================================================
   DESTACADAS (gm-featured)
   - Chips dinámicos + grid pro
============================================================================= */

.gm-featured {
  background: #fff;
}

/* Acciones del header de la sección */
.gm-featured__actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

/* Barra: chips + contador */
.gm-featured__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: 14px 0 14px;
}

.gm-featured__count {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(15, 23, 42, 0.1);
  box-shadow: var(--gm-shadow2);
}

.gm-featured__count strong {
  font-size: 18px;
  font-weight: 950;
  letter-spacing: -0.02em;
}

.gm-featured__count span {
  font-size: 13px;
  font-weight: 850;
  color: rgba(15, 23, 42, 0.62);
}

/* Chips */
.gm-featured__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.gm-fchip {
  height: 40px;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid rgba(15, 23, 42, 0.12);
  background: rgba(255, 255, 255, 0.75);
  color: rgba(15, 23, 42, 0.84);
  font-weight: 900;
  font-size: 13px;
  cursor: pointer;
  transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease,
    border-color 0.15s ease;
  box-shadow: 0 10px 18px rgba(15, 23, 42, 0.05);
}

.gm-fchip:hover {
  transform: translateY(-1px);
  box-shadow: 0 14px 26px rgba(15, 23, 42, 0.08);
}

.gm-fchip.is-active {
  border-color: rgba(31, 157, 138, 0.35);
  background: rgba(31, 157, 138, 0.12);
}

/* Grid destacadas: 3 columnas desktop */
.gm-featured__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

/* Ajuste visual: media un poco más alta en destacadas */
.gm-featured .gm-card__media {
  height: 180px;
}

/* Título en cards: 2 líneas máximo (más “pro”) */
.gm-featured .gm-card__title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Responsive */
@media (max-width: 980px) {
  .gm-featured__bar {
    flex-direction: column;
    align-items: flex-start;
  }

  .gm-featured__grid {
    grid-template-columns: 1fr;
  }
}

/* =============================================================================
   CIUDADES / COBERTURA (gm-cities)
   - Tabs a la izquierda + panel de contenido a la derecha
   - Estilo sobrio, moderno y consistente con gm-
============================================================================= */

.gm-cities {
  background: linear-gradient(180deg, #ffffff 0%, var(--gm-bg) 70%);
}

.gm-cities__hint {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: rgba(15, 23, 42, 0.62);
  font-weight: 750;
}

.gm-cities__grid {
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 16px;
  align-items: start;
}

.gm-cities__panel {
  border-radius: var(--gm-radius-lg);
  background: rgba(255, 255, 255, 0.85);
  border: 1px solid rgba(15, 23, 42, 0.1);
  box-shadow: var(--gm-shadow);
  padding: 16px;
  position: sticky;
  top: 92px; /* considera el header sticky */
}

.gm-cities__panelTop {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
}

/* Tabs */
.gm-tabs {
  display: grid;
  gap: 10px;
}

.gm-tab {
  text-align: left;
  width: 100%;
  border: 1px solid rgba(15, 23, 42, 0.1);
  background: rgba(255, 255, 255, 0.78);
  border-radius: 18px;
  padding: 14px 14px;
  cursor: pointer;
  box-shadow: var(--gm-shadow2);
  transition: transform 0.15s ease, box-shadow 0.15s ease,
    border-color 0.15s ease;
}

.gm-tab:hover {
  transform: translateY(-1px);
  box-shadow: 0 18px 34px rgba(15, 23, 42, 0.12);
}

.gm-tab.is-active {
  border-color: rgba(31, 157, 138, 0.35);
  box-shadow: 0 0 0 5px rgba(31, 157, 138, 0.12), var(--gm-shadow2);
}

.gm-tab__title {
  display: block;
  font-weight: 950;
  color: rgba(15, 23, 42, 0.92);
  letter-spacing: -0.01em;
}

.gm-tab__meta {
  display: block;
  margin-top: 4px;
  color: rgba(15, 23, 42, 0.62);
  font-weight: 750;
  font-size: 13px;
}

.gm-cities__miniNote {
  margin: 12px 0 0;
  color: rgba(15, 23, 42, 0.62);
  font-weight: 650;
  line-height: 1.6;
}

/* Panel derecho */
.gm-cityCard {
  border-radius: var(--gm-radius-lg);
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(15, 23, 42, 0.1);
  box-shadow: var(--gm-shadow);
  padding: 18px;
}

.gm-cityCard__head {
  margin-bottom: 14px;
}

.gm-cityCard__title {
  margin: 0;
  font-size: 22px;
  letter-spacing: -0.02em;
  font-weight: 950;
  color: rgba(15, 23, 42, 0.92);
}

.gm-cityCard__subtitle {
  margin: 6px 0 0;
  color: rgba(15, 23, 42, 0.72);
  line-height: 1.65;
  font-weight: 650;
}

.gm-cityCard__grid {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 16px;
  align-items: start;
}

.gm-cityCard__block + .gm-cityCard__block {
  margin-top: 14px;
}

.gm-cityCard__label {
  margin: 0 0 8px;
  font-weight: 950;
  color: rgba(15, 23, 42, 0.82);
  font-size: 13px;
}

/* Chips de zonas */
.gm-zoneChips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.gm-zone {
  display: inline-flex;
  align-items: center;
  padding: 8px 10px;
  border-radius: 999px;
  background: rgba(31, 157, 138, 0.08);
  border: 1px solid rgba(31, 157, 138, 0.14);
  color: rgba(15, 23, 42, 0.86);
  font-weight: 900;
  font-size: 12px;
}

/* Lista */
.gm-cityList {
  margin: 0;
  padding-left: 18px;
  color: rgba(15, 23, 42, 0.76);
  font-weight: 650;
  line-height: 1.7;
}

.gm-cityList li {
  margin: 6px 0;
}

/* Stats derecha */
.gm-cityCard__stats {
  display: grid;
  gap: 10px;
  margin-bottom: 12px;
}

.gm-cityStat {
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.8);
  border: 1px solid rgba(15, 23, 42, 0.08);
  box-shadow: var(--gm-shadow2);
  padding: 12px;
}

.gm-cityStat strong {
  display: block;
  font-weight: 950;
  color: rgba(15, 23, 42, 0.92);
}

.gm-cityStat span {
  display: block;
  margin-top: 3px;
  color: rgba(15, 23, 42, 0.62);
  font-weight: 750;
  font-size: 13px;
}

.gm-cityCard__actions {
  display: grid;
  gap: 10px;
}

/* Responsive */
@media (max-width: 980px) {
  .gm-cities__grid {
    grid-template-columns: 1fr;
  }

  .gm-cities__panel {
    position: relative;
    top: auto;
  }

  .gm-cityCard__grid {
    grid-template-columns: 1fr;
  }
}

/* =============================================================================
   SERVICIOS — gm-services
   - Banda oscura premium (diferente al look claro del hero/buscador)
   - Selector izquierdo + panel dinámico derecho
============================================================================= */

.gm-services {
  position: relative;
  padding: clamp(58px, 6vw, 92px) 0;
  background: radial-gradient(
      900px 420px at 18% 15%,
      rgba(31, 157, 138, 0.22),
      transparent 60%
    ),
    radial-gradient(
      900px 420px at 85% 30%,
      rgba(255, 255, 255, 0.08),
      transparent 62%
    ),
    linear-gradient(180deg, #070b12 0%, #0b1220 100%);
  color: rgba(255, 255, 255, 0.88);
  overflow: hidden;
}

.gm-services__edge {
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 86px;
  background: linear-gradient(180deg, transparent, rgba(246, 248, 251, 1));
  pointer-events: none;
}

.gm-services__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 18px;
}

.gm-services__eyebrow {
  margin: 0 0 8px;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.62);
}

.gm-services__title {
  margin: 0;
  font-size: clamp(24px, 2.8vw, 34px);
  letter-spacing: -0.02em;
  font-weight: 950;
}

.gm-services__lead {
  margin: 8px 0 0;
  max-width: 70ch;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.72);
  font-weight: 650;
}

.gm-services__cta {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.gm-services__btn {
  height: 44px;
}

/* Grid */
.gm-services__grid {
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 16px;
  align-items: start;
}

/* Selector izquierdo */
.gm-services__select {
  border-radius: var(--gm-radius-lg);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 20px 55px rgba(0, 0, 0, 0.28);
  padding: 14px;
  position: sticky;
  top: 92px;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.gm-svcCard {
  width: 100%;
  display: grid;
  grid-template-columns: 44px 1fr auto;
  gap: 12px;
  align-items: center;
  padding: 14px;
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.88);
  cursor: pointer;
  transition: transform 0.16s ease, background 0.16s ease,
    border-color 0.16s ease;
}

.gm-svcCard + .gm-svcCard {
  margin-top: 10px;
}

.gm-svcCard:hover {
  transform: translateY(-1px);
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(31, 157, 138, 0.35);
}

.gm-svcCard.is-active {
  border-color: rgba(31, 157, 138, 0.55);
  background: rgba(31, 157, 138, 0.1);
  box-shadow: 0 0 0 5px rgba(31, 157, 138, 0.12);
}

.gm-svcCard__icon {
  width: 44px;
  height: 44px;
  border-radius: 14px;
  display: grid;
  place-items: center;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.86);
}

.gm-svcCard__icon svg {
  width: 22px;
  height: 22px;
}

.gm-svcCard__title {
  display: block;
  font-weight: 950;
  letter-spacing: -0.01em;
}

.gm-svcCard__meta {
  display: block;
  margin-top: 3px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.62);
  font-weight: 650;
}

.gm-svcCard__tag {
  justify-self: end;
  padding: 7px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.78);
}

.gm-svcCard__tag--soft {
  background: rgba(31, 157, 138, 0.14);
  border-color: rgba(31, 157, 138, 0.22);
}

.gm-services__sideNote {
  display: grid;
  grid-template-columns: 14px 1fr;
  gap: 10px;
  align-items: start;
  margin-top: 12px;
  padding: 12px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px dashed rgba(255, 255, 255, 0.14);
  color: rgba(255, 255, 255, 0.66);
}

.gm-services__dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--gm-accent), var(--gm-accent2));
  box-shadow: 0 0 0 6px rgba(31, 157, 138, 0.16);
  margin-top: 4px;
}

.gm-services__sideNote p {
  margin: 0;
  line-height: 1.6;
  font-weight: 650;
}

/* Panel derecho */
.gm-svcPanel {
  border-radius: var(--gm-radius-lg);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 20px 55px rgba(0, 0, 0, 0.28);
  padding: 18px;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.gm-svcPanel__title {
  margin: 0;
  font-weight: 950;
  letter-spacing: -0.02em;
  font-size: 20px;
}

.gm-svcPanel__desc {
  margin: 8px 0 0;
  color: rgba(255, 255, 255, 0.68);
  line-height: 1.65;
  font-weight: 650;
}

.gm-svcPanel__highlights {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.gm-svcHi {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  font-weight: 850;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.78);
}

.gm-svcHi__dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: rgba(31, 157, 138, 0.9);
  box-shadow: 0 0 0 6px rgba(31, 157, 138, 0.14);
}

.gm-svcPanel__body {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.gm-svcPanel__cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.gm-svcPanel__label {
  margin: 0 0 10px;
  font-weight: 950;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.78);
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.gm-svcList,
.gm-svcSteps {
  margin: 0;
  padding-left: 18px;
  color: rgba(255, 255, 255, 0.72);
  line-height: 1.7;
  font-weight: 650;
}

.gm-svcList li,
.gm-svcSteps li {
  margin: 7px 0;
}

.gm-svcPanel__bar {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.gm-svcBar__track {
  height: 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.1);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.12);
}

.gm-svcBar__fill {
  display: block;
  height: 100%;
  width: 42%;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--gm-accent), var(--gm-accent2));
  transition: width 0.35s ease;
}

.gm-svcPanel__note {
  margin: 10px 0 0;
  color: rgba(255, 255, 255, 0.62);
  font-weight: 650;
  line-height: 1.6;
}

.gm-svcPanel__actions {
  margin-top: 14px;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

/* Responsive */
@media (max-width: 980px) {
  .gm-services__head {
    align-items: flex-start;
    flex-direction: column;
  }

  .gm-services__grid {
    grid-template-columns: 1fr;
  }

  .gm-services__select {
    position: relative;
    top: auto;
  }

  .gm-svcPanel__cols {
    grid-template-columns: 1fr;
  }
}

/* =============================================================================
   CÓMO TRABAJAMOS (gm-process)
   - Diseño: timeline/stepper + panel dinámico
   - Objetivo: explicar el proceso de forma clara, moderna y “no estática”
============================================================================= */

.gm-process {
  padding: clamp(56px, 6vw, 92px) 0;
  background: linear-gradient(
    180deg,
    #ffffff 0%,
    rgba(246, 248, 251, 0.9) 55%,
    #ffffff 100%
  );
}

/* Encabezado */
.gm-process__head {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 18px;
  align-items: start;
  margin-bottom: 18px;
}

.gm-eyebrow {
  margin: 0 0 8px;
  font-weight: 950;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-size: 12px;
  color: rgba(15, 23, 42, 0.55);
}

.gm-process__title {
  margin: 0;
  font-size: clamp(24px, 2.8vw, 36px);
  letter-spacing: -0.02em;
  font-weight: 950;
  color: rgba(15, 23, 42, 0.92);
}

.gm-process__lead {
  margin: 10px 0 0;
  color: rgba(15, 23, 42, 0.72);
  line-height: 1.7;
  font-weight: 650;
  max-width: 70ch;
}

/* Meta cards (distintas a las de hero/servicios para no repetir recursos) */
.gm-process__meta {
  display: grid;
  gap: 10px;
}

.gm-metaCard {
  display: flex;
  gap: 12px;
  align-items: center;
  border-radius: 18px;
  padding: 14px;
  background: rgba(255, 255, 255, 0.85);
  border: 1px solid rgba(15, 23, 42, 0.08);
  box-shadow: 0 14px 30px rgba(15, 23, 42, 0.06);
}

.gm-metaCard strong {
  display: block;
  font-weight: 950;
  color: rgba(15, 23, 42, 0.9);
}

.gm-metaCard span {
  display: block;
  margin-top: 2px;
  color: rgba(15, 23, 42, 0.62);
  font-weight: 700;
  font-size: 13px;
}

.gm-metaDot {
  width: 12px;
  height: 12px;
  border-radius: 999px;
  background: rgba(31, 157, 138, 0.85);
  box-shadow: 0 0 0 8px rgba(31, 157, 138, 0.12);
}

.gm-metaDot--dark {
  background: rgba(15, 23, 42, 0.85);
  box-shadow: 0 0 0 8px rgba(15, 23, 42, 0.08);
}

/* Grid principal */
.gm-process__grid {
  display: grid;
  grid-template-columns: 380px 1fr;
  gap: 16px;
  align-items: start;
}

/* Stepper */
.gm-steps {
  position: sticky;
  top: 92px;
  border-radius: 26px;
  background: rgba(255, 255, 255, 0.86);
  border: 1px solid rgba(15, 23, 42, 0.1);
  box-shadow: var(--gm-shadow);
  padding: 16px;
  overflow: hidden;
}

/* Rail + progress (visual “timeline”) */
.gm-steps__rail {
  position: absolute;
  left: 22px;
  top: 22px;
  bottom: 22px;
  width: 2px;
  background: rgba(15, 23, 42, 0.1);
  border-radius: 99px;
}

.gm-steps__progress {
  position: absolute;
  left: 0;
  top: 0;
  width: 2px;
  height: 0%;
  background: linear-gradient(180deg, var(--gm-accent), var(--gm-accent2));
  border-radius: 99px;
  transition: height 0.35s ease;
}

.gm-step {
  width: 100%;
  display: grid;
  grid-template-columns: 58px 1fr;
  gap: 10px;
  align-items: center;
  padding: 12px 12px;
  border-radius: 18px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  background: rgba(255, 255, 255, 0.68);
  cursor: pointer;
  text-align: left;
  margin-bottom: 10px;
  transition: transform 0.15s ease, box-shadow 0.15s ease,
    border-color 0.15s ease;
}

.gm-step:hover {
  transform: translateY(-1px);
  box-shadow: 0 14px 26px rgba(15, 23, 42, 0.08);
}

.gm-step.is-active {
  border-color: rgba(31, 157, 138, 0.28);
  box-shadow: 0 18px 34px rgba(15, 23, 42, 0.1);
  background: rgba(31, 157, 138, 0.08);
}

.gm-step__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 44px;
  border-radius: 16px;
  font-weight: 950;
  letter-spacing: -0.02em;
  color: rgba(15, 23, 42, 0.88);
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(15, 23, 42, 0.08);
  position: relative;
}

/* Punto sobre el rail (se alinea con el número) */
.gm-step__num::before {
  content: "";
  position: absolute;
  left: -34px;
  top: 50%;
  transform: translateY(-50%);
  width: 12px;
  height: 12px;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.35);
  box-shadow: 0 0 0 7px rgba(15, 23, 42, 0.08);
}

.gm-step.is-active .gm-step__num::before {
  background: rgba(31, 157, 138, 0.9);
  box-shadow: 0 0 0 7px rgba(31, 157, 138, 0.16);
}

.gm-step__text strong {
  display: block;
  font-weight: 950;
  color: rgba(15, 23, 42, 0.9);
}

.gm-step__text small {
  display: block;
  margin-top: 2px;
  font-weight: 700;
  color: rgba(15, 23, 42, 0.62);
}

.gm-steps__note {
  margin: 6px 0 14px;
  color: rgba(15, 23, 42, 0.62);
  font-weight: 650;
  line-height: 1.6;
}

.gm-steps__cta {
  display: grid;
  gap: 10px;
}

/* Panel derecha */
.gm-processPanel {
  border-radius: 26px;
  background: rgba(255, 255, 255, 0.84);
  border: 1px solid rgba(15, 23, 42, 0.1);
  box-shadow: var(--gm-shadow);
  padding: 18px;
}

.gm-processPanel__title {
  margin: 0;
  font-weight: 950;
  letter-spacing: -0.01em;
  color: rgba(15, 23, 42, 0.92);
  font-size: 20px;
}

.gm-processPanel__desc {
  margin: 8px 0 0;
  color: rgba(15, 23, 42, 0.72);
  font-weight: 650;
  line-height: 1.7;
}

/* Chips */
.gm-processPanel__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 14px 0 12px;
}

.gm-chipSoft {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.05);
  border: 1px solid rgba(15, 23, 42, 0.08);
  color: rgba(15, 23, 42, 0.82);
  font-weight: 900;
  font-size: 12px;
}

.gm-chipSoft::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: rgba(31, 157, 138, 0.85);
  box-shadow: 0 0 0 6px rgba(31, 157, 138, 0.12);
}

/* Columnas de contenido */
.gm-processPanel__cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 10px;
}

.gm-processBox {
  border-radius: 18px;
  padding: 14px;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(15, 23, 42, 0.08);
}

.gm-processBox h4 {
  margin: 0 0 10px;
  font-weight: 950;
  color: rgba(15, 23, 42, 0.9);
}

/* Checklist con “check” simple */
.gm-checklist {
  margin: 0;
  padding-left: 18px;
  display: grid;
  gap: 8px;
  color: rgba(15, 23, 42, 0.72);
  font-weight: 650;
  line-height: 1.6;
}

/* Footer del panel */
.gm-processPanel__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.gm-miniKpi strong {
  display: block;
  font-weight: 950;
  letter-spacing: -0.02em;
  color: rgba(15, 23, 42, 0.92);
  font-size: 18px;
}

.gm-miniKpi span {
  display: block;
  margin-top: 2px;
  color: rgba(15, 23, 42, 0.62);
  font-weight: 700;
  font-size: 13px;
}

/* Responsive */
@media (max-width: 980px) {
  .gm-process__head {
    grid-template-columns: 1fr;
  }

  .gm-process__grid {
    grid-template-columns: 1fr;
  }

  .gm-steps {
    position: relative;
    top: auto;
  }

  .gm-processPanel__cols {
    grid-template-columns: 1fr;
  }
}

/* =============================================================================
   FIX — CÓMO TRABAJAMOS (columna izquierda)
   - Creamos un “gutter” para que dot + rail no choquen con el borde
   - Acortamos la línea para que no tope con el borde redondeado
============================================================================= */

/* 1) Más espacio a la izquierda para la línea y los puntos */
.gm-steps {
  padding: 16px 16px 16px 44px; /* antes: 16px */
  overflow: hidden; /* mantiene todo limpio dentro del radius */
}

/* 2) Línea más “adentro” y con margen arriba/abajo */
.gm-steps__rail {
  left: 22px; /* ajusta fino si quieres (20–26px) */
  top: 28px; /* antes estaba muy arriba */
  bottom: 28px; /* antes estaba muy abajo */
}

/* 3) Punto alineado con el rail pero SIN salir del contenedor */
.gm-step__num::before {
  left: -28px; /* antes: -34px (se iba para afuera) */
}

/* 4) Opcional: que el primer/último item no “peguen” con el borde */
.gm-step:first-of-type {
  margin-top: 2px;
}
.gm-step:last-of-type {
  margin-bottom: 6px;
}

@media (max-width: 1100px) {
  .gm-steps {
    padding-left: 40px;
  }
  .gm-steps__rail {
    left: 20px;
  }
  .gm-step__num::before {
    left: -26px;
  }
}

/* =============================================================================
   FIX — Stepper (columna izquierda): dot apretado al borde
   - Más “aire” interno (gutter)
   - Rail y dots un poco más a la derecha
============================================================================= */

/* 1) Más padding a la izquierda para que TODO respire */
.gm-steps {
  padding-left: 52px; /* súbelo/bájalo: 48–56px */
}

/* 2) Línea (rail) más adentro + cortes arriba/abajo para no “tocar” el borde */
.gm-steps__rail {
  left: 28px; /* ajusta fino: 24–30px */
  top: 26px;
  bottom: 26px;
}

/* 3) Dots laterales: centrados en el rail y SIN pegarse al borde */
.gm-step::before {
  left: 28px; /* mismo valor que el rail */
  transform: translateX(-50%); /* centra el dot sobre la línea */
}

/* 4) Si tu “dot activo” se ve más grande, mantenlo centrado igual */
.gm-step.is-active::before {
  left: 28px;
  transform: translateX(-50%);
}

.gm-step__num::before {
  left: -24px; /* menos negativo = menos pegado */
}

/* =============================================================================
   TESTIMONIOS (gm-tm)
   - Recurso visual distinto: carrusel scroll-snap + halo superior sutil
============================================================================= */

.gm-eyebrow {
  margin: 0 0 8px;
  font-size: 12px;
  letter-spacing: 0.22em;
  font-weight: 950;
  color: rgba(15, 23, 42, 0.55);
}

.gm-tm {
  position: relative;
  padding: clamp(56px, 6vw, 92px) 0;
  background: radial-gradient(
      900px 340px at 20% 0%,
      rgba(31, 157, 138, 0.14),
      transparent 55%
    ),
    radial-gradient(
      700px 280px at 90% 10%,
      rgba(11, 18, 32, 0.1),
      transparent 60%
    ),
    linear-gradient(180deg, #ffffff 0%, var(--gm-bg) 85%);
  overflow: hidden;
}

.gm-tm__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.gm-tm__title {
  margin: 0;
  font-size: clamp(22px, 2.8vw, 34px);
  letter-spacing: -0.02em;
  color: var(--gm-text);
  font-weight: 950;
}

.gm-tm__lead {
  margin: 10px 0 0;
  color: rgba(15, 23, 42, 0.72);
  line-height: 1.7;
  font-weight: 650;
  max-width: 70ch;
}

.gm-tm__kpi {
  display: grid;
  gap: 6px;
  padding: 14px 14px;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(15, 23, 42, 0.1);
  box-shadow: var(--gm-shadow2);
  min-width: 260px;
}

.gm-tm__rating {
  font-size: 14px;
  letter-spacing: 2px;
  opacity: 0.9;
}

.gm-star {
  display: inline-block;
  transform: translateY(-1px);
}

.gm-tm__kpiText strong {
  display: block;
  font-size: 18px;
  font-weight: 950;
}

.gm-tm__kpiText span {
  display: block;
  color: rgba(15, 23, 42, 0.62);
  font-weight: 750;
  font-size: 13px;
}

/* Shell */
.gm-tm__shell {
  position: relative;
  border-radius: var(--gm-radius-lg);
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(15, 23, 42, 0.1);
  box-shadow: var(--gm-shadow);
  padding: 16px;
}

/* Controles */
.gm-tm__controls {
  position: absolute;
  right: 14px;
  top: 14px;
  display: flex;
  gap: 10px;
  z-index: 2;
}

.gm-tm__btn {
  width: 42px;
  height: 42px;
  border-radius: 14px;
  border: 1px solid rgba(15, 23, 42, 0.1);
  background: rgba(255, 255, 255, 0.85);
  box-shadow: 0 10px 22px rgba(15, 23, 42, 0.06);
  cursor: pointer;
  font-weight: 950;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.gm-tm__btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 14px 28px rgba(15, 23, 42, 0.1);
}

/* Track: scroll-snap */
.gm-tm__track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(320px, 1fr);
  gap: 12px;

  overflow-x: auto;
  padding: 54px 6px 8px; /* espacio para botones */
  scroll-snap-type: x mandatory;
  scroll-padding-left: 6px;

  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.gm-tm__track::-webkit-scrollbar {
  display: none;
}

.gm-tm__card {
  scroll-snap-align: start;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(15, 23, 42, 0.1);
  box-shadow: var(--gm-shadow2);
  padding: 14px;
  position: relative;
  overflow: hidden;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.gm-tm__card:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 34px rgba(15, 23, 42, 0.12);
}

/* “Marca” de cita sutil (recurso visual diferente) */
.gm-tm__card::before {
  content: "“";
  position: absolute;
  right: 14px;
  top: 6px;
  font-size: 56px;
  line-height: 1;
  opacity: 0.1;
  font-weight: 950;
}

/* Header card */
.gm-tm__cardHead {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}

.gm-avatar {
  width: 36px;
  height: 36px;
  border-radius: 14px;
  display: grid;
  place-items: center;
  font-weight: 950;
  color: rgba(15, 23, 42, 0.82);
  background: rgba(31, 157, 138, 0.12);
  border: 1px solid rgba(31, 157, 138, 0.18);
}

.gm-tm__who {
  display: grid;
  line-height: 1.1;
}
.gm-tm__who strong {
  font-weight: 950;
}
.gm-tm__who span {
  color: rgba(15, 23, 42, 0.62);
  font-weight: 750;
  font-size: 13px;
}

/* Reuso pill existente del buscador (si ya tienes gm-pill, esto se integra) */
.gm-pill--soft {
  margin-left: auto;
  background: rgba(31, 157, 138, 0.08);
  border: 1px solid rgba(31, 157, 138, 0.14);
}

/* Texto */
.gm-tm__quote {
  margin: 0;
  color: rgba(15, 23, 42, 0.78);
  font-weight: 650;
  line-height: 1.7;
}

/* Footer */
.gm-tm__cardFoot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px dashed rgba(15, 23, 42, 0.14);
}

.gm-tm__meta {
  color: rgba(15, 23, 42, 0.62);
  font-weight: 800;
  font-size: 13px;
}

.gm-tm__miniStars {
  opacity: 0.9;
  letter-spacing: 1px;
}

/* Dots */
.gm-tm__dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  padding: 12px 0 2px;
}

.gm-dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  border: 1px solid rgba(15, 23, 42, 0.18);
  background: rgba(15, 23, 42, 0.1);
  cursor: pointer;
  transition: transform 0.15s ease, background 0.15s ease;
}

.gm-dot.is-active {
  background: rgba(31, 157, 138, 0.8);
  border-color: rgba(31, 157, 138, 0.3);
  transform: scale(1.15);
}

/* CTA inferior */
.gm-tm__cta {
  margin-top: 16px;
}

.gm-tm__ctaBox {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 16px;
  border-radius: var(--gm-radius-lg);
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(15, 23, 42, 0.1);
  box-shadow: var(--gm-shadow2);
}

.gm-tm__ctaBox strong {
  display: block;
  font-weight: 950;
}

.gm-tm__ctaBox p {
  margin: 6px 0 0;
  color: rgba(15, 23, 42, 0.68);
  font-weight: 650;
  line-height: 1.6;
}

/* Responsive */
@media (max-width: 980px) {
  .gm-tm__head {
    flex-direction: column;
    align-items: flex-start;
  }
  .gm-tm__kpi {
    min-width: auto;
    width: 100%;
  }
  .gm-tm__ctaBox {
    flex-direction: column;
    align-items: stretch;
  }
}

/* =============================================================================
   CONTACTO (gm-contact)
   - Recurso distinto: panel “glass” + chips + sidebar tipo “ruta rápida”
============================================================================= */

.gm-contact {
  padding: clamp(56px, 6vw, 92px) 0;
  background: radial-gradient(
      900px 420px at 15% 10%,
      rgba(31, 157, 138, 0.12),
      transparent 60%
    ),
    radial-gradient(
      900px 420px at 85% 20%,
      rgba(11, 18, 32, 0.08),
      transparent 55%
    ),
    linear-gradient(180deg, #ffffff 0%, var(--gm-bg) 70%);
  position: relative;
  overflow: hidden;
}

.gm-contact__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.gm-contact__eyebrow {
  margin: 0 0 8px;
  font-size: 12px;
  letter-spacing: 0.22em;
  font-weight: 950;
  color: rgba(15, 23, 42, 0.55);
}

.gm-contact__title {
  margin: 0;
  font-size: clamp(22px, 2.8vw, 34px);
  font-weight: 950;
  letter-spacing: -0.02em;
  color: var(--gm-text);
}

.gm-contact__lead {
  margin: 8px 0 0;
  color: rgba(15, 23, 42, 0.72);
  line-height: 1.7;
  font-weight: 650;
  max-width: 72ch;
}

.gm-contact__quick {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.gm-qbtn {
  height: 42px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid rgba(15, 23, 42, 0.12);
  background: rgba(255, 255, 255, 0.78);
  text-decoration: none;
  font-weight: 950;
  color: rgba(15, 23, 42, 0.9);
  box-shadow: var(--gm-shadow2);
  cursor: pointer;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.gm-qbtn:hover {
  transform: translateY(-1px);
  box-shadow: var(--gm-shadow);
}
.gm-qbtn--ghost {
  background: rgba(255, 255, 255, 0.62);
}
.gm-qbtn--wa {
  border: 0;
  background: rgba(15, 23, 42, 0.92);
  color: rgba(255, 255, 255, 0.92);
}

.gm-contact__grid {
  display: grid;
  grid-template-columns: 1.1fr 0.55fr;
  gap: 16px;
  align-items: start;
}

.gm-contactCard {
  border-radius: var(--gm-radius-lg);
  background: rgba(255, 255, 255, 0.86);
  border: 1px solid rgba(15, 23, 42, 0.1);
  box-shadow: var(--gm-shadow);
  overflow: hidden;
}

.gm-contactCard__top {
  padding: 14px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: rgba(255, 255, 255, 0.7);
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.gm-contactCard__badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 999px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  background: rgba(255, 255, 255, 0.75);
  font-weight: 950;
}
.gm-contactCard__dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--gm-accent), var(--gm-accent2));
  box-shadow: 0 0 0 7px rgba(31, 157, 138, 0.14);
}

.gm-contactCard__chips {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.gm-chip2 {
  height: 34px;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid rgba(31, 157, 138, 0.18);
  background: rgba(31, 157, 138, 0.1);
  font-weight: 950;
  cursor: pointer;
  transition: transform 0.15s ease, background 0.15s ease;
}
.gm-chip2:hover {
  transform: translateY(-1px);
  background: rgba(31, 157, 138, 0.14);
}

.gm-contactForm {
  padding: 16px;
  display: grid;
  gap: 12px;
}

.gm-contactForm__row2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.gm-contactField {
  display: grid;
  gap: 6px;
}

.gm-contactLabel {
  font-size: 13px;
  font-weight: 900;
  color: rgba(15, 23, 42, 0.78);
}

.gm-contactInput {
  height: 46px;
  border-radius: 14px;
  border: 1px solid rgba(15, 23, 42, 0.12);
  background: rgba(255, 255, 255, 0.92);
  padding: 0 12px;
  outline: none;
  font-weight: 750;
  color: rgba(15, 23, 42, 0.92);
  transition: box-shadow 0.15s ease, border-color 0.15s ease;
}

.gm-contactInput:focus {
  border-color: rgba(31, 157, 138, 0.55);
  box-shadow: 0 0 0 5px rgba(31, 157, 138, 0.14);
}

.gm-contactInput--select {
  padding-right: 10px;
}
.gm-contactInput--area {
  height: auto;
  min-height: 120px;
  padding: 12px;
  resize: vertical;
}

.gm-contactMeta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.gm-contactHint {
  color: rgba(15, 23, 42, 0.62);
  font-weight: 650;
  font-size: 12px;
}

.gm-contactCount {
  color: rgba(15, 23, 42, 0.62);
  font-weight: 850;
  font-size: 12px;
}

.gm-contactActions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 2px;
}

.gm-contactBtn {
  height: 46px;
  padding: 0 16px;
  border-radius: 999px;
  border: 1px solid rgba(15, 23, 42, 0.12);
  background: rgba(255, 255, 255, 0.78);
  text-decoration: none;
  font-weight: 950;
  cursor: pointer;
  box-shadow: 0 10px 22px rgba(15, 23, 42, 0.06);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
  color: rgba(15, 23, 42, 0.92);
}
.gm-contactBtn:hover {
  transform: translateY(-1px);
  box-shadow: 0 14px 28px rgba(15, 23, 42, 0.1);
}
.gm-contactBtn--primary {
  border: 0;
  background: linear-gradient(90deg, var(--gm-accent), var(--gm-accent2));
  color: #07110d;
}
.gm-contactBtn--ghost {
  background: rgba(255, 255, 255, 0.62);
}
.gm-contactBtn--dark {
  border: 0;
  background: rgba(15, 23, 42, 0.92);
  color: rgba(255, 255, 255, 0.92);
}

.gm-contactMini {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 6px;
}
.gm-contactMini__item {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 12px 12px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(15, 23, 42, 0.08);
  box-shadow: var(--gm-shadow2);
  min-width: 240px;
}
.gm-miniDot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: rgba(31, 157, 138, 0.75);
  box-shadow: 0 0 0 7px rgba(31, 157, 138, 0.12);
  margin-top: 5px;
}
.gm-contactMini strong {
  display: block;
  font-weight: 950;
}
.gm-contactMini small {
  display: block;
  margin-top: 2px;
  color: rgba(15, 23, 42, 0.66);
  font-weight: 750;
}

/* Sidebar */
.gm-contactSide__card {
  border-radius: var(--gm-radius-lg);
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(15, 23, 42, 0.1);
  box-shadow: var(--gm-shadow);
  padding: 16px;
  position: sticky;
  top: 92px;
}

.gm-contactSide__card h3 {
  margin: 0 0 6px;
  font-weight: 950;
  letter-spacing: -0.01em;
}

.gm-contactSide__card p {
  margin: 0 0 12px;
  color: rgba(15, 23, 42, 0.7);
  font-weight: 650;
  line-height: 1.6;
}

.gm-sideLink {
  width: 100%;
  text-align: left;
  display: grid;
  gap: 3px;
  padding: 12px 12px;
  border-radius: 18px;
  border: 1px solid rgba(15, 23, 42, 0.1);
  background: rgba(255, 255, 255, 0.86);
  text-decoration: none;
  color: rgba(15, 23, 42, 0.92);
  font-weight: 950;
  box-shadow: var(--gm-shadow2);
  margin-bottom: 10px;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
  cursor: pointer;
}
.gm-sideLink:hover {
  transform: translateY(-1px);
  box-shadow: var(--gm-shadow);
}
.gm-sideLink small {
  color: rgba(15, 23, 42, 0.62);
  font-weight: 750;
}
.gm-sideLink--btn {
  border: 0;
  background: rgba(15, 23, 42, 0.92);
  color: rgba(255, 255, 255, 0.92);
}
.gm-sideLink--btn small {
  color: rgba(255, 255, 255, 0.7);
}

.gm-contactSide__foot {
  margin-top: 6px;
  padding-top: 12px;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.gm-availability {
  display: flex;
  align-items: center;
  gap: 10px;
}
.gm-availability__dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: rgba(31, 157, 138, 0.85);
  box-shadow: 0 0 0 7px rgba(31, 157, 138, 0.12);
}
.gm-availability strong {
  display: block;
  font-weight: 950;
}
.gm-availability small {
  display: block;
  margin-top: 2px;
  color: rgba(15, 23, 42, 0.62);
  font-weight: 750;
}

@media (max-width: 980px) {
  .gm-contact__head {
    align-items: flex-start;
    flex-direction: column;
  }
  .gm-contact__quick {
    justify-content: flex-start;
  }
  .gm-contact__grid {
    grid-template-columns: 1fr;
  }
  .gm-contactSide__card {
    position: relative;
    top: auto;
  }
  .gm-contactForm__row2 {
    grid-template-columns: 1fr;
  }
}

/* =========================
   FIX: Filtros no se salgan del contenedor
========================= */

/* Asegura que padding/border no aumenten el ancho real */
.pr-filters,
.pr-filters * {
  box-sizing: border-box;
}

/* En grids, esto es CLAVE para que no “empuje” hacia fuera */
.pr-filters,
.pr-filters__body,
.pr-field,
.pr-row2,
.pr-row2 > * {
  min-width: 0;
}

/* Inputs/selects siempre dentro del ancho del panel */
.pr-filters .pr-input {
  width: 100%;
  max-width: 100%;
  display: block;
}

/* Extra: algunos selects heredan estilos globales raros */
.pr-filters select.pr-input {
  appearance: none;
  -webkit-appearance: none;
  background-clip: padding-box;
}

/* Si tu botón de “Limpiar” arriba empuja, que no rompa el layout */
.pr-filters__top {
  flex-wrap: wrap;
}
