/* =========================================================
   ALQEST · COQUETTE — SHOWROOM (laptop + celular)
   ========================================================= */
:root{
  --ink:#2f241b;
  --ink-soft:#6f5e4e;
  --gold:#a8834f;
  --serif:"Cormorant Garamond","Didot","Bodoni 72",Georgia,serif;
  --sans:"Jost","Helvetica Neue",Arial,sans-serif;

  /* Medidas del escenario (laptop) */
  --nav-h:62px;
  --floor:71%;          /* dónde empieza el piso */
  --hero-cy:46%;        /* centro vertical de la bolsa */
  --hero-h:min(48vh,440px);
  --hero-maxw:min(40vw,520px);
  --card-w:180px;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow:hidden;background:#d9cab6}
body{font-family:var(--sans);color:var(--ink);-webkit-tap-highlight-color:transparent;
  overscroll-behavior:none;-webkit-user-select:none;user-select:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
[hidden]{display:none!important}

/* ================= FONDO SHOWROOM ================= */
.room{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.wall{position:absolute;inset:0;
  background:
    linear-gradient(180deg,#cbb9a2 0%,#d8c9b5 22%,#dfd2c1 45%,#d9cab6 66%,#d2c1aa 100%);
}
.wall-light{position:absolute;inset:0;
  background:
    radial-gradient(ellipse 55% 45% at 50% 30%,rgba(255,249,238,.55),rgba(255,249,238,0) 70%),
    radial-gradient(ellipse max(30vw,380px) 60% at 0% 60%,rgba(120,95,65,.12),rgba(120,95,65,0) 100%),
    radial-gradient(ellipse max(30vw,380px) 60% at 100% 60%,rgba(120,95,65,.12),rgba(120,95,65,0) 100%);
}
.skylight{position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:min(80vw,124vh);height:auto;display:block}
.sunbeam{position:absolute;left:50%;top:18%;width:min(60vw,820px);height:62%;transform:translateX(-50%);
  background:radial-gradient(ellipse 50% 70% at 50% 10%,rgba(255,250,240,.4),rgba(255,250,240,0) 100%);
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 30%);mask-image:linear-gradient(180deg,transparent,#000 30%)}
.floor{position:absolute;left:0;right:0;top:var(--floor);bottom:0;
  background:
    linear-gradient(180deg,rgba(90,70,45,.16) 0,rgba(90,70,45,0) 10px),
    linear-gradient(180deg,#c8bcab 0%,#d0c5b6 40%,#cbbfae 100%);
  border-top:1px solid rgba(255,255,255,.35);
}
.floor-sun{position:absolute;background:rgba(255,246,228,.55);filter:blur(10px)}
.floor-sun-1{left:4%;top:18%;width:34%;height:30%;transform:skewX(-38deg)}
.floor-sun-2{left:48%;top:30%;width:22%;height:22%;transform:skewX(-38deg);opacity:.6}
.bench{position:absolute;left:1.2vw;bottom:calc(100% - var(--floor) - 9%);width:min(17vw,240px)}
.olive{position:absolute;right:-2.5vw;bottom:calc(100% - var(--floor) - 12%);height:min(66vh,580px);width:auto}
.grain{position:absolute;inset:0;opacity:.35;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .55 0 0 0 0 .47 0 0 0 0 .38 0 0 0 .22 0'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)'/%3E%3C/svg%3E")}

/* ================= ENCABEZADO ================= */
.top{position:fixed;left:0;right:0;top:0;z-index:30;padding:calc(14px + env(safe-area-inset-top)) 20px 0;text-align:center;pointer-events:none}
.top>*{pointer-events:auto}
.logo{font-family:var(--serif);font-weight:500;font-size:clamp(44px,5.2vw,70px);line-height:.95;color:var(--ink);
  text-shadow:0 1px 18px rgba(255,255,255,.75)}
.sub{font-size:11px;letter-spacing:.55em;padding-left:.55em;color:var(--ink);margin-top:5px;text-shadow:0 0 10px rgba(255,255,255,.9)}
.view-title{display:inline-block;margin-top:10px;padding:5px 16px;border-radius:999px;
  font-family:var(--serif);font-style:italic;font-size:19px;color:var(--ink);
  background:rgba(255,255,255,.4);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,.7)}
.back-btn{position:absolute;left:16px;top:calc(16px + env(safe-area-inset-top));
  padding:10px 16px;border-radius:999px;font-size:14px;font-weight:500;
  background:rgba(255,255,255,.42);
  -webkit-backdrop-filter:blur(18px) saturate(170%);backdrop-filter:blur(18px) saturate(170%);
  border:1px solid rgba(255,255,255,.85);
  box-shadow:0 6px 20px rgba(80,60,35,.16), inset 0 1px 0 rgba(255,255,255,.9);
  transition:background .2s, transform .2s}
.back-btn:hover{background:rgba(255,255,255,.7);transform:translateY(-1px)}

/* ================= ESCENARIO / CARRUSEL ================= */
.stage{position:fixed;inset:0;z-index:10;touch-action:pan-y}

.hero-wrap{position:absolute;left:50%;top:var(--hero-cy);transform:translate(-50%,-50%);
  height:var(--hero-h);display:flex;align-items:center;justify-content:center;z-index:20;
  animation:bob 5s ease-in-out infinite;pointer-events:none}
.hero{display:block;height:100%;width:auto;max-width:var(--hero-maxw);object-fit:contain;
  filter:drop-shadow(0 22px 22px rgba(70,48,25,.22)) drop-shadow(0 4px 6px rgba(70,48,25,.12))}
@keyframes bob{0%,100%{translate:0 0}50%{translate:0 -12px}}

.hero-shadow{position:absolute;left:50%;top:calc(var(--floor) + 4%);transform:translate(-50%,-50%);
  width:min(30vw,360px);height:34px;border-radius:50%;z-index:5;
  background:radial-gradient(ellipse,rgba(70,48,25,.32),rgba(70,48,25,0) 70%);filter:blur(5px);
  animation:shadow 5s ease-in-out infinite}
@keyframes shadow{0%,100%{scale:1;opacity:1}50%{scale:.85;opacity:.7}}

.track{position:absolute;left:50%;top:var(--hero-cy);width:0;height:0}
.card{position:absolute;left:0;top:0;width:var(--card-w);
  padding:12px 12px 14px;border-radius:22px;text-align:left;
  background:linear-gradient(160deg,rgba(255,252,247,.55),rgba(244,236,226,.32));
  -webkit-backdrop-filter:blur(18px) saturate(150%);backdrop-filter:blur(18px) saturate(150%);
  border:1px solid rgba(255,255,255,.7);
  box-shadow:0 18px 40px rgba(70,50,28,.16), inset 0 1px 0 rgba(255,255,255,.9);
  transform:translate(-50%,-50%) translateX(var(--x,0px)) scale(var(--s,1));
  opacity:var(--o,1);z-index:var(--z,1);
  transition:transform .7s cubic-bezier(.22,.8,.2,1), opacity .5s ease, background .25s, box-shadow .25s;
  will-change:transform}
.card:hover{background:linear-gradient(160deg,rgba(255,253,250,.75),rgba(248,241,232,.5))}
.card.off{pointer-events:none}
.card-img{display:block;width:100%;height:calc(var(--card-w) * .78);object-fit:contain;
  filter:drop-shadow(0 8px 10px rgba(70,48,25,.18));transition:scale .35s}
.card:hover .card-img{scale:1.05}
.card-name{font-family:var(--serif);font-weight:600;font-size:16px;line-height:1.15;margin-top:10px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card-price{font-size:12.5px;color:var(--ink-soft);margin-top:2px}

.arrow{position:absolute;top:var(--hero-cy);left:50%;z-index:25;width:44px;height:44px;border-radius:50%;
  display:grid;place-items:center;
  transform:translate(-50%,-50%) translateX(var(--ax,0px));
  background:rgba(255,255,255,.5);
  -webkit-backdrop-filter:blur(16px) saturate(160%);backdrop-filter:blur(16px) saturate(160%);
  border:1px solid rgba(255,255,255,.85);
  box-shadow:0 8px 22px rgba(70,50,28,.16), inset 0 1px 0 #fff;transition:background .2s}
.arrow:hover{background:rgba(255,255,255,.8)}
.arrow svg{width:20px;height:20px}

.empty{position:absolute;left:0;right:0;top:45%;text-align:center;font-family:var(--serif);
  font-size:26px;font-style:italic;color:var(--ink)}

/* ================= BARRA DE PRODUCTO ================= */
.info-bar{position:fixed;z-index:30;left:50%;transform:translateX(-50%);
  bottom:calc(var(--nav-h) + 26px + env(safe-area-inset-bottom));
  width:min(760px,calc(100vw - 24px));
  display:flex;align-items:center;gap:14px;padding:9px 9px 9px 9px;border-radius:24px;
  background:rgba(255,253,249,.55);
  -webkit-backdrop-filter:blur(24px) saturate(170%);backdrop-filter:blur(24px) saturate(170%);
  border:1px solid rgba(255,255,255,.85);
  box-shadow:0 14px 36px rgba(70,50,28,.16), inset 0 1px 0 #fff}
.info-thumb{width:56px;height:56px;object-fit:contain;flex-shrink:0;border-radius:14px;
  background:rgba(255,255,255,.65);padding:4px}
.info-text{flex:1;min-width:0}
.info-name{font-family:var(--serif);font-weight:600;font-size:21px;line-height:1.1;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.info-meta{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink-soft);margin-top:2px;min-width:0}
.info-meta>span{white-space:nowrap}
.info-desc{overflow:hidden;text-overflow:ellipsis;min-width:0}
.info-price{font-size:13.5px;font-weight:500;margin-top:1px}
.sep{opacity:.5}
.dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 1.5px rgba(255,255,255,.95)}

.wa-btn{flex-shrink:0;display:inline-flex;align-items:center;gap:9px;
  padding:14px 20px;border-radius:16px;text-decoration:none;
  font-size:14.5px;font-weight:500;color:#fff;background:#211a15;
  box-shadow:0 8px 18px rgba(33,26,21,.28);transition:transform .2s, background .2s}
.wa-btn svg{width:20px;height:20px;color:#3ddc84;flex-shrink:0}
.wa-btn:hover{transform:translateY(-1px);background:#34291f}

/* ================= LIQUID GLASS NAV ================= */
.glass-nav{position:fixed;left:50%;bottom:calc(14px + env(safe-area-inset-bottom));transform:translateX(-50%);
  z-index:40;display:flex;gap:6px;padding:6px;border-radius:30px;
  width:max-content;max-width:calc(100vw - 16px);
  background:rgba(255,255,255,.26);
  -webkit-backdrop-filter:blur(28px) saturate(190%);backdrop-filter:blur(28px) saturate(190%);
  border:1px solid rgba(255,255,255,.75);
  box-shadow:0 14px 40px rgba(80,58,32,.2), inset 0 1px 0 rgba(255,255,255,.95), inset 0 -1px 0 rgba(255,255,255,.35)}
.glass-btn{display:flex;align-items:center;justify-content:center;gap:7px;
  height:calc(var(--nav-h) - 14px);padding:0 20px;border-radius:24px;font-size:14.5px;font-weight:500;
  background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.5);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7);
  transition:background .25s, transform .2s, box-shadow .25s, border-color .25s}
.glass-btn:hover{background:rgba(255,255,255,.48);transform:translateY(-1px)}
.glass-btn.active{background:rgba(255,255,255,.92);border:1.5px solid #fff;
  box-shadow:0 6px 18px rgba(80,58,32,.2), inset 0 1px 0 #fff, 0 0 0 1px rgba(168,131,79,.35)}
.c{width:10px;height:10px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 1.5px rgba(255,255,255,.95)}
.c-rojas,.dot.rojas{background:#b3202a}
.c-negras,.dot.negras{background:#1c1a1a}
.c-blancas,.dot.blancas{background:#ece1d2}
.c-colores,.dot.colores{background:conic-gradient(#1f2f57,#2c4a7a,#a8692f,#1f2f57)}
.c-cafes,.dot.cafes{background:#8a5a32}

/* ================= LAPTOP BAJITA ================= */
@media (min-width:761px) and (max-height:760px){
  :root{--hero-h:min(44vh,400px);--card-w:160px;--hero-cy:47%}
  .logo{font-size:48px}
  .info-thumb{width:46px;height:46px}
}

/* ================= CELULAR ================= */
@media (max-width:760px){
  :root{
    --nav-h:58px;
    --floor:63%;
    --hero-cy:42%;
    --hero-h:min(29vh,240px);   /* bolsa más pequeña en celular */
    --hero-maxw:56vw;
    --card-w:112px;
  }
  .skylight{width:118vw}
  .top{padding-top:calc(8px + env(safe-area-inset-top))}
  .sunbeam{width:90vw}
  .bench{width:34vw;left:-8vw}
  .olive{height:42vh;right:-17vw}
  .logo{font-size:44px}
  .sub{font-size:10px}
  .back-btn{left:10px;padding:8px 12px;font-size:12.5px}
  .view-title{font-size:16px;margin-top:8px}
  .hero-shadow{width:52vw;height:26px}
  .card{padding:8px 8px 10px;border-radius:18px}
  .card-name{font-size:13.5px;margin-top:6px}
  .card-price{font-size:11px}
  .arrow{width:34px;height:34px;top:calc(var(--floor) + 4%)}
  .arrow svg{width:16px;height:16px}

  .info-bar{gap:10px;padding:8px;border-radius:20px;bottom:calc(var(--nav-h) + 20px + env(safe-area-inset-bottom))}
  .info-thumb{width:46px;height:46px;border-radius:12px}
  .info-name{font-size:18px}
  .info-meta .sep,.info-desc{display:none}
  .info-price{font-size:12.5px}
  .wa-btn{flex-direction:column;gap:3px;padding:8px 12px;border-radius:14px;font-size:11.5px;line-height:1.1;text-align:center}
  .wa-btn span{max-width:78px}

  .glass-nav{gap:3px;padding:5px;border-radius:26px;width:calc(100vw - 16px)}
  .glass-btn{flex:1;flex-direction:column;gap:4px;padding:0 2px;font-size:11.5px;border-radius:21px}
}

/* Celular acostado / pantallas muy bajitas */
@media (max-height:520px) and (min-width:500px){
  :root{--hero-h:42vh;--hero-cy:44%;--card-w:120px;--nav-h:50px}
  .logo{font-size:30px}.sub{font-size:8px;margin-top:2px}
  .info-desc,.info-meta .sep{display:none}
  .info-bar{padding:6px;width:min(560px,70vw)}
  .info-thumb{width:36px;height:36px}
  .info-name{font-size:16px}
  .wa-btn{padding:9px 14px;font-size:13px}
  .glass-btn{padding:0 12px;font-size:13px}
}

@media (prefers-reduced-motion:reduce){
  .hero-wrap,.hero-shadow{animation:none}
  .card{transition:opacity .3s}
}
