/* Lux Romae Concierge Bar v3 — shared across all sub-pages.
   Extracted from /discover/index.html (commit 9d624fb).
   See data-* attributes on <nav.lux-cbar> for per-page customization. */

.lux-cbar{position:sticky;top:0;z-index:50;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:10px 16px;background:linear-gradient(135deg,#0a0a0a 0%,#151519 50%,#0e0e12 100%);border-bottom:1px solid transparent;border-image:linear-gradient(90deg,transparent,rgba(212,175,55,.5) 50%,transparent) 1;min-height:80px}
.lux-cbar::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 0%,rgba(212,175,55,.09),transparent 60%);pointer-events:none}

/* Left cluster: Lucia Funko (brand, static) + brand text + info carousel */
.lux-brand{display:flex;align-items:center;gap:12px;position:relative;z-index:1;min-width:0}
.lux-brand-logo{display:flex;align-items:center;flex-shrink:0;text-decoration:none;position:relative}
.lux-mascot{width:52px;height:52px;flex-shrink:0;animation:lux-bob 3.6s ease-in-out infinite;transition:filter .35s ease,transform .2s ease;border-radius:50%;object-fit:contain}
.lux-brand-logo:hover .lux-mascot{filter:drop-shadow(0 0 8px rgba(212,175,55,.6));transform:scale(1.04)}
.lux-logo{width:44px;height:44px;flex-shrink:0;object-fit:contain;border-radius:6px;margin-left:-2px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.4))}
@keyframes lux-bob{0%,100%{transform:translateY(0) rotate(-1.5deg)}50%{transform:translateY(-3px) rotate(1.5deg)}}
.lux-brand-meta{display:flex;flex-direction:column;gap:2px;min-width:0}
.lux-brand-name{font-family:var(--ff-sans);font-size:.76rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:#fff;white-space:nowrap;display:flex;align-items:center;gap:6px}
.lux-brand-name::before{content:"✦";color:var(--gold);font-size:.9rem}
.lux-brand-name .lux-cur-section{display:none;color:var(--gold-lt);font-weight:700;opacity:0;transition:opacity .3s ease}
.lux-cbar.scrolled .lux-brand-name .lux-cur-section{display:inline;opacity:1}
.lux-brand-name .lux-cur-section::before{content:" · ";color:rgba(255,255,255,.3);margin:0 2px}

/* Info line: 3-pill carousel fade */
.lux-info{position:relative;height:18px;min-width:0;overflow:hidden}
.lux-info-pill{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;gap:6px;font-family:var(--ff-sans);font-size:.7rem;font-weight:600;color:rgba(255,255,255,.68);white-space:nowrap;opacity:0;transform:translateY(4px);transition:opacity .45s ease,transform .45s ease;line-height:1.2}
.lux-info-pill.active{opacity:1;transform:translateY(0)}
.lux-info-pill .lux-pill-ic{font-size:.88rem;filter:saturate(1.2)}
.lux-info-pill strong{color:var(--gold-lt);font-weight:700}

/* Center cluster: search */
.lux-search{position:relative;z-index:1;min-width:0;max-width:380px;justify-self:center;width:100%}
.lux-search input{width:100%;height:38px;padding:0 14px 0 40px;border-radius:19px;border:1px solid rgba(212,175,55,.28);background:rgba(255,255,255,.07);color:#fff;font-family:var(--ff-sans);font-size:.82rem;outline:none;transition:border-color .2s,background .2s,box-shadow .2s}
.lux-search input::placeholder{color:rgba(255,255,255,.42)}
.lux-search input:focus{border-color:var(--gold);background:rgba(255,255,255,.12);box-shadow:0 0 0 3px rgba(212,175,55,.15)}
.lux-search::before{content:"\f002";font-family:"Font Awesome 6 Free";font-weight:900;position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--gold);font-size:.82rem;pointer-events:none}
.lux-search-results{position:absolute;top:44px;left:0;right:0;background:#fff;border-radius:12px;box-shadow:0 12px 36px rgba(0,0,0,.4);max-height:380px;overflow-y:auto;display:none;z-index:60;border:1px solid rgba(212,175,55,.3)}
.lux-search-results.open{display:block}
.lux-search-results a{display:block;padding:11px 14px;text-decoration:none;color:#1a1a1a;font-size:.82rem;border-bottom:1px solid #f0ebdc;transition:background .15s}
.lux-search-results a:hover{background:#faf7ed}
.lux-search-results a strong{color:var(--gold-dk);display:block;font-size:.86rem;margin-bottom:2px}
.lux-search-results a small{color:#888;font-size:.64rem;text-transform:uppercase;letter-spacing:.06em}

/* Right cluster: utility + weather Funko */
.lux-util{display:flex;align-items:center;gap:6px;position:relative;z-index:1;flex-shrink:0}
.lux-util-btn{width:38px;height:38px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:rgba(255,255,255,.82);background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.13);text-decoration:none;cursor:pointer;transition:all .2s;font-size:.98rem;position:relative;font-family:inherit}
.lux-util-btn:hover{color:var(--gold);border-color:var(--gold);background:rgba(212,175,55,.14);transform:translateY(-1px)}
.lux-util-btn.wa{background:#25d366;color:#fff;border-color:#1ea952}
.lux-util-btn.wa i{color:#fff}
.lux-util-btn.wa:hover{background:#1ea952;border-color:#148340;color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px rgba(37,211,102,.35)}
.lux-util-btn.julia{padding:0;overflow:hidden;border-color:rgba(168,85,247,.38)}
.lux-util-btn.julia img{width:100%;height:100%;object-fit:cover;border-radius:50%;transition:transform .25s ease}
.lux-util-btn.julia:hover{border-color:#a855f7;background:rgba(168,85,247,.18);transform:translateY(-1px)}
.lux-util-btn.julia:hover img{transform:scale(1.08)}
.lux-util-btn.julia .julia-badge{position:absolute;bottom:-2px;right:-2px;width:14px;height:14px;border-radius:50%;background:#a855f7;border:2px solid #0a0a0a;display:flex;align-items:center;justify-content:center;font-size:.52rem;color:#fff;font-weight:900}
.lux-lang{position:relative}
.lux-lang-menu{position:absolute;top:46px;right:0;background:#151519;border:1px solid rgba(212,175,55,.35);border-radius:12px;padding:5px;min-width:170px;display:none;box-shadow:0 14px 40px rgba(0,0,0,.6);z-index:70}
.lux-lang.open .lux-lang-menu{display:block;animation:lux-fade .2s ease}
@keyframes lux-fade{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
.lux-lang-menu a{display:flex;align-items:center;gap:9px;padding:9px 12px;color:#fff;text-decoration:none;font-size:.8rem;border-radius:7px;transition:all .15s}
.lux-lang-menu a:hover{background:rgba(212,175,55,.14);color:var(--gold)}

/* Weather widget: Funko 44 + temp chip */
.lux-weather{display:flex;align-items:center;gap:6px;padding:4px 10px 4px 4px;border-radius:24px;background:rgba(212,175,55,.1);border:1px solid rgba(212,175,55,.32);text-decoration:none;transition:all .25s ease;flex-shrink:0}
.lux-weather:hover{background:rgba(212,175,55,.18);border-color:var(--gold);transform:translateY(-1px)}
.lux-weather-funko{width:44px;height:44px;border-radius:50%;object-fit:contain;flex-shrink:0;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));transition:opacity .25s ease}
.lux-weather-temp{font-family:var(--ff-sans);font-size:.88rem;font-weight:800;color:var(--gold-lt);white-space:nowrap;line-height:1}

/* Hero banda crema — scrollable */
.lux-hero{position:relative;background:linear-gradient(135deg,#faf7ed 0%,#fffaf0 50%,#faf7ed 100%);padding:14px 16px 16px;border-top:1px solid rgba(212,175,55,.22);max-height:80px;overflow:hidden;transition:max-height .35s ease,padding .35s ease,opacity .35s ease;opacity:1}
.lux-hero::after{content:"";position:absolute;bottom:0;left:0;right:0;height:1.5px;background:linear-gradient(90deg,transparent,#d4af37 50%,transparent)}
.lux-hero.collapsed{max-height:0;padding-top:0;padding-bottom:0;opacity:0;border-top-width:0}
.lux-hero-inner{display:flex;align-items:center;gap:14px;max-width:1200px;margin:0 auto}
.lux-hero-ic{width:56px;height:56px;border-radius:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:rgba(139,92,246,.1);border:1.5px solid rgba(139,92,246,.34);padding:4px;overflow:hidden}
.lux-hero-funko{width:100%;height:100%;object-fit:contain;display:block}
.lux-hero-meta{flex:1;min-width:0}
.lux-hero-kicker{font-size:.58rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#8a7a45;display:block;margin-bottom:3px}
.lux-hero-title{display:inline;font-family:var(--ff-serif);font-size:1.5rem;font-weight:700;color:#1a1a1a;line-height:1.1;margin:0}
.lux-hero-sep{display:inline;color:var(--gold-dk);margin:0 8px;font-weight:400}
.lux-hero-sub{display:inline;font-family:var(--ff-sans);font-size:.82rem;color:#6b6456;font-style:italic;line-height:1.2}

@media(max-width:720px){
  .lux-cbar{gap:10px;padding:8px 12px}
  .lux-mascot{width:44px;height:44px}
  .lux-brand-name{font-size:.68rem}
  .lux-info{height:16px}
  .lux-info-pill{font-size:.64rem}
  .lux-search{max-width:none}
  .lux-util-btn{width:36px;height:36px;font-size:.9rem}
  .lux-weather{padding:3px 8px 3px 3px}
  .lux-weather-funko{width:38px;height:38px}
  .lux-weather-temp{font-size:.82rem}
  .lux-hero{padding:11px 12px 13px;max-height:70px}
  .lux-hero-ic{width:46px;height:46px;border-radius:11px;padding:3px}
  .lux-logo{width:38px;height:38px}
  .lux-hero-title{display:block;font-size:1.2rem}
  .lux-hero-sep{display:none}
  .lux-hero-sub{display:block;font-size:.72rem;margin-top:2px}
}
@media(max-width:520px){
  .lux-cbar{grid-template-columns:auto 1fr auto;gap:8px;padding:8px 10px}
  .lux-brand{gap:6px}
  .lux-mascot{width:40px;height:40px}
  .lux-logo{width:32px;height:32px;margin-left:-4px}
  .lux-brand-meta{max-width:0;overflow:hidden;opacity:0;transition:all .3s}
  .lux-cbar.scrolled .lux-brand-meta{max-width:200px;opacity:1}
  .lux-util{gap:4px}
  .lux-util-btn{width:34px;height:34px}
  .lux-lang{display:none}
  .lux-weather-funko{width:34px;height:34px}
  .lux-weather-temp{font-size:.76rem}
}
@media(max-width:400px){
  .lux-weather-temp{display:none}
  .lux-weather{padding:3px}
}

/* WA warning modal */
.lux-modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.62);z-index:200;display:none;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(4px)}
.lux-modal-backdrop.open{display:flex;animation:lux-mfade .25s ease}
@keyframes lux-mfade{from{opacity:0}to{opacity:1}}
.lux-modal{background:#fff;border-radius:14px;padding:22px 22px 18px;max-width:420px;width:100%;box-shadow:0 20px 60px rgba(0,0,0,.4);border:1.5px solid var(--gold);animation:lux-mslide .3s cubic-bezier(.34,1.56,.64,1)}
@keyframes lux-mslide{from{opacity:0;transform:scale(.9) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}
.lux-modal-title{display:flex;align-items:center;gap:8px;font-family:var(--ff-serif);font-size:1.2rem;font-weight:700;color:#1a1a1a;margin-bottom:6px}
.lux-modal-title i{color:#25d366;font-size:1.25rem}
.lux-modal-sub{font-size:.82rem;color:#555;margin-bottom:16px;line-height:1.55}
.lux-modal-sub strong{color:#c0392b}
.lux-modal-sub a{color:#c0392b;font-weight:700;text-decoration:underline}
.lux-modal-btns{display:flex;gap:8px;flex-direction:column}
.lux-modal-btns button{padding:12px 14px;border-radius:10px;font-family:var(--ff-sans);font-weight:700;font-size:.82rem;cursor:pointer;border:1.5px solid transparent;transition:transform .15s;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.lux-modal-btns button:hover{transform:translateY(-1px)}
.lux-modal-btns .lux-mbtn-primary{background:linear-gradient(135deg,#25d366,#128c7e);color:#fff;border-color:#128c7e}
.lux-modal-btns .lux-mbtn-secondary{background:#fff;color:#c0392b;border-color:#c0392b}

/* ═══ BRAND AWAKENING E.3 — Aurora tokens, breathing logo, shimmer hairline, golden waves, Italiana ═══ */
:root{--lux-aurora:#4a9d8e;--lux-aurora-lt:#6fc4b4}
.lux-logo{animation:lux-sub-breathe 4.2s ease-in-out infinite}
@keyframes lux-sub-breathe{0%,100%{opacity:.92;filter:drop-shadow(0 1px 2px rgba(0,0,0,.4))}50%{opacity:1;filter:drop-shadow(0 1px 2px rgba(0,0,0,.4)) drop-shadow(0 0 4px rgba(212,175,55,.45))}}
.lux-cbar::after{content:"";position:absolute;bottom:0;left:0;right:0;height:1.5px;background:linear-gradient(90deg,transparent 0%,transparent 40%,rgba(232,201,104,.85) 50%,transparent 60%,transparent 100%);background-size:200% 100%;background-repeat:no-repeat;pointer-events:none;animation:lux-sub-shimmer 14s linear infinite;z-index:2}
@keyframes lux-sub-shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
.lux-hero::before{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='80' viewBox='0 0 600 80'%3E%3Cpath d='M0,42 Q75,28 150,42 T300,42 T450,42 T600,42' stroke='%23d4af37' stroke-width='1' fill='none' opacity='.22'/%3E%3Cpath d='M0,56 Q75,44 150,56 T300,56 T450,56 T600,56' stroke='%23d4af37' stroke-width='.7' fill='none' opacity='.16'/%3E%3C/svg%3E");background-repeat:repeat-x;background-size:600px 100%;pointer-events:none;animation:lux-hero-wave-drift 28s linear infinite;z-index:0}
.lux-hero-inner{position:relative;z-index:1}
@keyframes lux-hero-wave-drift{from{background-position:0 center}to{background-position:-600px center}}
.lux-hero-title{font-family:'Italiana',var(--ff-serif),Georgia,serif;font-weight:400;letter-spacing:.4px}
.lux-hero-ic{transition:box-shadow .3s ease,transform .2s ease}
.lux-hero-ic:hover{box-shadow:0 0 14px rgba(74,157,142,.3)}
@media (prefers-reduced-motion: reduce){.lux-logo,.lux-cbar::after,.lux-hero::before{animation:none!important}}

/* ════════════════════════════════════════════════════════
   Tappa 1.8 — Desktop scaling 2x + contextual labels + LuxIA
   Mobile (≤1023px) invariato. Desktop ≥1024 cresce in 3 step.
   ════════════════════════════════════════════════════════ */

/* Badge "AI" sulla mascotte LuciaLux per indicare che apre LuxIA */
.lux-luxia-trigger{position:relative;cursor:pointer}
.lux-luxia-trigger::after{
  content:"AI";
  position:absolute;
  bottom:-2px;right:-2px;
  width:18px;height:18px;
  border-radius:50%;
  background:linear-gradient(135deg,#d4af37,#e8c968);
  color:#0a0a0a;
  font-size:8px;
  font-weight:900;
  display:flex;align-items:center;justify-content:center;
  border:2px solid #0a0a0a;
  pointer-events:none;
  letter-spacing:.5px;
  font-family:var(--ff-sans);
  z-index:2;
  box-shadow:0 2px 6px rgba(212,175,55,.4);
}
.lux-luxia-trigger:hover .lux-mascot{filter:drop-shadow(0 0 10px rgba(212,175,55,.8));transform:scale(1.06)}

/* Label contestuale (mobile hidden, desktop visibile come ::after del bottone) */
.lux-util-btn[data-label]::after,.lux-weather[data-label]::before{display:none}

/* Tooltip mobile per disambiguare LuciaLux dalla casetta */
.lux-luxia-hint{display:none;position:absolute;left:0;top:100%;margin-top:4px;
  font-size:8.5px;letter-spacing:.06em;font-weight:700;text-transform:uppercase;
  color:var(--gold-lt);white-space:nowrap;pointer-events:none}
.lux-brand-logo .lux-luxia-hint{display:block}

/* ── Desktop ≥1024px — Step 1: cerchi più grandi, label assenti (spazio limitato) */
@media (min-width: 1024px){
  .lux-cbar{min-height:104px;gap:18px;padding:14px 24px}
  .lux-mascot{width:72px;height:72px}
  .lux-logo{width:60px;height:60px}
  .lux-brand-name{font-size:.95rem;letter-spacing:.16em}
  .lux-brand-name::before{font-size:1.1rem}
  .lux-info{height:22px}
  .lux-info-pill{font-size:.85rem}
  .lux-search{max-width:460px}
  .lux-search input{height:46px;font-size:.95rem;padding:0 16px 0 46px;border-radius:23px}
  .lux-search::before{font-size:.95rem;left:18px}
  .lux-util{gap:8px}
  .lux-util-btn{width:50px;height:50px;font-size:1.15rem}
  .lux-util-btn.julia .julia-badge{width:18px;height:18px;font-size:.62rem}
  .lux-weather{padding:5px 14px 5px 5px;border-radius:30px;gap:8px}
  .lux-weather-funko{width:58px;height:58px}
  .lux-weather-temp{font-size:1.05rem}
  .lux-luxia-trigger::after{width:22px;height:22px;font-size:9.5px;bottom:-3px;right:-3px}
  .lux-hero{padding:18px 24px 20px;max-height:108px}
  .lux-hero-inner{gap:18px}
  .lux-hero-ic{width:72px;height:72px;border-radius:16px;padding:5px}
  .lux-hero-title{font-size:1.85rem}
  .lux-hero-kicker{font-size:.7rem}
  .lux-hero-sub{font-size:.95rem}
}

/* ── Desktop ≥1280px — Step 2: util-btn diventano PILL con label contestuali */
@media (min-width: 1280px){
  .lux-cbar{min-height:120px;gap:24px;padding:16px 32px}
  .lux-mascot{width:88px;height:88px}
  .lux-logo{width:70px;height:70px}
  .lux-brand-name{font-size:1.05rem}
  .lux-search{max-width:540px}
  .lux-search input{height:50px;font-size:1rem;border-radius:25px}
  .lux-search::before{font-size:1.05rem}
  .lux-util{gap:10px}
  /* Util buttons diventano pill con icona + label contestuale */
  .lux-util-btn{
    width:auto;
    height:56px;
    min-width:56px;
    padding:0 18px 0 16px;
    border-radius:28px;
    gap:9px;
    font-size:.92rem;
    font-weight:700;
    letter-spacing:.02em;
  }
  .lux-util-btn[data-label]::after{
    display:inline;
    content:attr(data-label);
    font-family:var(--ff-sans);
    color:inherit;
    white-space:nowrap;
  }
  /* Julia: foto rotonda inline + label */
  .lux-util-btn.julia{padding:4px 16px 4px 4px}
  .lux-util-btn.julia img{width:48px;height:48px}
  .lux-util-btn.julia .julia-badge{width:18px;height:18px;font-size:.62rem;bottom:0;right:8px}
  /* Weather diventa più presente */
  .lux-weather{padding:6px 18px 6px 6px;gap:10px;border-radius:32px}
  .lux-weather-funko{width:64px;height:64px}
  .lux-weather-temp{font-size:1.15rem}
  .lux-weather[data-label]::before{
    display:inline;
    content:attr(data-label);
    font-family:var(--ff-sans);
    font-size:.78rem;
    font-weight:700;
    color:var(--gold-lt);
    letter-spacing:.06em;
    text-transform:uppercase;
    margin-left:4px;
    opacity:.75;
  }
  .lux-luxia-trigger::after{width:24px;height:24px;font-size:10.5px}
}

/* ── Desktop ≥1440px — Step 3: ancora più grande */
@media (min-width: 1440px){
  .lux-cbar{min-height:140px;gap:28px;padding:18px 40px}
  .lux-mascot{width:100px;height:100px}
  .lux-logo{width:80px;height:80px}
  .lux-brand-name{font-size:1.15rem}
  .lux-info-pill{font-size:.95rem}
  .lux-search{max-width:620px}
  .lux-search input{height:54px;font-size:1.05rem;border-radius:27px;padding:0 18px 0 50px}
  .lux-search::before{font-size:1.15rem;left:20px}
  .lux-util{gap:12px}
  .lux-util-btn{height:64px;min-width:64px;padding:0 22px 0 18px;font-size:1rem}
  .lux-util-btn.julia{padding:5px 18px 5px 5px}
  .lux-util-btn.julia img{width:54px;height:54px}
  .lux-weather{padding:7px 22px 7px 7px}
  .lux-weather-funko{width:72px;height:72px}
  .lux-weather-temp{font-size:1.3rem}
  .lux-weather[data-label]::before{font-size:.85rem}
  .lux-luxia-trigger::after{width:28px;height:28px;font-size:12px;border-width:2.5px}
  .lux-hero{padding:22px 40px 24px;max-height:130px}
  .lux-hero-inner{gap:22px;max-width:1900px}
  .lux-hero-ic{width:88px;height:88px;border-radius:18px;padding:6px}
  .lux-hero-title{font-size:2.4rem}
  .lux-hero-kicker{font-size:.8rem}
  .lux-hero-sub{font-size:1.1rem}
}

/* ── Desktop ≥1800px — Step 4: aspirational scale */
@media (min-width: 1800px){
  .lux-cbar{min-height:156px;padding:20px 56px}
  .lux-mascot{width:112px;height:112px}
  .lux-logo{width:90px;height:90px}
  .lux-brand-name{font-size:1.25rem}
  .lux-search{max-width:720px}
  .lux-search input{height:60px}
  .lux-util-btn{height:72px;min-width:72px;font-size:1.08rem;padding:0 26px 0 20px}
  .lux-util-btn.julia img{width:62px;height:62px}
  .lux-weather-funko{width:84px;height:84px}
  .lux-weather-temp{font-size:1.45rem}
  .lux-hero-title{font-size:2.8rem}
}

/* ════════════════════════════════════════════════════════
   Tappa 1.10 — LuxIA Chat Modal (Phase 1: smart router + FAQ)
   Chat thread UI con bubble user/bot, typing indicator, quick
   chips, emergency card. Mobile-first.
   ════════════════════════════════════════════════════════ */

.luxia-modal-backdrop{align-items:flex-end;padding:0}
@media (min-width:768px){.luxia-modal-backdrop{align-items:center;padding:20px}}

.luxia-chat-modal{
  max-width:520px;width:100%;
  display:flex;flex-direction:column;
  padding:0;
  height:min(85vh,720px);
  max-height:none;
  border-radius:18px 18px 0 0;
  overflow:hidden;
  box-shadow:0 -10px 40px rgba(0,0,0,.35);
}
@media (min-width:768px){
  .luxia-chat-modal{border-radius:18px;box-shadow:0 20px 60px rgba(0,0,0,.4);height:min(80vh,680px);max-width:600px}
}
@media (min-width:1280px){.luxia-chat-modal{max-width:680px;height:min(80vh,760px)}}

/* Header */
.luxia-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 16px;
  background:linear-gradient(135deg,#0a0a0a,#151519);
  border-bottom:1px solid rgba(212,175,55,.25);
  flex-shrink:0;
}
.luxia-header-left{display:flex;align-items:center;gap:12px;min-width:0}
.luxia-avatar-wrap{position:relative;flex-shrink:0}
.luxia-avatar{
  width:44px;height:44px;border-radius:50%;object-fit:cover;
  border:2px solid var(--gold,#d4af37);
  background:#fff;
}
.luxia-avatar-pulse{
  position:absolute;bottom:0;right:0;
  width:12px;height:12px;border-radius:50%;
  background:#22c55e;
  border:2px solid #0a0a0a;
  animation:luxia-pulse 2s ease-in-out infinite;
}
@keyframes luxia-pulse{0%,100%{opacity:1}50%{opacity:.4}}
.luxia-header-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.luxia-header-title{
  font-family:'Italiana',var(--ff-serif,Georgia),serif;
  font-size:1.25rem;font-weight:600;color:#fff;
  letter-spacing:.04em;line-height:1;
}
.luxia-header-badge{
  font-size:.6rem;font-weight:800;letter-spacing:.16em;
  text-transform:uppercase;color:var(--gold,#d4af37);
  display:inline-flex;align-items:center;gap:5px;
}
.luxia-header-badge::before{
  content:"";
  width:6px;height:6px;border-radius:50%;
  background:#22c55e;
  box-shadow:0 0 0 2px rgba(34,197,94,.25);
  animation:luxia-online-pulse 2s ease-in-out infinite;
}
@keyframes luxia-online-pulse{
  0%,100%{box-shadow:0 0 0 2px rgba(34,197,94,.25),0 0 0 0 rgba(34,197,94,.5)}
  50%{box-shadow:0 0 0 2px rgba(34,197,94,.25),0 0 0 6px rgba(34,197,94,0)}
}
@media (prefers-reduced-motion: reduce){
  .luxia-header-badge::before{animation:none}
}
.luxia-header-close{
  width:36px;height:36px;border-radius:50%;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.18);
  color:#fff;font-size:1.5rem;line-height:1;
  cursor:pointer;transition:all .2s;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.luxia-header-close:hover{background:rgba(255,255,255,.16);border-color:var(--gold,#d4af37);color:var(--gold,#d4af37)}
.luxia-header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.luxia-header-clear{
  width:36px;height:36px;border-radius:50%;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.18);
  color:rgba(255,255,255,.7);font-size:.92rem;line-height:1;
  cursor:pointer;transition:all .2s;
  display:flex;align-items:center;justify-content:center;
}
.luxia-header-clear:hover{background:rgba(212,175,55,.18);border-color:var(--gold,#d4af37);color:var(--gold,#d4af37)}

/* Thread */
.luxia-thread{
  flex:1;
  overflow-y:auto;
  padding:18px 14px 10px;
  background:#fafaf6;
  scroll-behavior:smooth;
  display:flex;flex-direction:column;gap:14px;
}
.luxia-thread::-webkit-scrollbar{width:6px}
.luxia-thread::-webkit-scrollbar-thumb{background:rgba(212,175,55,.4);border-radius:3px}
.luxia-thread::-webkit-scrollbar-track{background:transparent}

/* Message bubbles */
.luxia-msg{
  display:flex;gap:8px;align-items:flex-end;
  animation:luxia-msg-in .25s cubic-bezier(.4,0,.2,1);
  max-width:92%;
}
@keyframes luxia-msg-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}

.luxia-msg-avatar{flex-shrink:0}
.luxia-msg-avatar img{
  width:28px;height:28px;border-radius:50%;object-fit:cover;
  border:1.5px solid var(--gold,#d4af37);
  background:#fff;
}
.luxia-msg-body{
  padding:10px 14px;
  border-radius:16px;
  font-size:.92rem;line-height:1.45;
  word-wrap:break-word;
  max-width:100%;
}

.luxia-msg--bot{align-self:flex-start}
.luxia-msg--bot .luxia-msg-body{
  background:#fff;
  color:#1a1a1a;
  border:1px solid rgba(212,175,55,.22);
  border-bottom-left-radius:4px;
  box-shadow:0 2px 8px rgba(0,0,0,.06);
}

.luxia-msg--user{align-self:flex-end;justify-content:flex-end;margin-left:auto}
.luxia-msg--user .luxia-msg-body{
  background:linear-gradient(135deg,#0a0a0a,#151519);
  color:#fff;
  border-bottom-right-radius:4px;
  box-shadow:0 2px 10px rgba(212,175,55,.18);
}

.luxia-msg-body strong{color:var(--gold-dk,#b8860b);font-weight:700}
.luxia-msg--user .luxia-msg-body strong{color:var(--gold-lt,#f0d060)}
.luxia-msg-body code{
  background:rgba(212,175,55,.12);
  color:var(--gold-dk,#b8860b);
  padding:1px 6px;border-radius:5px;
  font-family:Menlo,Monaco,'Courier New',monospace;
  font-size:.86em;font-weight:600;letter-spacing:.02em;
}
.luxia-msg-body a{color:var(--gold-dk,#b8860b);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}

/* AI source badge — shown next to bot answers from Claude API live (vs FAQ) */
/* ════════════════════════════════════════════════════════
   LUXIA FIRST-VISIT FLOATING INVITE (homepage only)
   Mostrato la PRIMA volta che il guest apre la home.
   localStorage: lux_luxia_invited_v1 → set dopo dismiss/click.
   ════════════════════════════════════════════════════════ */
.luxia-fab-invite{
  position:fixed;
  bottom:clamp(16px,4vw,32px);
  left:50%;
  transform:translateX(-50%);
  z-index:90;
  display:flex;align-items:center;gap:12px;
  padding:10px 18px 10px 10px;
  background:linear-gradient(135deg,#0a0a0a 0%,#151519 50%,#0e0e12 100%);
  border:1.5px solid rgba(212,175,55,.5);
  border-radius:60px;
  box-shadow:0 12px 36px rgba(0,0,0,.45),0 0 0 4px rgba(212,175,55,.08);
  cursor:pointer;
  text-decoration:none;
  max-width:min(92vw,420px);
  animation:luxia-fab-slide-in .6s cubic-bezier(.34,1.56,.64,1) .8s both,
            luxia-fab-bob 3.2s ease-in-out 1.5s infinite;
  transition:transform .25s,box-shadow .25s;
}
.luxia-fab-invite:hover{
  transform:translateX(-50%) scale(1.04);
  box-shadow:0 16px 44px rgba(212,175,55,.4),0 0 0 4px rgba(212,175,55,.18);
  animation-play-state:paused;
}
.luxia-fab-invite-img{
  width:64px;height:64px;
  border-radius:50%;
  border:2px solid var(--oro,#d4af37);
  flex-shrink:0;
  background:#fff;
  object-fit:cover;
  position:relative;
  animation:luxia-fab-glow 2.6s ease-in-out infinite;
}
@keyframes luxia-fab-glow{
  0%,100%{box-shadow:0 0 0 0 rgba(212,175,55,.5)}
  50%{box-shadow:0 0 0 8px rgba(212,175,55,0)}
}
.luxia-fab-invite-text{
  display:flex;flex-direction:column;gap:2px;color:#fff;line-height:1.2;
}
.luxia-fab-invite-title{
  font-family:'Italiana','Cormorant Garamond',Georgia,serif;
  font-size:1.1rem;font-weight:600;color:var(--oro,#d4af37);
  letter-spacing:.02em;
}
.luxia-fab-invite-sub{
  font-size:.74rem;color:rgba(255,255,255,.8);
  font-weight:500;
}
.luxia-fab-invite-status{
  display:inline-flex;align-items:center;gap:4px;
  font-size:.62rem;font-weight:800;letter-spacing:.12em;
  text-transform:uppercase;color:#22c55e;
}
.luxia-fab-invite-status::before{
  content:"";width:5px;height:5px;border-radius:50%;background:#22c55e;
  animation:luxia-online-pulse 2s ease-in-out infinite;
}
.luxia-fab-invite-close{
  position:absolute;top:-8px;right:-8px;
  width:24px;height:24px;border-radius:50%;
  background:#0a0a0a;border:1.5px solid rgba(212,175,55,.4);
  color:#fff;font-size:14px;line-height:1;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:all .2s;
}
.luxia-fab-invite-close:hover{
  background:rgba(212,175,55,.2);border-color:var(--oro,#d4af37);
}
@keyframes luxia-fab-slide-in{
  from{opacity:0;transform:translateX(-50%) translateY(40px) scale(.85)}
  to  {opacity:1;transform:translateX(-50%) translateY(0) scale(1)}
}
@keyframes luxia-fab-bob{
  0%,100%{transform:translateX(-50%) translateY(0)}
  50%    {transform:translateX(-50%) translateY(-8px)}
}
@media (max-width:520px){
  .luxia-fab-invite{padding:8px 14px 8px 8px;border-radius:50px}
  .luxia-fab-invite-img{width:52px;height:52px}
  .luxia-fab-invite-title{font-size:1rem}
  .luxia-fab-invite-sub{font-size:.7rem}
}
@media (min-width:1024px){
  .luxia-fab-invite{padding:12px 22px 12px 12px}
  .luxia-fab-invite-img{width:78px;height:78px}
  .luxia-fab-invite-title{font-size:1.25rem}
  .luxia-fab-invite-sub{font-size:.85rem}
}
@media (prefers-reduced-motion: reduce){
  .luxia-fab-invite,.luxia-fab-invite-img{animation:none}
}

/* ════════════════════════════════════════════════════════
   LuxIA permanent FAB — pill con mascotte + label "Ask LuxIA"
   Appare dopo il primo invito, in basso a destra. Grafica
   coerente con l'invito di benvenuto (scuro + oro).
   ════════════════════════════════════════════════════════ */
.luxia-fab{
  position:fixed;
  bottom:clamp(16px,4vw,28px);
  right:clamp(16px,4vw,28px);
  z-index:90;
  display:flex;align-items:center;gap:9px;
  padding:7px 18px 7px 7px;
  background:linear-gradient(135deg,#0a0a0a 0%,#151519 55%,#0e0e12 100%);
  border:1.5px solid rgba(212,175,55,.55);
  border-radius:50px;
  box-shadow:0 10px 30px rgba(0,0,0,.45),0 0 0 4px rgba(212,175,55,.08);
  text-decoration:none;cursor:pointer;
  transition:transform .25s,box-shadow .25s;
  animation:luxia-fab-pop .5s cubic-bezier(.34,1.56,.64,1) both,
            luxia-fab-bob-corner 3.4s ease-in-out 1.6s infinite;
}
@keyframes luxia-fab-bob-corner{
  0%,100%{transform:translateY(0)}
  50%    {transform:translateY(-7px)}
}
.luxia-fab:hover{
  transform:translateY(-2px) scale(1.04);
  box-shadow:0 14px 38px rgba(212,175,55,.4),0 0 0 4px rgba(212,175,55,.18);
  animation-play-state:paused;
}
.luxia-fab:active{transform:scale(.97)}
.luxia-fab-imgwrap{position:relative;width:46px;height:46px;flex-shrink:0}
.luxia-fab-img{
  width:46px;height:46px;border-radius:50%;
  border:2px solid var(--gold,#d4af37);
  object-fit:cover;background:#fff;display:block;
  animation:luxia-fab-glow 2.8s ease-in-out infinite;
}
.luxia-fab-dot{
  position:absolute;bottom:0;right:0;
  width:12px;height:12px;border-radius:50%;
  background:#22c55e;border:2.5px solid #0a0a0a;
  animation:luxia-online-pulse 2s ease-in-out infinite;
}
.luxia-fab-label{
  font-family:'Italiana','Cormorant Garamond',Georgia,serif;
  font-size:1.1rem;font-weight:600;color:var(--gold,#d4af37);
  letter-spacing:.02em;white-space:nowrap;
}
@keyframes luxia-fab-pop{
  from{opacity:0;transform:translateY(20px) scale(.8)}
  to  {opacity:1;transform:translateY(0) scale(1)}
}
@media (min-width:1024px){
  .luxia-fab{padding:9px 22px 9px 9px;gap:11px}
  .luxia-fab-imgwrap,.luxia-fab-img{width:54px;height:54px}
  .luxia-fab-label{font-size:1.25rem}
}
@media (prefers-reduced-motion: reduce){
  .luxia-fab{animation:luxia-fab-pop .3s ease-out both}
  .luxia-fab-img,.luxia-fab-dot{animation:none}
}

/* Inline Markdown links nelle risposte LuxIA (es. [Apri sezione](/url/)) */
.luxia-md-link{
  color:var(--gold-dk,#b8860b);
  text-decoration:underline;
  text-decoration-thickness:1.5px;
  text-underline-offset:2px;
  font-weight:600;
  transition:color .15s;
}
.luxia-md-link:hover{
  color:var(--gold,#d4af37);
  text-decoration-thickness:2px;
}

.luxia-source-badge{
  display:inline-block;margin-left:6px;
  padding:1px 7px;
  border-radius:8px;
  font-size:.62rem;font-weight:800;letter-spacing:.06em;
  background:linear-gradient(135deg,#d4af37,#e8c968);
  color:#0a0a0a;
  vertical-align:middle;
  text-transform:uppercase;
  font-family:var(--ff-sans,inherit);
}

/* ── LuxIA TTS button (Phase 3 — ElevenLabs voice playback) ── */
.luxia-tts-btn{
  position:absolute;
  bottom:6px;right:6px;
  width:30px;height:30px;
  border-radius:50%;
  border:1.5px solid rgba(212,175,55,.35);
  background:rgba(212,175,55,.08);
  color:var(--gold-dk,#b8860b);
  cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  font-size:.78rem;
  transition:all .2s;
  opacity:.7;
}
.luxia-msg--bot .luxia-msg-body{position:relative;padding-bottom:38px}
.luxia-msg--bot .luxia-msg-body:has(.luxia-tts-btn){padding-bottom:38px}
/* Fallback for browsers without :has() — always add padding-bottom on bot msg */
.luxia-tts-btn:hover{
  opacity:1;
  background:var(--gold,#d4af37);
  color:#fff;
  border-color:var(--gold,#d4af37);
  transform:scale(1.08);
  box-shadow:0 3px 10px rgba(212,175,55,.4);
}
.luxia-tts-btn:active{transform:scale(.96)}
.luxia-tts-btn.luxia-tts-loading{cursor:wait;opacity:.7}
.luxia-tts-btn.luxia-tts-playing{
  background:var(--gold,#d4af37);
  color:#fff;
  border-color:var(--gold,#d4af37);
  opacity:1;
  animation:luxia-tts-pulse 1.4s ease-in-out infinite;
}
@keyframes luxia-tts-pulse{
  0%,100%{box-shadow:0 0 0 0 rgba(212,175,55,.5)}
  50%{box-shadow:0 0 0 8px rgba(212,175,55,0)}
}
.luxia-tts-btn.luxia-tts-disabled{
  opacity:.35;cursor:not-allowed;
  background:transparent;
  border-style:dashed;
}
.luxia-tts-btn.luxia-tts-disabled:hover{
  opacity:.5;
  background:transparent;
  transform:none;
  box-shadow:none;
}

@media (min-width:1024px){
  .luxia-tts-btn{width:34px;height:34px;font-size:.88rem;bottom:8px;right:8px}
  .luxia-msg--bot .luxia-msg-body{padding-bottom:44px}
}

/* Typing indicator (3 bouncing dots) */
.luxia-typing{display:inline-flex;gap:4px;align-items:center;padding:14px 18px}
.luxia-typing span{
  width:6px;height:6px;border-radius:50%;
  background:var(--gold,#d4af37);
  animation:luxia-typing-bounce 1.4s ease-in-out infinite;
}
.luxia-typing span:nth-child(2){animation-delay:.16s}
.luxia-typing span:nth-child(3){animation-delay:.32s}
@keyframes luxia-typing-bounce{
  0%,80%,100%{transform:translateY(0);opacity:.4}
  40%{transform:translateY(-5px);opacity:1}
}

/* Quick chips (initial chip row) */
.luxia-quick-chips{
  display:flex;flex-wrap:wrap;gap:6px;
  padding:4px 0 8px 36px;  /* offset to align with bot bubbles */
  animation:luxia-msg-in .35s ease-out;
}
.luxia-chip{
  display:inline-flex;align-items:center;gap:5px;
  padding:7px 12px;
  border:1px solid rgba(212,175,55,.35);
  border-radius:18px;
  background:#fff;
  color:#1a1a1a;
  font-family:inherit;
  font-size:.78rem;font-weight:600;
  cursor:pointer;
  transition:all .18s;
  white-space:nowrap;
}
.luxia-chip:hover{
  background:var(--gold,#d4af37);
  color:#fff;
  border-color:var(--gold,#d4af37);
  transform:translateY(-1px);
  box-shadow:0 3px 10px rgba(212,175,55,.3);
}
.luxia-chip-ic{font-size:1rem;line-height:1}

/* Answer block (inside bot bubble) */
.luxia-answer{display:flex;gap:8px;align-items:flex-start}
.luxia-answer-icon{font-size:1.2rem;flex-shrink:0;margin-top:1px}
.luxia-answer-body{flex:1;min-width:0}

/* CTA row (buttons under bot answer) */
.luxia-cta-row{
  display:flex;flex-wrap:wrap;gap:6px;
  padding-left:36px; /* align with bot bubble */
  margin-top:-4px;
  animation:luxia-msg-in .35s ease-out .1s both;
}
.luxia-cta-btn{
  display:inline-flex;align-items:center;gap:5px;
  padding:7px 14px;
  border-radius:14px;
  font-family:inherit;
  font-size:.78rem;font-weight:700;
  cursor:pointer;
  transition:all .18s;
  border:1.5px solid transparent;
}
.luxia-cta-btn--copy{background:rgba(212,175,55,.12);color:var(--gold-dk,#b8860b);border-color:rgba(212,175,55,.4)}
.luxia-cta-btn--copy:hover{background:var(--gold,#d4af37);color:#fff;border-color:var(--gold,#d4af37)}
.luxia-cta-btn--page,.luxia-cta-btn--external{background:#0a0a0a;color:#fff;border-color:#0a0a0a}
.luxia-cta-btn--page:hover,.luxia-cta-btn--external:hover{background:#151519;border-color:var(--gold,#d4af37)}
.luxia-cta-btn--whatsapp{background:#25d366;color:#fff;border-color:#1ea952}
.luxia-cta-btn--whatsapp:hover{background:#1ea952}
.luxia-cta-btn--tel{background:#3b82f6;color:#fff;border-color:#2563eb}
.luxia-cta-btn--tel:hover{background:#2563eb}
.luxia-cta-btn--search{background:#fff;color:#0a0a0a;border-color:rgba(0,0,0,.12)}
.luxia-cta-btn--search:hover{background:#fafaf6;border-color:var(--gold,#d4af37)}

/* Emergency card (red, urgent) */
.luxia-msg--emergency .luxia-msg-body{
  background:linear-gradient(135deg,#7f1d1d,#dc2626) !important;
  color:#fff !important;
  border-color:rgba(220,38,38,.6) !important;
  box-shadow:0 6px 20px rgba(220,38,38,.3) !important;
}
.luxia-emergency-card{padding:0}
.luxia-emergency-title{font-size:1.05rem;font-weight:800;margin-bottom:6px;letter-spacing:.02em}
.luxia-emergency-msg{font-size:.88rem;line-height:1.45}
.luxia-msg--emergency strong{color:#fef3c7 !important}

/* Fallback message styling */
.luxia-fallback-msg{display:flex;gap:8px;align-items:flex-start;font-style:italic;color:#555}
.luxia-fallback-msg strong{font-style:normal}

/* Input bar */
.luxia-input-bar{
  display:flex;align-items:flex-end;gap:8px;
  padding:10px 12px;
  background:#fff;
  border-top:1px solid rgba(0,0,0,.08);
  flex-shrink:0;
}
.luxia-input{
  flex:1;
  resize:none;
  padding:10px 14px;
  border:1.5px solid rgba(212,175,55,.3);
  border-radius:18px;
  font-family:inherit;
  font-size:.92rem;
  line-height:1.4;
  outline:none;
  background:#fafaf6;
  color:#1a1a1a;
  transition:border-color .2s,background .2s,box-shadow .2s;
  min-height:40px;max-height:120px;overflow-y:auto;
}
.luxia-input:focus{
  border-color:var(--gold,#d4af37);
  background:#fff;
  box-shadow:0 0 0 3px rgba(212,175,55,.12);
}
.luxia-input::placeholder{color:#999}
.luxia-input-send{
  width:40px;height:40px;border-radius:50%;
  background:linear-gradient(135deg,var(--gold,#d4af37),var(--gold-dk,#b8860b));
  color:#fff;
  border:none;font-size:1rem;
  cursor:pointer;
  transition:all .2s;
  flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 3px 10px rgba(212,175,55,.3);
}
.luxia-input-send:hover{transform:translateY(-1px);box-shadow:0 5px 14px rgba(212,175,55,.45)}
.luxia-input-send:active{transform:translateY(0)}

/* Voice input mic button (free Web Speech API) */
.luxia-input-mic{
  width:40px;height:40px;border-radius:50%;
  background:#fff;
  color:var(--gold-dk,#b8860b);
  border:1.5px solid var(--gold,#d4af37);
  font-size:1rem;cursor:pointer;
  transition:all .2s;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
.luxia-input-mic:hover{background:rgba(212,175,55,.12)}
.luxia-input-mic:active{transform:scale(.94)}
.luxia-input-mic--active{
  background:linear-gradient(135deg,#e53935,#c62828);
  border-color:#c62828;color:#fff;
  animation:luxia-mic-pulse 1.3s ease-in-out infinite;
}
@keyframes luxia-mic-pulse{
  0%,100%{box-shadow:0 0 0 0 rgba(229,57,53,.5)}
  50%    {box-shadow:0 0 0 9px rgba(229,57,53,0)}
}
@media (prefers-reduced-motion: reduce){
  .luxia-input-mic--active{animation:none}
}

/* Footer */
.luxia-footer{
  padding:7px 12px 9px;
  background:#fff;
  text-align:center;
  font-size:.72rem;
  color:#888;
  border-top:1px solid rgba(0,0,0,.04);
  display:flex;flex-direction:column;gap:2px;align-items:center;
}
.luxia-footer-voice{cursor:default;font-style:italic}
.luxia-footer-privacy{
  display:inline-flex;align-items:center;gap:4px;
  font-size:.66rem;color:#a8a8a8;
}
.luxia-footer-privacy i{font-size:.6rem;color:#b8b8b8}

/* Name onboarding mini-form (inside the chat thread) */
.luxia-name-form{
  display:flex;flex-wrap:wrap;gap:8px;
  margin:4px 0 8px 44px;
  animation:luxia-msg-in .3s ease-out both;
}
.luxia-name-input{
  flex:1;min-width:140px;
  padding:9px 14px;
  border:1.5px solid var(--gold,#d4af37);
  border-radius:22px;
  font-size:.92rem;font-family:inherit;color:#1a1a1a;
  outline:none;background:#fff;
}
.luxia-name-input:focus{box-shadow:0 0 0 3px rgba(212,175,55,.18)}
.luxia-name-ok{
  padding:9px 18px;border:none;border-radius:22px;cursor:pointer;
  background:linear-gradient(135deg,#d4af37,#e8c968);
  color:#0a0a0a;font-weight:800;font-size:.85rem;font-family:inherit;
  transition:transform .15s,box-shadow .15s;
}
.luxia-name-ok:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(212,175,55,.4)}
.luxia-name-skip{
  padding:9px 14px;border:1px solid rgba(0,0,0,.12);border-radius:22px;cursor:pointer;
  background:transparent;color:#888;font-weight:600;font-size:.82rem;font-family:inherit;
  transition:all .15s;
}
.luxia-name-skip:hover{border-color:#bbb;color:#555}

/* Desktop scaling — input/header più grandi */
@media (min-width:1024px){
  .luxia-header{padding:16px 20px}
  .luxia-avatar{width:52px;height:52px}
  .luxia-header-title{font-size:1.45rem}
  .luxia-msg-body{font-size:1rem;padding:12px 16px;border-radius:18px}
  .luxia-msg-avatar img{width:32px;height:32px}
  .luxia-input{font-size:1rem;padding:12px 16px;border-radius:20px}
  .luxia-input-send,.luxia-input-mic{width:44px;height:44px;font-size:1.05rem}
  .luxia-chip{font-size:.85rem;padding:8px 14px}
  .luxia-cta-btn{font-size:.85rem;padding:8px 16px}
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  .luxia-msg,.luxia-quick-chips,.luxia-cta-row{animation:none}
  .luxia-avatar-pulse,.luxia-typing span{animation:none;opacity:1}
}

/* Legacy placeholder modal styles (mantenute per fallback se JS non carica) */
.lux-luxia-modal-content{text-align:center}
.lux-luxia-hero{
  display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:14px;
  position:relative;
}
/* Audio waves: anelli dorati pulsanti che simulano onde sonore (riprende visual del poster Lucia) */
.lux-luxia-hero::before,
.lux-luxia-hero::after{
  content:"";
  position:absolute;
  top:50%;left:50%;
  width:96px;height:96px;
  margin:-48px 0 0 -48px;
  border-radius:50%;
  border:2px solid rgba(212,175,55,.45);
  pointer-events:none;
  animation:lux-luxia-waves 2.6s cubic-bezier(.4,0,.2,1) infinite;
  opacity:0;
  z-index:0;
}
.lux-luxia-hero::after{
  animation-delay:1.3s;
  border-color:rgba(232,201,104,.35);
}
@keyframes lux-luxia-waves{
  0%   {transform:scale(.85);opacity:.85;border-width:3px}
  60%  {opacity:.35;border-width:1.5px}
  100% {transform:scale(1.85);opacity:0;border-width:1px}
}
.lux-luxia-mascot{
  width:96px;height:96px;border-radius:50%;object-fit:contain;
  filter:drop-shadow(0 4px 14px rgba(212,175,55,.4));
  animation:lux-bob 3.6s ease-in-out infinite;
  position:relative;z-index:1;
}
/* Rispetta accessibility: se l'utente preferisce meno animazioni, ferma le onde */
@media (prefers-reduced-motion: reduce){
  .lux-luxia-hero::before,.lux-luxia-hero::after{animation:none;opacity:0}
}
.lux-luxia-badge-modal{
  display:inline-block;
  padding:4px 12px;
  border-radius:999px;
  background:linear-gradient(135deg,#d4af37,#e8c968);
  color:#0a0a0a;
  font-size:.62rem;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.lux-luxia-modal-content .lux-modal-title{justify-content:center}
.lux-luxia-modal-content .lux-modal-sub{text-align:center;font-size:.88rem}
.lux-luxia-modal-content .lux-modal-sub strong{color:var(--gold-dk)}
.lux-mbtn-luxia-secondary{background:#fff;color:var(--blue-dk);border-color:var(--blue-dk)}
.lux-mbtn-luxia-tertiary{background:transparent;color:#666;border-color:#ccc}
@media (min-width:1024px){
  .lux-luxia-mascot{width:120px;height:120px}
  .lux-luxia-hero::before,.lux-luxia-hero::after{
    width:120px;height:120px;margin:-60px 0 0 -60px;
  }
  .lux-luxia-modal-content .lux-modal-title{font-size:1.45rem}
  .lux-luxia-modal-content .lux-modal-sub{font-size:.95rem}
}

/* ═══ LuxIA Video Intro (first-time only) ═══ */
.luxia-video-backdrop{align-items:center;justify-content:center;padding:16px;z-index:9999;background:rgba(0,0,0,.85);backdrop-filter:blur(6px)}
.luxia-video-shell{position:relative;width:min(100%,920px);max-height:90vh;display:flex;flex-direction:column;align-items:center;gap:14px}
.luxia-video-el{width:100%;max-height:75vh;border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.6);background:#000;outline:1px solid rgba(212,175,55,.25)}
.luxia-video-close{position:absolute;top:-12px;right:-12px;width:38px;height:38px;border-radius:50%;border:none;background:#fff;color:#0a0a0a;font-size:1.5rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,.4);transition:transform .15s,background .15s;font-family:var(--fb,sans-serif);z-index:2}
.luxia-video-close:hover{transform:scale(1.08);background:#d4af37}
.luxia-video-continue{padding:11px 22px;border-radius:999px;border:1.5px solid rgba(212,175,55,.55);background:linear-gradient(135deg,#d4af37,#e8c968);color:#0a0a0a;font-weight:700;font-size:.95rem;letter-spacing:.02em;cursor:pointer;font-family:var(--fb,sans-serif);box-shadow:0 6px 18px rgba(212,175,55,.35);transition:transform .15s,box-shadow .15s}
.luxia-video-continue:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(212,175,55,.5)}
@media (max-width:520px){
  .luxia-video-close{top:-6px;right:-6px;width:34px;height:34px;font-size:1.3rem}
  .luxia-video-continue{font-size:.88rem;padding:10px 18px}
  .luxia-video-el{border-radius:10px}
}
