/* RIALVA — inicio compacto, encabezado, tarjetas y pie. Usa los tokens --rv-* de styles.css. */
body.store { background:var(--rv-surface); font-family:Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; color:var(--rv-ink); }
body.store h1, body.store h2, .rv-h { font-family:var(--rv-font-title); letter-spacing:-.02em; }
body.store .header { background:var(--rv-white); backdrop-filter:none; -webkit-backdrop-filter:none; border-bottom:1px solid var(--rv-line); box-shadow:none; }
body.store .header .logo.rv { min-height:44px; }
.logo-img { height:30px; width:auto; }
.zone-btn { background:var(--rv-blue-soft); border:0; color:var(--rv-blue); border-radius:var(--rv-r-md); font-weight:600; }
.zone-btn:hover { background:#DDE9FC; border:0; } .zone-btn svg:first-child { color:var(--rv-blue); }
.zone-btn small { color:var(--rv-blue); opacity:.85; font-weight:500; } .zone-btn b { color:var(--rv-blue); }
.head-search input { background:var(--rv-white); border:1px solid var(--rv-line); border-radius:var(--rv-r-md); color:var(--rv-ink); }
.head-search input:focus { outline:2px solid var(--rv-blue); outline-offset:1px; border-color:var(--rv-blue); }
.head-search input::placeholder { color:var(--rv-ink-2); }
:focus-visible { outline:3px solid color-mix(in srgb, var(--rv-blue) 70%, white); outline-offset:2px; }

/* ----- bloques del inicio ----- */
.rv-home { display:grid; gap:var(--rv-sp-4); padding-top:var(--rv-sp-3); }
.rv-kinds { display:grid; grid-template-columns:repeat(auto-fit,minmax(0,1fr)); gap:var(--rv-sp-2); }
.rv-kind { min-height:56px; display:flex; align-items:center; justify-content:center; gap:var(--rv-sp-2); padding:0 var(--rv-sp-2); border:1px solid var(--rv-line); border-radius:var(--rv-r-md); background:var(--rv-white); color:var(--rv-ink); font:700 15px/1.1 var(--rv-font-title); cursor:pointer; transition:background .18s, border-color .18s, transform .18s; }
.rv-kind .rk-t small { display:none; font:500 13px Inter, sans-serif; color:var(--rv-ink-2); margin-top:2px; }
.rv-kind[aria-pressed="true"] .rk-t small { color:rgba(255,255,255,.85); }
.rv-kind svg { width:22px; height:22px; flex:none; color:var(--rv-blue); stroke-width:1.8; }
.rv-kind:hover { border-color:var(--rv-blue); } .rv-kind:active { transform:scale(.98); }
.rv-kind[aria-pressed="true"] { background:var(--rv-blue); border-color:var(--rv-blue); color:#fff; } .rv-kind[aria-pressed="true"] svg { color:#fff; }
.rv-chips { display:flex; gap:var(--rv-sp-2); overflow-x:auto; padding:2px 1px 6px; scrollbar-width:none; } .rv-chips::-webkit-scrollbar { display:none; }
.rv-chip { flex:none; min-height:40px; padding:0 14px; border:1px solid var(--rv-line); border-radius:var(--rv-r-pill); background:var(--rv-white); color:var(--rv-ink); font:600 14px Inter, sans-serif; cursor:pointer; }
.rv-chip[aria-pressed="true"] { background:var(--rv-blue-soft); border-color:var(--rv-blue); color:var(--rv-blue); }
.rv-cont { display:flex; align-items:center; gap:var(--rv-sp-3); min-height:56px; padding:10px var(--rv-sp-4); border-radius:var(--rv-r-md); background:var(--rv-blue-soft); color:var(--rv-blue); text-decoration:none; border:0; width:100%; font:600 15px Inter, sans-serif; cursor:pointer; text-align:left; }
.rv-cont svg { width:22px; height:22px; flex:none; } .rv-cont span { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .rv-cont small { display:block; font-weight:500; color:var(--rv-ink-2); font-size:13px; }
.rv-cont.cart { background:var(--rv-blue); color:#fff; } .rv-cont.cart small { color:rgba(255,255,255,.85); } .rv-cont:hover { filter:brightness(.97); }

/* ----- banner compacto, cambio manual ----- */
.rv-hero { position:relative; border-radius:var(--rv-r-lg); overflow:hidden; background:var(--rv-blue); box-shadow:var(--rv-shadow); }
.rv-track { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; -webkit-overflow-scrolling:touch; overscroll-behavior-x:contain; } .rv-track::-webkit-scrollbar { display:none; }
.rv-slide { flex:0 0 100%; scroll-snap-align:start; position:relative; aspect-ratio:2/1; }
.rv-slide picture, .rv-slide > img, .rv-slide .slide-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.rv-slide .rv-cta { position:absolute; left:10px; bottom:8px; z-index:2; min-height:44px; padding:0 16px; display:inline-flex; align-items:center; gap:6px; border-radius:var(--rv-r-pill); background:#fff; color:var(--rv-blue); font:700 15px var(--rv-font-title); text-decoration:none; box-shadow:0 4px 14px rgba(0,0,0,.18); }
.rv-slide .rv-cta:hover { background:var(--rv-blue-soft); }
.rv-slide .rv-text { position:absolute; inset:0; display:flex; flex-direction:column; justify-content:center; gap:6px; padding:16px 18px 64px; color:#fff; background:linear-gradient(90deg, rgba(24,33,47,.62), rgba(24,33,47,0) 75%); }
.rv-slide .rv-text h1, .rv-slide .rv-text h2 { font-size:clamp(20px,6vw,30px); line-height:1.1; margin:0; max-width:16ch; } .rv-slide .rv-text p { margin:0; font-size:14px; max-width:30ch; }
.rv-dots { position:absolute; right:10px; bottom:10px; z-index:3; display:flex; gap:2px; }
.rv-dots button { width:28px; height:28px; border:0; background:none; display:grid; place-items:center; cursor:pointer; }
.rv-dots button::before { content:""; width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,.6); box-shadow:0 0 0 1px rgba(24,33,47,.25); transition:width .18s, background .18s; }
.rv-dots button[aria-current="true"]::before { width:20px; border-radius:6px; background:var(--rv-lime); }
.rv-arrow { position:absolute; top:50%; transform:translateY(-50%); z-index:3; width:44px; height:44px; border:0; border-radius:50%; background:rgba(255,255,255,.92); color:var(--rv-blue); display:none; place-items:center; cursor:pointer; box-shadow:var(--rv-shadow); }
.rv-arrow.prev { left:10px; } .rv-arrow.next { right:10px; }
@media (hover:hover) and (min-width:900px) { .rv-arrow { display:grid; } }
@media (min-width:900px) { .rv-hero { width:100%; max-width:780px; margin-inline:auto; } .rv-slide { max-height:none; } }

/* ----- secciones y tiendas ----- */
.rv-sec { display:grid; gap:var(--rv-sp-3); scroll-margin-top:70px; }
.rv-sec-h { display:flex; align-items:baseline; justify-content:space-between; gap:var(--rv-sp-3); }
.rv-sec-h h2 { font-size:clamp(20px,5.4vw,24px); font-weight:800; line-height:1.15; margin:0; }
.rv-more { color:var(--rv-blue); font:600 15px Inter, sans-serif; text-decoration:none; display:inline-flex; align-items:center; gap:4px; min-height:44px; background:none; border:0; cursor:pointer; white-space:nowrap; }
.rv-stores { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr)); gap:var(--rv-sp-3); }
.rv-store { display:flex; flex-wrap:wrap; align-items:center; gap:var(--rv-sp-3); padding:var(--rv-sp-3); background:var(--rv-white); border:1px solid var(--rv-line); border-radius:var(--rv-r-md); box-shadow:var(--rv-shadow); }
.rv-store .rs-img { flex:none; width:72px; height:72px; border-radius:var(--rv-r-sm); background:var(--rv-surface); overflow:hidden; display:grid; place-items:center; }
.rv-store .rs-img img { width:100%; height:100%; object-fit:cover; }
.rv-store .rs-body { flex:1 1 140px; min-width:0; display:grid; gap:3px; }
.rv-store h3 { font:800 17px/1.15 var(--rv-font-title); margin:0; overflow-wrap:break-word; } .rv-store .rs-meta { font-size:13.5px; color:var(--rv-ink-2); }
.rv-store .btn { min-height:44px; padding:0 16px; background:var(--rv-blue-soft); color:var(--rv-blue); border:0; border-radius:var(--rv-r-sm); font-weight:700; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; }
.rv-store .btn:hover { background:#DDE9FC; }
.rv-pill { display:inline-flex; align-items:center; gap:6px; width:fit-content; padding:3px 10px; border-radius:var(--rv-r-pill); font-size:13px; font-weight:600; background:#E6F6EC; color:#17683F; } .rv-pill::before { content:""; width:8px; height:8px; border-radius:50%; background:currentColor; }
.rv-pill.warn { background:#FFF3D6; color:#7A5A00; } .rv-pill.off { background:#EEF0F4; color:var(--rv-ink-2); }

/* ----- tarjetas de producto ----- */
.rv-pgrid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--rv-sp-3); }
@media (max-width:359px) { .rv-pgrid { grid-template-columns:1fr; } }
@media (min-width:700px) { .rv-pgrid { grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:var(--rv-sp-4); } }
.rv-pcard { display:flex; flex-direction:column; background:var(--rv-white); border:1px solid var(--rv-line); border-radius:var(--rv-r-md); box-shadow:var(--rv-shadow); overflow:hidden; min-width:0; }
.rv-pcard .rp-img { display:block; aspect-ratio:1; background:var(--rv-surface); } .rv-pcard .rp-img img { width:100%; height:100%; object-fit:cover; } .rv-pcard .rp-img svg { width:44%; margin:20% auto 0; }
.rv-pcard .rp-body { display:flex; flex-direction:column; gap:3px; padding:var(--rv-sp-3); flex:1; }
.rv-pcard .rp-top { display:flex; gap:6px; align-items:flex-start; justify-content:space-between; } .rv-pcard h3 { font:700 15px/1.25 var(--rv-font-title); margin:0; overflow-wrap:break-word; word-break:normal; hyphens:auto; }
.rv-pcard h3 a { text-decoration:none; } .rv-pcard .rp-biz { font-size:13px; color:var(--rv-ink-2); text-decoration:none; overflow-wrap:anywhere; }
.rv-pcard .rp-price { font:800 18px var(--rv-font-title); color:var(--rv-blue); margin:4px 0 6px; font-variant-numeric:tabular-nums; }
.rv-pcard .rp-state { font-size:12.5px; font-weight:600; color:#7A5A00; background:#FFF3D6; width:fit-content; padding:2px 8px; border-radius:var(--rv-r-pill); }
.rv-pcard .rp-btn { margin-top:auto; width:100%; min-height:44px; border-radius:var(--rv-r-sm); font-size:15px; justify-content:center; }
.rv-pcard .rp-ask { margin-top:4px; min-height:40px; background:none; border:0; color:var(--rv-ink-2); font:600 13.5px Inter, sans-serif; cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.rv-fav { flex:none; width:40px; height:40px; margin:-8px -8px 0 0; border:0; background:none; border-radius:50%; color:var(--rv-ink-2); display:grid; place-items:center; cursor:pointer; } .rv-fav[aria-pressed="true"] { color:#C2410C; }
.rv-cat-block { display:grid; gap:var(--rv-sp-2); } .rv-cat-block + .rv-cat-block { margin-top:var(--rv-sp-3); } .rv-cat-block h3 { font:800 17px var(--rv-font-title); margin:0; }

/* ----- ayuda ----- */
.rv-help { display:grid; gap:var(--rv-sp-3); background:var(--rv-white); border:1px solid var(--rv-line); border-radius:var(--rv-r-lg); padding:var(--rv-sp-4); }
.rv-steps { list-style:none; margin:0; padding:0; display:grid; gap:var(--rv-sp-3); counter-reset:s; }
.rv-steps li { display:grid; grid-template-columns:32px 1fr; gap:var(--rv-sp-3); align-items:start; }
.rv-steps li::before { counter-increment:s; content:counter(s); width:32px; height:32px; border-radius:50%; background:var(--rv-blue); color:#fff; display:grid; place-items:center; font:800 15px var(--rv-font-title); }
.rv-steps b { display:block; font:700 16px var(--rv-font-title); } .rv-steps span { color:var(--rv-ink-2); font-size:14px; }
.rv-helplinks { display:grid; gap:var(--rv-sp-2); font-size:14px; color:var(--rv-ink-2); border-top:1px solid var(--rv-line); padding-top:var(--rv-sp-3); } .rv-helplinks a { color:var(--rv-blue); font-weight:600; }
@media (min-width:800px) { .rv-steps { grid-template-columns:repeat(3,1fr); } .rv-helplinks { grid-template-columns:repeat(2,1fr); } }

/* ----- estados de la lista ----- */
.rv-empty { padding:var(--rv-sp-5) var(--rv-sp-4); text-align:center; background:var(--rv-white); border:1px dashed var(--rv-line); border-radius:var(--rv-r-md); color:var(--rv-ink-2); }
.rv-skel { height:84px; border-radius:var(--rv-r-md); background:linear-gradient(90deg,#EEF1F6,#F7F8FB,#EEF1F6); background-size:200% 100%; animation:rv-sk 1.2s linear infinite; } @keyframes rv-sk { to { background-position:-200% 0; } }

/* ----- pie ----- */
.footer { background:var(--rv-white); border-top:1px solid var(--rv-line); margin-top:var(--rv-sp-6); }
.rv-foot { width:min(1200px,100% - 2*var(--gutter)); margin:0 auto; padding:var(--rv-sp-5) 0 var(--rv-sp-4); display:grid; gap:var(--rv-sp-4); }
.rv-foot .rv-brand img { height:48px; width:auto; } .rv-foot .rv-brand p { margin:var(--rv-sp-2) 0 0; max-width:42ch; color:var(--rv-ink-2); font-size:14px; }
.rv-foot details { border-top:1px solid var(--rv-line); } .rv-foot summary { min-height:48px; display:flex; align-items:center; justify-content:space-between; cursor:pointer; font:700 15px var(--rv-font-title); list-style:none; } .rv-foot summary::-webkit-details-marker { display:none; }
.rv-foot summary::after { content:"+"; font-size:22px; color:var(--rv-blue); } .rv-foot details[open] summary::after { content:"−"; }
.rv-foot nav { display:grid; padding-bottom:var(--rv-sp-3); } .rv-foot nav a { min-height:40px; display:flex; align-items:center; color:var(--rv-ink-2); text-decoration:none; font-size:14.5px; } .rv-foot nav a:hover { color:var(--rv-blue); }
.rv-copy { text-align:center; font-size:13px; color:var(--rv-ink-2); padding:var(--rv-sp-3) 0; border-top:1px solid var(--rv-line); }
@media (min-width:800px) { .rv-foot { grid-template-columns:1.4fr 1fr 1fr 1fr; align-items:start; } .rv-foot details { border-top:0; } .rv-foot summary { pointer-events:none; min-height:36px; } .rv-foot summary::after { display:none; } }

/* ----- móvil: encabezado compacto en el inicio, sin segunda navegación ----- */
@media (max-width:700px) {
  body.home-mode .header { position:relative; }
  body.store .head-links { display:none !important; }
  body.home-mode .head-row { row-gap:var(--rv-sp-2); }
  body.home-mode .zone-btn { order:5; flex:1 1 100%; width:100%; }
  body.home-mode .zone-btn > span { display:flex; gap:6px; align-items:baseline; } body.home-mode .zone-btn small { font-size:15px; } body.home-mode .zone-btn b { font-size:15px; }
  body.home-mode .head-search { display:block !important; order:6; flex:1 1 100%; max-width:none; margin:0 0 4px; }
  body.home-mode .head-search input { min-height:48px; }
  body.store main { padding-bottom:calc(var(--nav-h, 64px) + env(safe-area-inset-bottom) + 28px); }
  body.store .footer { padding-bottom:calc(var(--nav-h, 64px) + env(safe-area-inset-bottom) + 12px); }
}
@media (prefers-reduced-motion: reduce) { .rv-track { scroll-behavior:auto; } .rv-skel { animation:none; } .rv-kind, .rv-dots button::before { transition:none; } }
.bottom-nav [aria-current="page"] { color:var(--rv-blue); } .bottom-nav { background:var(--rv-white); border-top:1px solid var(--rv-line); }

/* ================= ESCRITORIO COMPLETO (≥900 px). El diseño compacto es solo para móvil. ================= */
@media (min-width:900px) {
  body.store .wrap { width:min(1280px,100% - 64px); }
  .logo-img { height:44px; }
  body.store .header .head-row { min-height:76px; gap:20px; }
  .head-search input { min-height:50px; font-size:16px; }
  .rv-home { gap:44px; padding-top:28px; }
  .rv-top { gap:var(--rv-sp-4) !important; }
  .rv-kinds { grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:var(--rv-sp-4); }
  .rv-kind { min-height:104px; justify-content:flex-start; gap:18px; padding:0 28px; font-size:21px; text-align:left; border-radius:var(--rv-r-lg); box-shadow:var(--rv-shadow); }
  .rv-kind svg { width:56px; height:56px; padding:14px; border-radius:16px; background:var(--rv-blue-soft); box-sizing:border-box; }
  .rv-kind[aria-pressed="true"] svg { background:rgba(255,255,255,.18); }
  .rv-kind .rk-t { display:grid; } .rv-kind .rk-t small { display:block; }
  .rv-chip { min-height:44px; font-size:15px; }
  .rv-cont { min-height:68px; font-size:17px; border-radius:var(--rv-r-lg); max-width:720px; }
  .rv-hero { max-width:none; border-radius:28px; }
  .rv-slide { aspect-ratio:2/1; max-height:580px; }
  .rv-slide .rv-cta { left:36px; bottom:32px; min-height:56px; padding:0 28px; font-size:18px; }
  .rv-dots { right:24px; bottom:22px; } .rv-dots button::before { width:10px; height:10px; } .rv-dots button[aria-current="true"]::before { width:26px; }
  .rv-sec { gap:var(--rv-sp-4); } .rv-sec-h h2 { font-size:32px; } .rv-more { font-size:16px; }
  .rv-stores { grid-template-columns:repeat(auto-fill,minmax(380px,1fr)); gap:var(--rv-sp-4); }
  .rv-store { padding:var(--rv-sp-4); gap:var(--rv-sp-4); border-radius:var(--rv-r-lg); }
  .rv-store .rs-img { width:116px; height:116px; border-radius:var(--rv-r-md); }
  .rv-store h3 { font-size:21px; } .rv-store .rs-meta { font-size:15px; } .rv-pill { font-size:14px; padding:4px 12px; }
  .rv-store .btn { min-height:48px; padding:0 22px; font-size:16px; }
  .rv-pgrid { grid-template-columns:repeat(auto-fill,minmax(228px,1fr)); gap:var(--rv-sp-5); }
  .rv-pcard { border-radius:var(--rv-r-lg); transition:transform .18s ease, box-shadow .18s ease; } .rv-pcard:hover { transform:translateY(-3px); box-shadow:0 14px 34px rgba(24,33,47,.12); }
  .rv-pcard .rp-body { padding:var(--rv-sp-4); } .rv-pcard h3 { font-size:17px; } .rv-pcard .rp-price { font-size:22px; } .rv-pcard .rp-btn { min-height:48px; font-size:16px; }
  .rv-cat-block h3 { font-size:22px; } .rv-cat-block + .rv-cat-block { margin-top:var(--rv-sp-5); }
  .rv-help { padding:var(--rv-sp-6); border-radius:28px; gap:var(--rv-sp-5); } .rv-steps { gap:var(--rv-sp-5); } .rv-steps li { grid-template-columns:44px 1fr; } .rv-steps li::before { width:44px; height:44px; font-size:19px; }
  .rv-steps b { font-size:19px; } .rv-steps span { font-size:15.5px; } .rv-helplinks { font-size:15.5px; }
  .rv-foot { padding-top:var(--rv-sp-6); } .rv-foot .rv-brand img { height:64px; } .rv-foot summary { font-size:17px; } .rv-foot nav a { font-size:15.5px; }
}
@media (min-width:1280px) { .rv-pgrid { grid-template-columns:repeat(5,minmax(0,1fr)); } }

/* ----- móvil: tarjetas alineadas (mismas alturas, títulos a 2 líneas, botón en una sola línea) ----- */
@media (max-width:699px) {
  .rv-pgrid { gap:10px; }
  .rv-pcard .rp-img { margin:8px 8px 0; border-radius:14px; overflow:hidden; }
  .rv-pcard .rp-body { padding:10px 10px 8px; gap:2px; }
  .rv-pcard .rp-top { gap:2px; align-items:flex-start; }
  .rv-pcard h3 { font-size:14px; line-height:1.25; min-height:2.5em; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
  .rv-pcard .rp-biz { font-size:12.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .rv-pcard .rp-price { font-size:17px; margin:2px 0 6px; }
  .rv-pcard .rp-btn { min-height:42px; font-size:14px; padding:0 6px; white-space:nowrap; }
  .rv-pcard .rp-ask { min-height:36px; font-size:13px; margin-top:2px; }
  .rv-fav { width:36px; height:36px; margin:-6px -6px 0 0; }
  .rv-store { padding:10px; gap:10px; } .rv-store .rs-img { width:64px; height:64px; } .rv-store h3 { font-size:16px; }
  .rv-store .btn { min-height:44px; padding:0 14px; font-size:14px; white-space:nowrap; }
  .rv-sec-h h2 { font-size:21px; }
}

@media (max-width:699px) and (min-width:340px) {
  .rv-store { flex-wrap:nowrap; align-items:center; } .rv-store .rs-body { flex:1 1 0; min-width:0; } .rv-store .rs-img { width:56px; height:56px; }
  .rv-store .btn { padding:0 12px; font-size:13.5px; }
  .rv-store .rs-meta { font-size:12.5px; } .rv-pill { font-size:12px; padding:2px 8px; }
}

/* ===== Escritorio a pantalla completa: sin "tarjeta" central; contenido hasta 1480 px ===== */
@media (min-width:900px) {
  body.store .shell { width:100%; margin:0; border-radius:0; box-shadow:none; background:var(--rv-surface); }
  body.store .shell > main { padding-inline:max(40px, calc((100vw - 1640px) / 2)); padding-bottom:32px; }
  body.store .shell > .footer { padding-inline:max(40px, calc((100vw - 1640px) / 2)); }
  body.store .wrap { width:min(1640px,100% - 80px); }
  body.store .header { background:#fff; }
  .rv-kinds { grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); }
  .rv-slide { max-height:640px; }
}
@media (min-width:1600px) { .rv-pgrid { grid-template-columns:repeat(6,minmax(0,1fr)); } }

/* Tarjetas de producto centradas y en orden (escritorio) */
@media (min-width:900px) {
  .rv-pgrid, .rv-cat-block .rv-pgrid { grid-template-columns:repeat(auto-fit,minmax(228px,280px)); justify-content:center; }
}
@media (min-width:1280px) { .rv-pgrid { grid-template-columns:repeat(auto-fit,minmax(228px,280px)); } }
@media (min-width:1600px) { .rv-pgrid { grid-template-columns:repeat(auto-fit,minmax(228px,280px)); } }
@media (min-width:900px) {
  .rv-pgrid { display:flex; flex-wrap:wrap; justify-content:center; }
  .rv-pgrid > .rv-pcard { flex:1 1 228px; max-width:280px; min-width:0; }
  .rv-pgrid > .empty { flex:1 1 100%; max-width:none; }
}

/* ----- menú de usuario con cambio de rol ----- */
.userbtn { display:inline-flex; align-items:center; gap:8px; }
.uav { flex:none; display:inline-grid; place-items:center; width:28px; height:28px; border-radius:50%; background:var(--rv-blue); color:#fff; font:700 14px Manrope, Inter, sans-serif; }
#userMenu { min-width:260px; max-width:min(320px, calc(100vw - 24px)); right:0; left:auto; padding:6px; }
#userMenu .um-head { display:grid; gap:2px; padding:8px 12px 10px; overflow-wrap:anywhere; } #userMenu .um-head .muted { font-size:13px; }
#userMenu .um-t { margin:6px 12px 2px; font:700 12px Inter, sans-serif; text-transform:uppercase; letter-spacing:.04em; color:var(--rv-ink-2); }
#userMenu button[data-role] { display:flex; justify-content:space-between; align-items:center; gap:8px; width:100%; min-height:44px; text-align:left; }
#userMenu button[data-role].on { background:var(--rv-blue-soft); color:var(--rv-blue); font-weight:700; } #userMenu button[data-role] small { font-weight:600; }
#userMenu a, #userMenu button[role=menuitem] { min-height:44px; display:flex; align-items:center; }
@media (max-width:700px) {
  .userbtn { padding:0; width:44px; height:44px; min-height:44px; align-self:center; justify-content:center; border-radius:50%; } .userbtn .un { display:none; } .uav { width:34px; height:34px; }
  #userMenu { position:fixed; left:12px; right:12px; top:auto; bottom:calc(var(--nav-h, 64px) + 12px + env(safe-area-inset-bottom)); max-width:none; max-height:70dvh; overflow:auto; z-index:90; box-shadow:0 -8px 32px rgba(24,33,47,.22); }
}

/* Inicio móvil: una tarjeta con texto largo (p. ej. "Repetir tu último pedido" con pizzas de mitad y mitad) ensanchaba toda la columna y dejaba banner y tarjetas cortados a la derecha. */
.rv-home, .rv-top { grid-template-columns:minmax(0,1fr); }
.rv-home > *, .rv-top > * { min-width:0; }

/* Móvil: un poco más de ancho útil (margen lateral de 16 px a 14 px) */
@media (max-width:700px) { :root { --gutter: 14px; } }

/* Inicio tipo tienda en línea: confianza, categorías con foto y fila de novedades */
.rv-trust { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.rv-trust li { display:flex; align-items:center; gap:8px; min-width:0; padding:10px; border:1px solid var(--rv-line); border-radius:14px; background:var(--rv-white); }
.rv-trust svg { width:22px; height:22px; flex:none; color:var(--rv-blue); }
.rv-trust span { display:flex; flex-direction:column; min-width:0; line-height:1.2; } .rv-trust b { font-size:13px; } .rv-trust small { font-size:11.5px; color:var(--rv-ink-2); }
@media (max-width:520px) { .rv-trust li { flex-direction:column; text-align:center; gap:4px; padding:10px 6px; } }
.rv-cats { display:flex; gap:10px; overflow-x:auto; padding:2px 1px 8px; scroll-snap-type:x proximity; scrollbar-width:none; } .rv-cats::-webkit-scrollbar { display:none; }
.rv-cat { flex:none; width:104px; scroll-snap-align:start; display:flex; flex-direction:column; align-items:center; gap:4px; padding:10px 6px; min-height:44px; border:1px solid var(--rv-line); border-radius:16px; background:var(--rv-white); color:var(--rv-ink); font:inherit; cursor:pointer; }
.rv-cat img, .rv-cat-ph { width:64px; height:64px; border-radius:50%; object-fit:cover; background:var(--rv-blue-soft); }
.rv-cat b { font-size:13px; text-align:center; line-height:1.15; } .rv-cat small { font-size:11px; color:var(--rv-ink-2); }
.rv-cat:hover { border-color:var(--rv-blue); } .rv-cat:active { transform:scale(.97); } .rv-cat:focus-visible, .rv-chip:focus-visible { outline:3px solid var(--rv-blue); outline-offset:2px; }
.rv-row { display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x proximity; padding:2px 1px 10px; scrollbar-width:none; } .rv-row::-webkit-scrollbar { display:none; }
.rv-row > * { flex:none; width:min(62vw,220px); scroll-snap-align:start; }
.rv-open[aria-pressed="true"] { background:var(--rv-blue); border-color:var(--rv-blue); color:#fff; }
