/* Botón flotante y popup del sitio original */
/* ---------- Botón flotante ---------- */
  body .pswa-btn{
    position:fixed !important; right:20px; bottom:20px; z-index:99998;
    width:46px !important; height:46px !important; min-height:0 !important;
    padding:0 !important; margin:0 !important; border:none !important; border-radius:50% !important;
    background:#25D366 !important; cursor:pointer;
    display:flex !important; align-items:center; justify-content:center;
    box-shadow:0 2px 8px rgba(0,0,0,.15) !important;
    opacity:.92; transition:transform .2s ease, opacity .2s ease;
  }
  body .pswa-btn:hover{ transform:scale(1.06); opacity:1; background:#25D366 !important; }
  body .pswa-btn svg{ width:24px; height:24px; fill:#fff; }

  /* ---------- Overlay y modal ---------- */
  .pswa-overlay{
    position:fixed; inset:0; z-index:99999;
    background:rgba(15,23,42,.6); backdrop-filter:blur(4px);
    display:flex; align-items:center; justify-content:center; padding:16px;
    opacity:0; visibility:hidden; transition:opacity .25s ease, visibility .25s ease;
  }
  .pswa-overlay.is-open{ opacity:1; visibility:visible; }

  .pswa-modal{
    position:relative; width:100%; max-width:620px; max-height:92vh; overflow-y:auto;
    background:#fff; border-radius: 0; box-shadow:0 24px 60px rgba(0,0,0,.3);
    font-family:"Helvetica Neue",Arial,sans-serif;
    transform:translateY(20px) scale(.98); transition:transform .25s ease;
    scrollbar-width:thin; scrollbar-color:#d6dbe1 transparent;
  }
  .pswa-modal::-webkit-scrollbar{ width:6px; }
  .pswa-modal::-webkit-scrollbar-thumb{ background:#d6dbe1; border-radius: 0; }
  .pswa-overlay.is-open .pswa-modal{ transform:translateY(0) scale(1); }

  .pswa-head{ padding:28px 60px 6px 24px; }
  .pswa-overlay .pswa-eyebrow{
    margin:0 0 8px !important; font-size:11px !important; font-weight:600 !important;
    letter-spacing:2px !important; text-transform:uppercase !important; color:#c8963e !important;
  }
  .pswa-overlay .pswa-title{
    margin:0 !important; font-size:22px !important; font-weight:600 !important;
    color:#172438 !important; line-height:1.25 !important; font-family:inherit !important;
    letter-spacing:-.2px !important;
  }
  .pswa-overlay .pswa-sub{
    display:flex; align-items:center; gap:6px;
    margin:8px 0 0 !important; font-size:13px !important; color:#64748b !important; line-height:1.4 !important;
  }
  .pswa-sub svg{ width:15px; height:15px; fill:#25D366; flex:0 0 15px; }

  .pswa-overlay .pswa-close{
    position:absolute; top:16px; right:16px;
    width:34px !important; height:34px !important; min-height:0 !important;
    padding:0 !important; border:none !important; border-radius:50% !important;
    background:#f1f3f6 !important; color:#172438 !important; box-shadow:none !important;
    font-size:20px !important; line-height:34px !important; text-align:center;
    cursor:pointer; transition:background .2s ease;
  }
  .pswa-overlay .pswa-close:hover{ background:#e2e6ec !important; color:#172438 !important; }

  .pswa-body{ padding:20px 24px 24px; }

  /* Loader */
  .pswa-loader{ display:flex; justify-content:center; padding:40px 0; }
  .pswa-loader span{
    width:34px; height:34px; border-radius:50%;
    border:3px solid #e5e7eb; border-top-color:#172438; animation:pswa-spin .8s linear infinite;
  }
  @keyframes pswa-spin{ to{ transform:rotate(360deg); } }

  /* ---------- Formulario HubSpot ---------- */
  #pswa-form form{
    display:grid !important; grid-template-columns:1fr 1fr; column-gap:16px;
    margin:0 !important;
  }
  #pswa-form form > *{ grid-column:1 / -1; }

  /* Nombre + Apellidos y Celular + Correo en dos columnas
     (funciona tanto si HubSpot usa fieldsets como si no) */
  #pswa-form form > :is(.hs_firstname, .hs_lastname, .hs_email, .hs_phone, .hs_mobilephone, .hs-fieldtype-phonenumber),
  #pswa-form form > :has(> .hs_firstname, > .hs_lastname, > .hs_email, > .hs_phone, > .hs_mobilephone, > .hs-fieldtype-phonenumber):not(:has(> .hs-form-field ~ .hs-form-field)){
    grid-column:auto;
  }

  #pswa-form fieldset{
    max-width:100% !important; width:100% !important;
    margin:0 !important; padding:0 !important; border:none !important;
  }
  /* Espacio entre campos */
  #pswa-form .hs-form-field{
    width:100% !important; float:none !important; margin:0 0 18px !important; padding:0 !important;
  }
  #pswa-form .hs-form-field .input{ margin:0 !important; }
  #pswa-form .hs-richtext{ margin:0 0 18px !important; }

  /* Quita el azul del autocompletar de Chrome */
  #pswa-form input:-webkit-autofill,
  #pswa-form input:-webkit-autofill:hover,
  #pswa-form input:-webkit-autofill:focus{
    -webkit-box-shadow:0 0 0 1000px #fff inset !important;
    -webkit-text-fill-color:#111827 !important;
    transition:background-color 9999s ease-in-out 0s;
  }
  #pswa-form input:-webkit-autofill:focus{
    -webkit-box-shadow:0 0 0 1000px #fff inset, 0 0 0 3px rgba(23,36,56,.12) !important;
  }

  #pswa-form label{
    display:block !important; margin:0 0 6px !important; padding:0 !important;
    font-size:13px !important; font-weight:500 !important; color:#1f2937 !important;
    line-height:1.4 !important; font-family:inherit !important; text-transform:none !important;
  }
  #pswa-form .hs-form-required{ color:#e11d48 !important; margin-left:2px; }
  #pswa-form .hs-field-desc{ font-size:12px !important; color:#64748b !important; margin:-2px 0 6px !important; }

  #pswa-form input[type="text"],
  #pswa-form input[type="email"],
  #pswa-form input[type="tel"],
  #pswa-form input[type="number"],
  #pswa-form select,
  #pswa-form textarea{
    width:100% !important; height:44px !important; min-height:0 !important; box-sizing:border-box !important;
    margin:0 !important; padding:0 12px !important;
    border:1px solid #d6dbe1 !important; border-radius: 0 !important;
    background-color:#fff !important; box-shadow:none !important;
    color:#111827 !important; font-size:14px !important; font-family:inherit !important;
    line-height:normal !important; outline:none !important;
    transition:border-color .2s ease, box-shadow .2s ease;
  }
  #pswa-form textarea{ height:auto !important; min-height:90px !important; padding:10px 12px !important; }
  #pswa-form input:focus, #pswa-form select:focus, #pswa-form textarea:focus{
    border-color:#172438 !important; box-shadow:0 0 0 3px rgba(23,36,56,.12) !important;
  }
  #pswa-form input::placeholder{ color:#9ca3af !important; }

  #pswa-form select{
    appearance:none !important; -webkit-appearance:none !important; padding-right:38px !important; cursor:pointer;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='%23172438'/%3E%3C/svg%3E") !important;
    background-repeat:no-repeat !important; background-position:right 14px center !important; background-size:12px 8px !important;
  }
  #pswa-form select:invalid, #pswa-form select.is-placeholder{ color:#9ca3af !important; }

  /* Teléfono con indicativo */
  #pswa-form .hs-fieldtype-intl-phone.hs-input{ display:flex !important; gap:8px; width:100% !important; }
  #pswa-form .hs-fieldtype-intl-phone select{ width:96px !important; flex:0 0 96px; }
  #pswa-form .hs-fieldtype-intl-phone input{ flex:1; }

  /* Checkbox de política */
  #pswa-form .inputs-list{ list-style:none !important; padding:0 !important; margin:0 !important; }
  #pswa-form .inputs-list li{ margin:0 !important; padding:0 !important; }
  #pswa-form .hs-form-booleancheckbox-display,
  #pswa-form .hs-form-checkbox-display{
    display:flex !important; align-items:flex-start; gap:10px;
    font-size:13px !important; font-weight:400 !important; color:#374151 !important; cursor:pointer;
  }
  #pswa-form .hs-form-booleancheckbox-display > span,
  #pswa-form .hs-form-checkbox-display > span{ margin:0 !important; padding:0 !important; font-size:13px !important; line-height:1.5 !important; }
  #pswa-form input[type="checkbox"]{
    width:16px !important; height:16px !important; margin:2px 0 0 !important; flex:0 0 16px;
    accent-color:#172438; cursor:pointer;
  }
  #pswa-form .legal-consent-container a,
  #pswa-form .hs-form-booleancheckbox a{ color:#e11d48 !important; text-decoration:none !important; }
  #pswa-form .legal-consent-container a:hover{ text-decoration:underline !important; }

  /* Errores */
  #pswa-form .hs-error-msgs{ list-style:none !important; padding:0 !important; margin:4px 0 0 !important; }
  #pswa-form .hs-error-msg, #pswa-form .hs-error-msgs label{ color:#e11d48 !important; font-size:12px !important; margin:0 !important; }
  #pswa-form .invalid.error{ border-color:#e11d48 !important; }
  #pswa-form .hs_error_rollup{ display:none !important; }

  /* Botón enviar */
  #pswa-form .hs_submit{ margin-top:6px; }
  #pswa-form .hs_submit .actions{ margin:0 !important; padding:0 !important; }
  #pswa-form input[type="submit"],
  #pswa-form .hs-button{
    width:100% !important; height:50px !important; min-height:0 !important;
    margin:0 !important; padding:0 20px !important;
    border:none !important; border-radius: 0 !important; box-shadow:none !important;
    background:#172438 !important; color:#fff !important;
    font-size:15px !important; font-weight:600 !important; font-family:inherit !important;
    letter-spacing:.2px !important; text-transform:none !important; line-height:50px !important;
    cursor:pointer; transition:background .2s ease, transform .1s ease;
  }
  #pswa-form input[type="submit"]:hover,
  #pswa-form .hs-button:hover{ background:#24365a !important; }
  #pswa-form .hs-button:active{ transform:scale(.99); }

  /* Mensaje de éxito */
  #pswa-form .submitted-message{
    text-align:center; padding:30px 10px; font-size:15px; color:#172438;
  }

  /* ---------- Responsive ---------- */
  @media (max-width:600px){
    #pswa-form form{ grid-template-columns:1fr; }
    body .pswa-btn{ right:14px; bottom:14px; width:42px !important; height:42px !important; }
    body .pswa-btn svg{ width:22px; height:22px; }
    .pswa-head{ padding:18px 56px 14px 18px; }
    .pswa-body{ padding:16px 18px 20px; }
    .pswa-overlay .pswa-title{ font-size:18px !important; }
  }
