/* Motion adapted from the supplied Stitch reference; layout and content stay original. */
:root { --motion-ease: cubic-bezier(.16,1,.3,1); }
.logo svg { transition: transform .25s; }
.cab { transition: background-color .3s, border-color .3s; }
/* Navigation underline from the reference: left to right in 250 ms. */
.rnav > a { position: relative; transition: color .2s; }
.rnav > a::after {
  content: ''; position: absolute; left: 0; right: 100%; bottom: 2px;
  height: 1.5px; background: var(--vino-txt);
  transition: right .25s ease;
}
.rnav > a:hover::after, .rnav > a:focus-visible::after { right: 0; }
.ridiomas a, .rflecha, .pie-nav a { transition: color .2s; }
.ridiomas a:hover, .pie-nav a:hover { color: var(--vino-txt); }
.rflecha svg { transition: transform .25s var(--motion-ease); }
.rplato { transition: transform .4s var(--motion-ease), border-color .4s, box-shadow .4s; }
.rplato .rplato-img img { transition: transform .5s var(--motion-ease); }
.menu-card { transition: transform .3s, border-color .3s, box-shadow .3s; }
.esp-card img, .eventos .partido-img img { transition: transform 1.2s var(--motion-ease); }
.inicio .partido-img img { transition: transform 12s cubic-bezier(.2,.8,.2,1); }
.btn, .pill, .reservas .btn-p, .circulo, .redes a {
  transition: transform .25s var(--motion-ease), background-color .25s, border-color .25s, color .25s, box-shadow .25s;
}
.redes a { transition: all .2s; }
.rflecha svg { transition: transform .25s ease; }
#carta { position: relative; }
#carta .tab { transition: background-color .2s, border-color .2s, color .2s; }
#carta .plato { transition: background-color .2s; }
#carta .plato:hover { background-color: rgba(255,255,255,.02); }
#form-reserva input, #form-reserva select, #form-reserva textarea { transition: border-color .2s, box-shadow .2s; }
/* The observer animates visible content, never hides content awaiting JavaScript. */
html.anim .revelar { opacity: 1; transform: none; transition: none; }
@media (prefers-reduced-motion: no-preference) {
  .inicio .stack > *, .inicio .partido-img img { animation: none; }
  .rflecha:focus-visible svg, .rflecha:hover svg { transform: translateX(4px); }
  .btn:active, .pill:active, .reservas .btn-p:active { transform: translateY(0) scale(.98); }
  @media (hover: hover) and (pointer: fine) {
    .logo:hover svg { transform: scale(1.02); }
    .btn:hover, .pill:hover, .reservas .btn-p:not(:disabled):hover, .redes a:hover { transform: translateY(-2px); }
    .btn-vino:hover, .pill-vino:hover, .reservas .btn-p:not(:disabled):hover { box-shadow: 0 8px 24px rgba(112,45,53,.35); }
    .pill-vino:hover { box-shadow: 0 6px 20px rgba(112,45,53,.35); }
    .btn-linea:hover, .pill-linea:hover { background: rgba(255,255,255,.06); }
    .pill-linea:hover { background: rgba(255,255,255,.05); }
    .inicio:hover .partido-img img { transform: scale(1.05); }
    .rplato:hover { transform: translateY(-6px); border-color: rgba(212,132,141,.4); box-shadow: 0 16px 36px rgba(0,0,0,.45); }
    .rplato:hover .rplato-img img { transform: scale(1.08) rotate(-1deg); }
    .menu-card:hover { transform: translateY(-3px); border-color: var(--vino-txt); box-shadow: 0 12px 28px rgba(0,0,0,.35); }
    .esp-card:hover img { transform: scale(1.05); }
    .eventos:hover .partido-img img { transform: scale(1.04); }
    .circulo:hover { transform: scale(1.08); background: var(--vino); border-color: var(--vino); }
    .redes a:hover { border-color: var(--vino-txt); background: rgba(212,132,141,.1); }
  }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .rnav > a::after { right: 0; opacity: 0; transition: opacity .12s ease !important; }
  .rnav > a:hover::after, .rnav > a:focus-visible::after { opacity: 1; }
  .inicio .partido-img img, .esp-card img, .eventos .partido-img img, .rplato .rplato-img img, .rflecha svg { transform: none !important; }
}
