@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;600;700;800;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700;900&display=swap');

/* Iluzion Energy — títulos premium y idiomas (login, forgot, reset, cookies, canjeos) */

/* Idiomas (ES EN FR 中文) */
.lang a,
.lang-bar a,
.header-actions a[href*="lang="]{
    min-width:44px;
    height:44px;
    padding:0 12px;
    border-radius:14px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:#fff;
    border:1px solid #e7edf7;
    color:#12328a;
    font-size:.82rem;
    font-weight:900;
    text-decoration:none;
    box-shadow:0 10px 25px rgba(15,23,42,.06);
    transition:.18s ease;
}

.lang a.active,
.lang-bar a.active,
.header-actions a.active{
    background:linear-gradient(135deg,#315df6,#1f73ff);
    color:#fff;
    border-color:transparent;
    box-shadow:0 10px 22px rgba(49,93,246,.28);
}

/* Título premium (fondo claro) */
.premium-title-wrap,
.login-title-wrap{
    position:relative;
    margin:10px auto 8px;
    max-width:100%;
    padding:20px 18px 16px;
    border-radius:22px;
    overflow:hidden;
    isolation:isolate;
    background:linear-gradient(135deg,rgba(49,93,246,.11) 0%,rgba(255,255,255,.92) 42%,rgba(255,154,60,.10) 100%);
    border:1px solid rgba(216,228,255,.95);
    box-shadow:0 16px 40px rgba(49,93,246,.16),0 4px 14px rgba(15,23,42,.06),inset 0 1px 0 rgba(255,255,255,.9);
    animation:premiumTitleGlow 5s ease-in-out infinite;
}

.premium-title-wrap::before,
.login-title-wrap::before{
    content:"";
    position:absolute;
    inset:0;
    background:radial-gradient(120% 80% at 50% -20%,rgba(49,93,246,.22) 0%,transparent 55%),radial-gradient(80% 60% at 100% 100%,rgba(255,107,43,.12) 0%,transparent 50%);
    pointer-events:none;
    z-index:0;
}

.premium-title-wrap::after,
.login-title-wrap::after{
    content:"";
    position:absolute;
    left:50%;
    bottom:10px;
    transform:translateX(-50%);
    width:min(120px,70%);
    height:4px;
    border-radius:999px;
    background:linear-gradient(90deg,#315df6,#ff9f1c);
    box-shadow:0 2px 10px rgba(49,93,246,.35);
    z-index:1;
}

@keyframes premiumTitleGlow{
    0%,100%{box-shadow:0 16px 40px rgba(49,93,246,.16),0 4px 14px rgba(15,23,42,.06),inset 0 1px 0 rgba(255,255,255,.9)}
    50%{box-shadow:0 22px 48px rgba(49,93,246,.24),0 8px 20px rgba(255,107,43,.10),inset 0 1px 0 rgba(255,255,255,.95)}
}

.premium-title,
.login-title,
.premium-title-wrap h1,
.premium-title-wrap h2,
.login-title-wrap h2{
    position:relative;
    z-index:2;
    margin:0;
    font-size:clamp(1.45rem,4vw,2.05rem);
    line-height:1.12;
    letter-spacing:-.045em;
    font-weight:900;
    color:#12328a;
    text-shadow:0 2px 0 rgba(255,255,255,.85),0 10px 28px rgba(49,93,246,.28);
}

/* Título en hero azul (canjeos, etc.) */
.premium-title-wrap--hero{
    margin:0 0 12px;
    background:linear-gradient(135deg,rgba(255,255,255,.14) 0%,rgba(255,255,255,.06) 100%);
    border:1px solid rgba(255,255,255,.22);
    box-shadow:0 14px 36px rgba(0,0,0,.12),inset 0 1px 0 rgba(255,255,255,.15);
    animation:premiumTitleGlowHero 5s ease-in-out infinite;
}

.premium-title-wrap--hero::before{
    background:radial-gradient(100% 80% at 50% 0%,rgba(255,255,255,.18) 0%,transparent 55%);
}

.premium-title-wrap--hero .premium-title{
    color:#fff;
    text-shadow:0 2px 16px rgba(0,0,0,.25),0 4px 24px rgba(49,93,246,.35);
}

@keyframes premiumTitleGlowHero{
    0%,100%{box-shadow:0 14px 36px rgba(0,0,0,.12),inset 0 1px 0 rgba(255,255,255,.15)}
    50%{box-shadow:0 18px 44px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.22)}
}

/* Separadores gradiente Iluzion (barra superior + subrayado títulos) */
:root{
    --iluzion-primary:#315DF6;
    --iluzion-navy:#12328A;
    --iluzion-bg-soft:#F8FAFF;
    --iluzion-bg-base:#F4F7FF;
    --iluzion-pastel-blue:#EEF5FF;
    --iluzion-pastel-green:#E8F9F1;
    --iluzion-pastel-orange:#FFF5E6;
    --iluzion-border-soft:rgba(49,93,246,.12);
    --iluzion-card-surface:linear-gradient(180deg,#FFFFFF 0%,#F8FAFF 55%,#F4F8FF 100%);
    --iluzion-canvas:
        radial-gradient(ellipse 85% 55% at 100% -5%,rgba(99,102,241,.14) 0%,transparent 52%),
        radial-gradient(ellipse 70% 45% at 0% 55%,rgba(34,211,238,.12) 0%,transparent 48%),
        radial-gradient(ellipse 55% 35% at 85% 100%,rgba(251,191,36,.14) 0%,transparent 50%),
        linear-gradient(180deg,#E8EEFF 0%,#F4F7FF 38%,#F8FAFF 100%);
    --iluzion-gradient-bar:linear-gradient(90deg,#2563EB 0%,#6366F1 28%,#06B6D4 58%,#F97316 100%);
    --iluzion-gradient-bar-alt:linear-gradient(90deg,#8B5CF6 0%,#3B82F6 45%,#14B8A6 100%);
    --iluzion-gradient-title:linear-gradient(90deg,#2563EB,#06B6D4,#F59E0B);
    --iluzion-separator-blue:linear-gradient(90deg,#2563EB 0%,#38BDF8 100%);
    --iluzion-separator-green:linear-gradient(90deg,#10B981 0%,#22C55E 100%);
    --iluzion-separator-orange:linear-gradient(90deg,#F97316 0%,#FBBF24 100%);
    --iluzion-separator-purple:linear-gradient(90deg,#8B5CF6 0%,#EC4899 100%);
}

/* Tipografía global estilo fibra.php */
body,
button,
input,
select,
textarea{
    font-family:Poppins,"Noto Sans SC","PingFang SC","Microsoft YaHei",Arial,sans-serif!important;
}

body:not(.iluzion-auth-premium){
    font-weight:400;
    letter-spacing:-.01em;
}

body:not(.iluzion-auth-premium) h1,
body:not(.iluzion-auth-premium) h2,
body:not(.iluzion-auth-premium) h3,
body:not(.iluzion-auth-premium) .premium-title,
body:not(.iluzion-auth-premium) .premium-section-title{
    font-weight:900!important;
    letter-spacing:-.04em;
    line-height:1.12;
}

body:not(.iluzion-auth-premium) p,
body:not(.iluzion-auth-premium) li,
body:not(.iluzion-auth-premium) td,
body:not(.iluzion-auth-premium) th,
body:not(.iluzion-auth-premium) label,
body:not(.iluzion-auth-premium) .soft,
body:not(.iluzion-auth-premium) .empty{
    line-height:1.7;
}

body:not(.iluzion-auth-premium) .btn,
body:not(.iluzion-auth-premium) button,
body:not(.iluzion-auth-premium) [type="submit"],
body:not(.iluzion-auth-premium) .header-actions a,
body:not(.iluzion-auth-premium) .bottom-nav a,
body:not(.iluzion-auth-premium) .badge,
body:not(.iluzion-auth-premium) .pill,
body:not(.iluzion-auth-premium) .iluzion-pill{
    font-weight:900!important;
    letter-spacing:-.02em;
}

body:not(.iluzion-auth-premium) .card p,
body:not(.iluzion-auth-premium) .panel-card p,
body:not(.iluzion-auth-premium) .tip-box p,
body:not(.iluzion-auth-premium) .info-card p,
body:not(.iluzion-auth-premium) .service-card p,
body:not(.iluzion-auth-premium) .hero p{
    font-weight:600;
}

.iluzion-card,
.card.iluzion-card,
article.iluzion-card{
    position:relative;
    overflow:hidden;
}

.iluzion-card::before,
.card.iluzion-card::before,
article.iluzion-card::before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    right:0;
    height:5px;
    z-index:2;
    border-radius:28px 28px 0 0;
    background:var(--iluzion-gradient-bar);
    pointer-events:none;
}

.iluzion-card--aside::before,
.hero-side.iluzion-card::before,
aside.iluzion-card::before{
    background:var(--iluzion-gradient-bar-alt);
}

.iluzion-card h2,
.card.iluzion-card h2,
article.iluzion-card h2,
.panel-card.iluzion-card h3{
    position:relative;
    padding-bottom:12px;
}

.iluzion-card h2:not(.premium-section-title)::after,
.card.iluzion-card h2:not(.premium-section-title)::after,
article.iluzion-card h2:not(.premium-section-title)::after{
    content:"";
    position:absolute;
    left:0;
    bottom:0;
    width:min(140px,55%);
    height:4px;
    border-radius:999px;
    background:var(--iluzion-gradient-title);
    box-shadow:0 2px 8px rgba(37,99,235,.25);
}

.panel-card.iluzion-card,
.tip-box.iluzion-card,
.points-card.iluzion-card,
.progress-box.iluzion-card,
.thanks-card.iluzion-card,
.profile-card.iluzion-card,
.benefit.iluzion-card,
.info-card.iluzion-card,
.feed-card.iluzion-card,
.fiber-note.iluzion-card{
    position:relative;
    overflow:hidden;
}

.panel-card.iluzion-card::before,
.tip-box.iluzion-card::before,
.points-card.iluzion-card::before,
.progress-box.iluzion-card::before,
.thanks-card.iluzion-card::before,
.profile-card.iluzion-card::before,
.benefit.iluzion-card::before,
.info-card.iluzion-card::before,
.feed-card.iluzion-card::before,
.fiber-note.iluzion-card::before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    right:0;
    height:5px;
    z-index:2;
    border-radius:inherit;
    background:var(--iluzion-gradient-bar);
    pointer-events:none;
}

/* Subtítulo de sección (historial, etc.) */
.premium-section-title{
    position:relative;
    margin:0 0 18px;
    padding:14px 16px 16px;
    border-radius:16px;
    background:linear-gradient(90deg,rgba(49,93,246,.08),rgba(255,255,255,.95));
    border:1px solid #e4ecff;
    box-shadow:0 8px 24px rgba(49,93,246,.08);
    color:#12328a;
    font-size:1.15rem;
    font-weight:900;
    letter-spacing:-.02em;
}

.premium-section-title::after{
    content:"";
    position:absolute;
    left:16px;
    bottom:10px;
    width:min(140px,55%);
    height:4px;
    border-radius:999px;
    background:var(--iluzion-gradient-title);
    box-shadow:0 2px 8px rgba(37,99,235,.25);
}

/* Bloque ¿Cómo funciona? + barra confianza (alias: .steps-card en subir_factura.php) */
.iluzion-steps-block,
.steps-card{
    position:relative;
    overflow:hidden;
    margin-top:22px;
    margin-bottom:18px;
    padding:28px 24px 24px;
    border-radius:28px;
    background:linear-gradient(160deg,#FFFFFF 0%,#F4F8FF 100%);
    border:1px solid #DBE7FF;
    box-shadow:0 16px 40px rgba(49,93,246,.10);
}

.iluzion-steps-block::before,
.steps-card::before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    right:0;
    height:5px;
    border-radius:28px 28px 0 0;
    background:var(--iluzion-gradient-bar);
    pointer-events:none;
}

.iluzion-steps-block > h2,
.steps-card > h2,
.iluzion-steps-block > .premium-section-title{
    margin-top:4px;
}

.iluzion-steps-list,
.steps-list{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:14px;
    margin:0 0 16px;
    padding:0;
    list-style:none;
}

.iluzion-step-item,
.step-item{
    position:relative;
    padding:18px 16px 16px 52px;
    border-radius:18px;
    font-weight:700;
    font-size:.9rem;
    line-height:1.5;
    color:#344054;
    background:#fff;
    border:1px solid #E0EAFF;
    box-shadow:0 8px 22px rgba(49,93,246,.08);
}

.iluzion-step-item::before,
.step-item::before{
    content:attr(data-step);
    position:absolute;
    left:14px;
    top:14px;
    width:28px;
    height:28px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:900;
    font-size:.8rem;
    color:#fff;
    background:linear-gradient(135deg,#315DF6,#1F73FF);
    box-shadow:0 6px 14px rgba(49,93,246,.28);
}

.iluzion-trust-bar,
.trust-bar{
    margin:0;
    padding:16px 20px;
    border-radius:16px;
    text-align:center;
    font-weight:800;
    font-size:.9rem;
    line-height:1.5;
    color:#12328A;
    background:linear-gradient(90deg,rgba(49,93,246,.08),rgba(255,159,28,.12),rgba(49,93,246,.08));
    border:1px solid #C7D7FE;
}

/* Pills informativos (estilo subir factura) */
.iluzion-info-pills{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:14px;
    align-items:stretch;
    margin-bottom:18px;
}

.iluzion-info-pills--two{
    grid-template-columns:repeat(2,1fr);
}

.iluzion-info-pills .iluzion-pill{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    width:100%;
    text-align:center;
    padding:12px 14px;
    border-radius:999px;
    font-size:.82rem;
    font-weight:800;
    border:1px solid transparent;
    box-sizing:border-box;
}

.iluzion-pill{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:8px 14px;
    border-radius:999px;
    font-size:.82rem;
    font-weight:800;
    border:1px solid transparent;
}

.iluzion-pill--blue{
    background:#EEF5FF;
    color:#1D4ED8;
    border-color:#BFDBFE;
}

.iluzion-pill--green{
    background:var(--iluzion-pastel-green);
    color:#047857;
    border-color:#A7F3D0;
}

.iluzion-pill--orange{
    background:var(--iluzion-pastel-orange);
    color:#C2410C;
    border-color:#FED7AA;
}

a.iluzion-pill--whatsapp{
    background:linear-gradient(135deg,#22C55E,#16A34A);
    color:#fff;
    border-color:#15803D;
    box-shadow:0 12px 28px rgba(22,163,74,.28);
    text-decoration:none;
    font-weight:900;
    transition:transform .2s ease,box-shadow .2s ease;
}

a.iluzion-pill--whatsapp:hover{
    transform:translateY(-2px);
    box-shadow:0 16px 32px rgba(22,163,74,.34);
    color:#fff;
}

a.iluzion-pill--whatsapp img{
    width:22px;
    height:22px;
    object-fit:contain;
    flex-shrink:0;
}

@media(max-width:900px){
    .iluzion-steps-list,
    .steps-list{
        grid-template-columns:1fr;
    }
}

@media(max-width:640px){
    .iluzion-info-pills,
    .perks.iluzion-info-pills{
        grid-template-columns:1fr;
        gap:12px;
    }
}

/* Auth (login, registro) */
body.iluzion-auth-premium .login-card,
body.iluzion-auth-premium .auth-card{
    position:relative;
    overflow:hidden;
}

body.iluzion-auth-premium .login-card::before,
body.iluzion-auth-premium .auth-card::before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    right:0;
    height:5px;
    background:var(--iluzion-gradient-bar);
    pointer-events:none;
}

/* Pulido global — sensación premium en toda la app */
.iluzion-card,
.card.iluzion-card,
article.iluzion-card,
section.iluzion-card{
    border:1px solid rgba(49,93,246,.12);
    box-shadow:0 16px 40px rgba(49,93,246,.10),0 4px 14px rgba(15,23,42,.05);
}

.kpi.iluzion-card,
.stat.iluzion-card,
.result-card.iluzion-card,
.result-box.iluzion-card{
    position:relative;
    overflow:hidden;
}

.kpi.iluzion-card::before,
.stat.iluzion-card::before,
.result-card.iluzion-card::before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    right:0;
    height:4px;
    border-radius:inherit;
    background:var(--iluzion-gradient-bar);
    pointer-events:none;
}

.image-card.iluzion-card::before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    right:0;
    height:4px;
    z-index:5;
    border-radius:24px 24px 0 0;
    background:var(--iluzion-gradient-bar);
    pointer-events:none;
}

.hero .premium-title-wrap--hero,
section.hero.fade .premium-title-wrap--hero{
    margin-bottom:12px;
}

.privacy-box.iluzion-inner{
    border-radius:16px;
}

/* Admin / tablas */
.admin-card.iluzion-card,
.box.iluzion-card{
    position:relative;
    overflow:hidden;
}

.admin-card.iluzion-card::before,
.box.iluzion-card::before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    right:0;
    height:4px;
    background:var(--iluzion-gradient-bar);
    pointer-events:none;
}

/* Separadores de color para cards blancas en toda la app */
body:not(.iluzion-auth-premium) .card,
body:not(.iluzion-auth-premium) .panel-card,
body:not(.iluzion-auth-premium) .tip-box,
body:not(.iluzion-auth-premium) .profile-card,
body:not(.iluzion-auth-premium) .points-card,
body:not(.iluzion-auth-premium) .progress-box,
body:not(.iluzion-auth-premium) .thanks-card,
body:not(.iluzion-auth-premium) .info-card,
body:not(.iluzion-auth-premium) .feed-card,
body:not(.iluzion-auth-premium) .fiber-note,
body:not(.iluzion-auth-premium) .stat-card,
body:not(.iluzion-auth-premium) .kpi-card,
body:not(.iluzion-auth-premium) .stat,
body:not(.iluzion-auth-premium) .kpi,
body:not(.iluzion-auth-premium) .result-card,
body:not(.iluzion-auth-premium) .result-box,
body:not(.iluzion-auth-premium) .summary-box,
body:not(.iluzion-auth-premium) .main-card,
body:not(.iluzion-auth-premium) .empty-box,
body:not(.iluzion-auth-premium) .menu-card,
body:not(.iluzion-auth-premium) .side-info-card,
body:not(.iluzion-auth-premium) .carousel-shell,
body:not(.iluzion-auth-premium) .promo-banner,
body:not(.iluzion-auth-premium) .upload-card,
body:not(.iluzion-auth-premium) .pack-card,
body:not(.iluzion-auth-premium) .reward-card,
body:not(.iluzion-auth-premium) .benefit{
    position:relative;
    overflow:hidden;
    --iluzion-card-accent:var(--iluzion-separator-blue);
}

body:not(.iluzion-auth-premium) .card::before,
body:not(.iluzion-auth-premium) .panel-card::before,
body:not(.iluzion-auth-premium) .tip-box::before,
body:not(.iluzion-auth-premium) .profile-card::before,
body:not(.iluzion-auth-premium) .points-card::before,
body:not(.iluzion-auth-premium) .progress-box::before,
body:not(.iluzion-auth-premium) .thanks-card::before,
body:not(.iluzion-auth-premium) .info-card::before,
body:not(.iluzion-auth-premium) .feed-card::before,
body:not(.iluzion-auth-premium) .fiber-note::before,
body:not(.iluzion-auth-premium) .stat-card::before,
body:not(.iluzion-auth-premium) .kpi-card::before,
body:not(.iluzion-auth-premium) .stat::before,
body:not(.iluzion-auth-premium) .kpi::before,
body:not(.iluzion-auth-premium) .result-card::before,
body:not(.iluzion-auth-premium) .result-box::before,
body:not(.iluzion-auth-premium) .summary-box::before,
body:not(.iluzion-auth-premium) .main-card::before,
body:not(.iluzion-auth-premium) .empty-box::before,
body:not(.iluzion-auth-premium) .menu-card::before,
body:not(.iluzion-auth-premium) .side-info-card::before,
body:not(.iluzion-auth-premium) .carousel-shell::before,
body:not(.iluzion-auth-premium) .promo-banner::before,
body:not(.iluzion-auth-premium) .upload-card::before,
body:not(.iluzion-auth-premium) .pack-card::before,
body:not(.iluzion-auth-premium) .reward-card::before,
body:not(.iluzion-auth-premium) .benefit::before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    right:0;
    height:6px;
    z-index:4;
    border-radius:inherit;
    background:var(--iluzion-card-accent);
    box-shadow:0 8px 18px rgba(37,99,235,.16);
    pointer-events:none;
}

body:not(.iluzion-auth-premium) .result-box.save,
body:not(.iluzion-auth-premium) .saving-good,
body:not(.iluzion-auth-premium) .tip-box--green,
body:not(.iluzion-auth-premium) .info-box--green{
    --iluzion-card-accent:var(--iluzion-separator-green);
}

body:not(.iluzion-auth-premium) .btn-orange,
body:not(.iluzion-auth-premium) .tip-box--orange,
body:not(.iluzion-auth-premium) .info-box--orange,
body:not(.iluzion-auth-premium) .reward-card{
    --iluzion-card-accent:var(--iluzion-separator-orange);
}

/* WhatsApp flotante: sin fondo, solo icono + sombra verde (#iluzion-wa-fab-global en footer) */
body:not(.iluzion-auth-premium) a.iluzion-wa-fab,
body:not(.iluzion-auth-premium) a.whatsapp-float,
body:not(.iluzion-auth-premium) #iluzion-wa-fab{
    position:fixed;
    right:max(16px,env(safe-area-inset-right,16px));
    bottom:max(92px,calc(84px + env(safe-area-inset-bottom,0px)));
    z-index:10050!important;
    display:flex!important;
    align-items:center;
    justify-content:center;
    width:58px;
    height:58px;
    min-width:58px;
    min-height:58px;
    padding:0;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
    cursor:pointer;
    background:transparent!important;
    background-color:transparent!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    outline:none;
    text-decoration:none;
    transition:transform .2s ease;
}

body:not(.iluzion-auth-premium) a.iluzion-wa-fab:hover,
body:not(.iluzion-auth-premium) a.whatsapp-float:hover,
body:not(.iluzion-auth-premium) #iluzion-wa-fab:hover{
    transform:translateY(-3px) scale(1.06);
    background:transparent!important;
    box-shadow:none!important;
}

body:not(.iluzion-auth-premium) a.iluzion-wa-fab img,
body:not(.iluzion-auth-premium) a.whatsapp-float:not(.iluzion-pill--whatsapp) img,
body:not(.iluzion-auth-premium) #iluzion-wa-fab img,
body:not(.iluzion-auth-premium) a.iluzion-wa-fab img.iluzion-wa-fab-img,
body:not(.iluzion-auth-premium) a.whatsapp-float img.iluzion-wa-fab-img,
body:not(.iluzion-auth-premium) #iluzion-wa-fab img.iluzion-wa-fab-img{
    display:block!important;
    width:58px!important;
    height:58px!important;
    opacity:1!important;
    object-fit:contain!important;
    background:transparent!important;
    pointer-events:none!important;
    filter:drop-shadow(0 8px 18px rgba(37,211,102,.55));
}

body:not(.iluzion-auth-premium) a.iluzion-wa-fab svg,
body:not(.iluzion-auth-premium) a.whatsapp-float svg,
body:not(.iluzion-auth-premium) #iluzion-wa-fab svg,
body:not(.iluzion-auth-premium) a.iluzion-wa-fab .iluzion-wa-fab-img--inline,
body:not(.iluzion-auth-premium) a.iluzion-wa-fab .iluzion-whatsapp-icon,
body:not(.iluzion-auth-premium) a.whatsapp-float .iluzion-whatsapp-icon,
body:not(.iluzion-auth-premium) #iluzion-wa-fab .iluzion-whatsapp-icon{
    display:none!important;
    width:0!important;
    height:0!important;
    opacity:0!important;
    pointer-events:none!important;
}

/* Overlay premium y alineación consistente en páginas */
body:not(.iluzion-auth-premium) .hero,
body:not(.iluzion-auth-premium) .hero-main--image,
body:not(.iluzion-auth-premium) .welcome-card,
body:not(.iluzion-auth-premium) .service-card--photo,
body:not(.iluzion-auth-premium) .saving-card,
body:not(.iluzion-auth-premium) .pack-card,
body:not(.iluzion-auth-premium) .image-card,
body:not(.iluzion-auth-premium) .thanks-card{
    position:relative;
    overflow:hidden;
    isolation:isolate;
}

body:not(.iluzion-auth-premium):not(.iluzion-dashboard) .hero::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    background:
        radial-gradient(circle at 82% 18%,rgba(255,196,0,.30),transparent 28%),
        radial-gradient(circle at 12% 88%,rgba(56,189,248,.24),transparent 34%),
        linear-gradient(135deg,rgba(8,23,85,.78) 0%,rgba(49,93,246,.54) 52%,rgba(5,15,55,.36) 100%);
    pointer-events:none;
}

body:not(.iluzion-auth-premium) .hero > :not(.hero-bg):not(.service-bg):not(.hero-main-bg){
    position:relative;
    z-index:2;
}

body:not(.iluzion-auth-premium) .hero-bg,
body:not(.iluzion-auth-premium) .hero-main-bg,
body:not(.iluzion-auth-premium) .service-bg,
body:not(.iluzion-auth-premium) .image-bg,
body:not(.iluzion-auth-premium) .thanks-bg{
    position:absolute;
    inset:0;
    background-size:cover;
    background-position:center;
    background-repeat:no-repeat;
    transition:transform .45s ease;
}

body:not(.iluzion-auth-premium) .hero:hover .hero-bg,
body:not(.iluzion-auth-premium) .hero-main--image:hover .hero-main-bg,
body:not(.iluzion-auth-premium) .service-card--photo:hover .service-bg,
body:not(.iluzion-auth-premium) .saving-card:hover .service-bg,
body:not(.iluzion-auth-premium) .pack-card:hover .service-bg,
body:not(.iluzion-auth-premium) .image-card:hover .image-bg,
body:not(.iluzion-auth-premium) .thanks-card:hover .thanks-bg{
    transform:scale(1.05);
}

body:not(.iluzion-auth-premium):not(.iluzion-dashboard) .hero-overlay,
body:not(.iluzion-auth-premium):not(.iluzion-dashboard) .hero-main-overlay,
body:not(.iluzion-auth-premium):not(.iluzion-dashboard) .service-overlay,
body:not(.iluzion-auth-premium):not(.iluzion-dashboard) .image-overlay,
body:not(.iluzion-auth-premium):not(.iluzion-dashboard) .thanks-overlay{
    position:absolute;
    inset:0;
    z-index:1;
    background:
        linear-gradient(180deg,rgba(5,15,55,.12) 0%,rgba(5,15,55,.82) 100%),
        linear-gradient(90deg,rgba(8,23,85,.76) 0%,rgba(8,23,85,.36) 58%,rgba(8,23,85,.20) 100%)!important;
    pointer-events:none;
}

body:not(.iluzion-auth-premium) .service-card--photo::before,
body:not(.iluzion-auth-premium) .welcome-card::before,
body:not(.iluzion-auth-premium) .hero-main--image::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    background:
        radial-gradient(circle at 82% 18%,rgba(255,196,0,.24),transparent 28%),
        linear-gradient(180deg,rgba(5,15,55,.12) 0%,rgba(5,15,55,.82) 100%),
        linear-gradient(90deg,rgba(8,23,85,.78) 0%,rgba(8,23,85,.34) 62%,rgba(8,23,85,.18) 100%);
    pointer-events:none;
}

body:not(.iluzion-auth-premium) .service-card--photo > :not(.service-bg):not(.service-overlay):not(.service-photo),
body:not(.iluzion-auth-premium) .welcome-card > :not(.service-bg):not(.service-overlay):not(.welcome-hero-photo),
body:not(.iluzion-auth-premium) .hero-main--image > :not(.hero-main-bg):not(.hero-main-overlay),
body:not(.iluzion-auth-premium) .saving-card > :not(.service-bg):not(.service-overlay),
body:not(.iluzion-auth-premium) .pack-card > :not(.service-bg):not(.service-overlay),
body:not(.iluzion-auth-premium) .image-card > :not(.image-bg):not(.image-overlay),
body:not(.iluzion-auth-premium) .thanks-card > :not(.thanks-bg):not(.thanks-overlay){
    position:relative;
    z-index:3;
}

body:not(.iluzion-auth-premium) .product-img-wrap{
    position:relative;
    overflow:hidden;
}

body:not(.iluzion-auth-premium) .product-img-wrap::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg,rgba(255,255,255,0) 35%,rgba(18,50,138,.10) 100%);
    pointer-events:none;
}

body:not(.iluzion-auth-premium) .grid,
body:not(.iluzion-auth-premium) .grid-2,
body:not(.iluzion-auth-premium) .grid-3,
body:not(.iluzion-auth-premium) .cards-grid,
body:not(.iluzion-auth-premium) .stats-grid,
body:not(.iluzion-auth-premium) .benefits,
body:not(.iluzion-auth-premium) .packs-grid,
body:not(.iluzion-auth-premium) .rewards-grid,
body:not(.iluzion-auth-premium) .panels-grid,
body:not(.iluzion-auth-premium) .result-grid,
body:not(.iluzion-auth-premium) .info-grid,
body:not(.iluzion-auth-premium) .welcome-grid,
body:not(.iluzion-auth-premium) .pro-grid{
    align-items:stretch;
}

body:not(.iluzion-auth-premium) .grid > *,
body:not(.iluzion-auth-premium) .grid-2 > *,
body:not(.iluzion-auth-premium) .grid-3 > *,
body:not(.iluzion-auth-premium) .cards-grid > *,
body:not(.iluzion-auth-premium) .stats-grid > *,
body:not(.iluzion-auth-premium) .benefits > *,
body:not(.iluzion-auth-premium) .packs-grid > *,
body:not(.iluzion-auth-premium) .rewards-grid > *,
body:not(.iluzion-auth-premium) .panels-grid > *,
body:not(.iluzion-auth-premium) .result-grid > *,
body:not(.iluzion-auth-premium) .info-grid > *,
body:not(.iluzion-auth-premium) .welcome-grid > *,
body:not(.iluzion-auth-premium) .pro-grid > *{
    min-width:0;
    height:100%;
}

@media(max-width:560px){
    .premium-title-wrap,
    .login-title-wrap{padding:16px 14px 14px}
    .premium-title,
    .login-title{font-size:1.45rem}
    .premium-section-title::after{
        width:min(100px,70%);
    }
}

/* —— Canvas premium global (misma sensación que subir_factura.php) —— */
body:not(.iluzion-auth-premium){
    background:var(--iluzion-canvas)!important;
    background-attachment:fixed;
    min-height:100vh;
    color:#0F172A;
}

body:not(.iluzion-auth-premium) .hero-side,
body:not(.iluzion-auth-premium) .card:not(.hero):not(.hero-main):not(.login-card):not(.auth-card):not(.no-iluzion-surface):not(.card-perfil-promo),
body:not(.iluzion-auth-premium) article.card:not(.card-perfil-promo),
body:not(.iluzion-auth-premium) .steps-card,
body:not(.iluzion-auth-premium) .upload-card,
body:not(.iluzion-auth-premium) .result-item,
body:not(.iluzion-auth-premium) .kpi-card,
body:not(.iluzion-auth-premium) .stat-card,
body:not(.iluzion-auth-premium) .admin-card,
body:not(.iluzion-auth-premium) .box.card{
    background:var(--iluzion-card-surface)!important;
    border:1px solid var(--iluzion-border-soft)!important;
    box-shadow:0 16px 44px rgba(49,93,246,.10),0 4px 16px rgba(15,23,42,.05)!important;
}

body:not(.iluzion-auth-premium) .tip-box:not(.tip-box--util),
body:not(.iluzion-auth-premium) .related-box,
body:not(.iluzion-auth-premium) .info-box,
body:not(.iluzion-auth-premium) .summary-box{
    background:linear-gradient(135deg,var(--iluzion-pastel-blue),#fff)!important;
    border:1px solid #DBE7FF!important;
    border-radius:18px;
}

body:not(.iluzion-auth-premium) .tip-box--green,
body:not(.iluzion-auth-premium) .info-box--green{
    background:linear-gradient(135deg,var(--iluzion-pastel-green),#fff)!important;
    border-color:#BBF7D0!important;
}

body:not(.iluzion-auth-premium) .tip-box--orange,
body:not(.iluzion-auth-premium) .info-box--orange{
    background:linear-gradient(135deg,var(--iluzion-pastel-orange),#fff)!important;
    border-color:#FED7AA!important;
}

body:not(.iluzion-auth-premium) .perk:nth-child(1),
body:not(.iluzion-auth-premium) .iluzion-pill--blue{
    background:linear-gradient(135deg,#DBEAFE,var(--iluzion-pastel-blue));
    border-color:rgba(59,130,246,.35);
}

body:not(.iluzion-auth-premium) .perk:nth-child(2),
body:not(.iluzion-auth-premium) .iluzion-pill--green{
    background:linear-gradient(135deg,#CCFBF1,var(--iluzion-pastel-green));
    border-color:rgba(45,212,191,.4);
}

body:not(.iluzion-auth-premium) .perk:nth-child(3),
body:not(.iluzion-auth-premium) .iluzion-pill--orange{
    background:linear-gradient(135deg,#FEF3C7,var(--iluzion-pastel-orange));
    border-color:rgba(251,191,36,.45);
}

body:not(.iluzion-auth-premium) .help-item:nth-child(1){
    color:#1E3A8A;
    background:linear-gradient(135deg,#EFF6FF,#EEF2FF)!important;
    border-color:rgba(59,130,246,.35)!important;
}

body:not(.iluzion-auth-premium) .help-item:nth-child(2){
    color:#134E4A;
    background:linear-gradient(135deg,#ECFEFF,#F0FDF4)!important;
    border-color:rgba(45,212,191,.4)!important;
}

body:not(.iluzion-auth-premium) .help-item:nth-child(3){
    color:#7C2D12;
    background:linear-gradient(135deg,#FFFBEB,var(--iluzion-pastel-orange))!important;
    border-color:rgba(251,191,36,.45)!important;
}

body:not(.iluzion-auth-premium) .legal-section h2,
body:not(.iluzion-auth-premium) .premium-section-title{
    color:var(--iluzion-navy);
}

body:not(.iluzion-auth-premium) .app-header{
    background:rgba(255,255,255,.92);
    backdrop-filter:blur(16px);
    border-bottom:1px solid #E7EDF7;
}

/* Firma de área — misma lectura visual en todas las páginas cliente */
.iluzion-area-footer,
.footer-note.iluzion-area-footer,
p.iluzion-area-footer{
    display:block;
    text-align:center;
    font-size:.92rem;
    font-weight:700;
    margin:22px 0 8px;
    padding:0 12px 4px;
    letter-spacing:.03em;
    line-height:1.5;
}

.iluzion-area-footer .footer-area,
.footer-note .footer-area{
    color:#12328A;
    font-weight:900;
}

.iluzion-area-footer .footer-dot,
.footer-note .footer-dot{
    color:#94A3B8;
    font-weight:600;
}

.iluzion-area-footer .footer-brand,
.footer-note .footer-brand{
    color:#315DF6;
    font-weight:900;
}

.page .hogares-footer-block .iluzion-area-footer,
.page .hogares-footer-block > .iluzion-area-footer,
.page .empresas-footer-block .iluzion-area-footer,
.page .empresas-footer-block > .iluzion-area-footer{
    margin-top:18px;
    margin-bottom:0;
}

.page .luz-footer-block .iluzion-area-footer,
.page .luz-footer-block > .iluzion-area-footer{
    margin-top:18px;
    margin-bottom:0;
}

.page .gas-footer-block .iluzion-area-footer,
.page .gas-footer-block > .iluzion-area-footer{
    margin-top:18px;
    margin-bottom:0;
}

.page .fibra-footer-block .iluzion-area-footer,
.page .fibra-footer-block > .iluzion-area-footer{
    margin-top:18px;
    margin-bottom:0;
}

.page .solar-footer-block .iluzion-area-footer,
.page .solar-footer-block > .iluzion-area-footer,
.page .dashboard-footer-block .iluzion-area-footer,
.page .dashboard-footer-block > .iluzion-area-footer,
.page .seguridad-footer-block .iluzion-area-footer,
.page .seguridad-footer-block > .iluzion-area-footer{
    margin-top:18px;
    margin-bottom:0;
}

.page .gas-footer-block .iluzion-area-footer,
.page .gas-footer-block > .iluzion-area-footer,
.page .fibra-footer-block .iluzion-area-footer,
.page .fibra-footer-block > .iluzion-area-footer{
    margin-top:18px;
    margin-bottom:0;
}

body.iluzion-luz-hogares .hero .hero-bg-photo,
body.iluzion-luz-hogares .saving-card .saving-bg-photo,
body.iluzion-gas-hogares .hero .hero-bg-photo,
body.iluzion-gas-hogares .saving-card .saving-bg-photo,
body.iluzion-fibra-hogares .hero .hero-bg-photo,
body.iluzion-fibra-hogares .saving-card .saving-bg-photo,
body.iluzion-solar-hogares .card-estudio-solar .estudio-inner .premium-section-title,
body.iluzion-solar-hogares .card-estudio-solar .estudio-inner h2{
    color:#fff!important;
    background:rgba(255,255,255,.12)!important;
    border-color:rgba(255,255,255,.28)!important;
}
body.iluzion-solar-hogares .card-estudio-solar .estudio-inner p{
    color:#fff!important;
}

.page .seguridad-footer-block .iluzion-area-footer,
.page .seguridad-footer-block > .iluzion-area-footer{
    margin-top:16px;
    margin-bottom:0;
}

/* Hogares: fotos con <img> — sin capa ::before que tapa la imagen */
body.iluzion-luz-hogares .hero::before,
body.iluzion-gas-hogares .hero::before,
body.iluzion-fibra-hogares .hero::before,
body.iluzion-solar-hogares .hero::before,
body.iluzion-seguridad-hogares .hero::before{
    display:none!important;
    content:none!important;
}

body.iluzion-luz-hogares .hero > :not(.hero-bg):not(.hero-bg-photo):not(.hero-overlay-premium):not(.service-bg):not(.hero-main-bg),
body.iluzion-gas-hogares .hero > :not(.hero-bg):not(.hero-bg-photo):not(.hero-overlay-premium):not(.service-bg):not(.hero-main-bg),
body.iluzion-fibra-hogares .hero > :not(.hero-bg):not(.hero-bg-photo):not(.hero-overlay-premium):not(.service-bg):not(.hero-main-bg),
body.iluzion-solar-hogares .hero > :not(.hero-bg):not(.hero-bg-photo):not(.hero-overlay-premium):not(.service-bg):not(.hero-main-bg),
body.iluzion-seguridad-hogares .hero > :not(.hero-bg):not(.hero-bg-photo):not(.hero-overlay-premium):not(.service-bg):not(.hero-main-bg){
    position:relative!important;
    z-index:2!important;
}

body.iluzion-luz-hogares .saving-card > :not(.service-bg):not(.saving-bg-photo):not(.service-overlay),
body.iluzion-gas-hogares .saving-card > :not(.service-bg):not(.saving-bg-photo):not(.service-overlay),
body.iluzion-fibra-hogares .saving-card > :not(.service-bg):not(.saving-bg-photo):not(.service-overlay),
body.iluzion-solar-hogares .saving-card > :not(.service-bg):not(.saving-bg-photo):not(.service-overlay),
body.iluzion-seguridad-hogares .saving-card > :not(.service-bg):not(.saving-bg-photo):not(.service-overlay){
    position:relative!important;
    z-index:2!important;
}

body.iluzion-luz-hogares .hero .hero-overlay-premium,
body.iluzion-gas-hogares .hero .hero-overlay-premium,
body.iluzion-fibra-hogares .hero .hero-overlay-premium,
body.iluzion-solar-hogares .hero .hero-overlay-premium,
body.iluzion-seguridad-hogares .hero .hero-overlay-premium{
    background:linear-gradient(105deg,rgba(5,15,55,.88) 0%,rgba(8,23,85,.62) 42%,rgba(8,23,85,.22) 68%,rgba(8,23,85,.06) 100%)!important;
}

body.iluzion-seguridad-hogares .saving-card.saving-card--247 .service-overlay{
    background:linear-gradient(180deg,rgba(5,15,55,.08) 0%,rgba(5,15,55,.42) 100%)!important;
}

body.iluzion-luz-hogares .hero .hero-bg-photo,
body.iluzion-luz-hogares .saving-card .saving-bg-photo,
body.iluzion-gas-hogares .hero .hero-bg-photo,
body.iluzion-gas-hogares .saving-card .saving-bg-photo,
body.iluzion-fibra-hogares .hero .hero-bg-photo,
body.iluzion-fibra-hogares .saving-card .saving-bg-photo,
body.iluzion-seguridad-hogares .hero .hero-bg-photo,
body.iluzion-seguridad-hogares .saving-card .saving-bg-photo,
body.iluzion-seguridad-hogares .card-estudio-alarma .estudio-bg-photo,
body.iluzion-solar-hogares .hero .hero-bg-photo,
body.iluzion-solar-hogares .saving-card .saving-bg-photo,
body.iluzion-solar-hogares .card-estudio-solar .estudio-bg-photo{
    position:absolute!important;
    inset:0!important;
    z-index:0!important;
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    object-position:center right!important;
}

body.iluzion-seguridad-hogares .saving-card .saving-bg-photo{
    object-position:center!important;
}

/* Capas empresas — fotos con <img> (como dashboard) */
body.iluzion-empresas .welcome-hero-photo,
body.iluzion-empresas .page .cards-grid .service-photo,
body.iluzion-empresas .comparador-pro-photo,
body.iluzion-empresas .carousel-slide .slide-photo{
    position:absolute!important;
    inset:0!important;
    z-index:0!important;
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    object-position:center right!important;
}

body.iluzion-empresas .welcome-hero-overlay,
body.iluzion-empresas .comparador-pro-overlay,
body.iluzion-empresas .page .cards-grid .service-overlay,
body.iluzion-empresas .carousel-slide .slide-overlay{
    position:absolute!important;
    inset:0!important;
    z-index:1!important;
}

body.iluzion-empresas .welcome-content,
body.iluzion-empresas .comparador-pro-cta-inner,
body.iluzion-empresas .page .cards-grid .service-content,
body.iluzion-empresas .slide-content{
    z-index:2!important;
}

body.iluzion-empresas .page .cards-grid .service-card::before{
    display:none!important;
}

/* Barra interior de servicios (hogares / luz / gas…) */
.iluzion-inner-nav{
    max-width:1180px;
    margin:0 auto 16px;
    padding:0 18px;
}

.iluzion-inner-nav-scroll{
    display:flex;
    gap:10px;
    overflow-x:auto;
    padding:4px 2px 10px;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
}

.iluzion-inner-nav-scroll::-webkit-scrollbar{
    display:none;
}

.iluzion-inner-nav a{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:12px 18px;
    border-radius:999px;
    background:#fff;
    border:1px solid #dbe7ff;
    color:#12328A;
    font-size:.82rem;
    font-weight:900;
    text-decoration:none;
    box-shadow:0 10px 24px rgba(49,93,246,.1);
    white-space:nowrap;
    transition:transform .2s ease,box-shadow .2s ease;
}

.iluzion-inner-nav a:hover{
    transform:translateY(-2px);
    box-shadow:0 14px 28px rgba(49,93,246,.16);
}

.iluzion-inner-nav a.is-active{
    background:linear-gradient(135deg,#315DF6,#1F73FF);
    border-color:transparent;
    color:#fff;
    box-shadow:0 14px 30px rgba(49,93,246,.28);
}

/* Pie de página estándar (diseño hogares) */
.iluzion-page-footer{
    display:flex;
    flex-direction:column;
    gap:18px;
    margin:0 0 8px;
}

/* Consejo útil — fondo blanco, barra azul→cian arriba, texto bronce */
body:not(.iluzion-auth-premium) .tip-box--util,
.tip-box--util,
.iluzion-page-footer .tip-box,
.hogares-footer-block .tip-box,
.gas-footer-block .tip-box,
.luz-footer-block .tip-box,
.fibra-footer-block .tip-box,
.seguridad-footer-block .tip-box,
.packs-footer-block .tip-box,
.solar-footer-block .tip-box,
.factura-footer-block .tip-box,
.empresas-footer-block .iluzion-page-footer .tip-box{
    margin:0;
    padding:20px 22px 22px;
    border-radius:22px;
    background:#FFFFFF!important;
    border:1px solid #E8EDF7!important;
    color:#7a5310!important;
    box-shadow:0 14px 32px rgba(49,93,246,.08)!important;
    --iluzion-card-accent:linear-gradient(90deg,#315DF6 0%,#00B8D9 100%);
}

.tip-box--util::before,
.iluzion-page-footer .tip-box::before,
.hogares-footer-block .tip-box::before,
.gas-footer-block .tip-box::before,
.luz-footer-block .tip-box::before,
.fibra-footer-block .tip-box::before,
.seguridad-footer-block .tip-box::before,
.packs-footer-block .tip-box::before,
.solar-footer-block .tip-box::before,
.factura-footer-block .tip-box::before,
.empresas-footer-block .iluzion-page-footer .tip-box::before{
    height:6px!important;
    background:linear-gradient(90deg,#315DF6 0%,#00B8D9 100%)!important;
    box-shadow:none!important;
    border-radius:22px 22px 0 0;
}

.tip-box--util h3,
.tip-box--util p,
.iluzion-page-footer .tip-box h3,
.iluzion-page-footer .tip-box p,
.hogares-footer-block .tip-box h3,
.hogares-footer-block .tip-box p,
.gas-footer-block .tip-box h3,
.gas-footer-block .tip-box p,
.luz-footer-block .tip-box h3,
.luz-footer-block .tip-box p,
.fibra-footer-block .tip-box h3,
.fibra-footer-block .tip-box p,
.seguridad-footer-block .tip-box h3,
.seguridad-footer-block .tip-box p,
.packs-footer-block .tip-box h3,
.packs-footer-block .tip-box p,
.solar-footer-block .tip-box h3,
.solar-footer-block .tip-box p,
.factura-footer-block .tip-box h3,
.factura-footer-block .tip-box p,
.empresas-footer-block .iluzion-page-footer .tip-box h3,
.empresas-footer-block .iluzion-page-footer .tip-box p,
.perfil-footer-block .tip-box h3,
.perfil-footer-block .tip-box p{
    color:#7a5310!important;
}

.tip-box--util h3,
.iluzion-page-footer .tip-box h3,
.hogares-footer-block .tip-box h3,
.gas-footer-block .tip-box h3,
.luz-footer-block .tip-box h3,
.fibra-footer-block .tip-box h3,
.seguridad-footer-block .tip-box h3,
.packs-footer-block .tip-box h3,
.solar-footer-block .tip-box h3,
.factura-footer-block .tip-box h3,
.empresas-footer-block .iluzion-page-footer .tip-box h3,
.perfil-footer-block .tip-box h3{
    margin:0 0 10px;
    font-size:1.05rem;
    font-weight:900!important;
}

.tip-box--util p,
.iluzion-page-footer .tip-box p,
.hogares-footer-block .tip-box p,
.gas-footer-block .tip-box p,
.luz-footer-block .tip-box p,
.fibra-footer-block .tip-box p,
.seguridad-footer-block .tip-box p,
.packs-footer-block .tip-box p,
.solar-footer-block .tip-box p,
.factura-footer-block .tip-box p,
.empresas-footer-block .iluzion-page-footer .tip-box p,
.perfil-footer-block .tip-box p{
    margin:0;
    line-height:1.7;
    font-size:.94rem;
    font-weight:600!important;
}

.iluzion-page-footer .iluzion-info-pills{
    margin:0;
}

.iluzion-page-footer .iluzion-trust-bar{
    margin:0;
    padding:18px 22px;
    border-radius:22px;
    font-size:.94rem;
    line-height:1.65;
    box-shadow:0 14px 32px rgba(49,93,246,.08);
}

.page .hogares-footer-block .iluzion-page-footer,
.page .empresas-footer-block .iluzion-page-footer,
.page .dashboard-footer-block .iluzion-page-footer,
.page .luz-footer-block .iluzion-page-footer,
.page .gas-footer-block .iluzion-page-footer,
.page .fibra-footer-block .iluzion-page-footer,
.page .solar-footer-block .iluzion-page-footer,
.page .seguridad-footer-block .iluzion-page-footer,
.page .packs-footer-block .iluzion-page-footer{
    margin-top:4px;
    gap:14px;
    margin-bottom:0;
}

.page .packs-footer-block .iluzion-area-footer,
.page .packs-footer-block > .iluzion-area-footer,
.page .gas-emp-footer-block .iluzion-area-footer,
.page .luz-emp-footer-block .iluzion-area-footer,
.page .fibra-emp-footer-block .iluzion-area-footer,
.page .packs-emp-footer-block .iluzion-area-footer,
.page .factura-footer-block .iluzion-area-footer,
.page .comparador-footer-block .iluzion-area-footer,
.page .comparador-footer-block > .iluzion-area-footer{
    margin-top:16px;
    margin-bottom:0;
}

body.iluzion-packs-hogares .hero::before{
    display:none!important;
    content:none!important;
}

body.iluzion-packs-hogares .hero .hero-bg-photo{
    position:absolute!important;
    inset:0!important;
    z-index:0!important;
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    display:block!important;
}

.iluzion-page-footer .iluzion-info-pills,
.iluzion-page-footer .iluzion-info-pills--footer,
.page .hogares-footer-block .iluzion-info-pills,
.page .empresas-footer-block .iluzion-info-pills,
.page .dashboard-footer-block .iluzion-info-pills,
.page .luz-footer-block .iluzion-info-pills,
.page .gas-footer-block .iluzion-info-pills,
.page .fibra-footer-block .iluzion-info-pills,
.page .solar-footer-block .iluzion-info-pills,
.page .seguridad-footer-block .iluzion-info-pills,
.page .packs-footer-block .iluzion-info-pills,
.page .perfil-footer-block .iluzion-info-pills,
.page .gas-emp-footer-block .iluzion-info-pills,
.page .luz-emp-footer-block .iluzion-info-pills,
.page .fibra-emp-footer-block .iluzion-info-pills,
.page .packs-emp-footer-block .iluzion-info-pills,
.page .solar-emp-footer-block .iluzion-info-pills,
.page .seg-emp-footer-block .iluzion-info-pills,
.page .factura-footer-block .iluzion-info-pills{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:14px;
    align-items:stretch;
}

.page .dashboard-footer-block .iluzion-info-pills--dashboard,
.page .dashboard-footer-block .iluzion-info-pills--two{
    grid-template-columns:repeat(2,1fr)!important;
}

.page .dashboard-footer-block .iluzion-pill--orange{
    display:none!important;
}

.iluzion-page-footer .iluzion-info-pills .iluzion-pill,
.page .hogares-footer-block .iluzion-info-pills .iluzion-pill,
.page .empresas-footer-block .iluzion-info-pills .iluzion-pill,
.page .dashboard-footer-block .iluzion-info-pills .iluzion-pill,
.page .luz-footer-block .iluzion-info-pills .iluzion-pill,
.page .gas-footer-block .iluzion-info-pills .iluzion-pill,
.page .fibra-footer-block .iluzion-info-pills .iluzion-pill,
.page .solar-footer-block .iluzion-info-pills .iluzion-pill,
.page .seguridad-footer-block .iluzion-info-pills .iluzion-pill,
.page .packs-footer-block .iluzion-info-pills .iluzion-pill,
.page .perfil-footer-block .iluzion-info-pills .iluzion-pill,
.page .gas-emp-footer-block .iluzion-info-pills .iluzion-pill,
.page .luz-emp-footer-block .iluzion-info-pills .iluzion-pill,
.page .fibra-emp-footer-block .iluzion-info-pills .iluzion-pill,
.page .packs-emp-footer-block .iluzion-info-pills .iluzion-pill,
.page .solar-emp-footer-block .iluzion-info-pills .iluzion-pill,
.page .seg-emp-footer-block .iluzion-info-pills .iluzion-pill,
.page .factura-footer-block .iluzion-info-pills .iluzion-pill{
    justify-content:center;
    text-align:center;
    width:100%;
}

@media (max-width:640px){
    .iluzion-page-footer .iluzion-info-pills,
    .page .hogares-footer-block .iluzion-info-pills,
    .page .empresas-footer-block .iluzion-info-pills,
    .page .dashboard-footer-block .iluzion-info-pills,
    .page .luz-footer-block .iluzion-info-pills,
    .page .gas-footer-block .iluzion-info-pills,
    .page .fibra-footer-block .iluzion-info-pills,
    .page .solar-footer-block .iluzion-info-pills,
    .page .seguridad-footer-block .iluzion-info-pills,
    .page .packs-footer-block .iluzion-info-pills,
    .page .perfil-footer-block .iluzion-info-pills,
    .page .gas-emp-footer-block .iluzion-info-pills,
    .page .luz-emp-footer-block .iluzion-info-pills,
    .page .fibra-emp-footer-block .iluzion-info-pills,
    .page .packs-emp-footer-block .iluzion-info-pills,
    .page .solar-emp-footer-block .iluzion-info-pills,
    .page .seg-emp-footer-block .iluzion-info-pills,
    .page .factura-footer-block .iluzion-info-pills{
        grid-template-columns:1fr;
    }
}

/* Barra inferior fija (hogares, servicios, seguridad…) */
body:not(.iluzion-auth-premium){
    padding-bottom:calc(88px + env(safe-area-inset-bottom,0px));
}

body:not(.iluzion-auth-premium) .bottom-nav{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:1001;
    display:grid;
    grid-template-columns:repeat(5,1fr);
    height:calc(76px + env(safe-area-inset-bottom,0px));
    padding-bottom:env(safe-area-inset-bottom,0px);
    background:rgba(255,255,255,.96);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
    border-top:1px solid #E7EDF7;
    box-shadow:0 -8px 24px rgba(15,23,42,.08);
    visibility:visible;
    opacity:1;
}

body:not(.iluzion-auth-premium) .bottom-nav a{
    text-align:center;
    color:#667085;
    font-size:.74rem;
    padding:8px 4px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-decoration:none;
}

body:not(.iluzion-auth-premium) .bottom-nav a.active{
    color:#315DF6;
}

body:not(.iluzion-auth-premium) .bottom-nav .icon-circle{
    width:42px;
    height:42px;
    border-radius:50%;
    background:#EEF5FF;
    display:flex;
    align-items:center;
    justify-content:center;
    margin:0 auto 5px;
    font-size:1.1rem;
}

body:not(.iluzion-auth-premium) .bottom-nav a.active .icon-circle{
    background:linear-gradient(135deg,#315DF6,#1F73FF);
    color:#fff;
}

body:not(.iluzion-auth-premium) .bottom-nav a.main-action .icon-circle{
    background:linear-gradient(135deg,#FF6B2B,#FF9F1C);
    color:#fff;
}

body:not(.iluzion-auth-premium) .page .seguridad-footer-block,
body:not(.iluzion-auth-premium) .page .hogares-footer-block{
    display:block;
    visibility:visible;
    opacity:1;
}

/* 中文 — misma legibilidad en todas las páginas cliente (anula letter-spacing latino) */
html[lang="zh"] body:not(.iluzion-auth-premium),
html[lang="zh"] body:not(.iluzion-auth-premium) button,
html[lang="zh"] body:not(.iluzion-auth-premium) input,
html[lang="zh"] body:not(.iluzion-auth-premium) select,
html[lang="zh"] body:not(.iluzion-auth-premium) textarea{
    font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif!important;
    letter-spacing:.03em!important;
}

html[lang="zh"] body:not(.iluzion-auth-premium) h1,
html[lang="zh"] body:not(.iluzion-auth-premium) h2,
html[lang="zh"] body:not(.iluzion-auth-premium) h3,
html[lang="zh"] body:not(.iluzion-auth-premium) .premium-title,
html[lang="zh"] body:not(.iluzion-auth-premium) .premium-section-title{
    letter-spacing:.05em!important;
    line-height:1.38!important;
    font-weight:700!important;
}

html[lang="zh"] body:not(.iluzion-auth-premium) .btn,
html[lang="zh"] body:not(.iluzion-auth-premium) button,
html[lang="zh"] body:not(.iluzion-auth-premium) [type="submit"],
html[lang="zh"] body:not(.iluzion-auth-premium) .header-actions a,
html[lang="zh"] body:not(.iluzion-auth-premium) .bottom-nav a,
html[lang="zh"] body:not(.iluzion-auth-premium) .badge,
html[lang="zh"] body:not(.iluzion-auth-premium) .pill,
html[lang="zh"] body:not(.iluzion-auth-premium) .iluzion-pill{
    letter-spacing:.04em!important;
    font-weight:600!important;
}

html[lang="zh"] body:not(.iluzion-auth-premium) p,
html[lang="zh"] body:not(.iluzion-auth-premium) li,
html[lang="zh"] body:not(.iluzion-auth-premium) .hero p{
    letter-spacing:.02em!important;
    line-height:1.75!important;
}