:root{
  --black:#000;--white:#fff;--ink:#161616;--muted:#6b6b6b;--soft:#f3f3f3;
  --line:#e7e7e7;--wine:#8f0000;--fire:#e43a00;--gold:#c9a227;--green:#0a8f39;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}
a{text-decoration:none;color:inherit}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
img{display:block;max-width:100%}

.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}
.header-inner{height:72px;max-width:1440px;margin:auto;padding:0 24px;display:flex;align-items:center;gap:24px}
.brand{display:flex;align-items:center;gap:12px;min-width:265px}
.brand-logo{width:54px;height:54px;object-fit:contain;background:#000;border-radius:8px}
.brand-copy{display:flex;flex-direction:column;line-height:1.05}
.brand-copy strong{font-size:18px}
.brand-copy small{font-size:12px;color:var(--muted);margin-top:4px}
.delivery-address{display:flex;align-items:center;gap:8px;font-weight:600;font-size:14px;flex:1}
.pin{color:var(--fire)}
.header-actions{display:flex;align-items:center;gap:8px}
.header-link,.account-button,.login-button,.cart-button{height:42px;border-radius:999px;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;white-space:nowrap}
.header-link:hover,.header-link.is-active{background:var(--soft)}
.cart-button{gap:9px;background:#111;color:#fff}.cart-button b{background:var(--fire);min-width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:12px}
.account-button{background:#eee}
.login-button{background:#111;color:#fff}

.restaurant-shell{max-width:1200px;margin:0 auto;padding:0 24px}
.hero{height:320px;margin-top:20px;border-radius:18px;background-color:#111;background-size:cover;background-position:center;display:flex;align-items:flex-end;overflow:hidden}
.hero-copy{padding:36px;color:#fff;max-width:620px}
.hero-kicker{font-size:13px;text-transform:uppercase;letter-spacing:1.3px;font-weight:800;color:#ffd86b}
.hero h1{font-size:44px;line-height:1;margin:10px 0 12px}
.hero p{font-size:17px;margin:0 0 22px;line-height:1.45}
.primary-cta,.confirm-button{display:inline-flex;align-items:center;justify-content:center;background:#111;color:#fff;border:0;border-radius:9px;padding:13px 20px;font-weight:800}
.hero .primary-cta{background:#fff;color:#111}
.restaurant-meta{display:grid;grid-template-columns:1.1fr 1fr auto;gap:26px;align-items:center;padding:20px 6px 26px}
.restaurant-meta h2{font-size:34px;margin:0 0 8px}
.restaurant-meta p{margin:0;color:var(--muted);line-height:1.4}
.search-box{height:44px;border-radius:24px;background:#f1f1f1;display:flex;align-items:center;padding:0 12px;gap:8px}
.search-box input{border:0;background:transparent;outline:0;flex:1;min-width:80px}
.search-box button{border:0;background:transparent;font-weight:700}
.service-summary{display:flex;border:1px solid var(--line);border-radius:13px;overflow:hidden}
.service-summary div{min-width:120px;padding:11px 18px;text-align:center}
.service-summary div+div{border-left:1px solid var(--line)}
.service-summary strong,.service-summary small{display:block}.service-summary small{color:var(--muted);font-size:11px;margin-top:3px}

.page-alert,.success-box{max-width:1200px;margin:16px auto;padding:14px 18px;border-radius:10px;background:#fff3d7;border:1px solid #ebc66b}
.success-box{background:#eaf8ee;border-color:#82c994}

.menu-layout{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:270px minmax(0,1fr);gap:50px;padding:0 24px 60px}
.menu-sidebar{border-right:1px solid var(--line)}
.sidebar-sticky{position:sticky;top:92px;padding:14px 22px 30px 0}
.sidebar-sticky h3{margin:0 0 3px;font-size:20px}.sidebar-sticky small{color:var(--muted)}
.sidebar-sticky nav{display:flex;flex-direction:column;margin-top:15px}
.sidebar-sticky nav a{padding:13px 14px;border-left:4px solid transparent;font-size:16px}
.sidebar-sticky nav a:hover{background:#f6f6f6}
.sidebar-sticky nav a.active{background:#eee;border-left-color:#111;font-weight:700}

.menu-content{min-width:0}
.product-section{padding-top:18px;margin-bottom:38px}
.section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:16px}
.section-heading h2{font-size:28px;margin:0}.section-heading p{color:var(--muted);margin:5px 0 0}

.featured-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}
.featured-card{position:relative;min-width:0}
.featured-image{height:190px;border-radius:13px;background:#eee;overflow:hidden;position:relative}
.featured-image img{width:100%;height:100%;object-fit:cover}
.rank{position:absolute;top:9px;left:9px;background:var(--green);color:#fff;padding:5px 7px;border-radius:4px;font-size:12px;font-weight:800}
.featured-card h3{font-size:17px;line-height:1.18;margin:8px 0 4px}
.featured-card p{margin:0}
.quick-add{position:absolute;right:8px;top:150px}
.quick-add button,.add-circle{width:42px;height:42px;border-radius:50%;border:1px solid #ddd;background:#fff;font-size:28px;line-height:1;box-shadow:0 2px 8px rgba(0,0,0,.13)}

.product-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.product-card{height:148px;border:1px solid var(--line);border-radius:14px;display:grid;grid-template-columns:minmax(0,1fr) 145px;overflow:hidden;background:#fff}
.product-info{padding:16px;min-width:0}
.product-info h3{font-size:18px;line-height:1.18;margin:0 0 8px}
.product-info strong{font-size:14px}.product-info p{font-size:14px;line-height:1.35;color:var(--muted);margin:8px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.product-media{position:relative;background:#eee}
.product-media>img{width:100%;height:100%;object-fit:cover}
.no-image{height:100%;display:grid;place-items:center;font-size:45px}
.product-media form{position:absolute;right:8px;bottom:8px}
.add-circle{font-size:26px}

.floating-cart{position:fixed;right:22px;bottom:22px;z-index:90;background:#111;color:#fff;border-radius:999px;padding:15px 22px;font-weight:800;box-shadow:0 12px 30px rgba(0,0,0,.22)}

.page-container{max-width:1200px;margin:0 auto;padding:34px 24px 70px}
.page-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.page-title h1{font-size:36px;margin:0}.page-title>div{display:flex;gap:8px}
.secondary-button{border:1px solid var(--line);border-radius:9px;padding:11px 15px;font-weight:700}
.empty-state{border:1px dashed #bbb;border-radius:14px;padding:44px;text-align:center}
.checkout-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:22px;align-items:start}
.checkout-panel,.checkout-summary{border:1px solid var(--line);border-radius:14px;padding:22px;background:#fff}
.checkout-panel h2,.checkout-summary h2{margin:0 0 18px}
.cart-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:15px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}
.cart-item small{display:block;color:var(--muted);margin-top:4px}
.quantity-form{display:flex;align-items:center;background:#eee;border-radius:999px;overflow:hidden}.quantity-form button,.quantity-form input{width:36px;height:36px;border:0;background:transparent;text-align:center}.quantity-form input{appearance:textfield}
.remove-button{border:0;background:transparent;text-decoration:underline}
.checkout-summary{position:sticky;top:94px}.checkout-summary>div{display:flex;justify-content:space-between;padding:10px 0}.summary-total{border-top:1px solid var(--line);margin-top:6px;padding-top:16px!important}
.order-data{grid-column:1/2}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-grid label{display:grid;gap:7px;font-weight:700}.form-grid input,.form-grid select,.form-grid textarea{width:100%;border:1px solid #aaa;border-radius:9px;padding:13px;background:#fff}.form-grid textarea{min-height:90px;resize:vertical}.full{grid-column:1/-1}
.confirm-button{width:100%;font-size:16px}

.orders-table{border:1px solid var(--line);border-radius:14px;overflow:hidden}
.orders-row{display:grid;grid-template-columns:110px 1.2fr 110px 120px minmax(260px,1fr);gap:14px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line)}.orders-row:last-child{border-bottom:0}.orders-head{background:#f5f5f5;font-weight:800}.orders-row span small{display:block;color:var(--muted);margin-top:3px}.status-pill{background:#eee;border-radius:999px;padding:7px 10px;text-align:center}.status-form{display:flex;gap:8px}.status-form select{min-width:0;flex:1;border:1px solid #aaa;border-radius:8px;padding:9px}.status-form button{border:0;border-radius:8px;background:#111;color:#fff;padding:9px 12px;font-weight:700}

.kitchen-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.kitchen-ticket{border:1px solid var(--line);border-radius:14px;padding:18px}.ticket-head{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:10px}.kitchen-ticket h2{margin:15px 0}.kitchen-ticket ul{padding-left:22px;line-height:1.8}.ticket-note{background:#fff4dc;border-radius:8px;padding:10px;font-size:14px}

.site-footer{border-top:1px solid var(--line);padding:28px 24px;display:flex;justify-content:space-between;max-width:1200px;margin:auto;color:var(--muted)}.site-footer strong,.site-footer span{display:block}.site-footer span{font-size:13px;margin-top:4px}

@media(max-width:1000px){
  .delivery-address{display:none}.restaurant-meta{grid-template-columns:1fr 1fr}.service-summary{grid-column:1/-1;width:max-content}
  .menu-layout{grid-template-columns:220px minmax(0,1fr);gap:28px}.featured-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .product-list{grid-template-columns:1fr}.kitchen-board{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:720px){
  .header-inner{height:auto;min-height:66px;padding:8px 12px;gap:8px}.brand{min-width:0;flex:1}.brand-logo{width:46px;height:46px}.brand-copy small{display:none}.brand-copy strong{font-size:14px}
  .header-link{display:none}.header-actions{gap:5px}.login-button,.cart-button,.account-button{height:38px;padding:0 11px;font-size:12px}
  .restaurant-shell{padding:0}.hero{margin:0;border-radius:0;height:270px}.hero-copy{padding:24px}.hero h1{font-size:34px}
  .restaurant-meta{grid-template-columns:1fr;padding:18px}.restaurant-meta h2{font-size:28px}.service-summary{width:100%}.service-summary div{flex:1;min-width:0}
  .menu-layout{display:block;padding:0 14px 60px}.menu-sidebar{border:0;position:sticky;top:62px;z-index:70;background:#fff;margin:0 -14px}
  .sidebar-sticky{position:static;padding:9px 14px}.sidebar-sticky h3,.sidebar-sticky small{display:none}.sidebar-sticky nav{margin:0;display:flex;overflow-x:auto;gap:8px}.sidebar-sticky nav a{white-space:nowrap;border:1px solid var(--line);border-radius:999px;padding:9px 14px}.sidebar-sticky nav a.active{border-color:#111;background:#111;color:#fff}
  .featured-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.featured-image{height:145px}.quick-add{top:106px}
  .product-list{gap:14px}.product-card{height:135px;grid-template-columns:minmax(0,1fr) 125px}.product-info{padding:13px}.product-info h3{font-size:16px}
  .floating-cart{left:12px;right:12px;bottom:12px;text-align:center}
  .checkout-grid{display:block}.checkout-summary{position:static;margin:16px 0}.cart-item{grid-template-columns:1fr auto}.cart-item>strong{grid-column:1}.remove-button{grid-column:2}
  .form-grid{grid-template-columns:1fr}.full{grid-column:auto}.order-data{margin-top:16px}
  .orders-table{overflow-x:auto}.orders-row{min-width:850px}.kitchen-board{grid-template-columns:1fr}.site-footer{flex-direction:column;gap:12px}
}


/* ===== Mobile redesign requested: top clean menu, 2-column products, centered wide hero ===== */
.hero{height:230px;margin-top:16px;border-radius:18px;background-color:#111;background-size:cover;background-position:center center;display:block;position:relative;overflow:hidden}
.hero-copy{display:none}
.restaurant-meta{display:grid;grid-template-columns:1.2fr 1fr auto;gap:20px;align-items:center;padding:18px 6px 22px}
.menu-sidebar nav a{font-size:15px}
.featured-image img,.product-media>img{object-fit:contain;background:#f6f6f6}
.product-media{background:#f6f6f6}
.featured-card h3,.product-info h3{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

@media(max-width:720px){
  .site-header{position:sticky;top:0}
  .header-inner{min-height:64px;padding:10px 12px;gap:10px}
  .brand{gap:10px;min-width:0;flex:1}
  .brand-logo{width:38px;height:38px;border-radius:8px}
  .brand-copy strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}
  .login-button{display:inline-flex}
  .cart-button span{display:none}
  .cart-button{min-width:38px;padding:0 10px}

  .restaurant-shell{padding:0}
  .hero{height:158px;margin-top:0;border-radius:0;background-position:center center;background-size:cover}
  .restaurant-meta{grid-template-columns:1fr;gap:14px;padding:14px 14px 8px}
  .restaurant-meta h2{font-size:30px;line-height:1.05;margin:0 0 6px}
  .restaurant-meta p{font-size:14px}
  .service-summary{display:none}
  .search-box{height:42px;border-radius:12px}
  
  .menu-layout{display:block;padding:0 0 76px}
  .menu-sidebar{border:0;position:sticky;top:64px;z-index:70;background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:0}
  .sidebar-sticky{padding:8px 8px}
  .sidebar-sticky h3,.sidebar-sticky small{display:none}
  .sidebar-sticky nav{display:flex;overflow-x:auto;gap:10px;margin:0;padding:0 4px 4px;scrollbar-width:none}
  .sidebar-sticky nav::-webkit-scrollbar{display:none}
  .sidebar-sticky nav a{white-space:nowrap;border:0;border-radius:0;background:transparent;padding:10px 6px 12px;font-size:17px;color:#5b5b5b;position:relative;flex:0 0 auto}
  .sidebar-sticky nav a:hover{background:transparent}
  .sidebar-sticky nav a.active{background:transparent;color:#111;border-left:0;font-weight:800}
  .sidebar-sticky nav a.active::after{content:'';position:absolute;left:6px;right:6px;bottom:0;height:3px;background:#111;border-radius:3px}

  .menu-content{padding:0 12px}
  .product-section{padding-top:14px;margin-bottom:22px}
  .section-heading{margin-bottom:12px}
  .section-heading h2{font-size:20px}
  .section-heading p{font-size:13px}

  .featured-grid,.product-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .featured-card{min-width:0}
  .featured-image{height:150px;border-radius:16px;background:#f6f6f6}
  .featured-image img{width:100%;height:100%;object-fit:contain;padding:0}
  .quick-add{top:auto;bottom:10px;right:10px}
  .quick-add button,.add-circle{width:44px;height:44px;font-size:30px;border:1px solid #d8d8d8;box-shadow:0 3px 10px rgba(0,0,0,.14)}
  .featured-card h3{font-size:14px;line-height:1.18;margin:8px 0 3px}
  .featured-card p{font-size:13px}
  .rank{font-size:10px;padding:4px 6px}

  .product-card{display:flex;flex-direction:column-reverse;height:auto;border:0;border-radius:0;overflow:visible;background:transparent}
  .product-media{height:150px;border-radius:16px;overflow:hidden;background:#f6f6f6;order:1}
  .product-media>img{width:100%;height:100%;object-fit:contain;padding:0}
  .product-info{padding:8px 2px 0;order:2}
  .product-info h3{font-size:14px;line-height:1.18;margin:0 0 5px;min-height:33px}
  .product-info strong{font-size:13px;display:block;margin-bottom:4px}
  .product-info p{font-size:12px;line-height:1.32;margin:0;color:#666;-webkit-line-clamp:2}
  .product-media form{right:8px;bottom:8px}
  .floating-cart{left:50%;right:auto;transform:translateX(-50%);bottom:14px;padding:14px 22px;border-radius:999px;white-space:nowrap}
}


/* ===== Phase 1.4: Uber-like mobile, bottom bar, premium cart, modal ===== */
.mobile-discovery-tabs{display:none}
.mobile-bottom-nav{display:none}
.mobile-floating-cart{display:none}
body.modal-open{overflow:hidden}
.open-modal-btn{border:1px solid #ddd;background:#fff;display:grid;place-items:center}
.floating-cart{box-shadow:0 18px 36px rgba(0,0,0,.18)}
.product-modal{position:fixed;inset:0;z-index:160;display:none}
.product-modal.is-open{display:block}
.product-modal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.58)}
.product-modal__dialog{position:relative;max-width:920px;width:calc(100% - 32px);margin:5vh auto;background:#fff;border-radius:22px;overflow:hidden;display:grid;grid-template-columns:1.05fr 1fr;box-shadow:0 20px 60px rgba(0,0,0,.24)}
.product-modal__close{position:absolute;top:14px;right:14px;width:38px;height:38px;border-radius:50%;border:0;background:rgba(255,255,255,.95);font-size:28px;line-height:1;z-index:2}
.product-modal__media-wrap{background:#f5f5f5;min-height:360px;display:grid;place-items:center;padding:18px}
.product-modal__image{max-width:100%;max-height:420px;object-fit:contain}
.product-modal__content{padding:26px;display:flex;flex-direction:column;gap:12px}
.product-modal__eyebrow{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700}
.product-modal__content h3{margin:0;font-size:30px;line-height:1.06}
.product-modal__price{font-size:26px;font-weight:800;color:#111}
.product-modal__content p{margin:0;color:var(--muted);line-height:1.5}
.product-modal__form{margin-top:auto;display:grid;gap:14px}
.modal-qty-row{display:flex;align-items:center;justify-content:space-between;gap:16px}
.modal-qty-row label{font-weight:700}
.modal-qty-control{display:flex;align-items:center;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:#fff}
.modal-qty-control input{width:54px;height:44px;border:0;text-align:center;appearance:textfield;-moz-appearance:textfield}
.modal-qty-control input::-webkit-outer-spin-button,.modal-qty-control input::-webkit-inner-spin-button{appearance:none;margin:0}
.qty-btn{width:44px;height:44px;border:0;background:#f3f3f3;font-size:22px}
.modal-submit-btn{height:52px;border:0;border-radius:14px;background:#111;color:#fff;font-weight:800;font-size:16px}

@media(max-width:720px){
  .header-inner{padding:10px 12px;gap:8px;align-items:center}
  .brand-logo{width:34px;height:34px;border-radius:8px}
  .brand-copy strong{max-width:170px;font-size:13px}
  .brand-copy small{display:block;font-size:11px;color:#7a7a7a}
  .header-actions{gap:6px}
  .header-link{display:none}
  .account-button{display:none}
  .login-button{display:inline-flex;background:#111;color:#fff;border-radius:999px;font-size:12px;padding:0 12px;height:36px}
  .cart-button{display:none}
  .delivery-address{display:none}

  .mobile-discovery-tabs{display:flex;gap:22px;overflow-x:auto;padding:0 16px;margin:8px 0 0;border-bottom:1px solid var(--line);background:#fff;position:sticky;top:64px;z-index:75;scrollbar-width:none}
  .mobile-discovery-tabs::-webkit-scrollbar{display:none}
  .mobile-discovery-tabs a{display:inline-flex;align-items:center;height:48px;white-space:nowrap;color:#6b6b6b;font-weight:700;position:relative;flex:0 0 auto}
  .mobile-discovery-tabs a.active{color:#111}
  .mobile-discovery-tabs a.active::after{content:'';position:absolute;left:0;right:0;bottom:0;height:3px;background:#111;border-radius:3px 3px 0 0}

  .hero{height:176px;background-position:center center;background-size:cover}
  .restaurant-meta{padding:12px 16px 6px}
  .restaurant-meta h2{font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .restaurant-meta p{font-size:12px;line-height:1.4}
  .search-box{margin-top:2px;height:40px;border-radius:999px}

  .menu-sidebar{top:112px}
  .sidebar-sticky{padding:8px 12px 10px}
  .sidebar-sticky nav{gap:18px;overflow-x:auto;flex-wrap:nowrap;padding:0;scrollbar-width:none}
  .sidebar-sticky nav::-webkit-scrollbar{display:none}
  .sidebar-sticky nav a{padding:10px 0 12px;font-size:15px;border:none;border-radius:0;background:transparent;position:relative;color:#575757}
  .sidebar-sticky nav a.active{background:transparent;color:#111}
  .sidebar-sticky nav a.active::after{content:'';position:absolute;left:0;right:0;bottom:0;height:3px;background:#111;border-radius:3px}

  .menu-content{padding:0 12px 120px}
  .section-heading h2{font-size:17px}
  .featured-grid,.product-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .featured-card{cursor:pointer}
  .featured-image{height:168px;border-radius:18px;background:#f3f3f3}
  .featured-card h3{font-size:13px;line-height:1.22;min-height:32px}
  .featured-card p{font-size:12px}
  .product-card{cursor:pointer}
  .product-media{height:168px;border-radius:18px;background:#f3f3f3}
  .product-info{padding:8px 2px 0}
  .product-info h3{font-size:13px;line-height:1.22;min-height:32px}
  .product-info strong{font-size:12px;font-weight:800}
  .product-info p{font-size:11px;line-height:1.32;-webkit-line-clamp:2}
  .add-circle,.quick-add{width:42px;height:42px;border-radius:50%}
  .quick-add{position:absolute;right:10px;bottom:10px;top:auto;font-size:28px;border:1px solid #ddd;background:#fff;color:#111}
  .rank{font-size:10px;top:10px;left:10px}
  .floating-cart{display:none}

  .mobile-bottom-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;background:rgba(255,255,255,.98);border-top:1px solid var(--line);backdrop-filter:blur(12px);z-index:120;padding:8px 6px calc(8px + env(safe-area-inset-bottom,0px))}
  .mobile-bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#666;font-size:11px;font-weight:700;min-height:48px}
  .mobile-bottom-nav a span{font-size:18px;line-height:1}
  .mobile-bottom-nav a.active{color:#111}
  .mobile-floating-cart{display:inline-flex;position:fixed;left:50%;transform:translateX(-50%);bottom:72px;z-index:130;background:#111;color:#fff;height:52px;padding:0 20px;border-radius:999px;align-items:center;justify-content:center;font-weight:800;box-shadow:0 18px 40px rgba(0,0,0,.3);white-space:nowrap;max-width:calc(100vw - 32px)}

  .product-modal__dialog{grid-template-columns:1fr;width:calc(100% - 18px);margin:8px auto 16px;max-height:calc(100vh - 24px);overflow:auto;border-radius:22px}
  .product-modal__media-wrap{min-height:220px;padding:14px}
  .product-modal__image{max-height:260px}
  .product-modal__content{padding:18px}
  .product-modal__content h3{font-size:22px}
  .product-modal__price{font-size:20px}
  .modal-qty-row{flex-direction:column;align-items:flex-start}
  .modal-qty-control{width:100%;justify-content:space-between}
  .modal-qty-control input{flex:1;width:auto}
  .modal-submit-btn{height:50px;border-radius:999px}
}


/* ===== Fase 1.5: modificadores, drawer lateral y búsqueda instantánea ===== */
.search-box{position:relative}
.search-clear{display:none!important;width:30px;height:30px;border:0!important;border-radius:50%;background:#ddd!important;font-size:20px;line-height:1;padding:0!important}
.search-clear.visible{display:grid!important;place-items:center}
.search-submit{white-space:nowrap}
.searchable-product[hidden]{display:none!important}
.product-section.search-hidden{display:none}
.instant-search-empty{grid-column:1/-1;text-align:center;padding:42px 20px;border:1px dashed var(--line);border-radius:16px;color:var(--muted)}
.instant-search-empty h3{color:#111;margin:0 0 6px}

.modifier-groups{display:grid;gap:14px;max-height:300px;overflow:auto;padding-right:4px}
.modifier-group{border:0;padding:0;margin:0;display:grid;gap:7px}
.modifier-group[hidden]{display:none}
.modifier-group legend{font-weight:800;margin-bottom:7px;width:100%}
.modifier-group legend small{float:right;color:var(--muted);font-weight:400}
.modifier-group label{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;border:1px solid var(--line);border-radius:11px;padding:11px 12px;cursor:pointer}
.modifier-group input{width:18px;height:18px;accent-color:#111}
.modifier-group b{font-size:13px}
.modal-submit-btn{display:flex;align-items:center;justify-content:space-between;padding:0 18px}
.modal-submit-btn:disabled{opacity:.65;cursor:wait}

.drawer-open{overflow:hidden}
.cart-drawer{position:fixed;inset:0;z-index:180;pointer-events:none;visibility:hidden}
.cart-drawer.is-open{pointer-events:auto;visibility:visible}
.cart-drawer__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.5);opacity:0;transition:.22s}
.cart-drawer.is-open .cart-drawer__backdrop{opacity:1}
.cart-drawer__panel{position:absolute;right:0;top:0;bottom:0;width:min(430px,100%);background:#fff;transform:translateX(100%);transition:.25s ease;display:grid;grid-template-rows:auto 1fr auto;box-shadow:-20px 0 55px rgba(0,0,0,.16)}
.cart-drawer.is-open .cart-drawer__panel{transform:translateX(0)}
.cart-drawer__header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid var(--line)}
.cart-drawer__header small{color:var(--muted)}.cart-drawer__header h2{margin:2px 0 0;font-size:26px}
.cart-drawer__header button{width:40px;height:40px;border:0;border-radius:50%;background:#eee;font-size:28px}
.cart-drawer__body{overflow:auto;padding:0 20px}
.drawer-line{display:grid;grid-template-columns:76px 1fr;gap:13px;padding:17px 0;border-bottom:1px solid var(--line)}
.drawer-line-image{width:76px;height:76px;border-radius:12px;background:#f3f3f3;display:grid;place-items:center;overflow:hidden;font-size:30px}
.drawer-line-image img{width:100%;height:100%;object-fit:contain}
.drawer-line-info h4{margin:0 0 5px;font-size:15px}.drawer-line-info p{margin:2px 0;color:var(--muted);font-size:12px}.drawer-line-info>strong{display:block;margin-top:6px}
.drawer-qty{display:flex;align-items:center;gap:8px;margin-top:9px}
.drawer-qty button{width:30px;height:30px;border:0;border-radius:50%;background:#eee;font-weight:800}
.drawer-qty .drawer-remove{width:auto;border-radius:0;background:transparent;text-decoration:underline;color:#777;font-weight:400;margin-left:auto}
.cart-drawer__footer{padding:18px 20px calc(18px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);background:#fff}
.cart-drawer__footer>div{display:flex;justify-content:space-between;font-size:18px}.cart-drawer__footer p{font-size:12px;color:var(--muted);margin:7px 0 14px}
.drawer-checkout{display:flex;justify-content:center;align-items:center;height:52px;border-radius:12px;background:#111;color:#fff;font-weight:800}
.drawer-empty{text-align:center;padding:80px 20px;color:var(--muted)}.drawer-empty>div{font-size:48px}.drawer-empty h3{color:#111;margin-bottom:6px}
.cart-modifiers{display:block;color:var(--muted);font-size:12px;margin-top:3px}

@media(max-width:720px){
  .instant-search-form .search-submit{display:none}
  .search-clear{flex:0 0 30px}
  .cart-drawer__panel{width:100%;top:auto;height:min(82vh,720px);border-radius:22px 22px 0 0;transform:translateY(100%)}
  .cart-drawer.is-open .cart-drawer__panel{transform:translateY(0)}
  .cart-drawer__header{padding:16px 18px}
  .cart-drawer__body{padding:0 16px}
  .modifier-groups{max-height:none}
  .product-modal__dialog{padding-bottom:env(safe-area-inset-bottom,0px)}
}


/* 1.5.1 extras con botones + y - */
.modifier-stepper{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;border:1px solid var(--line);border-radius:12px;padding:12px}
.modifier-stepper-info{display:flex;flex-direction:column;gap:4px}
.modifier-stepper-info span{font-weight:600}
.modifier-stepper-info b{font-size:13px;color:#111}
.modifier-stepper-controls{display:flex;align-items:center;gap:10px}
.stepper-btn{width:34px;height:34px;border:0;border-radius:50%;background:#efefef;color:#111;font-size:22px;line-height:1;display:grid;place-items:center}
.stepper-value{min-width:18px;text-align:center;font-weight:700}
@media(max-width:720px){
  .modifier-stepper{padding:10px 12px}
  .stepper-btn{width:36px;height:36px}
}


/* Ajuste 1.5.2: stepper funcional */
.stepper-btn[hidden]{display:none!important}
.modifier-stepper-controls{min-width:80px;justify-content:flex-end}
.modifier-stepper-controls:has(.stepper-btn[data-stepper="down"]:not([hidden])){min-width:116px}

/* ===== Phase 1.5.3: categorías por sección + scrollspy ===== */
.product-category-chip{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;color:#666;background:#f2f2f2;border-radius:999px;padding:5px 9px;margin-bottom:8px}
.product-section{scroll-margin-top:138px}
.menu-sidebar nav a[hidden]{display:none !important}
.category-product-section .product-list{align-items:stretch}

@media(max-width:720px){
  .product-section{scroll-margin-top:178px}
  .product-category-chip{font-size:10px;padding:4px 8px;margin-bottom:6px}
}

/* ===== Phase 1.5.4: orden del menú + destacados horizontales ===== */
.section-heading--featured{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}
.featured-controls{display:flex;align-items:center;gap:10px;flex-shrink:0}
.featured-nav-btn{width:44px;height:44px;border-radius:999px;border:1px solid #dedede;background:#f3f3f3;color:#111;font-size:22px;font-weight:800;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.2s ease}
.featured-nav-btn:hover{background:#111;color:#fff;border-color:#111}
.featured-grid{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x proximity;padding:4px 2px 10px;scrollbar-width:none;-ms-overflow-style:none}
.featured-grid::-webkit-scrollbar{display:none}
.featured-grid .featured-card{flex:0 0 calc((100% - 66px)/4);min-width:220px;scroll-snap-align:start}

@media (max-width:1100px){
  .featured-grid .featured-card{flex-basis:calc((100% - 44px)/3)}
}
@media (max-width:720px){
  .section-heading--featured{align-items:center}
  .featured-controls{gap:8px}
  .featured-nav-btn{width:38px;height:38px;font-size:18px}
  .featured-grid .featured-card{flex-basis:calc((100% - 16px)/2);min-width:240px}
}


/* ===== Fase 1.5.5: carrusel táctil y menú lateral estilo Uber Eats ===== */
.menu-layout{grid-template-columns:245px minmax(0,1fr);gap:48px}
.menu-sidebar{border-right:0}
.sidebar-sticky{top:92px;padding:18px 16px 32px 0}
.sidebar-sticky h3{font-size:22px;margin-bottom:4px}
.sidebar-sticky nav{gap:2px;margin-top:18px}
.sidebar-sticky nav a{
  border-left:0;
  border-radius:0;
  padding:12px 14px;
  color:#3b3b3b;
  font-size:16px;
  line-height:1.25;
  position:relative;
  transition:background .15s ease,color .15s ease;
}
.sidebar-sticky nav a:hover{background:#f4f4f4}
.sidebar-sticky nav a.active{
  background:#ececec;
  color:#111;
  font-weight:800;
}
.sidebar-sticky nav a.active::before{
  content:'';
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:#111;
}

.featured-nav-btn{
  width:42px;
  height:42px;
  border:0;
  background:#f1f1f1;
  color:#111;
}
.featured-nav-btn:hover:not(:disabled){background:#111;color:#fff}
.featured-nav-btn:disabled{
  opacity:.35;
  cursor:not-allowed;
  background:#f1f1f1;
  color:#888;
}

.featured-grid{
  cursor:grab;
  overscroll-behavior-x:contain;
  scroll-behavior:smooth;
  touch-action:pan-y;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
}
.featured-grid.is-dragging{
  cursor:grabbing;
  scroll-snap-type:none;
  user-select:none;
}
.featured-grid.is-dragging *{pointer-events:none}
.featured-grid .featured-card{
  scroll-snap-align:start;
  scroll-snap-stop:always;
}

@media(max-width:1000px){
  .menu-layout{grid-template-columns:210px minmax(0,1fr);gap:28px}
}

@media(max-width:720px){
  .menu-layout{display:block}
  .menu-sidebar{
    position:sticky;
    top:112px;
    z-index:85;
    background:#fff;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
  }
  .sidebar-sticky{padding:7px 12px 9px}
  .sidebar-sticky nav{gap:20px;margin-top:0}
  .sidebar-sticky nav a{
    padding:10px 0 12px;
    font-size:15px;
    background:transparent!important;
    color:#686868;
  }
  .sidebar-sticky nav a.active{color:#111}
  .sidebar-sticky nav a.active::before{display:none}
  .sidebar-sticky nav a.active::after{
    content:'';
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    height:3px;
    background:#111;
    border-radius:3px 3px 0 0;
  }
  .featured-grid{touch-action:pan-x pan-y}
}


/* ===== Fase 1.5.6: orden exacto y selección dinámica garantizada ===== */
#categoryNav .section-spy-link{background:transparent;color:#444;border-left:0;font-weight:400}
#categoryNav .section-spy-link.active,
#categoryNav .section-spy-link[aria-current="true"]{
  background:#ececec!important;
  color:#111!important;
  font-weight:800!important;
  border-left:4px solid #111!important;
}
#categoryNav .section-spy-link.active::before,
#categoryNav .section-spy-link[aria-current="true"]::before{display:none!important}
@media(max-width:720px){
  #categoryNav .section-spy-link.active,
  #categoryNav .section-spy-link[aria-current="true"]{
    background:transparent!important;
    border-left:0!important;
    color:#111!important;
  }
  #categoryNav .section-spy-link.active::after,
  #categoryNav .section-spy-link[aria-current="true"]::after{
    content:''!important;position:absolute!important;left:0!important;right:0!important;bottom:0!important;height:3px!important;background:#111!important;border-radius:3px!important;
  }
}


/* Fase 1.5.9 — carrusel destacado independiente */
#featuredScroller{
  display:flex!important;
  flex-wrap:nowrap!important;
  gap:22px!important;
  width:100%!important;
  max-width:100%!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scroll-behavior:smooth!important;
  scroll-snap-type:x mandatory!important;
  overscroll-behavior-x:contain!important;
  -webkit-overflow-scrolling:touch!important;
  scrollbar-width:none!important;
  cursor:grab!important;
}
#featuredScroller::-webkit-scrollbar{display:none!important}
#featuredScroller>.featured-card{
  flex:0 0 calc((100% - 66px)/4)!important;
  min-width:220px!important;
  scroll-snap-align:start!important;
  scroll-snap-stop:always!important;
}
#featuredScroller.is-dragging{
  cursor:grabbing!important;
  scroll-snap-type:none!important;
  user-select:none!important;
}
#featuredScroller.is-dragging *{pointer-events:none!important}

.featured-nav-btn{
  position:relative!important;
  z-index:5!important;
  pointer-events:auto!important;
}
.featured-nav-btn:disabled{
  opacity:.32!important;
  cursor:not-allowed!important;
}

@media(max-width:1100px){
  #featuredScroller>.featured-card{
    flex-basis:calc((100% - 44px)/3)!important;
  }
}
@media(max-width:720px){
  #featuredScroller{
    gap:14px!important;
    touch-action:pan-x!important;
  }
  #featuredScroller>.featured-card{
    flex:0 0 calc((100% - 14px)/2)!important;
    min-width:0!important;
  }
}


/* ===== Fase 1.5.11 — botón + premium y zoom en modal ===== */
/* botón + tipo Uber Eats en todas las tarjetas */
.featured-card{padding-bottom:6px}
.quick-add,.add-circle{
  position:absolute !important;
  width:56px !important;
  height:56px !important;
  border-radius:999px !important;
  border:1px solid #d9d9d9 !important;
  background:#fff !important;
  color:#111 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  font-size:36px !important;
  line-height:1 !important;
  font-weight:700 !important;
  box-shadow:0 8px 24px rgba(0,0,0,.18) !important;
  z-index:5 !important;
  padding:0 !important;
}
.quick-add:hover,.add-circle:hover{transform:scale(1.04); box-shadow:0 10px 28px rgba(0,0,0,.22) !important}
.quick-add:active,.add-circle:active{transform:scale(.98)}
.featured-card .quick-add{right:12px !important; bottom:12px !important; top:auto !important}
.product-card{overflow:visible !important}
.product-media{overflow:visible !important}
.product-media .add-circle{
  right:-18px !important;
  top:50% !important;
  bottom:auto !important;
  transform:translateY(-50%) !important;
}
.product-media .add-circle:hover{transform:translateY(-50%) scale(1.04) !important}
.product-media .add-circle:active{transform:translateY(-50%) scale(.98) !important}

/* zoom interactivo en imagen del modal */
.product-modal__media-wrap{
  overflow:hidden !important;
  position:relative;
  cursor:zoom-in;
}
.product-modal__image{
  width:100%;
  height:auto;
  max-width:100%;
  max-height:520px;
  object-fit:contain;
  transition:transform .12s ease-out, transform-origin .12s ease-out;
  will-change:transform, transform-origin;
}
.product-modal__media-wrap.is-zooming .product-modal__image{
  transform:scale(1.75);
}

@media (max-width: 720px){
  .quick-add,.add-circle{width:52px !important; height:52px !important; font-size:34px !important}
  .featured-card .quick-add{right:10px !important; bottom:10px !important}
  .product-media .add-circle{right:10px !important; top:auto !important; bottom:10px !important; transform:none !important}
  .product-media .add-circle:hover,.product-media .add-circle:active{transform:none !important}
  .product-modal__media-wrap{cursor:default}
  .product-modal__media-wrap.is-zooming .product-modal__image{transform:none}
}


/* ===== Fase 1.5.12 — portada, rating Google, horario y botones + visibles ===== */
.hero{background-image:url("../img/hero-portada-app.jpg") !important;background-position:center center !important;background-size:cover !important;height:320px !important;border-radius:20px !important;overflow:hidden !important;}
.restaurant-headline h2{margin-bottom:6px !important}
.google-rating{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px;color:#111;font-size:16px}
.google-icon{display:inline-flex;align-items:center;justify-content:center}
.google-votes,.google-label{color:#6b7280;font-weight:500}
.restaurant-address{margin:0 0 4px 0 !important;color:#4b5563 !important}
.restaurant-today{margin:0 !important;color:#111 !important;font-weight:700 !important}
.menu-sidebar .sidebar-sticky small{display:block;color:#4b5563;font-weight:600;margin-bottom:10px}

/* botones + muy visibles */
.featured-card,.product-card{overflow:visible !important}
.featured-image,.product-media{position:relative !important;overflow:hidden !important}
.open-modal-btn.quick-add,.product-media .open-modal-btn.add-circle,.product-media .add-circle,.quick-add{
  position:absolute !important;
  right:10px !important;
  bottom:10px !important;
  top:auto !important;
  left:auto !important;
  width:54px !important;
  height:54px !important;
  border-radius:999px !important;
  border:1px solid #d6d6d6 !important;
  background:#fff !important;
  color:#111 !important;
  display:flex !important;
  visibility:visible !important;
  opacity:1 !important;
  align-items:center !important;
  justify-content:center !important;
  font-size:38px !important;
  font-weight:700 !important;
  line-height:1 !important;
  z-index:9 !important;
  box-shadow:0 10px 24px rgba(0,0,0,.18) !important;
  cursor:pointer !important;
}
.quick-add:hover,.add-circle:hover{transform:scale(1.04) !important}
.quick-add:active,.add-circle:active{transform:scale(.98) !important}

@media (max-width: 900px){
  .restaurant-meta{grid-template-columns:1fr !important;gap:14px !important}
  .hero{height:220px !important;border-radius:0 !important;margin-top:0 !important}
}
@media (max-width: 720px){
  .hero{height:170px !important;border-radius:0 !important}
  .google-rating{font-size:14px}
  .restaurant-headline h2{font-size:20px !important}
  .restaurant-address,.restaurant-today{font-size:12px !important}
  .open-modal-btn.quick-add,.product-media .open-modal-btn.add-circle,.product-media .add-circle,.quick-add{width:50px !important;height:50px !important;font-size:34px !important;right:8px !important;bottom:8px !important}
}


/* ===== Fase 1.5.13 — cabecera Uber Eats + rating/horario premium ===== */
.ue-header{background:rgba(255,255,255,.96)!important;backdrop-filter:blur(18px);border-bottom:1px solid #e9e9e9;box-shadow:0 1px 8px rgba(0,0,0,.04)}
.ue-header-inner{height:76px;max-width:1480px;margin:0 auto;padding:0 28px;display:flex;align-items:center;gap:18px}
.ue-menu-button{width:42px;height:42px;border:0;border-radius:50%;background:#f3f3f3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;flex:0 0 auto}
.ue-menu-button span{display:block;width:18px;height:2px;background:#111;border-radius:2px}
.ue-brand{min-width:250px;gap:11px}
.ue-brand .brand-logo{width:46px;height:46px;border-radius:10px;background:#111}
.ue-brand .brand-copy strong{font-size:16px;letter-spacing:-.01em}
.ue-brand .brand-copy small{font-size:11px}
.ue-address-pill{display:flex;align-items:center;gap:10px;min-width:0;max-width:390px;padding:9px 14px;border-radius:999px;background:#f4f4f4;color:#111}
.ue-location-icon{color:#111;font-size:12px}
.ue-address-copy{display:flex;flex-direction:column;min-width:0}
.ue-address-copy small{font-size:10px;color:#777;line-height:1.1}
.ue-address-copy strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ue-chevron{margin-left:auto;color:#666}
.ue-actions{margin-left:auto;gap:6px}
.ue-action-link{height:42px;padding:0 15px;border-radius:999px;display:flex;align-items:center;font-size:13px;font-weight:700;color:#222}
.ue-action-link:hover,.ue-action-link.is-active{background:#f3f3f3}
.ue-cart-button{height:44px;border-radius:999px;background:#111;color:#fff;padding:0 14px;display:flex;align-items:center;gap:8px;font-weight:800}
.ue-cart-button b{background:#fff;color:#111;min-width:24px;height:24px;border-radius:999px;display:grid;place-items:center;font-size:11px}
.ue-login{height:44px;border-radius:999px;padding:0 18px;background:#efefef;color:#111}
.ue-account{height:44px;border-radius:999px;padding:0 16px}
.ue-mobile-menu{display:none}

.elegant-restaurant-headline{min-width:0}
.restaurant-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:16px}
.restaurant-kicker{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.11em;color:#8f0000;font-weight:800;margin-bottom:5px}
.restaurant-title-row h2{font-size:34px;line-height:1.05;margin:0!important;letter-spacing:-.03em}
.restaurant-status-badge{display:inline-flex;align-items:center;white-space:nowrap;padding:8px 12px;border-radius:999px;font-size:12px;font-weight:800}
.restaurant-status-badge.is-open{background:#e9f8ee;color:#18743a}
.restaurant-status-badge.is-closed{background:#fff0f0;color:#9f1d1d}
.restaurant-info-cards{display:flex;flex-wrap:wrap;gap:10px}
.info-card{display:flex;align-items:center;gap:10px;padding:11px 13px;border:1px solid #e7e7e7;border-radius:14px;background:#fff;box-shadow:0 6px 20px rgba(0,0,0,.045)}
.info-card>div{display:flex;flex-direction:column;gap:2px}
.info-card strong{font-size:13px;color:#111}
.info-card small{font-size:11px;color:#707070}
.google-card strong{font-size:16px}
.rating-star{color:#f4b400}
.info-card-icon{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#f4f4f4}

@media(max-width:1050px){
  .ue-address-pill{display:none}
  .ue-brand{min-width:0;flex:1}
}
@media(max-width:720px){
  .ue-header-inner{height:64px;padding:0 12px;gap:9px}
  .ue-menu-button{width:38px;height:38px}
  .ue-brand .brand-logo{width:38px;height:38px}
  .ue-brand .brand-copy strong{font-size:13px;max-width:170px}
  .ue-brand .brand-copy small{display:none}
  .ue-action-link,.ue-account,.ue-cart-button span:not(.ue-cart-icon),.ue-cart-button b{display:none}
  .ue-cart-button{width:40px;height:40px;padding:0;justify-content:center}
  .ue-login{height:40px;padding:0 13px;font-size:12px}
  .ue-mobile-menu{display:grid;position:absolute;top:64px;left:10px;right:10px;gap:4px;padding:12px;background:#fff;border:1px solid #e7e7e7;border-radius:16px;box-shadow:0 16px 40px rgba(0,0,0,.13);transform:translateY(-8px);opacity:0;visibility:hidden;transition:.18s;z-index:150}
  .mobile-menu-open .ue-mobile-menu{transform:translateY(0);opacity:1;visibility:visible}
  .ue-mobile-menu a{padding:12px 14px;border-radius:10px;font-weight:700}
  .ue-mobile-menu a:hover{background:#f4f4f4}
  .restaurant-title-row{align-items:center;margin-bottom:12px}
  .restaurant-title-row h2{font-size:22px!important;white-space:normal!important}
  .restaurant-kicker{font-size:9px}
  .restaurant-status-badge{font-size:10px;padding:6px 9px}
  .restaurant-info-cards{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .location-card{grid-column:1/-1}
  .info-card{padding:10px 11px;border-radius:12px}
}


/* ===== Fase 1.5.14 — ancho ampliado de escritorio ===== */
@media (min-width:1001px){
  .ue-header-inner,
  .header-inner{
    width:calc(100% - 32px)!important;
    max-width:1680px!important;
    padding-left:8px!important;
    padding-right:8px!important;
  }

  .restaurant-shell,
  .menu-layout,
  .page-container,
  .site-footer,
  .page-alert,
  .success-box{
    width:calc(100% - 32px)!important;
    max-width:1680px!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }

  .restaurant-shell{
    padding-left:0!important;
    padding-right:0!important;
  }

  .menu-layout{
    grid-template-columns:250px minmax(0,1fr)!important;
    gap:34px!important;
    padding-left:0!important;
    padding-right:0!important;
  }

  .menu-content{
    min-width:0!important;
    width:100%!important;
  }

  .product-list{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    column-gap:22px!important;
  }

  #featuredScroller{
    width:100%!important;
    max-width:none!important;
  }
}

@media (min-width:1500px){
  .menu-layout{
    grid-template-columns:270px minmax(0,1fr)!important;
    gap:42px!important;
  }
  .product-list{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}


/* ===== Fase 1.5.16 — botones + operativos y modal independiente ===== */
.js-open-product{position:relative!important}
.featured-image,.product-media{position:relative!important}

.open-modal-btn,
.quick-add.open-modal-btn,
.add-circle.open-modal-btn{
  display:flex!important;
  visibility:visible!important;
  opacity:1!important;
  pointer-events:auto!important;
  position:absolute!important;
  right:10px!important;
  bottom:10px!important;
  top:auto!important;
  left:auto!important;
  width:54px!important;
  height:54px!important;
  min-width:54px!important;
  min-height:54px!important;
  border-radius:50%!important;
  border:1px solid #d5d5d5!important;
  background:#fff!important;
  color:#111!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:38px!important;
  line-height:1!important;
  font-weight:700!important;
  z-index:50!important;
  cursor:pointer!important;
  box-shadow:0 8px 22px rgba(0,0,0,.22)!important;
  transform:none!important;
}

.open-modal-btn:hover{
  background:#111!important;
  color:#fff!important;
  transform:scale(1.04)!important;
}

.product-modal{
  z-index:10000!important;
}
.product-modal.is-open{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  pointer-events:auto!important;
}
.product-modal__backdrop{
  z-index:1!important;
}
.product-modal__dialog{
  z-index:2!important;
}

@media(max-width:720px){
  .open-modal-btn,
  .quick-add.open-modal-btn,
  .add-circle.open-modal-btn{
    right:8px!important;
    bottom:8px!important;
    width:50px!important;
    height:50px!important;
    min-width:50px!important;
    min-height:50px!important;
    font-size:34px!important;
  }
}


/* ===== Fase 1.5.17 — menú móvil horizontal y productos en una columna ===== */
@media (max-width:720px){

  /* Evita que el bloque del menú ocupe casi toda la pantalla */
  .menu-layout{
    display:block!important;
    padding:0 0 120px!important;
  }

  .menu-sidebar{
    display:block!important;
    position:sticky!important;
    top:64px!important;
    z-index:90!important;
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    margin:0!important;
    padding:0!important;
    background:#fff!important;
    border-top:1px solid #e8e8e8!important;
    border-bottom:1px solid #e8e8e8!important;
  }

  .sidebar-sticky{
    position:static!important;
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    padding:0 12px!important;
    overflow:hidden!important;
  }

  /* En móvil no se muestran título ni horario dentro del menú */
  .sidebar-sticky h3,
  .sidebar-sticky small{
    display:none!important;
  }

  /* Pestañas horizontales tipo Uber Eats */
  #categoryNav,
  .sidebar-sticky nav{
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    flex-wrap:nowrap!important;
    gap:24px!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    white-space:nowrap!important;
    scrollbar-width:none!important;
    -webkit-overflow-scrolling:touch!important;
  }

  #categoryNav::-webkit-scrollbar,
  .sidebar-sticky nav::-webkit-scrollbar{
    display:none!important;
  }

  #categoryNav .section-spy-link,
  .sidebar-sticky nav a{
    display:inline-flex!important;
    flex:0 0 auto!important;
    align-items:center!important;
    min-height:52px!important;
    padding:0!important;
    margin:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    color:#646464!important;
    font-size:16px!important;
    font-weight:500!important;
    position:relative!important;
  }

  #categoryNav .section-spy-link.active,
  #categoryNav .section-spy-link[aria-current="true"],
  .sidebar-sticky nav a.active{
    background:transparent!important;
    color:#111!important;
    font-weight:800!important;
  }

  #categoryNav .section-spy-link.active::before,
  #categoryNav .section-spy-link[aria-current="true"]::before,
  .sidebar-sticky nav a.active::before{
    display:none!important;
  }

  #categoryNav .section-spy-link.active::after,
  #categoryNav .section-spy-link[aria-current="true"]::after,
  .sidebar-sticky nav a.active::after{
    content:""!important;
    position:absolute!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    height:3px!important;
    background:#111!important;
    border-radius:3px 3px 0 0!important;
  }

  /* Contenido debajo del menú */
  .menu-content{
    width:100%!important;
    padding:14px 14px 110px!important;
  }

  .product-section{
    scroll-margin-top:130px!important;
    margin-bottom:26px!important;
  }

  .section-heading{
    margin-bottom:12px!important;
  }

  .section-heading h2{
    font-size:22px!important;
    line-height:1.15!important;
  }

  /* Una sola columna de productos */
  .product-list{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:0!important;
    width:100%!important;
  }

  /* Tarjeta horizontal, similar a la referencia */
  .product-card{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 156px!important;
    grid-template-rows:auto!important;
    flex-direction:initial!important;
    min-height:184px!important;
    height:auto!important;
    width:100%!important;
    padding:0!important;
    margin:0!important;
    border:0!important;
    border-bottom:1px solid #e6e6e6!important;
    border-radius:0!important;
    background:#fff!important;
    overflow:visible!important;
  }

  .product-info{
    order:1!important;
    padding:18px 14px 18px 10px!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:flex-start!important;
    min-width:0!important;
  }

  .product-info h3{
    margin:0 0 7px!important;
    font-size:22px!important;
    line-height:1.18!important;
    min-height:0!important;
    display:-webkit-box!important;
    -webkit-line-clamp:2!important;
    -webkit-box-orient:vertical!important;
    overflow:hidden!important;
  }

  .product-info strong{
    display:block!important;
    margin:0 0 8px!important;
    font-size:17px!important;
    line-height:1.2!important;
  }

  .product-info p{
    margin:0!important;
    color:#6c6c6c!important;
    font-size:17px!important;
    line-height:1.48!important;
    display:-webkit-box!important;
    -webkit-line-clamp:3!important;
    -webkit-box-orient:vertical!important;
    overflow:hidden!important;
  }

  .product-media{
    order:2!important;
    position:relative!important;
    width:156px!important;
    height:156px!important;
    align-self:center!important;
    margin:14px 0!important;
    border-radius:8px!important;
    overflow:hidden!important;
    background:#f4f4f4!important;
  }

  .product-media > img{
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    padding:0!important;
  }

  /* Botón + dentro de la imagen y totalmente clickeable */
  .product-media .open-modal-btn,
  .product-media .add-circle{
    position:absolute!important;
    right:8px!important;
    bottom:8px!important;
    top:auto!important;
    left:auto!important;
    width:52px!important;
    height:52px!important;
    min-width:52px!important;
    min-height:52px!important;
    border-radius:50%!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    z-index:25!important;
    pointer-events:auto!important;
    opacity:1!important;
    visibility:visible!important;
    background:#fff!important;
    color:#111!important;
    border:1px solid #ddd!important;
    font-size:34px!important;
    font-weight:700!important;
    box-shadow:0 5px 14px rgba(0,0,0,.18)!important;
    transform:none!important;
  }

  /* Destacados siguen siendo horizontales, pero compactos */
  #featuredScroller{
    display:flex!important;
    grid-template-columns:none!important;
    gap:14px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    padding:0 0 10px!important;
    scroll-snap-type:x mandatory!important;
  }

  #featuredScroller > .featured-card{
    flex:0 0 78%!important;
    min-width:78%!important;
    scroll-snap-align:start!important;
  }

  .featured-image{
    height:210px!important;
  }

  /* La barra inferior permanece visible, sin tapar las tarjetas */
  .mobile-bottom-nav{
    z-index:120!important;
  }

  .mobile-floating-cart{
    bottom:78px!important;
    z-index:125!important;
  }
}

@media (max-width:420px){
  .product-card{
    grid-template-columns:minmax(0,1fr) 138px!important;
    min-height:166px!important;
  }

  .product-media{
    width:138px!important;
    height:138px!important;
  }

  .product-info h3{
    font-size:19px!important;
  }

  .product-info strong,
  .product-info p{
    font-size:15px!important;
  }
}


/* ===== Fase 1.5.18 — fondos rojos de marca ===== */
:root{
  --brand-red:#8F0000;
  --brand-red-dark:#6f0000;
  --brand-red-light:#B22222;
}

/* Fondo del logotipo */
.brand-logo,
.header-logo,
.site-logo,
.logo-wrap,
.brand-mark{
  background:var(--brand-red)!important;
  border-color:var(--brand-red)!important;
}

/* Si el logo es imagen dentro de un contenedor */
.brand-logo img,
.header-logo img,
.site-logo img{
  background:var(--brand-red)!important;
}

/* Botón de carrito superior */
.cart-button{
  background:var(--brand-red)!important;
  border-color:var(--brand-red)!important;
  color:#fff!important;
}
.cart-button:hover{
  background:var(--brand-red-dark)!important;
}

/* Contador del carrito */
.cart-button b,
.cart-button .cart-count,
[data-cart-count]{
  background:#fff!important;
  color:var(--brand-red)!important;
}

/* Botón flotante del carrito en móvil */
.mobile-floating-cart,
.floating-cart{
  background:var(--brand-red)!important;
  color:#fff!important;
  box-shadow:0 14px 32px rgba(143,0,0,.32)!important;
}
.mobile-floating-cart:hover,
.floating-cart:hover{
  background:var(--brand-red-dark)!important;
}

/* Botón principal dentro del drawer del carrito */
.drawer-checkout{
  background:var(--brand-red)!important;
  color:#fff!important;
}
.drawer-checkout:hover{
  background:var(--brand-red-dark)!important;
}

/* Botón confirmar en checkout */
.v13-submit,
.modal-submit-btn{
  background:var(--brand-red)!important;
}
.v13-submit:hover,
.modal-submit-btn:hover{
  background:var(--brand-red-dark)!important;
}


/* ===== Fase 1.5.19 — calificación Google actualizada automáticamente ===== */
a.rating-card{
  color:inherit!important;
  text-decoration:none!important;
  cursor:pointer!important;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
a.rating-card:hover{
  transform:translateY(-2px);
  border-color:#cfcfcf!important;
  box-shadow:0 8px 22px rgba(0,0,0,.08);
}
.google-live-dot{
  width:7px;
  height:7px;
  border-radius:50%;
  background:#34a853;
  box-shadow:0 0 0 4px rgba(52,168,83,.13);
}


/* Fase 1.5.22 — estado real de Google, sin datos inventados */
.google-rating-error{
  color:#8F0000!important;
  font-weight:600!important;
}


/* ===== Fase 1.5.23 — modificadores sincronizados con WooCommerce ===== */
.modifier-sync-status{
  display:flex;
  align-items:center;
  gap:10px;
  padding:13px 14px;
  border:1px solid #e3e3e3;
  border-radius:12px;
  background:#f8f8f8;
  color:#555;
  font-size:14px;
}
.modifier-sync-status[data-type="error"]{
  border-color:#e9bcbc;
  background:#fff4f4;
  color:#8F0000;
}
.modifier-sync-status[data-type="empty"]{
  background:#fafafa;
  color:#666;
}
.modifier-sync-spinner{
  width:18px;
  height:18px;
  border:2px solid #ddd;
  border-top-color:#8F0000;
  border-radius:50%;
  animation:lcamSpin .8s linear infinite;
}
.modifier-sync-spinner.is-hidden{display:none}
@keyframes lcamSpin{to{transform:rotate(360deg)}}

.woo-modifier-groups{display:grid;gap:16px}
.woo-choice-row{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr) auto!important;
}
.woo-choice-row b:empty{display:none}
.modifier-description{
  margin:-2px 0 5px;
  color:#777;
  font-size:13px;
}
.modifier-text-group,
.modifier-special-instructions{
  display:grid;
  gap:7px;
}
.modifier-text-group label,
.modifier-special-instructions label{
  font-weight:800;
}
.modifier-text-group textarea,
.modifier-special-instructions textarea{
  width:100%;
  min-height:86px;
  resize:vertical;
  border:1px solid #ddd;
  border-radius:12px;
  padding:12px;
  font:inherit;
  box-sizing:border-box;
}
.woo-stepper .modifier-stepper-info b{
  color:#111;
}


/* ===== Fase 1.5.27 — compatibilidad visual del checkout ===== */
.v13-page img{
  max-width:100%;
  height:auto;
}
.v13-cart-image{
  overflow:hidden;
}
.v13-cart-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
@media(max-width:720px){
  .v13-page{
    width:100%;
    overflow-x:hidden;
  }
}


/* ===== Fase 1.5.28 — sincronización con tiempo límite y fallback ===== */
.modifier-sync-status[data-type="error"]{
  display:flex!important;
  align-items:flex-start!important;
  line-height:1.35!important;
  font-size:13px!important;
  border-color:#efb3b3!important;
  background:#fff6f6!important;
  color:#8F0000!important;
}
.modifier-sync-status[data-type="error"] .modifier-sync-spinner{
  display:none!important;
}


/* ===== Fase 1.5.29 — ocultar correctamente el indicador de sincronización ===== */
.modifier-sync-status[hidden]{
  display:none!important;
}

/* Cuando las opciones ya fueron cargadas, el bloque no debe ocupar espacio */
.modifier-sync-status.is-complete{
  display:none!important;
}


/* Fase 1.5.31 — sincronización directa y fallback */
.modifier-sync-status[data-type="error"]{
  display:flex!important;
  border-color:#e7b2b2!important;
  background:#fff6f6!important;
  color:#8F0000!important;
}
.modifier-sync-status[data-type="error"] .modifier-sync-spinner{
  display:none!important;
}


/* ===== Fase 1.5.33 — destacados, Google y cinco artículos en PC ===== */
.rank{
  background:#8F0000!important;
  color:#fff!important;
  border-radius:5px!important;
}

/* Cinco artículos visibles en escritorio */
@media(min-width:1200px){
  #featuredScroller>.featured-card{
    flex:0 0 calc((100% - 88px)/5)!important;
    min-width:0!important;
  }
}

/* Mantener botón + por encima de imagen y carrusel */
#featuredScroller .featured-image{
  position:relative!important;
}
#featuredScroller .quick-add,
#featuredScroller .open-modal-btn{
  display:flex!important;
  visibility:visible!important;
  opacity:1!important;
  pointer-events:auto!important;
  z-index:100!important;
  cursor:pointer!important;
}

/* Bloque de calificación siempre visible */
.google-rating,
.rating-card{
  visibility:visible!important;
  opacity:1!important;
}


/* ===== Fase 1.5.34 — carrito móvil tipo Uber Eats ===== */
@media(max-width:720px){
  .mobile-floating-cart.mobile-floating-cart--uber{
    display:inline-flex!important;
    position:fixed!important;
    left:50%!important;
    bottom:82px!important;
    transform:translateX(-50%)!important;
    width:auto!important;
    min-width:260px!important;
    max-width:calc(100vw - 40px)!important;
    height:58px!important;
    padding:0 24px!important;
    gap:10px!important;
    align-items:center!important;
    justify-content:center!important;
    border:0!important;
    border-radius:999px!important;
    background:#000!important;
    color:#fff!important;
    font-size:18px!important;
    font-weight:700!important;
    line-height:1!important;
    box-shadow:0 12px 30px rgba(0,0,0,.32)!important;
    z-index:145!important;
    white-space:nowrap!important;
  }

  .mobile-floating-cart.mobile-floating-cart--uber:hover,
  .mobile-floating-cart.mobile-floating-cart--uber:active{
    background:#000!important;
    color:#fff!important;
  }

  .mobile-cart-icon{
    width:28px!important;
    height:28px!important;
    flex:0 0 28px!important;
  }

  .mobile-cart-separator{
    font-size:20px!important;
    line-height:1!important;
  }
}

@media(max-width:390px){
  .mobile-floating-cart.mobile-floating-cart--uber{
    min-width:230px!important;
    height:54px!important;
    padding:0 19px!important;
    font-size:17px!important;
  }
}


/* ===== Fase 1.5.35 — el cargador nunca queda atorado ===== */
.modifier-sync-status[hidden],
.modifier-sync-status.is-complete{
  display:none!important;
}
.modifier-sync-status[data-type="loading"]{
  min-height:44px!important;
}
.modifier-sync-status[data-type="error"]{
  display:flex!important;
  align-items:flex-start!important;
  padding:11px 13px!important;
  line-height:1.35!important;
  font-size:13px!important;
  border-color:#e7b2b2!important;
  background:#fff6f6!important;
  color:#8F0000!important;
}
.modifier-sync-status[data-type="error"] .modifier-sync-spinner{
  display:none!important;
}


/* ===== Fase 1.5.36 — modificadores desde exportaciones oficiales ===== */
.modifier-sync-status[hidden],
.modifier-sync-status.is-complete{
  display:none!important;
}
.woo-modifier-groups{
  display:grid!important;
  gap:18px!important;
}
.woo-single-group,
.woo-quantity-group{
  border:0!important;
  border-top:1px solid #ededed!important;
  border-radius:0!important;
  padding:16px 0 0!important;
}
.woo-single-group:first-child,
.woo-quantity-group:first-child{
  border-top:0!important;
  padding-top:0!important;
}
.woo-choice-row{
  min-height:48px!important;
}
.woo-stepper{
  min-height:54px!important;
}


/* ===== Fase 1.5.37 — botón + destacado y modal operativo ===== */
#featuredScroller .featured-card{
  position:relative!important;
}
#featuredScroller .featured-image{
  position:relative!important;
}
#featuredScroller .open-modal-btn,
#featuredScroller .quick-add{
  pointer-events:auto!important;
  touch-action:manipulation!important;
  user-select:none!important;
  -webkit-user-select:none!important;
  cursor:pointer!important;
  z-index:999!important;
}


/* ============================================================
   Fase 1.5.40 — carrito flotante móvil estilo Uber Eats
   ============================================================ */

.mobile-floating-cart{
  display:none;
}

@media (max-width: 760px){
  body{
    padding-bottom:150px!important;
  }

  .mobile-floating-cart.mobile-floating-cart--uber{
    display:inline-flex!important;
    position:fixed!important;
    left:50%!important;
    bottom:88px!important;
    transform:translateX(-50%)!important;
    width:auto!important;
    min-width:286px!important;
    max-width:calc(100vw - 34px)!important;
    height:62px!important;
    padding:0 26px!important;
    margin:0!important;
    align-items:center!important;
    justify-content:center!important;
    gap:10px!important;
    border:0!important;
    border-radius:999px!important;
    background:#000!important;
    color:#fff!important;
    font-family:inherit!important;
    font-size:19px!important;
    font-weight:700!important;
    line-height:1!important;
    letter-spacing:0!important;
    box-shadow:0 12px 32px rgba(0,0,0,.34)!important;
    z-index:2147483000!important;
    cursor:pointer!important;
    white-space:nowrap!important;
    appearance:none!important;
    -webkit-appearance:none!important;
    -webkit-tap-highlight-color:transparent!important;
    touch-action:manipulation!important;
  }

  .mobile-floating-cart.mobile-floating-cart--uber:hover,
  .mobile-floating-cart.mobile-floating-cart--uber:focus,
  .mobile-floating-cart.mobile-floating-cart--uber:active{
    background:#000!important;
    color:#fff!important;
    transform:translateX(-50%) scale(.985)!important;
    outline:none!important;
  }

  .mobile-floating-cart__icon{
    width:29px!important;
    height:29px!important;
    min-width:29px!important;
    flex:0 0 29px!important;
    display:block!important;
  }

  .mobile-floating-cart__text{
    display:inline-block!important;
    font-size:inherit!important;
    font-weight:inherit!important;
  }

  .mobile-floating-cart__dot{
    display:inline-block!important;
    margin:0 1px!important;
    font-size:20px!important;
    line-height:1!important;
  }

  .mobile-floating-cart__count{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-width:18px!important;
    font-size:inherit!important;
    font-weight:inherit!important;
  }

  /* Mantiene visible el carrito por encima de la barra inferior fija */
  .mobile-bottom-nav,
  .bottom-nav,
  .app-bottom-nav{
    z-index:2147482000!important;
  }

  /* Oculta botones flotantes anteriores duplicados */
  .floating-cart:not(.mobile-floating-cart),
  .mobile-cart-pill:not(.mobile-floating-cart),
  .cart-floating-button:not(.mobile-floating-cart){
    display:none!important;
  }
}

@media (max-width: 390px){
  .mobile-floating-cart.mobile-floating-cart--uber{
    min-width:250px!important;
    max-width:calc(100vw - 28px)!important;
    height:58px!important;
    padding:0 22px!important;
    font-size:18px!important;
    bottom:84px!important;
  }

  .mobile-floating-cart__icon{
    width:27px!important;
    height:27px!important;
    min-width:27px!important;
  }
}

@media (min-width: 761px){
  .mobile-floating-cart{
    display:none!important;
  }
}


/* ============================================================
   Fase 1.5.41 — carrito móvil visible y sin menú inferior
   ============================================================ */
@media (max-width:760px){
  html, body{
    padding-bottom:96px!important;
  }

  .mobile-bottom-nav,
  nav.mobile-bottom-nav,
  .bottom-nav,
  .app-bottom-nav,
  .mobile-nav-bottom{
    display:none!important;
    visibility:hidden!important;
    height:0!important;
    min-height:0!important;
    overflow:hidden!important;
  }

  .mobile-floating-cart.mobile-floating-cart--uber{
    display:inline-flex!important;
    visibility:visible!important;
    opacity:1!important;
    position:fixed!important;
    left:50%!important;
    right:auto!important;
    bottom:24px!important;
    top:auto!important;
    transform:translateX(-50%)!important;
    width:auto!important;
    min-width:286px!important;
    max-width:calc(100vw - 32px)!important;
    height:60px!important;
    padding:0 26px!important;
    margin:0!important;
    align-items:center!important;
    justify-content:center!important;
    gap:10px!important;
    border:0!important;
    border-radius:999px!important;
    background:#000!important;
    color:#fff!important;
    font-size:19px!important;
    font-weight:700!important;
    line-height:1!important;
    box-shadow:0 12px 34px rgba(0,0,0,.38)!important;
    z-index:2147483646!important;
    pointer-events:auto!important;
    cursor:pointer!important;
    white-space:nowrap!important;
    appearance:none!important;
    -webkit-appearance:none!important;
  }

  .mobile-floating-cart.mobile-floating-cart--uber[hidden]{
    display:inline-flex!important;
  }

  .mobile-floating-cart__icon{
    display:block!important;
    width:29px!important;
    height:29px!important;
    min-width:29px!important;
    color:#fff!important;
  }

  .mobile-floating-cart__text,
  .mobile-floating-cart__dot,
  .mobile-floating-cart__count{
    display:inline-flex!important;
    color:#fff!important;
    align-items:center!important;
  }
}

@media (max-width:390px){
  .mobile-floating-cart.mobile-floating-cart--uber{
    min-width:246px!important;
    max-width:calc(100vw - 24px)!important;
    height:56px!important;
    padding:0 21px!important;
    font-size:17px!important;
    bottom:18px!important;
  }
}

@media (min-width:761px){
  .mobile-floating-cart.mobile-floating-cart--uber{
    display:none!important;
  }
}


/* ============================================================
   Fase 1.5.42
   - contador visible del carrito móvil
   - carrito superior oculto en móvil
   - tarjetas y botones + clicables en PC
   ============================================================ */
@media (max-width:760px){
  /* Quitar por completo el carrito de la cabecera móvil */
  .ue-actions .ue-cart-button,
  .header-actions .cart-button,
  .site-header .cart-button,
  .ue-mobile-menu a[href*="checkout"],
  .ue-mobile-menu a[href*="carrito"]{
    display:none!important;
    visibility:hidden!important;
  }

  .mobile-floating-cart__count{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-width:28px!important;
    height:28px!important;
    padding:0 8px!important;
    border-radius:999px!important;
    background:#fff!important;
    color:#000!important;
    font-size:15px!important;
    font-weight:800!important;
    line-height:1!important;
    font-family:Arial,Helvetica,sans-serif!important;
    text-indent:0!important;
    overflow:visible!important;
    white-space:nowrap!important;
  }

  .mobile-floating-cart__dot{
    color:#fff!important;
  }
}

/* En escritorio toda la tarjeta y el botón + abren el producto */
@media (min-width:761px){
  .featured-card.js-open-product,
  .product-card.js-open-product{
    cursor:pointer!important;
  }

  .featured-card.js-open-product .open-modal-btn,
  .featured-card.js-open-product .quick-add,
  .product-card.js-open-product .open-modal-btn,
  .product-card.js-open-product .add-circle{
    pointer-events:auto!important;
    cursor:pointer!important;
    z-index:1000!important;
  }
}


/* ============================================================
   Fase 1.5.43 — interacción de productos en escritorio
   ============================================================ */
@media (min-width:761px){
  .featured-card.js-open-product,
  .product-card.js-open-product,
  .featured-card.js-open-product *,
  .product-card.js-open-product *{
    cursor:pointer!important;
  }

  .featured-card.js-open-product,
  .product-card.js-open-product{
    pointer-events:auto!important;
    position:relative!important;
  }

  .featured-card.js-open-product .open-modal-btn,
  .featured-card.js-open-product .quick-add,
  .product-card.js-open-product .open-modal-btn,
  .product-card.js-open-product .add-circle{
    pointer-events:auto!important;
    z-index:9999!important;
  }
}


/* ============================================================
   Fase 1.5.44 — apertura garantizada del modal en PC
   ============================================================ */
@media (min-width:761px){
  .featured-card.js-open-product,
  .product-card.js-open-product{
    pointer-events:auto!important;
    cursor:pointer!important;
    position:relative!important;
  }

  .featured-card.js-open-product .featured-image,
  .product-card.js-open-product .product-media,
  .featured-card.js-open-product img,
  .product-card.js-open-product img{
    pointer-events:auto!important;
    cursor:pointer!important;
  }

  .featured-card.js-open-product .open-modal-btn,
  .featured-card.js-open-product .quick-add,
  .product-card.js-open-product .open-modal-btn,
  .product-card.js-open-product .add-circle{
    display:flex!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
    cursor:pointer!important;
    z-index:2147480000!important;
  }
}


/* Fase 1.5.45 */
@media (min-width:761px){
  #featuredScroller .featured-card,
  #featuredScroller .featured-image,
  #featuredScroller .quick-add{
    pointer-events:auto!important;
    cursor:pointer!important;
  }
}


/* ============================================================
   Fase 1.5.46 — modal restablecido para todos los productos
   ============================================================ */
.featured-card.js-open-product,
.product-card.js-open-product,
.featured-card.js-open-product .featured-image,
.product-card.js-open-product .product-media,
.featured-card.js-open-product img,
.product-card.js-open-product img,
.featured-card.js-open-product .open-modal-btn,
.product-card.js-open-product .open-modal-btn,
.featured-card.js-open-product .quick-add,
.product-card.js-open-product .add-circle{
  pointer-events:auto!important;
  cursor:pointer!important;
}

.featured-card.js-open-product .open-modal-btn,
.product-card.js-open-product .open-modal-btn,
.featured-card.js-open-product .quick-add,
.product-card.js-open-product .add-circle{
  display:flex!important;
  visibility:visible!important;
  opacity:1!important;
  z-index:2147480000!important;
}


/* Fase 1.5.47 — Artículos destacados clicables en PC */
@media (min-width:761px){
  #featuredScroller{
    cursor:default!important;
    touch-action:auto!important;
  }
  #featuredScroller .featured-card,
  #featuredScroller .featured-image,
  #featuredScroller .quick-add,
  #featuredScroller img{
    pointer-events:auto!important;
    cursor:pointer!important;
  }
}


/* Fase 1.5.48 — interacción estable de tarjetas y drawer */
.featured-card.js-open-product,
.product-card.js-open-product,
.featured-card.js-open-product .featured-image,
.product-card.js-open-product .product-media,
.featured-card.js-open-product img,
.product-card.js-open-product img,
.open-modal-btn,
.quick-add,
.add-circle{
  pointer-events:auto!important;
  cursor:pointer!important;
}

.cart-drawer{
  pointer-events:none;
}
.cart-drawer.is-open{
  pointer-events:auto;
}


/* ==========================================================
   LCAM DELIVERY 2.0.0 — BLOQUE DEFINITIVO
   ========================================================== */

.brand-logo{
  width:58px!important;
  height:58px!important;
  padding:4px!important;
  object-fit:contain!important;
  background:#fff!important;
  border:1px solid #e7e7e7!important;
  border-radius:10px!important;
}

.lcam-version-badge{
  position:fixed;
  right:12px;
  bottom:12px;
  z-index:90;
  padding:5px 9px;
  border-radius:999px;
  background:rgba(255,255,255,.95);
  border:1px solid #ddd;
  color:#555;
  font-size:11px;
  font-weight:800;
  box-shadow:0 2px 8px rgba(0,0,0,.08);
}

.product-list{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:20px!important;
}

.product-card{
  position:relative!important;
  min-width:0!important;
}

.product-media{
  position:relative!important;
}

.product-media .add-circle,
.featured-card .quick-add,
.open-modal-btn{
  position:absolute!important;
  right:10px!important;
  bottom:10px!important;
  top:auto!important;
  left:auto!important;
  transform:none!important;
  width:48px!important;
  min-width:48px!important;
  height:48px!important;
  margin:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  border:1px solid #ddd!important;
  border-radius:50%!important;
  background:#fff!important;
  color:#111!important;
  font-size:31px!important;
  line-height:1!important;
  font-weight:700!important;
  box-shadow:0 4px 14px rgba(0,0,0,.16)!important;
  z-index:4!important;
}

.product-modal{
  z-index:10000!important;
}

.cart-drawer{
  z-index:11000!important;
}

body.modal-open .featured-card .quick-add,
body.modal-open .featured-card .open-modal-btn,
body.modal-open .product-card .add-circle,
body.modal-open .product-card .open-modal-btn{
  display:none!important;
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}

.modifier-stepper{
  position:relative!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:14px!important;
  width:100%!important;
  overflow:hidden!important;
}

.modifier-stepper-controls{
  position:static!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:8px!important;
  min-width:92px!important;
  z-index:auto!important;
}

.modifier-stepper-controls .stepper-btn{
  position:static!important;
  inset:auto!important;
  transform:none!important;
  float:none!important;
  width:40px!important;
  min-width:40px!important;
  height:40px!important;
  margin:0!important;
  display:grid!important;
  place-items:center!important;
  border-radius:50%!important;
  z-index:auto!important;
  box-shadow:none!important;
}

.modifier-stepper-controls .stepper-btn[hidden]{
  display:none!important;
}

.modifier-stepper-controls .stepper-value{
  position:static!important;
  min-width:22px!important;
  text-align:center!important;
}

@media(max-width:760px){
  .product-list{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:16px 12px!important;
  }

  .product-card{
    display:flex!important;
    flex-direction:column!important;
    height:auto!important;
    min-width:0!important;
    border:0!important;
    border-radius:0!important;
    overflow:visible!important;
    background:transparent!important;
  }

  .product-media{
    order:1!important;
    width:100%!important;
    height:auto!important;
    aspect-ratio:1/1!important;
    overflow:hidden!important;
    border-radius:16px!important;
    background:#f4f4f4!important;
  }

  .product-media img{
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
  }

  .product-info{
    order:2!important;
    min-width:0!important;
    padding:9px 2px 0!important;
  }

  .product-info h3{
    display:-webkit-box!important;
    -webkit-box-orient:vertical!important;
    -webkit-line-clamp:2!important;
    overflow:hidden!important;
    margin:0 0 5px!important;
    font-size:16px!important;
    line-height:1.18!important;
  }

  .product-info strong{
    display:block!important;
    margin-bottom:5px!important;
    font-size:15px!important;
  }

  .product-info p{
    display:-webkit-box!important;
    -webkit-box-orient:vertical!important;
    -webkit-line-clamp:2!important;
    overflow:hidden!important;
    font-size:13px!important;
  }

  .product-media .add-circle{
    right:8px!important;
    bottom:8px!important;
    width:46px!important;
    min-width:46px!important;
    height:46px!important;
    font-size:29px!important;
  }

  .modifier-stepper{
    grid-template-columns:minmax(0,1fr) 104px!important;
  }

  .lcam-version-badge{
    right:8px;
    bottom:8px;
    font-size:10px;
  }
}


/* ============================================================
   LCAM 2.6.0 — MOBILE HEADER + PRODUCT PLUS ROOT FIX
   These rules are intentionally last to override accumulated phases.
   ============================================================ */

@media (max-width:760px){

  /* Header móvil: solo logo, carrito y Entrar/Mi cuenta */
  .site-header.ue-header{
    position:sticky!important;
    top:0!important;
    z-index:9000!important;
    background:#fff!important;
  }

  .ue-header-inner{
    min-height:64px!important;
    height:64px!important;
    padding:8px 12px!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto auto!important;
    align-items:center!important;
    gap:8px!important;
  }

  .ue-menu-button,
  .ue-address-pill,
  .ue-mobile-menu,
  .brand-copy,
  .ue-action-link{
    display:none!important;
    visibility:hidden!important;
  }

  .ue-brand{
    min-width:0!important;
    width:max-content!important;
    max-width:100%!important;
    display:flex!important;
    align-items:center!important;
    gap:0!important;
    overflow:visible!important;
  }

  .ue-brand .brand-logo{
    width:50px!important;
    height:50px!important;
    min-width:50px!important;
    object-fit:contain!important;
    border-radius:12px!important;
    background:#fff!important;
    box-shadow:0 1px 7px rgba(0,0,0,.08)!important;
  }

  .header-actions.ue-actions{
    display:contents!important;
  }

  .ue-actions .ue-cart-button,
  .header-actions .cart-button,
  .site-header .cart-button{
    display:inline-flex!important;
    visibility:visible!important;
    width:auto!important;
    min-width:44px!important;
    height:44px!important;
    padding:0 12px!important;
    gap:7px!important;
    justify-content:center!important;
    border-radius:999px!important;
    background:#a90000!important;
    color:#fff!important;
  }

  .ue-cart-button .ue-cart-icon{
    display:inline-flex!important;
    font-size:16px!important;
  }

  .ue-cart-button span:not(.ue-cart-icon){
    display:none!important;
  }

  .ue-cart-button b{
    display:grid!important;
    min-width:22px!important;
    height:22px!important;
    padding:0 5px!important;
    border-radius:999px!important;
    background:#fff!important;
    color:#a90000!important;
    place-items:center!important;
    font-size:12px!important;
  }

  .ue-login,
  .ue-account{
    display:inline-flex!important;
    visibility:visible!important;
    height:44px!important;
    padding:0 13px!important;
    border-radius:999px!important;
    background:#f3f3f3!important;
    color:#111!important;
    font-size:13px!important;
    font-weight:800!important;
    white-space:nowrap!important;
  }

  /* No menú inferior fijo */
  .mobile-bottom-nav,
  nav.mobile-bottom-nav,
  .mobile-nav,
  .bottom-navigation,
  .mobile-nav-bottom{
    display:none!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }

  /* Cards create their own stacking context */
  .product-card,
  .featured-card{
    position:relative!important;
    isolation:isolate!important;
    overflow:hidden!important;
  }

  /*
   * Root fix for detached giant + buttons:
   * every product add control is anchored to its own card,
   * never fixed/sticky, never translated outside the card.
   */
  .product-card > .add-circle,
  .product-card > .open-modal-btn,
  .product-card .product-media > .add-circle,
  .product-card .product-media > .open-modal-btn,
  .featured-card > .quick-add,
  .featured-card > .open-modal-btn,
  .featured-card .featured-media > .quick-add,
  .featured-card .featured-media > .open-modal-btn{
    position:absolute!important;
    top:auto!important;
    left:auto!important;
    right:12px!important;
    bottom:12px!important;
    inset:auto 12px 12px auto!important;
    transform:none!important;
    translate:none!important;
    margin:0!important;
    float:none!important;
    width:52px!important;
    min-width:52px!important;
    max-width:52px!important;
    height:52px!important;
    min-height:52px!important;
    max-height:52px!important;
    border-radius:50%!important;
    display:grid!important;
    place-items:center!important;
    z-index:5!important;
    overflow:hidden!important;
    pointer-events:auto!important;
    background:#fff!important;
    border:1px solid rgba(0,0,0,.12)!important;
    color:#111!important;
    box-shadow:0 6px 18px rgba(0,0,0,.22)!important;
    font-size:0!important;
    line-height:1!important;
  }

  .product-card > .add-circle::before,
  .product-card > .open-modal-btn::before,
  .product-card .product-media > .add-circle::before,
  .product-card .product-media > .open-modal-btn::before,
  .featured-card > .quick-add::before,
  .featured-card > .open-modal-btn::before,
  .featured-card .featured-media > .quick-add::before,
  .featured-card .featured-media > .open-modal-btn::before{
    content:'+'!important;
    display:block!important;
    position:static!important;
    transform:none!important;
    width:auto!important;
    height:auto!important;
    margin:0!important;
    color:#111!important;
    font:800 34px/1 Arial,Helvetica,sans-serif!important;
  }

  .product-card > .add-circle::after,
  .product-card > .open-modal-btn::after,
  .featured-card > .quick-add::after,
  .featured-card > .open-modal-btn::after{
    content:none!important;
    display:none!important;
  }

  /* Hide duplicate nested plus glyphs/icons */
  .product-card .add-circle > *,
  .product-card .open-modal-btn > *,
  .featured-card .quick-add > *,
  .featured-card .open-modal-btn > *{
    display:none!important;
  }

  /* Never show product-card + controls above a modal/drawer */
  body.modal-open .product-card .add-circle,
  body.modal-open .product-card .open-modal-btn,
  body.modal-open .featured-card .quick-add,
  body.modal-open .featured-card .open-modal-btn,
  .product-modal[aria-hidden="false"] ~ * .add-circle{
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
  }

  .product-modal{
    z-index:20000!important;
  }

  .cart-drawer{
    z-index:21000!important;
  }

  /* Floating cart sits above content, below open modal */
  .mobile-floating-cart.mobile-floating-cart--uber{
    z-index:8000!important;
    bottom:18px!important;
  }
}

@media (min-width:761px){
  /* Desktop keeps normal header and prevents mobile rules leaking */
  .ue-menu-button{
    display:flex;
  }
}


/* ============================================================
   LCAM 2.6.1 — ocultar completamente encabezado en móviles
   ============================================================ */
@media (max-width:760px){
  .site-header,
  .site-header.ue-header,
  header.site-header,
  .ue-header,
  .ue-header-inner{
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
    height:0!important;
    min-height:0!important;
    max-height:0!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    overflow:hidden!important;
  }

  body{
    padding-top:0!important;
  }

  main,
  .main-content,
  .page-content,
  .app-shell,
  .content-wrapper{
    margin-top:0!important;
    padding-top:0!important;
  }
}


/* ============================================================
   LCAM 2.6.2 — MOBILE HEADER ABSOLUTE OVERRIDE
   ============================================================ */
@media screen and (max-width:900px){
  html body.lcam-app > header.site-header,
  html body.lcam-app > .site-header,
  html body > header.site-header.ue-header,
  header.site-header,
  header.ue-header,
  .site-header.ue-header,
  .ue-header,
  .ue-header-inner,
  .header-inner.ue-header-inner{
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
    position:absolute!important;
    top:0!important;
    left:0!important;
    width:0!important;
    height:0!important;
    min-width:0!important;
    min-height:0!important;
    max-width:0!important;
    max-height:0!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    overflow:hidden!important;
    z-index:-1!important;
  }

  html body.lcam-app{
    padding-top:0!important;
    margin-top:0!important;
  }

  html body.lcam-app > main,
  html body.lcam-app > .app-shell,
  html body.lcam-app > .main-content{
    margin-top:0!important;
    padding-top:0!important;
  }
}


/* ============================================================
   LCAM 2.6.3 — menú de categorías anclado en móvil
   ============================================================ */
@media screen and (max-width:900px){
  .mobile-discovery-tabs{
    position:sticky!important;
    top:0!important;
    z-index:15000!important;
    width:100%!important;
    max-width:100vw!important;
    margin:0!important;
    padding:0 16px!important;
    background:#fff!important;
    border-top:1px solid #eee!important;
    border-bottom:1px solid #ddd!important;
    box-shadow:0 2px 10px rgba(0,0,0,.08)!important;
    overscroll-behavior-x:contain!important;
    -webkit-overflow-scrolling:touch!important;
  }

  .mobile-discovery-tabs.lcam-categories-pinned{
    position:fixed!important;
    top:0!important;
    left:0!important;
    right:0!important;
    width:100vw!important;
    z-index:25000!important;
    margin:0!important;
  }

  .lcam-categories-placeholder{
    display:block;
    width:100%;
    height:0;
    margin:0;
    padding:0;
    border:0;
  }

  .lcam-categories-placeholder.is-active{
    height:49px;
  }

  .product-section,
  .category-product-section{
    scroll-margin-top:58px!important;
  }
}


/* ============================================================
   LCAM 2.6.4 — corrección definitiva categorías móviles
   La cabecera móvil está oculta, por lo tanto el menú usa sticky top:0.
   Se anula el modo fixed anterior que dejaba un espacio superior.
   ============================================================ */
@media screen and (max-width:900px){
  .mobile-discovery-tabs,
  .mobile-discovery-tabs.lcam-categories-pinned{
    position:sticky!important;
    top:0!important;
    left:auto!important;
    right:auto!important;
    width:100%!important;
    max-width:100vw!important;
    margin:0!important;
    transform:none!important;
    translate:none!important;
    z-index:25000!important;
    background:#fff!important;
  }

  .lcam-categories-placeholder,
  .lcam-categories-placeholder.is-active{
    display:none!important;
    height:0!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
  }

  .product-section,
  .category-product-section{
    scroll-margin-top:56px!important;
  }
}


/* ============================================================
   LCAM 2.6.5 — MENÚ REAL DE CATEGORÍAS ANCLADO EN MÓVIL
   El menú visible no es .mobile-discovery-tabs.
   Su estructura real es:
   .menu-sidebar > .sidebar-sticky > #categoryNav
   ============================================================ */
@media screen and (max-width:900px){

  /* Evitar que un ancestro rompa position:sticky en Safari */
  .menu-layout,
  .restaurant-shell,
  main,
  .menu-content{
    overflow:visible!important;
    transform:none!important;
    filter:none!important;
    perspective:none!important;
    contain:none!important;
  }

  /* Elemento que realmente debe quedar anclado */
  .menu-sidebar{
    display:block!important;
    position:sticky!important;
    position:-webkit-sticky!important;
    top:0!important;
    left:auto!important;
    right:auto!important;
    z-index:30000!important;
    width:100%!important;
    max-width:100vw!important;
    margin:0!important;
    padding:0!important;
    background:#fff!important;
    border-top:1px solid #ececec!important;
    border-bottom:1px solid #dcdcdc!important;
    box-shadow:0 3px 12px rgba(0,0,0,.10)!important;
    transform:none!important;
    translate:none!important;
    overflow:visible!important;
    isolation:isolate!important;
  }

  .menu-sidebar .sidebar-sticky{
    position:static!important;
    top:auto!important;
    width:100%!important;
    margin:0!important;
    padding:0 14px!important;
    background:#fff!important;
    overflow:hidden!important;
  }

  .menu-sidebar .sidebar-sticky h3,
  .menu-sidebar .sidebar-sticky small{
    display:none!important;
  }

  #categoryNav,
  .menu-sidebar .sidebar-sticky nav{
    display:flex!important;
    flex-direction:row!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    gap:24px!important;
    width:100%!important;
    min-height:52px!important;
    margin:0!important;
    padding:0!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    white-space:nowrap!important;
    scrollbar-width:none!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-x:contain!important;
    background:#fff!important;
  }

  #categoryNav::-webkit-scrollbar,
  .menu-sidebar .sidebar-sticky nav::-webkit-scrollbar{
    display:none!important;
  }

  #categoryNav .section-spy-link,
  .menu-sidebar .sidebar-sticky nav a{
    display:inline-flex!important;
    flex:0 0 auto!important;
    align-items:center!important;
    min-height:52px!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    color:#646464!important;
    font-size:16px!important;
    font-weight:500!important;
    position:relative!important;
  }

  #categoryNav .section-spy-link.active,
  #categoryNav .section-spy-link[aria-current="true"],
  .menu-sidebar .sidebar-sticky nav a.active{
    color:#111!important;
    font-weight:800!important;
    background:transparent!important;
  }

  #categoryNav .section-spy-link.active::before,
  #categoryNav .section-spy-link[aria-current="true"]::before,
  .menu-sidebar .sidebar-sticky nav a.active::before{
    display:none!important;
  }

  #categoryNav .section-spy-link.active::after,
  #categoryNav .section-spy-link[aria-current="true"]::after,
  .menu-sidebar .sidebar-sticky nav a.active::after{
    content:""!important;
    position:absolute!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    height:3px!important;
    background:#111!important;
    border-radius:3px 3px 0 0!important;
  }

  .product-section{
    scroll-margin-top:60px!important;
  }

  /* Anular por completo las pruebas anteriores sobre selector inexistente */
  .mobile-discovery-tabs,
  .mobile-discovery-tabs.lcam-categories-pinned,
  .lcam-categories-placeholder{
    display:none!important;
  }
}


/* ============================================================
   LCAM 2.6.8 — Más Vendidos primero, implementación segura
   Solo móvil. Sin reordenamiento JavaScript ni MutationObserver.
   ============================================================ */

/* Por defecto/escritorio, la sección móvil no existe visualmente. */
.mobile-best-sellers-section,
.mobile-best-sellers-nav-link{
  display:none!important;
}

@media screen and (max-width:900px){
  /* Mostrar la sección móvil generada por PHP. */
  .mobile-best-sellers-section{
    display:block!important;
  }

  .mobile-best-sellers-nav-link{
    display:inline-flex!important;
  }

  /* Evitar duplicar Más Vendidos en móvil. */
  .original-best-sellers-section,
  .original-best-sellers-nav-link{
    display:none!important;
  }

  /* Una sola fila horizontal de productos. */
  .mobile-best-sellers-row{
    display:flex!important;
    flex-direction:row!important;
    flex-wrap:nowrap!important;
    gap:14px!important;
    width:100%!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    padding:2px 16px 16px!important;
    scroll-snap-type:x proximity!important;
    overscroll-behavior-x:contain!important;
    -webkit-overflow-scrolling:touch!important;
    scrollbar-width:none!important;
  }

  .mobile-best-sellers-row::-webkit-scrollbar{
    display:none!important;
  }

  .mobile-best-sellers-row .product-card{
    flex:0 0 min(82vw,340px)!important;
    width:min(82vw,340px)!important;
    max-width:min(82vw,340px)!important;
    margin:0!important;
    scroll-snap-align:start!important;
  }

  /* La primera sección ya es Más Vendidos por orden HTML.
     Artículos destacados queda inmediatamente después. */
  .mobile-best-sellers-section{
    margin-top:0!important;
  }

  #mobile-best-sellers{
    scroll-margin-top:58px!important;
  }
}


/* ============================================================
   LCAM 2.6.9 — Más Vendidos estilo lista móvil
   Inspirado en la referencia proporcionada:
   texto a la izquierda, imagen cuadrada a la derecha y botón +.
   Solo afecta la sección móvil generada por PHP.
   ============================================================ */
@media screen and (max-width:900px){

  .mobile-best-sellers-section{
    display:block!important;
    padding:0!important;
    margin:0!important;
    background:#fff!important;
  }

  .mobile-best-sellers-section .section-heading{
    padding:18px 20px 10px!important;
    margin:0!important;
    border:0!important;
  }

  .mobile-best-sellers-section .section-heading h2{
    margin:0!important;
    font-size:30px!important;
    line-height:1.08!important;
    font-weight:900!important;
    color:#111!important;
  }

  .mobile-best-sellers-section .section-heading p{
    margin:4px 0 0!important;
    font-size:14px!important;
    color:#747474!important;
  }

  /* Una sola columna vertical */
  .mobile-best-sellers-row{
    display:block!important;
    width:100%!important;
    overflow:visible!important;
    padding:0 20px!important;
    margin:0!important;
    scroll-snap-type:none!important;
  }

  .mobile-best-sellers-row .product-card{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 156px!important;
    align-items:center!important;
    gap:18px!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin:0!important;
    padding:20px 0!important;
    border:0!important;
    border-bottom:1px solid #ededed!important;
    border-radius:0!important;
    background:#fff!important;
    box-shadow:none!important;
    overflow:visible!important;
    scroll-snap-align:none!important;
    isolation:isolate!important;
  }

  .mobile-best-sellers-row .product-card:last-child{
    border-bottom:0!important;
  }

  .mobile-best-sellers-row .product-info{
    display:block!important;
    min-width:0!important;
    padding:0!important;
    margin:0!important;
    order:1!important;
  }

  .mobile-best-sellers-row .product-info h3{
    display:-webkit-box!important;
    -webkit-box-orient:vertical!important;
    -webkit-line-clamp:2!important;
    overflow:hidden!important;
    margin:0 0 7px!important;
    color:#111!important;
    font-size:24px!important;
    line-height:1.12!important;
    font-weight:850!important;
    letter-spacing:-.02em!important;
  }

  .mobile-best-sellers-row .product-info strong{
    display:block!important;
    margin:0 0 8px!important;
    color:#111!important;
    font-size:21px!important;
    line-height:1.1!important;
    font-weight:500!important;
  }

  .mobile-best-sellers-row .product-info p{
    display:-webkit-box!important;
    -webkit-box-orient:vertical!important;
    -webkit-line-clamp:3!important;
    overflow:hidden!important;
    margin:0!important;
    color:#6b6b6b!important;
    font-size:17px!important;
    line-height:1.35!important;
  }

  .mobile-best-sellers-row .product-media{
    position:relative!important;
    order:2!important;
    width:156px!important;
    height:156px!important;
    min-width:156px!important;
    min-height:156px!important;
    margin:0!important;
    padding:0!important;
    border-radius:14px!important;
    overflow:hidden!important;
    background:#f2f2f2!important;
    isolation:isolate!important;
  }

  .mobile-best-sellers-row .product-media img{
    display:block!important;
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    border-radius:14px!important;
  }

  .mobile-best-sellers-row .product-media .no-image{
    display:grid!important;
    width:100%!important;
    height:100%!important;
    place-items:center!important;
    font-size:36px!important;
  }

  .mobile-best-sellers-row .product-media .add-circle,
  .mobile-best-sellers-row .product-media .open-modal-btn{
    position:absolute!important;
    right:8px!important;
    bottom:8px!important;
    top:auto!important;
    left:auto!important;
    width:52px!important;
    min-width:52px!important;
    max-width:52px!important;
    height:52px!important;
    min-height:52px!important;
    max-height:52px!important;
    margin:0!important;
    padding:0!important;
    border-radius:50%!important;
    border:1px solid rgba(0,0,0,.12)!important;
    background:#fff!important;
    color:#111!important;
    display:grid!important;
    place-items:center!important;
    font-size:0!important;
    line-height:1!important;
    box-shadow:0 4px 14px rgba(0,0,0,.2)!important;
    transform:none!important;
    translate:none!important;
    z-index:5!important;
  }

  .mobile-best-sellers-row .product-media .add-circle::before,
  .mobile-best-sellers-row .product-media .open-modal-btn::before{
    content:'+'!important;
    display:block!important;
    font:800 34px/1 Arial,Helvetica,sans-serif!important;
    color:#111!important;
  }

  .mobile-best-sellers-row .product-media .add-circle > *,
  .mobile-best-sellers-row .product-media .open-modal-btn > *{
    display:none!important;
  }
}

/* Ajuste para pantallas móviles angostas */
@media screen and (max-width:430px){
  .mobile-best-sellers-row .product-card{
    grid-template-columns:minmax(0,1fr) 138px!important;
    gap:14px!important;
  }

  .mobile-best-sellers-row .product-media{
    width:138px!important;
    height:138px!important;
    min-width:138px!important;
    min-height:138px!important;
  }

  .mobile-best-sellers-row .product-info h3{
    font-size:21px!important;
  }

  .mobile-best-sellers-row .product-info strong{
    font-size:19px!important;
  }

  .mobile-best-sellers-row .product-info p{
    font-size:16px!important;
    -webkit-line-clamp:2!important;
  }
}


/* LCAM 2.6.10 — orden fijo del menú de categorías */
#categoryNav{
  scroll-behavior:smooth!important;
}

@media screen and (max-width:900px){
  #categoryNav{
    scroll-padding-left:14px!important;
  }
}


/* ============================================================
   LCAM 2.6.11 — orden real de secciones y ScrollSpy
   ============================================================ */
#categoryNav .section-spy-link.active,
#categoryNav .section-spy-link[aria-current="true"]{
  color:#111!important;
  font-weight:800!important;
  background:#f1f1f1!important;
}

@media screen and (min-width:901px){
  #categoryNav .section-spy-link.active,
  #categoryNav .section-spy-link[aria-current="true"]{
    border-left:4px solid #111!important;
    padding-left:14px!important;
  }
}

@media screen and (max-width:900px){
  #categoryNav .section-spy-link.active,
  #categoryNav .section-spy-link[aria-current="true"]{
    background:transparent!important;
  }

  #categoryNav .section-spy-link.active::after,
  #categoryNav .section-spy-link[aria-current="true"]::after{
    content:""!important;
    position:absolute!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    height:3px!important;
    background:#111!important;
    border-radius:3px 3px 0 0!important;
  }
}


/* ============================================================
   LCAM 2.6.12 — Más Vendidos en escritorio bajo Exclusivos WEB
   ============================================================ */

/* Escritorio: la copia móvil permanece oculta. */
@media screen and (min-width:901px){
  .mobile-best-sellers-section,
  .mobile-best-sellers-nav-link{
    display:none!important;
  }

  .original-best-sellers-section,
  .desktop-best-sellers-nav-link{
    display:block!important;
  }
}

/* Móvil: conserva el funcionamiento aprobado. */
@media screen and (max-width:900px){
  .mobile-best-sellers-section{
    display:block!important;
  }

  .mobile-best-sellers-nav-link{
    display:inline-flex!important;
  }

  .original-best-sellers-section,
  .desktop-best-sellers-nav-link{
    display:none!important;
  }
}


/* LCAM 2.6.13 — orden exacto aprobado en escritorio
   1. Artículos destacados
   2. Exclusivos WEB
   3. Más Vendidos
   4. Promociones
   5. Por orden
   6. Parrilladas
   7. Tacos y gringas
   8. Complementos
   9. Bebidas
*/


/* ============================================================
   LCAM 2.6.14 — buscador eliminado en web y móvil
   ============================================================ */
.instant-search-form,
#instantSearch,
#searchClear,
#instantSearchEmpty,
.menu-search,
.search-submit,
.search-box,
.product-search,
[data-product-search]{
  display:none!important;
  visibility:hidden!important;
  width:0!important;
  height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  overflow:hidden!important;
}


/* ============================================================
   LCAM 2.6.15 — botón + más pequeño y perfectamente centrado
   ============================================================ */

/* Aplicar a todos los botones de selección de producto */
.add-circle,
.quick-add,
.open-modal-btn,
.product-card .add-circle,
.product-card .open-modal-btn,
.featured-card .quick-add,
.featured-card .open-modal-btn,
.mobile-best-sellers-row .product-media .add-circle,
.mobile-best-sellers-row .product-media .open-modal-btn{
  width:44px!important;
  min-width:44px!important;
  max-width:44px!important;
  height:44px!important;
  min-height:44px!important;
  max-height:44px!important;
  padding:0!important;
  margin:0!important;
  border-radius:50%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  line-height:1!important;
  text-align:center!important;
  font-size:0!important;
  box-sizing:border-box!important;
}

/* El signo + se dibuja en el centro exacto */
.add-circle::before,
.quick-add::before,
.open-modal-btn::before,
.product-card .add-circle::before,
.product-card .open-modal-btn::before,
.featured-card .quick-add::before,
.featured-card .open-modal-btn::before,
.mobile-best-sellers-row .product-media .add-circle::before,
.mobile-best-sellers-row .product-media .open-modal-btn::before{
  content:'+'!important;
  display:block!important;
  position:static!important;
  width:auto!important;
  height:auto!important;
  margin:0!important;
  padding:0!important;
  transform:none!important;
  translate:none!important;
  color:#111!important;
  font-family:Arial,Helvetica,sans-serif!important;
  font-size:28px!important;
  font-weight:800!important;
  line-height:1!important;
  text-align:center!important;
}

/* Evitar duplicados del símbolo */
.add-circle > *,
.quick-add > *,
.open-modal-btn > *{
  display:none!important;
}

/* Ajuste fino para móvil */
@media screen and (max-width:900px){
  .add-circle,
  .quick-add,
  .open-modal-btn,
  .product-card .add-circle,
  .product-card .open-modal-btn,
  .featured-card .quick-add,
  .featured-card .open-modal-btn,
  .mobile-best-sellers-row .product-media .add-circle,
  .mobile-best-sellers-row .product-media .open-modal-btn{
    width:42px!important;
    min-width:42px!important;
    max-width:42px!important;
    height:42px!important;
    min-height:42px!important;
    max-height:42px!important;
  }

  .add-circle::before,
  .quick-add::before,
  .open-modal-btn::before,
  .product-card .add-circle::before,
  .product-card .open-modal-btn::before,
  .featured-card .quick-add::before,
  .featured-card .open-modal-btn::before,
  .mobile-best-sellers-row .product-media .add-circle::before,
  .mobile-best-sellers-row .product-media .open-modal-btn::before{
    font-size:26px!important;
  }
}


/* ============================================================
   LCAM 2.6.16 — corrección definitiva botón +
   - móvil 2 columnas: centrado correcto
   - escritorio doble columna: elimina ++
   - destacados y lista de Más Vendidos se conservan
   ============================================================ */

/* El botón conserva el símbolo real del HTML.
   Se desactiva cualquier pseudo-elemento que lo duplique. */
.add-circle::before,
.quick-add::before,
.open-modal-btn::before,
.product-card .add-circle::before,
.product-card .open-modal-btn::before,
.featured-card .quick-add::before,
.featured-card .open-modal-btn::before,
.mobile-best-sellers-row .product-media .add-circle::before,
.mobile-best-sellers-row .product-media .open-modal-btn::before{
  content:none!important;
  display:none!important;
}

/* Mantener visible el texto + real del botón */
.add-circle,
.quick-add,
.open-modal-btn,
.product-card .add-circle,
.product-card .open-modal-btn,
.featured-card .quick-add,
.featured-card .open-modal-btn,
.mobile-best-sellers-row .product-media .add-circle,
.mobile-best-sellers-row .product-media .open-modal-btn{
  font-size:0!important;
  text-indent:0!important;
  overflow:hidden!important;
}

/* Dibujar un único + mediante un span virtual centrado con line-height exacto */
.add-circle::after,
.quick-add::after,
.open-modal-btn::after,
.product-card .add-circle::after,
.product-card .open-modal-btn::after,
.featured-card .quick-add::after,
.featured-card .open-modal-btn::after,
.mobile-best-sellers-row .product-media .add-circle::after,
.mobile-best-sellers-row .product-media .open-modal-btn::after{
  content:'+'!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  margin:0!important;
  padding:0!important;
  color:#111!important;
  font-family:Arial,Helvetica,sans-serif!important;
  font-size:26px!important;
  font-weight:800!important;
  line-height:1!important;
  text-align:center!important;
  transform:none!important;
  translate:none!important;
  pointer-events:none!important;
}

/* Base común */
.add-circle,
.quick-add,
.open-modal-btn{
  position:absolute!important;
  display:block!important;
  width:42px!important;
  min-width:42px!important;
  max-width:42px!important;
  height:42px!important;
  min-height:42px!important;
  max-height:42px!important;
  padding:0!important;
  margin:0!important;
  border-radius:50%!important;
  box-sizing:border-box!important;
}

/* Móvil: tarjetas en dos columnas */
@media screen and (max-width:900px){
  .product-list .product-card .product-media{
    position:relative!important;
  }

  .product-list .product-card .product-media .add-circle,
  .product-list .product-card .product-media .open-modal-btn{
    right:10px!important;
    bottom:10px!important;
    top:auto!important;
    left:auto!important;
    transform:none!important;
    translate:none!important;
  }

  /* La lista vertical de Más Vendidos conserva su posición */
  .mobile-best-sellers-row .product-media .add-circle,
  .mobile-best-sellers-row .product-media .open-modal-btn{
    right:8px!important;
    bottom:8px!important;
    top:auto!important;
    left:auto!important;
  }

  /* Destacados conserva su posición */
  .featured-card .featured-image{
    position:relative!important;
  }

  .featured-card .featured-image .quick-add,
  .featured-card .featured-image .open-modal-btn{
    right:10px!important;
    bottom:10px!important;
    top:auto!important;
    left:auto!important;
  }
}

/* Escritorio: un solo + en tarjetas de doble columna */
@media screen and (min-width:901px){
  .product-card .product-media{
    position:relative!important;
  }

  .product-card .product-media .add-circle,
  .product-card .product-media .open-modal-btn{
    right:12px!important;
    bottom:12px!important;
    top:auto!important;
    left:auto!important;
    transform:none!important;
    translate:none!important;
  }

  .featured-card .featured-image{
    position:relative!important;
  }

  .featured-card .featured-image .quick-add,
  .featured-card .featured-image .open-modal-btn{
    right:10px!important;
    bottom:10px!important;
    top:auto!important;
    left:auto!important;
  }
}


/* ============================================================
   LCAM 2.6.17 — un solo + en móvil y modal de destacados estable
   ============================================================ */

/* Un único símbolo + para todos los botones de producto */
.add-circle,
.quick-add,
.open-modal-btn{
  color:transparent!important;
  text-shadow:none!important;
  font-size:0!important;
  line-height:0!important;
  overflow:hidden!important;
  position:absolute!important;
}

.add-circle::before,
.quick-add::before,
.open-modal-btn::before{
  content:none!important;
  display:none!important;
}

.add-circle::after,
.quick-add::after,
.open-modal-btn::after{
  content:'+'!important;
  position:absolute!important;
  inset:0!important;
  display:grid!important;
  place-items:center!important;
  width:100%!important;
  height:100%!important;
  color:#111!important;
  font-family:Arial,Helvetica,sans-serif!important;
  font-size:26px!important;
  font-weight:800!important;
  line-height:1!important;
  text-indent:0!important;
  transform:none!important;
  pointer-events:none!important;
}

/* Evitar que reglas anteriores vuelvan a mostrar el carácter original */
.add-circle > *,
.quick-add > *,
.open-modal-btn > *{
  display:none!important;
}

/* Garantizar que las tarjetas y las imágenes sean clicables */
.featured-card,
.product-card,
.featured-image,
.product-media{
  pointer-events:auto!important;
}

.featured-card .featured-image,
.product-card .product-media{
  position:relative!important;
}

.featured-card .quick-add,
.featured-card .open-modal-btn,
.product-card .add-circle,
.product-card .open-modal-btn{
  pointer-events:auto!important;
  z-index:8!important;
}

/* Móvil: posición exacta del círculo */
@media screen and (max-width:900px){
  .product-list .product-card .product-media .add-circle,
  .product-list .product-card .product-media .open-modal-btn{
    right:10px!important;
    bottom:10px!important;
    top:auto!important;
    left:auto!important;
  }
}


/* ============================================================
   LCAM 2.6.18 — + móvil sin doble glifo: dibujado con barras
   ============================================================ */
.add-circle,
.quick-add,
.open-modal-btn,
.product-card .add-circle,
.product-card .open-modal-btn,
.featured-card .quick-add,
.featured-card .open-modal-btn{
  color:transparent!important;
  -webkit-text-fill-color:transparent!important;
  text-shadow:none!important;
  font-size:0!important;
  line-height:0!important;
  text-indent:-9999px!important;
  overflow:hidden!important;
  position:absolute!important;
  width:42px!important;
  min-width:42px!important;
  max-width:42px!important;
  height:42px!important;
  min-height:42px!important;
  max-height:42px!important;
  padding:0!important;
  margin:0!important;
  border-radius:50%!important;
  box-sizing:border-box!important;
}

.add-circle::before,
.quick-add::before,
.open-modal-btn::before,
.product-card .add-circle::before,
.product-card .open-modal-btn::before,
.featured-card .quick-add::before,
.featured-card .open-modal-btn::before{
  content:''!important;
  display:block!important;
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:18px!important;
  height:3px!important;
  margin:0!important;
  padding:0!important;
  background:#111!important;
  border-radius:3px!important;
  transform:translate(-50%,-50%)!important;
  text-indent:0!important;
  pointer-events:none!important;
}

.add-circle::after,
.quick-add::after,
.open-modal-btn::after,
.product-card .add-circle::after,
.product-card .open-modal-btn::after,
.featured-card .quick-add::after,
.featured-card .open-modal-btn::after{
  content:''!important;
  display:block!important;
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:3px!important;
  height:18px!important;
  margin:0!important;
  padding:0!important;
  background:#111!important;
  border-radius:3px!important;
  transform:translate(-50%,-50%)!important;
  text-indent:0!important;
  pointer-events:none!important;
}

.add-circle > *,
.quick-add > *,
.open-modal-btn > *{
  display:none!important;
}

@media screen and (max-width:900px){
  .product-list .product-card .product-media{
    position:relative!important;
  }

  .product-list .product-card .product-media .add-circle,
  .product-list .product-card .product-media .open-modal-btn{
    right:10px!important;
    bottom:10px!important;
    top:auto!important;
    left:auto!important;
    transform:none!important;
    translate:none!important;
  }
}


/* ============================================================
   LCAM 2.6.19 — signo + único mediante SVG
   ============================================================ */
.add-circle,
.quick-add,
.open-modal-btn,
.product-card .add-circle,
.product-card .open-modal-btn,
.featured-card .quick-add,
.featured-card .open-modal-btn{
  color:transparent!important;
  -webkit-text-fill-color:transparent!important;
  text-shadow:none!important;
  font-size:0!important;
  line-height:0!important;
  text-indent:-9999px!important;
  overflow:hidden!important;
  width:42px!important;
  min-width:42px!important;
  max-width:42px!important;
  height:42px!important;
  min-height:42px!important;
  max-height:42px!important;
  padding:0!important;
  margin:0!important;
  border-radius:50%!important;
  box-sizing:border-box!important;
  background-color:#fff!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5v14M5 12h14' fill='none' stroke='%23111' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;
  background-position:center!important;
  background-size:22px 22px!important;
}

.add-circle::before,
.add-circle::after,
.quick-add::before,
.quick-add::after,
.open-modal-btn::before,
.open-modal-btn::after,
.product-card .add-circle::before,
.product-card .add-circle::after,
.product-card .open-modal-btn::before,
.product-card .open-modal-btn::after,
.featured-card .quick-add::before,
.featured-card .quick-add::after,
.featured-card .open-modal-btn::before,
.featured-card .open-modal-btn::after{
  content:none!important;
  display:none!important;
}

.add-circle > *,
.quick-add > *,
.open-modal-btn > *{
  display:none!important;
}

/* ============================================================
   LCAM 2.6.19 — modal móvil siempre utilizable
   ============================================================ */
@media screen and (max-width:900px){
  .product-modal{
    position:fixed!important;
    inset:0!important;
    z-index:50000!important;
    overflow:auto!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
  }

  .product-modal__dialog{
    width:100%!important;
    max-width:none!important;
    min-height:100dvh!important;
    max-height:none!important;
    margin:0!important;
    border-radius:0!important;
    overflow:visible!important;
    display:block!important;
    padding-top:env(safe-area-inset-top)!important;
    padding-bottom:calc(18px + env(safe-area-inset-bottom))!important;
  }

  .product-modal__close{
    position:fixed!important;
    top:calc(10px + env(safe-area-inset-top))!important;
    right:12px!important;
    width:44px!important;
    height:44px!important;
    min-width:44px!important;
    min-height:44px!important;
    border-radius:50%!important;
    z-index:50020!important;
    display:grid!important;
    place-items:center!important;
    background:#fff!important;
    color:#111!important;
    box-shadow:0 4px 16px rgba(0,0,0,.22)!important;
    pointer-events:auto!important;
  }

  .product-modal__media-wrap{
    min-height:0!important;
    height:auto!important;
    max-height:46vh!important;
    padding:14px!important;
    overflow:hidden!important;
  }

  .product-modal__image{
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    max-height:42vh!important;
    object-fit:contain!important;
  }

  .product-modal__content{
    padding:20px 18px 22px!important;
    overflow:visible!important;
  }

  .product-modal__form{
    overflow:visible!important;
    padding-bottom:8px!important;
  }

  .modal-submit-btn{
    position:sticky!important;
    bottom:calc(10px + env(safe-area-inset-bottom))!important;
    z-index:50010!important;
    width:100%!important;
    min-height:54px!important;
    margin-top:8px!important;
    box-shadow:0 8px 24px rgba(0,0,0,.18)!important;
    pointer-events:auto!important;
  }

  body.modal-open .mobile-floating-cart,
  body.modal-open .floating-cart{
    display:none!important;
  }
}


/* ============================================================
   LCAM 2.6.20 — botón + único, sin texto ni pseudo-elementos heredados
   ============================================================ */
button.add-circle,
button.quick-add,
button.open-modal-btn,
.product-card button.add-circle,
.product-card button.open-modal-btn,
.featured-card button.quick-add,
.featured-card button.open-modal-btn{
  position:absolute!important;
  width:42px!important;
  min-width:42px!important;
  max-width:42px!important;
  height:42px!important;
  min-height:42px!important;
  max-height:42px!important;
  padding:0!important;
  margin:0!important;
  border-radius:50%!important;
  border:1px solid rgba(0,0,0,.13)!important;
  background:#fff!important;
  background-image:none!important;
  color:transparent!important;
  -webkit-text-fill-color:transparent!important;
  text-indent:0!important;
  font-size:0!important;
  line-height:0!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
  box-shadow:0 4px 14px rgba(0,0,0,.20)!important;
  display:block!important;
}

button.add-circle::before,
button.add-circle::after,
button.quick-add::before,
button.quick-add::after,
button.open-modal-btn::before,
button.open-modal-btn::after{
  content:none!important;
  display:none!important;
}

button.add-circle > .lcam-plus-mark,
button.quick-add > .lcam-plus-mark,
button.open-modal-btn > .lcam-plus-mark,
.product-card button.add-circle > .lcam-plus-mark,
.product-card button.open-modal-btn > .lcam-plus-mark,
.featured-card button.quick-add > .lcam-plus-mark,
.featured-card button.open-modal-btn > .lcam-plus-mark{
  display:block!important;
  visibility:visible!important;
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  margin:0!important;
  padding:0!important;
  text-indent:0!important;
  pointer-events:none!important;
}

.lcam-plus-mark::before,
.lcam-plus-mark::after{
  content:""!important;
  display:block!important;
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  margin:0!important;
  padding:0!important;
  background:#111!important;
  border-radius:3px!important;
  transform:translate(-50%,-50%)!important;
}

.lcam-plus-mark::before{
  width:18px!important;
  height:3px!important;
}

.lcam-plus-mark::after{
  width:3px!important;
  height:18px!important;
}

.product-card .product-media,
.featured-card .featured-image{
  position:relative!important;
}

.product-card .product-media > button.add-circle,
.product-card .product-media > button.open-modal-btn{
  right:10px!important;
  bottom:10px!important;
  top:auto!important;
  left:auto!important;
  transform:none!important;
  translate:none!important;
  z-index:10!important;
}

.featured-card .featured-image > button.quick-add,
.featured-card .featured-image > button.open-modal-btn{
  right:10px!important;
  bottom:10px!important;
  top:auto!important;
  left:auto!important;
  transform:none!important;
  translate:none!important;
  z-index:10!important;
}

/* ============================================================
   LCAM 2.6.20 — modal móvil completamente accesible
   ============================================================ */
@media screen and (max-width:900px){
  .product-modal.is-open{
    display:block!important;
  }

  .product-modal{
    position:fixed!important;
    inset:0!important;
    z-index:60000!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain!important;
  }

  .product-modal__backdrop{
    position:fixed!important;
    inset:0!important;
  }

  .product-modal__dialog{
    position:relative!important;
    width:100%!important;
    max-width:none!important;
    min-height:100dvh!important;
    max-height:none!important;
    margin:0!important;
    padding-top:env(safe-area-inset-top)!important;
    padding-bottom:calc(20px + env(safe-area-inset-bottom))!important;
    border-radius:0!important;
    overflow:visible!important;
    display:block!important;
    background:#fff!important;
  }

  .product-modal__close{
    position:fixed!important;
    top:calc(10px + env(safe-area-inset-top))!important;
    right:12px!important;
    z-index:60030!important;
    width:46px!important;
    height:46px!important;
    min-width:46px!important;
    min-height:46px!important;
    display:grid!important;
    place-items:center!important;
    border-radius:50%!important;
    background:#fff!important;
    color:#111!important;
    box-shadow:0 4px 18px rgba(0,0,0,.25)!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
  }

  .product-modal__media-wrap{
    min-height:0!important;
    height:auto!important;
    max-height:45vh!important;
    padding:14px!important;
    overflow:hidden!important;
  }

  .product-modal__image{
    width:100%!important;
    height:auto!important;
    max-height:42vh!important;
    object-fit:contain!important;
  }

  .product-modal__content{
    padding:20px 18px 24px!important;
    overflow:visible!important;
  }

  .product-modal__form{
    display:grid!important;
    overflow:visible!important;
    padding-bottom:6px!important;
  }

  .modal-submit-btn{
    position:sticky!important;
    bottom:calc(8px + env(safe-area-inset-bottom))!important;
    z-index:60020!important;
    width:100%!important;
    min-height:56px!important;
    margin-top:10px!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
    box-shadow:0 8px 24px rgba(0,0,0,.20)!important;
  }

  body.modal-open .mobile-floating-cart,
  body.modal-open .floating-cart,
  body.modal-open .lcam-version-badge{
    display:none!important;
  }
}


/* ============================================================
   LCAM 2.6.21 — signo + definitivo mediante SVG real
   ============================================================ */
button.add-circle,
button.quick-add,
button.open-modal-btn,
.product-card button.add-circle,
.product-card button.open-modal-btn,
.featured-card button.quick-add,
.featured-card button.open-modal-btn{
  width:42px!important;
  min-width:42px!important;
  max-width:42px!important;
  height:42px!important;
  min-height:42px!important;
  max-height:42px!important;
  padding:0!important;
  margin:0!important;
  border-radius:50%!important;
  border:1px solid rgba(0,0,0,.14)!important;
  background:#fff!important;
  background-image:none!important;
  color:#111!important;
  -webkit-text-fill-color:#111!important;
  text-indent:0!important;
  font-size:0!important;
  line-height:0!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
  box-shadow:0 4px 14px rgba(0,0,0,.20)!important;
  display:grid!important;
  place-items:center!important;
}

button.add-circle::before,
button.add-circle::after,
button.quick-add::before,
button.quick-add::after,
button.open-modal-btn::before,
button.open-modal-btn::after,
.lcam-plus-mark,
.lcam-plus-mark::before,
.lcam-plus-mark::after{
  content:none!important;
  display:none!important;
}

button.add-circle > svg.lcam-plus-svg,
button.quick-add > svg.lcam-plus-svg,
button.open-modal-btn > svg.lcam-plus-svg,
.product-card button.add-circle > svg.lcam-plus-svg,
.product-card button.open-modal-btn > svg.lcam-plus-svg,
.featured-card button.quick-add > svg.lcam-plus-svg,
.featured-card button.open-modal-btn > svg.lcam-plus-svg{
  display:block!important;
  visibility:visible!important;
  width:22px!important;
  height:22px!important;
  min-width:22px!important;
  min-height:22px!important;
  margin:0!important;
  padding:0!important;
  color:#111!important;
  fill:none!important;
  overflow:visible!important;
  pointer-events:none!important;
}

svg.lcam-plus-svg path{
  display:block!important;
  stroke:#111!important;
  fill:none!important;
}

/* Posición estable */
.product-card .product-media,
.featured-card .featured-image{
  position:relative!important;
}

.product-card .product-media > button.add-circle,
.product-card .product-media > button.open-modal-btn,
.featured-card .featured-image > button.quick-add,
.featured-card .featured-image > button.open-modal-btn{
  position:absolute!important;
  right:10px!important;
  bottom:10px!important;
  top:auto!important;
  left:auto!important;
  transform:none!important;
  translate:none!important;
  z-index:20!important;
}

/* El área destacada completa es clicable */
#featuredScroller .featured-card,
#featuredScroller .featured-image,
#featuredScroller .featured-image img{
  cursor:pointer!important;
  pointer-events:auto!important;
}


/* ============================================================
   LCAM 2.6.26 — MÁRGENES LATERALES ESTILO UBER EATS EN WEB
   Solo escritorio. En móvil no cambia nada.
   ============================================================ */
@media (min-width: 1001px){
  .ue-header-inner,
  .header-inner,
  .restaurant-shell,
  .menu-layout,
  .page-container,
  .site-footer,
  .page-alert,
  .success-box{
    width:min(1360px, calc(100vw - 120px)) !important;
    max-width:1360px !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }

  .restaurant-shell{
    padding-left:0 !important;
    padding-right:0 !important;
  }

  .hero{
    margin-top:24px !important;
    border-radius:22px !important;
  }

  .restaurant-meta{
    padding:20px 4px 26px !important;
  }

  .menu-layout{
    grid-template-columns:240px minmax(0,1fr) !important;
    gap:48px !important;
    padding-left:0 !important;
    padding-right:0 !important;
    padding-bottom:64px !important;
    align-items:start !important;
  }

  .menu-sidebar{
    border-right:0 !important;
  }

  .menu-sidebar .sidebar-sticky{
    position:sticky !important;
    top:94px !important;
    padding-top:6px !important;
  }

  .menu-content{
    min-width:0 !important;
    width:100% !important;
  }

  .page-alert,
  .success-box{
    margin-top:18px !important;
    margin-bottom:10px !important;
  }
}

@media (min-width: 1500px){
  .ue-header-inner,
  .header-inner,
  .restaurant-shell,
  .menu-layout,
  .page-container,
  .site-footer,
  .page-alert,
  .success-box{
    width:min(1400px, calc(100vw - 160px)) !important;
    max-width:1400px !important;
  }

  .menu-layout{
    grid-template-columns:250px minmax(0,1fr) !important;
    gap:54px !important;
  }
}


/* ============================================================
   LCAM 2.6.27 — DESCRIPCIÓN COMPLETA EN MODAL
   ============================================================ */
.product-modal__dialog{
  max-height:90vh!important;
}

.product-modal__content{
  min-height:0!important;
  overflow-y:auto!important;
  overscroll-behavior:contain!important;
  scrollbar-gutter:stable!important;
}

.product-modal__description{
  display:block!important;
  max-height:none!important;
  overflow:visible!important;
  white-space:pre-line!important;
  word-break:normal!important;
  overflow-wrap:anywhere!important;
  -webkit-line-clamp:unset!important;
  line-clamp:unset!important;
  text-overflow:clip!important;
  line-height:1.55!important;
}

@media screen and (max-width:900px){
  .product-modal__dialog{
    max-height:none!important;
  }

  .product-modal__content{
    overflow:visible!important;
  }

  .product-modal__description{
    font-size:15px!important;
    line-height:1.6!important;
  }
}


/* ============================================================
   LCAM 2.6.28 — MENÚ LATERAL FIJO DURANTE EL SCROLL EN ESCRITORIO
   La posición sticky se aplica al aside completo, no al hijo.
   ============================================================ */
@media screen and (min-width:1001px){
  .menu-layout{
    align-items:start!important;
    overflow:visible!important;
    contain:none!important;
    transform:none!important;
  }

  .menu-sidebar{
    position:sticky!important;
    top:86px!important;
    align-self:start!important;
    height:max-content!important;
    max-height:calc(100vh - 106px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    z-index:80!important;
    background:#fff!important;
    scrollbar-width:thin!important;
    overscroll-behavior:contain!important;
  }

  .menu-sidebar .sidebar-sticky{
    position:static!important;
    top:auto!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    padding-top:6px!important;
    padding-bottom:18px!important;
  }

  .menu-sidebar::-webkit-scrollbar{
    width:5px!important;
  }

  .menu-sidebar::-webkit-scrollbar-thumb{
    background:#d6d6d6!important;
    border-radius:999px!important;
  }
}


/* ============================================================
   LCAM 2.6.29 — BOTÓN AGREGAR AL CARRITO SIEMPRE ACCESIBLE
   ============================================================ */

/* Escritorio: el panel derecho del modal tiene scroll propio y
   el botón permanece visible en la parte inferior. */
@media screen and (min-width:901px){
  .product-modal{
    overflow:hidden!important;
  }

  .product-modal__dialog{
    height:min(820px, calc(100dvh - 32px))!important;
    max-height:calc(100dvh - 32px)!important;
    margin:16px auto!important;
    grid-template-columns:minmax(0,1.05fr) minmax(390px,1fr)!important;
  }

  .product-modal__media-wrap{
    height:100%!important;
    min-height:0!important;
    overflow:hidden!important;
  }

  .product-modal__image{
    max-height:100%!important;
    width:100%!important;
    height:100%!important;
    object-fit:contain!important;
  }

  .product-modal__content{
    min-height:0!important;
    max-height:100%!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    padding:26px 26px 18px!important;
    scrollbar-width:thin!important;
    overscroll-behavior:contain!important;
  }

  .product-modal__content::-webkit-scrollbar{
    width:6px!important;
  }

  .product-modal__content::-webkit-scrollbar-thumb{
    background:#c8c8c8!important;
    border-radius:999px!important;
  }

  .product-modal__form{
    margin-top:0!important;
    display:grid!important;
    gap:14px!important;
    padding-bottom:0!important;
  }

  .modifier-groups{
    max-height:none!important;
    overflow:visible!important;
    padding-right:0!important;
  }

  .modal-submit-btn{
    position:sticky!important;
    bottom:0!important;
    z-index:80!important;
    width:100%!important;
    min-height:56px!important;
    margin-top:8px!important;
    flex-shrink:0!important;
    box-shadow:
      0 -12px 20px rgba(255,255,255,.96),
      0 8px 22px rgba(143,0,0,.22)!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
  }

  .modal-submit-btn::before{
    content:""!important;
    position:absolute!important;
    left:-8px!important;
    right:-8px!important;
    top:-14px!important;
    bottom:-8px!important;
    background:#fff!important;
    z-index:-1!important;
    border-radius:18px!important;
    pointer-events:none!important;
  }
}

/* Móvil: reservar espacio inferior y asegurar que el botón no quede
   debajo de la barra del navegador o del área segura del dispositivo. */
@media screen and (max-width:900px){
  .product-modal__content{
    padding-bottom:calc(92px + env(safe-area-inset-bottom))!important;
  }

  .product-modal__form{
    padding-bottom:calc(8px + env(safe-area-inset-bottom))!important;
  }

  .modal-submit-btn{
    position:sticky!important;
    bottom:calc(8px + env(safe-area-inset-bottom))!important;
    z-index:60040!important;
    min-height:58px!important;
    flex-shrink:0!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
  }
}


/* ============================================================
   LCAM 2.6.30 — SIGNO + ÚNICO EN WEB Y MÓVIL
   El símbolo vive como texto real dentro de .lcam-plus-glyph.
   ============================================================ */

button.open-modal-btn,
button.quick-add,
button.add-circle,
.featured-card button.open-modal-btn,
.featured-card button.quick-add,
.product-card button.open-modal-btn,
.product-card button.add-circle{
  position:absolute!important;
  right:10px!important;
  bottom:10px!important;
  top:auto!important;
  left:auto!important;
  width:44px!important;
  min-width:44px!important;
  max-width:44px!important;
  height:44px!important;
  min-height:44px!important;
  max-height:44px!important;
  margin:0!important;
  padding:0!important;
  border:1px solid rgba(0,0,0,.14)!important;
  border-radius:50%!important;
  background:#fff!important;
  background-image:none!important;
  color:#111!important;
  -webkit-text-fill-color:#111!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
  z-index:50!important;
  transform:none!important;
  translate:none!important;
  text-indent:0!important;
  font-size:0!important;
  line-height:1!important;
  box-shadow:0 4px 14px rgba(0,0,0,.20)!important;
}

button.open-modal-btn::before,
button.open-modal-btn::after,
button.quick-add::before,
button.quick-add::after,
button.add-circle::before,
button.add-circle::after{
  content:none!important;
  display:none!important;
  width:0!important;
  height:0!important;
  background:none!important;
}

button.open-modal-btn > *,
button.quick-add > *,
button.add-circle > *{
  display:none!important;
}

button.open-modal-btn > .lcam-plus-glyph,
button.quick-add > .lcam-plus-glyph,
button.add-circle > .lcam-plus-glyph,
.featured-card button.open-modal-btn > .lcam-plus-glyph,
.featured-card button.quick-add > .lcam-plus-glyph,
.product-card button.open-modal-btn > .lcam-plus-glyph,
.product-card button.add-circle > .lcam-plus-glyph{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  width:auto!important;
  height:auto!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  color:#111!important;
  -webkit-text-fill-color:#111!important;
  background:transparent!important;
  font-family:Arial,Helvetica,sans-serif!important;
  font-size:30px!important;
  font-weight:700!important;
  line-height:.82!important;
  letter-spacing:0!important;
  text-indent:0!important;
  transform:translateY(-1px)!important;
  pointer-events:none!important;
}

.product-media,
.featured-image{
  position:relative!important;
}

@media screen and (max-width:900px){
  button.open-modal-btn,
  button.quick-add,
  button.add-circle,
  .featured-card button.open-modal-btn,
  .featured-card button.quick-add,
  .product-card button.open-modal-btn,
  .product-card button.add-circle{
    width:42px!important;
    min-width:42px!important;
    max-width:42px!important;
    height:42px!important;
    min-height:42px!important;
    max-height:42px!important;
    right:8px!important;
    bottom:8px!important;
    background:#fff!important;
  }

  button.open-modal-btn > .lcam-plus-glyph,
  button.quick-add > .lcam-plus-glyph,
  button.add-circle > .lcam-plus-glyph{
    font-size:28px!important;
    color:#111!important;
    -webkit-text-fill-color:#111!important;
  }
}


/* ============================================================
   LCAM 2.6.31 — ACCIONES DEL MODAL SIEMPRE VISIBLES
   Corrige el rectángulo blanco que ocultaba el botón.
   ============================================================ */

.modifier-special-instructions{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  position:relative!important;
  z-index:2!important;
}

.modifier-special-instructions label{
  display:block!important;
  margin-bottom:8px!important;
}

.modifier-special-instructions textarea{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  width:100%!important;
  min-height:86px!important;
  max-height:180px!important;
  resize:vertical!important;
  box-sizing:border-box!important;
}

/* Anular el fondo blanco artificial de la versión anterior. */
.modal-submit-btn::before{
  content:none!important;
  display:none!important;
}

/* El botón conserva siempre su contenido, color y capacidad de clic. */
.modal-submit-btn{
  position:sticky!important;
  bottom:0!important;
  z-index:120!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  width:100%!important;
  min-height:58px!important;
  height:auto!important;
  margin:10px 0 0!important;
  padding:14px 18px!important;
  border:0!important;
  border-radius:14px!important;
  background:#a90000!important;
  background-image:none!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  font-size:16px!important;
  font-weight:800!important;
  line-height:1.2!important;
  opacity:1!important;
  visibility:visible!important;
  overflow:visible!important;
  pointer-events:auto!important;
  touch-action:manipulation!important;
  box-shadow:0 8px 24px rgba(143,0,0,.24)!important;
  isolation:isolate!important;
}

.modal-submit-btn:hover{
  background:#850000!important;
}

.modal-submit-btn > span,
.modal-submit-btn > strong{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  position:relative!important;
  z-index:2!important;
}

@media screen and (min-width:901px){
  .product-modal__content{
    display:flex!important;
    flex-direction:column!important;
    min-height:0!important;
    overflow-y:auto!important;
    padding-bottom:18px!important;
  }

  .product-modal__form{
    display:grid!important;
    gap:14px!important;
    margin-top:0!important;
    padding-bottom:0!important;
    overflow:visible!important;
  }

  .modal-submit-btn{
    bottom:0!important;
  }
}

@media screen and (max-width:900px){
  .product-modal__content{
    padding-bottom:calc(100px + env(safe-area-inset-bottom))!important;
  }

  .modifier-special-instructions textarea{
    min-height:96px!important;
  }

  .modal-submit-btn{
    bottom:calc(8px + env(safe-area-inset-bottom))!important;
    min-height:60px!important;
    border-radius:14px!important;
  }
}
