.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-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 strong { font-weight: 700; }
.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%; }
