/* ======================================================================
   Tienda de muebles de Cubupi y su visor 3D.
   Mismo aspecto que el resto del juego: bordes gruesos, esquinas redondas
   y letras bien marcadas. Solo toca la tienda; nada de aquí se escapa
   a otras partes de la pantalla.
   ====================================================================== */
/* el ancho lo pone .pop.panel */
/* La columna de categorías necesita sitio: con la pastilla PRONTO al lado, en 155px
   no cabía «Mascotas» ni «Vehículos» y salían cortados. */
#pop-shop .shop-rail{flex-basis:208px}

/* ---- barra de tipos (Todo, Sillas, Sofás…) ---- */
#pop-shop .pgrupo{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}
#pop-shop .pgrupo button{flex:0 0 auto;padding:8px 13px;border-radius:14px;font-size:12px;font-weight:900}

/* ---- cuántos objetos hay ---- */
.furn-count{font-size:12px;font-weight:800;color:var(--tx3);margin:6px 0 12px;line-height:1.5}

/* ---- rejilla de fichas ---- */
#pop-shop .furn-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
#pop-shop .furn-grid .pcard{display:flex;flex-direction:column;align-items:stretch;text-align:left;
  padding:10px 10px 9px;background:#fff;border:3px solid #20242a;border-radius:16px;box-shadow:0 3px 0 #20242a}
#pop-shop .furn-grid .pcard.mine{border-color:#3dbb4a;box-shadow:0 3px 0 #3dbb4a}
#pop-shop .furn-grid .pimg{height:132px;background:linear-gradient(180deg,#f2f6fb,#e2e9f2);
  border:3px solid #20242a;border-radius:13px;margin-bottom:9px;padding:5px;
  display:flex;align-items:center;justify-content:center;overflow:hidden}
#pop-shop .furn-grid .pball{width:100%;height:100%;max-width:none;margin:0;object-fit:contain;image-rendering:auto}
#pop-shop .furn-grid b{font-size:14.5px;line-height:1.25;color:#20242a;margin:0;min-height:0;justify-content:flex-start}
#pop-shop .furn-grid .tag{top:-9px;right:-6px;left:auto;z-index:2}
.furn-size{display:block;font-size:11px;font-weight:800;color:var(--tx3);margin-top:4px}
.furn-desc{font-size:11.5px!important;line-height:1.45!important;color:var(--tx2)!important;font-weight:600!important;
  margin:7px 0 9px!important;flex:1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
#pop-shop .furn-grid .furn-view{background:var(--tile);color:#20242a;margin:7px 0 0}
#pop-shop .furn-grid .price{justify-content:flex-start;margin:0}

/* ---- visor 3D del mueble ---- */
.furniture-dialog{position:fixed;inset:0;margin:auto;padding:0;width:min(840px,94vw);max-height:90vh;overflow:hidden;
  border:5px solid var(--ink);border-radius:26px;background:var(--paper);color:var(--tx);
  box-shadow:0 10px 0 var(--ink),0 24px 60px rgba(10,14,20,.45);font-family:var(--f)}
.furniture-dialog::backdrop{background:rgba(12,16,22,.62)}
.furniture-dialog[open]{display:grid;grid-template-columns:1.1fr 1fr}
.furniture-close{position:absolute;right:12px;top:12px;z-index:3;width:52px;height:52px;padding:0;
  border:0;background:url(img/ui/x.png?v=3) center/contain no-repeat;font-size:0;cursor:pointer;
  filter:drop-shadow(0 4px 0 rgba(0,0,0,.35))}
.furniture-close:active{transform:translateY(3px)}
.furniture-stage{height:412px;background:linear-gradient(180deg,#f2f6fb,#dfe7f0);cursor:grab;touch-action:none;
  border-right:5px solid var(--ink)}
.furniture-stage:active{cursor:grabbing}
.furniture-info{padding:52px 22px 22px;display:flex;flex-direction:column;justify-content:center;min-width:0}
.furniture-eyebrow{font-size:10px;letter-spacing:1.6px;color:var(--tx3);font-weight:900;text-transform:uppercase}
.furniture-info h2{font-size:26px;line-height:1.1;margin:8px 0 10px;font-weight:900;text-transform:uppercase;color:var(--tx)}
.furniture-description{font-size:13px;line-height:1.55;font-weight:600;color:var(--tx2);margin:0}
.furniture-facts{font-size:11.5px;font-weight:800;color:var(--tx3);line-height:1.5;
  border-top:3px solid var(--tile2);padding-top:12px;margin:12px 0 12px}
.furniture-controls{display:flex;gap:6px;flex-wrap:wrap}
.furniture-controls button{border:3px solid var(--ink);background:#fff;color:var(--tx);border-radius:12px;
  padding:8px 12px;font-family:var(--f);font-weight:900;font-size:12px;cursor:pointer;box-shadow:0 3px 0 var(--ink)}
.furniture-controls button:active{transform:translateY(3px);box-shadow:0 0 0 var(--ink)}
.furniture-info small{font-size:11px;font-weight:700;color:var(--tx3);margin-top:12px;line-height:1.5}
.furniture-dialog :focus-visible{outline:3px solid var(--green2);outline-offset:3px}

/* ---- pantallas pequeñas ---- */
@media(max-width:650px){
  #pop-shop .furn-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  #pop-shop .furn-grid .pimg{height:118px}
  .furniture-dialog[open]{display:block;overflow:auto}
  .furniture-stage{height:280px;border-right:0;border-bottom:5px solid var(--ink)}
  .furniture-info{padding:18px 18px 20px}
  .furniture-info h2{font-size:23px}
}
@media(max-width:700px){
  #pop-shop .shop-rail{flex:0 0 auto;height:auto;max-height:none;gap:6px}
  #pop-shop .shop-rail button{flex:0 0 auto;height:42px;min-height:0;min-width:96px;padding:8px;white-space:nowrap}
  #pop-shop .shop-main{max-height:calc(100dvh - 310px)}
  #pop-shop .pgrupo{flex-wrap:nowrap;overflow-x:auto;padding-bottom:5px;margin-bottom:11px;scrollbar-width:thin}
  #pop-shop .pgrupo button{flex:0 0 auto;white-space:nowrap;font-size:11px;padding:8px 11px}
  #pop-shop .shop-tools{gap:5px}
  #pop-shop .shop-tools input{min-width:0}
  #pop-shop .shop-head{margin-bottom:10px}
  #pop-shop .shop-head p{font-size:11px}
  #pop-shop .furn-grid .pcard{padding:8px}
  #pop-shop .furn-grid .pimg{height:112px}
  #pop-shop .furn-grid b{font-size:12.5px}
  #pop-shop .furn-desc{font-size:11px!important}
}

/* ---- pie de la ficha: precio a la izquierda, cantidad a la derecha ---- */
.pfoot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:7px}
#pop-shop .pcard .price{display:inline-flex;align-items:baseline;gap:5px;margin:0;font-weight:900;color:#1f8b5f;line-height:1}
#pop-shop .pcard .price img{width:19px;height:19px;align-self:center;flex-shrink:0}
#pop-shop .pcard .price b{font-size:19px;letter-spacing:-.01em}
#pop-shop .pcard .price small{font-size:10px;font-weight:800;color:var(--tx3);letter-spacing:.02em}
#pop-shop .pcard .price.no{color:#c2402c}
#pop-shop .pcard .price.no small{color:#c2402c;opacity:.7}
/* selector de cuántos te llevas */
.qty{display:inline-flex;align-items:center;background:#fff;border:3px solid var(--ink);border-radius:12px;
  box-shadow:0 3px 0 var(--ink);overflow:hidden;flex-shrink:0;height:34px}
.qty button{width:30px;height:100%;padding:0;margin:0;border:0;border-radius:0;box-shadow:none;background:var(--tile);
  font-family:var(--f);font-weight:900;font-size:18px;line-height:1;color:var(--ink);cursor:pointer}
.qty button:hover{background:var(--green3)}
.qty button:active{background:var(--green)}
.qty b{min-width:30px;text-align:center;font-size:15px;font-weight:900;color:var(--ink);
  border-left:3px solid var(--ink);border-right:3px solid var(--ink);line-height:34px}
/* el botón de comprar, ancho y claro */
#pop-shop .pcard button.buy{width:100%;margin-top:8px;padding:9px 6px;font-size:12.5px;letter-spacing:.02em;
  background:var(--green);color:var(--ink);border:3px solid var(--ink);border-radius:12px;box-shadow:0 3px 0 var(--ink)}
#pop-shop .pcard button.buy:active:not(:disabled){transform:translateY(3px);box-shadow:0 0 0 var(--ink)}
#pop-shop .pcard button.buy:disabled{background:var(--tile2);color:var(--tx3);opacity:1}
/* invitación a elegir un tipo */
.shop-elige{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;
  padding:34px 20px;color:var(--tx3)}
.shop-elige img{width:74px;height:74px;object-fit:contain;image-rendering:auto;opacity:.85;margin-bottom:4px}
.shop-elige b{font-size:17px;font-weight:900;color:var(--tx);text-transform:uppercase}
.shop-elige span{font-size:12.5px;font-weight:700;max-width:280px;line-height:1.45}
/* los dibujos de las categorías, suaves y grandes */
#pop-shop .shop-rail button{gap:9px;padding:9px 10px;font-size:12.5px;min-height:48px}
/* el nombre nunca se parte por la mitad de la palabra: o cabe entero o baja de línea */
#pop-shop .shop-rail button span{white-space:normal;overflow:visible;text-overflow:clip;
  overflow-wrap:normal;word-break:keep-all;line-height:1.15}
#pop-shop .shop-rail button img{width:27px;height:27px;flex:0 0 27px;image-rendering:auto}
@media(max-width:700px){
  .pfoot{gap:6px}
  #pop-shop .pcard .price b{font-size:17px}
  .qty{height:32px}.qty button{width:27px}.qty b{min-width:26px;line-height:32px;font-size:14px}
  #pop-shop .pcard button.buy{font-size:11.5px;padding:8px 4px}
}

.furn-exclusive{display:block;align-self:flex-start;background:#f4e5b6;color:#70541e;border:1px solid #e4d095;border-radius:6px;padding:5px 7px;font-size:10px;font-weight:800;letter-spacing:.6px;margin-bottom:5px}.furniture-dialog.is-exclusive .furniture-eyebrow{color:#8e6c2e}.furniture-dialog.is-exclusive .furniture-stage{background:#f4f0e8}
