.tnx-privacy-trigger{position:fixed;left:16px;bottom:16px;z-index:9997;border:0;border-radius:999px;background:#111827;color:#fff;padding:10px 14px;font:600 13px/1.2 system-ui,-apple-system,Segoe UI,sans-serif;box-shadow:0 8px 24px rgba(0,0,0,.24);cursor:pointer}.tnx-privacy-trigger:focus-visible,.tnx-privacy-modal button:focus-visible,.tnx-privacy-modal a:focus-visible{outline:3px solid #facc15;outline-offset:2px}.tnx-privacy-backdrop{position:fixed;inset:0;z-index:9998;background:rgba(3,7,18,.62);display:none;align-items:flex-end;justify-content:center;padding:16px}.tnx-privacy-backdrop.open{display:flex}.tnx-privacy-modal{width:min(680px,100%);background:#fff;color:#111827;border-radius:18px;padding:22px;box-shadow:0 24px 80px rgba(0,0,0,.35);font:400 15px/1.55 system-ui,-apple-system,Segoe UI,sans-serif}.tnx-privacy-modal h2{margin:0 0 8px;font-size:1.25rem}.tnx-privacy-modal p{margin:0 0 12px}.tnx-privacy-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.tnx-privacy-actions button,.tnx-privacy-actions a{border-radius:10px;padding:10px 14px;font-weight:700;text-decoration:none}.tnx-privacy-actions button{border:0;background:#111827;color:#fff;cursor:pointer}.tnx-privacy-actions a{border:1px solid #cbd5e1;color:#111827}.tnx-privacy-langs{display:flex;gap:6px;margin:0 0 12px}.tnx-privacy-langs button{border:1px solid #cbd5e1;background:#fff;color:#111827;border-radius:8px;padding:5px 9px;cursor:pointer}.tnx-privacy-langs button.active{background:#111827;color:#fff}.tnx-privacy-small{font-size:.82rem;color:#475569}.tnx-confidentiality{background:#fff7ed;border:1px solid #fdba74;border-radius:12px;padding:14px;margin:14px 0;color:#7c2d12}.tnx-auth-gate{position:fixed;inset:0;z-index:10000;background:#0f172a;display:flex;align-items:center;justify-content:center;padding:18px}.tnx-auth-card{width:min(460px,100%);background:#fff;border-radius:18px;padding:24px;box-shadow:0 30px 100px rgba(0,0,0,.45);font-family:system-ui,-apple-system,Segoe UI,sans-serif}.tnx-auth-card h1{font-size:1.5rem;margin:0 0 8px}.tnx-auth-card p{color:#475569}.tnx-auth-card label{display:block;font-weight:700;margin:12px 0 5px}.tnx-auth-card input{width:100%;box-sizing:border-box;padding:11px;border:1px solid #cbd5e1;border-radius:9px}.tnx-auth-card button{width:100%;margin-top:14px;border:0;border-radius:9px;background:#111827;color:#fff;padding:12px;font-weight:800;cursor:pointer}.tnx-auth-card .secondary{background:#e2e8f0;color:#111827}.tnx-auth-error{color:#b91c1c;font-weight:700;min-height:1.4em}.tnx-auth-card .tnx-check{display:flex;gap:9px;align-items:flex-start;font-weight:400}.tnx-auth-card .tnx-check input{width:auto;margin-top:4px}
@media(min-width:720px){.tnx-privacy-backdrop{align-items:center}}

/* Responsive mobile behavior, consolidated in 1.4.0 */
body.tnx-privacy-open {
  overflow: hidden !important;
  overscroll-behavior: none !important;
  touch-action: none;
}

/* Máxima prioridad visual: ningún CTA fijo debe quedar encima. */
.tnx-privacy-backdrop {
  z-index: 2147483646 !important;
}

.tnx-privacy-backdrop.open {
  display: flex !important;
  position: fixed !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100dvh !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  align-items: center !important;
  justify-content: center !important;
  padding:
    max(16px, env(safe-area-inset-top))
    max(14px, env(safe-area-inset-right))
    max(16px, env(safe-area-inset-bottom))
    max(14px, env(safe-area-inset-left)) !important;
}

/* Ocultar CTA y otros elementos flotantes mientras el aviso está abierto. */
body.tnx-privacy-open .mobile-whatsapp-cta,
body.tnx-privacy-open .mobile-cotizador-cta,
body.tnx-privacy-open .whatsapp-float,
body.tnx-privacy-open .floating-cta,
body.tnx-privacy-open [href*="#calculadora"].mobile-whatsapp-cta {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translateY(120%) !important;
}

/* El modal se divide en cabecera, contenido desplazable y acciones fijas. */
.tnx-privacy-modal {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  width: min(100%, 620px) !important;
  max-height: calc(100dvh - 32px) !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
  margin: 0 !important;
}

.tnx-privacy-head {
  flex: 0 0 auto !important;
}

.tnx-privacy-content {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow-y: auto !important;
  overscroll-behavior: contain !important;
  -webkit-overflow-scrolling: touch;
  padding-right: 2px;
}

.tnx-privacy-actions {
  flex: 0 0 auto !important;
  position: relative !important;
  z-index: 2 !important;
  background: inherit !important;
  padding-top: 14px !important;
}

/* Controles siempre pulsables. */
.tnx-privacy-actions > button,
.tnx-privacy-actions > a {
  min-height: 46px !important;
  touch-action: manipulation !important;
}

/* Selector de idioma compacto, pero accesible. */
.tnx-privacy-langs {
  display: flex !important;
  gap: 8px !important;
  margin-bottom: 14px !important;
}

.tnx-privacy-langs button {
  min-width: 44px !important;
  min-height: 44px !important;
  padding: 6px 10px !important;
  line-height: 1 !important;
  touch-action: manipulation !important;
}

@media (max-width: 760px), (max-height: 720px) {
  .tnx-privacy-backdrop.open {
    align-items: flex-start !important;
    padding-top: max(14px, env(safe-area-inset-top)) !important;
    padding-bottom: max(14px, env(safe-area-inset-bottom)) !important;
  }

  .tnx-privacy-modal {
    width: 100% !important;
    max-height: calc(100dvh - 28px) !important;
    margin: auto 0 !important;
  }

  .tnx-privacy-langs {
    gap: 6px !important;
    margin-bottom: 10px !important;
  }

  .tnx-privacy-langs button {
    min-width: 42px !important;
    min-height: 42px !important;
    padding: 5px 8px !important;
  }

  .tnx-privacy-actions {
    gap: 8px !important;
    padding-bottom: max(2px, env(safe-area-inset-bottom)) !important;
  }
}

@media (max-width: 420px) {
  .tnx-privacy-modal {
    border-radius: 22px !important;
  }

  .tnx-privacy-content h2 {
    font-size: clamp(1.35rem, 6vw, 1.75rem) !important;
  }

  .tnx-privacy-content p {
    line-height: 1.55 !important;
  }
}

/* Compatibilidad con navegadores que aún no reconocen dvh. */
@supports not (height: 100dvh) {
  .tnx-privacy-backdrop.open {
    height: 100vh !important;
  }

  .tnx-privacy-modal {
    max-height: calc(100vh - 32px) !important;
  }

  @media (max-width: 760px), (max-height: 720px) {
    .tnx-privacy-modal {
      max-height: calc(100vh - 28px) !important;
    }
  }
}
