/* ==========================================================================
   REMESAS & FIDELIZACIÓN PRO - ESTILO PROFESIONAL FINTECH
   Diseño de Marca Blanca para Tiendas y Agencias (Royal Elementor Kit)
   ========================================================================== */

:root {
    --jj-negro: #0f172a;
    --jj-azul: #1E3A8A;
    --jj-naranja: #F97316;
    --jj-amarillo: #FFD60A;
    --jj-btn-text: #0a0a0a;
    --jj-verde-wa: #25D366;
    --jj-verde-hover: #1eb956;
    --jj-gris-bg: #f8fafc;
    --jj-gris-card: #ffffff;
    --jj-gris-borde: #e2e8f0;
    --jj-gris-texto: #64748b;
    --jj-radio-card: 18px;
    --jj-radio-input: 12px;
    --jj-sombra: 0 4px 20px -2px rgba(15, 23, 42, 0.08);
    --jj-fuente: 'Poppins', 'Montserrat', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

.junjun-suite-container,
.junjun-card,
.junjun-welcome-wrapper {
    box-sizing: border-box;
    font-family: var(--jj-fuente);
    color: var(--jj-negro);
    width: 100%;
    max-width: 480px;
    margin: 0 auto 30px auto;
    -webkit-font-smoothing: antialiased;
}

.junjun-suite-container *,
.junjun-card *,
.junjun-welcome-wrapper * {
    box-sizing: border-box;
}

/* Contenedor Suite Tipo App */
.junjun-suite-container {
    background: var(--jj-gris-card);
    border-radius: var(--jj-radio-card);
    box-shadow: var(--jj-sombra);
    border: 1px solid var(--jj-gris-borde);
    overflow: hidden;
}

/* ==========================================================================
   VISTA 1: PANTALLA DE BIENVENIDA (Solo Mi Cuenta + Banner de Aliados)
   ========================================================================== */
.junjun-welcome-wrapper {
    padding: 24px 20px;
    background: #ffffff;
}

.junjun-welcome-header {
    text-align: center;
    margin-bottom: 20px;
}

.junjun-custom-logo-wrap img {
    max-height: 65px;
    max-width: 85%;
    object-fit: contain;
    margin-bottom: 8px;
}

.junjun-brand-heading {
    font-size: 1.6rem;
    font-weight: 900;
    color: var(--jj-azul);
    margin: 0 0 4px 0;
    text-transform: uppercase;
    letter-spacing: -0.5px;
}

.junjun-welcome-tagline {
    display: block;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--jj-gris-texto);
}

.junjun-welcome-body h3 {
    font-size: 1.15rem;
    font-weight: 800;
    margin: 0 0 6px 0;
    text-align: center;
}

.junjun-welcome-body p {
    font-size: 0.84rem;
    color: var(--jj-gris-texto);
    text-align: center;
    margin-bottom: 18px;
    line-height: 1.4;
}

.junjun-form-group {
    margin-bottom: 15px;
}

.junjun-form-group label {
    display: block;
    font-size: 0.84rem;
    font-weight: 700;
    color: #334155;
    margin-bottom: 6px;
}

.junjun-input {
    width: 100%;
    padding: 13px 15px;
    font-size: 0.95rem;
    border: 2px solid var(--jj-gris-borde);
    border-radius: var(--jj-radio-input);
    outline: none;
    background: #f8fafc;
    transition: all 0.2s ease;
    -webkit-appearance: none;
}

.junjun-input:focus {
    border-color: var(--jj-naranja);
    background: #ffffff;
}

.junjun-consent-check {
    margin: 14px 0 18px 0;
}

.junjun-consent-check label {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 0.74rem;
    color: #475569;
    line-height: 1.35;
    cursor: pointer;
}

.junjun-consent-check input {
    margin-top: 2px;
    accent-color: var(--jj-naranja);
    width: 16px;
    height: 16px;
}

.junjun-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 14px 18px;
    border-radius: var(--jj-radio-input);
    font-size: 1rem;
    font-weight: 800;
    text-decoration: none;
    border: none;
    cursor: pointer;
    transition: all 0.2s ease;
    min-height: 50px;
}

.junjun-btn:active {
    transform: scale(0.98);
}

.junjun-entry-custom-btn {
    box-shadow: 0 4px 14px rgba(0,0,0,0.1);
}

/* ==========================================================================
   VISTA 2: DASHBOARD DESBLOQUEADO (MiniBar + Hub de 2 Botones)
   ========================================================================== */
.junjun-suite-minibar {
    background: #0f172a;
    padding: 12px 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: #ffffff;
}

.junjun-user-greeting-pill {
    font-size: 0.88rem;
    font-weight: 600;
    color: #f8fafc;
}

.junjun-user-greeting-pill strong {
    color: var(--jj-amarillo);
}

.junjun-btn-my-account {
    background: rgba(255, 255, 255, 0.15);
    border: 1px solid rgba(255, 255, 255, 0.25);
    color: #ffffff;
    padding: 5px 12px;
    border-radius: 20px;
    font-size: 0.78rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s ease;
}

.junjun-btn-my-account:hover {
    background: var(--jj-amarillo);
    color: #000000;
    border-color: var(--jj-amarillo);
}

/* HUB DE 2 BOTONES PRINCIPALES */
.junjun-hub-section {
    padding: 24px 18px;
    background: #ffffff;
}

.junjun-hub-title {
    font-size: 1.15rem;
    font-weight: 900;
    color: var(--jj-negro);
    margin: 0 0 16px 0;
    text-align: center;
}

.junjun-hub-buttons-grid {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.junjun-hub-card {
    display: flex;
    align-items: center;
    gap: 14px;
    background: #f8fafc;
    border: 2px solid var(--jj-gris-borde);
    border-radius: 14px;
    padding: 16px 18px;
    text-align: left;
    cursor: pointer;
    width: 100%;
    transition: all 0.2s ease;
}

.junjun-hub-card:hover {
    border-color: var(--jj-naranja);
    background: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 6px 18px rgba(0,0,0,0.06);
}

.junjun-hub-card:active {
    transform: scale(0.99);
}

.junjun-hub-icon {
    font-size: 2.2rem;
    line-height: 1;
    background: #ffffff;
    width: 52px;
    height: 52px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--jj-gris-borde);
    flex-shrink: 0;
}

.junjun-hub-info {
    flex: 1;
}

.junjun-hub-info h4 {
    margin: 0 0 3px 0;
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--jj-negro);
}

.junjun-hub-info p {
    margin: 0;
    font-size: 0.78rem;
    color: var(--jj-gris-texto);
    line-height: 1.3;
}

.junjun-hub-arrow {
    font-size: 1.4rem;
    font-weight: 900;
    color: var(--jj-naranja);
}

/* Barra de Navegación dentro de Módulos (Volver al Menú) */
.junjun-module-nav-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 18px;
    background: #f1f5f9;
    border-bottom: 1px solid var(--jj-gris-borde);
}

.junjun-btn-back-hub {
    background: #ffffff;
    border: 1px solid var(--jj-gris-borde);
    color: var(--jj-negro);
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 0.78rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.15s ease;
}

.junjun-btn-back-hub:hover {
    background: var(--jj-negro);
    color: #ffffff;
}

.junjun-btn-toggle-sub {
    background: transparent;
    border: none;
    color: var(--jj-naranja);
    font-size: 0.78rem;
    font-weight: 800;
    cursor: pointer;
}

/* ==========================================================================
   CALCULADORA DE REMESAS
   ========================================================================== */
.junjun-calculator-card {
    padding: 20px 18px;
    background: #ffffff;
}

.junjun-input-spain-wrap {
    display: flex;
    align-items: center;
    background: #f8fafc;
    border: 2px solid var(--jj-gris-borde);
    border-radius: var(--jj-radio-input);
    padding: 4px 12px;
    transition: border-color 0.2s ease;
}

.junjun-input-spain-wrap:focus-within {
    border-color: var(--jj-naranja);
    background: #ffffff;
}

.junjun-input-clean {
    flex: 1;
    border: none;
    background: transparent;
    font-size: 1.45rem;
    font-weight: 800;
    color: var(--jj-negro);
    padding: 10px 4px;
    outline: none;
    width: 60%;
    -webkit-appearance: none;
}

.junjun-spain-suffix {
    display: flex;
    align-items: center;
    gap: 6px;
    background: #ffffff;
    border: 1px solid var(--jj-gris-borde);
    padding: 6px 10px;
    border-radius: 20px;
}

.junjun-flag-circle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #f1f5f9;
    font-size: 1rem;
    line-height: 1;
}

.junjun-eur-text {
    font-size: 0.85rem;
    font-weight: 800;
    color: #334155;
}

.junjun-quick-pills {
    display: flex;
    gap: 6px;
    margin-top: 8px;
    overflow-x: auto;
    padding-bottom: 2px;
}

.junjun-pill {
    flex: 1;
    min-width: 52px;
    background: #f1f5f9;
    border: 1px solid var(--jj-gris-borde);
    padding: 6px 2px;
    border-radius: 8px;
    font-size: 0.8rem;
    font-weight: 700;
    color: #334155;
    cursor: pointer;
    text-align: center;
    transition: all 0.15s ease;
}

.junjun-pill.active,
.junjun-pill:active {
    background: var(--jj-amarillo);
    color: var(--jj-btn-text);
    border-color: var(--jj-amarillo);
}

.junjun-select-clean {
    width: 100%;
    padding: 12px 14px;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--jj-negro);
    background: #f8fafc;
    border: 2px solid var(--jj-gris-borde);
    border-radius: var(--jj-radio-input);
    outline: none;
    cursor: pointer;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23475569' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 16px;
    padding-right: 36px;
}

.junjun-select-clean:focus {
    border-color: var(--jj-naranja);
    background: #ffffff;
}

.junjun-rate-box {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 10px 14px;
    margin-bottom: 14px;
}

.junjun-rate-header-text {
    font-size: 0.75rem;
    font-weight: 800;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 4px;
}

.junjun-rate-value-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

#junjun-rate-display {
    font-size: 1rem;
    font-weight: 900;
    color: var(--jj-azul);
}

.junjun-rate-date {
    font-size: 0.75rem;
    font-weight: 600;
    color: #64748b;
}

/* Caja de Resultado Compacta */
.junjun-result-compact {
    background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
    border-radius: 12px;
    padding: 12px 16px;
    color: #ffffff;
    margin-bottom: 16px;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.15);
}

.junjun-result-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.junjun-result-left {
    flex: 1;
}

.junjun-result-sublabel {
    display: block;
    font-size: 0.76rem;
    font-weight: 600;
    color: #94a3b8;
    margin-bottom: 2px;
}

.junjun-input-compact-receive {
    background: transparent;
    border: none;
    color: var(--jj-amarillo);
    font-size: 1.6rem;
    font-weight: 900;
    outline: none;
    width: 100%;
    padding: 0;
    margin: 2px 0;
    -webkit-appearance: none;
}

.junjun-result-estimate-note {
    display: block;
    font-size: 0.68rem;
    color: #94a3b8;
    font-style: italic;
}

.junjun-result-right {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 10px;
    padding: 8px 12px;
    min-width: 65px;
}

.junjun-dest-flag {
    font-size: 1.6rem;
    line-height: 1;
    margin-bottom: 2px;
}

.junjun-dest-flag img {
    width: 28px;
    height: 20px;
    object-fit: cover;
    border-radius: 3px;
    display: block;
}

.junjun-dest-currency-code {
    font-size: 0.8rem;
    font-weight: 800;
    color: #ffffff;
    letter-spacing: 0.5px;
}

.junjun-action-buttons {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.junjun-btn-whatsapp {
    background: var(--jj-verde-wa);
    color: #ffffff !important;
    box-shadow: 0 4px 12px rgba(37, 211, 102, 0.3);
}

.junjun-btn-whatsapp:hover {
    background: var(--jj-verde-hover);
    transform: translateY(-1px);
}

.junjun-location-wrap {
    text-align: center;
    margin-top: 4px;
}

.junjun-location-maps-link {
    color: #4b5563;
    font-size: 0.82rem;
    font-weight: 600;
    text-decoration: none;
}

.junjun-location-maps-link:hover {
    color: var(--jj-naranja);
    text-decoration: underline;
}

/* ==========================================================================
   BANNER DE ALIADOS / REMESADORAS / BANCOS (ESTILO BANNER)
   ========================================================================== */
.junjun-banner-section {
    background: #f8fafc;
    border-top: 1px solid var(--jj-gris-borde);
    padding: 16px 14px;
}

.junjun-banner-header {
    text-align: center;
    margin-bottom: 12px;
}

.junjun-banner-title {
    font-size: 0.74rem;
    font-weight: 800;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.junjun-banner-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
}

.junjun-banner-card {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 8px 4px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 56px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.03);
    transition: transform 0.15s ease;
}

.junjun-banner-card:hover {
    transform: translateY(-2px);
    border-color: #cbd5e1;
}

.junjun-banner-badge {
    font-size: 0.65rem;
    font-weight: 800;
    padding: 3px 6px;
    border-radius: 4px;
    max-width: 90%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-bottom: 2px;
}

.junjun-banner-img {
    max-height: 24px;
    max-width: 85%;
    object-fit: contain;
    margin-bottom: 2px;
}

.junjun-banner-label {
    font-size: 0.62rem;
    font-weight: 700;
    color: #475569;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    width: 100%;
}

@media (min-width: 768px) {
    .junjun-banner-grid {
        grid-template-columns: repeat(6, 1fr);
        gap: 10px;
    }
}

/* ==========================================================================
   FIDELIZACIÓN (MIS ENVÍOS GRATIS)
   ========================================================================== */
.junjun-loyalty-card {
    padding: 20px 18px;
    background: #ffffff;
}

.junjun-loyalty-card h2 {
    font-size: 1.4rem;
    font-weight: 900;
    margin: 0 0 4px 0;
}

.junjun-loyalty-card h2 span {
    color: var(--jj-naranja);
}

.junjun-loyalty-card p {
    font-size: 0.85rem;
    color: var(--jj-gris-texto);
    margin: 0 0 16px 0;
}

.junjun-rewards-strip {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    background: #f8fafc;
    border: 1px solid var(--jj-gris-borde);
    border-radius: 10px;
    padding: 8px 4px;
    gap: 4px;
    margin-bottom: 16px;
    text-align: center;
}

.junjun-reward-item {
    font-size: 0.7rem;
    padding: 2px;
}

.junjun-reward-step {
    display: block;
    font-weight: 800;
    color: var(--jj-azul);
}

.junjun-reward-prize {
    display: block;
    color: #374151;
}

.junjun-stamp-card {
    background: #fffdf5;
    border: 2px dashed #f59e0b;
    border-radius: 14px;
    padding: 14px 10px;
    margin-bottom: 16px;
}

.junjun-stamp-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}

.junjun-stamp-card-header h3 {
    margin: 0;
    font-size: 1rem;
    font-weight: 800;
}

.junjun-cycle-badge {
    background: var(--jj-amarillo);
    color: var(--jj-btn-text);
    font-size: 0.72rem;
    font-weight: 800;
    padding: 2px 8px;
    border-radius: 12px;
}

.junjun-stamps-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 6px;
    margin-bottom: 12px;
}

.junjun-stamp-slot {
    background: #ffffff;
    border: 2px solid #e5e7eb;
    border-radius: 10px;
    padding: 8px 2px;
    text-align: center;
    position: relative;
    box-shadow: 0 1px 3px rgba(0,0,0,0.03);
}

.junjun-stamp-slot.filled {
    border-color: #22c55e;
    background: #f0fdf4;
}

.junjun-stamp-number {
    position: absolute;
    top: 3px;
    left: 5px;
    font-size: 0.6rem;
    font-weight: 800;
    color: #9ca3af;
}

.junjun-stamp-icon {
    font-size: 1.25rem;
    margin: 4px 0 2px 0;
}

.junjun-stamp-code {
    font-family: monospace;
    font-size: 0.72rem;
    font-weight: 800;
}

.junjun-stamp-status {
    display: block;
    font-size: 0.58rem;
    font-weight: 700;
    color: #6b7280;
    text-transform: uppercase;
}

.junjun-stamp-slot.filled .junjun-stamp-status {
    color: #16a34a;
}

.junjun-stamp-progress-bar-wrap {
    height: 7px;
    background: #e5e7eb;
    border-radius: 10px;
    overflow: hidden;
    margin-bottom: 6px;
}

.junjun-stamp-progress-bar {
    height: 100%;
    background: linear-gradient(90deg, var(--jj-amarillo), var(--jj-naranja));
    border-radius: 10px;
    transition: width 0.3s ease;
}

.junjun-stamp-count-text {
    text-align: center;
    font-size: 0.8rem;
    color: #4b5563;
}

.junjun-add-stamp-section {
    background: #f9fafb;
    border: 1px solid var(--jj-gris-borde);
    border-radius: 12px;
    padding: 14px;
    margin-bottom: 14px;
}

.junjun-add-stamp-section label {
    display: block;
    font-size: 0.84rem;
    margin-bottom: 8px;
}

.junjun-key-input-wrap {
    display: flex;
    gap: 8px;
}

.junjun-input-key {
    flex: 1;
    font-size: 1.4rem;
    font-weight: 900;
    letter-spacing: 4px;
    text-align: center;
    padding: 10px;
    border: 2px solid var(--jj-gris-borde);
    border-radius: var(--jj-radio-input);
    outline: none;
}

.junjun-input-key:focus {
    border-color: var(--jj-naranja);
}

.junjun-key-input-wrap .junjun-btn {
    width: auto;
    padding: 0 16px;
    background: var(--jj-amarillo);
    color: var(--jj-btn-text);
}

.junjun-limit-note {
    font-size: 0.72rem;
    color: #6b7280;
    margin-top: 6px;
    text-align: center;
}

.junjun-reward-unlocked {
    background: linear-gradient(135deg, #fef3c7 0%, #fed7aa 100%);
    border: 2px solid var(--jj-naranja);
    border-radius: 12px;
    padding: 18px 14px;
    text-align: center;
    margin-bottom: 16px;
}

.junjun-confetti {
    font-size: 1rem;
    font-weight: 900;
    color: var(--jj-naranja);
}

.junjun-coupon-box {
    background: #ffffff;
    border-radius: 10px;
    padding: 14px;
    margin: 12px 0;
}

.junjun-coupon-code {
    font-family: monospace;
    font-size: 1.5rem;
    font-weight: 900;
    color: var(--jj-azul);
    letter-spacing: 2px;
}

.junjun-qr-container img {
    margin: 8px auto;
    display: block;
    max-width: 140px;
}

.junjun-coupon-validity {
    display: block;
    font-size: 0.7rem;
    color: #6b7280;
}

.junjun-terms-accordion {
    margin-top: 10px;
}

.junjun-accordion-btn {
    background: none;
    border: none;
    color: #6b7280;
    font-size: 0.78rem;
    font-weight: 700;
    cursor: pointer;
    width: 100%;
    text-align: center;
}

.junjun-accordion-content {
    background: #f8fafc;
    padding: 10px 14px;
    border-radius: 8px;
    margin-top: 6px;
    font-size: 0.74rem;
    color: #4b5563;
    line-height: 1.4;
}

/* ==========================================================================
   ALERTA / MENSAJES EN LÍNEA
   ========================================================================== */
.junjun-inline-alert {
    padding: 10px 14px;
    border-radius: 10px;
    font-size: 0.82rem;
    font-weight: 600;
    margin-bottom: 14px;
    text-align: center;
    line-height: 1.35;
}

.junjun-inline-alert.error {
    background: #fef2f2;
    color: #dc2626;
    border: 1px solid #fecaca;
}

.junjun-inline-alert.success {
    background: #f0fdf4;
    color: #16a34a;
    border: 1px solid #bbf7d0;
}

.junjun-spinner {
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 2px solid rgba(0, 0, 0, 0.2);
    border-top-color: currentColor;
    border-radius: 50%;
    animation: junjun-spin 0.6s linear infinite;
    vertical-align: middle;
    margin-right: 6px;
}

@keyframes junjun-spin {
    to { transform: rotate(360deg); }
}

/* Botón Cambiar Cuenta en Minibar */
.junjun-btn-switch-account {
    background: #f1f5f9;
    border: 1px solid #cbd5e1;
    color: #475569;
    font-size: 0.75rem;
    font-weight: 700;
    padding: 5px 12px;
    border-radius: 20px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.junjun-btn-switch-account:hover {
    background: #e2e8f0;
    color: #0f172a;
}

/* ==========================================================================
   MICRO-BADGES DE SEGURIDAD Y CONFIANZA
   ========================================================================== */
.junjun-trust-badges {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    margin-top: 15px;
    padding: 10px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
}

.junjun-trust-badge {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 4px;
}

.junjun-trust-icon {
    font-size: 1.25rem;
    margin-bottom: 3px;
}

.junjun-trust-info strong {
    display: block;
    font-size: 0.72rem;
    font-weight: 800;
    color: #1e293b;
    line-height: 1.2;
}

.junjun-trust-info span {
    display: block;
    font-size: 0.62rem;
    color: #64748b;
    margin-top: 2px;
}

@media (max-width: 480px) {
    .junjun-trust-badges {
        grid-template-columns: 1fr;
        text-align: left;
        gap: 6px;
    }
    .junjun-trust-badge {
        flex-direction: row;
        align-items: center;
        text-align: left;
        gap: 8px;
        padding: 4px 6px;
    }
    .junjun-trust-icon {
        font-size: 1.1rem;
        margin-bottom: 0;
    }
}

/* ==========================================================================
   BOTÓN COMPARTIR CON UN AMIGO (+ ENVÍOS GRATIS)
   ========================================================================== */
.junjun-share-strip {
    margin-top: 14px;
    text-align: center;
}

.junjun-btn-share {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    width: 100%;
    padding: 11px 16px;
    background: #ffffff;
    color: #1e3a8a;
    border: 1.5px dashed #cbd5e1;
    border-radius: var(--jj-radio-input);
    font-size: 0.84rem;
    font-weight: 700;
    text-decoration: none;
    transition: all 0.2s ease;
}

.junjun-btn-share:hover {
    background: #f0fdf4;
    border-color: #25d366;
    color: #166534;
}

.junjun-share-icon {
    font-size: 1.05rem;
}

/* ==========================================================================
   MODO APP MÓVIL (SMART BANNER & MODAL)
   ========================================================================== */
.junjun-smart-banner {
    background: linear-gradient(135deg, #0f172a 0%, #1e3a8a 100%);
    color: #ffffff;
    padding: 10px 14px;
    border-bottom: 2px solid var(--jj-amarillo);
}

.junjun-smart-banner-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.junjun-smart-banner-icon {
    font-size: 1.4rem;
    flex-shrink: 0;
}

.junjun-smart-banner-text {
    flex: 1;
    line-height: 1.25;
}

.junjun-smart-banner-text strong {
    display: block;
    font-size: 0.78rem;
    font-weight: 800;
    color: #ffffff;
}

.junjun-smart-banner-text span {
    display: block;
    font-size: 0.68rem;
    color: #cbd5e1;
}

.junjun-smart-banner-actions {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}

.junjun-btn-smart-install {
    background: var(--jj-amarillo);
    color: var(--jj-btn-text);
    border: none;
    border-radius: 14px;
    padding: 5px 11px;
    font-size: 0.72rem;
    font-weight: 800;
    cursor: pointer;
}

.junjun-btn-smart-dismiss {
    background: none;
    border: none;
    color: #94a3b8;
    font-size: 1rem;
    cursor: pointer;
    padding: 2px 5px;
}

/* Modal de Instalación PWA */
.junjun-install-modal {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9999999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.junjun-install-modal-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(15, 23, 42, 0.7);
    backdrop-filter: blur(4px);
}

.junjun-install-modal-card {
    position: relative;
    background: #ffffff;
    border-radius: 18px;
    padding: 22px 20px;
    width: 100%;
    max-width: 380px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
    z-index: 2;
}

.junjun-install-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 14px;
}

.junjun-install-header h4 {
    margin: 0;
    font-size: 1rem;
    font-weight: 800;
    color: var(--jj-azul);
}

.junjun-install-close-btn {
    background: #f1f5f9;
    border: none;
    border-radius: 50%;
    width: 28px;
    height: 28px;
    font-size: 0.9rem;
    cursor: pointer;
    color: #475569;
}

.junjun-install-step {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 12px;
    margin-bottom: 10px;
}

.junjun-step-icon {
    font-size: 1.4rem;
}

.junjun-step-desc strong {
    display: block;
    font-size: 0.82rem;
    color: #0f172a;
    margin-bottom: 2px;
}

.junjun-step-desc p {
    margin: 0;
    font-size: 0.75rem;
    color: #475569;
    line-height: 1.35;
}

/* ==========================================================================
   BARRA FLOTANTE INFERIOR MÓVIL (STICKY BOTTOM BAR)
   ========================================================================== */
@media (max-width: 768px) {
    .junjun-sticky-mobile-bar {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        height: 58px;
        background: #ffffff;
        border-top: 1px solid #e2e8f0;
        box-shadow: 0 -4px 18px rgba(15, 23, 42, 0.08);
        display: flex;
        justify-content: space-around;
        align-items: center;
        z-index: 999999;
        padding-bottom: env(safe-area-inset-bottom, 0px);
    }

    .junjun-sticky-btn {
        flex: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        background: none;
        border: none;
        padding: 6px 0;
        cursor: pointer;
        text-decoration: none;
        color: #475569;
        transition: all 0.15s ease;
    }

    .junjun-sticky-btn:active {
        transform: scale(0.95);
        color: var(--jj-azul);
    }

    .junjun-sticky-icon {
        font-size: 1.25rem;
        line-height: 1;
        margin-bottom: 2px;
    }

    .junjun-sticky-label {
        font-size: 0.68rem;
        font-weight: 700;
        line-height: 1;
    }

    .junjun-sticky-btn.junjun-sticky-wa {
        color: #16a34a;
    }
}

@media (min-width: 769px) {
    .junjun-sticky-mobile-bar {
        display: none !important;
    }
}



/* JUNJUN Suite 1.3 — refinamiento de usabilidad y aislamiento del tema */
.junjun-suite-container,
.junjun-card,
.junjun-welcome-wrapper {
    --jj-focus-ring: 0 0 0 3px rgba(37, 99, 235, .18);
    isolation: isolate;
}
.junjun-suite-container button,
.junjun-card button,
.junjun-welcome-wrapper button,
.junjun-suite-container input,
.junjun-card input,
.junjun-welcome-wrapper input,
.junjun-suite-container select,
.junjun-card select,
.junjun-welcome-wrapper select,
.junjun-suite-container textarea,
.junjun-card textarea,
.junjun-welcome-wrapper textarea {
    font: inherit;
}
.junjun-suite-container button:focus-visible,
.junjun-card button:focus-visible,
.junjun-welcome-wrapper button:focus-visible,
.junjun-suite-container a:focus-visible,
.junjun-card a:focus-visible,
.junjun-welcome-wrapper a:focus-visible,
.junjun-suite-container input:focus-visible,
.junjun-card input:focus-visible,
.junjun-welcome-wrapper input:focus-visible,
.junjun-suite-container select:focus-visible,
.junjun-card select:focus-visible,
.junjun-welcome-wrapper select:focus-visible {
    outline: 2px solid var(--jj-azul, #1e3a8a);
    outline-offset: 2px;
    box-shadow: var(--jj-focus-ring);
}
.junjun-suite-container button:disabled,
.junjun-card button:disabled,
.junjun-welcome-wrapper button:disabled {
    opacity: .65;
    cursor: wait;
    transform: none;
}
.junjun-suite-container .junjun-inline-alert,
.junjun-card .junjun-inline-alert,
.junjun-welcome-wrapper .junjun-inline-alert {
    border-radius: 10px;
    padding: 11px 13px;
    margin: 12px 0;
    font-size: .875rem;
    line-height: 1.5;
}
.junjun-suite-container .junjun-inline-alert.error,
.junjun-card .junjun-inline-alert.error,
.junjun-welcome-wrapper .junjun-inline-alert.error {
    background: #fff1f2;
    color: #9f1239;
    border: 1px solid #fecdd3;
}
.junjun-suite-container .junjun-inline-alert.success,
.junjun-card .junjun-inline-alert.success,
.junjun-welcome-wrapper .junjun-inline-alert.success {
    background: #f0fdf4;
    color: #166534;
    border: 1px solid #bbf7d0;
}
.junjun-suite-container .junjun-form-group label,
.junjun-card .junjun-form-group label,
.junjun-welcome-wrapper .junjun-form-group label {
    line-height: 1.45;
}
.junjun-suite-container .junjun-input,
.junjun-card .junjun-input,
.junjun-welcome-wrapper .junjun-input {
    min-height: 48px;
}
.junjun-suite-container .junjun-btn,
.junjun-card .junjun-btn,
.junjun-welcome-wrapper .junjun-btn {
    min-height: 48px;
    line-height: 1.35;
}
.junjun-suite-container .junjun-consent-check input,
.junjun-card .junjun-consent-check input,
.junjun-welcome-wrapper .junjun-consent-check input {
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
}
.junjun-suite-container .junjun-consent-check label,
.junjun-card .junjun-consent-check label,
.junjun-welcome-wrapper .junjun-consent-check label {
    line-height: 1.55;
}
@media (max-width: 480px) {
    .junjun-suite-container,
    .junjun-card,
    .junjun-welcome-wrapper {
        border-radius: 14px;
        margin-bottom: 20px;
    }
    .junjun-welcome-wrapper { padding: 20px 16px; }
    .junjun-suite-container .junjun-btn,
    .junjun-card .junjun-btn,
    .junjun-welcome-wrapper .junjun-btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .junjun-suite-container *, .junjun-card *, .junjun-welcome-wrapper * {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}


/* JUNJUN 1.4.0: aliado financiero en cuadrícula responsiva tipo carrusel */
.junjun-banner-grid { display:grid !important; grid-auto-flow:column; grid-template-columns:none; grid-template-rows:repeat(2,auto); grid-auto-columns:calc((100% - 50px)/6); gap:10px; overflow-x:auto; align-items:stretch; }
.junjun-banner-card { min-width:0; }
.junjun-banner-img { max-width:100%; max-height:44px; width:auto; object-fit:contain; }
.junjun-trust-badges { gap:8px !important; }
.junjun-trust-badge { padding:6px 8px !important; gap:6px !important; }
.junjun-trust-icon { font-size:16px !important; width:22px !important; min-width:22px !important; }
.junjun-trust-info strong { font-size:11px !important; }
.junjun-trust-info span { font-size:10px !important; }
.junjun-custom-logo-wrap img { max-width:100%; max-height:110px; width:auto; height:auto; object-fit:contain; }
@media (max-width: 767px) { .junjun-banner-grid { grid-auto-flow:column; grid-template-columns:none; grid-template-rows:repeat(2,auto); grid-auto-columns:calc((100% - 21px)/4); gap:7px; } .junjun-banner-img { max-height:36px; } }

.junjun-loyalty-next-reward { margin:10px 0 0; padding:10px 12px; border-radius:8px; background:rgba(255,214,10,.14); font-size:14px; font-weight:600; }
.junjun-nav-custom-image { display:block; max-width:100%; width:auto; max-height:44px; object-fit:contain; margin:0 auto 8px; }

.junjun-referral-form-wrap { margin:18px 0; padding:16px; border:1px solid #e5e7eb; border-radius:12px; }
.junjun-referral-form { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.junjun-referral-form input { min-width:0; width:100%; padding:11px; border:1px solid #d1d5db; border-radius:8px; }
.junjun-referral-form button { grid-column:1 / -1; }
@media(max-width:600px){.junjun-referral-form{grid-template-columns:1fr;}}

/* JUNJUN 1.4.1: carrusel automático continuo con velocidad configurable */
.junjun-banner-section { overflow:hidden; }
.junjun-banner-grid { display:grid !important; grid-auto-flow:column !important; grid-template-columns:none !important; grid-template-rows:repeat(2,auto) !important; grid-auto-columns:clamp(100px, 15vw, 170px) !important; width:max-content; min-width:100%; gap:10px; overflow:visible !important; animation:junjun-banner-scroll var(--junjun-banner-duration,30s) linear infinite; will-change:transform; }
.junjun-banner-section:hover .junjun-banner-grid { animation-play-state:paused; }
.junjun-banner-card { width:100%; box-sizing:border-box; }
@keyframes junjun-banner-scroll { from { transform:translateX(0); } to { transform:translateX(-50%); } }
.junjun-custom-logo-wrap { display:flex; width:100%; align-items:center; min-height:40px; }
.junjun-custom-logo-wrap img { display:block; max-width:100%; max-height:110px; width:auto; height:auto; object-fit:contain; }
.junjun-hub-icon, .junjun-hub-arrow { display:none !important; }
.junjun-hub-card { justify-content:flex-start !important; }
.junjun-hub-info { width:100%; }
.junjun-nav-custom-image { display:block; max-width:100%; max-height:58px; width:auto; height:auto; object-fit:contain; margin:0 0 10px; }
.junjun-hub-info h4 { margin-top:0; }
@media(max-width:767px) { .junjun-banner-grid { grid-auto-columns:calc((100vw - 48px)/4) !important; gap:7px; } .junjun-banner-img { max-height:34px; } }
@media(prefers-reduced-motion:reduce) { .junjun-banner-grid { animation:none !important; } }


/* 1.4.3: campo de comprobante móvil: 75% para escribir y 25% para registrar */
.junjun-add-stamp-section .junjun-key-input-wrap {
    display: flex !important; flex-direction: row !important; align-items: stretch; gap: 8px;
    width: 100%; max-width: none; box-sizing: border-box;
}
.junjun-add-stamp-section input#junjun-key-input.junjun-input-key {
    display: block; flex: 3 1 0 !important; width: 75% !important; min-width: 0; max-width: 75%;
    box-sizing: border-box; min-height: 56px; height: 56px; font-size: 1.65rem !important;
    line-height: 1.2; letter-spacing: .28em; padding: 10px 8px; text-align: center;
    color: #111827; background: #fff; border: 2px solid #9ca3af; border-radius: var(--jj-radio-input);
}
.junjun-add-stamp-section input#junjun-key-input:focus { border-color: var(--jj-naranja); outline: 2px solid rgba(249,115,22,.18); }
.junjun-add-stamp-section .junjun-key-input-wrap #junjun-btn-submit-key {
    display: flex; flex: 1 1 0 !important; width: 25% !important; min-width: 0; max-width: 25%;
    min-height: 56px; height: 56px; align-items: center; justify-content: center;
    padding: 6px 4px; white-space: normal; line-height: 1.1; font-size: .95rem;
}
@media (min-width: 768px) {
    .junjun-add-stamp-section .junjun-key-input-wrap { max-width: 520px; }
    .junjun-add-stamp-section input#junjun-key-input.junjun-input-key { font-size: 1.5rem !important; }
}


/* 1.4.4: fix definitivo de caché y dimensiones del campo de comprobante */
#junjun-loyalty-app .junjun-add-stamp-section { width:100%; min-width:0; box-sizing:border-box; }
#junjun-loyalty-app .junjun-key-input-wrap {
  display:grid !important; grid-template-columns:minmax(0, 3fr) minmax(0, 1fr) !important;
  align-items:stretch !important; gap:8px !important; width:100% !important; max-width:none !important;
  box-sizing:border-box !important;
}
#junjun-loyalty-app .junjun-key-input-wrap > #junjun-key-input {
  display:block !important; width:100% !important; min-width:0 !important; max-width:none !important;
  flex:none !important; box-sizing:border-box !important; height:58px !important; min-height:58px !important;
  margin:0 !important; padding:8px 5px !important; font-size:clamp(22px, 6vw, 30px) !important;
  line-height:1 !important; letter-spacing:.18em !important; text-align:center !important;
  color:#111827 !important; background:#fff !important; border:2px solid #6b7280 !important;
  border-radius:10px !important; -webkit-appearance:none; appearance:none;
}
#junjun-loyalty-app .junjun-key-input-wrap > #junjun-btn-submit-key {
  display:flex !important; width:100% !important; min-width:0 !important; max-width:none !important;
  flex:none !important; box-sizing:border-box !important; height:58px !important; min-height:58px !important;
  margin:0 !important; padding:6px 3px !important; align-items:center !important; justify-content:center !important;
  white-space:normal !important; overflow-wrap:anywhere; font-size:clamp(13px, 3.6vw, 17px) !important;
  line-height:1.05 !important; font-weight:800 !important;
}
#junjun-loyalty-app .junjun-stamp-progress-bar { transition:width .65s ease; }
#junjun-loyalty-app .junjun-stamp-slot.filled { animation:junjun-stamp-pop .35s ease-out; }
#junjun-loyalty-app .junjun-reward-unlocked { border:2px solid #eab308; border-radius:16px; padding:18px; box-shadow:0 8px 26px rgba(234,179,8,.18); }
#junjun-loyalty-app .junjun-confetti { font-size:1.15rem; font-weight:900; animation:junjun-reward-pulse 1.2s ease-in-out 2; }
@keyframes junjun-stamp-pop { 0%{transform:scale(.94)} 70%{transform:scale(1.04)} 100%{transform:scale(1)} }
@keyframes junjun-reward-pulse { 0%,100%{transform:scale(1)} 50%{transform:scale(1.04)} }
@media(max-width:360px) { #junjun-loyalty-app .junjun-key-input-wrap { gap:6px !important; } #junjun-loyalty-app .junjun-key-input-wrap > #junjun-btn-submit-key { font-size:12px !important; } }
@media(prefers-reduced-motion:reduce) { #junjun-loyalty-app .junjun-stamp-slot.filled, #junjun-loyalty-app .junjun-confetti { animation:none !important; } }

#junjun-loyalty-app .junjun-loyalty-history { margin:12px 0 16px; padding:12px 14px; border:1px solid #e5e7eb; border-radius:12px; background:#fff; }
#junjun-loyalty-app .junjun-loyalty-history summary { cursor:pointer; font-weight:800; color:#1f2937; padding:3px 0; }
#junjun-loyalty-app #junjun-loyalty-history-list { list-style:none; margin:10px 0 0; padding:0; }
#junjun-loyalty-app #junjun-loyalty-history-list li { display:flex; justify-content:space-between; gap:8px; padding:9px 2px; border-bottom:1px solid #f3f4f6; font-size:.9rem; }
#junjun-loyalty-app #junjun-loyalty-history-list li:last-child { border-bottom:0; }
#junjun-loyalty-app .junjun-history-empty { margin:9px 0 0; color:#6b7280; font-size:.88rem; }


/* JUNJUN 1.4.5 — capa visual Premium: cabecera negra, contenido claro, acciones amarillas */
#junjun-loyalty-app.junjun-card,
.junjun-card.junjun-calculator-card,
.junjun-suite-container {
  border:1px solid #e5e7eb; border-radius:20px; overflow:hidden;
  background:#fff; box-shadow:0 12px 32px rgba(17,24,39,.09);
}
#junjun-loyalty-app .junjun-card-header {
  background:#151515; color:#fff; padding:22px 20px 18px; margin:0 0 18px;
}
#junjun-loyalty-app .junjun-card-header h2 { color:#fff; font-size:clamp(1.25rem,4.5vw,1.65rem); line-height:1.2; letter-spacing:-.025em; }
#junjun-loyalty-app .junjun-card-header h2 span { color:#f7d529; }
#junjun-loyalty-app .junjun-card-header p { color:#e5e7eb; margin:8px 0 0; line-height:1.5; }
#junjun-loyalty-app .junjun-loyalty-body { padding:0 18px 20px; background:#fff; }
#junjun-loyalty-app .junjun-rewards-strip { background:#fafafa; border:1px solid #e5e7eb; border-radius:14px; padding:12px 8px; }
#junjun-loyalty-app .junjun-reward-step { color:#1f2937; font-size:.9rem; }
#junjun-loyalty-app .junjun-stamp-card { background:#fffdf4; border:1px solid #e8d889; border-radius:18px; padding:16px 12px; box-shadow:0 4px 14px rgba(17,24,39,.035); }
#junjun-loyalty-app .junjun-stamp-card-header h3 { font-size:1.08rem; letter-spacing:-.02em; }
#junjun-loyalty-app .junjun-cycle-badge { padding:6px 11px; border-radius:999px; background:#f7d529; }
#junjun-loyalty-app .junjun-stamp-slot { border-radius:13px; transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
#junjun-loyalty-app .junjun-stamp-slot.filled { box-shadow:0 3px 10px rgba(22,101,52,.09); }
#junjun-loyalty-app .junjun-stamp-progress-bar-wrap { background:#e5e7eb; border-radius:999px; overflow:hidden; }
#junjun-loyalty-app .junjun-stamp-progress-bar { background:linear-gradient(90deg,#f7d529,#eab308); border-radius:999px; }
#junjun-loyalty-app .junjun-loyalty-next-reward { background:#fff9d9; border:1px solid #f1df87; color:#292524; border-radius:12px; padding:12px 14px; line-height:1.5; }
#junjun-loyalty-app .junjun-add-stamp-section { margin-top:16px; padding:16px; background:#fafafa; border:1px solid #e5e7eb; border-radius:16px; }
#junjun-loyalty-app .junjun-add-stamp-section label { display:block; color:#252525; font-size:1rem; line-height:1.45; margin-bottom:10px; }
#junjun-loyalty-app .junjun-key-input-wrap { display:grid !important; grid-template-columns:minmax(0,3fr) minmax(0,1fr) !important; gap:8px !important; width:100% !important; max-width:none !important; }
#junjun-loyalty-app .junjun-key-input-wrap > #junjun-key-input { width:100% !important; min-width:0 !important; height:58px !important; min-height:58px !important; font-size:clamp(24px,6vw,30px) !important; font-weight:800 !important; letter-spacing:.2em !important; text-align:center !important; border:2px solid #6b7280 !important; border-radius:12px !important; background:#fff !important; color:#111827 !important; padding:8px 5px !important; }
#junjun-loyalty-app .junjun-key-input-wrap > #junjun-btn-submit-key { width:100% !important; min-width:0 !important; height:58px !important; min-height:58px !important; padding:6px 4px !important; border-radius:12px !important; background:#f7d529 !important; border:1px solid #d9b400 !important; color:#171717 !important; font-size:clamp(13px,3.5vw,16px) !important; font-weight:850 !important; line-height:1.1 !important; white-space:normal !important; }
#junjun-loyalty-app .junjun-key-input-wrap > #junjun-btn-submit-key:hover { background:#ffdf45 !important; box-shadow:0 4px 12px rgba(217,180,0,.2); }
#junjun-loyalty-app .junjun-btn:focus-visible,
#junjun-loyalty-app input:focus-visible,
#junjun-loyalty-app summary:focus-visible { outline:3px solid #315ac8 !important; outline-offset:2px; }
#junjun-loyalty-app .junjun-loyalty-history { border-radius:14px; }
#junjun-loyalty-app .junjun-btn-share,
#junjun-loyalty-app .junjun-btn-primary { border-radius:12px; }
@media(max-width:380px) {
  #junjun-loyalty-app .junjun-loyalty-body { padding-left:12px; padding-right:12px; }
  #junjun-loyalty-app .junjun-key-input-wrap { grid-template-columns:minmax(0,3fr) minmax(0,1fr) !important; gap:6px !important; }
  #junjun-loyalty-app .junjun-key-input-wrap > #junjun-btn-submit-key { font-size:12px !important; }
}
@media(prefers-reduced-motion:reduce) {
  #junjun-loyalty-app *, .junjun-suite-container * { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}


/* Ventana accesible de condiciones de uso (contenido editable en administración) */
.junjun-terms-link-wrap { margin: 12px 0; text-align: center; }
.junjun-open-terms { color: var(--jj-azul, #1e3a8a); text-decoration: underline; font-weight: 700; cursor: pointer; }
.junjun-terms-modal { position: fixed; inset: 0; z-index: 999999; align-items: center; justify-content: center; padding: 20px; }
.junjun-terms-modal-backdrop { position: absolute; inset: 0; background: rgba(10, 15, 25, .72); }
.junjun-terms-modal-panel { position: relative; z-index: 1; width: min(680px, 100%); max-height: min(80vh, 760px); overflow: auto; background: #fff; color: #202530; border-radius: 14px; padding: 28px; box-shadow: 0 20px 70px rgba(0,0,0,.3); }
.junjun-terms-modal-panel h3 { margin: 0 36px 18px 0; }
.junjun-terms-modal-body { line-height: 1.65; overflow-wrap: anywhere; }
.junjun-terms-close { position: absolute; right: 12px; top: 8px; border: 0; background: transparent; font-size: 30px; line-height: 1; cursor: pointer; color: #333; }
body.junjun-terms-open { overflow: hidden; }



/* Fix: mantener visible el país seleccionado en el formulario público.
   Se usan colores explícitos para evitar variables CSS ausentes o
   estilos globales del tema que vuelvan invisible el texto del select. */
.junjun-suite-container .junjun-select-clean,
.junjun-card .junjun-select-clean,
.junjun-welcome-wrapper .junjun-select-clean {
    color: #111827 !important;
    -webkit-text-fill-color: #111827 !important;
    background-color: #f8fafc !important;
    opacity: 1 !important;
}
.junjun-suite-container .junjun-select-clean option,
.junjun-card .junjun-select-clean option,
.junjun-welcome-wrapper .junjun-select-clean option {
    color: #111827 !important;
    background-color: #ffffff !important;
}
.junjun-suite-container .junjun-select-clean:focus,
.junjun-card .junjun-select-clean:focus,
.junjun-welcome-wrapper .junjun-select-clean:focus {
    color: #111827 !important;
    -webkit-text-fill-color: #111827 !important;
    background-color: #ffffff !important;
}

/* v1.4.7: normaliza el alto del selector de destino en escritorio y móvil. */
.junjun-suite-container #junjun-dest-country, .junjun-card #junjun-dest-country, #junjun-dest-country.junjun-select-clean { box-sizing:border-box; display:block; min-height:48px; height:auto; line-height:1.35; padding-top:12px; padding-bottom:12px; white-space:normal; text-overflow:ellipsis; }
.junjun-referral-feedback { overflow-wrap:anywhere; }
