/* Ajustes móviles del sitio: controles táctiles, formularios y capas. */
@media (max-width: 860px) {
  body .rg-head { padding: 10px 16px; }
  body .rg-head-fila { gap: 0 12px; }
  body .rg-logo { margin-bottom: 2px; }
  body .rg-boton-menu,
  body .rg-reserva-cab {
    min-height: 44px;
    padding: 0 4px;
    font-size: 13px;
    letter-spacing: .06em;
    justify-content: center;
  }
  body .rg-reserva-cab { margin-left: 0; }
  body .rg-idiomas { gap: 4px; }
  body .rg-idiomas a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    font-size: 13px;
  }
  body .rg-panel {
    z-index: 9000;
    box-sizing: border-box;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 68px 20px 28px;
    align-items: safe center;
    pointer-events: none;
  }
  body .rg-panel.rg-abierto { pointer-events: auto; }
  body .rg-panel-lista { width: 100%; }
  body .rg-panel-lista a { max-width: 100%; }
  body .rg-panel-lista span { line-height: 1.45; margin-top: 4px; }
  body .rg-modal {
    z-index: 9100;
    box-sizing: border-box;
    padding: 68px 12px max(24px, env(safe-area-inset-bottom));
    overscroll-behavior: contain;
  }
  body .rg-cerrar {
    position: fixed;
    top: max(10px, env(safe-area-inset-top));
    right: max(10px, env(safe-area-inset-right));
    width: 44px;
    height: 44px;
    padding: 0;
  }
  body .rg-volver { min-height: 44px; margin-bottom: 8px; }
  body .rf-visor, body .rc-visor { z-index: 9200; }
  body .rf-visor-x, body .rf-visor-nav,
  body .rc-vcerrar, body .rc-vant, body .rc-vsig {
    min-width: 44px;
    min-height: 44px;
  }
  body .rg-pie-lista a { display: inline-flex; align-items: center; min-height: 44px; }
  body .rg-pie-lista { gap: 0 24px; }
  body .rg-vcaja .rg-acciones .rg-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box !important;
    min-height: 44px;
    padding: 10px 14px;
    font-size: 12px;
    line-height: 1.25;
  }
  body .rg-vcaja .rg-play { width: 44px; height: 44px; }
  body .rg-reclamo { font-size: 13px; }
}

/* A partir de 701 px las fichas ya muestran sus controles de escritorio. */
@media (min-width: 701px) {
  body nav.rf-mbarra#rf-mbarra { display: none !important; }
}

@media (max-width: 760px) {
  body .rc-tabs { scroll-padding-inline: 12px; top: var(--rao-header-height,145px); }
  body .rc-tab {
    min-height: 44px;
    padding-block: 12px;
    scroll-margin-top: calc(var(--rao-header-height,145px) + 12px);
    scroll-margin-bottom: 80px;
  }
  body .rc-nom { font-size: 16px; overflow-wrap: anywhere; }
  body .rc-pre { flex-shrink: 0; white-space: nowrap; }
  body .rc-barra { padding-bottom: env(safe-area-inset-bottom); }
}

@media (max-width: 700px) {
  /* Los elementos de dos columnas ya no dejan una celda vacía delante. */
  body .rf-rejilla { grid-auto-flow: row dense; }
  body .rf-mfila { grid-template-columns: minmax(0,1fr) auto; }
  body .rf-mres { min-width: 0; gap: 8px; padding-inline: 12px; }
  body .rf-micos a, body .rf-micos button { width: 48px; }
  body nav.rf-mbarra#rf-mbarra { padding-bottom: env(safe-area-inset-bottom); }
  body nav.rf-mbarra#rf-mbarra > .rf-mbarra-arriba {
    display: grid;
    padding: 0;
    min-height: 0;
    gap: 0;
  }
  body .rf-mbarra-arriba > a { min-height: 48px; padding: 0; }
  body .rf-mbarra .rf-mb-res {
    box-sizing: border-box;
    flex-direction: row;
    height: 54px;
    padding: 10px;
  }
  body.rf-conbarra .rg-pie { padding-bottom: calc(126px + env(safe-area-inset-bottom)); }
  body.rf-conbarra .trx_addons_scroll_to_top { bottom: calc(118px + env(safe-area-inset-bottom)) !important; }

  body .rg-grupos, body .rg-grupos * { box-sizing: border-box; }
  body .rg-gr-rej { grid-template-columns: minmax(0,1fr); }
  body .rg-gr-campo { min-width: 0; }
  body .rg-gr-campo input,
  body .rg-gr-campo select,
  body .rg-gr-campo textarea {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: 48px;
    font-size: 16px;
    line-height: 1.5;
    color: #ececec;
    background: #141414;
    border: 1px solid #555;
    border-radius: 0;
    color-scheme: dark;
  }
  body .rg-gr-envios .rg-gr-btn {
    flex: 0 0 auto;
    width: 100%;
    min-height: 52px;
    border-radius: 0;
    padding: 16px 12px;
    font-size: 13px;
    line-height: 1.4;
  }
  body .rg-gr-campo label, body .rg-gr-dir,
  body .rg-gr-aviso, body .rg-gr-via b { color: #aaa; }
}

@media (max-width: 860px) and (max-height: 500px) {
  body .rg-head-fila {
    display: grid;
    grid-template-columns: auto auto auto;
    grid-template-areas: "logo menu reserva" "logo idiomas idiomas";
    gap: 0 20px;
  }
  body .rg-logo { grid-area: logo; width: auto; margin: 0; }
  body .rg-boton-menu { grid-area: menu; }
  body .rg-reserva-cab { grid-area: reserva; }
  body .rg-idiomas { grid-area: idiomas; }
  body .rg-panel { align-items: flex-start; }
  body .rg-modal-sub { margin-bottom: 16px; }
  body .rg-elige { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body .rc { padding-top: 18px; }
  body .rc-cab { padding: 0 0 16px; }
  body .rc-cab h1 { font-size: 32px; margin-bottom: 6px; }
  body .rc-regla { margin-top: 10px; }
}

/* Descripciones completas y legibles, sin alterar el texto del restaurante. */
@media (max-width: 860px) {
  body .rg-panel-lista li { margin: 0 0 22px; }
  body .rg-panel-lista li:last-child { margin-bottom: 0; }
  body .rg-panel-lista a {
    display: block;
    font-size: 38px;
    line-height: 1.1;
  }
  body .rg-panel-lista a span,
  body .rg-panel-lista a[href*="n3"] span {
    max-width: 340px;
    margin: 8px auto 0;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.45;
    letter-spacing: .01em;
    text-transform: none;
    text-wrap: balance;
    color: #bdbdbd !important;
  }
  body .rg-vcaja .rg-fila-texto {
    box-sizing: border-box;
    padding-right: 58px;
  }
  body .rg-vcaja .rg-pie-caja .rg-reclamo {
    font-size: 15px;
    line-height: 1.45;
    letter-spacing: .01em;
    margin: 0;
    text-wrap: balance;
  }
}

/* Las tres columnas de las fichas también caben en tablet vertical.
   Evita dejar la tercera columna completa en una segunda fila. */
@media (min-width: 701px) and (max-width: 1000px) {
  body .rf-rejilla { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
  body .rf-col { gap: 14px; }
  body .rf-reserva, body .rf-enlaces, body .rf-grupos { padding: 18px 12px; }
  body .rf-fecha { min-width: 0; max-width: 100%; }
}

/* La zona de gestos pertenece a los botones, no a una franja vacía debajo. */
@media (max-width: 760px) {
  body .rc-barra {
    --rao-menu-safe-bottom: env(safe-area-inset-bottom, 0px);
    bottom: 0;
    margin-bottom: 0;
    padding-bottom: 0;
    background: #0b0b0b;
  }
  body .rc-barra > a {
    padding-bottom: calc(16px + var(--rao-menu-safe-bottom));
  }
  body:has(.rc-barra) footer.rg-pie {
    padding-bottom: calc(72px + env(safe-area-inset-bottom, 0px)) !important;
  }
}
/* Revisión móvil: campos legibles y fichas con contenido confirmado. */
@media(max-width:1000px){
 body .rgg .rgg-form input[type="text"],body .rgg .rgg-form input[type="number"],body .rf input.rf-fecha{font-size:16px;line-height:1.5}
}
.rf-basic{box-sizing:border-box;max-width:1180px;margin:34px auto 70px;padding:0 28px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:42px;color:#fff}
.rf-basic *{box-sizing:border-box}
.rf-basic h1{font:400 clamp(46px,6vw,78px)/1.1 var(--rg-tit);color:#fff;margin:12px 0 24px}
.rf-basic p{font:18px/1.65 var(--rg-nav);color:#bbb;margin:0 0 28px}
.rf-basic p.rf-basic-kicker{font-size:12px;letter-spacing:.18em;color:#b99b5c;text-transform:uppercase}
.rf-basic>img{display:block;width:100%;height:520px;object-fit:cover}
.rf-basic nav{display:flex;flex-wrap:wrap;gap:12px}
.rf-basic nav a{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 18px;color:#fff!important;border:1px solid #777;font:15px/1.4 var(--rg-nav);text-decoration:none}
.rf-basic nav a:focus-visible{outline:2px solid #d9bd7e;outline-offset:4px}
.rf-basic nav a:hover{background:#222}
@media(max-width:700px){.rf-basic{margin:24px auto 44px;padding:0 18px;grid-template-columns:1fr;gap:28px}.rf-basic>img{height:320px}.rf-basic nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Descripciones completas en las tarjetas del listado de restaurantes. */
@media(max-width:860px){
 body .rg-tarjeta{display:flex;flex-direction:column;justify-content:flex-end;box-sizing:border-box;padding:24px;min-height:270px;height:auto;gap:12px}
 body .rg-tarjeta img,body .rg-tarjeta .rg-sinfoto{position:absolute;inset:0;width:100%;height:100%}
 body .rg-tarjeta b,body .rg-tarjeta em{position:relative;left:auto;right:auto;bottom:auto;z-index:1}
 body .rg-tarjeta em{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.5;letter-spacing:.04em;font-size:14px;text-transform:none}
}
