/* =============== Variables ================= */
:root{
    --rm-btn-bg:   #000;
    --rm-btn-bg-h: #222;
    --rm-border:   #cfcfcf;
    --rm-title:    #111;
    --rm-text:     #444;
}

/* ===== Contenedor principal ===== */
.rm-wrap{
    margin: 2rem auto;            /* margen vertical y centrado */
    max-width: 1000px;
    font-family: inherit;
    color: var(--rm-title);
}
/* Márgenes laterales configurables */
.rm-pad{
    padding: 0 2rem;              /* ajusta 2rem a lo que necesites (e.g. 3rem) */
}

/* ===== Barra de botones ===== */
.rm-bar{
    text-align:center;
    margin-bottom:1.8rem;
}
.rm-btn{
    background: var(--rm-btn-bg);
    color:#fff;
    border:none;
    border-radius:4px;
    padding:.45rem .9rem;
    margin:0 .35rem;
    cursor:pointer;
}
.rm-btn:hover{
    background: var(--rm-btn-bg-h);
}

/* ===== Títulos de categoría ===== */
.rm-cat{
    font-size:1.5rem;
    font-weight:700;
    margin:2.5rem 0 1.5rem;
    border-bottom:2px solid var(--rm-border);
    text-align:center;
}
/* Subcategoría (DO) – solo para vinos */
.rm-sub{
    font-size:1.2rem;
    font-weight:600;
    margin:1.8rem 0 .8rem;
    text-align:center;
}

/* ===== Listas y filas ===== */
.rm-ul{
    list-style:none;
    margin:0;
    padding:0;
}
.rm-line{
    display:grid;
    grid-template-columns: 1fr auto auto;   /* Nombre | € botella | € copa */
    gap:.8rem;
    align-items:center;
}

/* Puntos suspensivos entre título y precio */
.rm-title{
    position:relative;
    padding-right:.6rem;
}
.rm-title::after{
    content:'';
    position:absolute;
    left:100%; right:0;
    top:50%;
    border-bottom:1px dotted var(--rm-border);
    transform:translateY(-50%);
}

/* Precios */
.rm-price,
.rm-price-glass{
    white-space:nowrap;
    font-weight:600;
}
.rm-price-glass{
    font-style:italic;
    margin-left:.5rem;
}

/* Descripción */
.rm-desc{
    font-size:.95rem;
    color:var(--rm-text);
    margin:.35rem 0 0;
}

/* Alérgenos */
.rm-alg span{
    margin-right:4px;
    display:inline-block;
}

/* Espacio entre productos */
.rm-ul > li{
    margin-bottom:1.2rem;
}

/* ===== Leyenda ===== */
.rm-legend-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(120px,1fr));
    gap:.6rem .9rem;
    margin-top:2rem;
    font-size:15px;
}
.rm-legend-grid span strong{
    margin-right:6px;
    font-size:18px;
}

/* ===== Responsive ===== */
@media(max-width:750px){
    .rm-line{
        grid-template-columns:1fr;  /* Precios en línea nueva */
    }
    .rm-title::after{ display:none; }
    .rm-price-glass{
        display:block;
        margin:.25rem 0 0;
    }
}

/* Estilos para los elementos del menú con imágenes */
.rm-ul li {
  display: flex;
  align-items: flex-start;
  gap: 15px;
  margin-bottom: 20px;
}

.rm-item-image {
  width: 100px;
  height: 100px;
  object-fit: cover;
  border-radius: 5px;
}

.rm-item-content {
  flex: 1;
}

/* ... [mantén todo el CSS anterior] ... */

/* =================================================================
   ESTILOS DE IMPRESIÓN OPTIMIZADOS PARA A4
   ================================================================= */
@media print {
    /* Reiniciar márgenes y padding */
    body, html {
        margin: 0 !important;
        padding: 0 !important;
        background: white !important;
    }
    
    /* Ocultar todo excepto el contenido del menú */
    body * {
        display: none !important;
        visibility: hidden !important;
    }
    
    /* Mostrar solo el contenedor del menú */
    .rm-wrap, 
    .rm-wrap * {
        display: block !important;
        visibility: visible !important;
        position: relative !important;
        left: auto !important;
        top: auto !important;
        width: 100% !important;
        height: auto !important;
        overflow: visible !important;
    }
    
    /* Contenedor principal para impresión */
    .rm-wrap {
        max-width: 21cm !important; /* Ancho A4 */
        margin: 0 auto !important;
        padding: 1.5cm !important; /* Márgenes internos */
        box-sizing: border-box;
        font-family: "Arial", sans-serif !important;
        font-size: 12pt !important;
        color: #000 !important;
    }
    
    /* Ocultar barra de botones */
    .rm-bar {
        display: none !important;
    }
    
    /* Estilos para categorías */
    .rm-cat {
        font-size: 18pt !important;
        margin: 30px 0 15px 0 !important;
        padding-bottom: 5px !important;
        border-bottom: 2px solid #000 !important;
        page-break-after: avoid !important;
    }
    
    /* Subcategorías */
    .rm-sub {
        font-size: 14pt !important;
        margin: 20px 0 10px 0 !important;
        page-break-after: avoid !important;
    }
    
    /* Lista de elementos */
    .rm-ul {
        margin: 0 0 20px 0 !important;
    }
    
    /* Elementos individuales */
    .rm-ul li {
        display: flex !important;
        margin-bottom: 15px !important;
        page-break-inside: avoid !important;
        page-break-after: auto !important;
    }
    
    /* Imágenes optimizadas para impresión */
    .rm-item-image {
        width: 80px !important;  /* Reducido para impresión */
        height: 80px !important; /* Reducido para impresión */
        object-fit: cover !important;
        border: 1px solid #ddd !important;
        margin-right: 10px !important;
    }
    
    /* Contenido de texto */
    .rm-item-content {
        flex: 1 !important;
    }
    
    /* Línea de título y precio */
    .rm-line {
        display: flex !important;
        justify-content: space-between !important;
        align-items: flex-start !important;
        margin-bottom: 5px !important;
    }
    
    /* Título con puntos suspensivos */
    .rm-title {
        font-weight: bold !important;
        flex-grow: 1 !important;
        position: relative !important;
        overflow: hidden !important;
    }
    
    .rm-title::after {
        content: '' !important;
        position: absolute !important;
        bottom: 3px !important;
        width: 100% !important;
        border-bottom: 1px dotted #999 !important;
        margin-left: 5px !important;
    }
    
    /* Precios */
    .rm-price, .rm-price-glass {
        font-weight: bold !important;
        white-space: nowrap !important;
        background: white !important;
        position: relative !important;
        z-index: 1 !important;
        padding-left: 5px !important;
    }
    
    .rm-price-glass {
        display: block !important;
        font-style: italic !important;
        font-size: 10pt !important;
        margin-top: 3px !important;
    }
    
    /* Descripción */
    .rm-desc {
        font-size: 11pt !important;
        margin: 5px 0 !important;
        line-height: 1.4 !important;
    }
    
    /* Alérgenos */
    .rm-alg {
        margin-top: 5px !important;
    }
    
    .rm-alg span {
        font-size: 14pt !important;
        margin-right: 5px !important;
    }
    
    /* Leyenda de alérgenos */
    .rm-legend-grid {
        display: grid !important;
        grid-template-columns: repeat(4, 1fr) !important;
        gap: 10px !important;
        margin-top: 30px !important;
        font-size: 10pt !important;
        page-break-before: avoid !important;
    }
    
    .rm-legend-grid span {
        display: flex !important;
        align-items: center !important;
    }
    
    .rm-legend-grid span strong {
        margin-right: 5px !important;
        font-size: 12pt !important;
    }
    
    /* Saltos de página controlados */
    @page {
        size: A4;
        margin: 1.5cm;
    }
    
    h2.rm-cat {
        page-break-before: always;
    }
    
    h2.rm-cat:first-child {
        page-break-before: avoid;
    }
    
    .rm-ul, .rm-legend-grid {
        page-break-inside: avoid;
    }
}