/* ============================================================
   LAURA — widget de chat de Can Casellas
   Disparador integrado en el header (pastilla, arriba a la derecha);
   .lw-btn--float es el fallback flotante si no hay header.
   ============================================================ */
.nav-links li.nav-chat{display:flex;align-items:center}
.lw-btn{position:relative;display:inline-flex;align-items:center;gap:7px;
  background:rgba(251,249,243,.14);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  border:1px solid rgba(251,249,243,.28);border-radius:999px;padding:8px 15px 8px 12px;
  cursor:pointer;color:#fbf9f3;font-family:"Hanken Grotesk",sans-serif;
  transition:background .3s,border-color .3s,color .3s,transform .3s cubic-bezier(.16,1,.3,1)}
.lw-btn:hover{transform:translateY(-1px);border-color:#b08d4a}
.lw-btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.lw-btn .lw-btn-txt{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;line-height:1}
/* el nav con scroll o sólido pasa a tinta oscura, como el resto del header */
.nav.scrolled .lw-btn,.nav--solid .lw-btn{color:#26221b;background:rgba(38,34,27,.05);
  border-color:rgba(176,141,74,.35)}
.lw-btn .lw-dot{position:absolute;top:-3px;right:-2px;width:10px;height:10px;border-radius:50%;
  background:#d97b4a;border:2px solid #f6f2e9;animation:lwpulse 2.4s infinite}
@keyframes lwpulse{0%,100%{transform:scale(1)}50%{transform:scale(1.25)}}
/* fallback flotante (páginas sin header) */
.lw-btn--float{position:fixed;right:18px;bottom:18px;z-index:200;width:58px;height:58px;
  border-radius:50%;background:linear-gradient(150deg,#4a6b54,#24382c);border:none;padding:0;
  box-shadow:0 12px 32px rgba(36,56,44,.45);display:flex;align-items:center;justify-content:center;gap:0}
.lw-btn--float svg{width:26px;height:26px;stroke:#fff}
.lw-btn--float .lw-btn-txt{display:none}
.lw-btn--float .lw-dot{top:4px;right:4px;width:13px;height:13px;border-width:2.5px}
.lw-btn--float:hover{transform:scale(1.06)}
/* pista: sale bajo el header, apuntando a la pastilla */
.lw-hint{position:fixed;right:16px;top:calc(env(safe-area-inset-top) + 62px);z-index:205;
  background:#fff;color:#26221b;
  font-family:"Hanken Grotesk",sans-serif;font-size:13px;padding:10px 16px;border-radius:3px 14px 14px 14px;
  box-shadow:0 10px 30px rgba(38,34,27,.18);max-width:210px;line-height:1.45;
  opacity:0;transform:translateY(-8px);transition:.5s cubic-bezier(.16,1,.3,1);pointer-events:none}
.lw-hint.on{opacity:1;transform:none}

/* panel: se despliega desde arriba a la derecha, bajo el header */
.lw-panel{position:fixed;right:18px;top:calc(env(safe-area-inset-top) + 76px);z-index:210;
  width:min(392px,calc(100vw - 24px));
  height:min(620px,calc(100dvh - 110px));border-radius:20px;overflow:hidden;display:none;flex-direction:column;
  background:#efe9dd;box-shadow:0 30px 80px rgba(23,35,28,.4);
  font-family:"Hanken Grotesk",sans-serif}
.lw-panel.open{display:flex;animation:lwin .35s cubic-bezier(.16,1,.3,1)}
@keyframes lwin{from{opacity:0;transform:translateY(-14px) scale(.97)}to{opacity:1;transform:none}}
/* móvil: a lo ancho, dejando libres la tabbar y el header */
@media (max-width:1080px){
  .lw-panel{left:10px;right:10px;width:auto;top:calc(env(safe-area-inset-top) + 66px);
    height:min(600px,calc(100dvh - 208px))}
  .lw-hint{top:calc(env(safe-area-inset-top) + 58px)}
}

.lw-top{background:#24382c;color:#fbf9f3;padding:13px 16px;display:flex;align-items:center;gap:11px;flex:none}
.lw-ava{width:40px;height:40px;border-radius:50%;background:linear-gradient(150deg,#b08d4a,#8a6c36);
  display:flex;align-items:center;justify-content:center;font-weight:600;font-size:17px;flex:none;
  font-family:"Fraunces",serif}
.lw-top .lw-nm{font-weight:500;font-size:15px}
.lw-top .lw-st{font-size:11.5px;opacity:.75;display:flex;align-items:center;gap:5px}
.lw-top .lw-st::before{content:'';width:7px;height:7px;border-radius:50%;background:#a9d9a4}
.lw-close{margin-left:auto;background:rgba(251,249,243,.12);border:none;color:#fbf9f3;width:34px;height:34px;
  border-radius:50%;cursor:pointer;font-size:15px;line-height:1}

.lw-chat{flex:1;overflow-y:auto;padding:16px 14px;scroll-behavior:smooth}
.lw-msg{max-width:82%;padding:9px 13px;border-radius:14px;margin-bottom:9px;font-size:14px;line-height:1.5;
  box-shadow:0 1px 2px rgba(0,0,0,.07);opacity:0;transform:translateY(6px);animation:lwpop .3s forwards;
  overflow-wrap:break-word}
@keyframes lwpop{to{opacity:1;transform:none}}
.lw-in{background:#fff;border-top-left-radius:4px;color:#26221b}
.lw-out{background:#dcebd2;margin-left:auto;border-top-right-radius:4px;color:#1f2e24}
.lw-sys{background:transparent;box-shadow:none;color:#8b8272;font-size:11.5px;text-align:center;
  max-width:100%;margin:4px auto 10px}
.lw-video{padding:0;overflow:hidden;max-width:88%;background:#fff;border-top-left-radius:4px}
.lw-video img{width:100%;display:block;aspect-ratio:16/10;object-fit:cover}
.lw-video .lw-vcap{font-size:12px;color:#8b8272;padding:8px 12px;display:flex;align-items:center;gap:7px}
.lw-typing{display:inline-flex;gap:4px;padding:12px 14px;background:#fff;border-radius:14px;
  border-top-left-radius:4px;margin-bottom:9px;box-shadow:0 1px 2px rgba(0,0,0,.07)}
.lw-typing i{width:7px;height:7px;border-radius:50%;background:#9db8a6;animation:lwty 1.2s infinite}
.lw-typing i:nth-child(2){animation-delay:.15s}.lw-typing i:nth-child(3){animation-delay:.3s}
@keyframes lwty{0%,60%,100%{transform:none;opacity:.5}30%{transform:translateY(-4px);opacity:1}}

.lw-chips{display:flex;flex-wrap:wrap;gap:7px;margin:2px 0 12px}
.lw-chip{background:#fff;border:1px solid #cfd9cd;color:#24382c;font-size:12.5px;font-weight:500;
  border-radius:100px;padding:8px 15px;cursor:pointer;font-family:inherit;transition:.2s}
.lw-chip:hover{background:#24382c;color:#fff;border-color:#24382c}

.lw-slots{background:#fff;border-radius:14px;padding:14px;margin-bottom:10px;max-width:92%;
  box-shadow:0 1px 2px rgba(0,0,0,.07)}
.lw-slots h4{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#4a6b54;margin:0 0 10px;font-weight:600}
.lw-slots .lw-days{display:flex;gap:6px;overflow-x:auto;padding-bottom:6px}
.lw-slots .lw-day{flex:none;border:1px solid #cfd9cd;border-radius:12px;padding:7px 13px;font-size:12.5px;
  cursor:pointer;background:#fff;font-family:inherit;color:#26221b}
.lw-slots .lw-day.on{background:#24382c;color:#fff;border-color:#24382c}
.lw-slots .lw-hours{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.lw-slots .lw-hour{border:1px solid #cfd9cd;border-radius:100px;padding:6px 14px;font-size:12.5px;
  cursor:pointer;background:#fff;font-family:inherit;color:#26221b}
.lw-slots .lw-hour.on{background:#b08d4a;color:#fff;border-color:#b08d4a}
.lw-slots input{width:100%;border:1px solid #cfd9cd;border-radius:10px;padding:9px 12px;font-size:13.5px;
  margin-top:8px;font-family:inherit;box-sizing:border-box}
.lw-slots input:focus{outline:none;border-color:#4a6b54}
.lw-slots .lw-book{width:100%;margin-top:10px;background:#24382c;color:#fff;border:none;border-radius:100px;
  padding:11px;font-size:13px;font-weight:500;letter-spacing:.08em;cursor:pointer;font-family:inherit}
.lw-slots .lw-book:disabled{opacity:.5;cursor:default}
.lw-slots .lw-err{color:#a33;font-size:12px;margin-top:6px}

.lw-input{display:flex;gap:8px;padding:11px 12px;background:#f6f2e9;border-top:1px solid rgba(38,34,27,.08);flex:none}
.lw-input input{flex:1;border:1px solid rgba(38,34,27,.14);border-radius:100px;padding:11px 17px;
  font-size:14px;font-family:inherit;background:#fff}
.lw-input input:focus{outline:none;border-color:#4a6b54}
.lw-send{width:44px;height:44px;border-radius:50%;background:#24382c;border:none;cursor:pointer;flex:none;
  display:flex;align-items:center;justify-content:center}
.lw-send svg{width:19px;height:19px;stroke:#fff;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.lw-send:disabled{opacity:.45}
.lw-foot{font-size:10px;color:#8b8272;text-align:center;padding:0 0 8px;background:#f6f2e9}

@media (prefers-reduced-motion:reduce){
  .lw-btn .lw-dot,.lw-typing i{animation:none}
  .lw-panel.open{animation:none}
  .lw-msg{animation-duration:.01s}
}
