/* ===========================================================
   sitio.css — lo COMPARTIDO por Inicio, Catálogo y Vitrina:
   fuente, colores, cabecera, menú del celular, buscador, pedido,
   tarjeta de modelo, botones, títulos de sección y pie.

   Proporciones tomadas de bata.com.bo y calzadosclaudina.com:
     Bata      -> tarjeta 300x456, imagen cuadrada, radio 27px,
                  sombra suave, precio 16px rojo, marca 10px mayúsculas
     Claudina  -> barra lateral con categorías y contadores,
                  nombre 14px/600, precio 18px, fondo blanco
   Lo propio de cada página va en inicio.css / catalogo.css / vitrina.css.
   =========================================================== */
@font-face{
  font-family:'Montserrat';
  font-style:normal;
  font-weight:100 900;            /* archivo variable, 37 KB, local */
  font-display:swap;
  src:url('../FUENTES/montserrat.woff2') format('woff2');
}

:root{
  --papel:#ffffff;
  --plato:#f4f2ef;          /* fondo de la foto en la tarjeta */
  --crema:#f7f5f2;          /* fondo de las bandas de sección */
  --tinta:#121212;
  --suave:#6c6c6c;
  --tenue:#9b9b9b;
  --linea:#e8e5e1;
  --rojo:#e11b1b;           /* Bata usa rojo puro para el precio */
  --verde:#25d366;          /* WhatsApp */
  --tarjeta:#ffffff;
  /* Fondo FIJO para las fotos blanqueadas de VITRINA/ (van con
     mix-blend-mode:multiply). NO cambia con el tema: multiply sobre un fondo
     oscuro oscurece la bota entera y una negra desaparece. */
  --estudio:#f7f6f4;
  --tinta-estudio:#121212;
  --radio:20px;
  --sombra:0 1px 2px rgba(0,0,0,.04), 0 6px 18px rgba(0,0,0,.06);
  --sombra-alta:0 10px 34px rgba(0,0,0,.13), 0 2px 6px rgba(0,0,0,.05);
  --curva:cubic-bezier(.22,.61,.36,1);
  --ancho:1240px;
  --cab:66px;               /* alto de la cabecera */
  --gutter:24px;
}
:root[data-tema="oscuro"]{
  --papel:#0f0f0f; --plato:#1a1a1a; --crema:#141414; --tinta:#f2f0ed;
  --suave:#a3a09b; --tenue:#6f6c67; --linea:#272727; --rojo:#ff5a5a;
  --tarjeta:#161616;
  --sombra:0 1px 2px rgba(0,0,0,.5), 0 6px 20px rgba(0,0,0,.4);
  --sombra-alta:0 14px 40px rgba(0,0,0,.65), 0 2px 8px rgba(0,0,0,.5);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scrollbar-gutter:stable;
  scroll-padding-top:calc(var(--cab) + 12px)}
body{margin:0;background:var(--papel);color:var(--tinta);
  font:400 14px/1.5 'Montserrat',-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
button,select,input{font:inherit;color:inherit}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
::selection{background:var(--tinta);color:var(--papel)}
:focus-visible{outline:2px solid var(--rojo);outline-offset:3px}
[hidden]{display:none !important}
.envol{max-width:var(--ancho);margin:0 auto;padding:0 var(--gutter)}
.oculto-lector{position:absolute;width:1px;height:1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap}
/* abrir un panel (menú, pedido, filtros) traba el scroll de atrás */
html.trabado,html.trabado body{overflow:hidden}

/* ---------- aviso demo ---------- */
.aviso{background:#111;color:#fff;font-size:11px;letter-spacing:.09em;
  text-transform:uppercase;font-weight:600;text-align:center;padding:9px 16px;
  line-height:1.4}
.aviso b{color:#ffd24a}

/* ---------- cabecera ---------- */
.cab{position:sticky;top:0;z-index:50;background:var(--papel);
  border-bottom:1px solid var(--linea);transition:box-shadow .3s var(--curva)}
.cab.pegado{box-shadow:0 4px 20px rgba(0,0,0,.07)}
.cab.buscando{z-index:61}           /* por encima del velo mientras se busca */
.cab-fila{display:flex;align-items:center;gap:30px;height:var(--cab)}
.marca{font-size:19px;font-weight:800;letter-spacing:-.03em;white-space:nowrap}
.marca span{color:var(--rojo)}
.nav-principal{display:flex;gap:26px;font-size:11.5px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--suave)}
.nav-principal a{position:relative;padding:8px 0;transition:color .18s}
.nav-principal a::after{content:"";position:absolute;left:0;right:0;bottom:2px;
  height:2px;background:var(--rojo);transform:scaleX(0);transform-origin:left;
  transition:transform .25s var(--curva)}
.nav-principal a:hover{color:var(--tinta)}
.nav-principal a:hover::after{transform:scaleX(1)}
.nav-principal a[aria-current="page"]{color:var(--tinta)}
.nav-principal a[aria-current="page"]::after{transform:scaleX(1)}
.nav-principal a.nav-of{color:var(--rojo)}
.acciones{margin-left:auto;display:flex;align-items:center;gap:8px}
.icono{width:40px;height:40px;border-radius:50%;border:1px solid var(--linea);
  background:var(--tarjeta);display:grid;place-items:center;
  transition:border-color .18s,transform .18s var(--curva);color:var(--tinta);
  padding:0;flex:0 0 auto}
.icono:hover{border-color:var(--tinta);transform:translateY(-1px)}
.icono svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round}
.hamb{display:none}
.btn-pedido{position:relative}
.globo{position:absolute;top:-4px;right:-4px;min-width:19px;height:19px;
  border-radius:999px;background:var(--rojo);color:#fff;font-size:10px;
  font-weight:700;display:grid;place-items:center;padding:0 5px;
  transform:scale(0);transition:transform .28s var(--curva);
  font-variant-numeric:tabular-nums;pointer-events:none}
.btn-pedido.lleno .globo{transform:scale(1)}
@keyframes latido{0%,100%{transform:scale(1)}45%{transform:scale(1.35)}}
.btn-pedido.late .globo{animation:latido .45s var(--curva)}

/* ---------- buscador de la cabecera ---------- */
.panel-buscar{position:absolute;left:0;right:0;top:100%;background:var(--papel);
  border-bottom:1px solid var(--linea);box-shadow:0 18px 40px rgba(0,0,0,.14);
  padding:18px 0 22px;opacity:0;transform:translateY(-8px);pointer-events:none;
  visibility:hidden;transition:opacity .22s var(--curva),transform .22s var(--curva),
  visibility 0s linear .22s}
.panel-buscar.on{opacity:1;transform:none;pointer-events:auto;visibility:visible;
  transition:opacity .22s var(--curva),transform .22s var(--curva)}
.form-buscar{display:flex;align-items:center;gap:10px;border:1px solid var(--tinta);
  border-radius:999px;padding:0 8px 0 18px;background:var(--papel)}
.form-buscar svg{width:17px;height:17px;flex:0 0 auto;fill:none;stroke:var(--suave);
  stroke-width:2;stroke-linecap:round}
.form-buscar input{flex:1;min-width:0;border:none;outline:none;background:none;
  padding:14px 4px;font-size:15px}
.form-buscar input::-webkit-search-cancel-button{display:none}
.bus-cerrar{width:36px;height:36px;border-radius:50%;border:none;background:var(--plato);
  font-size:13px;color:var(--suave);flex:0 0 auto}
.bus-res{margin-top:14px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px}
.bus-item{display:grid;grid-template-columns:54px 1fr;gap:12px;align-items:center;
  padding:8px;border-radius:14px;transition:background .15s;min-width:0}
.bus-item:hover,.bus-item:focus-visible{background:var(--plato)}
.bus-item img{width:54px;height:54px;border-radius:10px;object-fit:cover;
  background:var(--plato)}
.bus-item div{min-width:0}
.bus-item b{display:block;font-size:13px;font-weight:600;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.bus-item span{display:flex;align-items:center;gap:6px;font-size:11.5px;
  color:var(--suave)}
.bus-item .rojo{color:var(--rojo);font-weight:700}
.bus-todos{grid-column:1/-1;margin-top:6px;justify-self:start;font-size:11px;
  font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:10px 4px;
  border-bottom:2px solid var(--rojo)}
.bus-nada{grid-column:1/-1;color:var(--suave);font-size:13px;padding:8px 4px}
.bus-sugiere{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap;align-items:center;
  font-size:11px;color:var(--tenue);letter-spacing:.06em;text-transform:uppercase}
.bus-sugiere button{border:1px solid var(--linea);background:none;border-radius:999px;
  padding:7px 13px;font-size:12px;text-transform:none;letter-spacing:0;
  color:var(--tinta)}
.bus-sugiere button:hover{border-color:var(--tinta)}

/* ---------- velo y paneles laterales ---------- */
.velo{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:59;opacity:0;
  pointer-events:none;transition:opacity .3s}
.velo.on{opacity:1;pointer-events:auto}

/* menú del celular: SOLO navegación. Los filtros viven en el catálogo. */
.menu-movil{position:fixed;top:0;left:0;bottom:0;width:340px;max-width:88vw;
  z-index:62;background:var(--papel);display:flex;flex-direction:column;
  transform:translateX(-102%);transition:transform .34s var(--curva),visibility 0s linear .34s;
  box-shadow:0 0 40px rgba(0,0,0,.24);visibility:hidden}
.menu-movil.on{transform:none;visibility:visible;transition:transform .34s var(--curva)}
.mm-cab{display:flex;align-items:center;justify-content:space-between;
  padding:12px 14px 12px 22px;border-bottom:1px solid var(--linea)}
.mm-nav{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:10px 0}
.mm-nav a{display:flex;align-items:center;gap:12px;padding:16px 22px;
  font-size:17px;font-weight:700;letter-spacing:-.01em;
  border-left:3px solid transparent;transition:background .15s}
.mm-nav a:hover{background:var(--plato)}
.mm-nav a[aria-current="page"]{border-left-color:var(--rojo);background:var(--crema)}
.mm-nav a small{display:block;font-size:11.5px;font-weight:500;color:var(--tenue);
  letter-spacing:0;margin-top:2px}
.mm-n{margin-left:auto;font-style:normal;font-size:11px;font-weight:700;
  color:var(--tenue);font-variant-numeric:tabular-nums}
.mm-n.rojo{background:var(--rojo);color:#fff;border-radius:999px;padding:3px 9px}
.mm-pie{border-top:1px solid var(--linea);padding:12px 16px 22px;display:grid;gap:8px}
.mm-fila{display:flex;align-items:center;gap:10px;width:100%;border:1px solid var(--linea);
  background:none;border-radius:14px;padding:14px 16px;font-size:13px;
  font-weight:600;text-align:left}
.mm-fila b{margin-left:auto;font-weight:700;font-size:12px;color:var(--suave);
  font-variant-numeric:tabular-nums}
.mm-fila svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round}

/* ---------- pedido (carrito) ---------- */
.carrito{position:fixed;top:0;right:0;bottom:0;width:410px;max-width:92vw;z-index:65;
  background:var(--papel);box-shadow:-12px 0 50px rgba(0,0,0,.28);
  transform:translateX(103%);transition:transform .34s var(--curva),visibility 0s linear .34s;
  display:flex;flex-direction:column;visibility:hidden}
.carrito.on{transform:none;visibility:visible;transition:transform .34s var(--curva)}
.carrito-cab{display:flex;align-items:center;gap:10px;padding:14px 16px 14px 22px;
  border-bottom:1px solid var(--linea)}
.carrito-cab h2{margin:0;font-size:12px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase}
.carrito-cab .cnt{font-size:11px;color:var(--tenue);font-variant-numeric:tabular-nums}
.carrito-cab .icono{margin-left:auto}
.carrito-lista{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:4px 22px}
.carrito .linea{display:grid;grid-template-columns:58px 1fr;gap:12px;padding:15px 0;
  border-bottom:1px solid var(--linea)}
.carrito .linea:last-child{border-bottom:none}
.carrito .linea>img{width:58px;height:58px;object-fit:cover;border-radius:10px;
  background:var(--plato)}
.carrito .nom2{font-size:13px;font-weight:600;line-height:1.3}
.carrito .nom2 em{font-style:normal;color:var(--rojo);font-size:10px;font-weight:700}
.carrito .det{font-size:11px;color:var(--tenue);margin-top:3px;display:flex;
  align-items:center;gap:6px}
.carrito .fila2{display:flex;align-items:center;gap:10px;margin-top:9px}
.carrito .sub{margin-left:auto;font-size:13px;font-weight:700;color:var(--rojo);
  font-variant-numeric:tabular-nums}
.carrito .quitar{border:none;background:none;color:var(--tenue);
  font-size:15px;padding:2px 4px;transition:color .16s}
.carrito .quitar:hover{color:var(--rojo)}
.carrito .en-pedido{margin-top:0}
.carrito-vacio{text-align:center;color:var(--suave);padding:64px 16px;font-size:13px;
  line-height:1.7}
.carrito-vacio b{display:block;font-size:30px;opacity:.2;margin-bottom:10px}
.carrito-vacio .btn{margin-top:18px}
.carrito-pie{border-top:1px solid var(--linea);padding:16px 22px 20px}
.tot{display:flex;justify-content:space-between;font-size:12px;color:var(--suave);
  margin-bottom:5px;font-variant-numeric:tabular-nums}
.tot.ahorro span:last-child{color:var(--rojo);font-weight:700}
.tot.grande{font-size:19px;font-weight:700;color:var(--tinta);margin:12px 0 14px;
  padding-top:12px;border-top:1px solid var(--linea)}
.tot.grande b{color:var(--rojo)}
.tel{width:100%;border:1px solid var(--linea);background:var(--papel);
  border-radius:999px;padding:11px 16px;font-size:13px;margin-bottom:9px;
  outline:none;transition:border-color .2s}
.tel:focus{border-color:var(--tinta)}
.wsp{width:100%;display:flex;align-items:center;justify-content:center;gap:9px;
  background:var(--verde);color:#fff;border:none;border-radius:999px;padding:14px;
  font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  transition:filter .2s,transform .18s var(--curva)}
.wsp:hover{filter:brightness(1.08);transform:translateY(-1px)}
.wsp svg{width:17px;height:17px;fill:currentColor}
.mini-acc{display:flex;gap:8px;margin-top:9px}
.mini-acc button{flex:1;border:1px solid var(--linea);background:none;
  border-radius:999px;padding:10px;font-size:10px;font-weight:700;
  letter-spacing:.09em;text-transform:uppercase;color:var(--suave);transition:.18s}
.mini-acc button:hover{border-color:var(--tinta);color:var(--tinta)}
.aviso-demo{font-size:10.5px;color:var(--tenue);text-align:center;margin:10px 0 0;
  line-height:1.5}

/* ---------- botones ---------- */
.btn,.btn-claro,.btn-blanco{display:inline-flex;align-items:center;justify-content:center;
  gap:10px;border-radius:999px;padding:14px 26px;font-size:11.5px;font-weight:700;
  letter-spacing:.11em;text-transform:uppercase;white-space:nowrap;
  transition:transform .2s var(--curva),box-shadow .2s,background .2s,color .2s,
  border-color .2s}
.btn{background:var(--tinta);color:var(--papel);border:1px solid var(--tinta)}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.18)}
.btn-claro{background:none;color:var(--tinta);border:1px solid var(--tinta)}
.btn-claro:hover{background:var(--tinta);color:var(--papel)}
.btn-blanco{background:#fff;color:#111;border:1px solid #fff}
.btn-blanco:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(0,0,0,.3)}
.btn.btn-rojo{background:var(--rojo);border-color:var(--rojo);color:#fff}
.btn svg,.btn-claro svg,.btn-blanco svg{width:15px;height:15px;fill:none;
  stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.btn:active,.btn-claro:active,.btn-blanco:active{transform:scale(.98)}
.enlace-mas{display:inline-flex;align-items:center;gap:8px;font-size:11px;
  font-weight:700;letter-spacing:.11em;text-transform:uppercase;white-space:nowrap;
  padding:6px 0;transition:gap .2s var(--curva);
  /* subrayado de texto y no borde: con el relleno extra de las pantallas
     táctiles, un borde quedaba despegado debajo de la palabra */
  text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}
.enlace-mas:hover{gap:12px}
.enlace-mas.rojo{color:var(--rojo)}

/* ---------- títulos de sección ---------- */
.sec{padding:72px 0}
.sec.banda{background:var(--crema)}
.sec-cab{display:flex;align-items:flex-end;gap:20px;margin:0 0 30px;flex-wrap:wrap}
.sec-kicker{margin:0 0 8px;font-size:10.5px;font-weight:700;letter-spacing:.24em;
  text-transform:uppercase;color:var(--suave)}     /* --tenue daba 2,8:1 de contraste */
.sec-kicker.rojo{color:var(--rojo)}
.sec-titulo{margin:0;font-size:clamp(24px,3vw,34px);font-weight:800;
  letter-spacing:-.035em;line-height:1.05}
.sec-bajada{margin:10px 0 0;font-size:13.5px;color:var(--suave);max-width:56ch;
  line-height:1.65}
.sec-cab .enlace-mas{margin-left:auto}

/* ---------- tarjeta de modelo (proporción de Bata) ---------- */
.grilla{display:grid;gap:22px;
  grid-template-columns:repeat(var(--cols,4),minmax(0,1fr))}
.pieza{background:var(--tarjeta);border-radius:var(--radio);overflow:hidden;
  box-shadow:var(--sombra);cursor:pointer;position:relative;
  transition:transform .3s var(--curva), box-shadow .3s var(--curva)}
.pieza:hover{transform:translateY(-5px);box-shadow:var(--sombra-alta)}
.pieza.oculta{opacity:0}
.pieza.entra{animation:aparece .55s var(--curva) both;animation-delay:var(--d,0ms)}
@keyframes aparece{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.plato{position:relative;aspect-ratio:1;background:var(--plato);overflow:hidden}
.plato img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:opacity .45s var(--curva), transform .6s var(--curva)}
.pieza:hover .plato img{transform:scale(1.045)}
.pieza:not(.cargada) .plato img{opacity:0}
.pieza:not(.cargada) .plato::after{content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,var(--plato) 30%,var(--linea) 50%,var(--plato) 70%);
  background-size:220% 100%}
/* el brillo de "cargando" solo en las que están cerca: 243 animaciones
   infinitas a la vez congelan el render */
.pieza.cerca:not(.cargada) .plato::after{animation:brillo 1.4s infinite linear}
@keyframes brillo{0%{background-position:120% 0}100%{background-position:-120% 0}}
.oferta-cinta{position:absolute;top:12px;left:12px;background:var(--rojo);color:#fff;
  font-size:10px;font-weight:700;letter-spacing:.06em;padding:5px 10px;
  border-radius:999px;box-shadow:0 2px 10px rgba(225,27,27,.38);z-index:2}
.cubo3d{position:absolute;top:12px;right:12px;background:rgba(17,17,17,.86);
  color:#fff;font-size:9.5px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;padding:4px 9px;border-radius:999px;z-index:2;
  backdrop-filter:blur(6px);display:flex;align-items:center;gap:5px}
.cubo3d svg{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:1.8}
.ver{position:absolute;left:12px;right:12px;bottom:12px;background:#111;
  color:#fff;text-align:center;font-size:10.5px;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;padding:10px;border-radius:999px;
  opacity:0;transform:translateY(8px);pointer-events:none;
  transition:opacity .25s var(--curva),transform .25s var(--curva)}
.pieza:hover .ver{opacity:1;transform:none}
.ficha{padding:14px 16px 18px}
.familia{font-size:9.5px;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--tenue);margin:0 0 5px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nombre{margin:0;font-size:14px;font-weight:600;color:var(--tinta);
  line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.color{display:flex;align-items:center;gap:7px;margin:7px 0 0;font-size:12px;
  color:var(--suave)}
.precio{margin:10px 0 0;font-size:17px;font-weight:600;color:var(--rojo);
  font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.precio small{font-size:11px;font-weight:500;color:var(--tenue);
  margin-right:4px;letter-spacing:.04em}
.precio .antes{font-size:11.5px;font-weight:500;color:var(--tenue);
  text-decoration:line-through;margin-right:7px;letter-spacing:0}
.codigo{margin:6px 0 0;font-size:10px;color:var(--tenue);letter-spacing:.06em;
  font-variant-numeric:tabular-nums}
.sw{width:13px;height:13px;border-radius:50%;flex:0 0 auto;display:inline-block;
  border:1px solid rgba(128,128,128,.4);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}

/* agregar / cantidad (tarjeta, pedido y ficha) */
.agregar{width:100%;margin-top:12px;border:1px solid var(--tinta);background:none;
  color:var(--tinta);border-radius:999px;padding:9px;font-size:10.5px;
  font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  transition:background .18s,color .18s,transform .15s var(--curva)}
.agregar:hover{background:var(--tinta);color:var(--papel)}
.agregar:active{transform:scale(.97)}
.en-pedido{display:flex;align-items:center;gap:9px;margin-top:12px}
.en-pedido .etq2{font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--tenue);font-weight:600}
.paso{display:inline-flex;align-items:center;border:1px solid var(--tinta);
  border-radius:999px;overflow:hidden}
.paso button{width:30px;height:30px;border:none;background:none;
  font-size:15px;line-height:1;color:var(--tinta);transition:background .15s}
.paso button:hover{background:var(--plato)}
.paso span{min-width:30px;text-align:center;font-size:12px;font-weight:700;
  font-variant-numeric:tabular-nums}

/* ---------- aviso flotante ---------- */
.tostada{position:fixed;left:50%;bottom:24px;z-index:80;
  transform:translate(-50%,20px);opacity:0;pointer-events:none;
  background:#111;color:#fff;border-radius:999px;padding:12px 20px;font-size:12px;
  font-weight:600;box-shadow:0 12px 30px rgba(0,0,0,.3);
  display:flex;align-items:center;gap:14px;max-width:calc(100vw - 32px);
  transition:opacity .25s var(--curva),transform .25s var(--curva)}
.tostada.on{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.tostada button{border:none;background:none;color:#ffd24a;font-weight:700;
  font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:6px 0;
  white-space:nowrap}

/* ---------- volver arriba ---------- */
.arriba{position:fixed;right:22px;bottom:22px;z-index:40;width:46px;height:46px;
  border-radius:50%;border:1px solid var(--linea);background:var(--tarjeta);
  color:var(--tinta);box-shadow:var(--sombra-alta);opacity:0;font-size:16px;
  pointer-events:none;transform:translateY(12px) scale(.9);
  transition:opacity .3s var(--curva),transform .3s var(--curva)}
.arriba.on{opacity:1;pointer-events:auto;transform:none}

/* ---------- pie ---------- */
.pie{border-top:1px solid var(--linea);background:var(--papel);padding:56px 0 0;
  font-size:13px;color:var(--suave)}
.pie-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.3fr;gap:40px}
.pie h3{margin:0 0 16px;font-size:11px;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--tinta)}
.pie p{margin:0 0 12px;line-height:1.7;max-width:34ch}
.pie-marca .marca{display:inline-block;margin-bottom:14px;color:var(--tinta)}
.pie-lista{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.pie-lista a{transition:color .15s}
.pie-lista a:hover{color:var(--tinta)}
.pie-base{display:flex;gap:16px;flex-wrap:wrap;align-items:center;
  border-top:1px solid var(--linea);margin-top:44px;padding-top:20px;padding-bottom:26px;
  padding-right:72px;       /* lugar para el botón fijo ↑, que si no tapa el texto */
  font-size:11px;letter-spacing:.05em;color:var(--tenue)}
.pie-base .der{margin-left:auto}
.pie a.real{display:inline-flex;gap:6px;align-items:center;font-size:12px;
  font-weight:600;color:var(--tinta);border-bottom:1px solid var(--linea);
  padding-bottom:2px}

/* ===================== responsive ===================== */
@media (max-width:1040px){
  .nav-principal,.solo-pc{display:none !important}
  .hamb{display:grid}
  .cab-fila{gap:12px}
  .bus-res{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pie-grid{grid-template-columns:1fr 1fr;gap:34px 28px}
  .pie-marca{grid-column:1/-1}
}
@media (max-width:760px){
  :root{--cab:58px;--gutter:16px}
  .marca{font-size:17px}
  .acciones{gap:6px}
  .icono{width:42px;height:42px}
  .aviso{font-size:9.5px;letter-spacing:.06em;padding:7px 12px}
  .panel-buscar{padding:12px 0 16px;max-height:calc(100dvh - var(--cab));overflow-y:auto}
  .bus-res{grid-template-columns:1fr;gap:2px}
  .sec{padding:48px 0}
  .sec-cab{margin-bottom:22px;gap:12px}
  .sec-cab .enlace-mas{margin-left:0}
  .grilla{--cols:2 !important;gap:12px}
  .ficha{padding:11px 12px 14px}
  .nombre{font-size:13px}
  .precio{font-size:16px}
  .agregar{padding:13px}
  .carrito{width:100vw;max-width:100vw}
  .carrito-cab{padding:10px 12px 10px 18px}
  .carrito-lista{padding:4px 18px}
  .carrito-pie{padding:14px 18px 22px}
  .wsp{padding:16px}
  .mini-acc button{padding:13px}
  .carrito .quitar{padding:8px;font-size:17px}
  .pie{padding-top:40px}
  .pie-grid{grid-template-columns:1fr 1fr;gap:28px 20px}
  .pie-base .der{margin-left:0}
  .arriba{right:14px;bottom:14px}
  .btn,.btn-claro,.btn-blanco{padding:15px 22px}
}
@media (max-width:430px){
  /* grilla de 2 columnas: el botón mide ~146px y "Agregar al pedido" se
     partía en dos renglones (medido a 375, 390 y 412) */
  .grilla .agregar{font-size:10px;letter-spacing:.05em;padding-left:4px;padding-right:4px}
}
@media (max-width:400px){
  .grilla{gap:10px}
  .ficha{padding:10px 10px 13px}
}
/* Pantalla táctil, sea del ancho que sea: lo que decide el tamaño de toque
   es el dedo, no los píxeles (una tablet de 768 con dedo también lo necesita). */
@media (pointer:coarse){
  .icono{min-width:42px;min-height:42px}
  .paso button{width:42px;height:42px;font-size:17px}
  .paso span{min-width:34px;font-size:13px}
  .agregar{padding:13px}
  .tel{padding-top:13px;padding-bottom:13px}
  .carrito .quitar{padding:8px;font-size:17px}
  .mini-acc button{padding:13px}
  .enlace-mas{padding:12px 0;min-height:44px}
  .bus-sugiere button{padding:11px 15px}
  .bus-cerrar{width:42px;height:42px}
  .marca{padding:9px 0}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;
    transition-duration:.001ms !important;scroll-behavior:auto !important}
}
@media print{
  .aviso,.cab,.menu-movil,.carrito,.velo,.arriba,.tostada,.pie,
  .oferta-cinta,.cubo3d,.ver,.agregar,.en-pedido{display:none !important}
  body{background:#fff}
  .pieza,.pieza.oculta{opacity:1 !important;animation:none !important;
    transform:none !important;box-shadow:none;border:1px solid #ddd;
    break-inside:avoid}
  .plato img{opacity:1 !important}
  .plato::after{display:none !important}
}
