/* Carta: estilos finos y responsivos */
.menu-section { margin-top: 1.5rem; }
.menu-section .h4 { font-weight: 700; }

/* Quitar caja cerrada y dejar solo líneas separadoras */
.table.menu-table {
  border: none !important;
  border-collapse: separate;
  border-spacing: 0;
  width: 100%;
}
.table.menu-table > :not(caption) > * > * {
  background-color: transparent;
  box-shadow: none;
}

/* Líneas finas entre filas */
.table.menu-table tbody tr td {
  border-top: 1px solid #e6e6e6;
}
.table.menu-table tbody tr:first-child td {
  border-top: 1px solid #e6e6e6;
}
.table.menu-table tbody tr td:first-child,
.table.menu-table tbody tr td:last-child {
  border-left: 0 !important;
  border-right: 0 !important;
}

/* Tipografías */
.menu-item .menu-name { font-weight: 600; }
.menu-item .menu-desc { color: #6c757d; font-size: 0.95rem; margin-top: .15rem; }

/* Precios: alineados a la derecha y sin cortar */
.menu-price { 
  text-align: right; 
  white-space: nowrap; 
  font-weight: 600;
  vertical-align: middle;
  width: 0; /* deja que la tabla ajuste, pero preserva nowrap */
}

/* Móvil: padding cómodo y sin "cajón" visual */
@media (max-width: 576px) {
  .menu-responsive {
    border: 0;
  }
  .table.menu-table tbody tr td { 
    padding-left: .75rem; 
    padding-right: .75rem;
  }
}


/* ===== Carrusel: borde difuminado suave (sin redondear esquinas) ===== */

/* Difuminado completo del borde + esquinas redondeadas */
.owl-carousel .item img {
    border-radius: 15px !important; /* esquinas redondeadas */
    -webkit-mask-image: radial-gradient(
        ellipse at center,
        rgba(0, 0, 0, 1) 90%,  /* centro opaco */
        rgba(0, 0, 0, 0) 100%  /* bordes transparentes */
    ) !important;
    -webkit-mask-repeat: no-repeat !important;
    -webkit-mask-position: center !important;
    -webkit-mask-size: cover !important;
    mask-image: radial-gradient(
        ellipse at center,
        rgba(0, 0, 0, 1) 90%,
        rgba(0, 0, 0, 0) 100%
    ) !important;
    mask-repeat: no-repeat !important;
    mask-position: center !important;
    mask-size: cover !important;
}

/* Fallback para navegadores sin soporte de mask-image */
.owl-carousel .item img::after {
    content: "";
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    pointer-events: none;
    border-radius: 15px;
    box-shadow: inset 0 0 50px rgba(0,0,0,0.3); /* sombra interior más fuerte para simular difuminado */
}


/* ================== CARTA (tabla 2 columnas) ================== */

.menu-section { margin-top: 1.5rem; }
.menu-section .h4 { font-weight: 700; }

/* Tabla base */
.table.menu-table{
  border: none !important;
  border-collapse: separate;
  border-spacing: 0;
  width: 100%;
}

/* Quita fondos/sombras de Bootstrap */
.table.menu-table > :not(caption) > * > * {
  background-color: transparent;
  box-shadow: none;
}

/* Líneas entre filas */
.table.menu-table tbody tr td{
  border-top: 1px solid #e6e6e6;
}
.table.menu-table tbody tr:first-child td{
  border-top: 1px solid #e6e6e6;
}

/* Tipos */
.menu-item .menu-name{ font-weight: 600; }
.menu-item .menu-desc{ color:#6c757d; font-size:.95rem; margin-top:.15rem; }

/* -------- Escritorio (>= 992px): alineado fino, sin cortar precio -------- */
@media (min-width: 992px){
  .table.menu-table{ table-layout: auto; }
  .menu-item{ width:auto; }
  .menu-price{
    text-align:right;
    white-space:nowrap;               /* no partir precios en desktop */
    font-weight:600;
    vertical-align:middle;
    padding-left:1rem;
    min-width: 14ch;                  /* columna de precio alineada */
    font-variant-numeric: tabular-nums;
  }
}

/* -------- Móvil (<= 991px): 2 columnas fijas 60% / 40% -------- */
@media (max-width: 991.98px){
  /* Evita el scroll horizontal del wrapper de Bootstrap */
  .menu-responsive{ overflow-x: visible; }

  /* Forzamos layout predecible: 60% texto / 40% precio */
  .table.menu-table{ table-layout: fixed; }

  /* Primera celda (nombre + descripción) ocupa ~60% */
  .table.menu-table td.menu-item{
    width: 60%;
    min-width: 0;
    word-break: break-word;           /* el texto nunca ensancha la tabla */
  }

  /* Precio a ~40%, PERMITIENDO PARTIR EN VARIAS LÍNEAS */
  .table.menu-table td.menu-price{
    width: 40%;
    text-align: right;
    white-space: normal;              /* <- clave: puede dividirse */
    overflow-wrap: anywhere;          /* permite dividir en '/' u otros */
    word-break: break-word;
    line-height: 1.25;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    vertical-align: middle;
  }

  /* Un poco de aire lateral en móvil */
  .table.menu-table tbody tr td{
    padding-left: .75rem;
    padding-right: .75rem;
  }
}

/* =============================================================== */

/* (Deja a continuación tu bloque del carrusel tal como lo tenías) */

/* ===== quitar hueco blanco antes del footer en HOME ===== */

/* 1) el bloque justo anterior al footer (penúltimo hijo de #all) no deja aire */
#all > *:nth-last-child(2) {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
  border: 0 !important;
}

/* 2) los puntos del carrusel no empujan hacia abajo */
.owl-theme .owl-dots {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* 3) footer pegado, sin salto arriba */
#footer, footer, footer.site-footer {
  margin-top: 0 !important;
}

/* 4) por si el tema inserta un <hr> entre carrusel y footer */
#all > hr:nth-last-child(2) {
  display: none !important;
  margin: 0 !important;
  border: 0 !important;
}

/* ===== Eliminar la sombra decorativa que crea espacio bajo el footer ===== */
#all::before,
#all::after,
#footer::before,
#footer::after {
  content: none !important;
  display: none !important;
  height: 0 !important;
}

/* Por si el contenedor raíz o el body dejaban padding/margen abajo */
#all,
body {
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}
