@keyframes heartPop{0%,to{transform:scale(1)}35%{transform:scale(1.35)}70%{transform:scale(.9)}}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideDown{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes phoneCaptureIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes hlFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes hhPulse{0%,to{opacity:1}50%{opacity:.6}}:root{--cor-menu:#2d2d2d;--cor-fundo:#f5f5f5;--cor-rodape:#2d2d2d;--cor-carrinho:#f8f9fa;--cor-topo:#ea1d2c;--cor-topo-texto:#ffffff;--cor-welcome-bg:#fff8e1;--cor-welcome-texto:#6d4c00;--cor-primaria:#d62828;--cor-sucesso:#2dc653;--cor-perigo:#d62828;--cor-info:#1d6fa5;--cor-texto:#111111;--cor-texto-leve:#555555;--cor-borda:#dce0e4;--cor-branco:#ffffff;--cor-preco:#1a9e3f;--sombra-card:0 2px 12px rgba(0, 0, 0, 0.1);--sombra-float:0 -4px 20px rgba(0, 0, 0, 0.18);--raio:12px;--raio-lg:16px;--raio-pill:50px;--raio-full:50%;--transicao:all 0.3s ease;--fonte:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*,::after,::before{box-sizing:border-box}body{font-family:var(--fonte);background-color:var(--cor-fundo);color:var(--cor-texto);margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding:0 0 80px;overflow-x:hidden}a{color:var(--cor-info);text-decoration:none;transition:var(--transicao)}a:hover{color:var(--cor-primaria)}img{max-width:100%;height:auto}h1,h2,h3,h4,h5,h6{font-weight:700;color:var(--cor-texto)}.mg-t-5{margin-top:5px!important}.mg-t-10{margin-top:10px!important}.mg-t-15{margin-top:15px!important}.mg-t-20{margin-top:20px!important}.mg-b-5{margin-bottom:5px!important}.mg-b-10{margin-bottom:10px!important}.mg-r-5{margin-right:5px!important}.mg-r-10{margin-right:10px!important}.mg-l-5{margin-left:5px!important}.mg-l-10{margin-left:10px!important}.pd-5{padding:5px!important}.pd-15{padding:15px!important}.tx-8{font-size:8px!important}.tx-9{font-size:9px!important}.tx-11{font-size:11px!important}.tx-12{font-size:12px!important}.tx-13{font-size:13px!important}.tx-14{font-size:14px!important}.tx-15{font-size:15px!important}.tx-16{font-size:16px!important}.tx-18{font-size:18px!important}.tx-20{font-size:20px!important}.tx-30{font-size:30px!important}.tx-danger{color:#dc3545!important}.tx-success{color:#28a745!important}.tx-info{color:var(--cor-info)!important}.tx-gray-800{color:#343a40!important}.slim-card-title{font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px;color:var(--cor-texto)}.card-people-list{border-radius:var(--raio);border:0;box-shadow:var(--sombra-card)}.media{display:flex;align-items:flex-start;padding:8px 0}.media-body{flex:1;min-width:0}.media-list .media+.media{border-top:1px solid var(--cor-borda)}.slim-mainpanel{padding:0}.header-modern{background:var(--cor-topo, #ea1d2c);color:var(--cor-topo-texto, #fff);padding:12px 0;position:sticky;top:0;z-index:1030;box-shadow:0 2px 8px rgba(0,0,0,.15)}.header-inner{display:flex;align-items:center;gap:12px;max-width:800px;margin:0 auto;padding:0 16px;position:relative;z-index:1}.header-logo{width:50px;height:50px;border-radius:var(--raio-full);object-fit:cover;border:2px solid rgba(255,255,255,.4);flex-shrink:0;box-shadow:0 2px 8px rgba(0,0,0,.15)}.header-info{flex:1;min-width:0}.header-name{font-size:18px;font-weight:700;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--cor-topo-texto, #fff);text-shadow:0 1px 3px rgba(0,0,0,.3)}.header-welcome{background:var(--cor-welcome-bg, #fff8e1);border-bottom:1px solid rgba(0,0,0,.08);max-width:800px;margin:0 auto}.header-welcome-inner{padding:8px 16px;font-size:13px;color:var(--cor-welcome-texto, #6d4c00);display:flex;align-items:center;gap:6px}.header-welcome-inner i{color:var(--cor-welcome-texto, #f59e0b);font-size:14px}.header-welcome-inner strong{font-weight:700}.header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.header-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:var(--raio-pill);font-size:12px;font-weight:600;white-space:nowrap}.header-badge.open{background:#d4edda;color:#0d6832;border:1px solid #a3d9b1}.header-badge.closed{background:#f8d7da;color:#842029;border:1px solid #f1aeb5}.header-btn,.header-btn:hover{color:var(--cor-topo-texto, #fff)}.header-btn{width:36px;height:36px;border-radius:var(--raio-full);background:rgba(255,255,255,.25);display:flex;align-items:center;justify-content:center;border:0;cursor:pointer;transition:var(--transicao);font-size:16px;text-decoration:none;text-shadow:0 1px 2px rgba(0,0,0,.2)}.header-btn:hover{background:rgba(255,255,255,.4)}.banner-section{max-width:800px;margin:0 auto;padding:12px 16px}.banner-carousel,.banner-img{border-radius:var(--raio);box-shadow:var(--sombra-card)}.banner-img{width:100%;max-height:200px;object-fit:cover}.banner-carousel{overflow:hidden}.banner-produto-card{position:relative;height:240px;background-size:cover;background-position:center;border-radius:var(--raio);overflow:hidden;cursor:pointer;user-select:none}.banner-produto-card:active{transform:scale(0.99)}.banner-produto-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.72) 0%,rgba(0,0,0,.38) 100%);display:flex;flex-direction:column;justify-content:space-between;padding:14px 16px 14px}.banner-produto-badge{display:inline-block;background:var(--cor-primaria);color:#fff;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.8px;padding:3px 10px;border-radius:50px;align-self:flex-start;margin-bottom:6px}.banner-produto-info{flex:1;display:flex;flex-direction:column;justify-content:flex-end}.banner-produto-nome{color:#fff;font-size:22px;font-weight:900;line-height:1.2;text-shadow:0 3px 14px rgba(0,0,0,.8),0 0 30px rgba(0,0,0,.4);margin-bottom:6px;letter-spacing:-.3px}.banner-produto-preco{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.banner-produto-de{color:rgba(255,255,255,.6);font-size:13px;text-decoration:line-through}.banner-produto-por{color:#fff;font-size:18px;font-weight:800}.banner-produto-economia{background:#16a34a;color:#fff;font-size:11px;font-weight:700;padding:2px 8px;border-radius:50px}.banner-produto-cta{align-self:flex-end;background:linear-gradient(135deg,#FFD700,#FFC000);color:#111;border:none;border-radius:50px;padding:8px 20px;font-size:13px;font-weight:800;cursor:pointer;pointer-events:none;white-space:nowrap;box-shadow:0 3px 10px rgba(255,192,0,.45)}.banner-carousel .carousel-item img{border-radius:0;box-shadow:none}.banner-carousel .carousel-indicators{margin-bottom:8px}.banner-carousel .carousel-indicators button{width:8px;height:8px;border-radius:50%;border:0;opacity:.5}.banner-carousel .carousel-indicators button.active,.banner-carousel:hover .carousel-control-next,.banner-carousel:hover .carousel-control-prev{opacity:1}.banner-carousel .carousel-control-next,.banner-carousel .carousel-control-prev{width:32px;height:32px;top:50%;transform:translateY(-50%);bottom:auto;background:rgba(0,0,0,.4);border-radius:50%;opacity:0;transition:opacity .3s ease}.banner-carousel .carousel-control-prev{left:8px}.banner-carousel .carousel-control-next{right:8px}.banner-carousel .carousel-control-next-icon,.banner-carousel .carousel-control-prev-icon{width:14px;height:14px}.category-nav{background:var(--cor-branco);position:sticky;top:74px;z-index:1020;box-shadow:0 2px 4px rgba(0,0,0,.05)}.category-scroll{display:flex;gap:8px;overflow-x:auto;padding:10px 16px;max-width:800px;margin:0 auto;scroll-snap-type:x mandatory;-ms-overflow-style:none;scrollbar-width:none}.category-scroll::-webkit-scrollbar{display:none}.category-pill,.period-badge{border-radius:8px;font-weight:600;white-space:nowrap}.category-pill{display:flex;align-items:center;gap:6px;padding:8px 14px 10px;background:0 0;color:#777;font-size:13px;flex-shrink:0;scroll-snap-align:start;cursor:pointer;transition:color .2s ease;border:0;text-decoration:none;position:relative}.category-pill::after{content:"";position:absolute;bottom:0;left:50%;width:0;height:2.5px;background:var(--cor-primaria, #ea1d2c);border-radius:2px;transition:width .3s ease,left .3s ease}.category-pill:hover{color:#333}.category-pill.active{color:var(--cor-texto);font-weight:700}.category-pill.active::after{width:60%;left:20%}.category-pill img{width:24px;height:24px;border-radius:var(--raio-full);object-fit:cover}.period-badge{font-size:9px;background:rgba(139,92,246,.15);color:#8b5cf6;padding:1px 6px;margin-left:2px}.main-content{max-width:800px;margin:0 auto;padding:16px;overflow-x:hidden}.section-title{font-size:18px;font-weight:700;margin:24px 0 12px;padding-left:4px;display:flex;align-items:center;gap:8px;color:var(--cor-texto)}.section-title:first-child{margin-top:8px}.products-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin-bottom:16px}.product-card{background:var(--cor-branco);border-radius:var(--raio);overflow:hidden;min-width:0;box-shadow:0 2px 8px rgba(0,0,0,.08);transition:box-shadow .3s ease,border-color .3s ease,transform .15s ease;cursor:pointer;position:relative;border:1.5px solid transparent}.product-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.12);border-color:rgba(0,0,0,.06)}.product-card:active{transform:scale(.98);transition-duration:.1s}.product-card-img{width:100%!important;max-width:100%!important;min-width:0;height:120px;object-fit:cover;background:#f1f5f9;display:block}.product-card-img.placeholder{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f0f0f0,#e0e0e0);color:#ccc;font-size:32px}.product-card-body{padding:10px 12px 12px}.product-card-name{font-size:14px;font-weight:700;margin:0 0 3px;color:var(--cor-texto);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-card-rating{display:flex;align-items:center;gap:3px;margin-bottom:3px}.product-card-rating .rating-stars{color:#f5a623;font-size:10px;display:flex;gap:1px}.product-card-rating .rating-value{font-size:11px;font-weight:700;color:var(--cor-texto)}.product-card-rating .rating-count{font-size:10px;color:var(--cor-texto-leve)}.product-card-desc{font-size:11px;color:#64748b;margin:2px 0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.product-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:4px}.product-card-price{font-size:16px;font-weight:800;color:var(--cor-preco)}.product-card-btn{width:34px;height:34px;border-radius:var(--raio-full);background:var(--cor-preco);color:#fff;border:0;display:flex;align-items:center;justify-content:center;font-size:15px;cursor:pointer;transition:var(--transicao);flex-shrink:0}.product-card-btn:hover{transform:scale(1.1);background:#24a344}.product-card-closed{opacity:.82;filter:grayscale(18%)}.product-card-closed .product-card-btn{background:#999}.card-fav-btn,.card-share-btn{position:absolute;top:8px;right:8px;width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.92);border:0;display:flex;align-items:center;justify-content:center;font-size:14px;color:#64748b;cursor:pointer;z-index:5;box-shadow:0 1px 4px rgba(0,0,0,.12);transition:all .2s ease;-webkit-tap-highlight-color:transparent}.card-share-btn:hover{background:#fff;color:var(--cor-primaria, #10b981);transform:scale(1.1)}.card-share-btn:active{transform:scale(.95)}.card-share-btn.shared{color:var(--cor-primaria, #10b981);background:#fff}.card-fav-btn{right:46px;z-index:3;color:#cbd5e1;font-size:15px;box-shadow:0 1px 4px rgba(0,0,0,.1)}.card-fav-btn:hover{background:#fff;color:#ef4444;transform:scale(1.1)}.card-fav-btn:active{transform:scale(.95)}.card-fav-btn.favorited{color:#ef4444;background:#fff}.card-fav-btn.favorited .fa-heart{animation:heartPop .35s ease}.share-toast{position:fixed;bottom:120px;left:50%;transform:translateX(-50%) translateY(20px);background:#1e293b;color:#fff;padding:10px 20px;border-radius:10px;font-size:13px;font-weight:600;z-index:9999;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;white-space:nowrap}.share-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.reorder-section{max-width:800px;margin:0 auto;padding:4px 16px 8px;position:relative}.reorder-section .section-title{font-size:16px;font-weight:700;margin:8px 0 10px;padding-left:0;display:flex;align-items:center;gap:8px;color:var(--cor-texto)}.reorder-section .section-title i{font-size:15px}.reorder-section-reorder{background:linear-gradient(135deg,rgba(16,185,129,.06)0,rgba(5,150,105,.03) 100%);border-radius:var(--raio);margin-top:4px}.reorder-section-reorder .section-title{color:#059669}.reorder-section-suggestions{background:linear-gradient(135deg,rgba(99,102,241,.06)0,rgba(139,92,246,.03) 100%);border-radius:var(--raio)}.reorder-section-suggestions .section-title{color:#6366f1}.reorder-carousel{position:relative}.reorder-scroll{display:flex;flex-direction:row;flex-wrap:nowrap;gap:12px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-ms-overflow-style:none;scrollbar-width:none;padding:6px 2px 8px}.quick-actions-scroll::-webkit-scrollbar,.reorder-scroll::-webkit-scrollbar,.stories-scroll::-webkit-scrollbar{display:none}.reorder-scroll>.reorder-card{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:12px;width:260px;min-width:260px;max-width:260px;height:84px;background:var(--cor-branco);border-radius:var(--raio);box-shadow:0 2px 8px rgba(0,0,0,.08);padding:10px;scroll-snap-align:start;cursor:pointer;transition:var(--transicao);flex-shrink:0;flex-grow:0;border:1.5px solid transparent;position:relative;overflow:hidden}.reorder-scroll>.reorder-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.12);border-color:rgba(16,185,129,.25);transform:translateY(-1px)}.reorder-section-suggestions .reorder-scroll>.reorder-card:hover{border-color:rgba(99,102,241,.25)}.reorder-card .reorder-card-img,.reorder-card img.reorder-card-img{width:64px;min-width:64px;max-width:64px;height:64px;min-height:64px;max-height:64px;border-radius:10px;object-fit:cover;flex-shrink:0;flex-grow:0;background:#f0f0f0;display:block}.reorder-card .reorder-card-img.placeholder{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f0f0f0,#e0e0e0);color:#ccc;font-size:24px}.reorder-card .reorder-card-info{display:flex;flex-direction:column;flex:1;min-width:0;gap:2px;overflow:hidden}.reorder-card-name{font-size:14px;font-weight:600;color:var(--cor-texto);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3;display:block}.reorder-card-stars{display:flex;align-items:center;gap:3px;font-size:11px;color:#f5a623;line-height:1}.reorder-card-stars .star-value{font-size:11px;font-weight:600;color:var(--cor-texto-leve)}.reorder-card-price{font-size:15px;font-weight:700;color:var(--cor-preco);line-height:1.3;display:block}.reorder-card-price.alt{font-size:12px;font-weight:600;color:var(--cor-info)}.reorder-card .reorder-card-btn{width:34px;min-width:34px;height:34px;border-radius:var(--raio-full);background:var(--cor-preco);color:#fff;border:0;display:flex;align-items:center;justify-content:center;font-size:15px;cursor:pointer;flex-shrink:0;flex-grow:0;transition:var(--transicao);padding:0}.reorder-card .reorder-card-btn:hover{background:#24a344;transform:scale(1.1)}.reorder-card-closed{opacity:.5;pointer-events:none;filter:grayscale(40%)}.reorder-card-closed .reorder-card-btn{background:#999}.reorder-nav{position:absolute;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:var(--raio-full);background:var(--cor-branco);color:var(--cor-texto);border:1px solid var(--cor-borda);box-shadow:0 2px 8px rgba(0,0,0,.12);display:flex;align-items:center;justify-content:center;font-size:13px;cursor:pointer;z-index:5;transition:var(--transicao);opacity:0;padding:0}.reorder-carousel:hover .reorder-nav{opacity:1}.reorder-nav:hover{background:var(--cor-fundo);box-shadow:0 3px 12px rgba(0,0,0,.15)}.reorder-nav.hidden{opacity:0!important;pointer-events:none}.reorder-nav-prev{left:-6px}.reorder-nav-next{right:-6px}.reorder-badge{position:absolute;top:-6px;left:8px;padding:2px 8px;border-radius:var(--raio-pill);font-size:10px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;z-index:2;display:flex;align-items:center;gap:3px;box-shadow:0 2px 6px rgba(0,0,0,.15)}.reorder-badge-top{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.reorder-badge-popular{background:linear-gradient(135deg,#6366f1,#7c3aed);color:#fff}@media (max-width:576px){.reorder-section{padding:4px 12px 6px}.reorder-scroll{gap:10px}.reorder-scroll>.reorder-card{width:240px;min-width:240px;max-width:240px;height:76px;padding:8px;gap:10px}.reorder-card .reorder-card-img,.reorder-card img.reorder-card-img{width:56px;min-width:56px;max-width:56px;height:56px;min-height:56px;max-height:56px;border-radius:8px}.reorder-card-name{font-size:13px}.reorder-card-price{font-size:14px}.reorder-card .reorder-card-btn{width:30px;min-width:30px;height:30px;font-size:13px}.reorder-nav{display:none}.reorder-section .section-title{font-size:15px}}.cart-float{position:fixed;bottom:58px;left:0;right:0;z-index:1040;padding:12px 16px;background:0 0;pointer-events:none;animation:slideUp .3s ease}.cart-float-inner{max-width:600px;margin:0 auto;background:var(--cor-preco);color:#fff;border-radius:var(--raio);padding:14px 20px;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--sombra-float);cursor:pointer;pointer-events:all;transition:var(--transicao);text-decoration:none}.cart-float-inner:hover{transform:translateY(-2px);box-shadow:0-6px 24px rgba(0,0,0,.2);color:#fff}.cart-float-left{display:flex;align-items:center;gap:10px}.cart-float-icon{font-size:20px}.cart-float-badge{background:rgba(255,255,255,.25);padding:2px 8px;border-radius:var(--raio-pill);font-size:12px;font-weight:600}.cart-float-text{font-size:15px;font-weight:600}.cart-float-total{font-size:17px;font-weight:700}.modal-modern .modal-content{border:0;border-radius:var(--raio-lg);overflow:hidden}.modal-modern .modal-header{border-bottom:1px solid var(--cor-borda);padding:16px 20px}.modal-modern .modal-title{font-size:16px;font-weight:700}.modal-modern .modal-body{padding:20px}.modal-product{background:#fff!important}.modal-product .modal-dialog{margin:0;max-width:100%;min-height:100dvh}.modal-product .modal-content{border-radius:0;min-height:100dvh;box-shadow:none;border:0}.modal-product .modal-header{position:sticky;top:0;z-index:10;background:#fff}.modal-product+.modal-backdrop{display:none!important}@media (min-width:577px){.modal-product{background:rgba(0,0,0,.5)!important}.modal-product .modal-dialog{max-width:520px;margin:1.75rem auto;min-height:auto}.modal-product .modal-content{border-radius:var(--raio-lg);min-height:auto;box-shadow:0 10px 40px rgba(0,0,0,.15)}.modal-product+.modal-backdrop{display:block!important}}.product-detail-img{width:100%;max-height:300px;object-fit:cover;border-radius:var(--raio);margin-bottom:16px}.product-detail-name{font-size:20px;font-weight:700;margin:0 0 8px}.product-detail-rating{display:flex;align-items:center;gap:6px;margin-bottom:10px}.product-detail-rating .rating-stars{color:#f5a623;font-size:15px;display:flex;gap:1px}.product-detail-rating .rating-value{font-size:15px;font-weight:700;color:var(--cor-texto)}.product-detail-rating .rating-count{font-size:13px;color:var(--cor-texto-leve)}.product-detail-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:6px;font-size:10px;font-weight:800;color:#fff;text-transform:uppercase;vertical-align:middle;margin-left:6px}.rating-distribution{margin:8px 0 12px;display:flex;flex-direction:column;gap:3px}.rating-bar-row{display:flex;align-items:center;gap:6px}.rating-bar-label{font-size:11px;font-weight:600;color:var(--cor-texto-leve);min-width:32px;text-align:right}.rating-bar-label i{font-size:9px;color:#f5a623}.rating-bar{flex:1;height:6px;background:#f1f5f9;border-radius:3px;overflow:hidden}.rating-bar-fill{height:100%;background:#f5a623;border-radius:3px;transition:width .3s ease}.rating-bar-count{font-size:11px;color:var(--cor-texto-leve);min-width:20px}.rating-comments{margin:10px 0;border-top:1px solid var(--cor-borda);padding-top:10px}.rating-comments-title{font-size:13px;font-weight:700;color:var(--cor-texto);margin-bottom:8px}.rating-comments-title i{color:var(--cor-primaria);margin-right:4px}.rating-comment-item{padding:8px 0;border-bottom:1px solid #f1f5f9}.rating-comment-item:last-child{border-bottom:none}.rating-comment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.rating-comment-stars{font-size:11px;color:#f5a623}.rating-comment-stars .fa-regular{color:#ddd}.rating-comment-date{font-size:11px;color:var(--cor-texto-leve)}.rating-comment-text{font-size:13px;color:var(--cor-texto);margin:0;line-height:1.4}.rating-form{margin:12px 0;padding:12px;background:#f8fafc;border-radius:var(--raio);border:1px solid var(--cor-borda)}.rating-form-title{font-size:13px;font-weight:700;color:var(--cor-texto);margin-bottom:8px}.star-selector{display:flex;gap:6px;margin-bottom:8px}.star-selector .star-select{font-size:24px;color:#ddd;cursor:pointer;transition:color .15s ease,transform .15s ease}.star-selector .star-select.hovered,.star-selector .star-select:hover{color:#f5a623;transform:scale(1.15)}.rating-form-title i,.star-selector .star-select.selected{color:#f5a623}.rating-textarea{width:100%;border:1px solid var(--cor-borda);border-radius:8px;padding:8px 10px;font-size:13px;resize:none;font-family:inherit;margin-bottom:8px}.rating-textarea:focus{outline:0;border-color:var(--cor-primaria)}.btn-submit-rating{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;background:var(--cor-primaria);color:#fff;border:0;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s ease}.btn-submit-rating:hover{filter:brightness(1.1)}.btn-submit-rating:disabled{background:#94a3b8;cursor:not-allowed}.rating-form-done{margin:10px 0;padding:10px 14px;background:#f0fdf4;border-radius:8px;color:#16a34a;font-size:13px;font-weight:600}.rating-form-done i{margin-right:4px}.product-detail-desc{font-size:14px;color:var(--cor-texto-leve);margin:0 0 12px;line-height:1.5}.product-detail-price{font-size:22px;font-weight:700;color:var(--cor-preco);margin-bottom:16px}.qty-spinner{display:inline-flex;align-items:center;border:2px solid var(--cor-borda);border-radius:var(--raio);overflow:visible;flex-shrink:0}.qty-spinner .qty-btn{width:40px;height:44px;border:0;background:var(--cor-fundo);color:var(--cor-texto);font-size:18px;font-weight:900;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transicao);flex-shrink:0}.qty-spinner .qty-btn.qty-minus{border-right:2px solid var(--cor-borda)}.qty-spinner .qty-btn.qty-plus{border-left:2px solid var(--cor-borda)}.qty-spinner .qty-btn:hover{background:#e0e0e0;color:#222}.qty-spinner .qty-btn.qty-plus:hover{background:var(--cor-preco);color:#fff}.qty-spinner input{width:56px;text-align:center;border:0;font-size:16px;font-weight:600;background:0 0;outline:0}.btn-add-order,.obs-textarea{border-radius:var(--raio);transition:var(--transicao)}.btn-add-order{background:var(--cor-preco);color:#fff;border:0;padding:14px 16px;font-size:15px;font-weight:600;flex:1;min-width:0;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px}.btn-add-order:hover{background:#24a344;transform:translateY(-1px)}.obs-textarea{border:2px solid var(--cor-borda);padding:12px;font-size:14px;resize:vertical;min-height:80px;width:100%;font-family:var(--fonte)}.obs-textarea:focus{border-color:var(--cor-menu);outline:0;box-shadow:0 0 0 3px rgba(0,0,0,.1)}.option-group{background:var(--cor-fundo);border-radius:var(--raio);padding:16px;margin-bottom:12px}.option-group-title{font-size:15px;font-weight:700;margin-bottom:4px;display:flex;align-items:center;gap:8px}.option-group-subtitle{font-size:12px;color:var(--cor-texto-leve);margin-bottom:12px}.badge-optional,.badge-required{display:inline-block;padding:2px 8px;border-radius:var(--raio-pill);font-size:11px;font-weight:600}.badge-required{background:rgba(230,57,70,.1);color:#e63946}.badge-optional{background:rgba(69,123,157,.1);color:var(--cor-info)}.option-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--cor-branco);border-radius:8px;margin-bottom:6px;transition:var(--transicao)}.option-item:hover{box-shadow:0 1px 4px rgba(0,0,0,.06)}.option-item label{display:flex;align-items:center;gap:10px;cursor:pointer;flex:1;margin:0;font-size:14px}.option-item-price{font-size:13px;font-weight:600;color:var(--cor-texto-leve);white-space:nowrap;margin-left:12px}.option-item-price.free{color:var(--cor-preco)}.option-item-desc{font-size:12px;color:#b8960a;margin-top:2px;padding-left:30px}.option-item input[type=checkbox],.option-item input[type=radio],.size-option input[type=radio]{width:20px;height:20px;accent-color:var(--cor-preco);flex-shrink:0}.size-option{display:flex;align-items:center;padding:12px;background:var(--cor-branco);border-radius:8px;margin-bottom:6px;cursor:pointer;transition:var(--transicao)}.size-option:hover{box-shadow:0 1px 4px rgba(0,0,0,.06)}.size-option input[type=radio]{margin-right:12px}.size-option-name{flex:1;font-size:14px;font-weight:500}.size-option-price{font-size:15px;font-weight:700;color:var(--cor-preco)}.btn-back{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;font-size:14px;font-weight:500;color:var(--cor-texto-leve);text-decoration:none;border-radius:var(--raio);transition:var(--transicao);margin-bottom:12px}.btn-back:hover{color:var(--cor-texto);background:rgba(0,0,0,.05)}.cart-v2-checkout-btns{display:flex;gap:10px;margin-bottom:16px}.cart-v2-checkout-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;border-radius:12px;font-size:14px;font-weight:600;text-decoration:none;transition:all .2s ease}.cart-v2-checkout-delivery{background:#059669;color:#fff}.cart-v2-checkout-delivery:hover{background:#047857;color:#fff}.cart-v2-checkout-balcao{background:#3b82f6;color:#fff}.cart-v2-checkout-balcao:hover{background:#2563eb;color:#fff}.cart-v2-progress-wrap{background:#fef3c7;border:1px solid #fbbf24;border-radius:10px;padding:12px 14px;margin-bottom:14px}.cart-v2-progress-text{font-size:13px;color:#92400e;margin-bottom:8px}.cart-v2-progress-text i{margin-right:6px}.cart-v2-progress-bar{height:8px;background:#fde68a;border-radius:4px;overflow:hidden}.cart-v2-progress-fill{height:100%;background:linear-gradient(90deg,#f59e0b,#059669);border-radius:4px;transition:width .4s ease}.cart-v2-progress-done{background:#d1fae5;border-color:#34d399;color:#065f46;font-size:14px;font-weight:600;text-align:center}.cart-v2-progress-done i{color:#059669;margin-right:6px}.cart-v2-items{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.cart-v2-item{background:var(--cor-branco, #fff);border-radius:12px;padding:14px;box-shadow:0 1px 3px rgba(0,0,0,.08);border:1px solid var(--cor-borda, #e5e7eb);transition:all .3s ease}.cart-v2-item-top{display:flex;gap:12px;margin-bottom:10px}.cart-v2-img-wrap{flex-shrink:0;width:64px;height:64px}.cart-v2-img{width:64px;height:64px;border-radius:10px;object-fit:cover}.cart-v2-img-placeholder{display:flex;align-items:center;justify-content:center;background:#f3f4f6;color:#9ca3af;font-size:22px;border-radius:10px}.cart-v2-info{flex:1;min-width:0}.cart-v2-name{font-size:14px;font-weight:700;color:var(--cor-texto, #1f2937);line-height:1.3;margin-bottom:3px}.cart-v2-size{font-size:12px;color:var(--cor-texto-leve, #6b7280)}.cart-v2-price{font-size:15px;font-weight:700;color:#059669;margin-top:4px}.cart-v2-actions{display:flex;align-items:center;gap:12px;padding-top:10px;border-top:1px solid var(--cor-borda, #e5e7eb)}.cart-v2-qty{display:inline-flex;align-items:center;gap:0;background:#f3f4f6;border-radius:8px;overflow:hidden}.cart-v2-qty-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:0 0;border:0;cursor:pointer;font-size:12px;color:#374151;transition:background .15s}.cart-v2-qty-btn:hover{background:#e5e7eb}.cart-v2-qty-btn:active{background:#d1d5db}.cart-v2-qty-val{min-width:28px;text-align:center;font-size:14px;font-weight:700;color:#111827}.cart-v2-unit-price{font-size:12px;color:var(--cor-texto-leve, #6b7280);flex:1}.cart-v2-remove{display:inline-flex;align-items:center;gap:4px;padding:6px 10px;font-size:12px;font-weight:500;color:#dc3545;background:0 0;border:0;border-radius:6px;cursor:pointer;transition:background .15s;white-space:nowrap}.cart-v2-remove:hover{background:rgba(220,53,69,.1)}.cart-v2-extras-section{margin-top:10px;padding-top:8px;border-top:1px dashed var(--cor-borda, #e5e7eb)}.cart-v2-extras-toggle{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:#6b7280;background:0 0;border:0;cursor:pointer;padding:4px 0;transition:color .15s}.cart-v2-extras-toggle:hover{color:#374151}.cart-v2-extras-toggle i{font-size:10px;transition:transform .2s}.cart-v2-extras{padding:8px 0 0}.cart-v2-extras-group{margin-bottom:6px}.cart-v2-extras-label{display:block;font-size:12px;font-weight:600;color:var(--cor-texto, #1f2937);margin-bottom:2px}.cart-v2-extras-item{display:block;font-size:11px;color:var(--cor-texto-leve, #6b7280);padding-left:8px;line-height:1.6}.cart-v2-totals{background:#f9fafb;border-radius:12px;padding:14px;margin-bottom:12px;border:1px solid var(--cor-borda, #e5e7eb)}.cart-v2-totals-row{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#6b7280;padding:4px 0}.cart-v2-totals-total{font-size:16px;font-weight:700;color:var(--cor-texto, #1f2937);padding-top:8px;margin-top:6px;border-top:1px solid var(--cor-borda, #e5e7eb)}.cart-v2-free-delivery-badge{background:#d1fae5;color:#065f46;text-align:center;padding:10px;border-radius:10px;font-size:14px;font-weight:600;margin-bottom:8px}.cart-v2-free-delivery-badge i{color:#059669;margin-right:6px}.cart-v2-empty{text-align:center;padding:40px 20px}.cart-v2-empty-icon{width:80px;height:80px;margin:0 auto 16px;background:linear-gradient(135deg,#f3f4f6,#e5e7eb);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:32px;color:#9ca3af}.cart-v2-empty-title{font-size:18px;font-weight:700;color:var(--cor-texto, #1f2937);margin-bottom:8px}.cart-v2-empty-text{font-size:14px;color:var(--cor-texto-leve, #6b7280);margin-bottom:20px}.cart-v2-empty-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;font-size:14px;font-weight:600;color:#fff;background:#059669;border:0;border-radius:10px;cursor:pointer;transition:background .2s}.cart-v2-empty-btn:hover{background:#047857}@media (max-width:480px){.cart-v2-checkout-btns{flex-direction:column}.cart-v2-actions{flex-wrap:wrap}.cart-v2-remove{margin-left:auto}}.form-page{max-width:600px;margin:0 auto;padding:16px}.form-page-header{text-align:center;margin-bottom:20px;padding:20px;background:var(--cor-branco);border-radius:var(--raio);box-shadow:var(--sombra-card)}.form-page-title{font-size:20px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:8px;margin:0}.form-page-subtitle{font-size:14px;color:var(--cor-texto-leve);margin:8px 0 0}.form-section{background:var(--cor-branco);border-radius:var(--raio);padding:20px;margin-bottom:16px;box-shadow:var(--sombra-card)}.form-section-title{font-size:16px;font-weight:700;margin:0 0 16px;display:flex;align-items:center;gap:8px}.form-section .form-control,.form-section .form-select{border:2px solid var(--cor-borda);border-radius:var(--raio);padding:12px;font-size:15px;transition:var(--transicao)}.form-section .form-control:focus,.form-section .form-select:focus{border-color:var(--cor-menu);box-shadow:0 0 0 3px rgba(0,0,0,.08)}.form-section .form-label{font-size:13px;font-weight:600;color:var(--cor-texto-leve);text-transform:uppercase;letter-spacing:.3px;margin-bottom:6px}.order-summary{background:var(--cor-branco);border-radius:var(--raio);padding:20px;margin-bottom:16px;box-shadow:var(--sombra-card);border:2px solid var(--cor-preco)}.order-summary-row{display:flex;justify-content:space-between;padding:6px 0;font-size:14px}.order-summary-row.total{font-size:18px;font-weight:700;border-top:2px solid var(--cor-borda);padding-top:12px;margin-top:8px}.order-summary-row.taxa{color:var(--cor-primaria)}.btn-submit-order,.free-delivery-badge{border-radius:var(--raio);display:flex;align-items:center;justify-content:center;gap:8px}.btn-submit-order{background:var(--cor-preco);color:#fff;border:0;padding:16px;font-size:16px;font-weight:700;width:100%;cursor:pointer;transition:var(--transicao)}.btn-submit-order:hover{background:#24a344;transform:translateY(-1px)}.free-delivery-badge{background:rgba(45,198,83,.1);color:var(--cor-preco);padding:10px 16px;text-align:center;font-weight:600;font-size:14px;margin-bottom:16px}.cart-page{max-width:600px;margin:0 auto;padding:16px}.cart-item{background:var(--cor-branco);border-radius:var(--raio);padding:16px;margin-bottom:12px;box-shadow:var(--sombra-card)}.cart-item-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.cart-item-name{font-size:15px;font-weight:600}.cart-item-delete{color:#dc3545;font-size:13px;cursor:pointer;padding:4px 8px;border-radius:6px;transition:var(--transicao);text-decoration:none;display:flex;align-items:center;gap:4px}.cart-item-delete:hover{background:rgba(220,53,69,.1);color:#dc3545}.cart-item-detail,.phone-capture-content p{font-size:13px;color:var(--cor-texto-leve);margin-bottom:2px}.cart-item-extras{font-size:12px;color:var(--cor-texto-leve);margin-top:6px;padding-top:6px;border-top:1px solid var(--cor-borda)}.cart-totals{background:var(--cor-branco);border-radius:var(--raio);padding:16px;margin-bottom:16px;box-shadow:var(--sombra-card)}.cart-total-row{display:flex;justify-content:space-between;padding:6px 0;font-size:14px}.cart-total-row.total{font-size:18px;font-weight:700;border-top:2px solid var(--cor-borda);padding-top:12px;margin-top:8px}.cart-actions{display:flex;flex-direction:column;gap:10px}.cart-action-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;border-radius:var(--raio);font-size:15px;font-weight:600;text-decoration:none;transition:var(--transicao);border:0;cursor:pointer;color:#fff;width:100%}.cart-action-btn:hover{color:#fff}.cart-action-btn.delivery{background:var(--cor-preco)}.cart-action-btn.delivery:hover{background:#24a344}.cart-action-btn.balcao{background:var(--cor-info)}.cart-action-btn.balcao:hover{background:#3a6a85}.cart-action-btn.mesa{background:var(--cor-primaria)}.cart-action-btn.mesa:hover{background:#c22f3b}.cart-empty{text-align:center;padding:40px 20px;color:var(--cor-texto-leve)}.cart-empty i{font-size:48px;opacity:.3;margin-bottom:12px;display:block}.comanda-badge{display:inline-block;padding:4px 12px;background:rgba(0,0,0,.05);border-radius:var(--raio-pill);font-size:12px;color:var(--cor-texto-leve);margin-bottom:12px}.bottom-action-bar{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:stretch;justify-content:center;background:rgba(255,255,255,.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid rgba(0,0,0,.08);padding:6px 8px;padding-bottom:calc(6px + env(safe-area-inset-bottom,0));z-index:1050;box-shadow:0-2px 16px rgba(0,0,0,.06);gap:4px}.bottom-action-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;flex:1 1 0;min-width:0;overflow:hidden;max-width:100px;padding:8px 4px 6px;border:0;background:0 0;border-radius:10px;color:#555;font-size:18px;cursor:pointer;text-decoration:none;transition:all .2s ease;font-family:inherit;-webkit-tap-highlight-color:transparent}.bottom-action-item span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.bottom-action-item span{font-size:10px;font-weight:600;letter-spacing:.2px;line-height:1}.bottom-action-item:active,.bottom-action-item:hover{background:rgba(0,0,0,.05);color:#111}.bottom-action-whatsapp{color:#25d366}.bottom-action-whatsapp:active,.bottom-action-whatsapp:hover{background:rgba(37,211,102,.1);color:#25d366}.bottom-toast{position:fixed;bottom:80px;left:50%;transform:translateX(-50%) translateY(20px);background:#111;color:#fff;padding:10px 20px;border-radius:50px;font-size:13px;font-weight:600;white-space:nowrap;opacity:0;pointer-events:none;transition:all .3s ease;z-index:1060;display:flex;align-items:center;gap:6px}.bottom-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.footer-mini{text-align:center;padding:16px 16px 72px;font-size:12px;color:#999}.footer-mini strong{color:#777}.footer-mini-sep{margin:0 4px}@media (max-width:576px){.bottom-action-item{font-size:17px;padding:7px 2px 5px}.bottom-action-item span{font-size:9px}.footer-mini{padding-bottom:68px}}.toast-container{position:fixed;top:80px;left:50%;transform:translateX(-50%);z-index:1090;width:100%;max-width:400px;padding:0 16px}.toast-notification{padding:12px 16px;border-radius:var(--raio);margin-bottom:8px;font-size:14px;font-weight:500;display:flex;align-items:center;gap:8px;animation:slideDown .3s ease,fadeOut .3s ease 2.5s forwards;box-shadow:var(--sombra-card)}.toast-success{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.toast-error{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.toast-warning{background:#fff3cd;color:#856404;border:1px solid #ffeeba}.validation-msg{text-align:center;font-size:12px;color:#dc3545;margin:8px 0}@media (max-width:576px){.products-grid{grid-template-columns:repeat(2,1fr);gap:8px}.product-card-img{height:100px}.product-card-img.placeholder{font-size:26px}.product-card-body{padding:8px 10px 10px}.product-card-name{font-size:13px}.product-card-price{font-size:14px}.product-card-btn{width:30px;height:30px;font-size:13px}.header-name,.section-title{font-size:16px}.category-pill{padding:6px 12px;font-size:12px}.form-section{padding:16px}.header-badge{font-size:11px;padding:3px 10px}.header-actions{gap:6px}.header-btn{width:32px;height:32px;font-size:14px}}@media (min-width:577px) and (max-width:768px){.products-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width:769px){.products-grid{grid-template-columns:repeat(4,1fr)}}.select2-container .select2-selection--single{height:48px!important;padding:8px 12px!important}.select2-container--default .select2-selection--single .select2-selection__rendered{line-height:28px!important;font-size:15px;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;display:block!important}.select2-container--default .select2-selection--single .select2-selection__arrow{height:46px!important}.select2-container .select2-selection--single,.select2-dropdown{border:2px solid var(--cor-borda)!important;border-radius:var(--raio)!important}.alert{border-radius:var(--raio);border:0;font-size:14px}.mesa-info{font-size:13px;opacity:.8;color:#fff}.mesa-info span{margin-right:12px}.stories-section{max-width:800px;margin:0 auto;padding:12px 16px}.stories-scroll{display:flex;gap:16px;overflow-x:auto;padding-bottom:4px;scroll-snap-type:x mandatory;-ms-overflow-style:none;scrollbar-width:none}.story-item{flex-shrink:0;cursor:pointer;scroll-snap-align:start;width:66px;text-align:center}.story-inner,.story-ring{padding:3px;border-radius:var(--raio-full)}.story-ring{background:linear-gradient(45deg,#f09433 0,#e6683c 25%,#dc2743 50%,#cc2366 75%,#bc1888 100%);display:inline-block;transition:var(--transicao)}.story-item:hover .story-ring{transform:scale(1.05)}.story-inner{background:var(--cor-branco);display:flex;align-items:center;justify-content:center}.story-circle-img{width:52px;height:52px;border-radius:var(--raio-full);object-fit:cover;display:block}.story-title{margin-top:4px;font-size:10px;color:var(--cor-texto);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:66px}.modal-story .modal-content{background:#000;border:0;border-radius:0}.modal-story .modal-header{background:linear-gradient(180deg,rgba(0,0,0,.7)0,transparent 100%);border-bottom:none;position:absolute;top:0;left:0;right:0;z-index:10;padding:16px 20px}.modal-story .modal-title{color:#fff;font-size:16px;font-weight:600;text-shadow:0 1px 3px rgba(0,0,0,.5)}.modal-story .modal-body{padding:0;display:flex;align-items:center;justify-content:center;min-height:100vh;background:#000}.story-modal-image{max-width:100%;max-height:100vh;width:auto;height:auto;object-fit:contain;cursor:pointer}@media (max-width:576px){.stories-section{padding:10px 12px}.stories-scroll{gap:12px}.story-item{width:60px}.story-circle-img{width:46px;height:46px}.story-title{font-size:9px;max-width:60px}}#story-progress-bars{display:flex;gap:4px;padding:8px 12px;position:absolute;top:0;left:0;right:0;z-index:20}.story-progress-bar{flex:1;height:3px;background:rgba(255,255,255,.3);border-radius:2px;overflow:hidden}.story-progress-fill{height:100%;background:#fff;width:0%;transition:width .1s linear}#story-modal-content{width:100%;height:100vh;position:relative}.story-video-embed{width:100%;max-width:600px;height:90vh;border:0}#story-modal-content,.story-nav-btn{display:flex;align-items:center;justify-content:center}.story-nav-btn{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.5);color:#fff;border:0;width:44px;height:44px;border-radius:50%;font-size:20px;cursor:pointer;z-index:15;transition:all .2s ease}.story-nav-btn:hover{background:rgba(0,0,0,.8);transform:translateY(-50%) scale(1.1)}#story-btn-prev{left:12px}#story-btn-next{right:12px}@media (max-width:576px){.story-nav-btn{width:36px;height:36px;font-size:16px}#story-btn-prev{left:8px}#story-btn-next{right:8px}}.story-modal-video{max-width:100%;max-height:90vh;width:auto;height:auto;object-fit:contain;display:block;margin:0 auto}@media (max-width:576px){.story-modal-video,.story-video-embed{max-height:85vh}}.story-play-icon,.story-video-placeholder{align-items:center;justify-content:center;color:#fff}.story-video-placeholder{width:52px;height:52px;background:linear-gradient(135deg,#667eea 0,#764ba2 100%);display:flex!important;font-size:24px}.story-play-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:30px;height:30px;background:rgba(0,0,0,.7);border-radius:50%;display:flex;font-size:14px;pointer-events:none;z-index:5}.story-inner{position:relative}.story-circle-img[poster]{object-fit:cover}@media (max-width:576px){.story-video-placeholder{width:46px;height:46px;font-size:20px}.story-play-icon{width:26px;height:26px;font-size:12px}}.welcome-back-badge{background:linear-gradient(135deg,#10b981 0,#059669 100%);color:#fff;padding:12px 16px;border-radius:var(--raio);margin-bottom:12px;font-size:14px;font-weight:500;box-shadow:0 2px 8px rgba(16,185,129,.3)}.welcome-back-badge i{margin-right:6px}.phone-capture-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.98);display:flex;align-items:center;justify-content:center;z-index:1060;border-radius:0;padding:24px;animation:phoneCaptureIn .3s ease}.phone-capture-content{text-align:center;max-width:320px;width:100%;max-height:90vh;overflow-y:auto;padding:4px}.phone-capture-icon{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#10b981,#059669);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;color:#fff;font-size:24px}.phone-capture-content h4{font-size:18px;font-weight:700;color:var(--cor-texto);margin-bottom:6px}.phone-capture-content p{margin-bottom:16px;line-height:1.4}.phone-capture-fields{display:flex;flex-direction:column;gap:10px}.phone-capture-fields .form-control{border-radius:var(--raio);padding:12px 14px;font-size:15px;border:2px solid var(--cor-borda);transition:border-color .2s}.phone-capture-fields .form-control:focus{border-color:#10b981;box-shadow:0 0 0 3px rgba(16,185,129,.15)}.phone-capture-fields .form-control.is-invalid{border-color:var(--cor-perigo)}.btn-phone-capture{width:100%;margin-top:12px;padding:12px;border:0;border-radius:var(--raio);background:linear-gradient(135deg,#10b981,#059669);color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:var(--transicao)}.btn-phone-capture:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(16,185,129,.35)}.btn-phone-capture:disabled{opacity:.7;transform:none}.btn-phone-skip{width:100%;margin-top:8px;padding:8px;border:0;background:0 0;color:var(--cor-texto-leve);font-size:13px;cursor:pointer;text-decoration:underline;transition:color .2s}.btn-phone-skip:hover{color:var(--cor-texto)}.quick-actions{max-width:800px;margin:0 auto;padding:6px 16px 2px}.quick-actions-scroll{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;padding:2px 0 6px}.quick-action-chip{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:var(--raio-pill);font-size:12px;font-weight:700;white-space:nowrap;cursor:pointer;transition:all .2s ease;text-decoration:none;flex-shrink:0;border:1.5px solid}.quick-action-chip:hover{transform:translateY(-1px);box-shadow:0 3px 10px rgba(0,0,0,.1)}.quick-action-chip:active{transform:scale(.97)}.quick-action-chip i{font-size:13px}.quick-action-chip.chip-hh{background:linear-gradient(135deg,#fff7ed,#ffedd5);border-color:#fdba74;color:#c2410c}.quick-action-chip.chip-hh .chip-timer{background:#ea580c;color:#fff;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:800;letter-spacing:.3px}.quick-action-chip.chip-combos{background:linear-gradient(135deg,#f5f3ff,#ede9fe);border-color:#c4b5fd;color:#6d28d9}.quick-action-chip.chip-combos .chip-badge{background:#7c3aed;color:#fff;padding:1px 7px;border-radius:10px;font-size:10px;font-weight:800}.quick-action-chip.chip-reserva{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border-color:#6ee7b7;color:#047857}.highlights-section{max-width:800px;margin:4px auto 0;padding:0 16px}.highlights-tabs{display:flex;gap:0;border-bottom:2px solid #e5e7eb;margin-bottom:12px}.highlights-tab{padding:10px 16px;font-size:13px;font-weight:700;color:#9ca3af;background:0 0;border:0;cursor:pointer;position:relative;transition:color .2s ease;white-space:nowrap}.highlights-tab::after{content:"";position:absolute;bottom:-2px;left:0;width:100%;height:2.5px;background:0 0;border-radius:2px 2px 0 0;transition:background .2s ease}.highlights-tab:hover{color:#6b7280}.highlights-tab.active{color:var(--cor-texto)}.highlights-tab.active .tab-count,.highlights-tab.active::after{background:var(--cor-primaria, #ea1d2c)}.highlights-tab .tab-count{background:#e5e7eb;color:#6b7280;padding:1px 7px;border-radius:10px;font-size:10px;font-weight:800;margin-left:4px}.highlights-tab.active .tab-count{color:#fff}.highlights-panel{display:none;animation:hlFadeIn .25s ease}.highlights-panel.active{display:block}.highlights-title-solo{font-size:16px;font-weight:700;margin:0 0 10px;gap:8px}.highlights-title-solo.color-green{color:#059669}.highlights-title-solo.color-purple{color:#7c3aed}.highlights-title-solo.color-indigo{color:#6366f1}.highlights-title-solo,.products-header,.view-toggle{display:flex;align-items:center}.products-header{justify-content:space-between;max-width:800px;margin:12px auto 0;padding:0 16px}.view-toggle{gap:2px;background:#f0f0f0;border-radius:8px;padding:2px}.view-toggle-btn{width:32px;height:28px;border:0;background:0 0;border-radius:6px;color:#999;font-size:13px;cursor:pointer;justify-content:center;transition:all .2s ease}.view-toggle-btn.active{background:#fff;color:var(--cor-texto);box-shadow:0 1px 3px rgba(0,0,0,.1)}.products-grid.list-view{grid-template-columns:1fr;gap:8px}.products-grid.list-view .product-card{display:flex;flex-direction:row;height:auto;min-height:90px;align-items:center}.products-grid.list-view .product-card-img{width:90px!important;max-width:90px!important;min-width:90px!important;height:90px!important;object-fit:cover!important;flex-shrink:0;align-self:center;border-radius:var(--raio) 0 0 var(--raio)}.products-grid.list-view .product-card-img.placeholder{width:90px!important;max-width:90px!important;min-width:90px!important;height:90px!important;font-size:24px}.products-grid.list-view .product-card-desc,.products-grid.list-view .product-card-name{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.products-grid.list-view .product-card-desc{-webkit-line-clamp:1}.products-grid.list-view .product-card-body{flex:1;display:flex;flex-direction:column;justify-content:center;padding:10px 12px}.products-grid.list-view .hh-badge,.products-grid.list-view .product-badge{top:6px;right:auto;left:6px;font-size:9px;padding:2px 6px}.products-grid.list-view .card-fav-btn,.products-grid.list-view .card-share-btn{width:26px;height:26px;font-size:11px;box-shadow:none;background:0 0}.products-grid.list-view .card-share-btn{top:8px;right:10px}.products-grid.list-view .card-fav-btn{top:8px;right:36px}.products-grid.list-view .product-card-name{padding-right:56px}@media (max-width:576px){.products-grid.list-view .product-card-img,.products-grid.list-view .product-card-img.placeholder{width:76px!important;max-width:76px!important;min-width:76px!important;height:76px!important}}.hh-banner,.hh-banner-left,.view-toggle-btn{display:flex;align-items:center}.hh-banner{background:linear-gradient(135deg,#f97316,#ea580c);color:#fff;padding:14px 20px;justify-content:space-between;gap:12px;flex-wrap:wrap;max-width:800px;margin:4px auto 0;border-radius:var(--raio)}.hh-banner-left{gap:10px;font-weight:700;font-size:15px}.hh-banner-left i{font-size:20px;animation:hhPulse 1.5s infinite}.hh-banner-timer{background:rgba(0,0,0,.25);padding:6px 14px;border-radius:20px;font-size:14px;font-weight:700;letter-spacing:.5px}.hh-badge,.product-badge{position:absolute;top:8px;right:8px;color:#fff;padding:3px 8px;border-radius:6px;font-size:10px;font-weight:800;letter-spacing:.3px;z-index:2;display:flex;align-items:center;gap:3px}.hh-badge{background:linear-gradient(135deg,#f97316,#ea580c)}.product-badge{text-transform:uppercase}.product-tags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:4px}.product-tag-pill{display:inline-flex;align-items:center;gap:3px;padding:1px 7px;border-radius:20px;font-size:9px;font-weight:600;color:var(--tag-color, #555);background:color-mix(in srgb,var(--tag-color, #555) 12%,transparent);white-space:nowrap}.product-tag-pill i{font-size:8px}.filter-strip{display:flex;gap:8px;padding:8px 16px 4px;max-width:800px;margin:0 auto;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.filter-strip::-webkit-scrollbar,.upsell-scroll::-webkit-scrollbar{display:none}.filter-chip{display:inline-flex;align-items:center;gap:5px;padding:6px 14px;border-radius:var(--raio-pill);border:1.5px solid var(--cor-borda);background:var(--cor-branco);color:var(--cor-texto-leve);font-size:12px;font-weight:600;white-space:nowrap;cursor:pointer;transition:all .2s ease}.filter-chip:hover{border-color:var(--cor-primaria);color:var(--cor-primaria)}.filter-chip.active{background:var(--cor-primaria);border-color:var(--cor-primaria);color:#fff}.filter-chip i{font-size:11px}.hh-price-old{text-decoration:line-through;color:#94a3b8;font-size:12px;font-weight:400;margin-right:4px}.hh-price-new{color:#ea580c;font-weight:800}.reorder-hh-old{text-decoration:line-through;color:#94a3b8;font-size:11px;margin-right:3px}.reorder-hh-new{color:#ea580c;font-weight:800}.combo-section{max-width:800px;margin:0 auto;padding:4px 16px 8px;position:relative}.combo-section .section-title{font-size:16px;font-weight:700;margin:8px 0 10px;display:flex;align-items:center;gap:8px;color:#7c3aed}.combo-card{display:flex!important;flex-direction:column!important;width:200px;min-width:200px;max-width:200px;flex-shrink:0;scroll-snap-align:start;background:#fff;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.08);overflow:hidden;cursor:pointer;border:1.5px solid transparent;transition:box-shadow .3s,border-color .3s}.combo-card:hover{box-shadow:0 4px 16px rgba(124,58,237,.15);border-color:rgba(124,58,237,.2)}.combo-card-img{width:100%!important;max-width:100%!important;min-width:0;height:110px;object-fit:cover;background:#f1f5f9;display:block}.combo-card-body{padding:10px 12px 12px}.combo-card-name{font-size:14px;font-weight:700;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.combo-card-items{font-size:11px;color:#64748b;margin:4px 0;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.combo-card-prices{display:flex;align-items:baseline;gap:6px;margin-top:4px}.combo-card-old{text-decoration:line-through;color:#94a3b8;font-size:11px}.combo-card-new{color:#7c3aed;font-size:16px;font-weight:800}.combo-dia-badge,.combo-eco-badge{background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff}.combo-eco-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:12px;font-size:9px;font-weight:700;margin-top:4px}.combo-dia-badge{position:absolute;top:8px;left:8px;padding:3px 8px;border-radius:6px;font-size:10px;font-weight:800;letter-spacing:.3px;z-index:2}.modal-product-actions{display:flex;align-items:center;gap:8px;position:absolute;top:12px;right:12px;z-index:5}.modal-action-btn{width:36px;height:36px;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:#64748b;font-size:16px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 6px rgba(0,0,0,.15);transition:all .2s ease;-webkit-tap-highlight-color:transparent}.modal-action-btn:hover{background:#fff;transform:scale(1.1)}.modal-action-btn:active{transform:scale(.95)}.modal-action-btn.share-btn.shared,.modal-action-btn.share-btn:hover{color:var(--cor-primaria, #10b981)}.modal-action-btn.fav-btn{color:#cbd5e1}.modal-action-btn.fav-btn.favorited,.modal-action-btn.fav-btn:hover{color:#ef4444}.modal-action-btn.fav-btn.favorited .fa-heart{animation:heartPop .35s ease}.combo-badge-inline{display:inline-flex;align-items:center;gap:4px;background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff;padding:3px 10px;border-radius:6px;font-size:11px;font-weight:700;margin-left:6px}.combo-items-list{font-size:12px;color:#64748b;margin:6px 0;padding:8px 10px;background:#f8f7ff;border-radius:8px;border-left:3px solid #7c3aed;line-height:1.5}.upsell-section{margin:16px 0 12px}.upsell-title{font-size:14px;font-weight:700;color:var(--cor-texto);margin:0 0 10px;display:flex;align-items:center;gap:6px}.upsell-title i{color:#f59e0b;font-size:15px}.upsell-scroll{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none;-ms-overflow-style:none;scroll-snap-type:x mandatory}.upsell-card{flex-shrink:0;width:120px;min-width:120px;background:var(--cor-branco);border-radius:10px;box-shadow:0 1px 6px rgba(0,0,0,.08);overflow:hidden;scroll-snap-align:start;transition:box-shadow .2s ease}.upsell-card:hover{box-shadow:0 3px 12px rgba(0,0,0,.12)}.upsell-card-img{width:100%;height:80px;object-fit:cover;background:#f1f5f9;display:block}.upsell-card-img.placeholder{display:flex;align-items:center;justify-content:center;font-size:28px;color:#cbd5e1;height:80px;background:#f1f5f9}.upsell-card-body{padding:8px 8px 10px}.upsell-card-name{font-size:12px;font-weight:600;color:var(--cor-texto);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px;line-height:1.3}.upsell-card-price{font-size:13px;font-weight:700;color:var(--cor-preco);margin-bottom:6px}.upsell-card-price .upsell-hh-old{text-decoration:line-through;color:#94a3b8;font-size:10px;font-weight:400;margin-right:3px}.upsell-card-price .upsell-hh-new{color:#ea580c}.upsell-card-btn{width:100%;padding:6px 0;border:0;border-radius:6px;background:var(--cor-preco);color:#fff;font-size:13px;font-weight:700;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:4px}.upsell-card-btn:hover{background:#24a344}.upsell-card-btn:disabled{opacity:.6;cursor:not-allowed}.upsell-card-btn .spinner-border{width:14px;height:14px;border-width:2px}@media (max-width:576px){.upsell-card{width:110px;min-width:110px}.upsell-card-img,.upsell-card-img.placeholder{height:70px}.upsell-card-name{font-size:11px}.upsell-card-price{font-size:12px}.upsell-card-btn{font-size:12px;padding:5px 0}.quick-actions{padding:4px 12px 2px}.quick-action-chip{padding:7px 12px;font-size:11px}.highlights-section{padding:0 12px}.highlights-tab{padding:8px 12px;font-size:12px}.combo-card{width:175px;min-width:175px;max-width:175px}.combo-card-img{height:90px}.combo-card-name{font-size:13px}.combo-card-new{font-size:14px}}.search-section{max-width:800px;margin:0 auto;padding:8px 16px 4px}.search-wrapper{position:relative;display:flex;align-items:center}.search-wrapper .search-icon{position:absolute;left:14px;font-size:15px;color:#9ca3af;pointer-events:none}.search-wrapper input{width:100%;padding:12px 40px 12px 42px;border:2px solid var(--cor-borda);border-radius:var(--raio-pill);font-size:15px;font-family:var(--fonte);background:var(--cor-branco);color:var(--cor-texto);transition:border-color .2s ease,box-shadow .2s ease;outline:0}.search-wrapper input:focus{border-color:var(--cor-menu);box-shadow:0 0 0 3px rgba(0,0,0,.06)}.search-wrapper input::placeholder{color:#9ca3af}.search-clear-btn{position:absolute;right:10px;width:28px;height:28px;border:0;background:#e5e7eb;border-radius:50%;color:#6b7280;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.search-clear-btn:hover{background:#d1d5db;color:#374151}.search-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:40px 20px;color:var(--cor-texto-leve);font-size:14px}.search-empty i{font-size:32px;opacity:.3}@media (max-width:576px){.search-section{padding:6px 12px 4px}.search-wrapper input{padding:10px 36px 10px 38px;font-size:14px}}.order-reorder-card{background:var(--cor-branco);border-radius:var(--raio);padding:14px 16px;width:240px;min-width:240px;flex-shrink:0;scroll-snap-align:start;box-shadow:0 2px 8px rgba(0,0,0,.06);border:1.5px solid var(--cor-borda);transition:border-color .2s ease,box-shadow .2s ease}.order-reorder-card:hover{border-color:var(--cor-preco);box-shadow:0 4px 16px rgba(0,0,0,.1)}.order-reorder-date{font-size:11px;color:var(--cor-texto-leve);margin-bottom:6px;display:flex;align-items:center;gap:4px}.order-reorder-items{font-size:13px;font-weight:500;color:var(--cor-texto);line-height:1.4;margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.order-reorder-footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.order-reorder-total{font-size:15px;font-weight:700;color:var(--cor-preco)}.btn-reorder-full{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border:0;border-radius:8px;background:var(--cor-preco);color:#fff;font-size:12px;font-weight:700;cursor:pointer;transition:all .2s ease;white-space:nowrap}.btn-reorder-full:hover{background:#24a344;transform:translateY(-1px)}.btn-reorder-full:disabled{opacity:.6;cursor:not-allowed;transform:none}@media (max-width:576px){.order-reorder-card{width:210px;min-width:210px;padding:12px 14px}}.gorjeta-options{display:flex;gap:8px;flex-wrap:wrap}.gorjeta-btn{flex:1;min-width:70px;padding:10px 8px;border:2px solid var(--cor-borda, #e2e8f0);border-radius:10px;background:var(--cor-fundo, #f8fafc);color:var(--cor-texto, #1e293b);font-weight:600;font-size:14px;cursor:pointer;transition:all .2s;text-align:center}.gorjeta-btn:hover{border-color:#f59e0b;background:#fffbeb}.gorjeta-btn.active{border-color:#f59e0b;background:#f59e0b;color:#fff}.gorjeta-btn-outro{flex:.8;font-size:13px}.prep-time-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:6px;background:#f0fdf4;color:#16a34a;font-size:11px;font-weight:600;margin-top:4px}.prep-time-badge i{font-size:10px}.agendamento-toggle{display:flex;gap:8px}.agendamento-opt{flex:1;padding:12px 10px;border:2px solid var(--cor-borda, #e2e8f0);border-radius:10px;background:var(--cor-fundo, #f8fafc);color:var(--cor-texto, #1e293b);font-weight:600;font-size:14px;cursor:pointer;transition:all .2s;text-align:center}.agendamento-opt.active,.agendamento-opt:hover{border-color:var(--cor-primaria, #10b981)}.agendamento-opt.active{background:var(--cor-primaria, #10b981);color:#fff}.agendamento-opt i{margin-right:4px}.seo-about{margin:24px auto 16px;max-width:800px;border:1px solid var(--cor-borda, #dce0e4);border-radius:var(--raio, 12px);background:var(--cor-branco, #fff);overflow:hidden}.seo-about-toggle{display:flex;align-items:center;gap:8px;padding:14px 16px;font-size:13px;font-weight:600;color:var(--cor-texto-leve, #555);cursor:pointer;list-style:none;user-select:none}.seo-about-toggle::-webkit-details-marker{display:none}.seo-about-toggle i:first-child{color:var(--cor-primaria, #d62828);font-size:13px}.seo-about-chevron{margin-left:auto;font-size:11px;transition:transform .2s;color:#94a3b8}.seo-about[open] .seo-about-chevron{transform:rotate(180deg)}.seo-about-content{border-top:1px solid var(--cor-borda, #dce0e4);padding:14px 16px 16px}.seo-about-tipo{font-size:13px;margin:0 0 8px;font-weight:500}.seo-about-desc,.seo-about-row,.seo-about-tipo{color:var(--cor-texto-leve, #555)}.seo-about-desc{font-size:13px;line-height:1.6;margin:0 0 12px}.seo-about-row{display:flex;align-items:flex-start;gap:8px;font-size:12px;margin-bottom:6px;line-height:1.5}.seo-about-row i{flex-shrink:0;width:16px;text-align:center;margin-top:2px;color:var(--cor-primaria, #d62828);font-size:12px}.seo-about-row strong{font-weight:600;color:var(--cor-texto, #111)}
/* ================================================================
   Lista Melhorada — estilo iFood (sem gap, separador sutil)
   ================================================================ */
.products-grid.list-view{grid-template-columns:1fr;gap:0;margin-bottom:0;background:#fff}
.products-grid.list-view .product-card{display:flex;flex-direction:row;align-items:center;gap:12px;padding:12px;background:#fff;border-radius:0;box-shadow:none;border:none;border-bottom:1px solid #f0f0f0;min-height:unset;height:auto}
.products-grid.list-view .product-card:last-child{border-bottom:none}
.products-grid.list-view picture{flex-shrink:0;display:flex;width:84px;height:84px}
.products-grid.list-view .product-card-img{width:84px!important;max-width:84px!important;min-width:84px!important;height:84px!important;object-fit:cover!important;border-radius:10px!important;flex-shrink:0;align-self:center}
.products-grid.list-view .product-card-img.placeholder{border-radius:10px!important;font-size:26px}
.products-grid.list-view .product-card-body{flex:1;min-width:0;padding:0;display:flex;flex-direction:column;justify-content:center}
.products-grid.list-view .product-card-name{font-size:14px;font-weight:600;color:#1a1a1a;margin:0 0 3px;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;padding-right:0}
.products-grid.list-view .product-card-desc{font-size:12px;color:#777;margin:0 0 6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal;line-height:1.4}
.products-grid.list-view .product-card-footer{display:flex;align-items:center;gap:8px;margin-top:2px}
.products-grid.list-view .product-card-price{font-size:15px;font-weight:700;color:var(--cor-topo,#ea1d2c)}
.products-grid.list-view .hh-price-old{font-size:12px;color:#999;text-decoration:line-through;font-weight:400}
.products-grid.list-view .hh-price-new{font-size:15px;font-weight:700;color:var(--cor-topo,#ea1d2c)}
.products-grid.list-view .product-card-btn{width:32px!important;height:32px!important;border-radius:50%!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:16px!important;flex-shrink:0;margin-left:auto;box-shadow:0 2px 8px rgba(0,0,0,.15)!important}
.products-grid.list-view .card-fav-btn,.products-grid.list-view .card-share-btn{display:none}
.products-grid.list-view .hh-badge,.products-grid.list-view .product-badge{top:6px;left:96px;right:auto;font-size:9px}
.products-grid.list-view .product-rating,.products-grid.list-view .tag-pills,.products-grid.list-view .prep-time-badge{display:none}

/* Lista Melhorada — fix: imagem estica com conteúdo, fav/share restaurados */
.products-grid.list-view .product-card{align-items:stretch;min-height:108px}
.products-grid.list-view picture{height:auto!important;align-self:stretch;min-height:84px}
.products-grid.list-view picture .product-card-img{height:100%!important;min-height:84px!important;max-height:none!important}
.products-grid.list-view .product-card>.product-card-img:not(.placeholder){height:auto!important;align-self:stretch;min-height:84px!important}
.products-grid.list-view .product-card-img.placeholder{align-self:center;height:84px!important}
.products-grid.list-view .card-fav-btn,.products-grid.list-view .card-share-btn{display:flex;width:24px!important;height:24px!important;font-size:10px!important;background:rgba(255,255,255,.8)!important;box-shadow:none!important}
.products-grid.list-view .card-share-btn{top:6px;right:8px}
.products-grid.list-view .card-fav-btn{top:6px;right:32px}
.products-grid.list-view .product-card-name{padding-right:56px}

/* Lista Melhorada v3 — clamp 1 linha + imagem 96px quadrada */
.products-grid.list-view .product-card{align-items:center;min-height:unset}
.products-grid.list-view picture{width:96px;height:96px!important;align-self:auto;min-height:unset}
.products-grid.list-view picture .product-card-img,.products-grid.list-view .product-card-img{width:96px!important;max-width:96px!important;min-width:96px!important;height:96px!important;min-height:unset!important;max-height:none!important}
.products-grid.list-view .product-card-img.placeholder{height:96px!important}
.products-grid.list-view .product-card>.product-card-img:not(.placeholder){height:96px!important;align-self:auto}
.products-grid.list-view .product-card-name{-webkit-line-clamp:1}
.products-grid.list-view .product-card-desc{-webkit-line-clamp:1;margin-bottom:3px}
.products-grid.list-view .product-card-footer{margin-top:0}
.products-grid.list-view .hh-badge,.products-grid.list-view .product-badge{left:108px}

/* Lista — badge sobre a foto (igual combo) */
.products-grid.list-view .hh-badge,.products-grid.list-view .product-badge{left:8px;top:8px}

/* Lista — badge insetado dentro da foto */
.products-grid.list-view .hh-badge,.products-grid.list-view .product-badge{top:16px;left:16px}

.category-pill i.category-pill-icon{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;font-size:15px;line-height:1}

/* Blindagem do wrapper <picture> (WebP) no GRID — generaliza o fix b5e5b24 pro novo markup.
   <picture> e' display:inline (shrink-to-fit); sem largura definida, a img quebrada (width="300")
   faz o width:100% resolver contra 300px e estoura a coluna, deslocando o layout pra lateral.
   Damos largura definida ao wrapper -> o width:100% da img volta a resolver contra a celula do grid.
   List-view tem regra propria (.products-grid.list-view picture) com especificidade maior e prevalece.
   So o GRID de produtos estoura a pagina; reorder/combo ja ficam contidos por overflow:hidden no container.
   Reorder NAO entra aqui (e' flex row com img 64px; block:100% quebraria). */
.product-card picture,.combo-card picture{display:block;width:100%;max-width:100%;min-width:0}

/* ===== TEMA TOTEM (body.cardapio-totem) — reskin do cardápio padrão com a "cara do totem", adaptado p/ mobile.
   Só VISUAL; comportamentos (filtro de categoria, modal limpo) seguem os switches próprios.
   Não toca list-view (mantém o toggle lista/grade). Tudo gated por body.cardapio-totem (clássico intocado). ===== */
body.cardapio-totem .main-content{padding:16px 14px 24px}
body.cardapio-totem .section-title{margin:12px 2px 14px}
/* grade (grid) = igual ao cardápio padrão: tema NÃO sobrescreve o grid */
/* navegação de categoria com a cara do totem (pills marcadas) */
body.cardapio-totem .category-pill{border-radius:12px}
body.cardapio-totem .category-pill.active{background:var(--cor-topo,#ea1d2c);color:var(--cor-topo-texto,#fff)}
body.cardapio-totem .category-pill.active .category-pill-icon,body.cardapio-totem .category-pill.active i{color:inherit}

/* ----- Carrinho em GAVETA (bottom sheet) estilo totem — só reskin do #visulPedidoModal, lógica intocada ----- */
body.cardapio-totem #visulPedidoModal .modal-dialog{position:fixed;left:0;right:0;bottom:0;margin:0;max-width:100%;width:100%}
body.cardapio-totem #visulPedidoModal .modal-content{border-radius:20px 20px 0 0;max-height:92vh;border:0;overflow:hidden}
body.cardapio-totem #visulPedidoModal.fade .modal-dialog{transform:translateY(100%);transition:transform .28s ease}
body.cardapio-totem #visulPedidoModal.show .modal-dialog{transform:none}
body.cardapio-totem #visulPedidoModal .modal-header{position:relative;border-bottom:1px solid #eef1f5;padding-top:18px}
body.cardapio-totem #visulPedidoModal .modal-header::before{content:"";position:absolute;top:8px;left:50%;transform:translateX(-50%);width:40px;height:4px;border-radius:999px;background:#d8dee6}
body.cardapio-totem #visul_pedido{padding:14px 14px 18px!important;overflow-y:auto;max-height:calc(92vh - 58px);-webkit-overflow-scrolling:touch}
/* "Como vai ser?" (tipo): cards estilo totem */
body.cardapio-totem .cart-v2-checkout-btns{display:grid;grid-template-columns:1fr 1fr;gap:10px}
body.cardapio-totem .cart-v2-checkout-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border-radius:14px;padding:16px 10px;font-weight:800;border:1.5px solid #e8edf3;text-align:center}
body.cardapio-totem .cart-v2-checkout-btn i{font-size:22px}
/* itens do carrinho estilo totem */
body.cardapio-totem .cart-v2-item{border:1px solid #eef1f5;border-radius:14px;padding:12px;margin-bottom:10px}
body.cardapio-totem .cart-v2-img{border-radius:10px}
body.cardapio-totem .cart-v2-name{font-weight:700}
body.cardapio-totem .cart-v2-price{font-weight:800;color:#0f172a}
body.cardapio-totem .cart-v2-qty{border-radius:10px;overflow:hidden}
/* upsell estilo totem */
body.cardapio-totem .upsell-section{background:#fafbfc;border-radius:14px;padding:12px;margin-top:6px}
body.cardapio-totem .upsell-card{border-radius:12px}
body.cardapio-totem .upsell-card-btn{border-radius:10px}
/* totais */
body.cardapio-totem .cart-v2-totals{border-top:1px dashed #e2e8f0;margin-top:8px;padding-top:10px}
body.cardapio-totem .cart-v2-totals-total{font-size:18px;font-weight:800;color:#0f172a}

/* ----- Identidade visual reforçada (tema totem) — grid mantido igual ao padrão ----- */
/* título de seção com barra de destaque */
body.cardapio-totem .section-title{position:relative;padding-left:13px}
body.cardapio-totem .section-title::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:5px;height:22px;border-radius:3px;background:var(--cor-topo,#ea1d2c)}
/* navegação de categoria mais marcada */
body.cardapio-totem .category-pill{padding:9px 16px;font-weight:700;font-size:14px}
/* header com profundidade (sem color-mix p/ compat) */
body.cardapio-totem .header-modern{background:var(--cor-topo,#ea1d2c) linear-gradient(135deg,rgba(255,255,255,.10),rgba(0,0,0,.18))}
body.cardapio-totem .header-name{font-size:20px;font-weight:800}
/* fluidez: toast "adicionado" + bump do contador do carrinho */
body.cardapio-totem .totem-toast{position:fixed;left:50%;bottom:84px;transform:translateX(-50%) translateY(20px);background:#0f172a;color:#fff;padding:12px 20px;border-radius:12px;font-weight:700;font-size:14px;z-index:100002;opacity:0;transition:opacity .25s,transform .25s;pointer-events:none;box-shadow:0 8px 30px rgba(0,0,0,.3)}
body.cardapio-totem .totem-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
@keyframes cartBump{0%{transform:scale(1)}30%{transform:scale(1.06)}100%{transform:scale(1)}}
body.cardapio-totem #cart-float-bar.cart-bump{animation:cartBump .35s ease}

/* ----- Peça 4: pele totem nas telas de checkout (delivery/balcao) + confirmação ----- */
body.cardapio-totem .form-section{background:#fff;border:1px solid #e8edf3;border-radius:16px;padding:16px;margin-bottom:14px;box-shadow:none}
body.cardapio-totem .form-section-title{font-weight:800;font-size:16px;position:relative;padding-left:12px;margin-bottom:12px}
body.cardapio-totem .form-section-title::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:5px;height:18px;border-radius:3px;background:var(--cor-topo,#ea1d2c)}
body.cardapio-totem .form-control{border-radius:12px;padding:12px 14px;font-size:15px;border:1.5px solid #e2e8f0}
body.cardapio-totem .form-control:focus{border-color:var(--cor-topo,#ea1d2c);box-shadow:none}
body.cardapio-totem .order-summary{background:#fafbfc;border-radius:16px;padding:14px}
body.cardapio-totem .order-summary-row.total,body.cardapio-totem .total{font-weight:800;color:#0f172a}
body.cardapio-totem .gorjeta-btn,body.cardapio-totem .agendamento-opt{border-radius:12px}
body.cardapio-totem .btn-submit-order{border-radius:14px;padding:16px;font-size:17px;font-weight:800;width:100%;box-shadow:0 6px 18px rgba(0,0,0,.15)}
/* confirmação (delivery_ok) — toque totem */
body.cardapio-totem .section-wrapper{border-radius:16px}
body.cardapio-totem .alert-success{border-radius:14px}
body.cardapio-totem .btn-success,body.cardapio-totem .btn-block{border-radius:12px;font-weight:700}

/* "Como vai ser?" — passo de tipo (Entrega/Balcão) evidente no carrinho do tema totem */
body.cardapio-totem .cart-v2-checkout-btns{position:relative;margin:6px 0 16px}
body.cardapio-totem .cart-v2-checkout-btns::before{content:"Como vai ser?";grid-column:1 / -1;font-weight:800;font-size:16px;color:#0f172a;margin-bottom:2px}
body.cardapio-totem .cart-v2-checkout-btn{min-height:78px;font-size:14px}
body.cardapio-totem .cart-v2-checkout-btn i{font-size:24px}

/* FIX overflow: abas de destaque (Combos/Pedir Novamente/Sugestões) com texto longo estouravam
   a largura (flex sem overflow + nowrap). Tornar roláveis — só rola se não couber; quando cabe, igual. */
.highlights-tabs{overflow-x:auto;-ms-overflow-style:none;scrollbar-width:none;flex-wrap:nowrap}
.highlights-tabs::-webkit-scrollbar{display:none}
.highlights-tab{flex-shrink:0}

/* ============================================================
   TEMA INTERATIVO — card "linha horizontal" estilo iFood/Uber
   (texto à esquerda, foto à direita, botão + flutuando na foto;
   cards separados e arredondados). Tudo gated por
   body.cardapio-totem .list-view → clássico intocado.
   Decisão Cayu 2026-06-17. ============================================================ */
body.cardapio-totem .products-grid.list-view{grid-template-columns:1fr;gap:12px;background:transparent;margin-bottom:0}
body.cardapio-totem .products-grid.list-view .product-card{
  flex-direction:row-reverse;align-items:stretch;gap:12px;padding:12px;
  background:#fff;border:1px solid #eef1f5;border-bottom:1px solid #eef1f5;border-radius:16px;
  box-shadow:0 1px 4px rgba(15,23,42,.05);min-height:unset;height:auto;position:relative;overflow:hidden
}
body.cardapio-totem .products-grid.list-view .product-card:last-child{border-bottom:1px solid #eef1f5}
body.cardapio-totem .products-grid.list-view .product-card:active{transform:scale(.99)}
/* foto à direita: quadrada, arredondada, sempre preenchendo a altura do card */
body.cardapio-totem .products-grid.list-view picture{width:104px;min-width:104px;flex-shrink:0;align-self:stretch;display:flex;height:auto!important;min-height:104px}
body.cardapio-totem .products-grid.list-view .product-card-img{
  width:104px!important;max-width:104px!important;min-width:104px!important;
  height:100%!important;min-height:104px!important;max-height:none!important;
  border-radius:14px!important;object-fit:cover!important;align-self:stretch
}
body.cardapio-totem .products-grid.list-view .product-card-img.placeholder{
  width:104px!important;max-width:104px!important;min-width:104px!important;height:104px!important;
  border-radius:14px!important;font-size:30px;align-self:center
}
/* bloco de texto à esquerda */
body.cardapio-totem .products-grid.list-view .product-card-body{flex:1;min-width:0;padding:2px 0;display:flex;flex-direction:column;justify-content:flex-start}
body.cardapio-totem .products-grid.list-view .product-card-name{font-size:15px;font-weight:700;color:#0f172a;line-height:1.25;margin:0 0 4px;padding-right:0;-webkit-line-clamp:2}
body.cardapio-totem .products-grid.list-view .product-card-desc{font-size:12.5px;color:#64748b;line-height:1.4;margin:0 0 8px;-webkit-line-clamp:2}
body.cardapio-totem .products-grid.list-view .product-card-footer{margin-top:auto;display:flex;align-items:center;gap:8px}
/* invertido: botão à esquerda, preço à direita */
body.cardapio-totem .products-grid.list-view .product-card-price{order:2;margin-left:auto;font-size:16px;font-weight:800;color:var(--cor-preco,#1a9e3f)}
body.cardapio-totem .products-grid.list-view .hh-price-new{font-size:16px;font-weight:800;color:var(--cor-preco,#1a9e3f)}
/* botão de adicionar VISÍVEL na linha (pílula com texto), fora da foto */
body.cardapio-totem .products-grid.list-view .product-card-btn{
  position:static!important;margin-left:auto;flex:0 0 auto;z-index:auto;
  width:auto!important;height:auto!important;min-height:36px;border-radius:10px!important;
  padding:0 14px!important;gap:6px;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  font-size:13px!important;font-weight:700;
  background:var(--cor-topo,#ea1d2c);color:#fff;
  box-shadow:0 2px 6px rgba(0,0,0,.15)!important;
  order:1;margin-left:0!important
}
body.cardapio-totem .products-grid.list-view .product-card-btn:not([disabled])::after{content:"Adicionar"}
body.cardapio-totem .products-grid.list-view .product-card-btn:active{transform:scale(.9)}
/* card limpo estilo iFood: sem coração/compartilhar em cada linha */
body.cardapio-totem .products-grid.list-view .card-fav-btn,
body.cardapio-totem .products-grid.list-view .card-share-btn{display:none!important}
/* badge (happy hour / destaque) no topo-direito da foto */
body.cardapio-totem .products-grid.list-view .hh-badge,
body.cardapio-totem .products-grid.list-view .product-badge{top:18px;right:18px;left:auto;font-size:9px;padding:3px 7px}
/* ============================================================
   SKIN "Moderno" (config.cardapio_tema = 2) — v2
   Calibrada nos tokens reais do CardapioWeb: fonte do sistema,
   raios moderados (12px), sombras sutis, paleta neutra, cor da
   loja só nos detalhes. Só visual, escopado em body.cardapio-cw.
   ============================================================ */
body.cardapio-cw{--fonte:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--raio:12px;--raio-lg:14px;background:#f9fafb;color:#111827}
body.cardapio-cw,body.cardapio-cw input,body.cardapio-cw button{font-family:var(--fonte)}
body.cardapio-cw .main-content,body.cardapio-cw .search-section,body.cardapio-cw .category-scroll,body.cardapio-cw .banner-section{max-width:900px}

/* Header: faixa fina (capa) + cartão branco com logo sobreposta */
body.cardapio-cw .header-modern{position:static;padding:0;box-shadow:none;background:var(--cor-topo,#ea1d2c)}
body.cardapio-cw .header-inner{max-width:900px;margin:60px auto 0;background:#fff;border-radius:14px 14px 0 0;padding:16px 20px 14px;box-shadow:0 -1px 3px rgba(0,0,0,.05);align-items:center;flex-wrap:wrap;column-gap:14px;row-gap:6px}
body.cardapio-cw .header-logo{width:72px;height:72px;border:3px solid #fff;border-radius:14px;box-shadow:0 2px 10px rgba(0,0,0,.14);margin-top:-44px}
body.cardapio-cw .header-info{flex:1;min-width:160px}
body.cardapio-cw .header-name{color:#111827;font-size:22px;font-weight:700;letter-spacing:-.01em;text-shadow:none;line-height:1.15}
body.cardapio-cw .header-actions{width:100%;justify-content:flex-start;gap:8px;margin-top:4px}
body.cardapio-cw .header-badge{font-size:12px;padding:4px 10px;border-radius:8px;font-weight:600}
body.cardapio-cw .header-badge.open{background:#ecfdf3;color:#16a34a}
body.cardapio-cw .header-badge.closed{background:#fef2f2;color:#dc2626}
body.cardapio-cw .header-btn{width:34px;height:34px;background:#f3f4f6;color:#4b5563;text-shadow:none;font-size:15px}
body.cardapio-cw .header-btn:hover{background:#e5e7eb}
body.cardapio-cw .header-welcome{max-width:900px;margin:0 auto;border-radius:0 0 12px 12px}

/* Busca */
body.cardapio-cw .search-section{padding-top:14px}
body.cardapio-cw .search-wrapper input{border:1px solid #e5e7eb;border-radius:10px;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.04);padding:12px 40px 12px 42px;font-size:14.5px}
body.cardapio-cw .search-wrapper input:focus{border-color:var(--cor-topo,#ea1d2c);box-shadow:0 0 0 3px rgba(0,0,0,.05)}

/* Categorias */
body.cardapio-cw .category-nav{top:0;background:#fff;border-bottom:1px solid #eceef0;box-shadow:none}
body.cardapio-cw .category-pill{font-size:13px;color:#6b7280;padding:12px 14px;font-weight:500}
body.cardapio-cw .category-pill.active{color:#111827;font-weight:600}
body.cardapio-cw .category-pill.active::after{content:"";position:absolute;left:14px;right:14px;bottom:0;height:2.5px;border-radius:3px 3px 0 0;background:var(--cor-topo,#ea1d2c)}

/* Títulos de seção */
body.cardapio-cw .section-title{font-size:19px;font-weight:700;letter-spacing:-.01em;margin:26px 2px 12px;color:#111827}

/* Cards: raio 12px, sombra sutil, hover leve */
body.cardapio-cw .products-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}
body.cardapio-cw .product-card{border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04);border:1px solid #f0f1f3}
body.cardapio-cw .product-card:hover{box-shadow:0 6px 16px rgba(0,0,0,.1);border-color:#e5e7eb;transform:translateY(-2px)}
body.cardapio-cw .product-card-img{height:148px}
body.cardapio-cw .product-card-body{padding:12px 13px 14px}
body.cardapio-cw .product-card-name{font-size:15px;font-weight:600;white-space:normal;line-height:1.3;color:#111827}
body.cardapio-cw .product-card-desc{font-size:12px;color:#6b7280;white-space:normal;line-height:1.4;margin:4px 0 8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
body.cardapio-cw .product-card-price{font-size:16px;font-weight:700}
body.cardapio-cw .product-card-btn{width:36px;height:36px;border-radius:9px;font-size:15px}
body.cardapio-cw .products-grid.list-view .product-card-img{height:104px}/* Moderno — modo LISTA estilo CardapioWeb: foto à direita, linha limpa */
body.cardapio-cw .products-grid.list-view{background:#fff;border-radius:12px;overflow:hidden;border:1px solid #eef0f2;box-shadow:0 1px 3px rgba(0,0,0,.05)}
body.cardapio-cw .products-grid.list-view .product-card{flex-direction:row-reverse;padding:14px 16px;gap:14px;border-bottom:1px solid #f3f4f6}
body.cardapio-cw .products-grid.list-view .product-card:last-child{border-bottom:none}
body.cardapio-cw .products-grid.list-view .product-card:hover{transform:none;background:#fafafb;box-shadow:none;border-color:transparent;border-bottom-color:#f3f4f6}
body.cardapio-cw .products-grid.list-view picture,
body.cardapio-cw .products-grid.list-view .product-card-img{width:88px!important;max-width:88px!important;min-width:88px!important;height:88px!important;border-radius:12px!important}
body.cardapio-cw .products-grid.list-view .product-card-body{padding:0}
body.cardapio-cw .products-grid.list-view .product-card-name{font-size:15px;font-weight:600;color:#111827;padding-right:0;margin:0 0 3px;-webkit-line-clamp:2}
body.cardapio-cw .products-grid.list-view .product-card-desc{font-size:12.5px;color:#6b7280;line-height:1.4;margin:0 0 7px;-webkit-line-clamp:2}
body.cardapio-cw .products-grid.list-view .product-card-price{font-size:15.5px;font-weight:700;color:#111827}
body.cardapio-cw .products-grid.list-view .card-fav-btn,
body.cardapio-cw .products-grid.list-view .card-share-btn,
body.cardapio-cw .products-grid.list-view .product-card-btn{display:none!important}
body.cardapio-cw .products-grid.list-view .product-badge,
body.cardapio-cw .products-grid.list-view .hh-badge{left:auto;right:8px;top:8px}/* Moderno — topo enxuto: chegar aos produtos mais rápido */
body.cardapio-cw .header-welcome{font-size:13px}
body.cardapio-cw .header-welcome-inner{padding-top:7px;padding-bottom:7px}
body.cardapio-cw .clube-banner{margin:6px 12px!important;padding:8px 12px!important}
body.cardapio-cw .banner-section{padding:8px 16px}
body.cardapio-cw .banner-produto-card{height:150px!important}
body.cardapio-cw .banner-produto-overlay{padding:12px 14px}
body.cardapio-cw .banner-produto-nome{font-size:18px;margin-bottom:2px}
body.cardapio-cw .banner-img{height:150px;object-fit:cover;width:100%}
body.cardapio-cw .highlights-section{margin-top:2px;padding-top:0}
body.cardapio-cw .highlights-tabs{margin-bottom:8px}
body.cardapio-cw .combo-card{width:160px;min-width:160px;max-width:160px}
body.cardapio-cw .combo-card-img{height:92px}
body.cardapio-cw .reorder-scroll{padding:4px 2px 6px}
body.cardapio-cw .main-content{padding-top:6px}/* Moderno v3 — grade arejada + capa do banner (sensação leve/organizada) */
/* Capa: o banner vira a foto de capa do header; esconde o banner duplicado abaixo */
body.cardapio-cw .banner-section{display:none}
body.cardapio-cw .header-modern{background-size:cover;background-position:center}
body.cardapio-cw .header-capa{padding:0}
body.cardapio-cw .header-capa .header-inner{margin-top:118px}

/* Respiro geral */
body.cardapio-cw .main-content{padding:14px 16px 30px}
body.cardapio-cw .section-title{margin:30px 2px 16px;font-size:20px}
body.cardapio-cw .search-section{padding-top:16px;padding-bottom:6px}

/* GRADE arejada: cards com foto em destaque, mais espaço e sombra suave */
body.cardapio-cw .products-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;margin-bottom:8px}
body.cardapio-cw .product-card{border-radius:16px;box-shadow:0 2px 4px rgba(0,0,0,.04),0 6px 16px rgba(0,0,0,.06);border:1px solid #eef0f2}
body.cardapio-cw .product-card:hover{box-shadow:0 12px 28px rgba(0,0,0,.12);transform:translateY(-3px)}
body.cardapio-cw .product-card-img{height:172px}
body.cardapio-cw .product-card-body{padding:14px 16px 16px}
body.cardapio-cw .product-card-name{font-size:15.5px;font-weight:600;line-height:1.3;margin-bottom:4px}
body.cardapio-cw .product-card-desc{font-size:12.5px;margin:4px 0 10px;-webkit-line-clamp:2}
body.cardapio-cw .product-card-price{font-size:17px}
body.cardapio-cw .product-card-btn{width:38px;height:38px;border-radius:10px}

/* Combos/sugestões: respiram um pouco mais */
body.cardapio-cw .highlights-section{margin-top:14px}
body.cardapio-cw .combo-card{width:180px;min-width:180px;max-width:180px}
body.cardapio-cw .combo-card-img{height:104px}/* Fix: faixa/capa via padding-top no header (evita colapso de margem; a foto/cor pinta a faixa) */
body.cardapio-cw .header-modern{padding-top:64px}
body.cardapio-cw .header-inner{margin-top:0}
body.cardapio-cw .header-capa{padding-top:122px}
body.cardapio-cw .header-capa .header-inner{margin-top:0}/* Grade: 2 colunas no mobile, 3 no desktop (arejado mas organizado) */
body.cardapio-cw .products-grid{grid-template-columns:repeat(2,1fr);gap:14px}
@media(min-width:768px){body.cardapio-cw .products-grid{grid-template-columns:repeat(3,1fr);gap:20px}}
body.cardapio-cw .product-card-img{height:140px}
@media(min-width:768px){body.cardapio-cw .product-card-img{height:168px}}/* Fix: modo LISTA não pode herdar o "cartão" da grade (senão fica igual à grade) */
body.cardapio-cw .products-grid.list-view .product-card{border-radius:0;box-shadow:none;border:none;border-bottom:1px solid #f3f4f6;transform:none}
body.cardapio-cw .products-grid.list-view .product-card:hover{transform:none;box-shadow:none;background:#fafafb}
body.cardapio-cw .products-grid.list-view .product-card:last-child{border-bottom:none}/* Fix: modo LISTA = 1 coluna (a regra de grade 2/3 col estava vazando) */
body.cardapio-cw .products-grid.list-view{grid-template-columns:1fr!important;gap:0!important}/* Grade harmonizada com os cards de combo (mesma proporção/altura) */
body.cardapio-cw .products-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px}
@media(min-width:768px){body.cardapio-cw .products-grid{grid-template-columns:repeat(auto-fill,minmax(184px,1fr));gap:16px}}
body.cardapio-cw .product-card-img{height:110px}
@media(min-width:768px){body.cardapio-cw .product-card-img{height:124px}}
body.cardapio-cw .product-card-body{padding:10px 12px 12px}
body.cardapio-cw .product-card-name{font-size:14px;margin-bottom:3px}
body.cardapio-cw .product-card-price{font-size:16px}/* ===== Moderno — DESKTOP: proporção e equilíbrio ===== */
@media(min-width:768px){
  /* Capa proporcional (hero mais alto no desktop) */
  body.cardapio-cw .header-capa{padding-top:210px}
  /* Aproveita melhor a largura */
  body.cardapio-cw .main-content,
  body.cardapio-cw .search-section,
  body.cardapio-cw .category-scroll,
  body.cardapio-cw .header-inner,
  body.cardapio-cw .highlights-section{max-width:1040px}
  body.cardapio-cw .clube-banner{max-width:1040px;margin-left:auto!important;margin-right:auto!important}
  /* LISTA: coluna centrada e mais estreita (texto e foto deixam de ficar longe) + foto maior */
  body.cardapio-cw .products-grid.list-view{max-width:780px;margin-left:auto;margin-right:auto}
  body.cardapio-cw .products-grid.list-view .product-card{padding:16px 22px}
  body.cardapio-cw .products-grid.list-view picture,
  body.cardapio-cw .products-grid.list-view .product-card-img{width:104px!important;max-width:104px!important;min-width:104px!important;height:104px!important}
}/* Moderno — LISTA no desktop: 2 colunas de cards horizontais (equilibrado, usa a largura) */
@media(min-width:768px){
  body.cardapio-cw .products-grid.list-view{
    grid-template-columns:1fr 1fr!important;gap:14px!important;
    max-width:1040px;margin-left:auto;margin-right:auto;
    background:transparent;border:none;box-shadow:none;border-radius:0;overflow:visible
  }
  body.cardapio-cw .products-grid.list-view .product-card{
    border:1px solid #eef0f2!important;border-radius:14px!important;background:#fff;
    box-shadow:0 1px 3px rgba(0,0,0,.05);padding:14px 16px
  }
  body.cardapio-cw .products-grid.list-view .product-card:hover{box-shadow:0 6px 16px rgba(0,0,0,.1);background:#fff}
  body.cardapio-cw .products-grid.list-view picture,
  body.cardapio-cw .products-grid.list-view .product-card-img{width:96px!important;max-width:96px!important;min-width:96px!important;height:96px!important}
}/* Header Moderno: logo maior + linha de status (preenche o cartão) */
body.cardapio-cw .header-logo{width:92px;height:92px;margin-top:-52px}
@media(min-width:768px){body.cardapio-cw .header-logo{width:108px;height:108px;margin-top:-62px}}
body.cardapio-cw .header-name{font-size:22px;line-height:1.15}
@media(min-width:768px){body.cardapio-cw .header-name{font-size:27px}}
/* status vai na subline → esconde o selo solto pra não duplicar */
body.cardapio-cw .header-actions .header-badge{display:none}
body.cardapio-cw .header-subline{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:6px;font-size:13px;color:#6b7280;font-weight:500}
body.cardapio-cw .header-subline i{font-size:12px}
body.cardapio-cw .hsub-open{color:#16a34a;font-weight:600;display:inline-flex;align-items:center;gap:5px}
body.cardapio-cw .hsub-open i{font-size:7px}
body.cardapio-cw .hsub-closed{color:#dc2626;font-weight:600;display:inline-flex;align-items:center;gap:5px}
body.cardapio-cw .hsub-closed i{font-size:7px}
body.cardapio-cw .hsub-dot{color:#cbd5e1}/* ===== Moderno — carrinho lateral fixo (desktop) ===== */
body.cardapio-cw .cw-cart{display:none}
@media(min-width:992px){
  body.cardapio-cw .cw-shell{display:flex;align-items:flex-start;gap:24px;max-width:1380px;margin:0 auto;padding:0 16px}
  body.cardapio-cw .cw-main{flex:1;min-width:0}
  body.cardapio-cw .cw-main .main-content,
  body.cardapio-cw .cw-main .search-section,
  body.cardapio-cw .cw-main .category-scroll,
  body.cardapio-cw .cw-main .highlights-section{max-width:100%}
  body.cardapio-cw .cw-cart{display:flex;flex-direction:column;width:340px;flex-shrink:0;position:sticky;top:16px;max-height:calc(100vh - 32px);background:#fff;border:1px solid #eef0f2;border-radius:16px;box-shadow:0 4px 18px rgba(0,0,0,.06);overflow:hidden;margin-top:16px}
  body.cardapio-cw .cw-cart-head{padding:14px 18px;font-weight:700;font-size:15px;color:#111827;border-bottom:1px solid #f1f3f5;display:flex;align-items:center;gap:8px}
  body.cardapio-cw .cw-cart-head i{color:var(--cor-topo,#ea1d2c)}
  body.cardapio-cw .cw-cart-body{overflow-y:auto;flex:1;padding:6px 14px 14px}
  body.cardapio-cw #cart-float-bar{display:none!important}
}/* Carrinho lateral — estado vazio */
body.cardapio-cw .cw-cart-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;padding:40px 20px;color:#94a3b8}
body.cardapio-cw .cw-cart-empty i{font-size:34px;color:#cbd5e1}
body.cardapio-cw .cw-cart-empty span{font-size:14px;font-weight:600;color:#64748b}
body.cardapio-cw .cw-cart-empty small{font-size:12px}/* Moderno desktop: alinhar o cartão do header com o bloco menu+carrinho (mesma largura/bordas) */
@media(min-width:992px){
  body.cardapio-cw .cw-shell{max-width:1320px}
  body.cardapio-cw .header-inner{max-width:1288px;flex-wrap:nowrap}
  body.cardapio-cw .header-info{flex:1}
  body.cardapio-cw .header-actions{width:auto;margin-left:auto;margin-top:0;align-self:center}
}/* Toast da skin Moderno (estava sem estilo → texto preso no rodapé) */
body.cardapio-cw .totem-toast{position:fixed;left:50%;bottom:84px;transform:translateX(-50%) translateY(20px);background:#0f172a;color:#fff;padding:12px 20px;border-radius:12px;font-weight:700;font-size:14px;z-index:100002;opacity:0;transition:opacity .25s,transform .25s;pointer-events:none;box-shadow:0 8px 30px rgba(0,0,0,.3)}
body.cardapio-cw .totem-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}/* Grade no desktop: 3 colunas (4-5 dava sensação de tumulto) */
@media(min-width:768px){
  body.cardapio-cw .products-grid{grid-template-columns:repeat(3,1fr)!important;gap:18px}
}/* Carrinho lateral: cabe os controles (qtd +/-, editar, remover) sem cortar */
@media(min-width:992px){
  body.cardapio-cw .cw-cart{width:370px}
  body.cardapio-cw .cw-cart-body{overflow-x:hidden}
  body.cardapio-cw .cw-cart .cart-v2-actions{flex-wrap:wrap;gap:8px;row-gap:8px}
  body.cardapio-cw .cw-cart .cart-v2-qty{flex-shrink:0}
}/* Barra de boas-vindas: acompanha a largura do cartão/menu (estava travada em 900 → desalinhada) */
@media(min-width:768px){ body.cardapio-cw .header-welcome{max-width:1040px} }
@media(min-width:992px){ body.cardapio-cw .header-welcome{max-width:1288px} }/* Passo "Continuar" no carrinho — escolha Delivery/Balcão movida pro fim (todos os modelos) */
.cart-v2-checkout-step{margin-top:14px}
.cart-v2-continue-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px;border-radius:12px;border:0;background:var(--cor-topo,#ea1d2c);color:var(--cor-topo-texto,#fff);font-size:15px;font-weight:700;cursor:pointer;text-decoration:none;transition:filter .2s}
.cart-v2-continue-btn:hover{filter:brightness(.94)}
.cart-v2-modality-title{font-weight:700;font-size:15px;color:#111827;margin-bottom:10px}
.cart-v2-modality-reveal{animation:cwReveal .2s ease}
@keyframes cwReveal{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
/* totem injetava "Como vai ser?" via ::before; agora há título explícito → remove duplicado */
body.cardapio-totem .cart-v2-checkout-btns::before{content:none}
/* Nudge acionável de frete grátis (Carrinho que vende mais) */
.cart-v2-progress-cta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px;padding:10px 12px;background:linear-gradient(135deg,rgba(45,198,83,.10),rgba(45,198,83,.04));border:1px dashed rgba(45,198,83,.45);border-radius:10px;animation:hlFadeIn .25s ease}
.cart-v2-progress-cta-txt{flex:1;min-width:160px;font-size:13px;line-height:1.35;color:var(--cor-texto)}
.cart-v2-progress-cta-btn{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;background:var(--cor-sucesso,#2dc653);color:#fff;border:0;border-radius:50px;padding:8px 16px;font-size:13px;font-weight:700;cursor:pointer;transition:var(--transicao);box-shadow:0 2px 8px rgba(45,198,83,.35)}
.cart-v2-progress-cta-btn:hover{filter:brightness(1.05);transform:translateY(-1px)}

/* Modal Endereço (2026-07-21) — antes era markup do painel admin (card-people-list,
   slim-card-title) + foto de estoque genérica. Usa as mesmas variáveis --cor-* do
   tema da loja, então acompanha a cor escolhida em Personalizações automaticamente. */
.addr-card{text-align:center;padding:4px 2px}
.addr-icon{width:64px;height:64px;border-radius:var(--raio-full);margin:0 auto 14px;background:var(--cor-topo);display:flex;align-items:center;justify-content:center;font-size:26px;color:var(--cor-topo-texto);box-shadow:0 8px 20px -6px rgba(0,0,0,.35);animation:addrIconPop .4s cubic-bezier(.34,1.56,.64,1)}
@keyframes addrIconPop{0%{transform:scale(.4);opacity:0}70%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}
.addr-store-name{font-size:17px;font-weight:700;color:var(--cor-texto);margin-bottom:10px}
.addr-lines{margin-bottom:20px}
.addr-line{font-size:15px;color:var(--cor-texto);line-height:1.5}
.addr-line-mut{font-size:13px;color:var(--cor-texto-leve);margin-top:2px}
.addr-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.addr-btn{display:inline-flex;align-items:center;gap:7px;padding:11px 18px;border-radius:var(--raio-pill);font-size:13.5px;font-weight:700;border:1.5px solid transparent;cursor:pointer;transition:var(--transicao);white-space:nowrap;text-decoration:none}
.addr-btn-outline{background:transparent;border-color:var(--cor-borda);color:var(--cor-texto)}
.addr-btn-outline:hover{border-color:var(--cor-topo);color:var(--cor-topo)}
.addr-btn-fill{background:var(--cor-topo);color:var(--cor-topo-texto)}
.addr-btn-fill:hover{filter:brightness(1.08);color:var(--cor-topo-texto)}
.addr-btn-copied{background:var(--cor-sucesso)!important;border-color:var(--cor-sucesso)!important;color:#fff!important}
@media (max-width:420px){.addr-actions{flex-direction:column}.addr-btn{width:100%;justify-content:center}}

/* Modal Horários (2026-07-21) — mesma limpeza do modal de Endereço: era 7 blocos
   repetidos com o dado cru do banco ("AM: 11:00:00 / 15:00:00"). Agora usa
   _horTurnos()/_horFmt() (funcoes/Horario.php) pra formatar certo, com o dia de
   hoje destacado e o status "Aberto/Fechado" no topo (mesma fonte do header). */
.hrs-status{display:flex;align-items:center;gap:8px;padding:11px 14px;border-radius:var(--raio);font-size:13.5px;font-weight:700;margin-bottom:14px}
.hrs-status i{font-size:9px}
.hrs-status-open{background:rgba(45,198,83,.12);color:var(--cor-sucesso)}
.hrs-status-closed{background:rgba(214,40,40,.1);color:var(--cor-perigo)}
.hrs-status-info{background:rgba(29,111,165,.1);color:var(--cor-info)}
.hrs-list{display:flex;flex-direction:column}
.hrs-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 2px;border-bottom:1px solid var(--cor-borda)}
.hrs-row:last-child{border-bottom:none}
.hrs-row-hoje{border-left:3px solid var(--cor-topo);padding-left:11px;margin-left:-13px}
.hrs-day{font-size:14px;font-weight:600;color:var(--cor-texto)}
.hrs-row-hoje .hrs-day{color:var(--cor-topo);font-weight:700}
.hrs-badge-hoje{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:var(--raio-pill);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.3px;background:var(--cor-topo);color:var(--cor-topo-texto);vertical-align:middle}
.hrs-time{font-size:13.5px;color:var(--cor-texto-leve);font-weight:600;white-space:nowrap}
.hrs-time-fechado{opacity:.6;font-weight:500}
.cart-v2-progress-cta-btn:disabled{opacity:.7;cursor:default}

/* ===== Fase 1 redesign mobile (2026-07-27) ===== */
/* Ícones flutuantes sobre a capa. body.cardapio-cw força .header-modern a
   position:static (ver regra mais acima) -- sem isto, .cover-icons ancoraria
   no próximo ancestral posicionado (não no header), então reafirma o contexto
   aqui, depois daquela regra, pra vencer por ordem de cascata. */
body.cardapio-cw .header-modern.header-capa{position:relative}
.cover-icons{position:absolute;top:10px;right:10px;display:flex;gap:6px;z-index:3}
.cicon{position:relative;width:32px;height:32px;border-radius:50%;background:rgba(10,8,7,.4);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);border:1px solid rgba(255,255,255,.28);display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;cursor:pointer;flex:0 0 auto;text-decoration:none}
.cicon:hover{background:rgba(10,8,7,.55);color:#fff}
@media(max-width:576px){.cicon{width:28px;height:28px;font-size:12px}}

/* Fileira de estatísticas (avaliação real + cashback + missão ativa) --
   substitui 3 componentes hoje espalhados (chip do quick-actions, cartão de
   missão isolado, bolha de saldo) por 1 tira rolável logo abaixo do nome/status. */
.stat-strip{display:flex;gap:8px;padding:8px 12px 2px;overflow-x:auto;-ms-overflow-style:none;scrollbar-width:none}
.stat-strip::-webkit-scrollbar{display:none}
.stat-chip{flex:0 0 auto;display:flex;align-items:center;gap:6px;background:var(--cor-branco,#fff);border:1px solid var(--cor-borda,rgba(0,0,0,.08));border-radius:11px;padding:7px 11px;box-shadow:0 1px 2px rgba(0,0,0,.04);text-decoration:none;color:inherit;cursor:default}
.stat-chip.clickable{cursor:pointer}
.stat-chip .stat-ic{font-size:13px;line-height:1}
.stat-chip .stat-tx{display:flex;flex-direction:column;line-height:1.2}
.stat-chip .stat-tx b{font-size:11.5px;font-weight:800;color:var(--cor-texto,#1a1512)}
.stat-chip .stat-tx small{font-size:9.5px;color:var(--cor-texto-leve,#8a7d73);font-weight:600}
.stat-chip.stat-missao-done{background:linear-gradient(135deg,var(--cor-sucesso,#2dc653),#1f9e44);border-color:transparent}
.stat-chip.stat-missao-done .stat-tx b,.stat-chip.stat-missao-done .stat-tx small{color:#fff}

/* Happy Hour: promovido de chip pequeno (Quick Actions) a banner de destaque.
   Reaproveita $happyhour_info e o MESMO id do timer (qa-hh-timer) -- o JS de
   contagem regressiva existente (home.php) continua funcionando sem alteração. */
.hh-banner{margin:10px 12px 0;border-radius:14px;padding:12px 14px;background:linear-gradient(120deg,#241009,#4a1c0c);display:flex;align-items:center;gap:12px;color:#fff}
.hh-banner .hh-clock{font-family:ui-monospace,"SF Mono","Cascadia Code",monospace;font-size:16px;font-weight:700;color:#ffcf7a;flex:0 0 auto}
.hh-banner .hh-text{flex:1;min-width:0}
.hh-banner .hh-text b{font-size:13px;display:block}
.hh-banner .hh-text small{font-size:10.5px;color:rgba(255,255,255,.65)}
.hh-banner .hh-off{background:#f0b93e;color:#241009;font-size:12px;font-weight:800;border-radius:8px;padding:5px 9px;flex:0 0 auto}

/* Busca + botão de filtro anexado (o filtro em si continua no lugar/DOM de
   origem -- só ganha um atalho de "pular pra lá" ao lado da busca). */
.search-wrapper{display:flex;align-items:center;gap:8px}
.search-wrapper input{flex:1;width:auto;min-width:0}
.search-filter-btn{flex:0 0 auto;width:38px;height:38px;border-radius:10px;background:var(--cor-primaria-fundo,rgba(214,40,40,.08));border:none;display:flex;align-items:center;justify-content:center;color:var(--cor-primaria,#d62828);cursor:pointer}
.filter-strip-pulse{animation:filterStripPulse .9s ease}
@keyframes filterStripPulse{0%,100%{box-shadow:none}30%{box-shadow:0 0 0 3px var(--cor-primaria,#d62828)}}

/* Carrossel de Combos no mobile: 2 cards INTEIROS + 1/3 do 3º aparecendo, pra
   deixar visível que o carrossel corre pro lado (Cayu 2026-07-29 -- 3 colunas
   inteiras ficavam apertadas E escondiam que tinha mais coisa). Largura por
   calc() em vez de px fixo pra a fração ser sempre 1/3 em qualquer tela:
   padding-left(2) + 2w + 2×gap(10) + w/3 = clientWidth  =>  w = (C - 18) × 3/7
   (C = content width do .reorder-scroll, contra quem o % de um flex item mede).
   Só mobile -- no desktop/tablet (card de 160-200px conforme a faixa, 2 a 4
   cards visíveis) o Cayu disse que está perfeito, nada muda lá. */
@media(max-width:576px){
  .combo-card{width:calc((100% - 18px) * 3 / 7)!important;min-width:calc((100% - 18px) * 3 / 7)!important;max-width:calc((100% - 18px) * 3 / 7)!important}
  .combo-card-name{font-size:12.5px}
  .combo-card-prices{font-size:11px;flex-wrap:wrap}
  /* Selo "COMBO DO DIA" passava por baixo do botão de compartilhar (top-right,
     32px) desde o squeeze de 3 colunas. Disputar a linha de cima com o botão
     não fecha a conta em tela de 320-360px (o texto teria que ser cortado), então
     o selo desce pro rodapé da FOTO -- lá tem a largura inteira do card e o
     texto cabe numa linha só em qualquer tela. Ancorado por `top` calibrado
     (foto 104px - selo 18px - 6px de respiro = 80px) e NÃO por `bottom`: o
     elemento posicionado é o card inteiro, então `bottom` cairia no rodapé do
     card, em cima do selo de desconto (mesma armadilha da Fase 1.2 no
     .reorder-card-btn). */
  .combo-dia-badge{top:80px;left:6px;max-width:calc(100% - 12px);font-size:9px;letter-spacing:0;padding:2px 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .combo-dia-badge i{display:none}

  /* Pedir Novamente / Sugestões (.reorder-card) em 2 COLUNAS, não 3 -- Cayu
     pediu mais respiro pra informação desse card especificamente (nome+estrela+
     preço+badge de motivo cabiam apertado demais em 118px). Mesmo layout em
     coluna (imagem em cima, texto embaixo, botão flutuante sobre a foto). */
  .reorder-scroll>.reorder-card{position:relative;width:178px!important;min-width:178px!important;max-width:178px!important;height:auto!important;flex-direction:column!important;align-items:stretch!important;padding:8px!important;gap:5px!important}
  .reorder-scroll>.reorder-card .reorder-card-img{width:100%!important;height:100px!important;border-radius:9px}
  .reorder-card-name{font-size:12.5px}
  .reorder-card-price{font-size:12px}
  /* Fase 1.2: botão "+" saía da pilha vertical como linha própria alinhada à
     esquerda -- flutuava desconectado do card. Vira posição absoluta ancorada
     na quina inferior direita da FOTO (8px padding + 100px de imagem = 108px),
     removido do fluxo -- mesmo padrão visual de botão flutuante sobre foto já
     usado noutros cards do app. */
  .reorder-scroll>.reorder-card .reorder-card-btn{position:absolute!important;top:66px!important;right:12px!important;z-index:4;border:2px solid #fff!important;box-shadow:0 2px 6px rgba(0,0,0,.28)!important}
  .reorder-scroll>.reorder-card .reorder-card-info{padding-top:2px}
  /* .reorder-badge-inline (motivo da sugestão, "Mais pedido"/"Popular") nunca tinha
     regra própria -- herdava o tamanho do texto do card e quebrava linha, deixando
     a fileira desproporcional. */
  .reorder-badge-inline{display:block;font-size:10px;font-weight:700;color:#9a8f85;white-space:nowrap;margin-bottom:1px}
  .reorder-badge-inline i{margin-right:2px}
}

/* Carrinho flutuante: usava var(--cor-preco) (mesma cor do preço dos produtos
   em todo o cardápio -- mudar ela deixaria os preços vermelhos também, o que
   não era a intenção na hora). Cayu pediu cor fixa (vermelho, padrão de
   mercado pra carrinho/CTA), sem depender do tema da loja nem de
   personalização.
   VALOR LITERAL, NÃO VARIÁVEL: cardapio.css já tem --cor-carrinho (definida
   inline em index.php:193 a partir de config.corcarrinho, cor de fundo
   customizável por loja, default #FFFFE6) -- inventar uma var com esse nome
   colidiu e foi silenciosamente sobrescrita pelo valor por-loja (achado ao
   testar: todos os elementos abaixo saíram #FFFFE6 em vez de vermelho).
   Hardcoded evita qualquer colisão futura, já que o pedido é explicitamente
   "sem depender de tema/personalização". */
.cart-float-inner{background:#e0173a!important}

/* Fase 1.4 (2026-07-27): "preço, botão + e Adicionar ao Pedido devem sempre
   seguir a mesma cor do carrinho (vermelho) -- padrão de mercado, carrinho de
   compra" (Cayu). Preço/botão hoje usam var(--cor-preco) (verde) -- não dá
   pra só trocar o VALOR de --cor-preco pro vermelho porque a mesma variável
   também pinta selos de "grátis" (.free-delivery-badge, .option-item-price.free),
   que precisam continuar verdes (frete grátis = positivo, não devia virar
   vermelho). Por isso sobrescreve os seletores específicos abaixo, não a
   variável em si. !important necessário: cada um desses já tem 3-4 regras
   conflitantes por skin/view-mode/breakpoint espalhadas no arquivo (verde,
   --cor-topo, cinza fixo #111827...), nenhuma delas <body> reservada só pro
   carrinho -- este bloco precisa vencer todas incondicionalmente.
   NÃO inclui: .combo-card-new/old (preço de combo tem identidade visual
   própria, roxa, e reformar só a cor do número ficaria inconsistente com o
   resto do card roxo) nem .free-delivery-badge/.option-item-price.free
   (verde = "grátis", semântica diferente de "preço a pagar"). */
.product-card-price,
.product-detail-price,
.reorder-card-price,
.upsell-card-price,
.size-option-price,
.order-reorder-total{color:#e0173a!important}
.product-card-btn,
.reorder-card-btn,
.upsell-card-btn,
.btn-add-order,
.btn-submit-order,
.btn-reorder-full{background:#e0173a!important}

/* ===== Fase 1.1 (2026-07-27) ===== */
/* Tira de estatísticas vazia não deixa gap (chip de carteira é injetado por JS
   depois do fetch -- sem isso, uma loja sem nenhum chip server-side mostraria
   um respiro em branco antes do fetch resolver). */
.stat-strip:empty{display:none;padding:0;margin:0}
.stat-wallet-chip{background:linear-gradient(135deg,#16a34a,#15803d)!important;border-color:transparent!important}
.stat-wallet-chip .stat-tx b,.stat-wallet-chip .stat-tx small{color:#fff}

/* Categorias: pill horizontal (ícone+texto lado a lado) vira card vertical
   (ícone em cima, nome embaixo) -- pedido do Cayu, referência de app de
   delivery. Mesmas classes/JS de sempre (scroll-spy, filtro por categoria),
   só reflow via flex-direction:column -- não precisou mudar o PHP/HTML.
   LARGURA LIVRE (auto) + texto numa linha só (white-space:nowrap): largura
   fixa fazia nomes de 2 palavras quebrarem linha e ficar mais alto que os
   outros, uma fileira toda desproporcional -- com largura livre cada card
   cresce só o necessário pro próprio nome, e a ALTURA (min-height) fica igual
   pra todo mundo, igual a referência. */
.category-scroll{gap:8px;padding:10px 12px}
/* Fase 1.3 (2026-07-27): cor do texto/ícone virou var(--cor-texto) em vez do
   cinza fixo que a regra base tinha -- lojas com tema custom escuro (fundo
   .category-pill segue var(--cor-branco), que o lojista pode deixar escuro)
   ficavam com letra cinza ilegível em cima de fundo escuro. --cor-texto já é
   o par certo de --cor-branco no sistema de tema (mesmo padrão de --cor-topo/
   --cor-topo-texto), então acompanha automaticamente qualquer customização. */
.category-pill{flex-direction:column;justify-content:center;align-items:center;gap:6px;width:auto;min-height:66px;padding:10px 12px;border-radius:14px;background:var(--cor-branco,#fff);color:var(--cor-texto,#6b7280)!important;border:1px solid rgba(0,0,0,.07);text-align:center;font-size:10.5px;line-height:1.2;white-space:nowrap}
.category-pill-icon{width:32px;height:32px;border-radius:9px;background:rgba(0,0,0,.045);font-size:15px;flex:0 0 auto}
.category-pill img{width:32px;height:32px;border-radius:9px;flex:0 0 auto}
.category-pill .period-badge{margin-left:0;white-space:nowrap}
/* !important nas duas regras acima/abaixo: o skin "Moderno" (body.cardapio-cw)
   tinha regras antigas mais específicas pra um design diferente (sublinhado
   embaixo do texto, sem preenchimento) que sobrescreviam a cor -- este redesign
   troca esse padrão por card preenchido de propósito, então precisa vencer. */
.category-pill.active{background:var(--cor-topo,#ea1d2c)!important;color:var(--cor-topo-texto,#fff)!important;border-color:transparent!important}
.category-pill.active .category-pill-icon{background:rgba(255,255,255,.2);color:inherit}
@media(max-width:576px){.category-pill{min-height:60px;padding:9px 10px;font-size:10px}.category-pill-icon{width:29px;height:29px;font-size:14px}}

/* Fase 1.3 (2026-07-27): filtro (#filterStrip) e toggle grade/lista viviam em
   2 linhas -- a do toggle sobrava quase toda em branco (só 2 iconezinhos no
   canto). Agora #filterStrip é filho de .products-header, na MESMA linha do
   toggle: filtro rolável ocupando o espaço à esquerda, toggle fixo à direita.
   Sem filtro (loja sem tag/avaliação), o toggle some sozinho, sem gap
   estranho, já que justify-content:flex-end cuida do caso com 1 filho só. */
.products-header{justify-content:flex-end;gap:10px}
.products-header .filter-strip{flex:1;min-width:0;margin:0;max-width:none;padding:0}
.products-header .view-toggle{flex:0 0 auto}

/* ═══ Estilo do MENU DE CATEGORIAS — decisão global do master ════════════════
   master/cardapio_tema.php grava 2 chaves em master_config; funcoes/
   MenuCategoriaEstilo.php traduz em classes no <body> (catmenu-card |
   catmenu-pilula | catmenu-texto, + catmenu-noico). Vale pro cardápio
   principal (index.php) e pro de MESA/QR (mesa/menu.php), que usam a MESMA
   .category-pill e o mesmo CSS.

   Por que `!important` e seletor com body: as regras de formato de hoje moram
   em vários @media empilhados, várias já com !important (skin Moderno +
   redesign da Fase 1.1). Ancorar em `body.catmenu-*` sobe a especificidade e
   vence sem precisar reescrever a cascata antiga.

   catmenu-card é o DEFAULT e não tem regra nenhuma aqui -- é exatamente o que
   o cardápio já faz hoje (card vertical no mobile, pill horizontal no desktop),
   então "card" = zero mudança de comportamento pra quem já está no ar. */

/* Ícones desligados -- vale em qualquer formato e em qualquer largura. Esconde
   também <img>/<picture> por segurança: hoje o menu não renderiza mais foto de
   categoria, mas o CSS não pode depender disso. */
body.catmenu-noico .category-pill .category-pill-icon,
body.catmenu-noico .category-pill img,
body.catmenu-noico .category-pill picture,
body.catmenu-noico .category-pill i{display:none!important}
body.catmenu-noico .category-pill{min-height:0!important;padding-top:10px!important;padding-bottom:10px!important;gap:0!important}

/* PÍLULA: texto encapsulado numa cápsula arredondada, sem sublinhado. Ativo =
   preenchido com a cor do topo da loja (mesmo contraste do card de hoje). */
body.catmenu-pilula .category-pill{flex-direction:row!important;align-items:center!important;min-height:0!important;height:auto!important;padding:9px 15px!important;border-radius:999px!important;background:var(--cor-branco,#fff)!important;border:1px solid rgba(0,0,0,.10)!important;font-size:12.5px!important;line-height:1.2!important;text-align:left!important}
body.catmenu-pilula .category-pill::after{display:none!important}
body.catmenu-pilula .category-pill .category-pill-icon{width:auto!important;height:auto!important;background:0 0!important;border-radius:0!important;font-size:13px!important}
body.catmenu-pilula .category-pill.active{background:var(--cor-topo,#ea1d2c)!important;color:var(--cor-topo-texto,#fff)!important;border-color:transparent!important;font-weight:700!important}
body.catmenu-pilula .category-pill.active .category-pill-icon{background:0 0!important;color:inherit!important}

/* TEXTO PURO: sem fundo, sem borda; ativo marcado por sublinhado na cor do topo
   (padrão Goomer/OlaClick/Anota Aí). */
body.catmenu-texto .category-pill{flex-direction:row!important;align-items:center!important;min-height:0!important;height:auto!important;padding:11px 12px!important;border-radius:0!important;background:0 0!important;border:0!important;box-shadow:none!important;font-size:13px!important;font-weight:500!important;line-height:1.2!important;text-align:left!important}
body.catmenu-texto .category-pill .category-pill-icon{width:auto!important;height:auto!important;background:0 0!important;border-radius:0!important;font-size:13px!important}
body.catmenu-texto .category-pill.active{background:0 0!important;border-color:transparent!important;color:var(--cor-texto,#111)!important;font-weight:700!important}
body.catmenu-texto .category-pill.active .category-pill-icon{background:0 0!important;color:inherit!important}
body.catmenu-texto .category-pill.active::after{display:block!important;content:""!important;position:absolute!important;left:12px!important;right:12px!important;width:auto!important;bottom:0!important;height:2.5px!important;border-radius:3px 3px 0 0!important;background:var(--cor-topo,#ea1d2c)!important}


/* ═══ Foto como protagonista — cardápio principal no MOBILE (2026-08-01) ═════
   Cayu comparou nosso cardápio com o de um concorrente e apontou três coisas:
   a foto deles ocupa mais espaço dentro do card, o card de destaque é mais
   alto/imponente, e todas as fotos seguem UM formato só (1x1) com respiro
   mínimo — tanto entre foto e card quanto entre card e página. Medido ao vivo
   em 390px: nossa foto era 170x110 na grade (1,55:1), 145x104 no destaque
   (1,4:1) e 88x88 na lista — três proporções diferentes na mesma tela.

   Aqui a foto vira 1:1 por `aspect-ratio` (não por altura fixa em px), então
   NENHUMA imagem precisa ser reenviada: o object-fit:cover que já existia
   recorta o que sobra. Ganho medido: +44% de área de foto na grade, +28% de
   altura no destaque, +40% na lista.

   Escopo: `body.cardapio-main` (classe nova no index.php) exclui o cardápio de
   MESA/QR, que compartilha este mesmo arquivo; o :not() exclui totem e kiosk,
   que têm desenho próprio. Vale nos skins padrão E Moderno.
   ═══════════════════════════════════════════════════════════════════════════ */
@media(max-width:576px){

  /* 1) Card mais perto da borda da página: 16px -> 12px */
  body.cardapio-main:not(.cardapio-totem):not(.kiosk-mode) .main-content{padding-left:12px;padding-right:12px}

  body.cardapio-main:not(.cardapio-totem):not(.kiosk-mode) .highlights-section{padding-left:12px;padding-right:12px}


  /* 2) GRADE: foto quadrada + rodapé ancorado na base.
     O `margin-top:auto` no rodapé é o que faz preço e botão pararem na mesma
     altura em cards vizinhos -- antes cada card terminava onde o nome deixava,
     e era isso (mais que o tamanho da foto) que fazia a fileira parecer torta.
     O nome fica preso em 2 linhas pelo mesmo motivo. */
  body.cardapio-main:not(.cardapio-totem):not(.kiosk-mode) .products-grid:not(.list-view){grid-template-columns:repeat(2,1fr);gap:10px}

  body.cardapio-main:not(.cardapio-totem):not(.kiosk-mode) .products-grid:not(.list-view) .product-card{display:flex;flex-direction:column;padding:6px;border-radius:14px}

  body.cardapio-main:not(.cardapio-totem):not(.kiosk-mode) .products-grid:not(.list-view) picture{display:block;width:100%}

  body.cardapio-main:not(.cardapio-totem):not(.kiosk-mode) .products-grid:not(.list-view) .product-card-img{height:auto;aspect-ratio:1/1;object-fit:cover;border-radius:10px;display:block}

  body.cardapio-main:not(.cardapio-totem):not(.kiosk-mode) .products-grid:not(.list-view) .product-card-body{flex:1;display:flex;flex-direction:column;padding:8px 6px 4px}

  body.cardapio-main:not(.cardapio-totem):not(.kiosk-mode) .products-grid:not(.list-view) .product-card-name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal;min-height:2.6em;font-size:13.5px;line-height:1.3}

  body.cardapio-main:not(.cardapio-totem):not(.kiosk-mode) .products-grid:not(.list-view) .product-card-footer{margin-top:auto}

  /* botões/selos flutuantes acompanham o padding novo do card (8 -> 12) */
  body.cardapio-main:not(.cardapio-totem):not(.kiosk-mode) .products-grid:not(.list-view) .card-share-btn{top:12px;right:12px}

  body.cardapio-main:not(.cardapio-totem):not(.kiosk-mode) .products-grid:not(.list-view) .card-fav-btn{top:12px;right:50px}

  body.cardapio-main:not(.cardapio-totem):not(.kiosk-mode) .products-grid:not(.list-view) .hh-badge,
  body.cardapio-main:not(.cardapio-totem):not(.kiosk-mode) .products-grid:not(.list-view) .product-badge{top:12px;right:12px}


  /* 3) DESTAQUES (combos): foto quadrada -> card alto e imponente no carrossel.
     O selo "COMBO DO DIA" agora mora dentro de .combo-card-media (wrapper novo
     em home.php) e é ancorado por `bottom` no rodapé da FOTO. Antes era
     absoluto no card inteiro com `top:80px` calibrado à mão na foto de 104px
     (Fase 1.6) -- com a foto proporcional esse número cairia no meio dela. */
  body.cardapio-main:not(.cardapio-totem):not(.kiosk-mode) .combo-card{padding:6px}

  body.cardapio-main:not(.cardapio-totem):not(.kiosk-mode) .combo-card-media{position:relative;display:block;width:100%}

  body.cardapio-main:not(.cardapio-totem):not(.kiosk-mode) .combo-card-media picture{display:block;width:100%}

  body.cardapio-main:not(.cardapio-totem):not(.kiosk-mode) .combo-card-media .combo-card-img{height:auto;aspect-ratio:1/1;object-fit:cover;border-radius:10px;display:block}

  body.cardapio-main:not(.cardapio-totem):not(.kiosk-mode) .combo-card-media .combo-dia-badge{top:auto;bottom:6px;left:6px}

  body.cardapio-main:not(.cardapio-totem):not(.kiosk-mode) .combo-card-body{padding:8px 6px 6px}


  /* 4) LISTA: foto maior encostando na borda do card do lado dela.
     O padding é assimétrico de propósito -- mínimo (8px) do lado da FOTO,
     generoso (14px) do lado do TEXTO -- em vez de a foto flutuar centralizada
     numa moldura igual dos 4 lados. Qual lado é qual depende do skin: no
     padrão a foto é o 1º item da linha (esquerda); no Moderno a lista é
     `row-reverse` e a foto vai pra direita, então o respiro espelha. */
  body.cardapio-main:not(.cardapio-totem):not(.kiosk-mode) .products-grid.list-view .product-card{padding:8px 14px 8px 8px;gap:12px}

  body.cardapio-main.cardapio-cw:not(.cardapio-totem):not(.kiosk-mode) .products-grid.list-view .product-card{padding:8px 8px 8px 14px}

  body.cardapio-main:not(.cardapio-totem):not(.kiosk-mode) .products-grid.list-view picture,
  body.cardapio-main:not(.cardapio-totem):not(.kiosk-mode) .products-grid.list-view .product-card-img{width:104px!important;max-width:104px!important;min-width:104px!important;height:104px!important;border-radius:10px!important}


  /* 5) Loja sem foto no produto recebe o LOGO padrão -- com object-fit:cover
     ele saía cortado no meio ("67Fooo"). Foto de verdade continua em cover. */
  body.cardapio-main:not(.cardapio-totem):not(.kiosk-mode) .product-card-img.is-default,
  body.cardapio-main:not(.cardapio-totem):not(.kiosk-mode) .combo-card-img.is-default,
  body.cardapio-main:not(.cardapio-totem):not(.kiosk-mode) .reorder-card-img.is-default{object-fit:contain;background:#f4f6f8;padding:10px}

}


/* ═══ Modo LISTA no DESKTOP: foto do produto 150x150 (2026-08-01) ════════════
   Pedido do Cayu, continuação da Fase 2 no desktop: a foto do modo lista era
   96x96 nos dois skins. Medido antes de aplicar, apareceu um conflito real —
   no skin Moderno (`cardapio-cw`, 72 das 73 lojas em produção) a lista é de
   DUAS colunas e, a partir de 992px, o carrinho lateral abre e come ~400px da
   largura: o card ficava com 260px, e uma foto de 150 deixaria 66px pro texto.

   Por isso o número de colunas deixa de ser fixo em 2 e passa a depender do
   espaço disponível: `auto-fill` com mínimo de 394px (150 da foto + 12 do gap
   + 200 mínimos de texto + 32 de padding do card) cai pra 1 coluna sozinho
   quando o carrinho lateral abre e volta pra 2 quando a tela comporta. Sem
   breakpoint mágico, e sem depender de qual skin está ativo.

   Escopo: mesmo prefixo da Fase 2 — só o cardápio principal (`cardapio-main`),
   nunca mesa/QR, totem ou kiosk. Mobile (<=576px) segue com os 104px da Fase 2.

   O corte é 577px e NÃO 768 (corrigido em 2026-08-02): o bloco mobile termina em
   576 e este começava só em 768, então entre 577 e 767px a lista caía nas regras
   antigas e a foto ficava 88x96 — MENOR que os 104 do celular, e não quadrada.
   Medido no navegador em 600 e 700px antes e depois; a partir de 577 a faixa
   passa a 150x150 com uma coluna, sem overflow, igual ao desktop.
   ═══════════════════════════════════════════════════════════════════════════ */
@media(min-width:577px){

  /* 1) Colunas conforme o espaço, não conforme um breakpoint */
  body.cardapio-main:not(.cardapio-totem):not(.kiosk-mode) .products-grid.list-view{grid-template-columns:repeat(auto-fill,minmax(394px,1fr))!important;gap:14px!important}

  /* 2) A foto: 150x150 nos dois skins.
     `picture` entra junto porque `imgWebpTag()` emite <picture><source><img>,
     e regra só no <img> não controla a caixa do wrapper (armadilha registrada
     em GOTCHAS quando o card de categoria com foto ficou 8px mais alto). */
  body.cardapio-main:not(.cardapio-totem):not(.kiosk-mode) .products-grid.list-view picture,
  body.cardapio-main:not(.cardapio-totem):not(.kiosk-mode) .products-grid.list-view .product-card-img,
  body.cardapio-main:not(.cardapio-totem):not(.kiosk-mode) .products-grid.list-view .product-card-img.placeholder{width:150px!important;max-width:150px!important;min-width:150px!important;height:150px!important;min-height:150px!important;max-height:150px!important;flex-shrink:0!important;align-self:center!important;border-radius:10px!important}

  body.cardapio-main:not(.cardapio-totem):not(.kiosk-mode) .products-grid.list-view .product-card-img{object-fit:cover!important}

  /* 3) O selo de promoção/Happy Hour vai pro canto da FOTO, que é onde o mobile
     já o coloca — assim o desktop passa a concordar com o celular em vez de
     divergir. A regra antiga o ancorava em `left:96px` (a conta era "logo
     depois da foto de 84px"): com a foto em 150 ele cairia em cima dela por
     acidente, e empurrá-lo pra fora da foto o jogaria em cima do NOME, que é
     absoluto no mesmo topo do card.

     Precisa ESPELHAR por skin, mesma armadilha do padding da Fase 2: a lista é
     `row` no padrão (foto à esquerda) e `row-reverse` no Moderno (foto à
     DIREITA — 72 das 73 lojas de produção). Um valor só acerta um e erra o
     outro. Os números saem do padding do card: 12 no padrão, 16/17 no Moderno. */
  body.cardapio-main:not(.cardapio-cw):not(.cardapio-totem):not(.kiosk-mode) .products-grid.list-view .hh-badge,
  body.cardapio-main:not(.cardapio-cw):not(.cardapio-totem):not(.kiosk-mode) .products-grid.list-view .product-badge{left:18px!important;right:auto!important}

  body.cardapio-main.cardapio-cw:not(.cardapio-totem):not(.kiosk-mode) .products-grid.list-view .hh-badge,
  body.cardapio-main.cardapio-cw:not(.cardapio-totem):not(.kiosk-mode) .products-grid.list-view .product-badge{left:auto!important;right:23px!important;top:21px!important}

  /* 4) Logo de fallback (loja sem foto no produto) inteiro, não cortado —
     mesma correção da Fase 2, que valia só no mobile. Com a foto em 150x150 o
     corte ficaria ainda mais visível. */
  body.cardapio-main:not(.cardapio-totem):not(.kiosk-mode) .products-grid.list-view .product-card-img.is-default{object-fit:contain!important;background:#f4f6f8;padding:12px}

}
