
/* ============================================================
   Block 1 — Main styles
   ============================================================ */
:root {
      --yellow: #FFD600;
      --yellow-glow: #FFE55C;
      --black: #0A0A0A;
      --dark: #111111;
      --dark2: #1A1A1A;
      --dark3: #222222;
      --white: #FFFFFF;
      --red: #FF3B30;
      --green: #25D366;
    }

    * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }

    html {
      scroll-behavior: smooth;
      overflow-x: hidden;
    }

    body {
      background: var(--black);
      color: var(--white);
      font-family: 'Barlow', sans-serif;
      overflow-x: hidden;
      cursor: none;
      -webkit-overflow-scrolling: touch;
    }

    /* CURSOR */
    .cursor {
      width: 20px;
      height: 20px;
      border: 2px solid var(--yellow);
      border-radius: 50%;
      position: fixed;
      top: 0;
      left: 0;
      pointer-events: none;
      z-index: 99999;
      transform: translate(-50%, -50%);
      transition: width .2s, height .2s, background .2s;
    }

    .cursor.hovering {
      width: 40px;
      height: 40px;
      background: rgba(255, 214, 0, 0.15);
    }

    /* STARS */
    .stars-bg {
      position: fixed;
      inset: 0;
      pointer-events: none;
      z-index: 0;
      overflow: hidden;
    }

    .star {
      position: absolute;
      background: white;
      border-radius: 50%;
      animation: twinkle var(--d, 3s) ease-in-out infinite var(--delay, 0s);
    }

    @keyframes twinkle {

      0%,
      100% {
        opacity: .2;
        transform: scale(1)
      }

      50% {
        opacity: 1;
        transform: scale(1.3)
      }
    }

    /* PWA */
    :root {
      --sat: env(safe-area-inset-top, 44px);
    }

    /* NAV */
    nav {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      z-index: 1000;
      padding: env(safe-area-inset-top) 40px 0;
      height: calc(70px + env(safe-area-inset-top));
      display: flex;
      align-items: center;
      justify-content: space-between;
      background: var(--yellow);
      border-bottom: none;
      transition: box-shadow .3s, background .3s;
    }

    /* Dark film over iOS safe-area for white status bar icon readability on yellow */
    nav::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: env(safe-area-inset-top);
      background: linear-gradient(180deg, rgba(0, 0, 0, 0.22), rgba(0, 0, 0, 0));
      pointer-events: none;
      z-index: 1;
    }

    nav.scrolled {
      background: var(--yellow);
      box-shadow: 0 2px 16px rgba(0, 0, 0, 0.18);
    }

    .nav-back {
      display: none;
      background: transparent;
      border: none;
      width: 44px;
      height: 40px;
      align-items: center;
      justify-content: center;
      padding: 0;
      cursor: pointer;
      border-radius: 50%;
      color: #000;
      transition: background .2s, transform .12s;
      -webkit-tap-highlight-color: transparent;
    }

    .nav-back:active {
      transform: scale(.9);
      background: rgba(0, 0, 0, 0.08);
    }

    .nav-back svg {
      width: 24px;
      height: 24px;
      display: block;
    }

    .nav-logo {
      display: flex;
      align-items: center;
      gap: 10px;
      text-decoration: none;
    }

    .nav-logo img {
      height: 52px;
      width: 132px;
      border-radius: 0;
      border: none;
      object-fit: contain;
    }

    .nav-logo span {
      font-family: 'Bebas Neue', sans-serif;
      font-size: 1.5rem;
      color: #000;
      letter-spacing: 2px;
      font-weight: 700;
    }

    .nav-links {
      display: flex;
      align-items: center;
      gap: 28px;
      list-style: none;
    }

    .nav-links a {
      color: rgba(0, 0, 0, 0.78);
      text-decoration: none;
      font-family: 'Barlow Condensed', sans-serif;
      font-size: .9rem;
      font-weight: 700;
      letter-spacing: 1.5px;
      text-transform: uppercase;
      transition: color .2s;
    }

    .nav-links a:hover {
      color: #000;
    }

    .nav-cta {
      background: #000 !important;
      color: var(--yellow) !important;
      padding: 8px 20px;
      border-radius: 4px;
    }

    .hamburger {
      display: none;
      flex-direction: column;
      gap: 5px;
      cursor: pointer;
      padding: 5px;
    }

    .nav-close-btn {
      display: none;
    }

    .hamburger span {
      display: block;
      width: 25px;
      height: 2.5px;
      background: #000;
      border-radius: 2px;
      transition: all .3s;
    }

    /* ANIMATIONS */
    @keyframes fadeInDown {
      from {
        opacity: 0;
        transform: translateY(-20px)
      }

      to {
        opacity: 1;
        transform: translateY(0)
      }
    }

    @keyframes fadeInUp {
      from {
        opacity: 0;
        transform: translateY(30px)
      }

      to {
        opacity: 1;
        transform: translateY(0)
      }
    }

    @keyframes fadeIn {
      from {
        opacity: 0
      }

      to {
        opacity: 1
      }
    }

    @keyframes slideInLeft {
      from {
        opacity: 0;
        transform: translateX(-40px)
      }

      to {
        opacity: 1;
        transform: translateX(0)
      }
    }

    @keyframes slideInRight {
      from {
        opacity: 0;
        transform: translateX(40px)
      }

      to {
        opacity: 1;
        transform: translateX(0)
      }
    }

    @keyframes pulse {

      0%,
      100% {
        transform: scale(1)
      }

      50% {
        transform: scale(1.05)
      }
    }

    @keyframes float {

      0%,
      100% {
        transform: translateY(0)
      }

      50% {
        transform: translateY(-10px)
      }
    }

    .reveal {
      opacity: 0;
      transform: translateY(30px);
      transition: opacity .7s ease, transform .7s ease;
    }

    .reveal.visible {
      opacity: 1;
      transform: translateY(0);
    }

    .reveal-left {
      opacity: 0;
      transform: translateX(-40px);
      transition: opacity .7s ease, transform .7s ease;
    }

    .reveal-left.visible {
      opacity: 1;
      transform: translateX(0);
    }

    .reveal-right {
      opacity: 0;
      transform: translateX(40px);
      transition: opacity .7s ease, transform .7s ease;
    }

    .reveal-right.visible {
      opacity: 1;
      transform: translateX(0);
    }

    /* HERO FOTO — BANNER CAROUSEL */
    .hero-foto {
      position: relative;
      overflow: hidden;
      aspect-ratio: 1983/958;
      width: 100%;
      margin-top: calc(70px + env(safe-area-inset-top));
    }

    .banner-carousel { position: absolute; inset: 0; }

    .banner-slide {
      position: absolute; inset: 0;
      opacity: 0; visibility: hidden; pointer-events: none;
      transition: opacity 0.8s ease;
    }
    .banner-slide.active { opacity: 1; visibility: visible; pointer-events: auto; }

    .banner-slide img {
      width: 100%; height: 100%;
      object-fit: cover; object-position: center;
      display: block; cursor: pointer;
    }

    .banner-dots {
      position: absolute;
      bottom: 14px; left: 50%; transform: translateX(-50%);
      display: flex; gap: 8px; z-index: 10;
    }
    .banner-dot {
      width: 44px; height: 44px; border-radius: 50%;
      background: transparent;
      border: 0;
      cursor: pointer; padding: 0;
      position: relative;
    }
    .banner-dot::before {
      content: '';
      position: absolute;
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background: rgba(255,255,255,0.35);
      border: 1.5px solid rgba(255,255,255,0.6);
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      transition: background .35s, transform .35s, box-shadow .35s;
      box-shadow: 0 1px 4px rgba(0,0,0,0.4);
    }
    .banner-dot.active::before {
      background: var(--yellow); border-color: var(--yellow);
      transform: translate(-50%, -50%) scale(1.45);
      box-shadow: 0 0 8px rgba(255,214,0,0.6);
    }

    /* HERO */
    .hero {
      min-height: 100vh;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      position: relative;
      padding: 120px 40px 80px;
      text-align: center;
      overflow: hidden;
    }

    .hero-bg {
      position: absolute;
      inset: 0;
      background: radial-gradient(ellipse 80% 60% at 50% 40%, rgba(255, 214, 0, 0.08) 0%, transparent 70%);
    }

    .hero-img-bg {
      position: absolute;
      inset: 0;
      background: url('../og-image.png') center/cover no-repeat;
      opacity: 0.08;
      filter: saturate(0);
    }

    .hero-orbit {
      position: absolute;
      border: 1px solid rgba(255, 214, 0, 0.1);
      border-radius: 50%;
      animation: orbit-spin 20s linear infinite;
    }

    .hero-orbit:nth-child(1) {
      width: 600px;
      height: 600px;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
    }

    .hero-orbit:nth-child(2) {
      width: 900px;
      height: 900px;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      animation-duration: 35s;
      animation-direction: reverse;
    }

    @keyframes orbit-spin {
      to {
        transform: translate(-50%, -50%) rotate(360deg);
      }
    }

    .hero-badge {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      background: rgba(255, 214, 0, 0.1);
      border: 1px solid rgba(255, 214, 0, 0.3);
      color: var(--yellow);
      font-family: 'Barlow Condensed', sans-serif;
      font-size: .8rem;
      font-weight: 700;
      letter-spacing: 3px;
      text-transform: uppercase;
      padding: 6px 16px;
      border-radius: 2px;
      margin-bottom: 24px;
      animation: fadeInDown .8s ease both;
    }

    .hero-title {
      font-family: 'Bebas Neue', sans-serif;
      font-size: clamp(4rem, 12vw, 10rem);
      line-height: .9;
      letter-spacing: 4px;
      animation: fadeInUp .8s ease .2s both;
    }

    .hero-title .yellow {
      color: var(--yellow);
    }

    .hero-title .outline {
      -webkit-text-stroke: 2px var(--yellow);
      color: transparent;
    }

    .hero-tagline {
      font-family: 'Barlow Condensed', sans-serif;
      font-size: clamp(1rem, 2.5vw, 1.4rem);
      font-weight: 400;
      color: rgba(255, 255, 255, 0.6);
      letter-spacing: 4px;
      text-transform: uppercase;
      margin-top: 16px;
      animation: fadeInUp .8s ease .4s both;
    }

    .hero-buttons {
      display: flex;
      gap: 16px;
      margin-top: 48px;
      animation: fadeInUp .8s ease .6s both;
      flex-wrap: wrap;
      justify-content: center;
    }

    .btn-primary {
      background: var(--yellow);
      color: var(--black);
      font-family: 'Bebas Neue', sans-serif;
      font-size: 1.1rem;
      letter-spacing: 2px;
      padding: 16px 40px;
      border: none;
      cursor: pointer;
      border-radius: 4px;
      transition: all .2s;
      text-decoration: none;
      display: inline-flex;
      align-items: center;
      gap: 8px;
    }

    .btn-primary:hover {
      background: var(--yellow-glow);
      transform: translateY(-3px);
      box-shadow: 0 10px 40px rgba(255, 214, 0, 0.3);
    }

    .btn-secondary {
      background: transparent;
      color: var(--yellow);
      font-family: 'Bebas Neue', sans-serif;
      font-size: 1.1rem;
      letter-spacing: 2px;
      padding: 14px 40px;
      border: 2px solid var(--yellow);
      cursor: pointer;
      border-radius: 4px;
      transition: all .2s;
      text-decoration: none;
      display: inline-flex;
      align-items: center;
      gap: 8px;
    }

    .btn-secondary:hover {
      background: rgba(255, 214, 0, 0.1);
      transform: translateY(-3px);
    }

    .hero-stats {
      display: flex;
      gap: 48px;
      margin-top: 64px;
      animation: fadeInUp .8s ease .8s both;
      flex-wrap: wrap;
      justify-content: center;
    }

    .stat-num {
      font-family: 'Bebas Neue', sans-serif;
      font-size: 2.5rem;
      color: var(--yellow);
      line-height: 1;
    }

    .stat-label {
      font-size: .75rem;
      color: rgba(255, 255, 255, 0.4);
      letter-spacing: 2px;
      text-transform: uppercase;
      margin-top: 4px;
    }

    .scroll-indicator {
      position: absolute;
      bottom: 40px;
      left: 50%;
      transform: translateX(-50%);
      animation: bounce 2s ease-in-out infinite;
      color: rgba(255, 214, 0, 0.4);
      font-size: 1.5rem;
    }

    @keyframes bounce {

      0%,
      100% {
        transform: translateX(-50%) translateY(0)
      }

      50% {
        transform: translateX(-50%) translateY(10px)
      }
    }

    @keyframes arrowPulse {

      0%,
      100% {
        transform: scale(1);
        box-shadow: 0 0 12px rgba(255, 214, 0, 0.4)
      }

      50% {
        transform: scale(1.15);
        box-shadow: 0 0 22px rgba(255, 214, 0, 0.7)
      }
    }

    @keyframes swipeHint {

      0%,
      100% {
        transform: translateX(0)
      }

      50% {
        transform: translateX(6px)
      }
    }

    /* STRIP */
    .mission-strip {
      background: var(--yellow);
      padding: 18px 0;
      overflow: hidden;
      white-space: nowrap;
    }

    .mission-strip-inner {
      display: inline-flex;
      gap: 60px;
      animation: marquee 20s linear infinite;
    }

    .mission-strip span {
      font-family: 'Bebas Neue', sans-serif;
      font-size: 1.1rem;
      letter-spacing: 3px;
      color: var(--black);
    }

    @keyframes marquee {
      to {
        transform: translateX(-50%);
      }
    }

    /* SECTIONS */
    section {
      position: relative;
      z-index: 1;
    }

    .section-label {
      font-family: 'Barlow Condensed', sans-serif;
      font-size: .75rem;
      font-weight: 700;
      letter-spacing: 4px;
      text-transform: uppercase;
      color: var(--yellow);
      margin-bottom: 12px;
    }

    .section-title {
      font-family: 'Bebas Neue', sans-serif;
      font-size: clamp(2.5rem, 6vw, 5rem);
      line-height: 1;
      letter-spacing: 2px;
    }

    /* MENU */
    #ordenar {
      padding: 16px 40px 100px;
      max-width: 1200px;
      margin: 0 auto;
    }

    .order-header {
      text-align: center;
      margin-bottom: 60px;
    }

    .order-type-selector {
      display: flex;
      background: var(--dark2);
      border-radius: 8px;
      padding: 6px;
      width: fit-content;
      margin: 0 auto 48px;
      border: 1px solid rgba(255, 214, 0, 0.15);
    }

    .order-type-btn {
      padding: 12px 32px;
      border: none;
      background: transparent;
      color: rgba(255, 255, 255, 0.5);
      font-family: 'Barlow Condensed', sans-serif;
      font-size: 1rem;
      font-weight: 700;
      letter-spacing: 2px;
      text-transform: uppercase;
      cursor: pointer;
      border-radius: 6px;
      transition: all .2s;
    }

    .order-type-btn.active {
      background: var(--yellow);
      color: var(--black);
    }

    .categories-carousel {
      display: flex;
      gap: 8px;
      overflow-x: auto;
      padding: 4px 0 8px;
      margin-bottom: 0;
      scroll-snap-type: x mandatory;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
    }

    .categories-carousel::-webkit-scrollbar {
      display: none;
    }

    [data-cat="hamburguesas"]  { --cat-color: #FF9A3C; }
    [data-cat="hochos"]        { --cat-color: #FF6B6B; }
    [data-cat="alitas"]        { --cat-color: #FF7043; }
    [data-cat="boneless"]      { --cat-color: #FFAB40; }
    [data-cat="papas-francesa"]{ --cat-color: #FFD600; }
    [data-cat="papas-gajo"]    { --cat-color: #FFA000; }
    [data-cat="snacks"]        { --cat-color: #A5D6A7; }
    [data-cat="limonadas"]     { --cat-color: #69F0AE; }
    [data-cat="malteadas"]     { --cat-color: #F48FB1; }
    [data-cat="frappes"]       { --cat-color: #80CBC4; }
    [data-cat="refrescos"]     { --cat-color: #29B6F6; }

    .category-item {
      flex: 0 0 auto;
      min-width: 76px;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 7px;
      background: none;
      border: none;
      padding: 0 4px 2px;
      cursor: pointer;
      scroll-snap-align: start;
      transition: transform .15s ease;
      position: relative;
      -webkit-touch-callout: none;
      -webkit-user-select: none;
      user-select: none;
    }

    .category-item::before {
      content: '';
      position: absolute;
      top: 0;
      left: 50%;
      transform: translateX(-50%);
      width: 76px;
      height: 76px;
      border-radius: 50%;
      border: 2px solid rgba(255, 214, 0, 0.30);
      background: transparent;
      box-shadow: none;
      transition: background .25s ease, border-color .25s ease, box-shadow .25s ease;
      z-index: 0;
    }

    .category-item.active::before {
      background: #FFD600;
      border-color: #FFD600;
      box-shadow: 0 0 18px rgba(255, 214, 0, 0.55);
    }

    .category-item img.cat-icon {
      width: 76px;
      height: 76px;
      object-fit: contain;
      pointer-events: none;
      -webkit-user-drag: none;
      position: relative;
      z-index: 1;
    }

    .category-item .category-name {
      font-family: 'Barlow Condensed', sans-serif;
      font-size: .65rem;
      letter-spacing: 0.8px;
      text-transform: uppercase;
      color: rgba(255, 255, 255, 0.82);
      font-weight: 600;
      text-align: center;
      transition: color .2s ease;
      line-height: 1.15;
      position: relative;
      z-index: 1;
    }

    .category-item.active .category-name {
      color: #FFD600;
      font-weight: 700;
    }

    .category-item:active {
      transform: scale(0.88);
    }

    .menu-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
      gap: 20px;
    }

    .menu-category {
      display: none;
    }

    .menu-category.active {
      display: contents;
    }

    /* MENU CARDS */
    .menu-card {
      background: var(--dark2);
      border: 1px solid rgba(255, 255, 255, 0.06);
      border-radius: 12px;
      overflow: hidden;
      transition: all .3s;
      position: relative;
      display: flex;
      flex-direction: column;
    }

    .menu-card:hover {
      border-color: rgba(255, 214, 0, 0.3);
      transform: translateY(-6px);
      box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5);
    }

    .menu-card-badge {
      position: absolute;
      top: 12px;
      left: 12px;
      background: var(--red);
      color: white;
      font-family: 'Barlow Condensed', sans-serif;
      font-size: .7rem;
      font-weight: 700;
      letter-spacing: 1.5px;
      text-transform: uppercase;
      padding: 3px 10px;
      border-radius: 3px;
      z-index: 2;
    }

    .menu-card-badge.top {
      background: var(--yellow);
      color: var(--black);
    }

    .menu-card-img {
      width: 100%;
      height: 180px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 5rem;
      background: linear-gradient(135deg, #1a1a1a, #222);
      overflow: hidden;
    }

    .menu-card-img img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform .4s ease;
      cursor: pointer;
    }

    .menu-card:hover .menu-card-img img {
      transform: scale(1.05);
    }

    .menu-card-img {
      cursor: pointer;
    }

    .menu-card-body {
      padding: 16px;
      flex: 1;
      display: flex;
      flex-direction: column;
    }

    .menu-card-name {
      font-family: 'Bebas Neue', sans-serif;
      font-size: 1.4rem;
      letter-spacing: 1px;
    }

    .menu-card-desc {
      font-size: .82rem;
      color: rgba(255, 255, 255, 0.45);
      margin-top: 4px;
      line-height: 1.5;
      flex: 1;
    }
    .menu-card-ingredients-label{display:block;margin-bottom:3px;color:var(--yellow);font:700 .62rem/1 'Barlow Condensed',sans-serif;letter-spacing:1.1px;text-transform:uppercase}

    .card-customizer {
      margin-top: 12px;
      border-top: 1px solid rgba(255, 255, 255, 0.07);
      padding-top: 12px;
      display: flex;
      flex-direction: column;
      gap: 10px;
    }

    .customizer-label {
      font-family: 'Barlow Condensed', sans-serif;
      font-size: .72rem;
      font-weight: 700;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: rgba(255, 214, 0, 0.7);
      margin-bottom: 4px;
    }

    .toggle-group {
      display: flex;
      gap: 6px;
      flex-wrap: wrap;
    }

    .toggle-chip {
      padding: 5px 12px;
      background: var(--dark3);
      border: 1px solid rgba(255, 255, 255, 0.1);
      border-radius: 20px;
      font-size: .78rem;
      font-family: 'Barlow Condensed', sans-serif;
      font-weight: 600;
      color: rgba(255, 255, 255, 0.5);
      cursor: pointer;
      transition: all .15s;
      user-select: none;
    }

    .toggle-chip.selected {
      background: rgba(255, 214, 0, 0.15);
      border-color: var(--yellow);
      color: var(--yellow);
    }

    .salsa-select {
      width: 100%;
      background: var(--dark3);
      border: 1px solid rgba(255, 255, 255, 0.1);
      border-radius: 6px;
      color: rgba(255, 255, 255, 0.7);
      font-family: 'Barlow', sans-serif;
      font-size: .85rem;
      padding: 8px 12px;
      outline: none;
      cursor: pointer;
      transition: border-color .2s;
    }

    .salsa-select:focus {
      border-color: var(--yellow);
    }

    .salsa-select option {
      background: #1a1a1a;
    }

    .menu-card-footer {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-top: 12px;
    }

    .menu-card-price {
      font-family: 'Bebas Neue', sans-serif;
      font-size: 1.8rem;
      color: var(--yellow);
      line-height: 1;
    }

    .menu-card-price span {
      font-size: 1rem;
      color: rgba(255, 214, 0, 0.6);
    }

    .add-btn {
      height: 40px;
      padding: 0 14px;
      background: var(--yellow);
      color: var(--black);
      border: none;
      cursor: pointer;
      border-radius: 8px;
      font-family: 'Bebas Neue', sans-serif;
      font-size: .95rem;
      letter-spacing: 1px;
      font-weight: 700;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: all .15s;
      flex-shrink: 0;
      white-space: nowrap;
    }

    .add-btn:hover {
      background: var(--yellow-glow);
      transform: scale(1.03);
    }

    .add-btn.added {
      background: #25D366 !important;
      color: #fff !important;
      pointer-events: none;
    }

    @keyframes fabBounce {

      0%,
      100% {
        transform: scale(1)
      }

      30% {
        transform: scale(1.3)
      }

      60% {
        transform: scale(0.95)
      }
    }

    .fab-bounce {
      animation: fabBounce .4s ease !important;
    }

    /* BOTTOM SHEET */
    .bs-overlay {
      position: fixed;
      inset: 0;
      background: rgba(0, 0, 0, 0.7);
      z-index: 1100;
      opacity: 0;
      pointer-events: none;
      transition: opacity .3s;
    }

    .bs-overlay.open {
      opacity: 1;
      pointer-events: all;
    }

    .bs-sheet {
      position: fixed;
      bottom: 0;
      left: 0;
      right: 0;
      background: var(--dark);
      border-radius: 20px 20px 0 0;
      z-index: 1150;
      transform: translateY(100%);
      transition: transform .35s cubic-bezier(.4, 0, .2, 1);
      max-height: 92vh;
      display: flex;
      flex-direction: column;
    }

    .bs-sheet.open {
      transform: translateY(0);
    }

    .bs-handle {
      width: 40px;
      height: 4px;
      background: rgba(255, 255, 255, 0.2);
      border-radius: 2px;
      margin: 12px auto 0;
    }

    .bs-scroll {
      overflow-y: auto;
      flex: 1;
      padding: 20px 20px 0;
    }

    .bs-img {
      width: 100%;
      height: 180px;
      object-fit: cover;
      border-radius: 12px;
      margin-bottom: 16px;
    }

    .bs-name {
      font-family: 'Bebas Neue', sans-serif;
      font-size: 1.8rem;
      color: #fff;
      letter-spacing: 2px;
      margin-bottom: 4px;
    }

    .bs-desc {
      font-size: .85rem;
      color: rgba(255, 255, 255, 0.5);
      margin-bottom: 20px;
    }

    .bs-section-title {
      font-family: 'Barlow Condensed', sans-serif;
      font-size: .72rem;
      font-weight: 700;
      letter-spacing: 4px;
      text-transform: uppercase;
      color: var(--yellow);
      margin-bottom: 10px;
    }

    .bs-combo-box {
      background: rgba(255, 214, 0, 0.06);
      border: 1px solid rgba(255, 214, 0, 0.25);
      border-radius: 12px;
      padding: 14px;
      margin-bottom: 20px;
    }

    .bs-combo-box .bs-section-title {
      margin-bottom: 12px;
    }

    .bs-radio {
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 12px;
      border-radius: 10px;
      border: 1px solid rgba(255, 255, 255, 0.08);
      margin-bottom: 8px;
      cursor: pointer;
      transition: all .15s;
    }

    .bs-radio.selected {
      border-color: var(--yellow);
      background: rgba(255, 214, 0, 0.08);
    }

    .bs-radio input {
      accent-color: var(--yellow);
      width: 18px;
      height: 18px;
      flex-shrink: 0;
    }

    .bs-radio-label {
      font-family: 'Barlow Condensed', sans-serif;
      font-size: 1rem;
      font-weight: 700;
      color: #fff;
      flex: 1;
    }

    .bs-radio-price {
      font-family: 'Bebas Neue', sans-serif;
      font-size: 1rem;
      color: var(--yellow);
    }

    .bs-product-ingredients{margin:2px 0 15px;padding:10px 12px;border-left:3px solid #ffd600;border-radius:0 9px 9px 0;background:#f7f7f4;color:#4a4a47;display:grid;gap:3px;font:.78rem/1.35 'Barlow',sans-serif}
    .bs-product-ingredients strong{color:#252525;font:700 .72rem/1 'Barlow Condensed',sans-serif;letter-spacing:1.2px;text-transform:uppercase}
    .bs-product-ingredients[hidden]{display:none}

    /* Personalizador visual: producto primero, decisiones legibles después. */
    .bs-close{position:absolute;top:16px;right:16px;z-index:12;width:42px;height:42px;border:0;border-radius:50%;background:#fff;color:#151515;font-size:1.65rem;line-height:1;cursor:pointer;box-shadow:0 4px 16px #0004}
    .bs-product-hero{height:188px;margin:8px 20px 0;border-radius:16px;overflow:hidden;background:#fff;flex-shrink:0}
    .bs-product-hero img{width:100%;height:100%;object-fit:contain;display:block;transform:scale(1.42)}
    .bs-product-hero[hidden]{display:none}
    .bs-product-hero:not([hidden]) + .bs-scroll{padding-top:14px}
    .bs-radio-combo{min-height:82px;padding:8px 10px}
    .bs-radio-combo input{align-self:center}
    .bs-combo-visual{width:70px;height:62px;object-fit:contain;flex:0 0 auto}
    .bs-radio-combo .bs-radio-label{display:grid;gap:2px;line-height:1.05}
    .bs-radio-combo .bs-radio-label strong{font:700 1.1rem/1 'Barlow Condensed',sans-serif}
    .bs-radio-combo .bs-radio-label small{color:rgba(255,255,255,.58);font:500 .78rem/1.1 'Barlow',sans-serif}
    .bs-ingredient-note{margin:-4px 0 10px;color:rgba(255,255,255,.52);font:500 .78rem/1.35 'Barlow',sans-serif}
    .bs-ingredient-group{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 20px}
    .bs-ingredient{min-height:82px;display:grid;grid-template-columns:48px 1fr 22px;align-items:center;gap:7px;padding:8px;border:1px solid rgba(255,255,255,.16);border-radius:12px;background:transparent;color:#fff;text-align:left;cursor:pointer}
    .bs-ingredient img{width:48px;height:48px;object-fit:contain}
    .bs-ingredient-art{width:48px;height:48px;display:block;border-radius:50%;background:#f4f1e8;position:relative;overflow:hidden}
    .bs-mayo-art::before{content:'';position:absolute;width:27px;height:21px;left:10px;top:15px;border-radius:55% 55% 48% 48%;background:linear-gradient(145deg,#fffdf4,#e4d8a9);box-shadow:inset 3px 2px 5px #fff,0 5px 8px #0002}
    .bs-mayo-art::after{content:'';position:absolute;width:13px;height:11px;left:17px;top:9px;border-radius:50%;background:#fffdf4;box-shadow:0 8px 0 #fffdf4}
    .bs-ingredient span{display:grid;gap:3px;font:700 .95rem/1 'Barlow Condensed',sans-serif}
    .bs-ingredient small{color:rgba(255,255,255,.55);font:500 .67rem/1 'Barlow',sans-serif}
    .bs-ingredient b{width:20px;height:20px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.32);border-radius:50%;font-size:.72rem;color:transparent}
    .bs-ingredient.selected{border-color:var(--yellow);background:rgba(255,214,0,.08)}
    .bs-ingredient.selected b{border-color:var(--yellow);background:var(--yellow);color:#171717}
    .bs-ingredient:not(.selected){opacity:.56}
    .bs-ingredient:nth-child(3){grid-column:1 / -1}
    .bs-more-customizations{margin:-5px 0 20px;border:1px solid #e1e1dc;border-radius:12px;background:#fff}
    .bs-more-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;border:0;background:transparent;color:#1c1c1c;padding:14px 15px;font:700 1rem/1 'Barlow Condensed',sans-serif;text-align:left;cursor:pointer}
    .bs-more-toggle b{font-size:1.2rem;transition:transform .18s}
    .bs-more-toggle[aria-expanded="true"] b{transform:rotate(180deg)}
    .bs-more-details{padding:0 14px 14px;border-top:1px solid #ecece8}
    .bs-more-details p{margin:12px 0 10px;color:#777;font:500 .78rem/1.35 'Barlow',sans-serif}
    .bs-remove-list{display:flex;flex-wrap:wrap;gap:7px}
    .bs-remove-option{display:inline-flex;align-items:center;gap:7px;border:1px solid #deded9;border-radius:20px;background:#fff;color:#242424;padding:8px 10px;font:650 .83rem/1 'Barlow Condensed',sans-serif;cursor:pointer}
    .bs-remove-option b{width:17px;height:17px;display:grid;place-items:center;border:1px solid #c6c6c1;border-radius:50%;font-size:.7rem}
    .bs-remove-option.selected{border-color:#e5b900;background:#fffdf3}
    .bs-remove-option.selected b{background:#ffd600;border-color:#ffd600}
    .bs-extras-heading{margin:16px 0 0;color:#292929;font:700 .95rem/1 'Barlow Condensed',sans-serif}
    .bs-extra-note{margin-top:5px!important}
    .bs-extra-request[aria-pressed="true"]{border-color:#1d1d1d;background:#1d1d1d;color:#fff}
    .bs-extra-request[aria-pressed="true"] b{border-color:#fff;color:#fff}
    @media(max-width:600px){.bs-sheet{height:100dvh;max-height:none}.bs-product-hero{height:142px;margin:4px 16px 0}.bs-product-hero:not([hidden]) + .bs-scroll{padding-top:6px}.bs-name{font-size:1.6rem;margin-bottom:0}.bs-product-ingredients{display:none}.bs-combo-box{margin-bottom:12px}.bs-close{top:14px;right:14px}.bs-ingredient-group{gap:8px}.bs-ingredient{grid-template-columns:42px 1fr 18px;padding:7px}.bs-ingredient img{width:42px;height:42px}.bs-ingredient span{font-size:.88rem}.bs-combo-visual{width:64px;height:58px}}

    /* Superficie clara: el personalizador se lee como una sola tarjeta de pedido. */
    .bs-sheet{background:#fff!important;color:#1c1c1c}
    .bs-handle{background:#cfcfcf}
    .bs-name{color:#1b1b1b}
    .bs-section-title{color:#232323}
    .bs-combo-box{background:#f7f7f5;border-color:#e7e4dc}
    .bs-radio{background:#fff;border-color:#e5e5e2}
    .bs-radio.selected{border-color:#e5b900;background:#fffdf3;box-shadow:0 0 0 1px rgba(229,185,0,.14)}
    .bs-radio input{accent-color:#f3c300}
    .bs-radio-label{color:#1d1d1d}
    .bs-radio-combo .bs-radio-label small,.bs-ingredient-note{color:#707070}
    .bs-radio-price{color:#1d1d1d}
    .bs-ingredient{background:#fff;color:#202020;border-color:#e2e2df}
    .bs-ingredient span{color:#202020}
    .bs-ingredient small{color:#777}
    .bs-ingredient-art{background:#f5f3ed}
    .bs-ingredient b{border-color:#c7c7c7}
    .bs-ingredient.selected{background:#fffdf3;border-color:#e5b900}
    .bs-ingredient:not(.selected){opacity:.62}
    .bs-pill{background:#fff;color:#2a2a2a;border-color:#dedede}
    .bs-pill.selected{background:#fff4bf;color:#1b1b1b;border-color:#e5b900}
    .bs-textarea{background:#f7f7f7!important;color:#1c1c1c!important;border-color:#dedede!important}
    .bs-textarea::placeholder{color:#858585}
    .bs-footer{background:#fff;border-top-color:#e9e9e9}
    .bs-footer button:not(.bs-btn){background:#fff!important;color:#1c1c1c!important;border-color:#d8d8d8!important}

    .bs-pill-group {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-bottom: 20px;
    }

    .bs-pill {
      padding: 8px 16px;
      border-radius: 20px;
      border: 1px solid rgba(255, 255, 255, 0.15);
      background: transparent;
      color: rgba(255, 255, 255, 0.6);
      font-family: 'Barlow Condensed', sans-serif;
      font-size: .9rem;
      font-weight: 700;
      cursor: pointer;
      transition: all .15s;
    }

    .bs-pill.selected {
      border-color: var(--yellow);
      background: rgba(255, 214, 0, 0.1);
      color: var(--yellow);
    }

    .bs-textarea {
      width: 100%;
      background: var(--dark3);
      border: 1px solid rgba(255, 255, 255, 0.1);
      border-radius: 10px;
      color: #fff;
      padding: 12px;
      font-family: 'Barlow Condensed', sans-serif;
      font-size: .95rem;
      resize: none;
      box-sizing: border-box;
      margin-bottom: 20px;
    }

    .bs-textarea:focus {
      outline: none;
      border-color: rgba(255, 214, 0, 0.4);
    }

    .bs-footer {
      padding: 16px 20px;
      border-top: 1px solid rgba(255, 255, 255, 0.08);
      background: var(--dark);
      cursor: pointer;
    }

    .bs-btn {
      width: 100%;
      background: var(--yellow);
      color: var(--black);
      font-family: 'Bebas Neue', sans-serif;
      font-size: 1.1rem;
      letter-spacing: 2px;
      padding: 16px;
      border: none;
      cursor: pointer;
      border-radius: 10px;
      transition: all .2s;
      touch-action: manipulation;
      -webkit-tap-highlight-color: transparent;
    }

    .bs-btn:hover {
      background: var(--yellow-glow);
    }


    .cart-count {
      position: absolute;
      top: -4px;
      right: -4px;
      background: var(--red);
      color: white;
      width: 22px;
      height: 22px;
      border-radius: 50%;
      font-size: .7rem;
      font-weight: 700;
      display: flex;
      align-items: center;
      justify-content: center;
      border: 2px solid var(--black);
    }

    .cart-count.hidden {
      display: none;
    }

    .cart-overlay {
      position: fixed;
      inset: 0;
      background: rgba(0, 0, 0, 0.7);
      z-index: 900;
      opacity: 0;
      pointer-events: none;
      transition: opacity .3s;
    }

    .cart-overlay.open {
      opacity: 1;
      pointer-events: all;
    }

    .cart-drawer {
      position: fixed;
      top: 0;
      right: 0;
      bottom: 0;
      width: min(460px, 100vw);
      background: var(--dark);
      border-left: 1px solid rgba(255, 214, 0, 0.15);
      z-index: 950;
      transform: translateX(100%);
      transition: transform .35s cubic-bezier(.4, 0, .2, 1);
      display: flex;
      flex-direction: column;
    }

    .cart-drawer.open {
      transform: translateX(0);
    }

    #cartScreen1 {
      display: flex;
      flex-direction: column;
      height: 100%;
    }

    #cartScreen2 {
      display: none;
      flex-direction: column;
      height: 100%;
    }

    #cartScreen2>div:nth-child(2) {
      flex: 1;
      overflow-y: auto;
    }

    .cart-drawer-header {
      padding: 20px 24px;
      border-bottom: 1px solid rgba(255, 255, 255, 0.08);
      display: flex;
      align-items: center;
      justify-content: space-between;
    }

    .cart-drawer-title {
      font-family: 'Bebas Neue', sans-serif;
      font-size: 1.8rem;
      color: var(--yellow);
      letter-spacing: 2px;
    }

    .cart-close {
      background: rgba(255, 255, 255, 0.08);
      border: 1px solid rgba(255, 255, 255, 0.15);
      color: white;
      font-size: 1.2rem;
      cursor: pointer;
      width: 44px;
      height: 44px;
      display: flex;
      align-items: center;
      justify-content: center;
      border-radius: 50%;
      transition: all .2s;
    }

    .cart-close:hover {
      background: rgba(255, 255, 255, 0.08);
      color: white;
    }

    .cart-items {
      flex: 1;
      overflow-y: auto;
      padding: 12px 24px;
    }

    .cart-item {
      display: flex;
      align-items: flex-start;
      gap: 12px;
      padding: 12px 0;
      border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    }

    .cart-item-emoji {
      font-size: 1.8rem;
      flex-shrink: 0;
    }

    .cart-item-info {
      flex: 1;
      min-width: 0;
    }

    .cart-item-name {
      font-family: 'Barlow Condensed', sans-serif;
      font-weight: 700;
      font-size: .95rem;
    }

    .cart-item-mods {
      font-size: .75rem;
      color: rgba(255, 214, 0, 0.6);
      margin-top: 3px;
    }

    .cart-item-price {
      font-size: .85rem;
      color: var(--yellow);
      margin-top: 3px;
    }

    .cart-item-controls {
      display: flex;
      align-items: center;
      gap: 8px;
      flex-shrink: 0;
    }

    .qty-btn {
      width: 28px;
      height: 28px;
      background: var(--dark2);
      border: 1px solid rgba(255, 255, 255, 0.1);
      color: white;
      cursor: pointer;
      border-radius: 4px;
      font-size: 1rem;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: all .15s;
    }

    .qty-btn:hover {
      background: var(--yellow);
      color: var(--black);
    }

    .qty-num {
      font-family: 'Bebas Neue', sans-serif;
      font-size: 1.2rem;
      min-width: 20px;
      text-align: center;
    }

    .cart-empty {
      text-align: center;
      padding: 60px 24px;
      color: rgba(255, 255, 255, 0.3);
    }

    .cart-empty-icon {
      font-size: 4rem;
      margin-bottom: 16px;
    }

    .cart-footer {
      padding: 16px 24px;
      border-top: 1px solid rgba(255, 255, 255, 0.08);
    }

    .form-group {
      margin-bottom: 12px;
    }

    .form-label {
      display: block;
      font-family: 'Barlow Condensed', sans-serif;
      font-size: .72rem;
      font-weight: 700;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: rgba(255, 255, 255, 0.4);
      margin-bottom: 6px;
    }

    .form-input,
    .form-textarea {
      width: 100%;
      background: var(--dark2);
      border: 1px solid rgba(255, 255, 255, 0.1);
      border-radius: 6px;
      color: white;
      font-family: 'Barlow', sans-serif;
      font-size: .9rem;
      padding: 10px 14px;
      outline: none;
      transition: border-color .2s;
    }

    .form-input:focus,
    .form-textarea:focus {
      border-color: var(--yellow);
    }

    .form-textarea {
      resize: vertical;
      min-height: 55px;
    }

    .address-form {
      display: none;
    }

    .address-form.visible {
      display: block;
    }

    .wdot {
      width: 8px;
      height: 8px;
      border-radius: 4px;
      background: rgba(255, 255, 255, 0.15);
      transition: all .3s;
      flex-shrink: 0;
    }

    .wdot.active {
      width: 24px;
      background: var(--yellow);
    }

    .wdot.done {
      background: var(--yellow);
    }

    .wline {
      flex: 1;
      height: 2px;
      background: rgba(255, 255, 255, 0.1);
      border-radius: 2px;
      transition: background .3s;
    }

    .wline.done {
      background: var(--yellow);
    }

    .wstep {
      flex: 1;
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
      padding: 20px;
      flex-direction: column;
    }

    .wdelivery-opt {
      border: 2px solid rgba(255, 255, 255, 0.12);
      border-radius: 14px;
      padding: 20px;
      cursor: pointer;
      transition: all .2s;
      margin-bottom: 12px;
    }

    .wdelivery-opt.selected {
      border-color: var(--yellow);
      background: rgba(255, 214, 0, 0.08);
    }

    .payment-options {
      display: flex;
      gap: 8px;
    }

    .payment-opt {
      flex: 1;
      padding: 10px 6px;
      background: var(--dark2);
      border: 1px solid rgba(255, 255, 255, 0.1);
      border-radius: 8px;
      text-align: center;
      cursor: pointer;
      transition: all .2s;
      color: #fff;
      font-family: inherit;
    }

    .payment-opt.selected {
      background: rgba(255, 214, 0, 0.12);
      border-color: var(--yellow);
    }

    .payment-opt-icon {
      font-size: 1.4rem;
      display: block;
      margin-bottom: 4px;
    }

    .payment-opt-label {
      font-family: 'Barlow Condensed', sans-serif;
      font-size: .72rem;
      font-weight: 700;
      letter-spacing: .5px;
      color: rgba(255, 255, 255, 0.4);
    }

    .payment-opt.selected .payment-opt-label {
      color: var(--yellow);
    }

    .cart-total-row {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin: 12px 0;
    }

    .cart-total-label {
      font-family: 'Barlow Condensed', sans-serif;
      font-size: 1rem;
      color: rgba(255, 255, 255, 0.6);
      letter-spacing: 1px;
    }

    .cart-total-amount {
      font-family: 'Bebas Neue', sans-serif;
      font-size: 2rem;
      color: var(--yellow);
    }

    .btn-whatsapp {
      width: 100%;
      background: var(--yellow);
      color: var(--black);
      font-family: 'Bebas Neue', sans-serif;
      font-size: 1.1rem;
      letter-spacing: 2px;
      padding: 14px;
      border: none;
      cursor: pointer;
      border-radius: 8px;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      transition: all .2s;
    }

    .btn-whatsapp:disabled {
      background: #2a2a2a;
      color: rgba(255, 255, 255, 0.2);
      cursor: not-allowed;
      transform: none !important;
      box-shadow: none;
      opacity: 0.5;
    }

    .btn-whatsapp:hover {
      background: var(--yellow-glow);
      transform: translateY(-2px);
    }

    .btn-whatsapp svg {
      width: 20px;
      height: 20px;
      fill: white;
    }

    /* CASHBACK LUNÁTICO — toggle card en checkout */
    #cashbackSection .cb-toggle-wrap {
      width: 48px; height: 26px;
      background: rgba(0,0,0,0.2);
      border-radius: 13px; position: relative;
      transition: background .2s; cursor: pointer; flex-shrink: 0;
    }
    #cashbackSection .cb-toggle-wrap.active { background: rgba(0,0,0,0.5); }
    #cashbackSection .cb-toggle-thumb {
      width: 22px; height: 22px;
      background: #fff; border-radius: 50%;
      position: absolute; top: 2px; left: 2px;
      transition: transform .2s;
      box-shadow: 0 2px 4px rgba(0,0,0,0.25);
    }
    #cashbackSection .cb-toggle-wrap.active .cb-toggle-thumb { transform: translateX(22px); }

    /* ORDER SUCCESS MODAL */
    .order-modal-overlay {
      position: fixed;
      inset: 0;
      background: rgba(0, 0, 0, 0.85);
      z-index: 2000;
      display: flex;
      align-items: center;
      justify-content: center;
      opacity: 0;
      pointer-events: none;
      transition: opacity .3s;
    }

    .order-modal-overlay.open {
      opacity: 1;
      pointer-events: all;
    }

    .order-modal {
      background: var(--dark2);
      border: 1px solid rgba(255, 214, 0, 0.3);
      border-radius: 20px;
      padding: 40px;
      max-width: 420px;
      width: 90%;
      text-align: center;
      transform: scale(.9);
      transition: transform .3s;
    }

    .order-modal-overlay.open .order-modal {
      transform: scale(1);
    }

    .order-modal-rocket {
      font-size: 4rem;
      animation: float 2s ease-in-out infinite;
      display: block;
      margin-bottom: 16px;
    }

    .order-modal-title {
      font-family: 'Bebas Neue', sans-serif;
      font-size: 2.5rem;
      color: var(--yellow);
      letter-spacing: 2px;
      margin-bottom: 8px;
    }

    .order-modal-desc {
      color: rgba(255, 255, 255, 0.6);
      font-size: .95rem;
      line-height: 1.6;
      margin-bottom: 20px;
    }

    .order-points-banner {
      background: rgba(255, 214, 0, 0.1);
      border: 1px solid rgba(255, 214, 0, 0.25);
      border-radius: 12px;
      padding: 16px;
      margin-bottom: 20px;
      display: none;
    }

    .order-points-banner.show {
      display: block;
    }

    .order-points-banner p {
      color: var(--yellow);
      font-family: 'Barlow Condensed', sans-serif;
      font-weight: 700;
      font-size: 1rem;
      letter-spacing: 1px;
    }

    .btn-modal-close {
      background: var(--yellow);
      color: var(--black);
      font-family: 'Bebas Neue', sans-serif;
      font-size: 1.1rem;
      letter-spacing: 2px;
      padding: 14px 40px;
      border: none;
      cursor: pointer;
      border-radius: 8px;
      transition: all .2s;
    }

    .btn-modal-close:hover {
      background: var(--yellow-glow);
      transform: translateY(-2px);
    }

    .profile-modal-overlay {
      position: fixed;
      inset: 0;
      background: rgba(0, 0, 0, 0.9);
      z-index: 3000;
      display: flex;
      align-items: center;
      justify-content: center;
      opacity: 0;
      pointer-events: none;
      transition: opacity .3s;
      padding: 20px;
    }

    .profile-modal-overlay.open {
      opacity: 1;
      pointer-events: all;
    }

    .profile-modal {
      background: var(--dark);
      border: 1px solid rgba(255, 214, 0, 0.2);
      border-radius: 20px;
      width: 100%;
      max-width: 480px;
      max-height: 90vh;
      overflow-y: auto;
      transform: translateY(30px);
      transition: transform .3s;
      position: relative;
    }

    .profile-modal-overlay.open .profile-modal {
      transform: translateY(0);
    }

    .profile-modal-header {
      padding: 20px 24px;
      border-bottom: 1px solid rgba(255, 255, 255, 0.08);
      display: flex;
      align-items: center;
      justify-content: space-between;
      position: sticky;
      top: 0;
      background: var(--dark);
      z-index: 1;
    }

    .profile-modal-title {
      font-family: 'Bebas Neue', sans-serif;
      font-size: 1.6rem;
      color: var(--yellow);
      letter-spacing: 2px;
    }

    .profile-modal-close {
      background: none;
      border: none;
      color: rgba(255, 255, 255, 0.5);
      font-size: 1.4rem;
      cursor: pointer;
      width: 36px;
      height: 36px;
      display: flex;
      align-items: center;
      justify-content: center;
      border-radius: 50%;
      transition: all .2s;
    }

    .profile-modal-close:hover {
      background: rgba(255, 255, 255, 0.08);
      color: white;
    }

    .profile-modal-body {
      padding: 24px;
    }

    /* PROMOS */
    #promociones {
      padding: 80px 20px;
      background: var(--dark);
    }

    .promos-inner {
      max-width: 1200px;
      margin: 0 auto;
    }

    .promos-header {
      text-align: center;
      margin-bottom: 48px;
    }


    .promos-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 16px;
    }

    @media(min-width:900px) {
      .promos-grid {
        grid-template-columns: repeat(4, 1fr);
      }
    }

    .promo-card {
      background: var(--dark2);
      border: 1px solid rgba(255, 214, 0, 0.15);
      border-radius: 16px;
      overflow: hidden;
      transition: transform .25s, border-color .25s;
      cursor: pointer;
      position: relative;
    }

    .promo-card.recommended {
      border-color: rgba(255, 214, 0, .75);
      box-shadow: 0 0 0 1px rgba(255,214,0,.2), 0 14px 40px rgba(0,0,0,.25);
    }


    .promo-card:hover {
      transform: translateY(-5px);
      border-color: var(--yellow);
    }

    .promo-card-img {
      width: 100%;
      height: auto;
      aspect-ratio: 4/3;
      object-fit: contain;
      display: block;
      background: #ffd600;
    }

    .promo-card-body {
      padding: 14px;
    }

    .promo-tag {
      font-family: 'Barlow Condensed', sans-serif;
      font-size: .65rem;
      font-weight: 700;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: #000;
      background: var(--yellow);
      padding: 3px 8px;
      border-radius: 3px;
      display: inline-block;
      margin-bottom: 6px;
    }

    .promo-title {
      font-family: 'Bebas Neue', sans-serif;
      font-size: 1.3rem;
      letter-spacing: 1px;
      line-height: 1.1;
      margin-bottom: 4px;
    }

    .promo-ingredientes {
      font-size: .72rem;
      color: rgba(255, 214, 0, 0.55);
      font-family: 'Barlow Condensed', sans-serif;
      letter-spacing: .4px;
      margin-top: 4px;
      line-height: 1.3;
    }

    .promo-desc {
      font-size: .78rem;
      color: rgba(255, 255, 255, 0.5);
      line-height: 1.4;
      margin-bottom: 10px;
    }

    .promo-footer {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
    }

    .promo-price {
      font-family: 'Bebas Neue', sans-serif;
      font-size: 1.6rem;
      color: var(--yellow);
    }

    .promo-price span {
      font-size: 1rem;
    }

    .promo-btn {
      background: var(--yellow);
      color: #000;
      font-family: 'Barlow Condensed', sans-serif;
      font-size: .75rem;
      font-weight: 700;
      letter-spacing: 1px;
      text-transform: uppercase;
      border: none;
      border-radius: 8px;
      padding: 8px 12px;
      cursor: pointer;
      white-space: nowrap;
      transition: opacity .2s;
      min-height: 44px;
    }

    .promo-btn:hover {
      opacity: .85;
    }

    /* Las promociones usan el mismo lenguaje visual claro que el personalizador de hamburguesas. */
    #promoModal.promo-modal-surface{background:#fff;color:#1c1c1c;max-height:94vh}
    #promoModal.promo-modal-surface > div:first-child{background:#fff;border-bottom-color:#ece7cf}
    #promoModal.promo-modal-surface #promoModalName{color:#1b1b1b}
    #promoModal.promo-modal-surface #promoModalDesc{color:#707070!important}
    #promoModal.promo-modal-surface .promo-modal-hero{height:170px;margin:0 20px;border-radius:0 0 16px 16px;overflow:hidden;background:#fff}
    #promoModal.promo-modal-surface .promo-modal-hero[hidden]{display:none}
    #promoModal.promo-modal-surface .promo-modal-hero img{width:100%;height:100%;display:block;object-fit:contain}
    #promoModal.promo-modal-surface [id="promoVegWrap"] > div:first-child,
    #promoModal.promo-modal-surface [id="promoSalsaWrap"] > div:first-child,
    #promoModal.promo-modal-surface [id="promoAderezoWrap"] > div:first-child,
    #promoModal.promo-modal-surface #promoRefLabel{color:#242424!important}
    #promoModal.promo-modal-surface .promo-choice-label{font:700 .8rem/1 'Barlow Condensed',sans-serif;letter-spacing:.3px}
    #promoModal.promo-modal-surface .promo-veg-note{margin:-4px 0 10px;color:#777;font:500 .78rem/1.35 'Barlow',sans-serif}
    #promoModal.promo-modal-surface .promo-choice,
    #promoModal.promo-modal-surface .pbv-chip,
    #promoModal.promo-modal-surface .pr1-chip,
    #promoModal.promo-modal-surface .pr2-chip,
    #promoModal.promo-modal-surface .ps-chip,
    #promoModal.promo-modal-surface .pa-chip{display:inline-flex;align-items:center;gap:7px;min-height:52px;padding:7px 11px;border:1px solid #dededb!important;border-radius:12px;background:#fff!important;color:#202020!important;cursor:pointer}
    #promoModal.promo-modal-surface .promo-choice.selected,
    #promoModal.promo-modal-surface .pbv-chip.selected,
    #promoModal.promo-modal-surface .pr1-chip.selected,
    #promoModal.promo-modal-surface .pr2-chip.selected,
    #promoModal.promo-modal-surface .ps-chip.selected,
    #promoModal.promo-modal-surface .pa-chip.selected{border-color:#e5b900!important;background:#fff8d7!important;box-shadow:0 0 0 1px rgba(229,185,0,.2)}
    #promoModal.promo-modal-surface .promo-choice img{width:40px;height:40px;object-fit:contain;flex:0 0 auto}
    #promoModal.promo-modal-surface .promo-choice-label{display:grid;gap:3px}
    #promoModal.promo-modal-surface .promo-choice-label small{font:500 .67rem/1 'Barlow',sans-serif;color:#777}
    #promoModal.promo-modal-surface .promo-choice b{width:18px;height:18px;display:grid;place-items:center;border:1px solid #c7c7c7;border-radius:50%;font-size:.68rem;color:transparent}
    #promoModal.promo-modal-surface .promo-choice.selected b{border-color:#ffd600;background:#ffd600;color:#171717}
    #promoModal.promo-modal-surface .promo-included-card{display:flex;align-items:center;gap:12px;min-height:66px;padding:9px 12px;border:1px solid #e2e2df;border-radius:12px;background:#fff}
    #promoModal.promo-modal-surface .promo-included-card img{width:58px;height:52px;object-fit:contain}
    #promoModal.promo-modal-surface .promo-included-card strong{font:700 1rem/1 'Barlow Condensed',sans-serif;color:#202020}
    #promoModal.promo-modal-surface .promo-slot-label{color:#777!important}
    #promoModal.promo-modal-surface #promoRef1Wrap > div,
    #promoModal.promo-modal-surface #promoRef2Wrap > div{color:#777!important}
    #promoModal.promo-modal-surface #promoNotes{background:#f7f7f7!important;color:#1c1c1c!important;border-color:#dedede!important}
    #promoModal.promo-modal-surface #promoNotes::placeholder{color:#858585}
    @media(max-width:600px){#promoModal.promo-modal-surface .promo-modal-hero{height:142px;margin:0 16px}#promoModal.promo-modal-surface{padding-bottom:24px}}

    @media(max-width:520px) {
      .promos-grid {
        grid-template-columns: 1fr;
      }
      .promo-card-img {
        aspect-ratio: 16 / 9;
      }
    }

    /* LEALTAD */
    #lealtad {
      padding: 100px 40px;
      max-width: 1200px;
      margin: 0 auto;
    }

    .lealtad-header {
      text-align: center;
      margin-bottom: 60px;
    }

    .lealtad-header p {
      color: rgba(255, 255, 255, 0.5);
      margin-top: 12px;
    }

    .lealtad-steps {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 24px;
      margin-bottom: 60px;
    }

    .lealtad-step {
      background: var(--dark2);
      border: 1px solid rgba(255, 255, 255, 0.06);
      border-radius: 12px;
      padding: 28px;
      text-align: center;
      position: relative;
    }

    .lealtad-step::after {
      content: '→';
      position: absolute;
      right: -16px;
      top: 50%;
      transform: translateY(-50%);
      color: var(--yellow);
      font-size: 1.5rem;
    }

    .lealtad-step:last-child::after {
      display: none;
    }

    .step-num {
      width: 44px;
      height: 44px;
      background: var(--yellow);
      color: var(--black);
      border-radius: 50%;
      font-family: 'Bebas Neue', sans-serif;
      font-size: 1.4rem;
      display: flex;
      align-items: center;
      justify-content: center;
      margin: 0 auto 12px;
    }

    .step-icon {
      font-size: 2rem;
      margin-bottom: 8px;
    }

    .step-title {
      font-family: 'Bebas Neue', sans-serif;
      font-size: 1.2rem;
      letter-spacing: 1px;
      margin-bottom: 6px;
    }

    .step-desc {
      font-size: .82rem;
      color: rgba(255, 255, 255, 0.45);
      line-height: 1.5;
    }

    .loyalty-panel {
      background: var(--dark2);
      border: 1px solid rgba(255, 214, 0, 0.15);
      border-radius: 20px;
      overflow: hidden;
    }

    .loyalty-tabs {
      display: flex;
      border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    }

    .loyalty-tab {
      flex: 1;
      padding: 16px;
      text-align: center;
      font-family: 'Barlow Condensed', sans-serif;
      font-size: .9rem;
      font-weight: 700;
      letter-spacing: 2px;
      text-transform: uppercase;
      cursor: pointer;
      color: rgba(255, 255, 255, 0.4);
      border-bottom: 2px solid transparent;
      transition: all .2s;
      background: none;
      border-top: none;
      border-left: none;
      border-right: none;
    }

    .loyalty-tab.active {
      color: var(--yellow);
      border-bottom-color: var(--yellow);
    }

    .loyalty-content {
      padding: 32px;
    }

    .loyalty-form {
      display: none;
    }

    .loyalty-form.active {
      display: block;
    }

    .loyalty-dashboard {
      display: none;
    }

    .loyalty-dashboard.active {
      display: block;
    }

    .dashboard-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 32px;
      flex-wrap: wrap;
      gap: 16px;
    }

    .dashboard-greeting h3 {
      font-family: 'Bebas Neue', sans-serif;
      font-size: 2rem;
      color: var(--yellow);
      letter-spacing: 2px;
    }

    .dashboard-greeting p {
      color: rgba(255, 255, 255, 0.5);
      font-size: .9rem;
      margin-top: 4px;
    }

    .btn-logout {
      background: none;
      border: 1px solid rgba(255, 255, 255, 0.1);
      color: rgba(255, 255, 255, 0.4);
      font-family: 'Barlow Condensed', sans-serif;
      font-size: .8rem;
      font-weight: 700;
      letter-spacing: 1px;
      text-transform: uppercase;
      padding: 8px 16px;
      border-radius: 6px;
      cursor: pointer;
      transition: all .2s;
    }

    .btn-logout:hover {
      border-color: var(--red);
      color: var(--red);
    }

    .dashboard-history h4 {
      font-family: 'Bebas Neue', sans-serif;
      font-size: 1.2rem;
      letter-spacing: 1px;
      color: rgba(255, 255, 255, 0.6);
      margin-bottom: 12px;
    }

    .history-item {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 10px 0;
      border-bottom: 1px solid rgba(255, 255, 255, 0.05);
      flex-wrap: wrap;
      gap: 4px;
    }

    .history-date {
      font-size: .8rem;
      color: rgba(255, 255, 255, 0.3);
    }

    .history-detail {
      font-size: .9rem;
      color: rgba(255, 255, 255, 0.6);
    }

    .auth-title {
      font-family: 'Bebas Neue', sans-serif;
      font-size: 1.8rem;
      letter-spacing: 2px;
      margin-bottom: 6px;
    }

    .auth-subtitle {
      color: rgba(255, 255, 255, 0.4);
      font-size: .9rem;
      margin-bottom: 24px;
      line-height: 1.5;
    }

    .loyalty-input {
      width: 100%;
      background: var(--dark3);
      border: 1px solid rgba(255, 255, 255, 0.1);
      border-radius: 8px;
      color: white;
      font-family: 'Barlow', sans-serif;
      font-size: 1rem;
      padding: 12px 16px;
      outline: none;
      transition: border-color .2s;
      margin-bottom: 12px;
    }

    .loyalty-input:focus {
      border-color: var(--yellow);
    }

    .btn-loyalty {
      width: 100%;
      background: var(--yellow);
      color: var(--black);
      font-family: 'Bebas Neue', sans-serif;
      font-size: 1.1rem;
      letter-spacing: 2px;
      padding: 14px;
      border: none;
      cursor: pointer;
      border-radius: 8px;
      transition: all .2s;
      margin-top: 4px;
    }

    .btn-loyalty:hover {
      background: var(--yellow-glow);
      transform: translateY(-2px);
    }

    .auth-error {
      color: var(--red);
      font-size: .85rem;
      margin-bottom: 10px;
      display: none;
      padding: 8px 12px;
      background: rgba(255, 59, 48, 0.1);
      border-radius: 6px;
    }

    .auth-error.visible {
      display: block;
    }

    .auth-switch {
      text-align: center;
      margin-top: 16px;
      font-size: .85rem;
      color: rgba(255, 255, 255, 0.35);
    }

    .auth-switch a {
      color: var(--yellow);
      cursor: pointer;
    }

    /* NOSOTROS */
    #nosotros {
      padding: 100px 40px;
      max-width: 1200px;
      margin: 0 auto;
    }

    .nosotros-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 80px;
      align-items: center;
    }

    .nosotros-img-wrap {
      width: 100%;
      max-width: 420px;
      border-radius: 20px;
      overflow: hidden;
      position: relative;
      margin: 0 auto;
      border: 2px solid rgba(255, 214, 0, 0.2);
      box-shadow: 0 30px 80px rgba(0, 0, 0, 0.5);
    }

    .nosotros-img-wrap img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }

    .nosotros-img-overlay {
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      padding: 24px;
      background: linear-gradient(transparent, rgba(0, 0, 0, 0.85));
    }

    .nosotros-img-tag {
      font-family: 'Bebas Neue', sans-serif;
      font-size: 1.5rem;
      color: var(--yellow);
      letter-spacing: 2px;
    }

    .nosotros-text p {
      color: rgba(255, 255, 255, 0.65);
      line-height: 1.8;
      margin-bottom: 16px;
    }

    .nosotros-pillars {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
      margin-top: 32px;
    }

    .pillar {
      background: var(--dark2);
      border: 1px solid rgba(255, 255, 255, 0.06);
      border-radius: 10px;
      padding: 20px;
      transition: all .3s;
    }

    .pillar:hover {
      border-color: rgba(255, 214, 0, 0.2);
      transform: translateY(-2px);
    }

    .pillar-icon {
      font-size: 1.8rem;
      margin-bottom: 8px;
    }

    .pillar-title {
      font-family: 'Barlow Condensed', sans-serif;
      font-weight: 700;
      font-size: 1rem;
      letter-spacing: 1px;
      margin-bottom: 4px;
    }

    .pillar-desc {
      font-size: .8rem;
      color: rgba(255, 255, 255, 0.4);
      line-height: 1.5;
    }

    /* GALERÍA */
    #galeria {
      padding: 100px 40px;
      background: var(--dark);
    }

    .galeria-inner {
      max-width: 1200px;
      margin: 0 auto;
    }

    .galeria-header {
      text-align: center;
      margin-bottom: 60px;
    }

    .galeria-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 12px;
    }

    .galeria-item {
      background: var(--dark2);
      border-radius: 10px;
      overflow: hidden;
      aspect-ratio: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 4rem;
      border: 1px solid rgba(255, 255, 255, 0.05);
      transition: all .3s;
      cursor: pointer;
      position: relative;
    }

    .galeria-item:hover {
      transform: scale(1.03);
      border-color: rgba(255, 214, 0, 0.3);
    }

    .galeria-item img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform .4s ease;
    }

    .galeria-item:hover img {
      transform: scale(1.08);
    }

    .galeria-item:nth-child(1) {
      grid-column: span 2;
      grid-row: span 2;
      font-size: 6rem;
    }

    .galeria-item:nth-child(5) {
      grid-column: span 2;
    }

    /* UBICACIÓN */
    #ubicacion {
      padding: 100px 40px;
      max-width: 1200px;
      margin: 0 auto;
    }

    .ubicacion-grid {
      display: grid;
      grid-template-columns: 1fr 1.4fr;
      gap: 60px;
      align-items: start;
    }

    .info-block {
      margin-bottom: 28px;
    }

    .info-block-title {
      font-family: 'Barlow Condensed', sans-serif;
      font-size: .75rem;
      font-weight: 700;
      letter-spacing: 3px;
      text-transform: uppercase;
      color: var(--yellow);
      margin-bottom: 8px;
    }

    .info-block-content {
      font-size: 1rem;
      color: rgba(255, 255, 255, 0.7);
      line-height: 1.7;
    }

    .horario-row {
      display: flex;
      justify-content: space-between;
      padding: 8px 0;
      border-bottom: 1px solid rgba(255, 255, 255, 0.06);
      font-size: .9rem;
    }

    .horario-day {
      color: rgba(255, 255, 255, 0.45);
    }

    .horario-time {
      color: var(--white);
      font-weight: 600;
    }

    .horario-closed {
      color: rgba(255, 59, 48, 0.7);
    }

    .map-container {
      border-radius: 16px;
      overflow: hidden;
      border: 1px solid rgba(255, 214, 0, 0.15);
      height: 380px;
    }

    .map-container iframe {
      width: 100%;
      height: 100%;
      border: 0;
    }

    .social-links {
      display: flex;
      gap: 12px;
      flex-wrap: wrap;
      margin-top: 12px;
    }

    .social-link {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      background: var(--dark2);
      border: 1px solid rgba(255, 255, 255, 0.1);
      color: rgba(255, 255, 255, 0.7);
      text-decoration: none;
      padding: 10px 20px;
      border-radius: 8px;
      font-family: 'Barlow Condensed', sans-serif;
      font-weight: 700;
      letter-spacing: 1px;
      transition: all .2s;
    }

    .social-link:hover {
      border-color: var(--yellow);
      color: var(--yellow);
      transform: translateY(-2px);
    }

    /* FOOTER */
    footer {
      background: var(--dark);
      border-top: 1px solid rgba(255, 214, 0, 0.1);
      padding: 60px 40px 30px;
    }

    .footer-inner {
      max-width: 1200px;
      margin: 0 auto;
    }

    .footer-top {
      display: grid;
      grid-template-columns: 2fr 1fr 1fr;
      gap: 60px;
      margin-bottom: 40px;
    }

    .footer-logo {
      font-family: 'Bebas Neue', sans-serif;
      font-size: 1.8rem;
      color: var(--yellow);
      letter-spacing: 3px;
      margin-bottom: 12px;
    }

    .footer-tagline {
      font-size: .9rem;
      color: rgba(255, 255, 255, 0.4);
      line-height: 1.6;
      max-width: 280px;
    }

    .footer-links h4 {
      font-family: 'Bebas Neue', sans-serif;
      font-size: 1rem;
      letter-spacing: 2px;
      color: var(--yellow);
      margin-bottom: 16px;
    }

    .footer-links ul {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 8px;
    }

    .footer-links a {
      color: rgba(255, 255, 255, 0.4);
      text-decoration: none;
      font-size: .9rem;
      transition: color .2s;
    }

    .footer-links a:hover {
      color: var(--yellow);
    }

    .footer-bottom {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding-top: 24px;
      border-top: 1px solid rgba(255, 255, 255, 0.06);
      flex-wrap: wrap;
      gap: 12px;
    }

    .footer-copy {
      font-size: .8rem;
      color: rgba(255, 255, 255, 0.25);
    }

    /* RESPONSIVE */
    @media(max-width:1400px), (pointer: coarse), (orientation: portrait) {
      #bannerDesktop {
        display: none !important;
      }

      #bannerMobile {
        display: block !important;
      }

      nav {
        padding: 0 12px;
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        padding-top: env(safe-area-inset-top);
        height: calc(60px + env(safe-area-inset-top));
        z-index: 1000;
      }

      .nav-back {
        display: flex;
      }

      /* Logo centrado absoluto en mobile */
      .nav-logo {
        position: absolute;
        left: 50%;
        top: env(safe-area-inset-top);
        transform: translateX(-50%);
        height: 60px;
        gap: 8px;
      }

      .nav-logo img {
        height: 46px;
        width: 118px;
      }

      .nav-links {
        display: none;
        position: fixed;
        top: calc(60px + env(safe-area-inset-top));
        left: 0;
        right: 0;
        background: rgba(10, 10, 10, 0.98);
        flex-direction: column;
        padding: 20px;
        gap: 4px;
        border-bottom: 1px solid rgba(255, 214, 0, 0.15);
        z-index: 999;
      }

      .nav-links.open {
        display: flex;
      }

      .nav-links li {
        width: 100%;
      }

      .nav-links a {
        display: block;
        padding: 12px 16px;
        font-size: 1.1rem;
        border-radius: 6px;
        color: #fff;
      }

      .hamburger {
        display: flex;
      }

      .nav-close-btn {
        display: flex;
      }

      .hero {
        padding: 100px 20px 60px;
      }

      #ordenar,
      #lealtad,
      #nosotros,
      #ubicacion {
        padding: 60px 20px;
      }

      #galeria,
      #promociones {
        padding: 60px 20px;
      }

      .nosotros-grid,
      .ubicacion-grid {
        grid-template-columns: 1fr;
        gap: 40px;
      }

      .lealtad-steps {
        grid-template-columns: 1fr;
      }

      .lealtad-step::after {
        display: none;
      }

      .footer-top {
        grid-template-columns: 1fr;
        gap: 30px;
      }

      .galeria-grid {
        grid-template-columns: repeat(2, 1fr);
      }

      .galeria-item:nth-child(1) {
        grid-column: span 2;
        grid-row: span 1;
      }

      /* CARRITO MÓVIL */
      .cart-drawer {
        width: 100vw;
        border-left: none;
        border-top: 1px solid rgba(255, 214, 0, 0.15);
        border-radius: 20px 20px 0 0;
        top: auto;
        bottom: 0;
        height: 88dvh;
        max-height: 88dvh;
        z-index: 1200;
      }

      .cart-drawer.open {
        transform: translateX(0);
      }

      .cart-overlay {
        backdrop-filter: blur(4px);
      }

      #cartScreen1 {
        height: 100%;
      }

      #cartScreen2 {
        height: 100%;
      }

      .cart-drawer-header {
        padding: 16px 20px;
        position: sticky;
        top: 0;
        background: var(--dark);
        z-index: 2;
      }

      .cart-items {
        flex: 1;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        padding-bottom: 8px;
      }

      /* Botón cerrar más grande en móvil */
      .cart-close {
        width: 44px;
        height: 44px;
        font-size: 1.2rem;
        display: flex;
        align-items: center;
        justify-content: center;
        background: rgba(255, 255, 255, 0.06);
        border-radius: 50%;
      }

      /* Botón volver más accesible */
      #cartScreen2 .cart-drawer-header button:first-child {
        font-size: 1rem;
        padding: 8px 12px;
        background: rgba(255, 214, 0, 0.08);
        border-radius: 8px;
        border: 1px solid rgba(255, 214, 0, 0.2) !important;
      }

      /* Fix zoom iOS - evita que el teclado desacomode el carrito */
      input,
      textarea,
      select {
        font-size: 16px !important;
      }

      .cart-drawer {
        touch-action: pan-y;
      }
    }

    /* cierre @media 768px original */

    /* ── BOTTOM NAV + PROFILE SHEET — solo móvil ── */
    .bottom-nav {
      display: flex;
      position: fixed;
      bottom: max(10px, env(safe-area-inset-bottom));
      top: auto;
      left: 14px;
      right: 14px;
      background: rgb(12, 12, 12);
      border: 1px solid rgba(255, 214, 0, 0.12);
      border-radius: 24px;
      z-index: 1100;
      padding: 0 6px;
      box-shadow: 0 8px 40px rgba(0,0,0,0.5), 0 0 0 0.5px rgba(255,214,0,0.08);
      will-change: transform;
      transform: translateZ(0);
      -webkit-transform: translateZ(0);
      overflow: visible;
      align-items: center;
    }

    .bn-tab {
      flex: 1;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      padding: 11px 2px 9px;
      cursor: pointer;
      background: none;
      border: none;
      color: rgba(255, 255, 255, 0.3);
      font-family: 'Barlow Condensed', sans-serif;
      font-size: .58rem;
      font-weight: 700;
      letter-spacing: .8px;
      text-transform: uppercase;
      text-decoration: none;
      gap: 3px;
      -webkit-tap-highlight-color: transparent;
      transition: color .2s;
      position: relative;
    }

    .bn-tab .bn-icon {
      font-size: 1.3rem;
      line-height: 1;
      transition: transform .2s cubic-bezier(.34,1.56,.64,1);
    }

    .bn-tab:active .bn-icon {
      transform: scale(0.88);
    }

    .bn-tab.active {
      color: var(--yellow);
    }

    .bn-tab.active .bn-icon {
      transform: scale(1.08);
    }

    /* dot indicador sobre ícono activo (no en el centro) */
    .bn-tab.active:not(.bn-tab-center)::after {
      content: '';
      position: absolute;
      top: 5px;
      left: 50%;
      transform: translateX(-50%);
      width: 4px;
      height: 4px;
      background: var(--yellow);
      border-radius: 50%;
      box-shadow: 0 0 6px rgba(255,214,0,0.7);
    }

    /* Club — botón central elevado */
    .bn-tab-center {
      position: relative;
      top: -13px;
      flex: 1;
    }

    .bn-center-btn {
      width: 54px;
      height: 54px;
      background: var(--yellow);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      color: #000;
      box-shadow: 0 4px 22px rgba(255,214,0,0.55), 0 0 0 3px rgba(12,12,12,0.97);
      margin-bottom: 3px;
      transition: transform .18s cubic-bezier(.34,1.56,.64,1), box-shadow .18s;
    }

    .bn-tab-center:active .bn-center-btn {
      transform: scale(0.92);
      box-shadow: 0 2px 12px rgba(255,214,0,0.4), 0 0 0 3px rgba(12,12,12,0.97);
    }

    .bn-tab svg {
      display: block;
    }

    .bn-tab-center #bnCuentaLabel {
      font-family: 'Bebas Neue', sans-serif;
      font-size: .9rem;
      letter-spacing: 2.5px;
      color: var(--yellow);
    }

    #bnCuentaLabel.guest {
      font-size: .56rem;
      letter-spacing: .6px;
      font-family: 'Barlow Condensed', sans-serif;
      font-weight: 700;
      color: rgba(255,255,255,0.5);
    }

    .bn-badge {
      display: none;
      position: absolute;
      top: 4px;
      left: calc(50% + 5px);
      background: var(--yellow);
      color: #000;
      font-family: 'Bebas Neue', sans-serif;
      font-size: .55rem;
      font-weight: 900;
      min-width: 16px;
      height: 16px;
      border-radius: 8px;
      align-items: center;
      justify-content: center;
      padding: 0 4px;
    }

    @media(max-width:1400px), (pointer: coarse), (orientation: portrait) {
      body {
        padding-bottom: calc(84px + env(safe-area-inset-bottom));
      }

      #navProfileBtn2 {
        display: none !important;
      }

      #navPedidosBtn {
        display: none !important;
      }

      .banner-ads-bar {
        bottom: 84px !important;
      }

      .quicklinks-bar {
        display: none !important;
      }

      /* ── PROFILE: full-screen sheet desde abajo ── */
      .profile-modal-overlay {
        align-items: flex-end !important;
        padding: 0 !important;
        background: rgba(0, 0, 0, 0.55) !important;
      }

      .profile-modal {
        width: 100% !important;
        max-width: 100% !important;
        max-height: 92dvh !important;
        height: 92dvh !important;
        border-radius: 20px 20px 0 0 !important;
        transform: translateY(100%) !important;
        transition: transform .35s cubic-bezier(.4, 0, .2, 1) !important;
        display: flex;
        flex-direction: column;
        overflow: hidden !important;
        padding-bottom: calc(62px + env(safe-area-inset-bottom));
      }

      .profile-modal-overlay.open .profile-modal {
        transform: translateY(0) !important;
      }

      .profile-modal-header {
        flex-shrink: 0;
      }

      .profile-modal-body {
        flex: 1;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
      }

      .profile-modal-header::before {
        content: '';
        display: block;
        width: 36px;
        height: 4px;
        background: rgba(255, 255, 255, 0.18);
        border-radius: 2px;
        margin: 10px auto 0;
      }
    }

    /* cierre @media bottom-nav */

/* ============================================================
   Block 2 — Splash screen, Trust bar, Reviews
   ============================================================ */
/* ── SPLASH SCREEN ── */
    #splash {
      position: fixed;
      inset: 0;
      z-index: 99999;
      overflow: hidden;
    }
    #splash-curtain {
      position: absolute;
      inset: 0;
      /* Gradiente radial: centro brillante, bordes un poco más oscuros — da profundidad */
      background: radial-gradient(ellipse 80% 70% at 50% 46%, #FFEA4A 0%, #FFD600 50%, #E0BC00 100%);
      will-change: transform;
    }
    #splash-inner {
      position: absolute;
      inset: 0;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 0;
    }

    /* Wrapper del logo completo */
    #splash-icon-wrap {
      position: relative;
      width: 250px;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    /* Halo suave — círculo con gradiente radial que emerge detrás del logo */
    #splash-glow {
      position: absolute;
      width: 300px;
      height: 300px;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(0,0,0,0.07) 0%, rgba(0,0,0,0.03) 45%, transparent 72%);
      opacity: 0;
      transform: scale(0.35);
      will-change: opacity, transform;
      animation: splashGlow 2.0s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.35s both;
    }

    /* El logo completo desciende desde arriba — grande → posición final, sin rebote */
    #splash-icon {
      width: 250px;
      opacity: 0;
      transform: scale(1.18) translateY(-18px);
      will-change: opacity, transform;
      animation: splashIconIn 1.6s cubic-bezier(0.16, 1, 0.3, 1) 0.15s forwards;
    }

    /* Logo cae desde arriba, ease-out puro — sin spring, sin rebote */
    @keyframes splashIconIn {
      0%   { opacity: 0;   transform: scale(1.18) translateY(-18px); }
      18%  { opacity: 1; }
      100% { opacity: 1;   transform: scale(1)    translateY(0);      }
    }

    /* Halo aparece y se estabiliza — nunca desaparece del todo */
    @keyframes splashGlow {
      0%   { opacity: 0;    transform: scale(0.35); }
      45%  { opacity: 0.9;  transform: scale(0.92); }
      100% { opacity: 0.45; transform: scale(1.08); }
    }

    /* ── Exit ── */
    #splash.exit #splash-curtain {
      animation: splashCurtainUp 0.72s cubic-bezier(0.77, 0, 0.175, 1) forwards;
    }
    #splash.exit #splash-inner {
      animation: splashInnerOut 0.35s ease-in forwards;
    }
    @keyframes splashCurtainUp {
      to { transform: translateY(-100%); }
    }
    @keyframes splashInnerOut {
      to { opacity: 0; transform: scale(0.9); }
    }

    /* ── TRUST BAR ── */
    #trust-bar {
      background: var(--black);
      border-top: 1px solid rgba(255, 214, 0, 0.12);
      border-bottom: 1px solid rgba(255, 214, 0, 0.12);
      padding: 14px 20px;
    }

    .trust-inner {
      max-width: 900px;
      margin: 0 auto;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 0;
      flex-wrap: wrap;
    }

    .trust-stat {
      text-align: center;
      padding: 6px 20px;
    }

    .trust-num {
      font-family: 'Bebas Neue', sans-serif;
      font-size: 1.25rem;
      color: var(--yellow);
      letter-spacing: 1px;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 3px;
    }

    .trust-stars {
      gap: 2px;
    }

    .trust-stars span {
      font-size: 1.1rem;
      margin-left: 4px;
    }

    .trust-label {
      font-family: 'Barlow Condensed', sans-serif;
      font-size: .7rem;
      color: rgba(255, 255, 255, 0.35);
      letter-spacing: .5px;
      text-transform: uppercase;
      margin-top: 2px;
    }

    .trust-divider {
      width: 1px;
      height: 32px;
      background: rgba(255, 214, 0, 0.12);
      flex-shrink: 0;
    }

    @media(max-width:600px) {
      .trust-divider {
        display: none;
      }

      .trust-inner {
        gap: 4px;
      }

      .trust-stat {
        padding: 4px 12px;
      }
    }

    /* ── REVIEWS ── */
    #reviews-section {
      background: var(--dark);
      padding: 32px 0 28px;
      overflow: hidden;
    }

    .reviews-header {
      padding: 0 20px 20px;
    }

    .reviews-track-wrap {
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      padding: 4px 20px 12px;
    }

    .reviews-track-wrap::-webkit-scrollbar {
      display: none;
    }

    .reviews-track {
      display: flex;
      gap: 12px;
      width: max-content;
    }

    .review-card {
      background: var(--dark2);
      border: 1px solid rgba(255, 214, 0, 0.1);
      border-radius: 14px;
      padding: 16px;
      width: 280px;
      flex-shrink: 0;
      transition: border-color .2s;
    }

    .review-card:hover {
      border-color: rgba(255, 214, 0, 0.3);
    }

    .review-top {
      display: flex;
      align-items: center;
      gap: 10px;
      margin-bottom: 10px;
    }

    .review-avatar {
      width: 36px;
      height: 36px;
      border-radius: 50%;
      background: var(--yellow);
      color: #000;
      font-family: 'Bebas Neue', sans-serif;
      font-size: 1rem;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }

    .review-name {
      font-family: 'Barlow Condensed', sans-serif;
      font-weight: 700;
      font-size: .95rem;
      color: #fff;
      letter-spacing: .3px;
    }

    .review-stars {
      color: var(--yellow);
      font-size: .8rem;
      letter-spacing: 1px;
    }

    .review-google {
      margin-left: auto;
      display: flex;
      align-items: center;
      gap: 3px;
      font-family: 'Barlow Condensed', sans-serif;
      font-size: .7rem;
      color: rgba(255, 255, 255, 0.25);
    }

    .review-text {
      font-family: 'Barlow', sans-serif;
      font-size: .82rem;
      color: rgba(255, 255, 255, 0.65);
      line-height: 1.5;
      font-style: italic;
    }

    .review-scores {
      margin-top: 8px;
      font-family: 'Barlow Condensed', sans-serif;
      font-size: .7rem;
      color: rgba(255, 214, 0, 0.5);
      letter-spacing: .3px;
    }

    .reviews-cta {
      font-family: 'Barlow Condensed', sans-serif;
      font-size: .8rem;
      color: rgba(255, 214, 0, 0.5);
      text-decoration: none;
      letter-spacing: .5px;
      border-bottom: 1px solid rgba(255, 214, 0, 0.2);
      padding-bottom: 1px;
      transition: color .2s;
    }

    .reviews-cta:hover {
      color: var(--yellow);
    }

    @media(max-width:1400px), (pointer: coarse), (orientation: portrait) {
      .review-card {
        width: 260px;
      }
    }

/* ============================================================
   Block 3 — Animaciones Premium, Sticky CTA
   ============================================================ */
/* Micro-interacciones táctiles */
    .menu-card { will-change: transform; }
    .menu-card:active { transform: scale(0.97); box-shadow: 0 0 0 2px rgba(255,214,0,0.38); }
    .add-btn:active { transform: scale(0.91) !important; box-shadow: 0 0 0 3px rgba(255,214,0,0.5) !important; }

    :where(a, button, input, select, textarea):focus-visible {
      outline: 3px solid #fff;
      outline-offset: 3px;
      box-shadow: 0 0 0 5px rgba(255,214,0,.85);
    }

    button, .add-btn, .category-item, .payment-opt {
      min-height: 44px;
    }

    /* Lanzamiento Dúo Stella + navegación de compra 2026-09 */
    .order-entry {
      margin-top: calc(70px + env(safe-area-inset-top));
      padding: 14px clamp(16px, 4vw, 40px) 16px;
      background: #0b0b0b;
      border-bottom: 1px solid rgba(255, 214, 0, .16);
    }

    .order-entry-heading {
      width: min(1180px, 100%);
      margin: 0 auto 10px;
      display: flex;
      align-items: baseline;
      gap: 9px;
    }
    .order-entry-heading span {
      color: var(--yellow);
      font: 800 .62rem 'Barlow Condensed', sans-serif;
      letter-spacing: 1.8px;
      text-transform: uppercase;
    }
    .order-entry-heading strong {
      color: rgba(255,255,255,.9);
      font: 700 .9rem 'Barlow Condensed', sans-serif;
      letter-spacing: .3px;
    }

    .order-entry-inner {
      width: min(1180px, 100%);
      margin: 0 auto;
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 12px;
    }

    .order-entry-btn {
      min-height: 82px;
      display: grid;
      grid-template-columns: 48px 1fr 34px;
      align-items: center;
      gap: 12px;
      padding: 11px 13px;
      color: #fff;
      text-align: left;
      background: linear-gradient(145deg, #1a1a1a, #121212);
      border: 1px solid rgba(255, 255, 255, .12);
      border-radius: 18px;
      box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 8px 24px rgba(0,0,0,.2);
      cursor: pointer;
      transition: border-color .2s ease, transform .2s ease, background .2s ease, box-shadow .2s ease;
    }

    .order-entry-btn:hover,
    .order-entry-btn:focus-visible {
      border-color: var(--yellow);
      background: #1c1c1c;
      box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 10px 28px rgba(0,0,0,.3);
    }

    .order-entry-btn.active {
      border-color: rgba(255,214,0,.7);
      box-shadow: inset 0 0 0 1px rgba(255,214,0,.14), 0 10px 28px rgba(0,0,0,.32);
    }

    .order-entry-btn:active { transform: scale(.98); }
    .order-entry-icon {
      width: 48px;
      height: 48px;
      display: grid;
      place-items: center;
      color: var(--yellow);
      background: rgba(255,214,0,.09);
      border: 1px solid rgba(255,214,0,.2);
      border-radius: 14px;
      font-size: 0;
    }
    .order-entry-icon svg { width: 27px; height: 27px; }
    .order-entry-copy strong,
    .order-entry-copy small { display: block; }
    .order-entry-copy .order-entry-label {
      margin: 0 0 3px;
      color: var(--yellow);
      font: 800 .55rem 'Barlow Condensed', sans-serif;
      letter-spacing: 1.6px;
      text-transform: uppercase;
    }
    .order-entry-copy strong {
      font-family: 'Bebas Neue', sans-serif;
      font-size: 1.45rem;
      letter-spacing: 1.3px;
      line-height: 1;
    }
    .order-entry-copy .order-entry-meta { margin-top: 4px; color: rgba(255,255,255,.5); font-size: .7rem; }
    .order-entry-arrow {
      width: 30px;
      height: 30px;
      display: grid;
      place-items: center;
      color: #111;
      background: var(--yellow);
      border-radius: 50%;
      font-size: 1.35rem;
      line-height: 1;
    }

    .hero-foto.duo-stella-hero {
      min-height: clamp(440px, 47vw, 650px);
      aspect-ratio: auto;
      margin-top: 0;
      background: radial-gradient(circle at 72% 18%, #ffe96a 0, #ffd600 42%, #e8bd00 100%);
      border-bottom: 1px solid rgba(255, 214, 0, .3);
    }

    .duo-stella-hero-btn {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      padding: 0;
      overflow: hidden;
      color: #050505;
      text-align: left;
      background: transparent;
      border: 0;
      cursor: pointer;
    }

    .duo-stella-hero-copy {
      position: relative;
      z-index: 2;
      width: min(44%, 560px);
      height: 100%;
      display: flex;
      flex-direction: column;
      justify-content: center;
      padding: clamp(28px, 5vw, 76px);
      padding-right: 10px;
    }

    .duo-stella-eyebrow {
      align-self: flex-start;
      margin-bottom: 8px;
      padding: 5px 10px;
      color: var(--yellow);
      background: #050505;
      border-radius: 999px;
      font: 800 .72rem 'Barlow Condensed', sans-serif;
      letter-spacing: 2px;
      text-transform: uppercase;
    }

    .duo-stella-hero h2 {
      margin: 0;
      font-family: 'Bebas Neue', sans-serif;
      font-size: clamp(4.5rem, 10vw, 8.6rem);
      letter-spacing: -1px;
      line-height: .72;
    }

    .duo-stella-hero h2 span { display: block; }
    .duo-stella-includes {
      margin-top: 20px;
      max-width: 420px;
      font: 800 clamp(1.05rem, 2vw, 1.45rem) 'Barlow Condensed', sans-serif;
      letter-spacing: .4px;
      text-transform: uppercase;
    }

    .duo-stella-price-row { display: flex; align-items: center; gap: 12px; margin-top: 14px; }
    .duo-stella-price {
      padding: 4px 18px 2px;
      color: var(--yellow);
      background: #050505;
      font: 400 clamp(3.5rem, 7vw, 6.3rem) 'Bebas Neue', sans-serif;
      line-height: .95;
      transform: skew(-3deg);
    }
    .duo-stella-saving {
      display: flex;
      flex-direction: column;
      gap: 2px;
      font-family: 'Barlow Condensed', sans-serif;
      line-height: 1.1;
      text-transform: uppercase;
    }
    .duo-stella-saving b { font-size: .9rem; }
    .duo-stella-saving small { color: rgba(0,0,0,.58); font-size: .66rem; font-weight: 800; }
    .duo-stella-cta {
      align-self: flex-start;
      margin-top: 18px;
      padding: 12px 20px;
      color: #fff;
      background: #050505;
      border-radius: 999px;
      font: 900 .95rem 'Barlow Condensed', sans-serif;
      letter-spacing: 1.5px;
      text-transform: uppercase;
      box-shadow: 0 8px 22px rgba(0, 0, 0, .22);
    }

    .duo-stella-hero-art {
      position: absolute;
      z-index: 1;
      right: 1%;
      bottom: 2%;
      width: 62%;
      height: 92%;
      object-fit: contain;
      object-position: center bottom;
      pointer-events: none;
    }

    .menu-hub-shell {
      background: #0c0c0c;
      padding: 14px;
      border-bottom: 1px solid rgba(255, 214, 0, .14);
    }
    [data-cat="promociones"] { --cat-color: #FFD600; }
    [data-cat="promociones"] .cat-icon { border-radius: 50%; object-fit: contain !important; padding: 5px; box-sizing: border-box; }
    #cat-promociones .promo-card { min-width: 0; }
    #cat-promociones .promo-card:first-child {
      border-color: var(--yellow);
      box-shadow: 0 0 0 1px rgba(255, 214, 0, .22), 0 16px 42px rgba(0, 0, 0, .28);
    }
    .promo-regular-price {
      margin-top: -4px;
      color: rgba(255, 255, 255, .42);
      font: 700 .68rem 'Barlow Condensed', sans-serif;
      letter-spacing: .4px;
    }

    @media (max-width: 1400px), (pointer: coarse), (orientation: portrait) {
      .order-entry {
        margin-top: calc(60px + env(safe-area-inset-top));
        padding: 10px 9px 11px;
      }
      .order-entry-heading { margin-bottom: 8px; gap: 7px; padding-left: 2px; }
      .order-entry-heading span { font-size: .52rem; letter-spacing: 1.4px; }
      .order-entry-heading strong { font-size: .82rem; }
      .order-entry-inner { gap: 8px; }
      .order-entry-btn {
        min-height: 76px;
        grid-template-columns: 37px 1fr 23px;
        gap: 8px;
        padding: 8px;
        border-radius: 15px;
      }
      .order-entry-icon { width: 37px; height: 37px; border-radius: 11px; }
      .order-entry-icon svg { width: 22px; height: 22px; display: block; }
      .order-entry-copy .order-entry-label { margin-bottom: 2px; font-size: .45rem; letter-spacing: 1.15px; }
      .order-entry-copy strong { font-size: 1rem; letter-spacing: .65px; }
      .order-entry-copy .order-entry-meta { margin-top: 3px; font-size: .58rem; line-height: 1.05; }
      .order-entry-arrow { width: 22px; height: 22px; font-size: .95rem; }

      .hero-foto.duo-stella-hero {
        min-height: 0;
        height: clamp(272px, 76vw, 320px);
        background: linear-gradient(135deg, #ffe141 0%, #ffd600 48%, #f1bd00 100%);
      }
      .duo-stella-hero-copy {
        width: 49%;
        height: 100%;
        justify-content: center;
        align-items: flex-start;
        padding: 17px 0 17px 17px;
        text-align: left;
      }
      .duo-stella-eyebrow {
        align-self: flex-start;
        max-width: 100%;
        margin-bottom: 6px;
        padding: 4px 7px;
        font-size: .54rem;
        letter-spacing: 1.15px;
        white-space: nowrap;
      }
      .duo-stella-hero h2 {
        font-size: clamp(3.25rem, 16vw, 4.1rem);
        line-height: .74;
      }
      .duo-stella-includes {
        max-width: 150px;
        margin-top: 11px;
        font-size: .68rem;
        line-height: 1.08;
      }
      .duo-stella-price-row { margin-top: 9px; gap: 7px; }
      .duo-stella-price { padding: 3px 10px 1px; font-size: 2.8rem; }
      .duo-stella-saving { max-width: 72px; text-align: left; }
      .duo-stella-saving b { font-size: .62rem; }
      .duo-stella-saving small { font-size: .48rem; }
      .duo-stella-cta {
        margin-top: 9px;
        padding: 8px 12px;
        font-size: .66rem;
        letter-spacing: 1px;
      }
      .duo-stella-hero-art {
        right: -1%;
        bottom: 4%;
        width: 61%;
        height: 86%;
        object-fit: contain;
        object-position: center bottom;
      }
      .duo-stella-hero-btn::after {
        content: '';
        position: absolute;
        z-index: 1;
        inset: 0;
        background: linear-gradient(90deg, rgba(255,214,0,.98) 0%, rgba(255,214,0,.9) 34%, rgba(255,214,0,0) 60%);
        pointer-events: none;
      }

      .menu-hub-shell {
        position: sticky;
        top: calc(60px + env(safe-area-inset-top));
        z-index: 800;
        padding: 7px 8px 6px;
        box-shadow: 0 8px 24px rgba(0, 0, 0, .42);
      }
      .menu-hub-title { display: none !important; }
      .categories-carousel { padding: 1px 0 3px; }
      .category-item { min-width: 58px; gap: 3px; }
      .category-item::before,
      .category-item img.cat-icon { width: 48px; height: 48px; }
      .category-item .category-name { font-size: .55rem; }
      #ordenar { padding: 14px 12px calc(96px + env(safe-area-inset-bottom)); }
      #bannerRegistro { display: none !important; }

      #cat-promociones.menu-category.active {
        display: flex;
        grid-column: 1 / -1;
        gap: 11px;
        overflow-x: auto;
        padding: 2px 1px 14px;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
      }
      #cat-promociones.menu-category.active::-webkit-scrollbar { display: none; }
      #cat-promociones .promo-card {
        flex: 0 0 min(78vw, 300px);
        scroll-snap-align: start;
        border-radius: 13px;
      }
      #cat-promociones .promo-card-img {
        height: auto;
        aspect-ratio: 16 / 9;
        object-fit: contain;
        object-position: center;
        background: #ffd600;
        padding: 0;
        box-sizing: border-box;
      }
      #cat-promociones .promo-card-body { padding: 11px 12px 12px; }
      #cat-promociones .promo-tag {
        margin-bottom: 4px;
        padding: 3px 7px;
        font-size: .56rem;
        letter-spacing: 1.4px;
      }
      #cat-promociones .promo-title { margin-bottom: 3px; font-size: 1.12rem; }
      #cat-promociones .promo-desc {
        margin-bottom: 7px;
        font-size: .7rem;
        line-height: 1.25;
      }
      #cat-promociones .promo-ingredientes { display: none; }
      #cat-promociones .promo-regular-price { margin: 0 0 5px; font-size: .6rem; }
      #cat-promociones .promo-price { font-size: 1.45rem; }
      #cat-promociones .promo-btn { min-height: 38px; padding: 7px 10px; font-size: .67rem; }

      .bottom-nav {
        bottom: 0;
        left: 0;
        right: 0;
        border-width: 1px 0 0;
        border-radius: 0;
        padding: 2px 4px calc(2px + env(safe-area-inset-bottom));
      }
      .bn-tab { min-height: 58px; padding: 7px 2px 5px; }
      .bn-tab-center { top: 0; }
      .bn-center-btn {
        width: 32px;
        height: 26px;
        color: var(--yellow);
        background: transparent;
        box-shadow: none;
        margin: 0;
      }
      .bn-center-btn svg { width: 31px; height: 24px; stroke: currentColor; }
      .bn-center-btn svg rect { fill: currentColor; }
      .bn-tab-center #bnCuentaLabel { font: 700 .58rem 'Barlow Condensed', sans-serif; letter-spacing: .8px; }
      body { padding-bottom: calc(78px + env(safe-area-inset-bottom)); }
    }

    .profile-modal-close,
    .bs-footer > div > button {
      width: 44px !important;
      height: 44px !important;
    }

    @media (prefers-reduced-motion: reduce) {
      html { scroll-behavior: auto !important; }
      *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
      }
    }

    /* Contraste de controles sobre la superficie clara del personalizador. */
    .bs-sheet .bs-pill{background:#fff!important;color:#242424!important;border-color:#d8d8d5!important}
    .bs-sheet .bs-pill:hover{border-color:#d1ad00!important}
    .bs-sheet .bs-pill.selected{background:#fff4bf!important;color:#171717!important;border-color:#e5b900!important}
    .bs-sheet .bs-pill-with-art{display:inline-flex;align-items:center;gap:8px;min-height:52px;padding:5px 12px 5px 7px}
    .bs-sheet .bs-pill-art{width:46px;height:42px;object-fit:contain;display:block;flex:0 0 auto;border-radius:50%;background:#fff}
    .bs-sheet .bs-pill-with-art.selected .bs-pill-art{background:#fffdf3}
    .bs-sheet .bs-ingredient[hidden]{display:none!important}

    /* Carrito de prueba: superficie completa y clara para el artículo de hamburguesa. */
    .cart-surface #cartScreen1{background:#fff;color:#202020}
    .cart-surface #cartScreen1 .cart-drawer-header{background:#fff;border-bottom:1px solid #e8e8e5}
    .cart-surface #cartScreen1 .cart-drawer-title{color:#202020;font-size:1.65rem}
    .cart-surface #cartScreen1 .cart-close{background:#f5f5f3;color:#202020;border-color:#dededb}
    .cart-surface #cartScreen1 .cart-items{padding:0 24px}
    .cart-surface #cartScreen1 .cart-item{align-items:flex-start;gap:14px;padding:18px 0;border-bottom:1px solid #ececea}
    .cart-surface #cartScreen1 .cart-item-art{width:112px;height:92px;display:grid;place-items:center;flex:0 0 112px;border-radius:12px;background:#fafaf8;overflow:hidden}
    .cart-surface #cartScreen1 .cart-item-art img{width:100%;height:100%;object-fit:contain}
    .cart-surface #cartScreen1 .cart-item-art-fallback{width:0;flex-basis:0;background:transparent}
    .cart-surface #cartScreen1 .cart-item-name{color:#202020;font-size:1.15rem}
    .cart-surface #cartScreen1 .cart-item-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
    .cart-surface #cartScreen1 .cart-item-price{color:#202020!important;font-size:1rem;font-weight:600;white-space:nowrap;margin:0}
    .cart-surface #cartScreen1 .cart-item-price small{display:block;color:#888;font:500 .7rem 'Barlow',sans-serif;margin-top:3px;text-align:right}
    .cart-surface #cartScreen1 .cart-ingredients-group{margin-top:7px}
    .cart-surface #cartScreen1 .cart-ingredients-toggle{display:inline-flex;align-items:center;gap:4px;padding:0;border:0;background:transparent;color:#5b5b58;font:600 .76rem 'Barlow Condensed',sans-serif;letter-spacing:.2px;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
    .cart-surface #cartScreen1 .cart-ingredients-arrow{display:inline-block;color:#d3a900;font:700 1rem/1 'Arial',sans-serif;transform:rotate(0deg);transition:transform .15s}
    .cart-surface #cartScreen1 .cart-ingredients-toggle.is-open .cart-ingredients-arrow{transform:rotate(90deg)}
    .cart-surface #cartScreen1 .cart-item-ingredients{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
    .cart-surface #cartScreen1 .cart-item-ingredients[hidden]{display:none!important}
    .cart-surface #cartScreen1 .cart-ingredient{display:inline-flex;align-items:center;gap:4px;padding:3px 7px;border:1px solid #e0e0dc;border-radius:18px;background:#fff;color:#555;font:600 .7rem 'Barlow Condensed',sans-serif}
    .cart-surface #cartScreen1 .cart-ingredient img{width:24px;height:24px;object-fit:contain}
    .cart-surface #cartScreen1 .cart-item-actions{display:flex;align-items:center;gap:10px;margin-top:16px;padding-top:12px;border-top:1px solid #e1e1de}
    .cart-surface #cartScreen1 .cart-qty-label{color:#555;font:600 .82rem 'Barlow Condensed',sans-serif}
    .cart-surface #cartScreen1 .cart-qty-control{display:flex;align-items:center;gap:6px}
    .cart-surface #cartScreen1 .cart-qty-btn{width:34px;height:34px;border-radius:50%;font-size:1.15rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}
    .cart-surface #cartScreen1 .cart-qty-minus{background:#f5f5f3;border:1px solid #d8d8d5;color:#555}
    .cart-surface #cartScreen1 .cart-qty-plus{background:#fff8d7;border:1px solid #e5b900;color:#6a5600}
    .cart-surface #cartScreen1 .cart-qty-num{font:700 1.2rem 'Bebas Neue',sans-serif;min-width:22px;text-align:center;color:#202020}
    .cart-surface #cartScreen1 .cart-action-divider{width:1px;height:30px;background:#d8d8d5;margin:0 3px}
    .cart-surface #cartScreen1 .cart-remove-btn{padding:7px 12px;border:1px solid #8b7563;border-radius:4px;background:#fff;color:#5a4030;font:600 .82rem 'Barlow Condensed',sans-serif;cursor:pointer}
    .cart-surface #cartScreen1>div:last-child{background:#fff;border-top:1px solid #e8e8e5!important}
    .cart-surface #cartScreen1 .cart-total-label{color:#777}
    .cart-surface #cartScreen1 .cart-total-amount{color:#202020}
    .cart-surface #cartScreen1 #btnProceder{color:#202020!important}
    .cart-surface #cartScreen1 #cartUpsell{background:#fffaf0!important;border-color:#ead78c!important}
    .cart-surface #cartScreen1 #cartUpsell div div:first-child{color:#202020!important}
    .cart-surface #cartScreen1 #cartUpsell div div:last-child{color:#777!important}
    .cart-surface #cartScreen1>div:last-child>button:last-child{color:#777!important;border-color:#dededb!important}

    @media (max-width: 768px), (pointer: coarse){
      .cart-surface{top:0;right:0;bottom:0;width:100vw;height:100dvh;max-height:none;border:0;border-radius:0}
      .cart-surface #cartScreen1 .cart-drawer-header{padding-top:calc(16px + env(safe-area-inset-top))}
      .cart-surface #cartScreen1 .cart-items{padding-left:18px;padding-right:18px}
      .cart-surface #cartScreen1 .cart-item-art{width:94px;height:82px;flex-basis:94px}
      .cart-surface #cartScreen1 .cart-item{gap:10px}
      .cart-surface #cartScreen1 .cart-item-name{font-size:1.05rem}
      .cart-surface #cartScreen1 .cart-item-actions{gap:7px;flex-wrap:wrap}
    }

    /* Control de cantidad compacto, colocado bajo la imagen del producto. */
    .cart-surface #cartScreen1 .cart-item-visual-column{width:112px;flex:0 0 112px;display:flex;flex-direction:column;align-items:center}
    .cart-surface #cartScreen1 .cart-item-qty-under-art{display:flex;flex-direction:column;align-items:center;gap:3px;margin-top:6px}
    .cart-surface #cartScreen1 .cart-item-qty-under-art .cart-qty-label{font-size:.68rem;line-height:1}
    .cart-surface #cartScreen1 .cart-item-qty-under-art .cart-qty-control{gap:4px}
    .cart-surface #cartScreen1 .cart-item-qty-under-art .cart-qty-btn{width:26px;height:26px;font-size:.95rem}
    .cart-surface #cartScreen1 .cart-item-qty-under-art .cart-qty-num{font-size:1rem;min-width:16px}
    .cart-surface #cartScreen1 .cart-item-actions{justify-content:flex-end}
    @media (max-width: 768px), (pointer: coarse){
      .cart-surface #cartScreen1 .cart-item-visual-column{width:94px;flex-basis:94px}
      .cart-surface #cartScreen1 .cart-item-qty-under-art{margin-top:5px}
    }
