/* Ajustes funcionales sobre la identidad visual V1, recuperada del respaldo. */
[hidden] { display:none!important; }
html { scroll-padding-top:120px; }
:focus-visible { outline:3px solid #b56729; outline-offset:4px; }
.icono { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
.biblioteca-iconos { position:absolute; width:0; height:0; overflow:hidden; }
.barra-resultados { display:flex; align-items:center; gap:15px; padding:0 0 20px; font-size:12px; color:var(--gris); }
.barra-resultados button { padding:10px 14px; border:1px solid var(--borde); border-radius:20px; background:#fff; color:var(--verde); cursor:pointer; }
.continuacion-catalogo { display:flex; flex-direction:column; align-items:center; gap:14px; padding-top:30px; }
.continuacion-catalogo>p { margin:0; font-size:12px; color:var(--gris); }
.continuacion-catalogo .cargar-mas { margin:4px auto 0; }
.continuacion-catalogo progress { width:180px; height:4px; appearance:none; border:0; border-radius:4px; overflow:hidden; background:#e0e4d9; }
progress::-webkit-progress-bar { background:#e0e4d9; }
progress::-webkit-progress-value { background:var(--verde); }
progress::-moz-progress-bar { background:var(--verde); }
.grilla-productos[aria-busy="true"] { opacity:.55; pointer-events:none; }
.agregar-producto input,.agregar-producto button { min-height:44px; }
.agregar-producto button.agregado { background:var(--verde-claro); }
/* Paneles anclados al viewport. Sólo la lista de productos desplaza el carrito. */
.panel-carrito,.panel-checkout { position:fixed; inset:0; width:min(540px,100vw); max-width:100vw; height:100vh; height:100dvh; max-height:100dvh; margin:0 0 0 auto; padding:0; border:0; border-radius:22px 0 0 22px; background:#fff; color:var(--tinta); box-shadow:-25px 0 75px #04190c33; overflow:hidden; }
.panel-carrito[open] { display:flex; flex-direction:column; }
.panel-carrito[open],.panel-checkout[open] { animation:entrar-panel .22s ease-out; }
.panel-carrito::backdrop,.panel-checkout::backdrop { background:#071a12a6; backdrop-filter:blur(5px); }
.cabecera-panel { flex-shrink:0; display:flex; justify-content:space-between; align-items:center; gap:15px; padding:25px 28px; padding-top:max(25px,env(safe-area-inset-top)); border-bottom:1px solid var(--borde); }
.cabecera-panel>div { min-width:0; }
.cabecera-panel h2 { font-size:30px; line-height:1.2; margin:7px 0 0; letter-spacing:-1px; }
.cabecera-panel button { flex-shrink:0; width:44px; height:44px; border:0; border-radius:50%; background:#f0f2ea; font-size:27px; }
.lineas-carrito { flex:1; min-height:0; overflow:auto; overscroll-behavior:contain; padding:7px 28px; scrollbar-width:thin; }
.lineas-carrito>p { text-align:center; padding:38px 0; color:var(--gris); font-size:14px; }
.linea-carrito { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; padding:20px 0; border-bottom:1px solid var(--borde); }
.linea-carrito h3 { margin:0 0 5px; font-size:13px; overflow-wrap:anywhere; }
.linea-carrito small { font-size:11px; color:var(--gris); }
.linea-carrito>strong { font-size:14px; white-space:nowrap; }
.control-cantidad { display:flex; align-items:center; gap:12px; }
.control-cantidad button { width:40px; height:40px; border:1px solid var(--borde); background:#f9faf6; border-radius:10px; }
.control-cantidad span { min-width:16px; text-align:center; font-size:13px; }
.quitar-linea { justify-self:end; border:0; padding:10px 0 10px 12px; background:none; color:#934831; font-size:11px; }
.pie-carrito { flex-shrink:0; padding:20px 28px max(20px,env(safe-area-inset-bottom)); border-top:1px solid var(--borde); background:#fafbf7; }
.total-carrito { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.total-carrito>span { font-size:13px; }
.total-carrito strong { font-size:24px; letter-spacing:-.7px; white-space:nowrap; }
.aclaracion { font-size:11px; color:var(--gris); line-height:1.6; }
.pie-carrito>.boton { margin-top:5px; }
.panel-checkout form { height:100%; overflow:auto; overscroll-behavior:contain; padding-bottom:env(safe-area-inset-bottom); }
.panel-checkout .cabecera-panel { position:sticky; top:0; z-index:2; background:#fffffff7; }
.panel-checkout .cabecera-panel h2 { font-size:26px; }
.campos { display:grid; grid-template-columns:1fr 1fr; gap:16px; padding:25px 28px; }
.campos label { display:grid; gap:6px; font-size:12px; font-weight:600; min-width:0; }
.campos input,.campos select,.campos textarea { width:100%; min-width:0; padding:12px; border:1px solid var(--borde); border-radius:10px; background:#fafbf7; }
.campo-completo { grid-column:1/-1; }
.panel-checkout .aclaracion,.mensaje-error { padding:0 28px; }
.panel-checkout form>.boton { width:calc(100% - 56px); margin:12px 28px 28px; }
.mensaje-error { color:#a12b2b; font-size:12px; }
body:has(dialog[open]) { overflow:hidden; }
@media (max-height:500px) {
  .cabecera-panel { padding:10px 20px!important; }
  .cabecera-panel h2,.panel-checkout .cabecera-panel h2 { margin-top:3px; font-size:22px; }
  .cabecera-panel .etiqueta { font-size:8px; }
  .pie-carrito { padding:10px 20px; }
  .pie-carrito .aclaracion { margin:5px 0; font-size:10px; }
  .pie-carrito>.boton { min-height:42px; padding:9px 15px; }
  .total-carrito strong { font-size:20px; }
}

/* Compatibilidad con la estructura y los colores de la versión original. */
.lineas-carrito { max-height:none; }
.total-carrito { padding:0; }
.pie-carrito .aclaracion { padding:0; }
.pie-carrito .boton { display:flex; gap:12px; }
.pie-carrito .boton .icono { width:18px; height:18px; }
.control-cantidad button { width:40px; height:40px; }
.contacto-flotante>button { display:flex; align-items:center; gap:9px; }
.contacto-flotante>button::before { content:none; }
.contacto-flotante>button>.icono { width:28px; height:28px; color:#219653; }
.pedido-movil { display:none; }
@keyframes entrar-panel { from { opacity:0; } to { opacity:1; } }
@media(max-width:760px) {
  html { scroll-padding-top:155px; }
  .panel-carrito,.panel-checkout { border-radius:20px 0 0 20px; }
  .cabecera-panel { padding:23px 20px; }
  .cabecera-panel h2 { font-size:28px; }
  .lineas-carrito { padding:8px 20px; }
  .pie-carrito { padding:18px 20px max(18px,env(safe-area-inset-bottom)); }
  .campos { padding:23px 20px; grid-template-columns:1fr; }
  .campo-completo { grid-column:auto; }
  .campos input,.campos select,.campos textarea,.buscador-cabecera input,.agregar-producto input { font-size:16px; }
  .buscador-cabecera input::placeholder { font-size:13px; }
  .contacto-flotante { bottom:calc(12px + env(safe-area-inset-bottom)); }
  .pedido-movil { position:fixed; bottom:0; left:0; right:0; z-index:26; display:flex; align-items:center; justify-content:space-between; gap:10px; background:#fffefa; border-top:1px solid var(--borde); box-shadow:0 -6px 25px #18372c0b; padding:11px 17px calc(11px + env(safe-area-inset-bottom)); }
  .pedido-movil>div { display:grid; }
  .pedido-movil small { font-size:9px; color:var(--gris); }
  .pedido-movil strong { font-size:18px; }
  .pedido-movil button { display:flex; align-items:center; gap:12px; min-height:44px; padding:10px 15px; border:0; border-radius:24px; background:var(--verde); color:#fff; font-size:12px; }
  .pedido-movil .icono { width:18px; height:18px; }
  body.con-pedido .contacto-flotante { bottom:calc(89px + env(safe-area-inset-bottom)); }
  body.con-pedido .notificacion { bottom:calc(92px + env(safe-area-inset-bottom)); }
}
@media(max-height:500px) {
  .pie-carrito { padding:10px 20px max(10px,env(safe-area-inset-bottom)); }
}

/* Cabecera: laterales simétricos para centrar la búsqueda en la página. */
.cabecera { display:grid; grid-template-columns:minmax(128px,1fr) minmax(0,540px) minmax(128px,1fr); }
.buscador-cabecera { width:100%; min-width:0; justify-self:center; }
.acciones-cabecera { display:flex; align-items:center; justify-content:flex-end; gap:22px; justify-self:end; }
.acciones-cabecera .boton-carrito { margin-left:0; white-space:nowrap; }
@media(max-width:1400px) {
  .cabecera nav { display:none; }
}
@media(max-width:760px) {
  .cabecera { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .cabecera .marca { grid-column:1; grid-row:1; }
  .acciones-cabecera { grid-column:2; grid-row:1; }
  .buscador-cabecera { grid-column:1/-1; grid-row:2; max-width:none; }
}

/* Centrar el dibujo del logo dentro de su recorte, también al cambiar de tamaño. */
.cabecera .marca { position:relative; }
.cabecera .marca img { position:absolute; left:50%; top:50%; transform:translate(-50%,-53%); display:block; }
.aviso-minimo { margin:10px 0; padding:10px 12px; border:1px solid #e9c47e; border-radius:10px; background:#fff4d9; color:#744509; font-size:12px; line-height:1.5; }
.aviso-minimo:focus { outline:2px solid #bb7622; outline-offset:2px; }
.contenido-comprobante { height:100%; overflow:auto; overscroll-behavior:contain; }
.cuerpo-comprobante { padding:26px 28px max(26px,env(safe-area-inset-bottom)); }
.cuerpo-comprobante>p { font-size:14px; line-height:1.6; }
.resumen-comprobante { display:flex; flex-direction:column; align-items:center; gap:10px; padding:23px 18px; border:1px solid #e4e6d9; border-radius:20px; background:linear-gradient(145deg,#fffdf5,#f2f5eb); text-align:center; }
.resumen-comprobante img { width:74px; height:74px; object-fit:contain; border-radius:16px; }
.resumen-comprobante>span { font-size:11px; color:var(--gris); }
.resumen-comprobante>strong { font-size:18px; overflow-wrap:anywhere; }
.resumen-comprobante>b { font-size:32px; color:var(--verde); }
.resumen-comprobante small { font-size:11px; color:var(--gris); }
.cuerpo-comprobante .boton { width:100%; margin-top:12px; text-align:center; }
.cuerpo-comprobante .boton.secundaria { background:#f4f6ef; color:var(--verde); border:1px solid #dce3d3; }
.cuerpo-comprobante .ayuda-comprobante { font-size:12px; color:var(--gris); }
.ultimo-pedido { margin:18px auto; max-width:1180px; padding:14px 20px; display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; border:1px solid #dce3d3; border-radius:18px; font-size:13px; background:#fffdf5; }
.ultimo-pedido button { padding:12px 16px; border:0; border-radius:24px; background:var(--verde); color:#fff; cursor:pointer; }
@media(max-width:760px) { .cuerpo-comprobante { padding:20px 20px max(20px,env(safe-area-inset-bottom)); } }
@media(max-height:500px) { .aviso-minimo { font-size:10px; margin:5px 0; padding:6px 9px; } }

/* Ofertas reales y selecciones breves, con la misma identidad del catálogo. */
[hidden]{display:none!important}
.seleccion-tienda{scroll-margin-top:140px}
.seleccion-tienda .encabezado-seccion p{max-width:350px}
.seleccion-tienda .continuacion-catalogo{margin-top:24px}
#ofertas .etiqueta{color:#a95e12}
.precio del{display:block;font-size:13px;font-weight:400;color:#778071;margin-right:5px}
.precio .detalle-oferta,.detalle-oferta{display:block;color:#426546;font-size:12px;font-weight:600;line-height:1.5;margin-top:6px}
.ahorro-oferta{padding:10px 14px;background:#f0f4df;color:#315f3c;border-radius:12px;font-size:13px}
.insignia{max-width:90%;overflow-wrap:anywhere}
@media(min-width:1221px){.seleccion-tienda .grilla-productos{grid-template-columns:repeat(5,minmax(0,1fr))}}
.precio .vigencia-oferta{display:block;font-size:10px;font-weight:400;line-height:1.4;color:#647164;margin-top:5px}

/* Mantener proporciones al repartir el final de una categoría. */



/* Contacto compacto: los números se muestran al abrir el botón. */
.contacto-flotante > button { width:58px; height:58px; padding:0; justify-content:center; }
.contacto-flotante > button > .icono { width:32px; height:32px; color:#219653; }
.contacto-flotante > div { width:min(280px,calc(100vw - 32px)); bottom:70px; max-height:calc(100dvh - 180px); overflow-y:auto; }
.saludo-whatsapp { display:grid; gap:4px; padding:12px 11px; border-bottom:1px solid var(--borde); margin-bottom:4px; }
.saludo-whatsapp strong { color:var(--verde); font-size:18px; }
.saludo-whatsapp span { color:var(--gris); font-size:14px; }

/* La foto se ajusta al recuadro, sin imponer su altura natural a la grilla. */
.imagen-producto > img { position:absolute; inset:0; display:block; width:100%; height:100%; min-width:0; min-height:0; object-fit:contain; object-position:center; }

/* Todas las filas mantienen la altura de la tarjeta más alta. */
.grilla-productos { grid-auto-rows:1fr; }

.contacto-negocio { width:min(1240px,calc(100% - 40px)); margin:70px auto; }
.encabezado-contacto { max-width:760px; }
.encabezado-contacto h2 { font-size:clamp(28px,4vw,44px); line-height:1.1; letter-spacing:-1px; margin:16px 0; }
.encabezado-contacto p { line-height:1.7; color:var(--gris); }
.ubicaciones-negocio { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr)); gap:24px; margin:30px 0; }
/* Cada sede adapta sus columnas a su propio ancho. */
.ubicacion-negocio { container-type:inline-size; padding:32px; background:linear-gradient(135deg,#fffefb,#f7f7ed); border:1px solid var(--borde); border-radius:30px; box-shadow:0 14px 40px rgba(29,60,40,.045); }
.datos-sede { display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.rotulo-contacto { display:block; font-size:10px; font-weight:800; letter-spacing:2px; color:#71894f; margin-bottom:12px; }
.ubicacion-negocio h3 { margin:0 0 16px; color:var(--verde); font-size:25px; }
.ubicacion-negocio address { font-style:normal; line-height:1.8; overflow-wrap:anywhere; }
.atencion-sede { border-left:1px solid var(--borde); padding-left:40px; }
.ubicacion-negocio h4 { margin:0 0 16px; font-size:21px; color:var(--verde); }
.horarios-negocio { white-space:pre-line; line-height:1.8; margin:0; }
.retiro-negocio { display:block; font-size:13px; color:var(--verde); margin:16px 0 0; }
.pie-ubicacion { display:flex; justify-content:center; border-top:1px solid var(--borde); margin-top:28px; padding-top:24px; }
.enlace-mapa { display:inline-block; text-align:center; padding:14px 24px; border-radius:30px; background:var(--verde); color:#fff; font-weight:700; box-shadow:0 6px 16px rgba(29,86,56,.12); transition:transform .2s,box-shadow .2s; }
.enlace-mapa:hover { transform:translateY(-2px); box-shadow:0 10px 22px rgba(29,86,56,.2); }
.redes-marcas { display:grid; grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); gap:40px; align-items:center; padding-top:16px; }
.redes-negocio a { display:block; margin:12px 0; color:var(--verde); overflow-wrap:anywhere; }
.seleccion-marcas { position:relative; padding:30px 32px; border-radius:30px 60px 30px 30px; background:radial-gradient(ellipse at 100% 0%,#fae5a480,transparent 65%),#f1f2e5; border:1px solid #e6e7d5; }
.seleccion-marcas h3 { margin:0 0 24px; font-size:22px; letter-spacing:-.5px; }
.marcas-negocio { display:flex; align-items:center; flex-wrap:wrap; gap:24px; padding:0; margin:0; list-style:none; }
.marcas-negocio li { display:grid; gap:7px; padding:8px 0; color:#50644f; font-size:20px; font-weight:650; overflow-wrap:anywhere; max-width:100%; }
.marcas-negocio .marca-principal { padding:10px 24px 10px 0; border-right:1px solid #cad1bb; color:var(--verde); }
.marca-principal > span { font-size:34px; font-weight:950; letter-spacing:-1px; text-transform:uppercase; }
.marca-principal small { color:#6a794d; font-size:9px; font-weight:750; text-transform:uppercase; letter-spacing:1.4px; }
@container (max-width:530px) {
  .datos-sede { grid-template-columns:1fr; gap:24px; }
  .atencion-sede { border-left:0; border-top:1px solid var(--borde); padding:24px 0 0; }
}
@media(max-width:760px) {
  .ubicacion-negocio { padding:24px; }
  .redes-marcas { grid-template-columns:1fr; gap:24px; }
  .seleccion-marcas { padding:26px; }
}
@media(prefers-reduced-motion:reduce) { .enlace-mapa { transition:none; } }

/* Recortes de presentación: conservan intactos los logos del archivo original. */
.seleccion-marcas:has(.logos-marcas) { background:#fff; border-color:#ebe9df; box-shadow:0 12px 36px rgba(29,60,40,.05); }
.logos-marcas { display:grid; grid-template-columns:1.15fr .8fr 1fr; gap:20px; align-items:center; }
.logo-marca { display:block; width:100%; height:112px; overflow:hidden; }
@media(max-width:760px) {
  .seleccion-marcas:has(.logos-marcas) { padding:24px 18px; }
  .logos-marcas { gap:12px; }
  .logo-marca { height:82px; }
}

.redes-negocio a { display:flex; align-items:center; gap:13px; width:fit-content; max-width:100%; padding:8px 12px 8px 0; border-radius:16px; }
.simbolo-red { display:grid; place-items:center; width:42px; height:42px; flex-shrink:0; border-radius:14px; color:#fff; box-shadow:0 5px 12px #193b2814; }
.simbolo-red svg { width:25px; height:25px; }
.simbolo-red.instagram { background:linear-gradient(35deg,#f6a33b,#df3576 55%,#8055b7); }
.simbolo-red.facebook { background:#1877f2; }
.texto-red { display:grid; gap:4px; min-width:0; }
.texto-red strong { font-size:15px; }
.texto-red small { font-size:13px; color:var(--gris); overflow-wrap:anywhere; }
.redes-negocio a:hover { background:#edf0e5; }
.redes-negocio a:focus-visible { outline:2px solid var(--verde); outline-offset:4px; }

/* Una oferta o destacado único se presenta como una pieza compacta. */
.seleccion-tienda.seleccion-unica{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.5fr);align-items:center;gap:clamp(24px,4vw,60px);padding-top:24px;padding-bottom:24px;margin-top:40px;margin-bottom:0}
.seleccion-tienda.seleccion-unica .encabezado-seccion{display:block;margin:0}
.seleccion-tienda.seleccion-unica .encabezado-seccion h2{font-size:clamp(28px,3.2vw,42px);line-height:1.12;margin-bottom:16px}
.seleccion-tienda.seleccion-unica .encabezado-seccion p{max-width:32ch;margin:0}
.seleccion-tienda.seleccion-unica .grilla-productos{grid-template-columns:minmax(0,1fr);grid-auto-rows:auto}
.seleccion-tienda.seleccion-unica .tarjeta-producto{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1fr);border-color:rgba(211,146,46,.22)}
.seleccion-tienda.seleccion-unica .imagen-producto{aspect-ratio:auto;min-height:280px}
.seleccion-tienda.seleccion-unica .datos-producto{padding:clamp(20px,2.2vw,32px);justify-content:center}
.seleccion-tienda.seleccion-unica .datos-producto h3{min-height:0;font-size:clamp(17px,1.5vw,22px);margin:12px 0}
.seleccion-tienda.seleccion-unica .precio{margin-top:4px;font-size:26px}
.seleccion-tienda.seleccion-unica .continuacion-catalogo{display:none}
@media(max-width:980px){.seleccion-tienda.seleccion-unica{grid-template-columns:minmax(0,1fr);gap:22px}.seleccion-tienda.seleccion-unica .encabezado-seccion p{max-width:50ch}}
@media(max-width:480px){.seleccion-tienda.seleccion-unica{margin-top:40px;margin-bottom:40px}.seleccion-tienda.seleccion-unica .tarjeta-producto{grid-template-columns:minmax(0,1fr)}.seleccion-tienda.seleccion-unica .imagen-producto{min-height:0;aspect-ratio:1.8/1}.seleccion-tienda.seleccion-unica .datos-producto{padding:20px}.seleccion-tienda.seleccion-unica .datos-producto h3{font-size:19px}.seleccion-tienda.seleccion-unica .imagen-producto .sin-imagen{width:40%}}

/* Selecciones de hasta cuatro productos: título lateral y espacio proporcionado. */
@media(min-width:981px){
  .seleccion-tienda.seleccion-breve{display:grid;grid-template-columns:minmax(230px,.85fr) minmax(0,1.8fr);align-items:center;gap:clamp(24px,4vw,56px);margin-top:42px;margin-bottom:42px;padding-top:20px;padding-bottom:20px}
  .seleccion-breve .encabezado-seccion{display:block;margin:0}
  .seleccion-breve .encabezado-seccion h2{font-size:clamp(30px,3.2vw,44px);line-height:1.1;margin:12px 0 18px}
  .seleccion-breve .encabezado-seccion p{max-width:30ch}
  .seleccion-breve:not(.seleccion-unica) .grilla-productos{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:auto}
  .seleccion-breve:not(.seleccion-unica) .imagen-producto{aspect-ratio:1.5/1}
  .seleccion-breve .continuacion-catalogo{grid-column:2}
  .seleccion-varias .tarjeta-producto{display:grid;grid-template-columns:minmax(95px,.65fr) minmax(0,1fr)}
  .seleccion-varias .imagen-producto{aspect-ratio:auto!important}
  .seleccion-varias .datos-producto{padding:16px;min-width:0}
  .seleccion-varias .sin-imagen{font-size:16px}
  .seleccion-varias .insignia{font-size:9px;left:7px;top:10px;padding:6px}
  .seleccion-varias .agregar-producto{grid-template-columns:48px minmax(0,1fr)}
  .seleccion-varias .agregar-producto button{padding:10px 5px}
}
@media(max-width:760px){
  .seleccion-tienda .grilla-productos{grid-template-columns:minmax(0,1fr);grid-auto-rows:auto}
  .seleccion-tienda .tarjeta-producto{display:grid;grid-template-columns:minmax(100px,.65fr) minmax(0,1fr)}
  .seleccion-tienda .imagen-producto{aspect-ratio:auto;min-height:0}
  .seleccion-tienda .datos-producto{padding:16px;min-width:0}
  .seleccion-tienda .datos-producto h3{font-size:14px;min-height:0}
  .seleccion-tienda .imagen-producto .sin-imagen{width:80%;font-size:17px}
  .seleccion-tienda .insignia{font-size:9px;left:6px;top:10px;padding:6px}
  .seleccion-tienda .agregar-producto{grid-template-columns:44px minmax(0,1fr)}
  .seleccion-tienda .agregar-producto button{padding:10px 5px}
  .seleccion-tienda .continuacion-catalogo{margin-top:18px}
  .seleccion-tienda.seleccion-unica .tarjeta-producto{grid-template-columns:minmax(100px,.65fr) minmax(0,1fr)}
  .seleccion-tienda.seleccion-unica .imagen-producto{aspect-ratio:auto;min-height:0}
  .seleccion-tienda.seleccion-unica .datos-producto{padding:16px}
  .seleccion-tienda.seleccion-unica .datos-producto h3{font-size:14px}
  .seleccion-tienda.seleccion-unica .imagen-producto .sin-imagen{width:80%}
}
