/* Fichas de restaurante: corrección final de cabecera, hero, contacto y sidebar. */
.page-restaurant{
  --restaurant-header-height:72px;
  --restaurant-content-max:1180px;
  --restaurant-gutter:clamp(16px,4vw,32px);
}

/* Cabecera visible y estable: el header reserva altura y el nav deja de flotar
   sobre fondos claros con texto blanco. */
.page-restaurant .site-header{
  position:fixed!important;
  inset:0 0 auto 0!important;
  width:100%!important;
  height:var(--restaurant-header-height)!important;
  min-height:var(--restaurant-header-height)!important;
  z-index:10000!important;
  display:block!important;
  background:rgba(10,9,7,.97)!important;
  border-bottom:1px solid rgba(255,255,255,.12)!important;
  box-shadow:0 10px 30px rgba(10,9,7,.22)!important;
  backdrop-filter:blur(18px) saturate(1.15)!important;
  -webkit-backdrop-filter:blur(18px) saturate(1.15)!important;
}
.page-restaurant .snav{
  position:relative!important;
  inset:auto!important;
  width:min(var(--restaurant-content-max),calc(100% - 32px))!important;
  height:var(--restaurant-header-height)!important;
  min-height:var(--restaurant-header-height)!important;
  margin:0 auto!important;
  padding:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:16px!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  z-index:auto!important;
}
.page-restaurant .snav-logo,
.page-restaurant .snav-back{
  color:#fff!important;
  opacity:1!important;
  visibility:visible!important;
}
.page-restaurant .snav-logo{max-width:min(70vw,520px)!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.page-restaurant .snav-back{
  flex:0 0 auto!important;
  min-height:42px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0 16px!important;
  border:1px solid rgba(255,255,255,.24)!important;
  background:rgba(255,255,255,.08)!important;
  border-radius:999px!important;
}
.page-restaurant main{padding-top:var(--restaurant-header-height)!important}

/* Portada: la fotografía vuelve a ocupar todo el hero y no participa en el
   flujo flex, evitando portadas vacías o desplazadas. */
.page-restaurant .phero{
  position:relative!important;
  margin-top:0!important;
  min-height:clamp(540px,68svh,720px)!important;
  display:flex!important;
  align-items:flex-end!important;
  overflow:hidden!important;
  isolation:isolate!important;
  background:#17244d!important;
}
.page-restaurant .phero-img{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  min-width:100%!important;
  min-height:100%!important;
  overflow:hidden!important;
  z-index:0!important;
}
.page-restaurant .phero-img img{
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  object-fit:cover!important;
  object-position:center!important;
  opacity:.68!important;
  transform:scale(1.015)!important;
  filter:saturate(.95) contrast(1.05)!important;
}
.page-restaurant .phero::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  pointer-events:none!important;
  background:linear-gradient(180deg,rgba(9,12,27,.18) 0%,rgba(9,12,27,.35) 42%,rgba(9,12,27,.94) 100%)!important;
}
.page-restaurant .phero::after{
  content:""!important;
  position:absolute!important;
  inset:auto -15% -35% 25%!important;
  height:68%!important;
  z-index:1!important;
  pointer-events:none!important;
  background:radial-gradient(circle,rgba(240,163,41,.20),transparent 68%)!important;
}
.page-restaurant .phero-content{
  position:relative!important;
  z-index:3!important;
  width:min(var(--restaurant-content-max),calc(100% - 32px))!important;
  margin:0 auto!important;
  padding:clamp(40px,8vh,84px) 0 clamp(34px,6vh,64px)!important;
}
.page-restaurant .phero .pbreadcrumb,
.page-restaurant .phero .pzone,
.page-restaurant .phero .ph1,
.page-restaurant .phero .prating{position:relative!important;z-index:4!important}
.page-restaurant .photo-credit-overlay{
  position:absolute!important;
  inset:16px 16px auto auto!important;
  z-index:4!important;
  max-width:calc(100% - 32px)!important;
  pointer-events:auto!important;
}

/* Botones del hero siempre legibles y con área táctil suficiente. */
.page-restaurant .pbtns{
  position:relative!important;
  z-index:4!important;
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:stretch!important;
  gap:10px!important;
}
.page-restaurant .pbtn{
  min-height:48px!important;
  padding:12px 20px!important;
  color:#fff!important;
  text-align:center!important;
  white-space:normal!important;
}
.page-restaurant .pbtn-p{
  background:linear-gradient(115deg,#ff8a00 0%,#ef4d28 45%,#c4144d 100%)!important;
  border:0!important;
}
.page-restaurant .pbtn-s{
  background:rgba(255,255,255,.13)!important;
  border:1px solid rgba(255,255,255,.34)!important;
  color:#fff!important;
  backdrop-filter:blur(8px)!important;
}

/* Grid principal: solo article + aside, sin invasiones entre columnas. */
.page-restaurant .pcontent{
  width:min(var(--restaurant-content-max),calc(100% - 32px))!important;
  max-width:var(--restaurant-content-max)!important;
  margin:0 auto!important;
  padding:56px 0!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(300px,340px)!important;
  gap:clamp(28px,4vw,52px)!important;
  align-items:start!important;
  overflow:visible!important;
}
.page-restaurant .pcontent>.pmain,
.page-restaurant .pcontent>.psidebar{
  min-width:0!important;
  width:100%!important;
  max-width:100%!important;
}
.page-restaurant .pcontent>.pmain{grid-column:1!important;margin:0!important}
.page-restaurant .pcontent>.psidebar{grid-column:2!important;margin:0!important}

/* Un único sticky: el aside. El bloque de reserva no vuelve a quedarse pegado
   dentro de él, evitando solapamientos al llegar a “Otros restaurantes”. */
.page-restaurant .psidebar{
  position:sticky!important;
  top:calc(var(--restaurant-header-height) + 20px)!important;
  align-self:start!important;
  z-index:2!important;
}
.page-restaurant .sb2{
  position:static!important;
  width:100%!important;
  min-height:0!important;
  padding:24px!important;
  margin:0 0 18px!important;
  color:#fff!important;
  background:linear-gradient(155deg,#252a56 0%,#171425 100%)!important;
  border:1px solid rgba(255,255,255,.12)!important;
  box-shadow:0 18px 50px rgba(20,18,44,.22)!important;
  overflow:hidden!important;
}
.page-restaurant .sb2-title,
.page-restaurant .sb2-info,
.page-restaurant .sb2-info strong{
  color:#fff!important;
  opacity:1!important;
  visibility:visible!important;
}
.page-restaurant .sb2-title{font-size:1rem!important;line-height:1.35!important;margin:0 0 14px!important}
.page-restaurant .sb2-info{color:rgba(255,255,255,.78)!important;font-size:.82rem!important;line-height:1.65!important;margin:0 0 18px!important}
.page-restaurant .sb2-info strong{color:#fff!important}
.page-restaurant .sb2 .sbtn{
  width:100%!important;
  min-width:0!important;
  min-height:48px!important;
  margin:0 0 10px!important;
  padding:12px 14px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:13px!important;
  color:#fff!important;
  text-align:center!important;
  line-height:1.25!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}
.page-restaurant .sb2 .sbtn:last-child{margin-bottom:0!important}
.page-restaurant .sb2 .sbtn-p{background:linear-gradient(115deg,#ff8a00,#ef4d28 48%,#c4144d)!important}
.page-restaurant .sb2 .sbtn-wa{background:#168f49!important}
.page-restaurant .sb2 .sbtn-s{background:rgba(255,255,255,.10)!important;border:1px solid rgba(255,255,255,.22)!important}

/* Restaurantes relacionados: permanecen en flujo y no quedan bajo ningún
   elemento sticky. */
.page-restaurant .others-box{
  position:relative!important;
  inset:auto!important;
  z-index:1!important;
  width:100%!important;
  margin:0!important;
  padding:20px!important;
  overflow:visible!important;
  background:#fffdf8!important;
}
.page-restaurant .other-card{
  position:relative!important;
  width:100%!important;
  min-width:0!important;
  min-height:48px!important;
  margin:0 0 8px!important;
  padding:10px 12px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  transform:none!important;
  overflow:visible!important;
}
.page-restaurant .other-card:last-child{margin-bottom:0!important}
.page-restaurant .other-name{min-width:0!important;overflow-wrap:anywhere!important;line-height:1.3!important}
.page-restaurant .other-rating{flex:0 0 auto!important;white-space:nowrap!important}

@media(max-width:900px){
  .page-restaurant{--restaurant-header-height:64px}
  .page-restaurant .pcontent{
    grid-template-columns:minmax(0,1fr)!important;
    width:min(100% - 24px,var(--restaurant-content-max))!important;
    padding:36px 0 44px!important;
    gap:24px!important;
  }
  .page-restaurant .pcontent>.pmain,
  .page-restaurant .pcontent>.psidebar{grid-column:1!important}
  .page-restaurant .psidebar{
    position:static!important;
    top:auto!important;
    z-index:auto!important;
  }
  .page-restaurant .sb2{position:static!important}
  .page-restaurant .phero{min-height:620px!important}
}

@media(max-width:640px){
  .page-restaurant{--restaurant-header-height:60px}
  .page-restaurant .snav{
    width:100%!important;
    padding-left:max(14px,env(safe-area-inset-left))!important;
    padding-right:max(14px,env(safe-area-inset-right))!important;
    gap:10px!important;
  }
  .page-restaurant .snav-logo{max-width:calc(100% - 82px)!important}
  .page-restaurant .snav-back{min-width:72px!important;min-height:40px!important;padding:0 10px!important}
  .page-restaurant .phero{
    min-height:640px!important;
    align-items:flex-end!important;
  }
  .page-restaurant .phero-content{
    width:calc(100% - 28px)!important;
    padding:120px 0 30px!important;
  }
  .page-restaurant .ph1{
    font-size:clamp(2rem,10.5vw,3.15rem)!important;
    line-height:.98!important;
  }
  .page-restaurant .pbtns{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:10px!important;
  }
  .page-restaurant .pbtn{width:100%!important;justify-content:center!important}
  .page-restaurant .photo-credit-overlay{
    top:12px!important;
    right:12px!important;
    bottom:auto!important;
    left:auto!important;
    font-size:.66rem!important;
  }
  .page-restaurant .pmeta-in{padding-left:16px!important;padding-right:16px!important}
  .page-restaurant .pcontent{width:calc(100% - 20px)!important;padding-top:28px!important}
  .page-restaurant .pmain{padding-left:12px!important;padding-right:12px!important}
  .page-restaurant .sb2,
  .page-restaurant .others-box{border-radius:18px!important}
  .page-restaurant .others-box{padding:16px!important}
  .page-restaurant .other-card{align-items:flex-start!important}
}

@media(max-width:360px){
  .page-restaurant .snav-logo::after{font-size:10.5px!important}
  .page-restaurant .snav-back{min-width:66px!important}
  .page-restaurant .phero-content{width:calc(100% - 22px)!important}
  .page-restaurant .pcontent{width:calc(100% - 16px)!important}
  .page-restaurant .other-card{gap:8px!important;padding:10px!important}
  .page-restaurant .other-name{font-size:11.5px!important}
}
/* Anula la compensación heredada de la antigua cabecera fija. La altura ya la
   reserva el padding superior de main, evitando una franja vacía doble. */
.page-restaurant .site-header + main > .phero,
.page-restaurant .snav + .phero{
  margin-top:0!important;
}
