/* Identidade oficial: somente roxo, amarelo e branco. */
:root{
  --brand:#620853;
  --brand-dark:#26011a;
  --brand-bright:#620853;
  --accent:#fcd307;
  --paper:#ffffff;
  --line:rgba(98,8,83,.14);
  --ink:#26011a;
}
html,body{background:#fff}
body.no-scroll{position:fixed;inset-inline:0;width:100%;overflow:hidden;overscroll-behavior:none}
.brand-mark.has-logo{width:152px;height:62px;border:0;border-radius:0;background:transparent;color:transparent}
.brand-mark.has-logo img{display:block;width:100%;height:100%;object-fit:contain}
.brand.has-image>span:last-child{display:none}
.topbar{background:rgba(255,255,255,.97);border-color:rgba(98,8,83,.12)}
.hero{background:var(--brand)}
.hero-shade{background:linear-gradient(90deg,var(--brand-dark) 0%,rgba(38,1,26,.88) 39%,rgba(98,8,83,.16) 78%,transparent)}
.info-strip,.product-card,.modal,.cart,.card{background:#fff}
.whatsapp-callout{background:var(--brand)}
.footer{background:var(--brand-dark)}
.primary,.cart-toggle,.mobile-cart{background:var(--brand);box-shadow:0 9px 24px rgba(98,8,83,.23)}
.primary:hover,.cart-toggle:hover{background:var(--brand-dark)}
.primary:disabled,.cart-toggle:disabled{cursor:not-allowed;opacity:.58;box-shadow:none}
.cta,.whatsapp-callout a{background:var(--accent);color:var(--brand-dark)}
.open-status{display:inline-flex;align-items:center;padding:8px 11px;border:1px solid rgba(252,211,7,.65);border-radius:999px;color:#fff}
.open-status.closed{background:var(--accent);color:var(--brand-dark)}
.returning-customer{padding:11px 13px;border:1px solid var(--accent);border-radius:10px;background:#fff9cf;color:var(--brand);font-size:12px;font-weight:800}
.remember-profile{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid var(--line);border-radius:11px;background:#fff;cursor:pointer}
.remember-profile input{width:18px;height:18px;margin-top:2px;accent-color:var(--brand)}
.remember-profile span{display:grid;gap:3px}
.remember-profile b{font-size:12px}
.remember-profile small{color:var(--brand);font-size:10px;line-height:1.4}
.privacy-consent{margin:0;color:var(--brand);font-size:10px;line-height:1.5}.privacy-consent a{font-weight:900;text-decoration:underline}

/* Categorias com capa visual. */
.categories{align-items:stretch;gap:12px;overflow-x:auto;scroll-snap-type:x proximity;padding:2px 2px 10px;scrollbar-color:var(--brand) transparent}
.categories button{
  width:142px;
  height:116px;
  padding:0;
  display:grid;
  grid-template-rows:82px 34px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:17px;
  background:#fff;
  color:var(--brand);
  scroll-snap-align:start;
  box-shadow:0 8px 22px rgba(98,8,83,.09)
}
.categories button .category-media{position:relative;width:100%;height:82px;margin:0;display:grid;place-items:center;overflow:hidden;background:var(--brand);font-size:32px}
.categories button .category-media img{width:100%;height:100%;object-fit:cover}
.categories button .category-media em{display:grid;place-items:center;width:100%;height:100%;font-style:normal}
.categories button>b{display:grid;place-items:center;padding:0 8px;font-size:12px}
.categories button.active,.categories button:hover{border-color:var(--accent);background:var(--brand);color:#fff;transform:translateY(-2px)}
.categories button.active{box-shadow:0 0 0 3px var(--accent),0 10px 24px rgba(98,8,83,.18)}
.product-card{border-color:var(--line)}
.product-media{background:#fff}
.product-copy footer>span,.quantity button{background:rgba(98,8,83,.08);color:var(--brand)}

/* Modal estável no computador e no celular. */
.overlay{overscroll-behavior:contain}
.product-modal{display:flex;flex-direction:column;max-height:min(94vh,820px)}
.product-modal-head,.modal-footer{flex:0 0 auto}
.addon-list{flex:1 1 auto;min-height:80px;max-height:none;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.addon-list label{touch-action:manipulation;user-select:none}
.addon-list label.selected,.fulfillment input:checked+span{background:#fff9cf;border-color:var(--accent)}
.modal-footer{grid-template-columns:auto minmax(0,1fr);align-items:center;background:#fff}
.product-actions{display:grid;grid-template-columns:minmax(96px,.7fr) minmax(190px,1.5fr);gap:9px}
.product-actions button{height:46px;border-radius:11px;font-weight:900}
.secondary{border:1px solid var(--brand);background:#fff;color:var(--brand);cursor:pointer}
.success-icon{background:var(--accent);color:var(--brand)}
.success-links .wa{background:var(--brand)}
.summary,.order-number{background:#fff9cf}

@media(max-width:700px){
  .brand-mark.has-logo{width:116px;height:52px}
  .topbar{padding-left:12px;padding-right:12px}
  .footer .brand-mark.has-logo{width:180px;height:90px}
  .categories{margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px}
  .categories button{width:118px;height:102px;grid-template-rows:70px 32px;border-radius:15px}
  .categories button .category-media{height:70px}
  .modal-footer{grid-template-columns:106px minmax(0,1fr)}
  .product-actions{grid-template-columns:1fr}
  .product-actions button{height:40px}
}

/* Lista de produtos no padrão compacto e proteção contra transbordamento. */
html,body{width:100%;max-width:100%;overflow-x:clip}
body,main,.menu-section,.products,.product-card,.product-card>button,.product-copy{min-width:0}
img{max-width:100%}
button,a,label{touch-action:manipulation}
.menu-section{width:100%;max-width:1280px;padding-inline:clamp(16px,4vw,52px)}
.products{width:100%;grid-template-columns:1fr;gap:0;border-top:1px solid var(--line);background:#fff}
.product-card{width:100%;border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none;overflow:hidden}
.product-card:hover{transform:none;box-shadow:none;background:#fffdf2}
.product-card>button{min-height:172px;padding:17px 0;display:grid;grid-template-columns:minmax(0,1fr) 142px;grid-template-areas:"copy media";align-items:center;gap:24px}
.product-copy{grid-area:copy;padding:0;align-self:stretch;display:flex;flex-direction:column;justify-content:center}
.product-copy>small{color:var(--brand);font-size:9px}
.product-copy h3{margin:5px 0 7px;font:800 21px/1.2 Arial,sans-serif}
.product-copy p{min-height:0;margin:0;max-width:760px;font-size:14px;line-height:1.45;-webkit-line-clamp:2}
.product-copy footer{margin-top:13px;justify-content:flex-start;gap:12px}
.product-copy footer>b{font-size:18px;color:var(--ink)}
.product-copy footer>span{width:28px;height:28px;border-radius:50%;background:var(--brand);color:#fff;font-size:17px}
.product-media{grid-area:media;width:142px;height:142px;border-radius:20px;background:#fff9cf;box-shadow:none}
.product-media img{width:100%;height:100%;object-fit:cover}
.product-media>b{top:7px;left:7px;max-width:calc(100% - 14px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Sacola com itens visuais e recomendações inteligentes. */
.cart{width:min(520px,100%);max-width:100vw;height:100vh;height:100dvh;overflow:hidden}
.cart-items{min-height:0;padding:0 21px 18px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}
.cart-lines{display:grid}
.cart-items .cart-line{padding:17px 0;display:grid;grid-template-columns:84px minmax(0,1fr);gap:13px;align-items:start}
.cart-product-image{width:84px;height:84px;border-radius:15px;background:#fff9cf;display:grid;place-items:center;overflow:hidden}
.cart-product-image img{width:100%;height:100%;object-fit:cover}.cart-product-image em{font-style:normal;font-size:30px}
.cart-product-info{min-width:0}.cart-product-info>header{gap:8px}.cart-product-info>header>div{min-width:0}
.cart-product-info>header b{display:block;overflow-wrap:anywhere;font-size:13px;line-height:1.3}.cart-product-info>header strong{display:block;margin-top:5px;font-size:14px}
.cart-product-info>p{margin-left:0!important;overflow-wrap:anywhere;line-height:1.35}
.cart-suggestions{padding:20px 0 6px;border-top:1px solid var(--line)}
.cart-suggestions>header small{color:var(--brand);font-size:8px;font-weight:900;letter-spacing:.13em}.cart-suggestions>header h3{margin:4px 0 13px;font:800 21px Arial,sans-serif}
.suggestion-track{display:grid;grid-auto-flow:column;grid-auto-columns:132px;gap:10px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding:1px 1px 11px;scrollbar-width:thin}
.suggestion-card{min-width:0;padding:0;border:0;background:#fff;text-align:left;color:var(--ink);scroll-snap-align:start;cursor:pointer}
.suggestion-image{position:relative;width:132px;height:120px;border-radius:17px;background:#fff9cf;display:grid;place-items:center;overflow:hidden}
.suggestion-image img{width:100%;height:100%;object-fit:cover}.suggestion-image em{font-size:37px;font-style:normal}
.suggestion-image i{position:absolute;right:7px;bottom:7px;width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--brand);box-shadow:0 4px 15px #26011a22;font-size:22px;font-style:normal;font-weight:900}
.suggestion-card>b{display:block;margin-top:8px;font-size:14px}.suggestion-card>strong{display:block;margin-top:4px;overflow:hidden;color:var(--ink);font-size:12px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.overlay,.modal,.cart{max-width:100%}.overlay{overflow:hidden;overscroll-behavior:contain}.modal{overflow-x:hidden}.addon-list,.checkout-modal form>.checkout-step{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}

@media(max-width:700px){
  .menu-section{width:100%;margin:42px 0;padding-inline:14px}
  .section-title{min-width:0}.search{min-width:0}
  .categories{width:calc(100% + 28px);max-width:calc(100% + 28px);margin:20px -14px 22px;padding-left:14px;padding-right:14px;overscroll-behavior-x:contain}
  .product-card>button{min-height:142px;padding:14px 0;grid-template-columns:minmax(0,1fr) 112px;gap:13px}
  .product-media{width:112px;height:112px;border-radius:17px}
  .product-copy h3{margin:3px 0 5px;font-size:16px;line-height:1.22}
  .product-copy p{font-size:12px;line-height:1.35;-webkit-line-clamp:2}
  .product-copy footer{margin-top:10px}.product-copy footer>b{font-size:16px}.product-copy footer>span{width:25px;height:25px;font-size:15px}
  .product-card:hover{background:#fff}
  .cart{inset:0;width:100vw;border-radius:0;transition:transform .22s ease}
  .cart>header{padding:18px 16px}.cart-items{padding:0 16px 16px}.cart>footer{padding:14px 16px calc(16px + env(safe-area-inset-bottom))}
  .overlay{padding:0;place-items:end center}
  .modal{width:100%;max-height:100vh;max-height:100dvh;border-radius:20px 20px 0 0}
  .product-modal{max-height:100vh;max-height:100dvh}
  .product-modal-head{grid-template-columns:92px minmax(0,1fr);gap:12px;padding:15px 52px 14px 15px}
  .product-modal-head img{width:92px;height:92px;border-radius:13px}.product-modal-head h2{margin:2px 0 5px;font-size:18px}.product-modal-head p{font-size:11px;-webkit-line-clamp:2;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}
  .addon-list{min-height:0;padding-inline:15px}.notes{padding-inline:15px}.modal-footer{padding:10px 12px calc(10px + env(safe-area-inset-bottom))}
}
@media(max-width:380px){
  .product-card>button{grid-template-columns:minmax(0,1fr) 96px;gap:10px}.product-media{width:96px;height:96px}.product-copy h3{font-size:15px}.product-copy p{font-size:11px}.product-copy footer>b{font-size:15px}
  .cart-items .cart-line{grid-template-columns:70px minmax(0,1fr);gap:10px}.cart-product-image{width:70px;height:70px}.suggestion-track{grid-auto-columns:120px}.suggestion-image{width:120px;height:110px}
}
@media(max-width:430px){
  .modal-footer{grid-template-columns:1fr}
  .quantity{width:max-content}
  .product-actions{grid-template-columns:1fr 1.6fr}
}

/* Categorias compactas: nenhuma imagem pode alterar a largura do botão. */
.categories{gap:9px}
.categories button{
  flex:0 0 108px!important;
  width:108px!important;
  min-width:108px!important;
  max-width:108px!important;
  height:88px!important;
  grid-template-rows:58px 30px!important;
  padding:0!important
}
.categories button .category-media{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  height:58px!important;
  margin:0!important
}
.categories button .category-media img{display:block;min-width:0;max-width:100%;width:100%!important;height:100%!important;object-fit:cover}
.categories button>b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}

/* Online verde e pulsante. */
.open-status{gap:8px;border-color:#22c55e;background:#118a45;color:#fff;box-shadow:0 0 0 0 rgba(34,197,94,.55)}
.open-status::before{content:"";width:9px;height:9px;border-radius:50%;background:#7dffac;box-shadow:0 0 0 0 rgba(125,255,172,.75);animation:online-pulse 1.7s infinite}
.open-status.closed{border-color:var(--accent);background:var(--accent);color:var(--brand-dark);box-shadow:none}
.open-status.closed::before{background:var(--brand);animation:none}
@keyframes online-pulse{0%{box-shadow:0 0 0 0 rgba(125,255,172,.7)}70%{box-shadow:0 0 0 9px rgba(125,255,172,0)}100%{box-shadow:0 0 0 0 rgba(125,255,172,0)}}

/* Rodapé institucional sem acesso ao painel. */
.footer{display:block;padding-top:38px;padding-bottom:25px}
.footer-main{display:grid;grid-template-columns:1.1fr 1fr auto;align-items:center;gap:28px}
.footer-business{display:grid;gap:6px;color:#fff}
.footer-business>b{font-size:15px}.footer-business span,.footer-business a{color:#fff;font-size:11px}
.footer-social{display:flex;gap:9px}
.footer-social a{width:42px;height:42px;border:1px solid var(--accent);border-radius:50%;display:grid;place-items:center;color:var(--accent);font-weight:900;font-size:16px}
.footer-social svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2}.footer-social svg .fill{fill:currentColor;stroke:none}
.footer-social a:hover{background:var(--accent);color:var(--brand-dark)}
.footer-bottom{margin-top:25px;padding-top:18px;border-top:1px solid rgba(255,255,255,.18);display:flex;align-items:center;justify-content:space-between;gap:20px}
.footer-bottom nav{display:flex;flex-wrap:wrap;gap:16px}.footer-bottom a{color:var(--accent);font-size:10px;font-weight:800}.footer-bottom span{font-size:10px}
.location-assist{padding:12px;border:1px dashed var(--brand);border-radius:10px;background:#fff;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:10px}
.location-assist button{padding:9px 11px;border:0;border-radius:8px;background:var(--brand);color:#fff;font-weight:800;cursor:pointer}
.location-assist span{color:var(--brand);font-size:10px;line-height:1.4}
.location-assist.success{border-color:#16a34a;background:#ecfdf3}.location-assist.success span{color:#166534}
@media(max-width:700px){
  .categories button{flex-basis:94px!important;width:94px!important;min-width:94px!important;max-width:94px!important;height:78px!important;grid-template-rows:50px 28px!important}
  .categories button .category-media{height:50px!important}
  .footer-main{grid-template-columns:1fr;justify-items:center;text-align:center}
  .footer-bottom{flex-direction:column}.footer-bottom nav{justify-content:center}
  .location-assist{grid-template-columns:1fr;text-align:center}
}
