/*-----------------------------------*\
  #style.css
\*-----------------------------------*/


/*-----------------------------------*\
  #CUSTOM PROPERTY (variables)
\*-----------------------------------*/
:root {

  /** colors **/
  --rich-black-fogra-29: hsl(210, 26%, 7%);
  --champagne-pink_20: hsla(23, 61%, 86%, 0.2);
  --independence_30: hsla(245, 17%, 29%, 0.3);
  --gray-x-11-gray: hsl(0, 0%, 73%);
  --champagne-pink: rgb(245, 255, 255);
  --spanish-gray: hsl(0, 0%, 60%);
  --sonic-silver: hsl(0, 0%, 47%);
  /* Cyan del tema */
  --deep-saffron: rgb(25, 122, 122);
  --dark-orange: #eb8314;
  --desert-sand: hsl(31, 84%, 50%);
  --isabelline: hsl(38, 44%, 96%);
  --gainsboro: hsl(0, 0%, 87%);
  --tangerine: hsl(31, 84%, 50%);
  --cinnabar: hsl(31, 84%, 50%);
  --black_95: hsla(0, 0%, 0%, 0.95);
  --cultured: hsl(0, 0%, 93%);
  --white: hsl(0, 0%, 100%);
  --black: hsl(0, 0%, 0%);
  --onyx: hsl(0, 0%, 27%);

  /** typography **/
  --ff-shadows-into-light: 'Shadows Into Light', cursive;
  --ff-roboto: 'Roboto', sans-serif;
  --ff-rubik: 'Rubik', sans-serif;

  --fs-1: 3.2rem;
  --fs-2: 2rem;
  --fs-3: 2.1rem;
  --fs-4: 1.4rem;
  --fs-5: 1.2rem;

  --fw-500: 500;
  --fw-600: 600;
  --fw-700: 700;

  /** spacing **/
  --section-padding: 30px;

  /** shadow **/
  --shadow-1: 0 1px 4px hsla(0, 0%, 0%, 0.2);
  --shadow-2: 0 1px 2px hsla(0, 0%, 0%, 0.2);

  /** transition **/
  --transition-1: 0.25s ease;
  --transition-2: 0.5s ease;
}


/*-----------------------------------*\
  #RESET
\*-----------------------------------*/
*,*::before,*::after { margin: 0; padding: 0; box-sizing: border-box; }
li { list-style: none; }
a { text-decoration: none; color: inherit; }
a,img,svg,span,input,select,button,textarea,ion-icon { display: block; }
img { height: auto; }
input,select,button,textarea { background: none; border: none; font: inherit; }
input,select,textarea { width: 100%; }
button { cursor: pointer; }
ion-icon { pointer-events: none; }
address { font-style: normal; }

html { font-family: var(--ff-roboto); font-size: 10px; scroll-behavior: smooth; }

body {
  background-color: var(--white);
  color: var(--sonic-silver);
  font-size: 1.6rem;
  line-height: 1.6;
  overflow-x: hidden;
}
body.active { overflow: hidden; }
:focus-visible { outline-offset: 4px; }
::selection { background-color: var(--deep-saffron); color: var(--white); }
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background-color: var(--cultured); }
::-webkit-scrollbar-thumb { background-color: var(--deep-saffron); }
::-webkit-scrollbar-thumb:hover { background-color: var(--tangerine); }


/*-----------------------------------*\
  #REUSED STYLE (utilidades base)
\*-----------------------------------*/
.container { padding-inline: 15px; }

.h1,.h2,.h3,.h4 {
  font-family: var(--ff-rubik);
  color: var(--rich-black-fogra-29);
  line-height: 1.2;
  letter-spacing: -1px;
}
.h1,.h2 { font-size: var(--fs-1); }
.h2,.h3,.h4 { font-weight: var(--fw-600); }
.h3 { font-size: var(--fs-2); }
.h4 { font-size: var(--fs-3); }

.btn {
  display: inline-flex;
  align-items: center; justify-content: center;
  background-color: var(--bg-color, var(--deep-saffron));
  color: var(--white);
  font-family: var(--ff-rubik);
  font-size: 1.6rem;
  font-weight: var(--fw-500);
  height: auto;
  padding: 12px 20px;
  white-space: nowrap;
  border-radius: 10px;
  transition: var(--transition-1);
  max-width: max-content;
}

.btn-hover { position: relative; overflow: hidden; z-index: 1; }
.btn-hover::after {
  content: "";
  position: absolute; bottom: -1px; left: 20px;
  width: 1px; height: 1px;
  transform: translate(-50%, 51%) scale(var(--scale, 1));
  border-radius: 50%;
  background-color: var(--rich-black-fogra-29);
  z-index: -1; transition: var(--transition-2);
}
.btn-hover:is(:hover,:focus)::after { --scale: 500; }

.section { padding-block: var(--section-padding); }
.section.white { background-color: var(--isabelline); }

.section-divider { position: relative; }
.section-divider::before, .section-divider::after {
  content: ""; position: absolute; bottom: 0; left: 0;
  width: 100%; height: 15px; background-repeat: repeat no-repeat; background-position: bottom;
}
.section-divider.white::after { background-image: url("../images/shape-white.png"); }
.section-divider.gray::after  { background-image: url("../images/shape-grey.png"); }

.w-100 { width: 100%; }

.has-scrollbar { display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: inline mandatory; padding-block-end: 40px; }
.has-scrollbar::-webkit-scrollbar { height: 12px; }
.has-scrollbar::-webkit-scrollbar-button { width: calc(25% - 40px); }
.has-scrollbar::-webkit-scrollbar-track { outline: 2px solid var(--deep-saffron); border-radius: 50px; }
.has-scrollbar::-webkit-scrollbar-thumb { border: 3px solid var(--cultured); border-radius: 50px; }

/* Cyan acento en spans destacados */
.section-title > .span { display: inline-block; color: var(--deep-saffron); }

.abs-img { position: absolute; transform: scale(1); }

.scale-up-anim { animation: scaleUp 1s linear infinite alternate; }
@keyframes scaleUp { 0% {transform: scale(1);} 100% {transform: scale(1.05);} }

.section-subtitle {
  color: var(--cinnabar);
  font-family: var(--ff-rubik);
  text-align: center;
  font-weight: var(--fw-500);
}

.badge {
  position: absolute;
  background: var(--bg-color, var(--cinnabar));
  color: var(--white);
  font-size: var(--fs-5);
  font-weight: var(--fw-600);
  padding: var(--padding-block, 2px) 15px;
}

.rating-wrapper { display: flex; gap: 5px; color: var(--deep-saffron); }


/*-----------------------------------*\
  #SPINNERS + FADE-IN (unificados)
\*-----------------------------------*/
/* Spinners en tarjetas de productos */
.food-menu-card .card-banner { position: relative; }
.food-menu-card .card-banner .spinner,
.img-spinner {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  pointer-events: none;
}
.food-menu-card .card-banner .spinner::before,
.img-spinner::before {
  content: "";
  width: 44px; height: 44px;
  border: 6px solid #e2e8f0;
  border-top-color: var(--deep-saffron);
  border-radius: 50%;
  animation: spin 0.9s linear infinite;
}
/* Estado de carga de imágenes */
.food-menu-card .card-banner img.loading,
.img-loading { opacity: 0; }
/* Aparición fluida al cargar (productos, promos y “Nosotros”) */
.food-menu-card .card-banner img.loaded,
.img-loaded { animation: fadeIn 420ms ease-out forwards; opacity: 1; }

@keyframes spin { to { transform: rotate(360deg); } }
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(4px) scale(0.995); filter: blur(1px); }
  to   { opacity: 1; transform: translateY(0)   scale(1);     filter: blur(0); }
}

/* Loader para fondos diferidos (sección HERO) */
.bg-loading { position: relative; }
.bg-loading::before {
  content: "";
  position: absolute; inset: 0; margin: auto;
  width: 44px; height: 44px;
  border: 6px solid #e2e8f0;
  border-top-color: var(--deep-saffron);
  border-radius: 50%;
  animation: spin 0.9s linear infinite;
  z-index: 1;
}
.bg-loaded.bg-loading::before { display: none; }


/*-----------------------------------*\
  #HEADER
\*-----------------------------------*/
.header-btn-group .btn {
  display: inline-block;
  padding: 10px 20px;
  font-size: 1.6rem;
  background-color: #ff922b;
  color: white; border: none; border-radius: 5px;
  text-align: center;
  transition: background-color 0.3s ease;
  margin: 0 10px;
}
.header-btn-group .btn:hover { background-color: #0056b3; }

.header {
  position: fixed;   /* antes estaba absolute */
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;     /* más alto que las flechas */
  --color: var(--white);
  --btn-color: var(--champagne-pink);
  position: absolute; top: 0; left: 0; width: 100%;
  padding-block: 20px; border-block-end: 1px solid var(--champagne-pink_20);
  z-index: 1000;
}
.header.active {
  --color: var(--rich-black-fogra-29);
  --btn-color: var(--rich-black-fogra-29);
  position: fixed; top: -95px; background-color: var(--white);
  box-shadow: var(--shadow-1); animation: slideIn 0.5s ease-out forwards;
}
@keyframes slideIn { 0% {transform: translateY(0);} 100% {transform: translateY(100%);} }

.header .container { display: flex; justify-content: space-between; align-items: center; }

.logo { color: var(--color); font-family: var(--ff-rubik); font-size: 2.8rem; font-weight: var(--fw-700); letter-spacing: -2px; }
.logo .span { display: inline-block; color: var(--deep-saffron); }

.header-btn-group { display: flex; align-items: center; gap: 20px; }
.search-btn { color: var(--btn-color); font-size: 20px; }
.search-btn ion-icon { --ionicon-stroke-width: 50px; }

.nav-toggle-btn { display: grid; gap: 4px; }
.line { width: 10px; height: 3px; background-color: var(--btn-color); border-radius: 5px; transition: var(--transition-1); }
.line.middle { width: 20px; }
.line.bottom { margin-left: auto; }
.nav-toggle-btn.active .line.top { transform: translate(1px, 3px) rotate(45deg); }
.nav-toggle-btn.active .line.middle { transform: rotate(-45deg); }
.nav-toggle-btn.active .line.bottom { transform: translate(-1px, -3px) rotate(45deg); }

.navbar {
  position: absolute; top: 100%; left: 50%; transform: translateX(-50%);
  width: calc(100% - 30px);
  background-color: var(--white);
  padding-inline: 20px; box-shadow: var(--shadow-1);
  height: 0; overflow: hidden; visibility: hidden; transition: var(--transition-1);
}
.navbar.active { height: 236px; visibility: visible; }
.navbar-list { margin-block: 10px; }
.nav-item:not(:last-child) { border-block-end: 1px solid hsla(0,0%,0%,0.04); }
.navbar-link {
  color: var(--rich-black-fogra-29);
  font-size: var(--fs-4); font-family: var(--ff-rubik); font-weight: var(--fw-500);
  padding: 10px 15px; transition: var(--transition-1);
}
.navbar-link:is(:hover,:focus) { color: var(--dark-orange); }


/*-----------------------------------*\
  #HERO
\*-----------------------------------*/
@media (max-width: 767px) {
  .hero-banner { display: block; width: 100%; position: relative; transform: translateY(0); margin-top: 10px; opacity: 80%; }
  .hero-title { font-size: 4.6rem; margin-top: 20px; }
  .hero-text  { margin-top: 15px; padding-bottom: 0; }
  .hero-img-bg { display: block; position: absolute; top: -10px; left: 0; width: 100%; z-index: 1; }
  .hero-img { width: 100%; height: auto; position: relative; z-index: 2; margin-bottom: 0; }
}

.hero {
  background-repeat: no-repeat; background-size: cover; background-position: center;
  padding-block: 100px 60px; text-align: center;
}

.hero-subtitle { color: var(--dark-orange); font-family: var(--ff-shadows-into-light); font-size: var(--fs-3); letter-spacing: 1px; margin-block-end: 25px; }
.hero-title { color: var(--champagne-pink); max-width: 12ch; margin-inline: auto; }
.hero-text  { color: var(--desert-sand); margin-block: 15px 30px; max-width: 44ch; margin-inline: auto; }

.hero .btn { margin-inline: auto; }
.hero .btn:is(:hover,:focus) { background-color: var(--white); color: var(--black); }

/* Botones del Hero (no estirarlos) */
.hero .btn-group { display: inline-flex; gap: 10px; margin-top: 20px; flex-wrap: wrap; }
.hero .btn-group .btn { padding: 12px 20px; line-height: 1.2; flex: 0 0 auto; }
@media (max-width: 767px) { .hero .btn-group .btn { padding: 12px 18px; font-size: 1.5rem; } }


/*-----------------------------------*\
  #INFO (sección con slider/promos)
\*-----------------------------------*/
.info {
  text-align: center; padding: 20px;
  background-size: cover; background-position: center; background-repeat: no-repeat; background-attachment: fixed;
}
.info .section-title { max-width: 15ch; margin-block: 40px 10px; margin-inline: auto; }
.info-list { margin-block: 20px 30px; }

.info-item { display: flex; justify-content: center; align-items: center; gap: 10px; }
.info-item:not(:last-child) { margin-block-end: 10px; }
.info-item ion-icon {
  background-color: var(--dark-orange); /* fondo amarillo */
  color: white;                        /* ✔ en negro */
  font-size: 1.2rem;
  padding: 4px;
  border-radius: 50%;
  --ionicon-stroke-width: 110px;
}
.info-item .span { color: var(--rich-black-fogra-29); font-family: var(--ff-rubik); font-weight: var(--fw-500); }

/* Botón “VER NUESTRAS COMIDAS” (no estirar) */
.info .btn {
  display: inline-flex; width: auto; margin-inline: auto;
  padding: 12px 20px; font-size: 1.6rem;
  transition: background-color 0.3s ease, color 0.3s ease;
}
.info .btn:hover { background-color: var(--dark-orange); }

/* Banner + flechas (en stage) */
.info-banner { display: flex; justify-content: center; }
.info-banner .stage { position: relative; display: inline-block; }
.info-banner .stage .img-wrap { width: 100%; max-width: 509px; aspect-ratio: 509 / 459; position: relative; }

/* Flechas: grandes, sin fondo; hover oscurece; ocultas hasta que cargue la imagen */
.info-banner .stage .arrow {
  z-index: 10;   /* mucho menor que el header */
  position: absolute; top: 10px;
  background: transparent; border: none; padding: 0;
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer; z-index: 5;
  opacity: 0; pointer-events: none; transition: opacity 0.25s ease, filter 0.2s ease;
}
.info-banner .stage.is-ready .arrow { opacity: 1; pointer-events: auto; }
.info-banner .stage .arrow-left  { left: 10px; }
.info-banner .stage .arrow-right { right: 10px; }
.info-banner .stage .arrow img {
  width: 42px; height: 42px; transition: filter 0.2s ease, opacity 0.2s ease;
}
.info-banner .stage .arrow:hover img { filter: brightness(0.75); }

/* Imagen promo con transición fluida */
#info-img { opacity: 1; transition: opacity 0.28s ease-in-out, transform 0.28s ease-out; }
#info-img.fade-out { opacity: 0; transform: scale(0.995); }

/* Color acento específico en “Gustito” */
.info-content h2 .span { color: var(--deep-saffron); }

/* INFO layout responsivo */
@media (min-width: 768px) {
  .info .container { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; align-items: center; }
  .info { text-align: left; }
  .info .section-title { margin-block-start: 0; }
  .info :is(.section-title,.btn) { margin-inline: 0; }
  .info-item { justify-content: flex-start; }
}
@media (max-width: 767px) {
  .info { text-align: center; }
  .info .container { display: flex; flex-direction: column; align-items: center; }
  .info-content { padding: 0; }
  .info-banner .abs-img { position: absolute; top: -20px; left: 10px; width: 100%; height: 80px; }
  .info-img { max-width: 100%; margin-bottom: 0; }
  .info .section-title { max-width: 100%; text-align: center; }
  .info-list { padding-inline-start: 0; list-style-type: none; }
  .info-item { flex-direction: row; text-align: left; }
  .info-item ion-icon { font-size: 1.5rem; }
  .info .btn { padding: 10px; font-size: 1.6rem; margin-bottom: 25px; }
}


/*-----------------------------------*\
  #ABOUT
\*-----------------------------------*/
.about { text-align: center; }
.about-banner { position: relative; }
.about-banner .img-wrap { aspect-ratio: 16 / 9; max-width: 100%; }
.about-banner .about-img { width: 100%; height: auto; display: block; }

.about-img.img-loading { opacity: 0; }
.about-img.img-loaded  { animation: fadeIn 420ms ease-out forwards; }

.about .section-title { max-width: 15ch; margin-block: 40px 10px; margin-inline: auto; }
.about-list { margin-block: 20px 30px; }

.about-item { display: flex; justify-content: center; align-items: center; gap: 10px; }
.about-item:not(:last-child) { margin-block-end: 10px; }
.about-item ion-icon {
  background-color: var(--deep-saffron); color: var(--white);
  font-size: 1.2rem; padding: 4px; border-radius: 50%; --ionicon-stroke-width: 110px;
}
.about-item .span { color: var(--rich-black-fogra-29); font-family: var(--ff-rubik); font-weight: var(--fw-500); }
.about .btn { margin-inline: auto; }


/*-----------------------------------*\
  #FOOD MENU (tarjetas + filtros)
\*-----------------------------------*/
.food-menu { background-color: var(--isabelline); text-align: center; }
.food-menu .section-title { margin-block: 10px 20px; }
.food-menu .section-text { width: 100%; margin-inline: auto; margin-block-end: 20px; text-align: center; }

/* Filtros */
.filter-list {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-bottom: 20px;
}
.filter-btn {
  background-color: var(--white);
  color: var(--color, var(--rich-black-fogra-29));
  font-family: var(--ff-rubik); font-weight: var(--fw-500);
  padding: 10px 20px; border: 1px solid var(--border-color, var(--cultured));
  white-space: nowrap; flex: 1 1 20%; text-align: center;
}
.filter-btn.active { background-color: var(--deep-saffron); --color: var(--white); --border-color: var(--deep-saffron); }
@media (max-width: 767px) {
  .filter-list { flex-wrap: wrap; justify-content: center; gap: 4px; }
  .about-img { margin-top: 2rem; }
  .filter-btn { flex: 1 1 calc(33.33% - 10px); padding: 10px 15px; }
}
@media (min-width: 768px) { .filter-btn { flex: 1 1 auto; } }

/* GRID productos: 1 → 2 → 3 columnas */
.food-menu-list { display: grid; gap: 30px; }
@media (min-width: 768px) { .food-menu-list { grid-template-columns: 1fr 1fr; } }
@media (min-width: 992px){ .food-menu-list { grid-template-columns: repeat(3, 1fr); } }
.food-menu-list.grid-4-2 {
  grid-template-columns: repeat(2, 1fr);
}

@media (min-width: 992px) {
  .food-menu-list.grid-4-2 {
    grid-template-columns: repeat(4, 1fr);
  }
}

@media (max-width: 767px) {
  .food-menu-list.grid-4-2 {
    display: grid;
    gap: 10px;
  }

  .food-menu-list.grid-4-2 .food-menu-card {
    background-color: var(--white);
    padding: 12px;
    box-shadow: var(--shadow-2);
  }
}

/* TARJETA */
.food-menu-card {
  background-color: var(--white);
  padding: 32px; box-shadow: var(--shadow-2);
}
.food-menu-card:focus-within { outline: 1px auto -webkit-focus-ring-color; }

.food-menu-card .card-banner {
  position: relative;
  max-width: max-content;
  aspect-ratio: 1 / 1;
  margin-inline: auto;
  margin-bottom: 16px;
}
.food-menu-card .price-wrapper {
  display: flex; justify-content: center; gap: 5px;
  font-family: var(--ff-rubik); font-weight: var(--fw-600);
}

/* Título del plato */
.food-menu-card .card-title {
  text-align: center;
  margin-top: 10px;
  margin-bottom: 10px;
}

/* Descripción */
.food-menu-card .wrapper {
  display: flex; justify-content: center; align-items: center; gap: 15px;
  margin-top: 6px;
}
.food-menu-card .category {
  margin-top: 2px; text-align: left;
  font-family: var(--ff-rubik); font-weight: var(--fw-500); line-height: 1.5;
}
.food-menu-card .category span { display: inline; font-weight: bold; color: #555555; }
.food-menu-card .rating-wrapper { font-size: 1.4rem; }

/* Precio (texto) */
.food-menu-card .price-text { color: var(--cinnabar); text-transform: uppercase; }
.food-menu-card .price { color: var(--deep-saffron); padding-inline-end: 3px; }
.food-menu-card .del { color: var(--gray-x-11-gray); }

/* Botón RESERVAR: ancho completo */
.food-menu-card .food-menu-btn {
  position: static; display: block; width: 100%; max-width: 100%;
  margin: 20px auto 0; padding: 12px 16px;
  background-color: var(--cinnabar); color: var(--white);
  border-radius: 6px; transition: transform 0.3s ease, background-color 0.3s ease;
}
.food-menu-card .food-menu-btn:hover,
.food-menu-card .food-menu-btn:focus {
  transform: scale(1.02);
  background-color: var(--deep-saffron);
}

@media (max-width: 767px) {
  .h1,.h2 { font-size: 40px; }
  .hero .h1,.hero .h2 { font-size: 50px; }
}

/* Etiqueta Junaeb (si la usas) */
.junaeb-label .juna { color: blue; padding-inline-start: 3px; }
.junaeb-label .eb   { color: red; }
.junaeb-label { display: inline-flex; white-space: nowrap; gap: 0; }


/*-----------------------------------*\
  #FOOTER
\*-----------------------------------*/
.footer { overflow: hidden; }
.footer-top {
  position: relative; padding-block: 100px;
  background-repeat: no-repeat; background-color: var(--isabelline);
  background-size: contain; background-position: bottom;
  border-block-end: 2px solid #dfdfc7;
}
.footer-top .container { display: grid; }

.footer .logo { color: var(--rich-black-fogra-29); font-size: 3.2rem; }
.footer-text { margin-block: 15px 25px; }

.social-list { display: flex; gap: 5px; }
.social-link {
  background-color: var(--dark-orange); color: var(--white);
  font-size: 1.5rem; padding: 10px; transition: var(--transition-1);
  border-radius: 20%;
}
.social-link:is(:hover,:focus) { background-color: var(--rich-black-fogra-29); }

.footer-list-title {
  position: relative; max-width: max-content;
  color: var(--rich-black-fogra-29);
  font-family: var(--ff-rubik); font-size: var(--fs-3); font-weight: var(--fw-600); letter-spacing: -1px;
  margin-block-end: 20px;
}
.footer-list-title::after {
  content: ""; position: absolute; top: 50%; transform: translateY(-50%);
  left: calc(100% + 15px); background-color: var(--deep-saffron);
  width: 40px; height: 4px; border-inline-end: 5px solid var(--deep-saffron);
  box-shadow: inset -5px 0 0 var(--isabelline);
}

.footer-list > li:not(:last-child) { margin-block-end: 15px; margin-top: 1.5rem; }
.footer-list address { max-width: 20ch; }

.footer-bottom { padding-block: 20px; text-align: center; background-color: var(--isabelline); }
.copyright-link { display: inline-block; }
.copyright-link:is(:hover,:focus) { text-decoration: underline; }


/*-----------------------------------*\
  #BACK TO TOP
\*-----------------------------------*/
.back-top-btn {
  position: fixed; bottom: 10px; right: 20px;
  background-color: var(--deep-saffron); color: var(--white);
  padding: 15px; border-radius: 50%; box-shadow: var(--shadow-1);
  z-index: 2; opacity: 0; visibility: hidden; transition: var(--transition-1);
}
.back-top-btn.active { opacity: 1; visibility: visible; transform: translateY(-10px); }


/*-----------------------------------*\
  #MEDIA QUERIES (contenedores, hero, nav)
\*-----------------------------------*/

/* >= 480px (header botones) */
@media (max-width: 480px) {
  .header-btn-group .btn {
    display: inline-block; width: 100%; padding: 10px;
    font-size: 1.8rem; text-align: center;
    background-color: #ff922b; color: white; border: none; border-radius: 5px;
  }
  .header-btn-group .btn:hover { background-color: #0056b3; }
}

/* >= 550px (container ancho) */
@media (min-width: 550px) {
  .container { max-width: 550px; width: 100%; margin-inline: auto; }
  .has-scrollbar > li { min-width: calc(50% - 5px); }
  .hero-title { --fs-1: 4.2rem; }
  .food-menu .section-text { width: 100%; }
  .footer-top .container { grid-template-columns: 1fr 1fr; }
}

/* >= 768px (hero y layout) */
@media (min-width: 768px) {
  .container { max-width: 720px; }

  .hero { position: relative; text-align: left; overflow: hidden; z-index: 1; }
  .hero-content > :is(*,.btn) { margin-inline: 0; }
  .hero-banner {
    display: block; position: absolute; top: calc(50% + 86px);
    transform: translateY(-50%); right: 50px; max-width: 40%; aspect-ratio: 1 / 0.9;
  }
  .hero-img { position: absolute; bottom: 0; translate: 70px; }
  .hero::after {
    content: ""; position: absolute; right: 0; bottom: -2px; width: 100%; height: 100%;
    background-image: url("../images/hero-bg-shape.png");
    background-repeat: no-repeat; background-size: contain; background-position: right bottom;
    pointer-events: none; z-index: -1;
  }

  /* ABOUT */
  .about .container { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
  .about { text-align: left; }
  .about .section-title { margin-block-start: 0; }
  .about :is(.section-title,.btn) { margin-inline: 0; }
  .about-item { justify-content: flex-start; }

  /* FOOD MENU (texto a la izquierda en desktop) */
  .food-menu-card :is(.wrapper,.price-wrapper) { justify-content: flex-start; }
  .food-menu-card .card-title { text-align: left; margin-top: 10px; margin-bottom: 10px; }
}

/* >= 992px (desktop) */
@media (min-width: 992px) {
  :root { --section-padding: 50px; }

  .container { max-width: 960px; }
  .has-scrollbar > li { min-width: calc(33.33% - 6.66px); }
  .h2 { --fs-1: 4.2rem; }

  .nav-toggle-btn { display: none; }
  .header .container { gap: 20px; }
  .navbar,.navbar.active { all: unset; margin-inline-start: auto; }
  .navbar-list { margin-block: 0; display: flex; gap: 5px; }
  .nav-item:not(:last-child) { border-block-end: none; }
  .navbar-link { --fs-4: 1.5rem; color: var(--btn-color); letter-spacing: -0.5px; }

  .hero { min-height: 660px; display: grid; align-items: center; }
  .hero-subtitle { --fs-3: 3.8rem; }
  .hero-title { --fs-1: 7rem; letter-spacing: -2.5px; }
  .hero-text { font-size: var(--fs-3); }
  .hero-banner { max-width: 45%; top: auto; bottom: 0; transform: translateY(0); }
  .hero-img-bg { transform: scale(1.4) translate(20px, -20px); }

  /* FOOD MENU (grid ya definido 3 cols) */
  .food-menu-card { height: 100%; }

  /* Banner */
  .banner-list { grid-template-columns: repeat(4, 1fr); }
  .banner-lg { grid-column: 1 / 3; grid-row: 1 / 3; }
  .banner-md { grid-column: 3 / 5; grid-row: 2 / 3; height: 220px; }

  /* Footer */
  .footer-top .container { grid-template-columns: 1fr 1fr 1fr 1.6fr; }

  /* Back to top */
  .back-top-btn { bottom: 20px; right: 30px; }

  /* PC ONLY: espacio extra bajo imágenes grandes para no pisar la divisoria */
  .hero { padding-bottom: 2.5rem; }
  .section.info { padding-bottom: 2rem; }
  .info-banner .stage { margin-bottom: 1.25rem; }
  .section.about { padding-bottom: 2rem; }
}

/* >= 1200px (ancho grande) */
@media (min-width: 1200px) {
  .container { max-width: 1300px; }
  .hero { min-height: 770px; }
  .promo .promo-item { min-width: calc(25% - 7.5px); }
  .banner-md .banner-item-content { left: 55%; }
  .footer-top .container { grid-template-columns: 1.4fr 1fr 1fr 1.6fr; }
}
