/* Tecno Menú · Auras de los botones (Iniciar sesión y Carrito)
   Estilo elegido en el back office (solapa Aura). El color sale de --tm-aura-rgb (acento del footer o color propio)
   y la velocidad de --tm-aura-k (1 = normal). Las clases tm-aura--ESTILO van en .tm-wrap (tienda) o en la tarjeta (back). */
@property --tm-ang{syntax:'<angle>';inherits:false;initial-value:0deg}

/* respira · resplandor suave que late */
.tm-aura--respira .tm-userbtn:not(.is-logged),
.tm-aura--respira .tm-cartbtn:not(.has-items),
.tm-aura--respira.tm-aura-all .tm-userbtn,
.tm-aura--respira.tm-aura-all .tm-cartbtn,
.tm-aura--respira .tm-aura-demo{animation:tmAuraBreath calc(2.2s * var(--tm-aura-k,1)) ease-in-out infinite}
.tm-aura--respira .tm-cartbtn:not(.has-items),.tm-aura--respira.tm-aura-all .tm-cartbtn{animation-delay:.4s}
@keyframes tmAuraBreath{
  0%,100%{box-shadow:0 0 0 0 rgba(var(--tm-aura-rgb,254,189,105),0),0 0 6px 1px rgba(var(--tm-aura-rgb,254,189,105),.35)}
  50%{box-shadow:0 0 0 3px rgba(var(--tm-aura-rgb,254,189,105),.55),0 0 20px 6px rgba(var(--tm-aura-rgb,254,189,105),.85),0 0 40px 12px rgba(var(--tm-aura-rgb,254,189,105),.45)}
}

/* sonar · ondas que salen del botón */
.tm-aura--sonar .tm-userbtn:not(.is-logged),
.tm-aura--sonar .tm-cartbtn:not(.has-items),
.tm-aura--sonar.tm-aura-all .tm-userbtn,
.tm-aura--sonar.tm-aura-all .tm-cartbtn,
.tm-aura--sonar .tm-aura-demo{position:relative}
.tm-aura--sonar .tm-userbtn:not(.is-logged)::before,
.tm-aura--sonar .tm-cartbtn:not(.has-items)::before,
.tm-aura--sonar.tm-aura-all .tm-userbtn::before,
.tm-aura--sonar.tm-aura-all .tm-cartbtn::before,
.tm-aura--sonar .tm-aura-demo::before{content:"";position:absolute;inset:0;border-radius:inherit;border:2px solid rgb(var(--tm-aura-rgb,254,189,105));opacity:0;pointer-events:none;animation:tmAuraSonar calc(2.4s * var(--tm-aura-k,1)) ease-out infinite}
.tm-aura--sonar .tm-userbtn:not(.is-logged)::after,
.tm-aura--sonar .tm-cartbtn:not(.has-items)::after,
.tm-aura--sonar.tm-aura-all .tm-userbtn::after,
.tm-aura--sonar.tm-aura-all .tm-cartbtn::after,
.tm-aura--sonar .tm-aura-demo::after{content:"";position:absolute;inset:0;border-radius:inherit;border:2px solid rgb(var(--tm-aura-rgb,254,189,105));opacity:0;pointer-events:none;animation:tmAuraSonar calc(2.4s * var(--tm-aura-k,1)) ease-out infinite;animation-delay:calc(1.2s * var(--tm-aura-k,1))}
@keyframes tmAuraSonar{0%{inset:0;opacity:.9}100%{inset:-16px;opacity:0}}

/* cometa · una luz que da vueltas por el borde */
.tm-aura--cometa .tm-userbtn:not(.is-logged),
.tm-aura--cometa .tm-cartbtn:not(.has-items),
.tm-aura--cometa.tm-aura-all .tm-userbtn,
.tm-aura--cometa.tm-aura-all .tm-cartbtn,
.tm-aura--cometa .tm-aura-demo{position:relative}
.tm-aura--cometa .tm-userbtn:not(.is-logged)::before,
.tm-aura--cometa .tm-cartbtn:not(.has-items)::before,
.tm-aura--cometa.tm-aura-all .tm-userbtn::before,
.tm-aura--cometa.tm-aura-all .tm-cartbtn::before,
.tm-aura--cometa .tm-aura-demo::before{content:"";position:absolute;inset:-5px;padding:3px;border-radius:inherit;background:conic-gradient(from var(--tm-ang),transparent 0deg,transparent 190deg,rgba(var(--tm-aura-rgb,254,189,105),.18) 235deg,rgba(var(--tm-aura-rgb,254,189,105),.75) 320deg,rgb(var(--tm-aura-rgb,254,189,105)) 354deg,#fff 360deg);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;pointer-events:none;animation:tmAuraSpin calc(2.6s * var(--tm-aura-k,1)) linear infinite}
.tm-aura--cometa .tm-userbtn:not(.is-logged)::after,
.tm-aura--cometa .tm-cartbtn:not(.has-items)::after,
.tm-aura--cometa.tm-aura-all .tm-userbtn::after,
.tm-aura--cometa.tm-aura-all .tm-cartbtn::after,
.tm-aura--cometa .tm-aura-demo::after{content:"";position:absolute;inset:-5px;padding:3px;border-radius:inherit;background:conic-gradient(from var(--tm-ang),transparent 0deg,transparent 190deg,rgba(var(--tm-aura-rgb,254,189,105),.18) 235deg,rgba(var(--tm-aura-rgb,254,189,105),.75) 320deg,rgb(var(--tm-aura-rgb,254,189,105)) 354deg,#fff 360deg);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;pointer-events:none;animation:tmAuraSpin calc(2.6s * var(--tm-aura-k,1)) linear infinite;filter:blur(9px);opacity:.8}

/* arcoíris · borde neón que cambia de color */
.tm-aura--arcoiris .tm-userbtn:not(.is-logged),
.tm-aura--arcoiris .tm-cartbtn:not(.has-items),
.tm-aura--arcoiris.tm-aura-all .tm-userbtn,
.tm-aura--arcoiris.tm-aura-all .tm-cartbtn,
.tm-aura--arcoiris .tm-aura-demo{position:relative}
.tm-aura--arcoiris .tm-userbtn:not(.is-logged)::before,
.tm-aura--arcoiris .tm-cartbtn:not(.has-items)::before,
.tm-aura--arcoiris.tm-aura-all .tm-userbtn::before,
.tm-aura--arcoiris.tm-aura-all .tm-cartbtn::before,
.tm-aura--arcoiris .tm-aura-demo::before{content:"";position:absolute;inset:-5px;padding:3px;border-radius:inherit;background:conic-gradient(from var(--tm-ang),#ff3d71,#ffb400,#3ddc84,#00c2ff,#7c4dff,#ff3d71);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;pointer-events:none;animation:tmAuraSpin calc(3.6s * var(--tm-aura-k,1)) linear infinite}
.tm-aura--arcoiris .tm-userbtn:not(.is-logged)::after,
.tm-aura--arcoiris .tm-cartbtn:not(.has-items)::after,
.tm-aura--arcoiris.tm-aura-all .tm-userbtn::after,
.tm-aura--arcoiris.tm-aura-all .tm-cartbtn::after,
.tm-aura--arcoiris .tm-aura-demo::after{content:"";position:absolute;inset:-5px;padding:3px;border-radius:inherit;background:conic-gradient(from var(--tm-ang),#ff3d71,#ffb400,#3ddc84,#00c2ff,#7c4dff,#ff3d71);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;pointer-events:none;animation:tmAuraSpin calc(3.6s * var(--tm-aura-k,1)) linear infinite;filter:blur(9px);opacity:.8}

@keyframes tmAuraSpin{to{--tm-ang:360deg}}

/* destello · brillo que barre el botón */
.tm-aura--destello .tm-userbtn:not(.is-logged),
.tm-aura--destello .tm-cartbtn:not(.has-items),
.tm-aura--destello.tm-aura-all .tm-userbtn,
.tm-aura--destello.tm-aura-all .tm-cartbtn,
.tm-aura--destello .tm-aura-demo{position:relative;box-shadow:0 0 14px 2px rgba(var(--tm-aura-rgb,254,189,105),.45)}
.tm-aura--destello .tm-userbtn:not(.is-logged)::after,
.tm-aura--destello .tm-cartbtn:not(.has-items)::after,
.tm-aura--destello.tm-aura-all .tm-userbtn::after,
.tm-aura--destello.tm-aura-all .tm-cartbtn::after,
.tm-aura--destello .tm-aura-demo::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(105deg,transparent 43%,rgba(255,255,255,.6) 50%,transparent 57%) no-repeat;background-size:260% 100%;background-position:94% 0;animation:tmAuraShine calc(2.8s * var(--tm-aura-k,1)) ease-in-out infinite}
@keyframes tmAuraShine{0%,45%{background-position:94% 0}100%{background-position:6% 0}}

/* latido · doble latido de corazón */
.tm-aura--latido .tm-userbtn:not(.is-logged),
.tm-aura--latido .tm-cartbtn:not(.has-items),
.tm-aura--latido.tm-aura-all .tm-userbtn,
.tm-aura--latido.tm-aura-all .tm-cartbtn,
.tm-aura--latido .tm-aura-demo{animation:tmAuraBeat calc(1.9s * var(--tm-aura-k,1)) ease-in-out infinite}
@keyframes tmAuraBeat{
  0%,100%{scale:1;box-shadow:0 0 0 0 rgba(var(--tm-aura-rgb,254,189,105),0)}
  14%{scale:1.08;box-shadow:0 0 0 4px rgba(var(--tm-aura-rgb,254,189,105),.35),0 0 20px 4px rgba(var(--tm-aura-rgb,254,189,105),.75)}
  28%{scale:1;box-shadow:0 0 0 0 rgba(var(--tm-aura-rgb,254,189,105),0)}
  42%{scale:1.055;box-shadow:0 0 0 3px rgba(var(--tm-aura-rgb,254,189,105),.25),0 0 14px 3px rgba(var(--tm-aura-rgb,254,189,105),.55)}
  70%{scale:1;box-shadow:0 0 0 0 rgba(var(--tm-aura-rgb,254,189,105),0)}
}

/* chispas · destellitos que titilan alrededor */
.tm-aura--chispas .tm-userbtn:not(.is-logged),
.tm-aura--chispas .tm-cartbtn:not(.has-items),
.tm-aura--chispas.tm-aura-all .tm-userbtn,
.tm-aura--chispas.tm-aura-all .tm-cartbtn,
.tm-aura--chispas .tm-aura-demo{position:relative}
.tm-aura--chispas .tm-userbtn:not(.is-logged)::before,
.tm-aura--chispas .tm-cartbtn:not(.has-items)::before,
.tm-aura--chispas.tm-aura-all .tm-userbtn::before,
.tm-aura--chispas.tm-aura-all .tm-cartbtn::before,
.tm-aura--chispas .tm-aura-demo::before{content:"";position:absolute;inset:-14px;pointer-events:none;background:radial-gradient(circle at 12% 10%,#fff 0 1.6px,rgba(var(--tm-aura-rgb,254,189,105),1) 2.6px,rgba(var(--tm-aura-rgb,254,189,105),.5) 4.5px,transparent 7px),radial-gradient(circle at 36% 92%,#fff 0 1.6px,rgba(var(--tm-aura-rgb,254,189,105),1) 2.6px,rgba(var(--tm-aura-rgb,254,189,105),.5) 4.5px,transparent 7px),radial-gradient(circle at 60% 8%,#fff 0 1.6px,rgba(var(--tm-aura-rgb,254,189,105),1) 2.6px,rgba(var(--tm-aura-rgb,254,189,105),.5) 4.5px,transparent 7px),radial-gradient(circle at 84% 90%,#fff 0 1.6px,rgba(var(--tm-aura-rgb,254,189,105),1) 2.6px,rgba(var(--tm-aura-rgb,254,189,105),.5) 4.5px,transparent 7px),radial-gradient(circle at 93% 45%,#fff 0 1.6px,rgba(var(--tm-aura-rgb,254,189,105),1) 2.6px,rgba(var(--tm-aura-rgb,254,189,105),.5) 4.5px,transparent 7px),radial-gradient(circle at 7% 62%,#fff 0 1.6px,rgba(var(--tm-aura-rgb,254,189,105),1) 2.6px,rgba(var(--tm-aura-rgb,254,189,105),.5) 4.5px,transparent 7px);background-repeat:no-repeat;opacity:0;animation:tmAuraSpark calc(1.8s * var(--tm-aura-k,1)) ease-in-out infinite;animation-delay:0s}
.tm-aura--chispas .tm-userbtn:not(.is-logged)::after,
.tm-aura--chispas .tm-cartbtn:not(.has-items)::after,
.tm-aura--chispas.tm-aura-all .tm-userbtn::after,
.tm-aura--chispas.tm-aura-all .tm-cartbtn::after,
.tm-aura--chispas .tm-aura-demo::after{content:"";position:absolute;inset:-14px;pointer-events:none;background:radial-gradient(circle at 24% 92%,#fff 0 1.6px,rgba(var(--tm-aura-rgb,254,189,105),1) 2.6px,rgba(var(--tm-aura-rgb,254,189,105),.5) 4.5px,transparent 7px),radial-gradient(circle at 48% 9%,#fff 0 1.6px,rgba(var(--tm-aura-rgb,254,189,105),1) 2.6px,rgba(var(--tm-aura-rgb,254,189,105),.5) 4.5px,transparent 7px),radial-gradient(circle at 74% 12%,#fff 0 1.6px,rgba(var(--tm-aura-rgb,254,189,105),1) 2.6px,rgba(var(--tm-aura-rgb,254,189,105),.5) 4.5px,transparent 7px),radial-gradient(circle at 90% 88%,#fff 0 1.6px,rgba(var(--tm-aura-rgb,254,189,105),1) 2.6px,rgba(var(--tm-aura-rgb,254,189,105),.5) 4.5px,transparent 7px),radial-gradient(circle at 8% 26%,#fff 0 1.6px,rgba(var(--tm-aura-rgb,254,189,105),1) 2.6px,rgba(var(--tm-aura-rgb,254,189,105),.5) 4.5px,transparent 7px),radial-gradient(circle at 95% 74%,#fff 0 1.6px,rgba(var(--tm-aura-rgb,254,189,105),1) 2.6px,rgba(var(--tm-aura-rgb,254,189,105),.5) 4.5px,transparent 7px);background-repeat:no-repeat;opacity:0;animation:tmAuraSpark calc(1.8s * var(--tm-aura-k,1)) ease-in-out infinite;animation-delay:calc(.9s * var(--tm-aura-k,1))}
@keyframes tmAuraSpark{0%,100%{opacity:0;scale:.82}45%,55%{opacity:1;scale:1.06}}

/* neón · tubo de neón que parpadea */
.tm-aura--neon .tm-userbtn:not(.is-logged),
.tm-aura--neon .tm-cartbtn:not(.has-items),
.tm-aura--neon.tm-aura-all .tm-userbtn,
.tm-aura--neon.tm-aura-all .tm-cartbtn,
.tm-aura--neon .tm-aura-demo{border-color:rgb(var(--tm-aura-rgb,254,189,105))!important;animation:tmAuraNeon calc(3.2s * var(--tm-aura-k,1)) linear infinite}
@keyframes tmAuraNeon{
  0%,18%,22%,25%,53%,57%,100%{box-shadow:0 0 0 1px rgba(var(--tm-aura-rgb,254,189,105),.9),0 0 6px 1px rgba(var(--tm-aura-rgb,254,189,105),.9),0 0 18px 4px rgba(var(--tm-aura-rgb,254,189,105),.6),inset 0 0 9px rgba(var(--tm-aura-rgb,254,189,105),.4)}
  20%,24%,55%{box-shadow:0 0 0 1px rgba(var(--tm-aura-rgb,254,189,105),.25),0 0 2px rgba(var(--tm-aura-rgb,254,189,105),.2),inset 0 0 2px rgba(var(--tm-aura-rgb,254,189,105),.1)}
}

/* aurora · colores que flotan alrededor como una aurora boreal */
.tm-aura--aurora .tm-userbtn:not(.is-logged),
.tm-aura--aurora .tm-cartbtn:not(.has-items),
.tm-aura--aurora.tm-aura-all .tm-userbtn,
.tm-aura--aurora.tm-aura-all .tm-cartbtn,
.tm-aura--aurora .tm-aura-demo{animation:tmAuraAurora calc(5s * var(--tm-aura-k,1)) ease-in-out infinite}
@keyframes tmAuraAurora{
  0%,100%{box-shadow:0px 0px 22px 3px rgba(var(--tm-aura-rgb,254,189,105),.8),11px 6px 26px 4px rgba(0,214,255,.6),-11px -6px 26px 4px rgba(176,96,255,.55)}
  25%{box-shadow:6px -8px 22px 3px rgba(var(--tm-aura-rgb,254,189,105),.8),-8px 8px 26px 4px rgba(0,214,255,.6),8px 4px 26px 4px rgba(176,96,255,.55)}
  50%{box-shadow:0px 0px 22px 3px rgba(var(--tm-aura-rgb,254,189,105),.8),-11px -4px 26px 4px rgba(0,214,255,.6),11px 4px 26px 4px rgba(176,96,255,.55)}
  75%{box-shadow:-6px 8px 22px 3px rgba(var(--tm-aura-rgb,254,189,105),.8),8px -8px 26px 4px rgba(0,214,255,.6),-8px -4px 26px 4px rgba(176,96,255,.55)}
}

/* levitar · el botón flota con su sombra de color */
.tm-aura--levitar .tm-userbtn:not(.is-logged),
.tm-aura--levitar .tm-cartbtn:not(.has-items),
.tm-aura--levitar.tm-aura-all .tm-userbtn,
.tm-aura--levitar.tm-aura-all .tm-cartbtn,
.tm-aura--levitar .tm-aura-demo{animation:tmAuraFloat calc(2.6s * var(--tm-aura-k,1)) ease-in-out infinite}
@keyframes tmAuraFloat{
  0%,100%{translate:0 0;box-shadow:0 3px 7px -3px rgba(var(--tm-aura-rgb,254,189,105),.55),0 0 10px 0 rgba(var(--tm-aura-rgb,254,189,105),.25)}
  50%{translate:0 -6px;box-shadow:0 14px 16px -8px rgba(var(--tm-aura-rgb,254,189,105),.7),0 0 18px 2px rgba(var(--tm-aura-rgb,254,189,105),.4)}
}

@media (prefers-reduced-motion:reduce){
  [class*="tm-aura--"] :is(.tm-userbtn,.tm-cartbtn,.tm-aura-demo),
  [class*="tm-aura--"] :is(.tm-userbtn,.tm-cartbtn,.tm-aura-demo)::before,
  [class*="tm-aura--"] :is(.tm-userbtn,.tm-cartbtn,.tm-aura-demo)::after{animation:none!important}
}
