﻿
/* ===== FAB BOTÓN FLOTANTE ===== */
.rhwa-fab{
    position:fixed; right:25px; bottom:25px; z-index:99998;
    display:inline-flex !important; align-items:center !important; justify-content:center !important; gap:8px !important;
    padding:0 20px 0 14px !important; height:54px !important;
    background:var(--rhwa-primary) !important; color:#fff !important;
    border-radius:99px !important; border:none !important; cursor:pointer !important;
    font:700 14px/1 'Oswald',Poppins,system-ui,Arial,sans-serif !important;
    letter-spacing:1.5px !important; text-transform:uppercase !important;
    box-shadow:0 8px 22px rgba(37,211,102,.45) !important;
    transition:transform .25s ease, box-shadow .25s ease, background .25s ease, bottom .2s ease !important;
    outline:none !important; text-decoration:none !important; white-space:nowrap !important;
    pointer-events:auto !important; touch-action:manipulation;
    -webkit-tap-highlight-color:transparent; box-sizing:border-box !important;
}
.rhwa-fab:visited, .rhwa-fab:focus{ color:#fff !important; text-decoration:none !important; }
.rhwa-fab:hover{
    transform:translateY(-4px) scale(1.06);
    box-shadow:0 14px 30px rgba(0,0,0,.3), 0 0 0 5px rgba(0,0,0,.08) !important;
    background:var(--rhwa-secondary) !important;
}
.rhwa-fab:active{ transform:translateY(-1px) scale(.98); }
.rhwa-fab svg, .rhwa-fab img{
    width:24px !important; height:24px !important; fill:currentColor !important; flex-shrink:0 !important;
    display:inline-block !important; margin:0 !important; padding:0 !important; vertical-align:normal !important;
    transform:none !important; object-fit:contain !important;
}
.rhwa-fab.is-attention{ animation:rhwa-wiggle .9s ease-in-out 3; }
@keyframes rhwa-wiggle{
    0%,100%{ transform:translateY(0) rotate(0); }
    25%{ transform:translateY(-3px) rotate(-3deg); }
    50%{ transform:translateY(-5px) rotate(0); }
    75%{ transform:translateY(-3px) rotate(3deg); }
}
.rhwa-fab.is-hidden{ opacity:0; visibility:hidden; transform:translateY(20px) scale(.85); pointer-events:none; }
.rhwa-fab.is-left { right:auto !important; left:25px !important; }
@media (max-width:600px){ .rhwa-fab.is-left { left:15px !important; } }

/* ===== BURBUJA PROACTIVA REDISEÑADA ===== */
.rhwa-bubble{
    position:fixed; right:170px; bottom:30px; z-index:99997;
    background:#fff; color:#222;
    padding:12px 16px; border-radius:20px 20px 4px 20px;
    box-shadow:0 8px 24px rgba(0,0,0,.12), 0 2px 8px rgba(0,0,0,.06);
    max-width:280px; font:500 13.5px/1.4 Poppins,system-ui,sans-serif;
    cursor:pointer; transition:bottom .2s ease;
    animation:rhwa-bubble-in .4s cubic-bezier(.34,1.56,.64,1) both;
}
.rhwa-bubble::after{
    content:''; position:absolute; right:-10px; bottom:14px;
    border-width:10px 0 10px 10px; border-style:solid;
    border-color:transparent transparent transparent #fff;
}
.rhwa-bubble-close{
    position:absolute; top:-10px;right:-8px; 
    width:18px; height:18px; border-radius:50%;
    background:transparent; border:none; cursor:pointer;
    color:#bbb; font-size:15px; font-weight:bold; line-height:1;
    display:flex; align-items:center; justify-content:center; transition:color .2s;
left:auto;background:#fff;border:1.5px solid #e5e5e5;color:#888;box-shadow:0 2px 6px rgba(0,0,0,.12);}
.rhwa-bubble-close:hover{ color:var(--rhwa-secondary); }
@keyframes rhwa-bubble-in{
    from{ opacity:0; transform:translateX(12px) scale(.85); }
    to{ opacity:1; transform:translateX(0) scale(1); }
}
.rhwa-bubble.is-hiding{ animation:rhwa-bubble-out .25s ease both; }
@keyframes rhwa-bubble-out{
    from{ opacity:1; transform:translateX(0) scale(1); }
    to{ opacity:0; transform:translateX(12px) scale(.85); }
}

/* ===== PANEL DE CHAT ===== */
.rhwa-panel{
    position:fixed; right:25px; bottom:90px; z-index:99999;
    width:370px; max-width:calc(100vw - 30px);
    max-height:calc(100vh - 150px);
    background:#fff; border-radius:20px;
    box-shadow:0 24px 64px rgba(0,0,0,.28);
    overflow:hidden; display:none; flex-direction:column;
    transform-origin:bottom right;
    font-family:Poppins,system-ui,sans-serif;
    pointer-events:auto !important;
}
.rhwa-panel.is-left { right:auto; left:25px; transform-origin:bottom left; }
@media (max-width:768px){ .rhwa-panel.is-left{ left:20px; } }
@media (max-width:600px){ .rhwa-panel.is-left{ left:10px; right:10px; } }
.rhwa-panel.is-open{ display:flex; animation:rhwa-panel-in .3s cubic-bezier(.34,1.56,.64,1); }
@keyframes rhwa-panel-in{
    from{ opacity:0; transform:translateY(20px) scale(.88); }
    to{ opacity:1; transform:translateY(0) scale(1); }
}

/* Header del chat */
.rhwa-header{
    background:var(--rhwa-primary); padding:9px 14px;
    display:flex; align-items:center; justify-content:space-between; flex-shrink:0;
}
.rhwa-header-left{ display:flex; align-items:center; gap:9px; min-width:0; flex:1; }
.rhwa-header-icon{
    width:34px; height:34px;
    display:inline-flex; align-items:center; justify-content:center;
    flex-shrink:0; background:rgba(255,255,255,.18); border:none; border-radius:50%;
}
.rhwa-header-icon svg, .rhwa-header-icon img{
    width:21px !important; height:21px !important;
    fill:#fff; object-fit:contain; filter:none;
}
.rhwa-header h3{
    margin:0 !important; color:#fff !important;
    font-family:'Oswald',Poppins,system-ui,sans-serif !important;
    font-weight:700 !important; font-size:14px !important;
    letter-spacing:.5px !important; text-transform:uppercase !important;
    line-height:1.2 !important; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
    flex:1; min-width:0;
}

/* Barra de progreso de pasos */
.rhwa-step-bar{
    display:flex; align-items:center; justify-content:center; gap:8px;
    padding:6px 18px 2px; background:#fff; flex-shrink:0;
}
.rhwa-step-dot{
    width:8px; height:8px; border-radius:50%; background:#e2e8f0;
    transition:all .3s cubic-bezier(.34,1.56,.64,1); flex-shrink:0;
}
.rhwa-step-dot.is-done{ background:var(--rhwa-primary); opacity:.55; transform:scale(.85); }
.rhwa-step-dot.is-active{ background:var(--rhwa-primary); width:22px; border-radius:99px; box-shadow:0 0 0 3px rgba(37,211,102,.18); }
.rhwa-step-dot.is-future{ background:#e2e8f0; }
.rhwa-close{
    background:rgba(255,255,255,.15); border:none; color:#fff;
    font-size:18px; cursor:pointer; padding:0; flex-shrink:0;
    width:32px; height:32px; line-height:1;
    display:flex; align-items:center; justify-content:center;
    border-radius:50%; transition:background .15s, transform .15s; margin-left:8px;
}
.rhwa-close:hover{ background:rgba(255,255,255,.3); transform:rotate(90deg); }

/* Cuerpo del chat (scrollable) */
.rhwa-body{
    padding:6px 22px 22px; overflow-y:auto; flex:1 1 auto; min-height:0; position:relative;
    background:linear-gradient(160deg,#f8fff9 0%,#f5f8ff 60%,#fafafa 100%);
}
.rhwa-body p.rhwa-intro{ margin:0 0 16px; color:#666; text-align:center; font:400 13px/1.6 Poppins,system-ui,sans-serif; }
.rhwa-body h4{ margin:0 0 12px; color:#1a1a1a; text-align:center; font:700 15px/1.3 'Oswald',Poppins,system-ui,sans-serif; text-transform:uppercase; letter-spacing:.8px; }

/* Tipos: botones de selección */
.rhwa-types{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:6px; }
.rhwa-type-btn{
    padding:18px 10px 14px; border:2px solid #e8e8e8; border-radius:14px;
    background:#fff; cursor:pointer; text-align:center;
    font:700 12.5px/1.4 Poppins,system-ui,sans-serif; color:#1a1a1a;
    display:flex; flex-direction:column; align-items:center; justify-content:flex-start;
    gap:10px; transition:all .25s ease; min-height:100px; height:auto;
    box-shadow:0 2px 8px rgba(0,0,0,.05); position:relative; overflow:hidden;
}
.rhwa-type-btn::before{
    content:''; position:absolute; inset:0;
    background:linear-gradient(135deg, rgba(37,211,102,.06) 0%, transparent 60%);
    opacity:0; transition:opacity .25s; pointer-events:none;
}
.rhwa-type-btn:hover{ border-color:var(--rhwa-primary); background:#f5fffb; transform:translateY(-3px); box-shadow:0 10px 24px rgba(0,0,0,.08); color:#1a1a1a !important; }
.rhwa-type-btn:hover .rhwa-type-label{ color:#1a1a1a !important; }
.rhwa-type-btn:hover::before{ opacity:1; }
.rhwa-type-emoji{ font-size:32px; line-height:1; display:block; background: transparent !important; border: none !important; padding: 0 !important; margin: 0 !important; }
.rhwa-type-label{ display:block; padding:0 4px; font-size:12px; line-height:1.4; word-break:break-word; white-space:normal; hyphens:auto; background: transparent !important; border: none !important; margin: 0 !important; }
.rhwa-type-svg { width: 36px !important; height: 36px !important; color: var(--rhwa-primary) !important; fill: currentColor !important; transition: color 0.2s ease !important; background: transparent !important; }
.rhwa-type-btn:hover .rhwa-type-svg { color: var(--rhwa-secondary) !important; }

/* Formulario */
.rhwa-form-intro{
    display:flex; align-items:center; gap:7px;
    width:fit-content; max-width:100%; margin:0 auto 10px; box-sizing:border-box;
    font:600 12px/1.3 Poppins,system-ui,sans-serif; color:#15803d; text-align:left;
    background:linear-gradient(135deg,rgba(37,211,102,.14),rgba(37,211,102,.06));
    border-radius:99px; padding:8px 16px;
}
.rhwa-form-intro::before{ content:'⚡'; font-size:14px; line-height:1; flex-shrink:0; }
.rhwa-form-intro.is-closed{ background:linear-gradient(135deg,rgba(210,12,38,.12),rgba(210,12,38,.05)); color:var(--rhwa-secondary); }
.rhwa-form-intro.is-closed::before{ content:'🕒'; }
.rhwa-field{ margin-bottom:16px; }
.rhwa-field label{ display:block; margin-bottom:6px; font:600 12px/1 Poppins,system-ui,sans-serif; color:#444; letter-spacing:.3px; text-transform:uppercase; }
.rhwa-field.is-required label::after{ content:' *'; color:var(--rhwa-secondary); font-weight:700; }
.rhwa-field input[type=text], .rhwa-field input[type=email], .rhwa-field input[type=tel]{
    width:100%; padding:11px 14px; border:1.5px solid #ddd; border-radius:10px;
    font:400 14px Poppins,system-ui,sans-serif; box-sizing:border-box; background:#fafafa;
    transition:border-color .2s, box-shadow .2s, background .2s; text-overflow:ellipsis; min-width:0;
}
.rhwa-field input::placeholder{ font-size:13px; color:#999; text-overflow:ellipsis; white-space:nowrap; overflow:hidden; }
.rhwa-field-row .rhwa-field{ min-width:0; overflow:hidden; }
.rhwa-field input:focus{ outline:none; border-color:var(--rhwa-primary); background:#fff; box-shadow:0 0 0 3px rgba(0,0,0,.05); }
.rhwa-phone{ display:flex; align-items:center; gap:8px; }
.rhwa-phone select{ padding:11px 8px; border:1.5px solid #ddd; border-radius:10px; background:#fafafa; font:600 13px Poppins,system-ui,sans-serif; flex-shrink:0; max-width:120px; outline:none; transition:border-color .2s; }
.rhwa-phone select:focus{ border-color:var(--rhwa-primary); }
.rhwa-phone input{ flex:1; min-width:0; }

/* Checkbox Política */
.rhwa-check-wrapper{ display:flex; align-items:center; gap:10px; margin:14px 0 16px; padding:10px 12px; background:#f9f9f9; border-radius:10px; border:1.5px solid #e8e8e8; transition:border-color .2s; cursor:pointer; box-sizing: border-box; }
.rhwa-check-wrapper:hover{ border-color:var(--rhwa-primary); background:#f5fffb; }
.rhwa-check-wrapper input[type=checkbox]{ width:18px !important; height:18px !important; flex-shrink:0 !important; margin:0 !important; accent-color:#25D366; cursor:pointer; }
.rhwa-check-wrapper label{ font:400 12px/1.5 Poppins,system-ui,sans-serif !important; color:#555 !important; cursor:pointer !important; flex:1 !important; min-width:0 !important; margin:0 !important; display:inline !important; padding:0 !important; border:none !important; background:transparent !important; }
.rhwa-check-wrapper label a{ color:var(--rhwa-primary) !important; text-decoration:underline !important; font-weight:600 !important; transition:color .2s !important; display:inline !important; padding:0 !important; margin:0 !important; border:none !important; background:transparent !important; }
.rhwa-check-wrapper label a:hover{ color:var(--rhwa-secondary) !important; }
.rhwa-check-required{ color:var(--rhwa-secondary); font-weight:700; font-size:13px; flex-shrink:0; margin-top:1px; }
.rhwa-required-note{ font:400 11px Poppins,system-ui,sans-serif; color:#999; text-align:right; margin:0 0 4px; }
.rhwa-required-note span{ color:var(--rhwa-secondary); font-weight:700; }
.rhwa-submit{ width:100%; padding:14px; background:var(--rhwa-primary); color:#fff; border:none; border-radius:10px; font:700 14px/1 'Oswald',Poppins,system-ui,sans-serif; letter-spacing:1.5px; text-transform:uppercase; cursor:pointer; transition:all .25s ease; box-shadow:0 4px 14px rgba(0,0,0,.15); }
.rhwa-submit:hover:not(:disabled){ background:var(--rhwa-primary); filter:brightness(0.9); transform:translateY(-2px); box-shadow:0 8px 20px rgba(0,0,0,.2); }
.rhwa-submit:active:not(:disabled){ transform:translateY(0); }
.rhwa-submit:disabled{ background:#ccc; cursor:not-allowed; transform:none; box-shadow:none; }
.rhwa-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 0px; }
@media (max-width:480px){ .rhwa-field-row { grid-template-columns: 1fr; gap: 0; } }

.rhwa-error{ display:none; }

/* ===== ALERTA TOAST INLINE ===== */
@keyframes rhwa-fade-in{ from{opacity:0;transform:translateY(4px)} to{opacity:1;transform:translateY(0)} }
.rhwa-alert-toast{
    display:flex; align-items:flex-start; gap:8px;
    background:#fff5f5; border-left:3px solid var(--rhwa-secondary);
    border-radius:8px; padding:10px 12px; margin-top:8px;
    font:400 13px/1.45 Poppins,sans-serif; color:#c0392b;
    animation:rhwa-fade-in .2s ease;
}
.rhwa-alert-toast-icon{ font-size:13px; flex-shrink:0; margin-top:1px; }
.rhwa-alert-toast-text{ flex:1; }

/* ===== ÉXITO COMPACTO ===== */
.rhwa-sent-toast-success{
    display:flex; align-items:flex-start; gap:14px;
    padding:22px 16px 16px;
    animation: rhwa-panel-in .35s cubic-bezier(.34,1.56,.64,1) both;
}
.rhwa-sent-toast-check{
    width:40px; height:40px; flex-shrink:0;
    background:#25D366; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    color:#fff; font-size:20px; font-weight:700;
    box-shadow:0 4px 12px rgba(37,211,102,.35);
}
.rhwa-sent-toast-body strong{
    display:block;
    font:600 14px/1.3 Poppins,sans-serif !important;
    color:#1a1a1a !important; margin:0 0 6px !important;
}
.rhwa-sent-toast-body p{
    font:400 13px/1.5 Poppins,sans-serif !important;
    color:#555 !important; margin:0 !important;
}

/* Asesores */
.rhwa-asesores{ display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
.rhwa-asesor{ border:2px solid #e8e8e8; border-radius:14px; padding:14px 8px; text-align:center; cursor:pointer; background:#fff; transition:all .25s ease; box-shadow:0 2px 8px rgba(0,0,0,.05); }
.rhwa-asesor:hover{ border-color:var(--rhwa-primary); background:#f5fffb; transform:translateY(-3px); box-shadow:0 10px 22px rgba(0,0,0,.08); }
.rhwa-asesor img, .rhwa-asesor-avatar{ width:58px; height:58px; border-radius:50%; object-fit:cover; margin:0 auto 8px; display:block; }
.rhwa-asesor-avatar{ background:var(--rhwa-primary); color:#fff; display:flex; align-items:center; justify-content:center; font:700 22px Poppins,system-ui,sans-serif; box-shadow:0 4px 12px rgba(0,0,0,.15); }
.rhwa-asesor-nombre{ display:block; font:700 13px Poppins,system-ui,sans-serif; color:#1a1a1a; margin-bottom:2px; }
.rhwa-asesor-cargo{ display:block; font:400 11px Poppins,system-ui,sans-serif; color:#888; }

/* Card de asesor en vacaciones */
.rhwa-asesor-vacation{ position:relative; border-color:#e8e8e8 !important; background:#fff !important; }
.rhwa-asesor-vacation:hover{ border-color:#f59e0b !important; background:#fffbeb !important; box-shadow:0 10px 22px rgba(245,158,11,.18) !important; }
.rhwa-asesor-vacation img, .rhwa-asesor-vacation .rhwa-asesor-avatar{ opacity:.72; filter:grayscale(35%); }
.rhwa-vac-badge{ position:absolute; top:4px; right:4px; background:#f59e0b; color:#fff; font:700 9px/1 'Oswald',Poppins,system-ui,sans-serif; letter-spacing:.4px; text-transform:uppercase; padding:3px 6px; border-radius:6px 6px 6px 0; box-shadow:0 2px 5px rgba(245,158,11,.4); white-space:nowrap; z-index:2; }
.rhwa-vac-badge::after{ content:''; position:absolute; bottom:-4px; left:6px; width:0; height:0; border:4px solid transparent; border-top-color:#f59e0b; border-bottom:0; border-left:0; }
.rhwa-vac-msg{ font:600 9.5px/1.2 Poppins,system-ui,sans-serif; color:#92400e; background:#fef3c7; border:1px solid #fde68a; border-radius:8px; padding:3px 7px; display:inline-block; margin-top:4px; white-space:nowrap; max-width:100%; overflow:hidden; text-overflow:ellipsis; }

.rhwa-back{ display:inline-flex; align-items:center; gap:4px; background:none; border:none; color:#666; font:600 12.5px Poppins,system-ui,sans-serif; cursor:pointer; padding:0; margin:-2px 0 6px; transition:color .15s; }
.rhwa-back:hover{ color:var(--rhwa-primary); }
.rhwa-loading{ display:flex; justify-content:center; padding:30px; }
.rhwa-spinner{ width:36px; height:36px; border-radius:50%; border:3px solid #e5e5e5; border-top-color:var(--rhwa-primary); animation:rhwa-spin .9s linear infinite; }
@keyframes rhwa-spin{ to{transform:rotate(360deg)} }

/* ===== LOADING INLINE (RHINO) ===== */
.rhwa-rhino-loading{ text-align:center; padding:30px 15px; animation: rhwa-panel-in .35s cubic-bezier(.34,1.56,.64,1) both; }
.rhwa-rhino-loading-logo{ width:72px; height:72px; margin:0 auto 16px; background:var(--rhwa-secondary); border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:0 8px 22px rgba(210,12,38,.25); animation: rhino-logo-pulse 1.4s ease-in-out infinite; }
.rhwa-rhino-loading-logo img{ width:42px; height:42px; object-fit:contain; filter:drop-shadow(0 1px 2px rgba(0,0,0,.2)); }
.rhwa-rhino-loading h4{ margin:0 0 4px !important; color:#1a1a1a !important; font:700 16px/1.3 'Oswald',Poppins,sans-serif !important; text-transform:uppercase; letter-spacing:.6px; }
.rhwa-dots{ display:flex; justify-content:center; gap:6px; margin-top:14px; }
.rhwa-dots span{ width:8px; height:8px; border-radius:50%; background:var(--rhwa-primary); animation: rhwa-dots-jump .8s ease-in-out infinite; }
.rhwa-dots span:nth-child(2){ animation-delay:.15s; }
.rhwa-dots span:nth-child(3){ animation-delay:.3s; }
@keyframes rhwa-dots-jump{ 0%,80%,100%{ transform:scale(.6); opacity:.5; } 40%{ transform:scale(1.1); opacity:1; } }

/* ===== PANTALLA "ENVIADO" CON RHINO ===== */
.rhwa-sent-wrap{ text-align:center; padding:18px 8px 14px; animation: rhwa-panel-in .35s cubic-bezier(.34,1.56,.64,1) both; }
.rhwa-sent-rhino{ position:relative; width:70px; height:70px; margin:0 auto 14px; background:var(--rhwa-primary); border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:0 8px 22px rgba(0,0,0,.15); }
.rhwa-sent-rhino img{ width:42px; height:42px; object-fit:contain; }
.rhwa-sent-check{ position:absolute; bottom:-2px; right:-2px; width:26px; height:26px; border-radius:50%; background:#fff; color:var(--rhwa-primary); display:flex; align-items:center; justify-content:center; font:700 14px/1 sans-serif; box-shadow:0 2px 6px rgba(0,0,0,.15); border:2px solid #fff; }
.rhwa-sent-wrap h4{ margin:0 0 8px !important; color:#1a1a1a !important; font:700 17px/1.3 'Oswald',Poppins,sans-serif !important; text-transform:uppercase; letter-spacing:.7px; }
.rhwa-sent-msg{ font:400 13px/1.5 Poppins,sans-serif; color:#555; margin:0 0 12px 0; }
.rhwa-sent-hint{ font:400 11.5px/1.4 Poppins,sans-serif; color:#888; margin:0 0 14px 0; }
.rhwa-sent-cta{ display:inline-block; padding:12px 18px; background:var(--rhwa-primary); color:#fff !important; text-decoration:none !important; border:none; border-radius:10px; font:700 12.5px/1 'Oswald',Poppins,sans-serif; letter-spacing:1px; text-transform:uppercase; cursor:pointer; transition:all .2s; box-shadow:0 4px 12px rgba(0,0,0,.15); margin-bottom:8px; }
.rhwa-sent-cta:hover{ background:var(--rhwa-primary); filter:brightness(0.9); transform:translateY(-2px); }
.rhwa-sent-cta-secondary{ display:block; width:100%; padding:10px 16px; margin-top:8px; background:transparent; border:1.5px solid #ddd; color:#555 !important; border-radius:10px; font:600 12px/1 'Oswald',Poppins,sans-serif; letter-spacing:.8px; text-transform:uppercase; cursor:pointer; transition:all .2s; }
.rhwa-sent-cta-secondary:hover{ border-color:var(--rhwa-secondary); color:var(--rhwa-secondary) !important; background:#fff8f8; }

/* ===== PANTALLA DE ÉXITO PREMIUM ===== */
.rhwa-success-wrap { text-align: center; padding: 10px 8px; animation: rhwa-panel-in 0.35s cubic-bezier(0.34, 1.56, 0.64, 1) both; }
.rhwa-success-icon { width: 54px; height: 54px; background: var(--rhwa-primary); color: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 26px; margin: 0 auto 12px; box-shadow: 0 6px 16px rgba(37, 211, 102, 0.25); }
.rhwa-success-wrap h4 { margin: 0 0 8px 0 !important; color: #1a1a1a !important; font: 700 16px/1.3 'Oswald', Poppins, sans-serif !important; text-transform: uppercase; letter-spacing: 0.8px; }
.rhwa-success-msg { font-size: 12.5px; line-height: 1.5; color: #555; margin: 0 0 18px 0; }
.rhwa-success-buttons { display: flex; flex-direction: column; gap: 10px; }
.rhwa-success-btn-confirm { width: 100%; padding: 12px 14px; background: var(--rhwa-primary); color: #fff !important; border: none; border-radius: 10px; font: 700 12.5px/1 'Oswald', Poppins, sans-serif; letter-spacing: 1px; text-transform: uppercase; cursor: pointer; transition: all 0.2s; box-shadow: 0 4px 10px rgba(0,0,0, 0.15); }
.rhwa-success-btn-confirm:hover { background: var(--rhwa-primary); filter:brightness(0.9); transform: translateY(-2px); box-shadow: 0 6px 14px rgba(0,0,0, 0.25); }
.rhwa-success-btn-retry { width: 100%; padding: 12px 14px; background: #fff; color: var(--rhwa-secondary) !important; border: 2px solid var(--rhwa-secondary); border-radius: 10px; font: 700 12.5px/1 'Oswald', Poppins, sans-serif; letter-spacing: 1px; text-transform: uppercase; cursor: pointer; transition: all 0.2s; }
.rhwa-success-btn-retry:hover { background: #fff8f8; transform: translateY(-2px); box-shadow: 0 4px 10px rgba(210, 12, 38, 0.08); }

/* ====== ERROR HIGHLIGHT ====== */
.rhwa-input-error { border-color: var(--rhwa-secondary) !important; box-shadow: 0 0 0 3px rgba(0,0,0, 0.05) !important; animation: rhwa-shake 0.4s cubic-bezier(.36,.07,.19,.97) both; }
@keyframes rhwa-shake { 10%, 90% { transform: translate3d(-1px, 0, 0); } 20%, 80% { transform: translate3d(2px, 0, 0); } 30%, 50%, 70% { transform: translate3d(-4px, 0, 0); } 40%, 60% { transform: translate3d(4px, 0, 0); } }

/* ====== MEDIA QUERIES ====== */
@media (max-width:768px){ .rhwa-panel{ right:20px; bottom:140px; width:340px; max-width:calc(100vw - 40px); } }
@media (max-width:600px){
    .rhwa-fab{ right:15px; bottom:75px; height:50px; padding:0 16px 0 12px; font-size:12px; letter-spacing:1px; }
    .rhwa-fab svg, .rhwa-fab img{ width:20px; height:20px; }
    .rhwa-bubble{ right:80px; bottom:85px; max-width:calc(100vw - 110px); font-size:12px; padding:9px 30px 9px 12px; }
    .rhwa-panel{ right:8px; left:8px; bottom:80px; width:auto; max-width:none; max-height:calc(100vh - 92px); border-radius:16px; }
    .rhwa-header{ padding:8px 12px; }
    .rhwa-header h3{ font-size:13px !important; }
    .rhwa-header-icon{ width:30px; height:30px; }
    .rhwa-header-icon svg, .rhwa-header-icon img{ width:19px !important; height:19px !important; }
    .rhwa-step-bar{ padding:4px 14px 2px; }
    .rhwa-body{ padding:5px 16px 16px; }
    .rhwa-body h4{ font-size:14px; margin-bottom:10px; }
    .rhwa-body p.rhwa-intro{ margin-bottom:12px; }
    .rhwa-form-intro{ font-size:11.5px; padding:7px 13px; margin-bottom:12px; }
    .rhwa-field{ margin-bottom:11px; }
    .rhwa-field label{ margin-bottom:5px; }
    .rhwa-field input[type=text], .rhwa-field input[type=email], .rhwa-field input[type=tel]{ padding:10px 12px; font-size:16px; }
    .rhwa-phone select{ padding:10px 6px; font-size:13px; }
    .rhwa-check-wrapper{ padding:9px 11px; margin:10px 0 12px; }
    .rhwa-required-note{ margin-bottom:6px; }
    .rhwa-submit{ padding:13px; }
    .rhwa-type-emoji{ font-size:28px; }
    .rhwa-type-btn{ min-height:84px; padding:13px 8px 11px; gap:8px; }
    .rhwa-asesores{ gap:8px; }
    .rhwa-asesor{ padding:12px 6px; }
    .rhwa-asesor img, .rhwa-asesor-avatar{ width:48px; height:48px; font-size:18px; }
}

/* ====== OVERLAY DE REDIRECCIÓN A WHATSAPP ====== */
.rhwa-redirect-overlay { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background: linear-gradient(135deg, #0f1011, #30050b, #593c04, #0b0c0d) !important; background-size: 400% 400% !important; animation: rhwa-mesh-bg 10s ease infinite !important; z-index: 1000000; display: none; align-items: center; justify-content: center; color: #fff; text-align: center; font-family: 'Poppins', system-ui, sans-serif; opacity: 0; visibility: hidden; transition: opacity 0.3s ease, visibility 0.3s ease; cursor: pointer; }
@keyframes rhwa-mesh-bg { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
.rhwa-redirect-overlay.is-active { opacity: 1; visibility: visible; display: flex !important; }
.rhwa-redirect-content { max-width: 90%; width: 380px; padding: 30px 20px; box-sizing: border-box; background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.07); border-radius: 24px; backdrop-filter: blur(15px); box-shadow: 0 30px 60px rgba(0, 0, 0, 0.5); }
.rhwa-redirect-logo-container { width: 110px; height: 110px; margin: 0 auto 20px; position: relative; display: flex; align-items: center; justify-content: center; background: none !important; border: none !important; box-shadow: none !important; animation: rhino-logo-pulse 2s ease-in-out infinite; }
.rhwa-redirect-logo-container img { width: 104px; height: 104px; object-fit: contain; filter: drop-shadow(0 4px 15px rgba(210, 12, 38, 0.65)); }
@keyframes rhino-logo-pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.08); } }
.rhwa-redirect-content h2 { margin: 0 0 12px 0 !important; font-size: 22px !important; font-weight: 700 !important; font-family: 'Oswald', Poppins, sans-serif !important; text-transform: uppercase; letter-spacing: 1px; color: #fff !important; line-height: 1.3 !important; }
.rhwa-redirect-content p { margin: 0 !important; opacity: 0.85; font-size: 14px !important; color: #fff !important; font-family: 'Poppins', sans-serif !important; line-height: 1.5 !important; }
.rhwa-progress-track { width: 270px; height: 7px; background: rgba(255, 255, 255, 0.08); border-radius: 99px; margin: 35px auto 25px; position: relative; overflow: visible; box-shadow: inset 0 1px 3px rgba(0,0,0,0.5); }
.rhwa-progress-bar { height: 100%; width: 0%; background: linear-gradient(90deg, var(--rhwa-secondary), var(--rhwa-primary)); border-radius: 99px; box-shadow: 0 0 10px rgba(255, 206, 96, 0.4); animation: rhwa-fill-bar 2.2s cubic-bezier(0.4, 0, 0.2, 1) infinite; }
.rhwa-rhino-runner { position: absolute; top: -15px; left: -20px; width: 36px; height: 36px; animation: rhwa-rhino-run 2.2s cubic-bezier(0.4, 0, 0.2, 1) infinite; }
.rhwa-rhino-runner img { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 2px 5px rgba(0,0,0,0.5)); animation: rhwa-rhino-bounce 0.22s ease-in-out infinite alternate; }
@keyframes rhwa-fill-bar { 0% { width: 0%; } 100% { width: 100%; } }
@keyframes rhwa-rhino-run { 0% { left: -20px; opacity: 0; } 5% { opacity: 1; } 90% { opacity: 1; } 100% { left: 255px; opacity: 0; } }
@keyframes rhwa-rhino-bounce { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-4px) rotate(5deg); } }

/* ===== FIX DEFINITIVO BOTÓN X BUBBLE ===== */
.rhwa-bubble {
    padding: 10px 14px !important;
    padding-left: 14px !important;
    position: relative !important;
}
.rhwa-bubble-close {
    position: absolute !important;
    top: -10px !important;
    right: -8px !important;
    left: auto !important;
    width: 22px !important;
    height: 22px !important;
    border-radius: 50% !important;
    background: #fff !important;
    border: 1.5px solid #e0e0e0 !important;
    color: #888 !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    box-shadow: 0 2px 8px rgba(0,0,0,.18) !important;
    z-index: 10 !important;
    line-height: 1 !important;
    transition: background .15s, color .15s !important;
}
.rhwa-bubble-close:hover {
    background: #da1921 !important;
    color: #fff !important;
    border-color: #da1921 !important;
}