.idioma{display:flex;gap:4px}
.idioma button{display:grid;place-items:center;width:40px;height:34px;padding:0;border:1px solid transparent;background:none;cursor:pointer;border-radius:4px;transition:opacity .2s,border-color .2s,filter .2s;opacity:.5;filter:saturate(.55)}
.idioma button:hover{opacity:.85;filter:none}
.idioma button[aria-pressed="true"]{opacity:1;filter:none;border-color:var(--sand);background:#FFFDF8}
.idioma svg{width:26px;height:17px;border-radius:2px;box-shadow:0 0 0 1px rgba(42,28,17,.18)}

.aviso{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translate(-50%,24px);opacity:0;pointer-events:none;z-index:60;background:var(--ink);color:var(--ivory);padding:12px 18px;font-size:.88rem;display:flex;gap:14px;align-items:center;box-shadow:0 12px 30px rgba(42,28,17,.3);transition:opacity .25s,transform .25s;max-width:calc(100vw - 32px)}
.aviso.visible{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.aviso a{color:#F1CC46;font-weight:600;text-decoration:underline;white-space:nowrap}
body.con-acciones .aviso,body.con-barra .aviso{bottom:calc(88px + env(safe-area-inset-bottom,0px))}

dialog.reserva{padding:0;border:0;width:min(520px,calc(100vw - 24px));max-height:calc(100dvh - 24px);background:var(--ivory);color:var(--ink);box-shadow:0 30px 80px rgba(42,28,17,.35)}
dialog.reserva::backdrop{background:rgba(42,28,17,.6);backdrop-filter:blur(3px)}
.r-caja{position:relative;padding:clamp(24px,5vw,40px);display:flex;flex-direction:column;gap:14px}
.r-caja h2{font-family:var(--f-display);font-weight:500;font-size:clamp(2rem,6vw,2.6rem);margin:0}
.r-cerrar{position:absolute;top:8px;right:8px;width:44px;height:44px;border:0;background:none;font-size:1.6rem;cursor:pointer}
.r-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.r-campo{display:flex;flex-direction:column;gap:6px}
.r-campo > span{font-size:.66rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--caramel)}
.r-campo input,.r-campo select{width:100%;font:inherit;font-size:16px;padding:12px;border:1px solid var(--sand);background:#FFFDF8;color:var(--ink);border-radius:0;min-height:48px}
.r-enviar{background:#2F6B3A;border-color:#2F6B3A;color:#fff;margin-top:6px}
.r-enviar[aria-disabled="true"]{background:#9AA597;border-color:#9AA597}
.r-falta{min-height:1.2em;margin:0;text-align:center;font-size:.8rem;color:var(--brown)}
.r-falta.avisa{animation:avisa .5s}
.r-tel{margin:0;text-align:center;font-size:.85rem;color:var(--muted)}
.r-tel b{color:var(--ink);user-select:all}
@keyframes avisa{25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
@media (max-width:420px){.r-grid{grid-template-columns:1fr}}

.acciones-movil{display:none}
@media (max-width:760px){
  body.con-acciones{padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))}
  .acciones-movil{display:grid;grid-template-columns:1fr 1fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:40;background:rgba(250,246,238,.97);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-top:1px solid var(--sand);padding:10px max(12px,env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px))}
  .acciones-movil .btn{min-height:50px;padding:0 10px}
}
