/* Pido Gancho v2 — blanco, oliva y caqui, como su etiqueta de regalo */
:root {
  --blanco: #FFFFFF;
  --papel: #F5F3ED;
  --arena: #ECE8DD;
  --linea: #E2DED2;
  --oliva: #7E795C;
  --oliva-osc: #5C5841;
  --oliva-hondo: #46432F;
  --tinta: #2E2D26;
  --gris: #6A675C;
  --wsp: #25A35A;
  --serif: 'Bodoni Moda', 'Didot', 'Bodoni 72', Georgia, serif;
  --sans: 'Raleway', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --ancho: 1320px;
  --gut: clamp(16px, 3.2vw, 40px);
  --radio: 2px;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 140px; }
body { margin: 0; background: var(--blanco); color: var(--tinta); font: 400 16px/1.55 var(--sans); font-variant-numeric: lining-nums; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; display: block; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: 0; padding: 0; }
a { color: inherit; }
h1, h2, h3 { font-weight: 400; margin: 0; text-wrap: balance; }
:focus-visible { outline: 2px solid var(--oliva-osc); outline-offset: 2px; }
[hidden] { display: none !important; }
.oculto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.saltar { position: absolute; left: -999px; top: 8px; background: var(--oliva-hondo); color: #fff; padding: 8px 14px; z-index: 100; }
.saltar:focus { left: 8px; }
svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
svg.relleno, .wsp-fijo svg { fill: currentColor; stroke: none; }

.boton { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 26px; background: var(--oliva-osc); color: #fff; border: 1px solid var(--oliva-osc); border-radius: var(--radio); text-decoration: none; font-weight: 600; font-size: 15px; letter-spacing: .04em; transition: background .2s, color .2s; }
.boton:hover { background: var(--oliva-hondo); border-color: var(--oliva-hondo); }
.boton-claro { background: transparent; color: var(--oliva-hondo); }
.boton-claro:hover { background: var(--papel); color: var(--oliva-hondo); }
.boton-ancho { width: 100%; }
.boton:disabled { opacity: .55; cursor: not-allowed; }
.enlace { color: var(--oliva-hondo); text-decoration: underline; text-underline-offset: 3px; font-weight: 600; }

/* Aviso superior */
.aviso { margin: 0; background: var(--arena); color: var(--oliva-hondo); text-align: center; font-size: 13px; letter-spacing: .03em; padding: 7px var(--gut); }

/* Cabecera: la lupa primero, bien visible */
.cab { position: sticky; top: 0; z-index: 30; background: var(--blanco); border-bottom: 1px solid var(--linea); transition: box-shadow .2s; }
.cab.bajo { box-shadow: 0 6px 20px -14px rgba(46, 45, 38, .35); }
.cab-in { max-width: var(--ancho); margin: 0 auto; padding: 14px var(--gut) 10px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: clamp(16px, 3vw, 48px); }
.marca { text-decoration: none; display: grid; line-height: 1; }
.marca-nom { font-family: var(--serif); font-style: italic; font-size: clamp(28px, 2.6vw, 36px); color: var(--oliva-osc); letter-spacing: -.005em; white-space: nowrap; }
.marca-sub { font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--gris); margin-top: 6px; padding-left: 2px; }
.buscador { position: relative; display: flex; align-items: center; max-width: 680px; width: 100%; justify-self: center; border: 1.5px solid var(--oliva); border-radius: var(--radio); background: #fff; height: 50px; }
.buscador:focus-within { border-color: var(--oliva-hondo); box-shadow: 0 0 0 3px rgba(126, 121, 92, .16); }
.buscador .lupa { position: absolute; left: 14px; width: 22px; height: 22px; color: var(--oliva-osc); stroke-width: 2; pointer-events: none; }
.buscador input { flex: 1; min-width: 0; height: 100%; border: 0; outline: 0; background: transparent; padding: 0 12px 0 46px; font-size: 16px; color: var(--tinta); }
.buscador input::placeholder { color: #8C897C; }
.buscador input::-webkit-search-cancel-button { -webkit-appearance: none; appearance: none; width: 18px; height: 18px; cursor: pointer; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235C5841' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6 6 18'/%3E%3C/svg%3E") center / 18px no-repeat; }
.buscar-btn { height: calc(100% - 8px); margin-right: 4px; padding: 0 20px; background: var(--oliva-osc); color: #fff; font-weight: 600; font-size: 14px; letter-spacing: .04em; border-radius: var(--radio); }
.buscar-btn:hover { background: var(--oliva-hondo); }
.cab-acc { display: flex; gap: 4px; align-items: center; }
.icono { position: relative; width: 44px; height: 44px; display: grid; place-items: center; color: var(--oliva-hondo); border-radius: 50%; }
.icono:hover { background: var(--papel); }
.icono svg { width: 24px; height: 24px; }
.bolsa-n { position: absolute; top: 3px; right: 1px; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 9px; background: var(--oliva-osc); color: #fff; font-size: 11px; font-weight: 700; line-height: 18px; text-align: center; }
.bolsa-n[hidden] { display: none; }
.bolsa-n.salta { animation: salta .4s; }
@keyframes salta { 40% { transform: scale(1.35); } }
.menu { display: flex; justify-content: center; flex-wrap: wrap; gap: 4px clamp(14px, 2.4vw, 34px); padding: 0 var(--gut) 10px; }
.menu a { text-decoration: none; font-size: 14px; font-weight: 500; color: var(--tinta); padding: 4px 0; border-bottom: 1px solid transparent; }
.menu a:hover { border-color: var(--oliva); color: var(--oliva-hondo); }

/* Sugerencias del buscador */
.sugerencias { position: absolute; left: -1.5px; right: -1.5px; top: calc(100% + 6px); background: #fff; border: 1px solid var(--linea); border-radius: var(--radio); box-shadow: 0 18px 40px -18px rgba(46, 45, 38, .35); z-index: 40; overflow: hidden; }
.sugerencias ul { list-style: none; margin: 0; padding: 6px 0; }
.sugerencias li { display: grid; grid-template-columns: 40px 1fr auto; gap: 12px; align-items: center; padding: 6px 14px; cursor: pointer; font-size: 14.5px; }
.sugerencias li img { width: 40px; height: 50px; object-fit: contain; }
.sugerencias li b { font-weight: 600; color: var(--oliva-hondo); }
.sugerencias li[aria-selected=true], .sugerencias li:hover { background: var(--papel); }
.sugerencias li.nada { display: block; cursor: default; color: var(--gris); }
.sug-pie { margin: 0; padding: 10px 14px; border-top: 1px solid var(--linea); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 14px; font-size: 13px; color: var(--gris); }
.sug-pie:empty { display: none; }

/* Portada: marco punteado como la etiqueta, ilustración de la vidriera */
.portada { padding: clamp(14px, 2.4vh, 26px) var(--gut); height: calc(100svh - var(--alto-cab, 150px)); min-height: 500px; max-height: 1000px; display: flex; }
.marco { position: relative; flex: 1; max-width: var(--ancho); margin: 0 auto; border: 1px solid #CFCAB9; display: grid; place-items: center; padding: clamp(22px, 4vh, 44px) clamp(20px, 4vw, 60px); }
.borde { position: absolute; color: var(--oliva); pointer-events: none; }
.b-arr, .b-aba { left: 14px; right: 14px; height: 9px; background: repeating-linear-gradient(110deg, transparent 0 8px, currentColor 8px 10px); }
.b-arr { top: 12px; } .b-aba { bottom: 12px; }
.b-izq, .b-der { top: 30px; bottom: 30px; width: 9px; background: repeating-linear-gradient(-20deg, transparent 0 8px, currentColor 8px 10px); }
.b-izq { left: 12px; } .b-der { right: 12px; }
.portada-in { display: flex; flex-direction: column; align-items: center; text-align: center; gap: clamp(10px, 2vh, 22px); width: 100%; }
.portada h1 { font-family: var(--serif); font-style: italic; font-weight: 400; color: var(--oliva-osc); font-size: min(3.7vw, 5.4vh, 54px); line-height: 1.12; max-width: 30ch; }
.portada h1 .l { display: block; }
.vidriera { width: auto; height: min(37vh, 36vw, 420px); aspect-ratio: 1812 / 1056; max-width: 100%; object-fit: contain; }
.portada-sub { margin: 0; font-size: clamp(14px, 1.9vh, 17px); letter-spacing: .06em; color: var(--gris); }
.portada-acc { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }

/* Franja por edad (más abajo) */
.edades { max-width: var(--ancho); margin: 0 auto; padding: clamp(36px, 6vw, 64px) var(--gut) 8px; text-align: center; }
.edades h2, .regalos h2, .local h2 { font-family: var(--serif); font-style: italic; color: var(--oliva-osc); font-size: clamp(30px, 3.4vw, 42px); }
.edades-fila { margin-top: 24px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.edad { display: grid; justify-items: center; gap: 2px; padding: 22px 12px 18px; border: 1px solid var(--linea); border-radius: var(--radio); background: #fff; transition: border-color .2s, background .2s; }
.edad:hover { border-color: var(--oliva); background: var(--papel); }
.edad-num { font-family: var(--serif); font-style: italic; font-size: clamp(30px, 3vw, 40px); line-height: 1.05; color: var(--oliva-osc); }
.edad-txt { font-size: 14px; letter-spacing: .12em; text-transform: uppercase; color: var(--tinta); font-weight: 600; }
.edad small { font-size: 13px; color: var(--gris); margin-top: 6px; }

/* Tienda: columna lateral de categorías */
.tienda { max-width: var(--ancho); margin: 0 auto; padding: clamp(40px, 6vw, 72px) var(--gut); display: grid; grid-template-columns: 236px minmax(0, 1fr); gap: clamp(24px, 3.5vw, 48px); align-items: start; }
.lateral { position: sticky; top: calc(var(--alto-cab-fija, 120px) + 16px); max-height: calc(100vh - var(--alto-cab-fija, 120px) - 32px); overflow: auto; padding-right: 6px; scrollbar-width: thin; }
.lat-tit { font-size: 13px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--oliva-hondo); padding-bottom: 10px; border-bottom: 1px solid var(--linea); margin-bottom: 6px; }
.cats + .lat-tit { margin-top: 28px; }
.cats { list-style: none; margin: 0; padding: 0; }
.cats button { width: 100%; display: flex; align-items: baseline; gap: 8px; text-align: left; padding: 7px 8px 7px 0; font-size: 15px; color: var(--tinta); border-radius: var(--radio); }
.cats button span { color: var(--gris); font-size: 13px; margin-left: auto; font-weight: 400; }
.cats .hija button { padding-left: 16px; font-size: 14.5px; }
.cats button:hover { color: var(--oliva-hondo); text-decoration: underline; text-underline-offset: 3px; }
.cats button[aria-pressed=true] { color: var(--oliva-hondo); font-weight: 700; }
.cats button[aria-pressed=true]::before { content: ''; flex: none; width: 6px; height: 6px; border-radius: 50%; background: var(--oliva); align-self: center; }
.cats button:disabled { color: #B3B0A5; cursor: default; text-decoration: none; }
.tienda-cab { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; padding-bottom: 14px; border-bottom: 1px solid var(--linea); }
.tienda-cab h2 { font-family: var(--serif); font-style: italic; color: var(--oliva-osc); font-size: clamp(28px, 3vw, 38px); line-height: 1.15; }
.cuenta { margin: 4px 0 0; color: var(--gris); font-size: 14px; }
.orden { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--gris); }
select { height: 42px; border: 1px solid var(--linea); border-radius: var(--radio); background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235C5841' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center / 16px; padding: 0 36px 0 12px; font-size: 15px; color: var(--tinta); appearance: none; -webkit-appearance: none; }
.filtros-movil { display: none; }
.busqueda-info { margin: 14px 0 0; padding: 12px 14px; background: var(--papel); font-size: 14px; color: var(--tinta); border-radius: var(--radio); }
.busqueda-info em { font-style: normal; font-weight: 600; color: var(--oliva-hondo); }
.grilla { list-style: none; margin: 22px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 36px 22px; }
.prod { display: flex; flex-direction: column; }
.prod-foto { display: block; aspect-ratio: 4 / 5; background: #fff; overflow: hidden; border-radius: var(--radio); }
.prod-foto img { width: 100%; height: 100%; object-fit: contain; transition: transform .5s ease; }
.prod-foto:hover img { transform: scale(1.03); }
.prod-info { padding-top: 12px; display: flex; flex-direction: column; gap: 2px; flex: 1; }
.prod-info h3 { font-size: 15px; font-weight: 500; line-height: 1.35; }
.prod-info h3 button { text-align: left; }
.prod-info h3 button:hover { text-decoration: underline; text-underline-offset: 3px; }
.prod-edad { margin: 0; font-size: 13px; color: var(--gris); }
.prod-precio { margin: 4px 0 0; font-weight: 700; font-size: 15.5px; }
.prod-mas { align-self: flex-start; margin-top: auto; position: relative; top: 8px; margin-bottom: 8px; display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 14px 0 10px; border: 1px solid var(--linea); border-radius: var(--radio); font-size: 13.5px; font-weight: 600; color: var(--oliva-hondo); transition: border-color .2s, background .2s; }
.prod-mas svg { width: 16px; height: 16px; stroke-width: 2; }
.prod-mas:hover { border-color: var(--oliva); background: var(--papel); }
.prod-mas.listo { background: var(--oliva-osc); border-color: var(--oliva-osc); color: #fff; }
.vacio { grid-column: 1 / -1; text-align: center; padding: 40px 10px; color: var(--gris); }
.vacio p { margin: 0 0 8px; }
.ver-mas-zona { text-align: center; margin-top: 40px; }

/* Regalos */
.regalos { background: var(--papel); padding: clamp(48px, 7vw, 88px) var(--gut); display: grid; grid-template-columns: minmax(0, 400px) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); max-width: none; }
.regalos > * { min-width: 0; }
.regalos-intro, .regalos-grupos { max-width: 100%; }
@media (min-width: 1400px) { .regalos { padding-inline: calc((100vw - var(--ancho)) / 2 + var(--gut)); } }
.pasos { margin: 18px 0 26px; padding: 0; list-style: none; counter-reset: p; display: grid; gap: 12px; }
.pasos li { counter-increment: p; display: grid; grid-template-columns: 30px 1fr; gap: 12px; align-items: start; font-size: 15.5px; }
.pasos li span { padding-top: 3px; }
.pasos li::before { content: counter(p); width: 28px; height: 28px; border: 1px solid var(--oliva); border-radius: 50%; display: grid; place-items: center; font-family: var(--serif); font-style: italic; color: var(--oliva-osc); }
.etiqueta { position: relative; background: #fff; border: 1px solid #CFCAB9; padding: 26px 30px 22px; text-align: center; box-shadow: 0 16px 30px -24px rgba(46, 45, 38, .4); }
.etiqueta::before { content: ''; position: absolute; inset: 8px; pointer-events: none; --r: repeating-linear-gradient(110deg, transparent 0 6px, var(--oliva) 6px 8px); --v: repeating-linear-gradient(-20deg, transparent 0 6px, var(--oliva) 6px 8px); background: var(--r) top / 100% 7px no-repeat, var(--r) bottom / 100% 7px no-repeat, var(--v) left / 7px 100% no-repeat, var(--v) right / 7px 100% no-repeat; }
.et-nom { margin: 0; font-family: var(--serif); font-style: italic; font-size: 34px; color: var(--oliva); line-height: 1.1; }
.etiqueta img { width: 62%; margin: 10px auto 14px; }
.et-linea { margin: 6px auto 0; display: grid; grid-template-columns: 54px 1fr; align-items: end; gap: 8px; max-width: 290px; text-align: left; font-size: 15px; color: var(--gris); }
.et-linea b { font-family: var(--serif); font-style: italic; font-weight: 400; font-size: 17px; color: var(--oliva-hondo); border-bottom: 1px solid #BDB8A6; padding-bottom: 2px; }
.oc-pestanas { display: flex; flex-wrap: wrap; gap: 8px; border-bottom: 1px solid var(--linea); padding-bottom: 14px; }
.oc-pestanas button { height: 40px; padding: 0 18px; border: 1px solid var(--linea); border-radius: 20px; background: #fff; font-size: 14.5px; font-weight: 500; }
.oc-pestanas button[aria-selected=true] { background: var(--oliva-osc); border-color: var(--oliva-osc); color: #fff; }
.oc-lista { list-style: none; margin: 22px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px 16px; }
.oc-lista button { display: grid; gap: 8px; text-align: left; width: 100%; font-size: 14px; font-weight: 500; line-height: 1.35; }
.oc-lista img { width: 100%; aspect-ratio: 4 / 5; object-fit: contain; background: #fff; border-radius: var(--radio); }
.oc-lista button:hover span { text-decoration: underline; text-underline-offset: 3px; }
.vaquita { margin-top: 28px; padding: 20px 22px; background: #fff; border: 1px solid var(--linea); border-radius: var(--radio); }
.vaquita h3 { font-family: var(--serif); font-style: italic; font-size: 24px; color: var(--oliva-osc); }
.vaquita p { margin: 6px 0 10px; font-size: 15px; max-width: 62ch; }

/* Local */
.local { max-width: var(--ancho); margin: 0 auto; padding: clamp(48px, 7vw, 88px) var(--gut); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: clamp(28px, 5vw, 64px); align-items: center; }
.datos { margin: 20px 0 26px; display: grid; gap: 12px; }
.datos div { display: grid; grid-template-columns: 96px 1fr; gap: 12px; padding-bottom: 12px; border-bottom: 1px solid var(--linea); }
.datos dt { font-size: 12.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--gris); padding-top: 2px; }
.datos dd { margin: 0; overflow-wrap: anywhere; }
.local-acc { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; }
.insta { display: inline-flex; align-items: center; gap: 8px; color: var(--oliva-hondo); font-weight: 600; text-decoration: none; }
.insta:hover { text-decoration: underline; text-underline-offset: 3px; }
.insta svg { width: 24px; height: 24px; }
.insta .punto { fill: currentColor; }
.local-mapa { aspect-ratio: 4 / 3; border: 1px solid var(--linea); }
.local-mapa iframe { width: 100%; height: 100%; border: 0; display: block; filter: grayscale(.35) sepia(.12); }

/* Pie */
.pie { border-top: 1px solid var(--linea); text-align: center; padding: 40px var(--gut) 90px; color: var(--gris); font-size: 14px; }
.pie p { margin: 4px 0; }
.pie-nom { font-family: var(--serif); font-style: italic; font-size: 30px; color: var(--oliva-osc); }
.pie-redes a { color: var(--oliva-hondo); }

.wsp-fijo { position: fixed; right: 18px; bottom: 18px; width: 56px; height: 56px; border-radius: 50%; background: var(--wsp); color: #fff; display: grid; place-items: center; box-shadow: 0 10px 24px -10px rgba(0, 0, 0, .45); z-index: 25; }
.wsp-fijo svg { width: 30px; height: 30px; }

/* Diálogos */
dialog { border: 0; padding: 0; color: var(--tinta); background: #fff; }
dialog::backdrop { background: rgba(46, 45, 38, .45); }
.cerrar { position: absolute; top: 10px; right: 10px; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; background: #fff; z-index: 2; }
.cerrar:hover { background: var(--papel); }
.ficha { width: min(980px, calc(100vw - 32px)); max-height: calc(100vh - 32px); border-radius: var(--radio); }
.ficha-in { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); }
.ficha-galeria { padding: 24px; }
.ficha-foto { aspect-ratio: 4 / 5; }
.ficha-foto img { width: 100%; height: 100%; object-fit: contain; }
.ficha-minis { display: flex; gap: 8px; margin-top: 10px; }
.ficha-minis button { width: 56px; border: 1px solid var(--linea); border-radius: var(--radio); }
.ficha-minis button[aria-pressed=true] { border-color: var(--oliva-osc); }
.ficha-minis img { width: 100%; aspect-ratio: 4 / 5; object-fit: contain; }
.ficha-txt { padding: 44px 32px 30px 8px; display: flex; flex-direction: column; gap: 10px; }
.ficha-cat { margin: 0; font-size: 12.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--gris); }
.ficha h2 { font-family: var(--serif); font-style: italic; font-size: clamp(26px, 2.6vw, 34px); color: var(--oliva-hondo); line-height: 1.15; }
.ficha-precio { margin: 0; font-size: 22px; font-weight: 700; }
.ficha-edad, .ficha-desc { margin: 0; color: var(--gris); font-size: 15px; }
.ficha-desc { color: var(--tinta); }
.ficha-talles { border: 0; padding: 0; margin: 4px 0 0; }
.ficha-talles legend { font-size: 13px; font-weight: 600; margin-bottom: 6px; }
.talles { display: flex; flex-wrap: wrap; gap: 8px; }
.talles button { min-height: 40px; padding: 0 14px; border: 1px solid var(--linea); border-radius: var(--radio); font-size: 14px; }
.talles button[aria-pressed=true] { background: var(--oliva-osc); border-color: var(--oliva-osc); color: #fff; }
.cant { display: flex; align-items: center; gap: 10px; font-size: 14px; }
.cant span { margin-right: 6px; font-weight: 600; font-size: 13px; }
.cant button { width: 40px; height: 40px; border: 1px solid var(--linea); border-radius: var(--radio); font-size: 18px; }
.cant output { min-width: 24px; text-align: center; font-weight: 700; }
.regalo-chk { display: flex; gap: 10px; align-items: center; font-size: 15px; cursor: pointer; }
.regalo-chk input, .entrega input { accent-color: var(--oliva-osc); width: 18px; height: 18px; }
.regalo-campos { display: grid; gap: 6px; font-size: 13px; font-weight: 600; }
textarea, .bolsa-form input:not([type=radio]) { width: 100%; border: 1px solid var(--linea); border-radius: var(--radio); padding: 10px 12px; font-size: 16px; font-weight: 400; }
.ficha-nota { margin: 0; font-size: 13px; color: var(--gris); }
.bolsa { width: min(460px, 100vw); height: 100%; max-height: none; margin: 0 0 0 auto; padding: 0 22px 24px; overflow: auto; }
.bolsa-cab { position: sticky; top: 0; background: #fff; display: flex; justify-content: space-between; align-items: center; padding: 18px 0 12px; border-bottom: 1px solid var(--linea); z-index: 2; }
.bolsa-cab h2 { font-family: var(--serif); font-style: italic; font-size: 28px; color: var(--oliva-osc); }
.bolsa-cab .cerrar { position: static; }
.bolsa-lista { list-style: none; margin: 0; padding: 0; }
.bolsa-lista li { display: grid; grid-template-columns: 56px 1fr auto; gap: 12px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--linea); }
.bolsa-lista img { width: 56px; height: 70px; object-fit: contain; }
.bolsa-lista b { display: block; font-weight: 600; font-size: 14.5px; }
.bolsa-lista small { display: block; color: var(--gris); font-size: 13px; }
.quitar { font-size: 13px; color: var(--gris); text-decoration: underline; }
.bolsa-vacia { color: var(--gris); padding: 24px 0; }
.bolsa-form { display: grid; gap: 10px; padding-top: 16px; font-size: 14px; }
.bolsa-form label { font-weight: 600; }
.bolsa-total { margin: 0 0 6px; display: flex; justify-content: space-between; font-size: 17px; }
.entrega { border: 0; padding: 0; margin: 0; display: grid; gap: 8px; }
.entrega legend { font-weight: 600; margin-bottom: 4px; }
.entrega label { display: flex; gap: 10px; align-items: center; font-weight: 400; }

/* Tablet */
@media (max-width: 1180px) {
  .grilla { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .oc-lista { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .oc-lista li:nth-child(n+7) { display: none; }
}
@media (max-width: 960px) {
  .tienda { grid-template-columns: 1fr; }
  .lateral { display: none; }
  .filtros-movil { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 10px; margin-top: 14px; }
  .filtros-movil label:first-child { grid-column: 1 / -1; }
  .tienda-cab .orden { display: none; }
  .filtros-movil label { display: grid; gap: 4px; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--gris); }
  .filtros-movil select { width: 100%; height: 46px; text-transform: none; letter-spacing: 0; font-weight: 500; color: var(--tinta); }
  .regalos { grid-template-columns: 1fr; }
  .regalos-intro { max-width: 520px; }
  .local { grid-template-columns: 1fr; }
  .ficha-in { grid-template-columns: 1fr; }
  .ficha-galeria { padding: 16px 16px 0; }
  .ficha-foto { aspect-ratio: auto; height: min(56vh, 520px); }
  .ficha-txt { padding: 18px 20px 24px; }
}
/* Celular */
@media (max-width: 760px) {
  html { scroll-padding-top: 130px; }
  .aviso { font-size: 12px; padding: 6px 12px; }
  .cab-in { grid-template-columns: 1fr auto; grid-template-areas: 'marca acc' 'buscar buscar'; gap: 10px 12px; padding: 10px 16px 12px; }
  .marca { grid-area: marca; }
  .marca-nom { font-size: 28px; }
  .marca-sub { font-size: 10px; letter-spacing: .2em; margin-top: 4px; }
  .buscador { grid-area: buscar; max-width: none; height: 48px; }
  .buscar-btn { padding: 0 14px; }
  .cab-acc { grid-area: acc; }
  .menu { display: none; }
  .portada { padding: 12px 16px 14px; min-height: 0; }
  .marco { padding: 30px 20px; }
  .b-arr, .b-aba { left: 10px; right: 10px; height: 8px; } .b-arr { top: 9px; } .b-aba { bottom: 9px; }
  .b-izq, .b-der { width: 8px; top: 24px; bottom: 24px; } .b-izq { left: 9px; } .b-der { right: 9px; }
  .portada h1 { font-size: min(8.4vw, 4.6vh); max-width: 16ch; }
  .portada h1 .l { display: inline; }
  .vidriera { height: auto; width: 100%; max-height: 32vh; }
  .portada-acc { width: 100%; flex-direction: column; align-items: stretch; gap: 10px; }
  .edades-fila { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .edad { padding: 16px 8px 14px; }
  .tienda-cab { flex-direction: column; align-items: stretch; }
  .grilla { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 14px; }
  .prod-info h3 { font-size: 14px; }
  .prod-mas { width: 100%; justify-content: center; }
  .oc-lista { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .oc-lista li:nth-child(n+7) { display: list-item; }
  .etiqueta { padding: 22px 18px 18px; }
  .datos div { grid-template-columns: 1fr; gap: 2px; }
  .ficha { width: 100vw; max-width: 100vw; max-height: 100dvh; height: 100dvh; margin: 0; border-radius: 0; }
  .ficha-foto { height: 46vh; }
  .wsp-fijo { width: 52px; height: 52px; right: 14px; bottom: 14px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }

/* Pagos y envíos (v2.2) — datos de su Empretienda */
.aviso a { color: inherit; text-decoration: none; }
.aviso a:hover .aviso-mas, .aviso a:focus-visible .aviso-mas { text-decoration: underline; text-underline-offset: 3px; }
.aviso-mas { font-weight: 600; }
.pagos { max-width: var(--ancho); margin: 0 auto; padding: clamp(48px, 7vw, 88px) var(--gut) clamp(40px, 5vw, 64px); }
.pagos-cab { text-align: center; max-width: 640px; margin: 0 auto; }
.pagos-cab h2 { font-family: var(--serif); font-style: italic; color: var(--oliva-osc); font-size: clamp(30px, 3.4vw, 42px); }
.pagos-cab p { margin: 10px 0 0; color: var(--gris); font-size: 15.5px; }
.pagos-grilla { margin-top: clamp(28px, 4vw, 44px); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--linea); border-bottom: 1px solid var(--linea); }
.pago-bloque { padding: 30px clamp(18px, 2vw, 30px) 30px; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; min-width: 0; }
.pago-bloque + .pago-bloque { border-left: 1px solid var(--linea); }
.pago-ico { width: 44px; height: 44px; color: var(--oliva); stroke-width: 1.3; }
.pago-bloque h3 { font-family: var(--serif); font-style: italic; font-size: 25px; line-height: 1.15; color: var(--oliva-osc); }
.pago-bloque ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; font-size: 14.5px; line-height: 1.5; }
.pago-bloque li { padding-left: 14px; position: relative; }
.pago-bloque li::before { content: ''; position: absolute; left: 0; top: .68em; width: 5px; height: 1px; background: var(--oliva); }
.pago-bloque b { font-weight: 600; color: var(--oliva-hondo); }
.pago-bloque > .enlace { margin-top: 2px; font-size: 14.5px; }
.pie-pagos { color: var(--oliva-hondo); }
.datos dd a { color: var(--oliva-hondo); }
.ficha-envio { list-style: none; margin: 6px 0 0; padding: 12px 0 0; border-top: 1px solid var(--linea); display: grid; gap: 7px; font-size: 13.5px; color: var(--gris); }
.ficha-envio li { display: grid; grid-template-columns: 22px 1fr; gap: 10px; align-items: center; }
.ficha-envio svg { width: 22px; height: 22px; color: var(--oliva); stroke-width: 1.6; }
.ficha-pagos { font-size: 13.5px; align-self: flex-start; }
.bolsa-pagos { margin: 14px 0 0; font-size: 14px; }
@media (max-width: 1180px) {
  .pagos-grilla { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pago-bloque:nth-child(3) { border-left: 0; }
  .pago-bloque:nth-child(n+3) { border-top: 1px solid var(--linea); }
}
@media (max-width: 760px) {
  .aviso-mas { display: none; }
  .aviso a { text-decoration: underline; text-decoration-color: rgba(70, 67, 47, .35); text-underline-offset: 3px; }
  .pagos-grilla { grid-template-columns: 1fr; border-bottom: 0; }
  .pago-bloque { padding: 22px 2px; border-left: 0 !important; border-bottom: 1px solid var(--linea); display: grid; grid-template-columns: 36px minmax(0, 1fr); align-items: center; gap: 12px 14px; }
  .pago-ico { width: 36px; height: 36px; }
  .pago-bloque h3 { font-size: 24px; }
  .pago-bloque ul, .pago-bloque > .enlace { grid-column: 1 / -1; justify-self: start; }
  .pago-bloque + .pago-bloque { border-top: 0; }
  .pago-bloque:nth-child(n+3) { border-top: 0; }
}

/* Checkout en 3 pasos (v2.3) */
.bolsa { padding: 0; overscroll-behavior: contain; }
.bolsa-cab { padding: 18px 22px 12px; }
.bolsa[data-paso="2"], .bolsa[data-paso="3"] { width: min(980px, 100vw); }
.bolsa[data-paso="mp"], .bolsa[data-paso="4"] { width: min(620px, 100vw); }
.co-pasos { list-style: none; margin: 0; padding: 14px 22px; display: flex; align-items: center; gap: 0; border-bottom: 1px solid var(--linea); counter-reset: paso; }
.co-pasos li { display: flex; align-items: center; flex: 1; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--gris); }
.co-pasos li:last-child { flex: 0 0 auto; }
.co-pasos li:not(:last-child)::after { content: ''; flex: 1; height: 1px; margin: 0 12px; background: var(--linea); }
.co-pasos li.hecho:not(:last-child)::after { background: var(--oliva); }
.co-pasos button { display: inline-flex; align-items: center; gap: 8px; min-height: 32px; text-transform: inherit; letter-spacing: inherit; font-weight: 600; }
.co-pasos button:disabled { cursor: default; }
.co-pasos span { width: 26px; height: 26px; border-radius: 50%; border: 1px solid currentColor; display: grid; place-items: center; font-family: var(--serif); font-style: italic; font-size: 15px; letter-spacing: 0; text-transform: none; }
.co-pasos li[aria-current] { color: var(--oliva-hondo); }
.co-pasos li[aria-current] span { background: var(--oliva-osc); border-color: var(--oliva-osc); color: #fff; }
.co-pasos li.hecho { color: var(--oliva-osc); }
.co-pasos li.hecho button:hover { text-decoration: underline; text-underline-offset: 3px; }
.co-pasos li.hecho span { background: var(--papel); border-color: var(--oliva); }
.co-cuerpo { display: grid; grid-template-columns: minmax(0, 1fr); }
.co-main { padding: 0 22px 28px; min-width: 0; }
.co-paso { display: grid; gap: 18px; }
.bolsa[data-paso="1"] .co-paso { gap: 0; }
/* Paso 1 */
.bolsa-lista li { grid-template-columns: 64px minmax(0, 1fr) auto; align-items: start; padding: 16px 0; }
.bolsa-lista img { width: 64px; height: 80px; }
.bl-info { display: grid; gap: 2px; }
.bl-fila { display: flex; align-items: center; gap: 16px; margin-top: 8px; }
.bl-precio { font-weight: 700; font-size: 15px; white-space: nowrap; }
.cant-chica { gap: 0; border: 1px solid var(--linea); border-radius: var(--radio); }
.cant-chica button { width: 34px; height: 34px; border: 0; font-size: 17px; color: var(--oliva-hondo); }
.cant-chica button:hover { background: var(--papel); }
.cant-chica output { min-width: 28px; font-size: 14px; }
.bolsa-vacia { display: grid; justify-items: start; gap: 14px; padding: 28px 0; }
.bolsa-vacia p { margin: 0; }
.co-fin { display: grid; gap: 10px; }
.co-barra { display: grid; gap: 10px; padding-top: 16px; }
.co-fin { padding-top: 10px; }
.co-total { margin: 0; display: flex; justify-content: space-between; align-items: baseline; font-size: 16px; font-weight: 600; }
.co-total strong { font-size: 22px; }
.co-nota { margin: 0; font-size: 13px; color: var(--gris); line-height: 1.45; }
.boton-wsp svg, .boton-wsp-lleno svg { width: 20px; height: 20px; }
.boton-wsp { color: var(--oliva-hondo); }
.boton-wsp svg { color: var(--wsp); }
.boton-wsp-lleno { background: var(--wsp); border-color: var(--wsp); }
.boton-wsp-lleno:hover { background: #1E8A4C; border-color: #1E8A4C; }
.bolsa-pagos { margin: 4px 0 0; text-align: center; }
/* Formularios */
.co-grupo { border: 0; margin: 0; padding: 22px 0 0; display: grid; gap: 14px; min-width: 0; }
.co-grupo legend { padding: 0; margin-bottom: 2px; font-family: var(--serif); font-style: italic; font-size: 24px; color: var(--oliva-osc); }
.campos-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.campos-2:has(.campo-ancho) { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
.campo { display: grid; gap: 6px; min-width: 0; }
.campo label { font-size: 13.5px; font-weight: 600; }
.opc { font-weight: 400; color: var(--gris); }
.campo input, .campo select { width: 100%; height: 48px; border: 1px solid #CFCABC; border-radius: var(--radio); padding: 0 12px; font-size: 16px; background: #fff; }
.campo input:focus, .campo select:focus { outline: 0; border-color: var(--oliva-osc); box-shadow: 0 0 0 3px rgba(126, 121, 92, .16); }
.campo .error { display: none; margin: 0; font-size: 13px; color: #A33A2A; }
.campo.mal input { border-color: #A33A2A; }
.campo.mal .error { display: block; }
.cp-fila { display: flex; align-items: center; gap: 14px; }
.cp-fila input { max-width: 150px; letter-spacing: .12em; }
.cp-ayuda { font-size: 13px; color: var(--gris); text-underline-offset: 3px; }
.opciones { display: grid; gap: 8px; }
.opcion { position: relative; display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; gap: 12px; align-items: start; padding: 14px 16px; border: 1px solid var(--linea); border-radius: var(--radio); cursor: pointer; transition: border-color .15s, background .15s; }
.opcion:hover { border-color: var(--oliva); }
.opcion:has(input:checked) { border-color: var(--oliva-osc); background: #FAF9F5; box-shadow: inset 0 0 0 1px var(--oliva-osc); }
.opcion input { accent-color: var(--oliva-osc); width: 18px; height: 18px; margin: 2px 0 0; }
.opcion.apagada { cursor: not-allowed; opacity: .55; }
.op-txt { display: grid; gap: 3px; min-width: 0; }
.op-txt b { font-weight: 600; font-size: 15px; }
.op-txt small { font-size: 13px; color: var(--gris); line-height: 1.45; }
.op-precio { text-align: right; display: grid; justify-items: end; font-size: 14.5px; white-space: nowrap; }
.op-precio em { font-style: normal; font-weight: 700; }
.op-precio em.gratis { color: var(--oliva-osc); }
.op-precio em.sin-cp { font-weight: 500; font-size: 12.5px; color: var(--gris); }
.op-precio small { font-size: 11.5px; color: var(--gris); letter-spacing: .04em; }
.co-dir { display: grid; gap: 14px; padding-top: 4px; }
.co-acc { display: grid; gap: 8px; padding-top: 22px; }
.volver { justify-self: center; min-height: 40px; font-size: 14px; color: var(--gris); text-decoration: underline; text-underline-offset: 3px; }
.volver:hover { color: var(--oliva-hondo); }
.co-total-movil { display: none; }
/* Medios de pago */
.medios { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 8px; }
.medios i, .mp-logo i { font-style: normal; display: inline-flex; align-items: center; gap: 3px; height: 24px; padding: 0 7px; border: 1px solid var(--linea); border-radius: 3px; background: #fff; font-size: 11px; font-weight: 700; letter-spacing: .02em; color: var(--tinta); }
.medios svg { width: 16px; height: 10px; stroke: none; }
.medios .m-master svg circle:first-child { fill: #EB001B; } .medios .m-master svg circle:last-child { fill: #F79E1B; opacity: .85; }
.m-mp { background: #00B1EA !important; border-color: #00B1EA !important; color: #fff !important; text-transform: lowercase; }
.m-visa { color: #1A1F71 !important; font-style: italic !important; font-weight: 800 !important; }
.m-amex { background: #1F72CD !important; border-color: #1F72CD !important; color: #fff !important; }
.m-naranja { color: #FE5000 !important; }
.m-cabal { color: #00589F !important; }
.m-maestro { color: #0099DF !important; }
.m-cash { color: var(--gris) !important; font-weight: 600 !important; }
.cuotas { display: grid; gap: 6px; margin: -2px 0 6px; padding: 14px 16px 16px 48px; border: 1px solid var(--oliva-osc); border-top: 0; border-radius: 0 0 var(--radio) var(--radio); background: #FAF9F5; }
.opcion:has(input[value=mp]:checked) { border-radius: var(--radio) var(--radio) 0 0; }
.cuotas label { font-size: 13.5px; font-weight: 600; }
.cuotas select { width: 100%; height: 46px; border: 1px solid #CFCABC; border-radius: var(--radio); padding: 0 10px; font-size: 15px; background: #fff; }
/* Repaso en el pago */
.co-repaso { display: grid; gap: 0; border-top: 1px solid var(--linea); }
.co-repaso div { display: grid; grid-template-columns: 90px minmax(0, 1fr) auto; gap: 12px; align-items: start; padding: 14px 0; border-bottom: 1px solid var(--linea); font-size: 14px; }
.co-repaso span { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--gris); padding-top: 2px; }
.co-repaso p { margin: 0; overflow-wrap: anywhere; }
.co-repaso .enlace { font-size: 13px; }
/* Resumen */
.co-resumen { background: var(--papel); border-left: 1px solid var(--linea); padding: 22px 24px; align-self: stretch; }
.co-resumen summary { list-style: none; display: flex; justify-content: space-between; align-items: baseline; font-family: var(--serif); font-style: italic; font-size: 22px; color: var(--oliva-osc); cursor: default; }
.co-resumen summary::-webkit-details-marker { display: none; }
.co-resumen summary strong { display: none; font-family: var(--sans); font-style: normal; font-size: 17px; color: var(--tinta); }
.res-lista { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 12px; }
.res-lista li { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: 12px; align-items: center; font-size: 13.5px; }
.res-foto { position: relative; width: 48px; height: 60px; background: #fff; border: 1px solid var(--linea); border-radius: var(--radio); }
.res-foto img { width: 100%; height: 100%; object-fit: contain; }
.res-foto i { position: absolute; top: -7px; right: -7px; min-width: 20px; height: 20px; border-radius: 10px; background: var(--oliva-osc); color: #fff; font-style: normal; font-size: 11px; font-weight: 700; display: grid; place-items: center; padding: 0 5px; }
.res-n { line-height: 1.35; }
.res-n small { display: block; color: var(--gris); font-size: 12.5px; }
.res-lista b { font-weight: 600; white-space: nowrap; }
.res-cuentas { margin: 18px 0 0; padding-top: 14px; border-top: 1px solid var(--linea); display: grid; gap: 8px; font-size: 14px; }
.res-cuentas div { display: flex; justify-content: space-between; gap: 12px; }
.res-cuentas dt { color: var(--gris); } .res-cuentas dd { margin: 0; text-align: right; }
.res-total { padding-top: 10px; border-top: 1px solid var(--linea); font-size: 17px; font-weight: 700; }
.res-total dt { color: var(--tinta) !important; }
.res-total dd { font-size: 20px; }
.co-resumen .co-nota { margin-top: 10px; }
/* Mercado Pago (muestra) y confirmación */
.co-mp, .co-listo { padding-top: 26px; }
.mp-marco { display: grid; gap: 14px; padding: 26px 24px; border: 1px solid #BFE6F5; background: #F3FBFE; border-radius: 6px; }
.mp-logo { margin: 0; }
.mp-logo i { height: 30px; font-size: 14px; padding: 0 12px; border-radius: 15px; }
.mp-marco h3 { font-family: var(--serif); font-style: italic; font-size: clamp(26px, 3vw, 32px); line-height: 1.15; color: var(--oliva-hondo); }
.mp-marco p { margin: 0; font-size: 15px; }
.mp-datos { margin: 0; display: grid; gap: 0; border-top: 1px solid #BFE6F5; }
.mp-datos div { display: flex; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid #BFE6F5; font-size: 14.5px; }
.mp-datos dt { color: var(--gris); } .mp-datos dd { margin: 0; font-weight: 700; }
.mp-demo { margin: 0; font-size: 12.5px; color: var(--gris); text-align: center; }
.co-listo { justify-items: center; text-align: center; }
.listo-ico { width: 64px; height: 64px; color: var(--oliva-osc); stroke-width: 1.4; }
.co-listo h3 { font-family: var(--serif); font-style: italic; font-size: clamp(34px, 4vw, 44px); color: var(--oliva-osc); line-height: 1.05; }
.listo-num { margin: -6px 0 0; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--gris); }
.listo-num b { color: var(--tinta); letter-spacing: .08em; }
.listo-sub { margin: 0; max-width: 46ch; font-size: 15px; }
.listo-caja { width: 100%; text-align: left; padding: 20px 22px; border: 1px solid var(--linea); border-radius: var(--radio); }
.listo-caja h4 { margin: 0; font-family: var(--serif); font-style: italic; font-weight: 400; font-size: 21px; color: var(--oliva-osc); }
.listo-pasos { margin: 12px 0 0; padding-left: 22px; display: grid; gap: 8px; font-size: 14.5px; }
.listo-pasos li::marker { font-family: var(--serif); font-style: italic; color: var(--oliva); }
.listo-datos { margin: 14px 0 0; padding-top: 12px; border-top: 1px solid var(--linea); display: grid; gap: 8px; font-size: 14px; }
.listo-datos div { display: grid; grid-template-columns: 70px minmax(0, 1fr); gap: 10px; }
.listo-datos dt { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--gris); padding-top: 2px; }
.listo-datos dd { margin: 0; overflow-wrap: anywhere; }
.co-listo .co-acc { width: 100%; }
/* Escritorio: resumen al costado en envío y pago */
@media (min-width: 860px) {
  .bolsa[data-paso="2"] .co-cuerpo, .bolsa[data-paso="3"] .co-cuerpo { grid-template-columns: minmax(0, 1fr) 340px; min-height: calc(100% - 130px); }
  .bolsa[data-paso="2"] .co-main, .bolsa[data-paso="3"] .co-main { padding: 0 34px 34px; }
  .bolsa[data-paso="2"] .co-pasos, .bolsa[data-paso="3"] .co-pasos { padding-inline: 34px; }
  .bolsa[data-paso="2"] .bolsa-cab, .bolsa[data-paso="3"] .bolsa-cab { padding-inline: 34px 22px; }
  .co-resumen > :not(summary) { position: relative; }
  .co-acc { grid-template-columns: 1fr; max-width: 420px; }
  .co-listo .co-acc, .bolsa[data-paso="1"] .co-acc { max-width: none; }
}
/* Celular */
@media (max-width: 859px) {
  .bolsa[data-paso] { width: 100vw; max-width: 100vw; height: 100dvh; }
  .co-resumen { order: -1; border-left: 0; border-bottom: 1px solid var(--linea); padding: 0; }
  .co-resumen summary { padding: 14px 16px; font-size: 18px; cursor: pointer; }
  .co-resumen summary span::after { content: ' ▾'; font-family: var(--sans); font-style: normal; font-size: 12px; color: var(--gris); }
  .co-resumen[open] summary span::after { content: ' ▴'; }
  .co-resumen summary strong { display: block; }
  .co-resumen > :not(summary) { margin-inline: 16px; }
  .co-resumen > .co-nota { padding-bottom: 14px; }
  .co-main { padding: 0 16px 0; }
  .bolsa-cab { padding: 14px 16px 10px; }
  .bolsa-cab h2 { font-size: 26px; }
  .co-pasos { padding: 10px 16px; }
  .co-pasos li { font-size: 12px; }
  .co-pasos li:not(:last-child)::after { margin: 0 8px; }
  .campos-2 { grid-template-columns: 1fr; }
  .opcion { padding: 13px 14px; gap: 10px; }
  .cuotas { padding: 12px 14px 14px; }
  .co-repaso div { grid-template-columns: minmax(0, 1fr) auto; }
  .co-repaso span { grid-column: 1 / -1; }
  .co-repaso p { grid-column: 1; }
  .co-barra, .co-acc { position: sticky; bottom: 0; z-index: 3; background: #fff; margin: 0 -16px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); border-top: 1px solid var(--linea); box-shadow: 0 -10px 20px -16px rgba(46, 45, 38, .35); }
  .co-fin { padding-bottom: 20px; }
  .co-barra .co-nota { display: none; }
  .co-total-movil { display: flex; }
  .co-listo .co-acc, .co-mp .co-acc { position: static; box-shadow: none; border-top: 0; margin: 0; padding: 4px 0 24px; }
  .co-mp, .co-listo { padding-bottom: 24px; }
  .mp-marco { padding: 22px 18px; }
  .listo-caja { padding: 18px 16px; }
}
/* Transferencia primero y destacada (pedido del local, 2/11) */
.sello { font-style: normal; display: inline-block; margin-left: 8px; padding: 2px 9px; border-radius: 11px; background: var(--oliva-osc); color: #fff; font-size: 11.5px; font-weight: 700; letter-spacing: .05em; vertical-align: 2px; white-space: nowrap; }
.opcion-destacada { border-color: var(--oliva); }
.pago-bloque li:first-child b { color: var(--oliva-osc); }
/* Portada como la captura de la clienta (2/11): sin título visible, vidriera más grande, un solo botón */
.vidriera { height: min(52vh, 46vw, 560px); }
.portada-acc .boton { min-width: 260px; }
@media (max-width: 760px) {
  .portada { height: auto; }
  .marco { padding: 40px 22px 38px; }
  .vidriera { height: auto; max-height: 44vh; }
  .portada-acc .boton { min-width: 0; }
}
.desc-opc { display: block; margin-top: 8px; padding: 8px 10px; border: 1px dashed var(--oliva); border-radius: var(--radio); font-size: 12.5px; color: var(--oliva-hondo); line-height: 1.4; }
.desc-opc b { font-weight: 700; }
.listo-banco { margin: 14px 0 0; padding: 12px 14px; background: var(--papel); border-radius: var(--radio); display: grid; gap: 6px; font-size: 14px; }
.listo-banco div { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 10px; }
.listo-banco dt { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--gris); padding-top: 2px; }
.listo-banco dd { margin: 0; font-weight: 600; }
.listo-banco .relleno-dato { font-weight: 400; font-style: italic; color: var(--gris); }

/* v2.4 (2/11) — pedidos de María José */
/* Portada sin el marco de rayitas (ni la línea fina): solo la vidriera sobre blanco */
.marco { border: 0; }
.borde { display: none; }
/* Categorías jerárquicas: título destacado (Bodoni itálica, oliva) y sus subcategorías debajo, sin cantidades */
@media (min-width: 961px) { .tienda { grid-template-columns: 252px minmax(0, 1fr); } } /* v2.5: antes pisaba la media query y en celular la grilla quedaba en 252 px */
.lateral { position: static; max-height: none; overflow: visible; padding-right: 0; }
.cats .cat-todos { padding-bottom: 6px; }
.cats .cat-grupo { padding: 14px 0 12px; border-top: 1px solid var(--linea); }
.cats button.cat-tit { display: block; width: 100%; padding: 2px 0; font-family: var(--serif); font-style: italic; font-weight: 400; font-size: 23px; line-height: 1.2; color: var(--oliva-osc); letter-spacing: 0; }
.cats button.cat-tit-todos { font-size: 19px; color: var(--oliva-hondo); }
.cats button.cat-tit:hover { color: var(--oliva-hondo); text-decoration: none; }
.cats button.cat-tit[aria-pressed=true] { font-weight: 600; color: var(--oliva-hondo); }
.cats button.cat-tit[aria-pressed=true]::before { display: none; }
.cats button.cat-tit[aria-pressed=true]::after { content: ''; display: block; width: 28px; height: 2px; margin-top: 6px; background: var(--oliva); }
.cat-subs { list-style: none; margin: 8px 0 0; padding: 0 0 0 16px; }
.cats button.cat-sub { display: flex; align-items: center; gap: 8px; padding: 5px 0; font-size: 14.5px; line-height: 1.35; color: #4E4C44; }
.cats button.cat-sub:hover { color: var(--oliva-hondo); }
.cats button.cat-sub[aria-pressed=true] { color: var(--oliva-hondo); font-weight: 700; }
.cats button.cat-sub[aria-pressed=true]::before { margin-left: -14px; }
.cats-edad { padding-left: 0; }
.cuenta:empty { display: none; }
.cuenta { font-size: 12.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--oliva); font-weight: 600; order: -1; }
.tienda-cab > div { display: flex; flex-direction: column; }
/* Descuento por transferencia (10 % en compras de más de $30.000) */
.desc-transf { display: block; margin-top: 8px; font-size: 13px; line-height: 1.45; color: var(--oliva-hondo); }
.desc-transf.ok { color: var(--oliva-osc); }
.desc-transf b { font-weight: 700; }
.desc-aviso { margin: 0; font-size: 13px; line-height: 1.45; color: var(--oliva-hondo); }
.desc-aviso.ok { font-weight: 600; }
.co-resumen .desc-aviso { margin-top: 10px; padding: 8px 10px; background: var(--papel); border-radius: var(--radio); }
.res-desc dt, .res-desc dd { color: var(--oliva-osc) !important; font-weight: 600; }
@media (max-width: 760px) { .co-barra .desc-aviso { font-size: 12.5px; } }
.nw { white-space: nowrap; }
@media (max-width: 960px) { .filtros-movil select { padding-left: 12px; padding-right: 30px; text-overflow: ellipsis; } }

/* v2.5 (3/11) — categorías en acordeón (pedido de María José): solo los títulos; al tocar uno se abren sus subcategorías */
.cats .cat-todos { padding-bottom: 8px; }
.cats .cat-grupo { padding: 0; border-top: 1px solid var(--linea); }
.cats .cat-grupo:last-child { border-bottom: 1px solid var(--linea); }
.cats button.cat-tit { display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; padding: 9px 2px 9px 0; font-size: 20px; line-height: 1.2; }
.cats button.cat-tit-todos { display: block; padding: 4px 0; font-size: 18px; }
.cats button.cat-tit-todos[aria-pressed=true] { font-weight: 600; }
.cats button.cat-tit-todos[aria-pressed=true]::after { display: none; }
.cats .cat-tit .chev { flex: none; width: 18px; height: 18px; stroke-width: 1.8; color: var(--oliva); transition: transform .22s ease; }
.cats .abierto > .cat-tit .chev { transform: rotate(180deg); }
.cats .activo > .cat-tit { font-weight: 600; color: var(--oliva-hondo); }
.cats .cat-tit:disabled .chev { color: #C9C6BB; }
.cat-panel { display: grid; grid-template-rows: 0fr; visibility: hidden; transition: grid-template-rows .22s ease, visibility 0s linear .22s; }
.abierto > .cat-panel { grid-template-rows: 1fr; visibility: visible; transition: grid-template-rows .22s ease, visibility 0s; }
.cat-panel > .cat-subs { min-height: 0; overflow: hidden; margin: 0; padding: 0 0 0 16px; }
.abierto > .cat-panel > .cat-subs { padding-bottom: 12px; }
.cats button.cat-sub-todo { font-weight: 600; color: var(--oliva-osc); }
.cats button:focus-visible { outline-offset: 1px; }
/* Celular: botón "Categoría" que abre la hoja con los títulos */
.f-cat { display: grid; gap: 4px; grid-column: 1 / -1; }
.f-lab { font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--gris); }
.cat-abrir { display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; height: 46px; padding: 0 12px; border: 1px solid var(--linea); border-radius: var(--radio); background: #fff; font-size: 15px; font-weight: 500; color: var(--tinta); text-align: left; }
.cat-abrir span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cat-abrir svg { flex: none; width: 16px; height: 16px; stroke: var(--oliva-osc); stroke-width: 2; }
.hoja-cats { position: fixed; inset: auto 0 0 0; margin: 0; width: 100%; max-width: 100%; max-height: 88dvh; overflow: auto; overscroll-behavior: contain; border-radius: 12px 12px 0 0; padding: 0 20px calc(20px + env(safe-area-inset-bottom)); }
.hoja-cats[open] { animation: hoja-sube .22s ease-out; }
@keyframes hoja-sube { from { transform: translateY(24px); opacity: 0; } to { transform: none; opacity: 1; } }
.hoja-cab { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between; padding: 14px 0 12px; background: #fff; border-bottom: 1px solid var(--linea); margin-bottom: 8px; }
.hoja-cab h2 { font-size: 13px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--oliva-hondo); }
.hoja-cab .cerrar { position: static; margin-right: -10px; }
.cats-hoja button.cat-tit { padding: 12px 2px 12px 0; font-size: 21px; }
.cats-hoja button.cat-sub { padding: 8px 0; font-size: 15.5px; }
.cats .cat-tit > span { margin-left: 0; font-size: inherit; color: inherit; font-weight: inherit; text-align: left; }
@media (hover: none) { .cats button:hover { text-decoration: none; } }
.ficha-envio li > span { min-width: 0; }

/* Producción (3/11): datos para transferir, copiar, pie fiscal */
.datos-cuenta { margin: 6px 0 0; padding: 12px 14px; width: 100%; background: var(--papel); border-radius: var(--radio); display: grid; gap: 7px; font-size: 13.5px; }
.datos-cuenta div, .listo-banco div { display: grid; grid-template-columns: 62px minmax(0, 1fr); gap: 8px; align-items: center; }
.listo-banco div { grid-template-columns: 76px minmax(0, 1fr); }
.datos-cuenta dt { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--gris); }
.datos-cuenta dd { margin: 0; font-weight: 600; color: var(--oliva-hondo); }
.datos-cuenta dd, .listo-banco dd { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; min-width: 0; }
.dato-copiar { font-variant-numeric: tabular-nums; overflow-wrap: anywhere; min-width: 0; }
.copiar { font: 600 11.5px/1 var(--sans); letter-spacing: .04em; color: var(--oliva-hondo); background: var(--blanco); border: 1px solid var(--linea); border-radius: 20px; padding: 6px 10px; cursor: pointer; }
.copiar:hover { border-color: var(--oliva); }
.op-txt .dato { font-weight: 600; color: var(--oliva-hondo); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.co-nota-wsp, .listo-nota { margin: 2px 0 0; text-align: center; }
.pie-fiscal { font-size: 12.5px; letter-spacing: .04em; }
@media (max-width: 760px) {
  .pago-bloque > .datos-cuenta { grid-column: 1 / -1; }
  .listo-banco .dato-copiar { font-size: 14.5px; }
}

/* Panel (3/11): ofertas, sin stock */
.precio-antes { font-weight: 500; color: var(--gris); text-decoration: line-through; margin-right: 4px; font-size: .88em; }
.prod-sin { align-self: flex-start; margin: auto 0 8px; position: relative; top: 8px; display: inline-flex; align-items: center; height: 36px; padding: 0 12px; border: 1px dashed #B9B4A3; border-radius: var(--radio); font-size: 13.5px; font-weight: 600; color: var(--gris); background: var(--papel); }
.prod-agotado .prod-foto img { opacity: .55; }
.talles button.talle-sin { color: #8A8679; background: var(--papel); border-style: dashed; cursor: not-allowed; }
.talles button.talle-sin .t-nom { text-decoration: line-through; text-decoration-color: rgba(106, 103, 92, .6); }
.talles button small { display: block; font-size: 11px; text-decoration: none; letter-spacing: .02em; line-height: 1.1; }
.talles button.talle-sin { display: inline-grid; place-items: center; line-height: 1.1; padding: 4px 12px; }
#fichaSumar.sin-stock { background: var(--arena); border-color: var(--arena); color: var(--gris); }
@media (max-width: 760px) { .prod-sin { width: 100%; justify-content: center; } }

.pie-qr{margin:14px 0 6px}.pie-qr img{display:inline-block;width:72px;height:72px;background:#fff;padding:4px;border-radius:4px}
/* Vuelta de Mercado Pago (3/11) */
.mp-vuelta { width: min(520px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); border-radius: var(--radio); }
.mp-vuelta-in { display: grid; gap: 14px; justify-items: center; text-align: center; padding: 30px 26px 24px; }
.mp-vuelta-in h3 { font-family: var(--serif); font-style: italic; font-weight: 500; font-size: clamp(30px, 6vw, 40px); color: var(--oliva-osc); line-height: 1.05; margin: 0; }
.mp-vuelta-in .co-acc { width: 100%; padding-top: 8px; }
.mp-vuelta-in[data-estado="error"] .listo-ico, .mp-vuelta-in[data-estado="error"] h3 { color: #A3341F; }
.mp-vuelta-in[data-estado="pendiente"] .listo-ico { color: #8A5A00; }
.mp-vuelta-in .listo-sub { max-width: 40ch; }
@media (max-width: 480px) { .mp-vuelta-in { padding: 26px 18px 18px; } }
.mp-vuelta-in .co-acc { position: static; box-shadow: none; border-top: 0; margin: 0; padding: 8px 0 0; background: none; }

/* Ancho completo (3/11, pedido de María José "que ocupe todo"): sin contenedor centrado,
   márgenes laterales chicos y fluidos, grilla de lado a lado (4 → 5 → 6 columnas). */
:root { --ancho: none; --gut: clamp(16px, 3vw, 48px); }
@media (min-width: 1400px) { .regalos { padding-inline: var(--gut); } }
@media (min-width: 1181px) { .grilla { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1360px) { .grilla { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
@media (min-width: 1760px) { .grilla { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 40px 26px; } }
@media (min-width: 1400px) { .local-mapa { aspect-ratio: 16 / 10; } }
.local-txt p, .vaquita p, .pagos p { max-width: 68ch; }
.pie-acceso{margin-top:14px}.pie-acceso a{display:inline-block;padding:10px 18px;border:1px solid var(--linea);border-radius:6px;color:var(--oliva-hondo);font-size:14px;text-decoration:none}
.pie-domo{margin-top:22px!important;padding-top:16px;border-top:1px solid var(--linea);display:inline-block;min-width:220px}.pie-domo a{display:inline-flex;align-items:center;gap:6px;color:var(--gris);font-size:13px;letter-spacing:.06em;text-decoration:none}.pie-domo svg{width:22px;height:11px}.pie-domo b{font-weight:700;color:#1d1b18;letter-spacing:.02em}.pie-domo a:hover b{color:#FF5A1F}

/* 4/11 envío por peso y tamaño: la línea "Su paquete" debajo de las empresas */
.co-paquete { margin-top: 10px; }
.co-paquete b { font-weight: 600; color: inherit; }
