/* WeLux Hub — rediseño v2 (estilo Airbnb: limpio, cálido y profesional).
   Tipografía: Fraunces (títulos) + Manrope (texto). Carga junto a los estilos
   de cada página y unifica ES / EN / FR / DE / PT / LU.
   PALETAS PROVISIONALES: por defecto se usa la paleta actual de la web.
   El selector del footer (welux-v2.js) pone data-welux-palette="1".."5" en <html>
   y la elección se guarda en localStorage. */
:root{
  --welux-shadow-sm:0 1px 2px rgba(30,28,24,.08),0 4px 14px rgba(30,28,24,.08);
  --welux-shadow-md:0 2px 6px rgba(30,28,24,.10),0 14px 34px rgba(30,28,24,.16);
  --welux-shadow-lg:0 4px 10px rgba(30,28,24,.12),0 24px 48px rgba(30,28,24,.20);
  --p-bg:#fdf7ee; --p-bg2:#fffaf1; --p-card:#fffdf8; --p-ink:#43301f; --p-ink-soft:#6f5a44;
  --p-heading:#43301f; --p-accent:#b98a3c; --p-accent-deep:#9a6f2b; --p-accent-soft:#f0e3c8;
  --p-gold:#b98a3c; --p-btn-from:#e8c37a; --p-btn-to:#b98a3c; --p-btn-text:#fff;
  --p-header-bg:rgba(253,247,238,.92); --p-border:#eadfc8;
}
html[data-welux-palette="1"]{--p-bg:#F7F3EB;--p-bg2:#fcf9f2;--p-card:#fffdf6;--p-ink:#141414;--p-ink-soft:#55524c;--p-heading:#141414;--p-accent:#B08D30;--p-accent-deep:#8a6d1f;--p-accent-soft:#e9dcbc;--p-gold:#B08D30;--p-btn-from:#c9a94a;--p-btn-to:#8a6d1f;--p-header-bg:rgba(247,243,235,.94);--p-border:#ddd3bd}
html[data-welux-palette="2"]{--p-bg:#F6F1E7;--p-bg2:#fbf8ef;--p-card:#fffdf6;--p-ink:#2c332d;--p-ink-soft:#5a665e;--p-heading:#1F4D3A;--p-accent:#1F4D3A;--p-accent-deep:#16382a;--p-accent-soft:#d5e2d8;--p-gold:#B08D30;--p-btn-from:#2a6a4f;--p-btn-to:#1F4D3A;--p-header-bg:rgba(246,241,231,.94);--p-border:#d8d2bd}
html[data-welux-palette="3"]{--p-bg:#F8F2E9;--p-bg2:#fdf9f1;--p-card:#fffdf6;--p-ink:#3a2a26;--p-ink-soft:#6b564f;--p-heading:#7A1F1F;--p-accent:#7A1F1F;--p-accent-deep:#5c1818;--p-accent-soft:#eed9d2;--p-gold:#B08D30;--p-btn-from:#9a2f2f;--p-btn-to:#7A1F1F;--p-header-bg:rgba(248,242,233,.94);--p-border:#e0d2c2}
html[data-welux-palette="4"]{--p-bg:#F5F1E8;--p-bg2:#faf7ef;--p-card:#fffdf6;--p-ink:#2c3540;--p-ink-soft:#5a636e;--p-heading:#0E1E2E;--p-accent:#0E1E2E;--p-accent-deep:#0a1622;--p-accent-soft:#d7dee6;--p-gold:#B08D30;--p-btn-from:#1d3a56;--p-btn-to:#0E1E2E;--p-header-bg:rgba(245,241,232,.94);--p-border:#d5d0c2}
html[data-welux-palette="5"]{--p-bg:#F7F4EC;--p-bg2:#fcfaf3;--p-card:#fffdf6;--p-ink:#3f3b37;--p-ink-soft:#6e6a66;--p-heading:#4a4642;--p-accent:#6E6A66;--p-accent-deep:#55514d;--p-accent-soft:#e4e0d8;--p-gold:#B08D30;--p-btn-from:#8a857e;--p-btn-to:#6E6A66;--p-header-bg:rgba(247,244,236,.94);--p-border:#ddd8cc}
html,body{background:var(--p-bg)!important;color:var(--p-ink)!important}
body{font-family:'Manrope',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif!important}
h1,h2,h3,.font-headline{font-family:'Fraunces',Georgia,serif!important;letter-spacing:-.01em;color:var(--p-heading)!important}
.font-mono{font-family:'JetBrains Mono',ui-monospace,monospace!important}
html.dark,html.dark body{background:var(--p-bg)!important}
main,section,footer{background-color:transparent}
main [class*="bg-[#0d141d]"],main [class*="bg-[#080f17]"],main [class*="bg-[#151c25]"],main [class*="bg-[#192029]"],main [class*="bg-[#232a34]"],main [class*="bg-[#1a1527]"],main [class*="bg-[#251a0e]"],footer [class*="bg-[#0d141d]"],footer [class*="bg-[#080f17]"]{background-color:var(--p-card)!important;border-color:var(--p-border)!important}
main .text-white,main [class*="text-[#dce3f0]"],main [class*="text-[#f5e8d3]"]{color:var(--p-ink)!important}
main [class*="text-[#ffb95f]"],main [class*="text-[#ffcf85]"],main [class*="text-[#c96f3f]"]{color:var(--p-accent-deep)!important}
main [class*="border-[#2c3646]"],main [class*="border-[#3a5268]"]{border-color:var(--p-border)!important}
header{background:var(--p-header-bg)!important;transition:box-shadow .35s ease,background-color .35s ease,border-radius .35s ease}
header.welux-scrolled{box-shadow:0 10px 30px rgba(30,28,24,.16)!important}
header a{transition:color .25s ease}
header a:hover{color:var(--p-accent-deep)!important}
.welux-hero-button,.welux-hero-button--primary,.welux-hero-button--secondary,a.welux-hero-button,button.welux-hero-button{border-radius:999px!important;box-shadow:0 1px 0 rgba(255,255,255,.55) inset,0 -2px 0 rgba(30,28,24,.18) inset,0 6px 16px rgba(30,28,24,.28),0 18px 32px rgba(30,28,24,.18)!important;transition:transform .25s ease,box-shadow .25s ease,filter .25s ease,background .3s ease!important;will-change:transform}
.welux-hero-button--primary{background:linear-gradient(180deg,var(--p-btn-from),var(--p-btn-to))!important;border-color:transparent!important;color:var(--p-btn-text)!important}
.welux-hero-button--secondary{background:linear-gradient(180deg,var(--p-card),var(--p-accent-soft))!important;border:1px solid var(--p-border)!important;color:var(--p-accent-deep)!important}
.welux-hero-button:hover,.welux-hero-button--primary:hover,.welux-hero-button--secondary:hover{transform:translateY(-3px) scale(1.02)!important;box-shadow:0 1px 0 rgba(255,255,255,.6) inset,0 -2px 0 rgba(30,28,24,.16) inset,0 10px 22px rgba(30,28,24,.32),0 26px 44px rgba(30,28,24,.22)!important}
.welux-hero-button:active,.welux-hero-button--primary:active,.welux-hero-button--secondary:active{transform:translateY(1px) scale(.98)!important;box-shadow:0 1px 0 rgba(255,255,255,.4) inset,0 3px 10px rgba(30,28,24,.28)!important}
main [class*="bg-[#c96f3f]"],main [class*="bg-[#b7791f]"]{background:linear-gradient(180deg,var(--p-btn-from),var(--p-btn-to))!important}
.welux-deck-card,.welux-cinematic-card,.welux-media-card,main article{transition:transform .35s ease,box-shadow .35s ease,background-color .3s ease,border-color .3s ease!important}
.welux-deck-card,.welux-cinematic-card{background:var(--p-card)!important;border-radius:26px!important;box-shadow:var(--welux-shadow-md)!important;border:1px solid var(--p-border)!important}
.welux-deck-card:hover,.welux-cinematic-card:hover,.welux-media-card:hover{transform:translateY(-6px)!important;box-shadow:var(--welux-shadow-lg)!important}
.welux-media-card{background:var(--p-card)!important;border-radius:22px!important;overflow:hidden;box-shadow:var(--welux-shadow-sm)!important;border:1px solid var(--p-border)!important}
.welux-hero-image img,.welux-hero-image,.welux-cinematic-card img,.welux-media-card img,.welux-deck-card img{filter:saturate(1.08) contrast(1.06) brightness(.93) sepia(.16)!important}
.welux-hero-image,.welux-cinematic-card,.welux-media-card{position:relative}
.welux-hero-image::after,.welux-cinematic-card::after,.welux-media-card::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:radial-gradient(120% 90% at 50% 40%,transparent 55%,rgba(43,28,12,.28) 100%),linear-gradient(180deg,rgba(43,28,12,0) 55%,rgba(43,28,12,.38) 100%)}
.welux-cinematic-card img,.welux-media-card img{transition:transform .6s ease,filter .6s ease}
.welux-cinematic-card:hover img,.welux-media-card:hover img{transform:scale(1.04)}
.welux-hero-video,.welux-video{width:100%;height:100%;object-fit:cover;display:block}
.welux-hero-video--error{display:none!important}
.welux-reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s cubic-bezier(.22,.61,.36,1)}
.welux-reveal.is-visible{opacity:1;transform:none}
.welux-idioma-flotante .welux-idioma-btn{border-radius:999px!important;box-shadow:0 2px 6px rgba(30,28,24,.18),0 12px 28px rgba(30,28,24,.22)!important;transition:transform .25s ease,box-shadow .25s ease!important}
.welux-idioma-flotante .welux-idioma-btn:hover{transform:translateY(-2px)}
footer{background:#d8d5ce!important;background-image:none!important;color:#16232e!important}
footer a{transition:color .25s ease}
footer a:hover{color:var(--p-accent-deep)!important}
.welux-social-btn{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:999px;background:var(--p-card);border:1px solid var(--p-border);box-shadow:var(--welux-shadow-sm);font-weight:800;color:var(--p-ink);text-decoration:none;transition:transform .25s ease,box-shadow .25s ease}
.welux-social-btn:hover{transform:translateY(-2px);box-shadow:var(--welux-shadow-md)}
.welux-palette-picker{border-top:1px solid var(--p-border);margin-top:1.2rem;padding:1.2rem .5rem .4rem;text-align:center}
.welux-palette-picker h3{font-size:.95rem;margin:0 0 .2rem}
.welux-palette-picker p{font-size:.8rem;color:var(--p-ink-soft);margin:.2rem 0 .8rem}
.welux-palette-opt{display:inline-flex;flex-direction:column;align-items:center;gap:.4rem;margin:.3rem .45rem;padding:.65rem .75rem;border-radius:16px;border:2px solid transparent;background:var(--p-card);cursor:pointer;box-shadow:var(--welux-shadow-sm);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;font-family:inherit}

/* Vídeos del header y de las secciones (Luxemburgo, estudio y fotomatón).
   El header muestra el vídeo de Luxemburgo a todo lo ancho, con la foto del
   casco antiguo como fondo y póster de reserva, y un velo oscuro suave para
   que el título se lea. Sin fondos negros: la base es un marrón cálido. */
.welux-hero-video{background:#2b2118 url("/assets/images/luxemburgo-header.jpg") center/cover no-repeat}
.welux-hero-video video{position:relative;z-index:0}
.welux-hero-video::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(20,16,12,.28),rgba(20,16,12,.24) 45%,rgba(20,16,12,.55))}
.welux-hero img.welux-hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.welux-hero-content{position:relative;z-index:2}
header .welux-hero h1,header .hero h1{color:#fff!important;text-shadow:0 2px 18px rgba(20,16,12,.55)}
header .welux-hero p,header .hero p{color:rgba(255,255,255,.94)!important;text-shadow:0 1px 14px rgba(20,16,12,.55)}
header .welux-hero .hero-eyebrow,header .hero .hero-eyebrow{color:rgba(255,255,255,.92)!important;text-shadow:0 1px 12px rgba(20,16,12,.55)}
/* Vídeos de las secciones Studio y Gear: ocupan el hueco de la imagen, con la foto como póster. */
.welux-section-video{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit;background:#2b2118}
.welux-palette-opt:hover{transform:translateY(-2px);box-shadow:var(--welux-shadow-md)}
.welux-palette-opt[aria-pressed="true"]{border-color:var(--p-accent);box-shadow:var(--welux-shadow-md)}
.welux-palette-dots{display:flex;gap:4px}
.welux-palette-dots i{width:16px;height:16px;border-radius:50%;border:1px solid rgba(0,0,0,.18);display:block}
.welux-palette-name{font-size:.72rem;font-weight:700;color:var(--p-ink-soft);max-width:6.5rem;line-height:1.25}
.welux-invitations{border-radius:28px;box-shadow:var(--welux-shadow-md);background:linear-gradient(180deg,var(--p-card),var(--p-bg2));border:1px solid var(--p-border)}
.welux-invitations .welux-invite-chip{display:inline-flex;align-items:center;gap:.4rem;border-radius:999px;background:var(--p-card);border:1px solid var(--p-border);padding:.35rem .8rem;font-size:.8rem;box-shadow:var(--welux-shadow-sm)}
@media (max-width:640px){.welux-deck-card,.welux-cinematic-card{border-radius:20px!important}.welux-hero-button{width:100%;justify-content:center}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}.welux-reveal{opacity:1;transform:none}} /* v2.1 Contraste real en idiomas y pie: fondo propio de main, lienzo del cosmos oculto, textos blancos, KPI y botones dorados. */ main[class*="bg-"]{background:var(--p-bg)!important} canvas[id^="shader-canvas"]{display:none!important} main [class*="text-white"],footer [class*="text-white"]{color:var(--p-ink)!important} main [class*="text-white/"],footer [class*="text-white/"]{color:var(--p-ink-soft)!important} header [class*="text-white"]{color:var(--p-ink)!important} main [class*="text-[#4cd7f6]"],main [class*="text-[#ffb4ac]"],main [class*="text-[#ffddb8]"],footer [class*="text-[#4cd7f6]"],footer [class*="text-[#ffb4ac]"],footer [class*="text-[#ffddb8]"]{color:var(--p-accent-deep)!important} main [class*="bg-[#ffb95f]"],main [class*="bg-[#4cd7f6]"],main [class*="bg-[#ffb4ac]"]{background:linear-gradient(180deg,var(--p-btn-from),var(--p-btn-to))!important;box-shadow:0 1px 0 rgba(255,255,255,.55) inset,0 -2px 0 rgba(30,28,24,.18) inset,0 6px 16px rgba(30,28,24,.28)!important} footer [class*="bg-[#151c25]"],footer [class*="bg-[#192029]"],footer [class*="bg-[#232a34]"]{background-color:var(--p-card)!important;border-color:var(--p-border)!important} header [class*="bg-black/"]{background:var(--p-card)!important;border-color:var(--p-border)!important;box-shadow:var(--welux-shadow-sm)!important} header [class*="border-white/"]{border-color:var(--p-border)!important} .welux-lang-bar{background:var(--p-card)!important;border:1px solid var(--p-border)!important;box-shadow:var(--welux-shadow-sm)!important} .welux-lang-bar a,.welux-lang-bar span{color:var(--p-ink-soft)!important} .welux-lang-bar [class*="bg-white/"]{background:linear-gradient(180deg,var(--p-btn-from),var(--p-btn-to))!important;color:var(--p-btn-text)!important;border-color:transparent!important} /* v2.1 Pie v2 e invitaciones (HTML estático, sin depender del script externo). */ .welux-footer-v2{border-top:1px solid var(--p-border);margin-top:1.5rem;padding:1.4rem .4rem .6rem} .welux-footer-v2-inner{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.4rem;text-align:left;max-width:72rem;margin:0 auto} .welux-footer-v2-title{font-family:'Fraunces',Georgia,serif;font-weight:600;color:var(--p-heading)!important;margin:0 0 .5rem;font-size:1rem} .welux-footer-v2-col p{color:var(--p-ink-soft);font-size:.88rem;line-height:1.6;margin:.15rem 0} .welux-footer-v2-col a{display:block;color:var(--p-ink-soft);font-size:.88rem;line-height:1.7;text-decoration:none;margin:.15rem 0} .welux-footer-v2-col a:hover{color:var(--p-accent-deep)!important} .welux-footer-v2-social{display:flex;gap:.6rem;margin-top:.7rem} .welux-footer-v2-copy{grid-column:1/-1;text-align:center;font-size:.78rem;color:var(--p-ink-soft);margin-top:.8rem} .welux-invitations{margin:2.5rem auto;max-width:72rem;scroll-margin-top:96px} .welux-invitations-inner{max-width:62rem;margin:0 auto;padding:2.2rem 1.4rem;text-align:center} .welux-invitations-intro{color:var(--p-ink-soft);max-width:44rem;margin:.7rem auto 0;line-height:1.65} .welux-invitations-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-top:1.5rem;text-align:left} .welux-invitaciones-card,.welux-invitations-card{background:var(--p-card);border:1px solid var(--p-border);border-radius:20px;padding:1.2rem;box-shadow:var(--welux-shadow-sm);transition:transform .35s ease,box-shadow .35s ease} .welux-invitaciones-card:hover,.welux-invitations-card:hover{transform:translateY(-4px);box-shadow:var(--welux-shadow-md)} .welux-invitaciones-card h3,.welux-invitations-card h3{font-size:1.05rem;margin:.55rem 0 .3rem} .welux-invitaciones-card p,.welux-invitations-card p{font-size:.88rem;color:var(--p-ink-soft);margin:0;line-height:1.6} .welux-invitaciones-ico,.welux-invitations-ico{font-size:1.5rem} .welux-invitaciones-cierre,.welux-invitations-cierre{color:var(--p-ink-soft);font-size:.88rem;margin-top:1.4rem} .welux-invitaciones-cta,.welux-invitations-cta{display:inline-flex;align-items:center;gap:.5rem;margin-top:1rem;padding:.8rem 1.5rem;border-radius:999px;background:linear-gradient(180deg,var(--p-btn-from),var(--p-btn-to));color:var(--p-btn-text);font-weight:700;text-decoration:none;box-shadow:0 1px 0 rgba(255,255,255,.55) inset,0 -2px 0 rgba(30,28,24,.18) inset,0 6px 16px rgba(30,28,24,.28);transition:transform .25s ease,box-shadow .25s ease} .welux-invitaciones-cta:hover,.welux-invitations-cta:hover{transform:translateY(-3px);box-shadow:0 1px 0 rgba(255,255,255,.6) inset,0 -2px 0 rgba(30,28,24,.16) inset,0 10px 22px rgba(30,28,24,.32),0 26px 44px rgba(30,28,24,.22)} /* v2.1 Efectos sutiles estilo Magic UI / 21st.dev (CSS puro, sin librerías pesadas; respetan la paleta activa). */ @keyframes weluxFadeUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}} .welux-fade-up{animation:weluxFadeUp .8s cubic-bezier(.22,.61,.36,1) both} .welux-fade-up--1{animation-delay:.08s}.welux-fade-up--2{animation-delay:.16s}.welux-fade-up--3{animation-delay:.24s} .welux-hero-button,.welux-invitaciones-cta,.welux-invitations-cta,main [class*="bg-[#ffb95f]"]{position:relative;overflow:hidden} .welux-hero-button::before,.welux-invitaciones-cta::before,.welux-invitations-cta::before,main [class*="bg-[#ffb95f]"]::before{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 42%,rgba(255,255,255,.45) 50%,transparent 58%);transform:translateX(-130%);transition:transform .9s ease;pointer-events:none} .welux-hero-button:hover::before,.welux-invitaciones-cta:hover::before,.welux-invitations-cta:hover::before,main [class*="bg-[#ffb95f]"]:hover::before{transform:translateX(130%)} .welux-beam{position:relative} .welux-beam::after{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:linear-gradient(120deg,var(--p-gold),var(--p-accent-soft),var(--p-accent-deep),var(--p-gold));background-size:220% 220%;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none;animation:weluxBeamMove 7s linear infinite} @keyframes weluxBeamMove{to{background-position:220% 0}} .welux-text-gradient{background:linear-gradient(90deg,var(--p-accent-deep),var(--p-gold) 55%,var(--p-accent-deep));-webkit-background-clip:text;background-clip:text;color:transparent!important} .welux-marquee{overflow:hidden;white-space:nowrap} .welux-marquee-track{display:inline-flex;gap:2.5rem;width:max-content;animation:weluxMarquee 30s linear infinite} @keyframes weluxMarquee{to{transform:translateX(-50%)}} .welux-marquee span{font-size:.82rem;color:var(--p-ink-soft);letter-spacing:.02em} :focus-visible{outline:2px solid var(--p-accent);outline-offset:2px} /* v2.1 Los hover oscuros de la plantilla se aclaran para que el texto tinta siga legible. */ main [class*="hover:bg-[#232a34]"]:hover,main [class*="hover:bg-[#151c25]"]:hover{background-color:var(--p-bg2)!important} .welux-idioma-flotante{position:fixed;right:1rem;bottom:1rem;z-index:60} header [class*="bg-[#192029]"]{background:var(--p-card)!important;border-color:var(--p-border)!important} .welux-footer-v2{background:var(--p-card)!important;border:1px solid var(--p-border)!important;border-radius:18px!important;padding:1.2rem 1.4rem!important} .welux-palette-picker{background:var(--p-card)!important;border:1px solid var(--p-border)!important;border-radius:18px!important;padding:1.2rem 1.4rem!important} .welux-marquee{background:var(--p-bg2)!important;border-radius:12px!important}

/* ===== Header con vídeo de Luxemburgo: blur ligero y título limpio =====
   El vídeo de fondo y la foto de reserva llevan un desenfoque suave (3 px) para
   que el título se lea perfecto sin perder la imagen; el velo oscuro suave da
   el contraste y el título queda grande y limpio sobre el vídeo. */
.welux-hero-video video,.welux-hero img.welux-hero-photo{filter:blur(3px);transform:scale(1.05)}
.welux-hero-video + header{background:transparent!important}
.welux-hero-video + header h1{color:#fff!important;text-shadow:0 2px 20px rgba(20,16,12,.6)}
.welux-hero-video + header p[class*="text-white"],.welux-hero-video + header [class*="text-white/50"]{color:rgba(255,255,255,.93)!important;text-shadow:0 1px 14px rgba(20,16,12,.55)}

/* ===== Paletas: las superficies principales siguen las variables =====
   Fondo, títulos, botones, tarjetas y cabecera cambian al instante al elegir
   una paleta; la elección se guarda en localStorage. */
main{background-color:var(--p-bg)!important}
main [class*="bg-white"]{background-color:var(--p-card)!important}
html[data-welux-palette] body > header.fixed{background:var(--p-header-bg)!important}
html[data-welux-palette] body > header.fixed nav a{color:var(--p-ink)!important}

/* ===== Tipografía profesional =====
   Jerarquía clara: títulos grandes con peso y carácter (Fraunces), subtítulos y
   texto legible (Manrope), interlineado cómodo, mismos pesos en todo el sitio. */
h1{font-weight:700;letter-spacing:-.02em;line-height:1.05}
h2{font-weight:700;letter-spacing:-.015em;line-height:1.12}
h3{font-weight:600;letter-spacing:-.01em;line-height:1.25}
p,li{line-height:1.7}
.font-mono{letter-spacing:.06em}

/* ===== Tarjetas profesionales =====
   Sombras suaves en capas, bordes finos, esquinas redondeadas, espaciado
   generoso, hover con elevación y profundidad. */
.welux-media-card{box-shadow:var(--welux-shadow-md)!important}
.welux-deck-card:hover,.welux-cinematic-card:hover,.welux-media-card:hover{transform:translateY(-6px)!important;box-shadow:var(--welux-shadow-lg)!important}
a:focus-visible,button:focus-visible{outline:2px solid var(--p-accent);outline-offset:3px}

/* ===== Efectos estilo Magic UI =====
   Aparición suave al hacer scroll, brillo sutil en los botones, bordes con
   degradado animado en las tarjetas, marquee suave y títulos con degradado
   discreto. Todo suave, profesional y sin exagerar; seguro en móvil. */
.welux-hero-button,.welux-palette-opt,.welux-idioma-flotante .welux-idioma-btn{position:relative;overflow:hidden}
.welux-hero-button::after,.welux-palette-opt::after,.welux-idioma-flotante .welux-idioma-btn::after{content:"";position:absolute;top:0;left:-90%;width:55%;height:100%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.5),transparent);transform:skewX(-20deg);transition:left .65s ease;pointer-events:none}
.welux-hero-button:hover::after,.welux-palette-opt:hover::after,.welux-idioma-flotante .welux-idioma-btn:hover::after{left:140%}
.welux-deck-card,.welux-cinematic-card{border:1px solid transparent!important;background:linear-gradient(var(--p-card),var(--p-card)) padding-box,linear-gradient(120deg,var(--p-border),var(--p-accent),var(--p-border)) border-box!important;background-size:100% 100%,220% 220%!important;animation:welux-borde-flujo 9s ease infinite}
@keyframes welux-borde-flujo{0%{background-position:0% 0%,0% 50%}50%{background-position:0% 0%,100% 50%}100%{background-position:0% 0%,0% 50%}}
.welux-marquee{overflow:hidden;white-space:nowrap}
.welux-marquee-pista{display:inline-flex;gap:2.5rem;white-space:nowrap;animation:welux-marquee 38s linear infinite;will-change:transform}
@keyframes welux-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
main h2{font-size:clamp(1.8rem,3.2vw,2.5rem)}
main h3{font-size:clamp(1.25rem,2vw,1.5rem)}
main h2.font-headline,main h3.font-headline{background:linear-gradient(115deg,var(--p-heading) 15%,var(--p-accent) 50%,var(--p-heading) 85%);-webkit-background-clip:text;background-clip:text;color:transparent!important;-webkit-text-fill-color:transparent}
@media (prefers-reduced-motion:reduce){.welux-marquee-pista,.welux-deck-card,.welux-cinematic-card{animation:none!important}.welux-reveal{opacity:1;transform:none}}
/* Paletas en las páginas de plantilla: reglas con más peso que el <style>
   en línea de cada página (que fija los colores con !important), para que
   fondo, textos, tarjetas, filtros, cabecera y pie cambien de verdad al
   elegir una paleta. Los colores de identidad de cada división y el texto
   blanco del hero sobre el vídeo se respetan. */
html[data-welux-palette] body{background:var(--p-bg)!important;color:var(--p-ink)!important}
html[data-welux-palette] main{background-color:var(--p-bg)!important}
html[data-welux-palette] body > header.fixed{background:var(--p-header-bg)!important}
html[data-welux-palette] body > header.fixed .font-headline{color:var(--p-heading)!important}
html[data-welux-palette] body > header.fixed nav a{color:var(--p-ink)!important}
html[data-welux-palette] body > header.fixed a[href^="mailto:"]{background:var(--p-accent)!important;color:#fff!important}
html[data-welux-palette] main [class*="bg-[#0d141d]"],html[data-welux-palette] main [class*="bg-[#080f17]"],html[data-welux-palette] main [class*="bg-[#151c25]"],html[data-welux-palette] main [class*="bg-[#192029]"],html[data-welux-palette] main [class*="bg-[#232a34]"],html[data-welux-palette] main [class*="bg-[#1a1527]"],html[data-welux-palette] main [class*="bg-[#251a0e]"]{background:linear-gradient(180deg,var(--p-card),var(--p-bg2))!important}
html[data-welux-palette] main [class*="text-white"]{color:var(--p-ink)!important}
html[data-welux-palette] main [class*="text-white/70"]{color:var(--p-ink-soft)!important}
html[data-welux-palette] main [class*="text-white/60"]{color:var(--p-ink-soft)!important}
html[data-welux-palette] main [class*="text-white/50"]{color:var(--p-ink-soft)!important}
html[data-welux-palette] .welux-hero-video + header h1{color:#fff!important}
html[data-welux-palette] .welux-hero-video + header [class*="text-white"]{color:#fff!important}
html[data-welux-palette] .welux-hero-video + header [class*="text-[#ffb95f]"]{color:#ffb95f!important}
html[data-welux-palette] .portal-card{background:var(--p-card)!important;border-color:var(--p-border)!important}
html[data-welux-palette] .portal-card > div:last-child{background:var(--p-bg2)!important}
html[data-welux-palette] .welux-palette-picker{background:var(--p-card)!important}
html[data-welux-palette] footer{background:var(--p-ink)!important}

/* WeLux — unificación de paleta en TODAS las páginas (Gear, Careers, Studio, Films, legales y todos los idiomas).
   Las páginas de división usaban colores oscuros propios de Tailwind (zinc/negro/rojo) y no cargaban
   este CSS compartido, por eso no seguían la paleta de la home ni el selector del footer, que es persistente.
   Estas reglas mapean esos colores a las variables de paleta --p-* (que cambian con el selector). */
html main [class*="bg-zinc-950"],html main [class*="bg-zinc-900"],html main [class*="bg-zinc-800"],html main [class*="bg-neutral-950"],html main [class*="bg-neutral-900"],html main [class*="bg-neutral-800"],html main [class*="bg-slate-950"],html main [class*="bg-slate-900"],html main [class*="bg-stone-950"],html main [class*="bg-stone-900"],html main [class*="bg-black"],html header [class*="bg-zinc-950"],html header [class*="bg-zinc-900"],html header [class*="bg-neutral-900"],html header [class*="bg-black"],html footer [class*="bg-zinc-950"],html footer [class*="bg-zinc-900"],html footer [class*="bg-neutral-900"],html footer [class*="bg-black"]{background-color:var(--p-card)!important}
html main [class*="bg-zinc-700"],html main [class*="bg-neutral-700"],html main [class*="bg-slate-800"]{background-color:var(--p-bg2)!important}
html main [class*="text-white"],html main [class*="text-zinc-100"],html main [class*="text-zinc-200"],html main [class*="text-zinc-300"],html main [class*="text-zinc-400"],html main [class*="text-neutral-100"],html main [class*="text-neutral-200"],html main [class*="text-neutral-300"],html main [class*="text-slate-100"],html main [class*="text-slate-200"],html main [class*="text-slate-300"],html header [class*="text-white"],html header [class*="text-zinc-300"],html footer [class*="text-white"],html footer [class*="text-zinc-300"],html footer [class*="text-zinc-400"]{color:var(--p-ink)!important}
html main [class*="text-zinc-500"],html main [class*="text-zinc-600"],html main [class*="text-neutral-500"],html main [class*="text-slate-400"],html main [class*="text-slate-500"]{color:var(--p-ink-soft)!important}
html main [class*="text-red-"],html main [class*="text-rose-"],html header [class*="text-red-"]{color:var(--p-accent-deep)!important}
html main [class*="text-amber-"],html main [class*="text-yellow-"]{color:var(--p-gold)!important}
html main [class*="text-blue-"],html main [class*="text-sky-"],html main [class*="text-indigo-"]{color:var(--p-accent-deep)!important}
html main [class*="text-green-"],html main [class*="text-emerald-"]{color:var(--p-accent)!important}
html main [class*="border-zinc-"],html main [class*="border-neutral-"],html main [class*="border-slate-"],html main [class*="border-white"]{border-color:var(--p-border)!important}
html main [class*="bg-red-"],html main [class*="bg-rose-"],html header [class*="bg-red-"],html header [class*="bg-rose-"]{background:linear-gradient(180deg,var(--p-btn-from),var(--p-btn-to))!important;color:var(--p-btn-text)!important;border-color:transparent!important}
html main [class*="bg-amber-"],html main [class*="bg-yellow-"]{background-color:var(--p-gold)!important;color:#fff!important}
html main [class*="bg-blue-"],html main [class*="bg-sky-"],html main [class*="bg-indigo-"]{background:linear-gradient(180deg,var(--p-btn-from),var(--p-btn-to))!important;color:var(--p-btn-text)!important}
html main [class*="bg-green-"],html main [class*="bg-emerald-"]{background-color:var(--p-accent)!important;color:#fff!important}
/* El texto sobre un vídeo conserva el color claro para seguir legible. */
html main div:has(>video) [class*="text-white"],html main div:has(>video) [class*="text-zinc-"],html main div:has(>video) [class*="text-neutral-"],html main div:has(>video) [class*="text-slate-"]{color:#fff!important}
html main div:has(>video){background-color:transparent!important}

/* WeLux — estilo widget: franjas de cifras, tarjetas oscuras y bloques destacados.
   Tarjeta clara y profesional, con sombra y profundidad, igual que las tarjetas de la home. */
.welux-widget{background:var(--p-card)!important;border:1px solid var(--p-border)!important;border-radius:18px!important;box-shadow:var(--welux-shadow-md)!important;padding:22px 24px!important;color:var(--p-ink)!important}
.welux-widget h1,.welux-widget h2,.welux-widget h3,.welux-widget h4{color:var(--p-heading)!important}
.welux-widget-row{display:flex!important;flex-wrap:wrap!important;gap:16px!important;margin:32px auto!important}
html main .welux-widget-row{background:transparent!important;border-color:transparent!important;box-shadow:none!important}
.welux-widget-row>.welux-widget{flex:1 1 160px!important}
.welux-widget [class*="text-2xl"],.welux-widget [class*="text-3xl"],.welux-widget [class*="text-4xl"]{font-family:'Fraunces',Georgia,serif!important;color:var(--p-heading)!important}
.welux-card{box-shadow:var(--welux-shadow-md)!important}

/* El pie también sigue a la home: claro, no tinta oscura, con la paleta elegida. */
html[data-welux-palette] footer{background:#d8d5ce!important;background-image:none!important;color:#16232e!important}

/* WeLux — colores propios de las páginas de división (tailwind.config de Gear/Careers/Studio):
   cinema-black, surface, slate-card, rec-red, on-surface, amber-tungsten, champagne-gold…
   Sin estas reglas, el hero y las tarjetas seguían oscuros aunque cargaran el CSS compartido. */
html main [class*="bg-cinema-"],html main [class*="bg-surface"],html main [class*="bg-slate-card"],html main [class*="bg-slate-elevated"],html main [class*="bg-charcoal-"],html header [class*="bg-cinema-"],html header [class*="bg-surface"],html footer [class*="bg-cinema-"],html footer [class*="bg-surface"]{background-color:var(--p-card)!important}
html main [class*="text-on-surface"]{color:var(--p-ink)!important}
html main [class*="text-on-surface-variant"],html main [class*="text-spec-code-"]{color:var(--p-ink-soft)!important}
html main [class*="text-amber-tungsten"],html main [class*="text-champagne-"]{color:var(--p-gold)!important}
html main [class*="text-rec-"],html main [class*="text-outline-"]{color:var(--p-accent-deep)!important}
html main [class*="border-slate-border"],html main [class*="border-outline-"],html main [class*="border-cinema-"]{border-color:var(--p-border)!important}
html main [class*="bg-rec-"],html header [class*="bg-rec-"]{background:linear-gradient(180deg,var(--p-btn-from),var(--p-btn-to))!important;color:var(--p-btn-text)!important;border-color:transparent!important}
html main [class*="bg-amber-tungsten"],html main [class*="bg-champagne-"]{background:linear-gradient(180deg,var(--p-btn-from),var(--p-btn-to))!important;color:var(--p-btn-text)!important}

/* WeLux — hexadecimales arbitrarios de Gear (bg-[#e53935] del botón de reserva,
   bg-[#14161d] de las píldoras de la cabecera, bg-[#0d0e12] del cuerpo).
   Son clases Tailwind con valor arbitrario y no las cubría ningún selector anterior. */
html [class*="bg-[#e53935]"],html [class*="bg-[#c62828]"],html [class*="bg-[#e11d48]"]{background:linear-gradient(180deg,var(--p-btn-from),var(--p-btn-to))!important;color:var(--p-btn-text)!important;border-color:transparent!important}
html [class*="bg-[#0d0e12]"],html [class*="bg-[#14161d]"],html [class*="bg-[#1f232d]"],html [class*="bg-[#252a36]"],html [class*="bg-[#2c3340]"],html [class*="bg-[#111319]"]{background-color:var(--p-card)!important}
html [class*="shadow-[0_0_15px_rgba(229,57,53"]{box-shadow:var(--welux-shadow-sm)!important}
html header [class*="text-neutral-"]{color:var(--p-ink)!important}
html header [class*="text-amber-tungsten"]{color:var(--p-gold)!important}
/* Pie en ceniza claro para que se lea (2026-11-08): fondo ceniza y texto oscuro en todas las páginas. */
footer [class*="bg-[#080f17]"],footer [class*="bg-[#151c25]"],footer [class*="bg-[#192029]"]{background-color:#cfccc4!important}
footer [class*="border-[#232a34]"]{border-color:rgba(22,35,46,.25)!important}
footer [class*="text-white"]{color:#16232e!important}
footer [class*="text-white/70"]{color:#33414e!important}
footer [class*="text-white/60"]{color:#3d4a56!important}
footer [class*="text-white/40"]{color:#5a6b7a!important}
footer [class*="text-[#ffb95f]"]{color:#7a5a1f!important}
/* Selector de paletas provisional retirado (2026-11-08): no se muestra en ninguna página. */
.welux-palette-picker{display:none!important} /* Careers: cabecera en una sola barra en movil y tablet. */ @media (max-width:768px){header .welux-header-row{flex-wrap:nowrap!important;overflow-x:auto!important;scrollbar-width:thin}header .welux-header-row>div{flex-wrap:nowrap!important}header .welux-header-row a{white-space:nowrap!important}}

/* VUELTA 7 (2026-11-09): correcciones verificadas en capturas a 390 y 768 px. */
html,body{overflow-x:hidden!important;max-width:100%!important}
img,video,iframe{max-width:100%!important}
video{max-width:100%!important;height:auto!important}
input,select,textarea{max-width:100%!important;box-sizing:border-box!important}
header .h-20,header .welux-header-row{flex-wrap:nowrap!important;overflow-x:auto!important;scrollbar-width:thin!important}
header .h-20>*,header .welux-header-row>*{flex-shrink:0!important}
header .h-20 a,header .welux-header-row a{white-space:nowrap!important}
.welux-idioma-flotante{right:12px!important;bottom:12px!important;left:auto!important}
.welux-wa-float{right:12px!important;bottom:76px!important;left:auto!important;max-width:calc(100vw - 24px)!important}
div.fixed.bottom-6.left-6{left:50%!important;right:auto!important;transform:translateX(-50%)!important;bottom:calc(8px + env(safe-area-inset-bottom))!important;z-index:45!important;max-width:calc(100vw - 24px)!important}
div.fixed.bottom-6.left-6 a{white-space:nowrap!important;max-width:100%!important}
@media(max-width:768px){div.fixed.bottom-6.left-6 a span:last-child{display:none!important}div.fixed.bottom-6.left-6 a{padding:.55rem .7rem!important;gap:.4rem!important}}
.welux-studio-hero,.welux-careers-hero{background-color:#0a1420!important}
html main div:has(>video){background-color:#0a1420!important}
div:has(>video) h1,div:has(>video) h2,div:has(>video) p{text-shadow:0 1px 3px rgba(0,0,0,.6)}
@media(max-width:768px){main>section:first-of-type [class*="grid-cols-2"],main header [class*="grid-cols-2"],main>header [class*="grid-cols-2"],[class*="hero"] [class*="grid-cols-2"]{grid-template-columns:minmax(0,1fr)!important}}

/* VUELTA 8: estrellas en el CSS servido */
.welux-resena-rate label{font-size:1.7rem;line-height:1;cursor:pointer;color:#c9c2b4}
.welux-resena-rate label.on{color:#c9a227}
.welux-resena-rate input{position:absolute;opacity:0;pointer-events:none}
.welux-resena-rate:has(input[value="5"]:checked) label{color:#c9a227}/* VUELTA 9 (2026-11-09): la navegación de Gear/Films no se corta en escritorio; sus enlaces pasan a otra fila. Solo afecta a la navegación con la calculadora (Gear/Films); Careers sigue en una sola barra. */header .h-20:has(nav a[href="#calculadora"]),header .welux-header-row:has(nav a[href="#calculadora"]){flex-wrap:wrap!important;overflow-x:visible!important;height:auto!important;min-height:5rem!important}header nav:has(a[href="#calculadora"]){flex-wrap:wrap!important;max-width:100%!important}.welux-hero-video img.welux-hero-photo{display:none!important}.welux-hero-video video{width:100%!important;height:100%!important;object-fit:cover!important}
.welux-resena-rate:has(input[value="4"]:checked) label:nth-child(-n+4){color:#c9a227}
.welux-resena-rate:has(input[value="3"]:checked) label:nth-child(-n+3){color:#c9a227}
.welux-resena-rate:has(input[value="2"]:checked) label:nth-child(-n+2){color:#c9a227}
.welux-resena-rate:has(input[value="1"]:checked) label:nth-child(1){color:#c9a227}
