.rf-menu, .rf-menu * { box-sizing: border-box; }
.rf-menu { width: 100%; }
.rf-category { margin: 0 0 2.25rem; }
.rf-category-title { margin: 0 0 1rem; padding-bottom: .55rem; border-bottom: 2px solid #e8e8e8; font-size: 1.6rem; line-height: 1.25; }
.rf-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.rf-grid.rf-columns-1 { grid-template-columns: 1fr; }
.rf-grid.rf-columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rf-grid.rf-columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rf-grid.rf-columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.rf-dish { min-width: 0; overflow: hidden; border: 1px solid #e7e7e7; border-radius: 10px; background: #fff; }
.rf-dish-image img { display: block; width: 100%; height: 210px; object-fit: cover; }
.rf-dish-content { padding: 1rem; }
.rf-dish-title { margin: 0 0 .45rem; font-size: 1.15rem; line-height: 1.35; }
.rf-dish-description { margin: 0 0 .75rem; color: #555; font-size: .95rem; line-height: 1.5; }
.rf-dish-price { font-weight: 700; font-size: 1.05rem; }
.rf-empty { padding: 1rem; text-align: center; }
@media (max-width: 900px) { .rf-grid.rf-columns-4, .rf-grid.rf-columns-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .rf-grid, .rf-grid.rf-columns-2, .rf-grid.rf-columns-3, .rf-grid.rf-columns-4 { grid-template-columns: 1fr; } .rf-dish-image img { height: 230px; } }

/* Variantes y adicionales */
.rf-dish [hidden] { display: none !important; }
.rf-options-toggle { margin-top: .8rem; padding: .55rem .8rem; border: 1px solid #176b43; border-radius: 6px; background: transparent; color: #176b43; font: inherit; font-weight: 600; cursor: pointer; }
.rf-options-toggle:hover { background: #f1f8f4; }
.rf-options-toggle:focus-visible { outline: 3px solid #8bc7aa; outline-offset: 2px; }
.rf-dish-options { margin-top: 1rem; display: grid; gap: .85rem; }
.rf-option-group-public { min-width: 0; margin: 0; padding: .75rem; border: 1px solid #e5e5e5; border-radius: 7px; }
.rf-option-group-public legend { padding: 0 .25rem; font-weight: 700; font-size: .93rem; }
.rf-option-group-public select, .rf-option-notes { display: block; width: 100%; max-width: 100%; padding: .55rem; border: 1px solid #ccc; border-radius: 5px; font: inherit; background: #fff; }
.rf-choice { display: flex; align-items: flex-start; gap: .45rem; margin: .45rem 0; font-size: .92rem; line-height: 1.4; cursor: pointer; }
.rf-choice input { margin-top: .22rem; flex: 0 0 auto; }
.rf-required { font-size: .78rem; font-weight: 400; color: #666; }
.rf-limit-hint { display: block; margin-top: .4rem; color: #666; font-size: .8rem; }

/* Carta de mesa: opciones informativas, sin controles interactivos. */
.rf-readonly-options { margin-top: .75rem; display: grid; gap: .55rem; font-size: .9rem; line-height: 1.45; }
.rf-readonly-sizes { display: flex; flex-wrap: wrap; gap: .25rem .65rem; }
.rf-readonly-size { font-size: inherit; }
.rf-readonly-size strong { font-weight: 700; font-size: inherit; }
.rf-dish-readonly > .rf-dish-content > .rf-dish-price { font-size: 1.05rem; }
.rf-dish-readonly .rf-readonly-sizes { font-size: 1.05rem; }
.rf-readonly-extras { font-size: .8rem; line-height: 1.5; }
.rf-readonly-extra-title { font-weight: 600; margin-bottom: .15rem; }
.rf-readonly-extra { margin: 0; }
.rf-menu-table .rf-dish { height: 100%; }

/* Carrito y flujo de pedido */
.rf-order-menu-head { display: flex; justify-content: flex-end; margin: 0 0 1rem; }
.rf-view-cart, .rf-add-to-cart, .rf-whatsapp-checkout { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; padding: .7rem 1rem; border: 0; border-radius: 6px; background: #176b43; color: #fff !important; font: inherit; font-weight: 700; text-decoration: none !important; cursor: pointer; }
.rf-add-to-cart { margin-top: 1rem; width: 100%; }
.rf-view-cart:hover, .rf-add-to-cart:hover, .rf-whatsapp-checkout:hover { filter: brightness(.93); }
.rf-add-to-cart:focus-visible, .rf-view-cart:focus-visible, .rf-whatsapp-checkout:focus-visible { outline: 3px solid #8bc7aa; outline-offset: 2px; }
.rf-cart-page { max-width: 850px; margin: 0 auto; }
.rf-cart-page [hidden] { display: none !important; }
.rf-cart-page h2 { margin: 0 0 1.25rem; }
.rf-cart-empty { padding: 1.25rem; border: 1px dashed #bbb; border-radius: 8px; text-align: center; }
.rf-cart-items { display: grid; gap: .8rem; }
.rf-cart-item { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; padding: 1rem; border: 1px solid #e2e2e2; border-radius: 8px; background: #fff; }
.rf-cart-item-info { flex: 1; min-width: 0; }
.rf-cart-item-title { margin: 0 0 .35rem; font-size: 1.05rem; }
.rf-cart-item-option { color: #555; font-size: .88rem; line-height: 1.45; }
.rf-cart-item-controls { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .5rem; }
.rf-cart-line-price { font-weight: 700; white-space: nowrap; }
.rf-cart-qty { width: 68px; min-height: 38px; padding: .35rem; border: 1px solid #bbb; border-radius: 5px; font: inherit; }
.rf-cart-remove, .rf-cart-clear { padding: .4rem .65rem; border: 1px solid #bbb; border-radius: 5px; background: #fff; color: inherit; font: inherit; cursor: pointer; }
.rf-cart-clear-wrap { margin: .75rem 0 1.5rem; text-align: right; }
.rf-cart-summary { margin-top: 1.5rem; padding: 1.25rem; border: 1px solid #e2e2e2; border-radius: 8px; }
.rf-cart-subtotal-row, .rf-cart-total-row { display: flex; justify-content: space-between; gap: 1rem; padding: .45rem 0; }
.rf-cart-delivery-choice { margin: 1rem 0; padding: .8rem 1rem; border: 1px solid #ddd; border-radius: 6px; }
.rf-cart-delivery-choice legend { padding: 0 .3rem; font-weight: 700; }
.rf-cart-delivery-choice label { display: block; margin: .5rem 0; }
.rf-cart-field { display: grid; gap: .35rem; margin: .9rem 0; }
.rf-cart-field label { font-weight: 600; }
.rf-cart-field input { width: 100%; max-width: 100%; min-height: 42px; padding: .6rem; border: 1px solid #bbb; border-radius: 5px; font: inherit; }
.rf-cart-grand-total { margin-top: .4rem; padding-top: .9rem; border-top: 1px solid #ddd; font-size: 1.2rem; font-weight: 700; }
.rf-whatsapp-checkout { width: 100%; margin-top: 1rem; background: #16834a; }
.rf-cart-privacy-note { margin: .7rem 0 0; color: #666; font-size: .85rem; }
.rf-cart-back { margin-top: 1.25rem; }
.rf-cart-message { margin-top: .5rem; color: #176b43; }
@media (max-width: 560px) { .rf-cart-item { flex-direction: column; } .rf-cart-item-controls { width: 100%; justify-content: flex-start; } .rf-cart-line-price { margin-right: auto; } }
.rf-product-clarifications { display: grid; gap: .4rem; }
.rf-product-clarifications label { font-weight: 700; font-size: .93rem; }
.rf-product-clarifications textarea { display: block; width: 100%; max-width: 100%; box-sizing: border-box; padding: .6rem; border: 1px solid #ccc; border-radius: 5px; font: inherit; resize: vertical; }
.rf-cart-item-notes { white-space: normal; overflow-wrap: anywhere; }
