/* Compatibilidad: Safari/iPhone, Android antiguos, notch y barras del navegador */
body{min-height:100vh;min-height:100dvh}
.hero{min-height:100vh;min-height:100svh}
.topbar.solid,.searchbar,.subnav{-webkit-backdrop-filter:blur(12px)}
.tagline,.credit{-webkit-backdrop-filter:blur(6px)}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
/* evita el zoom automático de iOS al enfocar un campo */
input,select,textarea{font-size:max(16px,1rem)}
input[type=date],input[type=time]{min-width:0;-webkit-appearance:none;appearance:none;min-height:48px}
/* muescas (notch) y barras del sistema */
.wrap{padding-left:max(var(--gutter),env(safe-area-inset-left));padding-right:max(var(--gutter),env(safe-area-inset-right))}
.callbar{left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom))}
@media (max-width:820px){body{padding-bottom:calc(84px + env(safe-area-inset-bottom))}.mascot{bottom:calc(84px + env(safe-area-inset-bottom))}}
.mascot{right:max(14px,env(safe-area-inset-right))}
.dots{right:max(14px,env(safe-area-inset-right))}
/* Sin soporte de aspect-ratio (iOS < 15 y Android WebView antiguos): se simula con relleno */
@supports not (aspect-ratio:1/1){
  .room-stage,.dish-img,.tp,.thumbs button{position:relative;height:0;overflow:hidden}
  .room-stage{padding-top:75%}.dish-img{padding-top:75%}.tp{padding-top:125%}.tp.tp1,.tp.tp2{padding-top:100%}.thumbs button{padding-top:75%}
  .dish-img img,.tp img,.thumbs button img{position:absolute;inset:0}
}
/* Pantallas táctiles: sin efectos que dependen de pasar el cursor y con objetivos cómodos */
@media (hover:none){.btn:hover::before{opacity:0}.dish:hover h3,.day:hover,.place:hover,.teaser-list a:hover{transform:none}}
@media (pointer:coarse){.btn.sm{min-height:44px}.faq summary{min-height:52px}}
/* Platos con foto: 3 columnas solo en pantalla ancha (corrige el texto apretado en el iPhone) */
@media (max-width:1000px){.dish.has-img{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.dish-img{grid-column:1/-1;max-width:460px}}
@media (max-width:700px){.dish,.dish.has-img{grid-template-columns:minmax(0,1fr);gap:14px}.dish-img{max-width:none}}
/* Móvil: la barra inferior ya ofrece «Llamar», no se repite en la portada; la mascota se oculta con el menú abierto */
@media (max-width:820px){.hero-cta .btn.ghost{display:none}.bubble{width:min(280px,calc(100vw - 24px))}}
body.menu-open .mascot{display:none}

/* Dónde comer */
.resto-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:clamp(14px,2.5vw,24px)}
.resto{display:flex;flex-direction:column;gap:10px;padding:clamp(18px,3vw,28px);border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,var(--surface),var(--bg));min-width:0}
.resto h3{font-size:1.6rem;margin:0}
.resto-kind{align-self:flex-start;font:600 .78rem var(--ui);padding:.25em .8em;border:1px solid var(--gold);border-radius:999px;color:var(--gold-hi)}
.resto-zone{display:flex;gap:8px;align-items:flex-start;color:var(--ivory);font-size:.95rem;margin:0}
.resto-zone .icon{flex:none;margin-top:3px;color:var(--gold)}
.resto .cta-row{margin-top:auto;padding-top:6px;display:flex;flex-wrap:wrap;gap:8px}
.resto-src{font-size:.8rem;margin:0}
.cm-mine{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.cm-mine span{color:var(--gold)}.cm-mine p{flex:1 1 200px;margin:0}
