/* Panel de opciones y adicionales. Solo usa tokens del Design System. */
.v247-lock{overflow:hidden}
.v247-overlay{position:fixed;inset:0;z-index:99999;display:flex;align-items:flex-end;justify-content:center;background:color-mix(in srgb,var(--color-ink) 0%,transparent);transition:background var(--motion-fast) var(--motion-ease)}
.v247-overlay.is-on{background:color-mix(in srgb,var(--color-ink) 55%,transparent)}
.v247-panel{position:relative;display:flex;flex-direction:column;width:100%;max-height:92vh;max-height:92dvh;background:var(--color-surface);color:var(--color-ink);font-family:var(--font-body);border-radius:var(--radius-md) var(--radius-md) 0 0;box-shadow:var(--shadow-card);transform:translateY(100%);opacity:.98;transition:transform var(--motion-fast) var(--motion-ease)}
.v247-overlay.is-on .v247-panel{transform:translateY(0)}
.v247-scroll{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;padding-bottom:var(--space-md)}
.v247-close{position:absolute;top:var(--space-sm);right:var(--space-sm);z-index:2;width:44px;height:44px;border:0;border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-ink);font-size:18px;cursor:pointer;box-shadow:var(--shadow-card)}
.v247-foto{height:180px;background:var(--color-line);border-radius:var(--radius-md) var(--radius-md) 0 0;overflow:hidden}
.v247-foto img{display:block;width:100%;height:100%;object-fit:cover}
.v247-head{border-bottom:1px solid var(--color-line);padding:var(--space-md) var(--space-md) var(--space-md);padding-right:calc(var(--space-md) + 44px)}
.v247-titulo{margin:0;font-family:var(--font-display);font-weight:700;font-size:22px;line-height:1.2;color:var(--color-ink)}
.v247-base{margin:var(--space-xs) 0 0;font-weight:700;font-size:18px;color:var(--color-ink-2)}
.v247-grupo{margin:0;padding:var(--space-md);border:0;border-bottom:1px solid var(--color-line);min-width:0}
.v247-grupo:focus{outline:2px solid var(--color-accent);outline-offset:-2px}
.v247-grupo.is-error{background:color-mix(in srgb,var(--color-accent) 10%,var(--color-surface))}
.v247-leg{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-sm);width:100%;padding:0;margin-bottom:var(--space-sm)}
.v247-leg-t{font-weight:700;font-size:16px}
.v247-leg-n{font-size:14px;color:var(--color-ink-2)}
.v247-leg-n.is-req{color:var(--color-accent);font-weight:700}
.v247-fila{display:flex;align-items:center;gap:12px;min-height:48px;padding:var(--space-sm) 12px;margin-bottom:var(--space-sm);border:1px solid var(--color-line);border-radius:var(--radius-sm);cursor:pointer;font-size:16px;background:var(--color-surface);transition:background var(--motion-fast) var(--motion-ease),border-color var(--motion-fast) var(--motion-ease)}
.v247-fila:has(input:checked){border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 8%,var(--color-surface))}
.v247-fila:has(input:focus-visible){outline:2px solid var(--color-accent);outline-offset:2px}
.v247-fila:has(input:disabled){opacity:.5;cursor:not-allowed}
.v247-fila input{width:22px;height:22px;margin:0;flex:none;accent-color:var(--color-accent)}
.v247-fila-n{flex:1}
.v247-fila-p{font-weight:700;color:var(--color-ink-2);white-space:nowrap}
.v247-nota{padding:var(--space-md)}
.v247-nota-l{display:block;margin-bottom:var(--space-sm);font-weight:700;font-size:16px}
.v247-nota textarea{width:100%;box-sizing:border-box;padding:12px;border:1px solid var(--color-line);border-radius:var(--radius-sm);font:inherit;font-size:16px;color:var(--color-ink);resize:vertical}
.v247-nota textarea:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}
.v247-foot{flex:none;padding:var(--space-sm) var(--space-md) calc(var(--space-md) + env(safe-area-inset-bottom));border-top:1px solid var(--color-line);background:var(--color-surface)}
.v247-msg{min-height:0;margin:0 0 var(--space-sm);font-size:14px;font-weight:700;color:var(--color-accent)}
.v247-msg:empty{display:none}
.v247-foot-row{display:flex;gap:12px;align-items:center}
.v247-qty{display:flex;align-items:center;border:1px solid var(--color-line);border-radius:var(--radius-pill)}
.v247-qb{width:44px;height:48px;border:0;background:transparent;font-size:22px;color:var(--color-ink);cursor:pointer;border-radius:var(--radius-pill)}
.v247-qb:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}
.v247-qv{min-width:28px;text-align:center;font-weight:700;font-size:18px}
.v247-add{flex:1;min-height:48px;padding:0 var(--space-md);border:0;border-radius:var(--radius-md);background:var(--color-accent);color:var(--color-accent-ink);font:inherit;font-weight:700;font-size:16px;cursor:pointer;transition:background var(--motion-fast) var(--motion-ease)}
.v247-add:hover{background:var(--color-accent-hover)}
.v247-add:focus-visible{outline:2px solid var(--color-ink);outline-offset:2px}
.v247-add:disabled{opacity:.7;cursor:wait}
.v247-toast{position:fixed;left:var(--space-md);right:var(--space-md);bottom:var(--space-md);z-index:100000;display:flex;justify-content:space-between;align-items:center;gap:var(--space-md);max-width:480px;margin:0 auto;padding:12px var(--space-md);border-radius:var(--radius-md);background:var(--color-ink);color:var(--color-surface);font-family:var(--font-body);font-size:15px;box-shadow:var(--shadow-card);transform:translateY(160%);transition:transform var(--motion-fast) var(--motion-ease)}
.v247-toast.is-on{transform:translateY(0)}
.v247-toast.is-error{background:var(--color-accent)}
.v247-toast a{color:var(--color-tint-1);font-weight:700;white-space:nowrap;text-decoration:underline;min-height:44px;display:inline-flex;align-items:center}
@media (min-width:640px){
	.v247-overlay{align-items:center}
	.v247-panel{width:480px;max-height:86vh;border-radius:var(--radius-md);transform:translateY(24px) scale(.98);opacity:0;transition:transform var(--motion-fast) var(--motion-ease),opacity var(--motion-fast) var(--motion-ease)}
	.v247-overlay.is-on .v247-panel{transform:none;opacity:1}
	.v247-foto{border-radius:var(--radius-md) var(--radius-md) 0 0}
}
@media (prefers-reduced-motion:reduce){
	.v247-overlay,.v247-panel,.v247-toast,.v247-fila,.v247-add{transition:none}
}

/* Neutraliza los estilos de botón del tema */
.v247-panel .v247-close,.v247-panel .v247-qb,.v247-panel .v247-add{-webkit-appearance:none;appearance:none;border:0;box-shadow:none;font-family:var(--font-body);line-height:1}
.v247-panel .v247-close{background:var(--color-surface);color:var(--color-ink);box-shadow:var(--shadow-card)}
.v247-panel .v247-close:hover,.v247-panel .v247-qb:hover{background:var(--color-line);color:var(--color-ink)}
.v247-panel .v247-qb{background:transparent;color:var(--color-ink)}
.v247-panel .v247-add{background:var(--color-accent);color:var(--color-accent-ink)}
.v247-panel .v247-add:hover,.v247-panel .v247-add:focus{background:var(--color-accent-hover);color:var(--color-accent-ink)}
.v247-panel .v247-close:focus-visible,.v247-panel .v247-qb:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}
.v247-panel .v247-close:focus,.v247-panel .v247-qb:focus{background:var(--color-surface);color:var(--color-ink)}
.v247-panel .v247-close:focus-visible,.v247-panel .v247-qb:focus-visible{background:var(--color-line)}

/* Estado «No disponible» en la tarjeta y selector de sede */
.e-loop-item a.elementor-button.v247-agotado{background:var(--color-line)!important;color:var(--color-ink-2)!important;cursor:not-allowed;box-shadow:none!important}
.v247-selector{display:flex;align-items:center;gap:var(--space-sm);font-family:var(--font-body);color:var(--color-ink)}
.v247-selector label{font-weight:700}
.v247-selector select{min-height:44px;padding:0 var(--space-md);border:1px solid var(--color-line);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-ink);font:inherit;font-size:16px}
.v247-selector select:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}

/* Selector de sede: ancho propio, sin partir la etiqueta */
.v247-selector{width:fit-content;max-width:100%}
.v247-selector label{white-space:nowrap}
.v247-selector select{width:auto;max-width:100%}

/* La tarjeta de plato sigue las tipografías del Design System */
html body .e-loop-item.e-loop-item .elementor-heading-title{font-family:var(--font-display)}
html body .e-loop-item.e-loop-item .elementor-widget-text-editor,
html body .e-loop-item.e-loop-item .elementor-widget-text-editor p,
html body .e-loop-item.e-loop-item .price,
html body .e-loop-item.e-loop-item .woocommerce-Price-amount,
html body .e-loop-item.e-loop-item a.elementor-button{font-family:var(--font-body)}

/* Barra fija del pedido */
.v247-barra{position:fixed;left:var(--space-md);right:var(--space-md);bottom:var(--space-md);z-index:99990;display:flex;align-items:center;gap:var(--space-md);max-width:560px;margin:0 auto;min-height:56px;padding:0 var(--space-md);border-radius:var(--radius-md);background:var(--color-accent);color:var(--color-accent-ink);font-family:var(--font-body);font-weight:700;font-size:16px;text-decoration:none;box-shadow:var(--shadow-card);transition:background var(--motion-fast) var(--motion-ease)}
.v247-barra:hover,.v247-barra:focus{background:var(--color-accent-hover);color:var(--color-accent-ink)}
.v247-barra:focus-visible{outline:2px solid var(--color-ink);outline-offset:2px}
.v247-barra-n{flex:none}
.v247-barra-t{flex:1;text-align:right}
.v247-barra-b{flex:none;padding:8px var(--space-md);border-radius:var(--radius-pill);background:var(--color-accent-ink);color:var(--color-accent)}
.v247-con-barra body{padding-bottom:88px}
.v247-con-barra .v247-toast{bottom:calc(var(--space-md) + 68px)}

/* Foto de la tarjeta: proporción fija, recorte y esquinas del radio de la tarjeta */
.e-loop-item>.e-con{overflow:hidden}
.e-loop-item .elementor-widget-image{position:relative;margin:0}
.e-loop-item .elementor-widget-image img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover}
@media (max-width:767px){.e-loop-item .elementor-widget-image img{aspect-ratio:auto;height:200px}}
@media (min-width:768px){.e-loop-item .elementor-widget-image img{aspect-ratio:auto;height:220px}}
/* Producto no disponible: foto apagada + etiqueta superpuesta */
.e-loop-item.product-card--unavailable .elementor-widget-image img{filter:grayscale(.85);opacity:.6}
.e-loop-item.product-card--unavailable .elementor-widget-image::after{content:"No disponible";position:absolute;top:var(--space-sm);left:var(--space-sm);padding:var(--space-xs) var(--space-md);font:700 .8rem/1.2 var(--font-body);color:var(--color-accent-ink);background:var(--color-ink);border-radius:var(--radius-pill)}
@media (prefers-reduced-motion:no-preference){.e-loop-item .elementor-widget-image img{transition:filter var(--motion-fast) var(--motion-ease),opacity var(--motion-fast) var(--motion-ease)}}
