.top-app {
	--top-ink: #17130f;
	--top-cream: #fffaf0;
	--top-paper: #ffffff;
	--top-red: #e4472d;
	--top-red-dark: #bc2d1a;
	--top-green: #176b45;
	--top-gold: #f6b73c;
	--top-line: #e7ddcd;
	--top-muted: #73695f;
	color: var(--top-ink);
	font-family: var(--wp--preset--font-family--body, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
	font-size: 16px;
	line-height: 1.55;
	margin: 0 auto;
	max-width: 1180px;
	padding: 24px 18px 112px;
}

.top-app *, .top-app *::before, .top-app *::after { box-sizing: border-box; }
.top-app h1, .top-app h2, .top-app h3, .top-app h4, .top-app p { margin-top: 0; }
.top-app button, .top-app input, .top-app textarea { font: inherit; }
.top-eyebrow { color: var(--top-red); display: block; font-size: .74rem; font-weight: 900; letter-spacing: .16em; margin-bottom: 7px; text-transform: uppercase; }

.top-status { align-items: center; background: var(--top-ink); border-radius: 18px; color: white; display: flex; gap: 13px; margin-bottom: 20px; padding: 14px 17px; }
.top-status__dot { background: #99f1bf; border: 4px solid rgba(255,255,255,.15); border-radius: 50%; box-sizing: content-box; height: 9px; width: 9px; }
.top-status--paused .top-status__dot, .top-status--closed .top-status__dot { background: #ff8b78; }
.top-status--opening_later .top-status__dot, .top-status--preorders .top-status__dot { background: var(--top-gold); }
.top-status strong { display: block; font-size: .75rem; letter-spacing: .13em; }
.top-status span:last-child { color: #e1dcd6; display: block; font-size: .9rem; }
.top-notice { background: #fff0c9; border: 1px solid #eac66d; border-radius: 14px; font-weight: 750; margin-bottom: 20px; padding: 14px 16px; }

.top-location { background: var(--top-cream); border: 1px solid var(--top-line); border-radius: 26px; display: grid; gap: 18px; margin-bottom: 48px; overflow: hidden; padding: 23px; position: relative; }
.top-location::after { background: var(--top-red); border-radius: 999px; content: ""; height: 8px; inset: auto -30px -4px 50%; position: absolute; transform: rotate(-1deg); }
.top-location__icon { align-items: center; background: var(--top-red); border-radius: 18px; color: white; display: flex; font-size: 2.2rem; height: 68px; justify-content: center; transform: rotate(-3deg); width: 68px; }
.top-location h2 { font-size: clamp(1.5rem, 5vw, 2.1rem); line-height: 1.05; margin-bottom: 8px; }
.top-location p { color: var(--top-muted); margin-bottom: 18px; }
.top-location__actions { display: grid; gap: 11px; }
.top-location__actions--gps-only { display:block; }
.top-location__actions--gps-only .top-button { width:100%; }
.top-location label, .top-fields label { color: var(--top-ink); display: grid; font-size: .84rem; font-weight: 800; gap: 6px; }
.top-location input, .top-fields input, .top-fields textarea { background: white; border: 1px solid #cfc3b2; border-radius: 12px; color: var(--top-ink); min-height: 50px; padding: 11px 13px; width: 100%; }
.top-location input:focus, .top-fields input:focus, .top-fields textarea:focus { border-color: var(--top-red); box-shadow: 0 0 0 3px rgba(228,71,45,.17); outline: none; }
.top-location__result { font-size: .9rem; font-weight: 750; margin: 12px 0 0 !important; min-height: 1.4em; }
.top-location__result.is-success { color: var(--top-green); }
.top-location__result.is-error { color: var(--top-red-dark); }
.top-location__result.is-working { color: var(--top-muted); }
.top-app.has-location .top-location { border-color: #8cc9a7; box-shadow: inset 0 0 0 1px #8cc9a7; }

.top-button { align-items: center; border: 0; border-radius: 12px; cursor: pointer; display: inline-flex; font-weight: 900; justify-content: center; min-height: 52px; padding: 12px 18px; text-decoration: none; transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
.top-button:hover { transform: translateY(-2px); }
.top-button:focus-visible, .top-add:focus-visible, .top-cart-bar:focus-visible, .top-close:focus-visible, .top-quantity button:focus-visible { outline: 3px solid var(--top-gold); outline-offset: 3px; }
.top-button:disabled { cursor: wait; opacity: .55; transform: none; }
.top-button--dark { background: var(--top-ink); color: white; }
.top-button--primary { background: var(--top-red); box-shadow: 0 10px 24px rgba(174,43,24,.22); color: white; }
.top-button--primary:hover { background: var(--top-red-dark); color: white; }
.top-button--whatsapp { background: #147a4d; color: white; }
.top-button--ghost { background: #f2ebe0; color: var(--top-ink); }
.top-button--full { margin-top: 10px; width: 100%; }

.top-menu-heading { margin-bottom: 30px; }
.top-menu-heading h2 { font-size: clamp(2rem, 8vw, 4.5rem); letter-spacing: -.045em; line-height: .96; margin-bottom: 14px; max-width: 780px; }
.top-menu-heading > p { color: var(--top-muted); font-size: 1.03rem; max-width: 560px; }
.top-menu-group { margin: 0 0 44px; }
.top-menu-group__heading { align-items: baseline; border-bottom: 2px solid var(--top-ink); display: flex; justify-content: space-between; margin-bottom: 17px; padding-bottom: 9px; }
.top-menu-group__heading h3 { font-size: 1.25rem; margin: 0; }
.top-menu-group__heading span { color: var(--top-muted); font-weight: 850; }
.top-product-grid { display: grid; gap: 14px; }
.top-product { background: var(--top-paper); border: 1px solid var(--top-line); border-radius: 20px; display: grid; grid-template-columns: 124px 1fr; min-height: 206px; overflow: hidden; transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease; }
.top-product:hover { border-color: #cdbda6; box-shadow: 0 14px 32px rgba(52,37,23,.08); transform: translateY(-2px); }
.top-product__visual { align-items: center; background: #f3d36c; display: flex; font-size: 3.5rem; justify-content: center; min-height: 100%; overflow: hidden; position: relative; }
.top-product__visual img { height: 100%; object-fit: contain; padding: 8px; width: 100%; }
.top-product__visual--pizza img { height: auto; max-height: 100%; }
.top-product:nth-child(3n+2) .top-product__visual { background: #ffd8b8; }
.top-product:nth-child(3n+3) .top-product__visual { background: #c8e4cc; }
.top-product__visual span { background: var(--top-red); bottom: 7px; color: white; font-size: .58rem; font-weight: 900; left: 5px; letter-spacing: .05em; padding: 4px 7px; position: absolute; text-transform: uppercase; transform: rotate(-2deg); }
.top-product__body { display: flex; flex-direction: column; justify-content: space-between; padding: 17px 16px 15px; }
.top-product__size { color: var(--top-red) !important; font-size: .7rem; font-weight: 900; letter-spacing: .12em; margin-bottom: 4px !important; text-transform: uppercase; }
.top-product h4 { font-size: 1.15rem; line-height: 1.1; margin-bottom: 7px; }
.top-product__body > div > p:last-child { color: var(--top-muted); display: -webkit-box; font-size: .86rem; line-height: 1.45; margin-bottom: 10px; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.top-hot-honey { align-items: center; color: var(--top-ink); cursor: pointer; display: flex; font-size: .76rem; font-weight: 800; gap: 7px; margin: 2px 0 10px; }
.top-hot-honey input { accent-color: var(--top-red); height: 17px; margin: 0; width: 17px; }
.top-hot-honey strong { color: var(--top-red); }
.top-product__footer { align-items: center; display: flex; justify-content: space-between; }
.top-product__footer strong { font-size: 1.05rem; }
.top-add { background: var(--top-ink); border: 0; border-radius: 999px; color: white; cursor: pointer; font-size: .84rem; font-weight: 900; min-height: 42px; min-width: 64px; padding: 9px 14px; }
.top-add:disabled { background: #ded6ca; color: #6d655c; cursor: not-allowed; font-size: .7rem; min-width: 90px; }
.top-product.is-unavailable { opacity: .68; }

.top-cart-bar { align-items: center; animation: top-slide-up .22s ease both; background: var(--top-red); border: 0; border-radius: 16px; bottom: max(16px, env(safe-area-inset-bottom)); box-shadow: 0 16px 40px rgba(68,24,15,.32); color: white; cursor: pointer; display: flex; font-weight: 900; justify-content: space-between; left: 18px; min-height: 62px; padding: 14px 18px; position: fixed; right: 18px; z-index: 9996; }
.top-cart-bar.is-empty { background:var(--top-ink); gap:14px; left:auto; min-height:52px; right:18px; width:auto; }
.top-cart-bar[hidden] { display: none; }
@keyframes top-slide-up { from { opacity: 0; transform: translateY(20px); } }

.top-drawer[hidden] { display: none; }
.top-drawer { inset: 0; position: fixed; z-index: 100000; }
.top-drawer__backdrop { background: rgba(14,11,8,.62); inset: 0; opacity: 0; position: absolute; transition: opacity .22s ease; }
.top-drawer__panel { background: var(--top-cream); border-radius: 24px 24px 0 0; bottom: 0; box-shadow: 0 -20px 60px rgba(0,0,0,.18); left: 0; max-height: 92vh; overflow: auto; padding: 22px 18px calc(26px + env(safe-area-inset-bottom)); position: absolute; right: 0; transform: translateY(100%); transition: transform .22s ease; }
.top-drawer.is-open .top-drawer__backdrop { opacity: 1; }
.top-drawer.is-open .top-drawer__panel { transform: translateY(0); }
.top-drawer__panel > header { align-items: start; border-bottom: 1px solid var(--top-line); display: flex; justify-content: space-between; margin-bottom: 10px; padding-bottom: 15px; }
.top-drawer__panel h2 { font-size: 1.65rem; margin: 0; }
.top-close { background: #eee4d5; border: 0; border-radius: 50%; color: var(--top-ink); cursor: pointer; font-size: 1.8rem; height: 44px; line-height: 1; width: 44px; }
.top-cart-line { align-items: center; border-bottom: 1px solid var(--top-line); display: flex; gap: 12px; justify-content: space-between; padding: 13px 0; }
.top-cart-line strong, .top-cart-line span { display: block; }
.top-cart-line > div:first-child span { color: var(--top-muted); font-size: .8rem; }
.top-quantity { align-items: center; background: white; border: 1px solid var(--top-line); border-radius: 999px; display: flex; gap: 4px; padding: 3px; }
.top-quantity button { background: transparent; border: 0; border-radius: 50%; cursor: pointer; font-size: 1.15rem; height: 34px; width: 34px; }
.top-quantity span { font-weight: 900; min-width: 22px; text-align: center; }
.top-total { align-items: center; display: flex; font-size: 1.15rem; justify-content: space-between; padding: 17px 0; }
.top-total strong { font-size: 1.3rem; }
.top-fields { display: grid; gap: 14px; }
.top-fields small { color: var(--top-muted); font-weight: 500; }
.top-fields textarea { resize: vertical; }
.top-fulfillment { border: 0; display: grid; gap: 8px; grid-template-columns: 1fr 1fr; margin: 0; padding: 0; }
.top-fulfillment legend { font-size: .84rem; font-weight: 850; margin-bottom: 7px; }
.top-fulfillment label { align-items: center; background: white; border: 1px solid var(--top-line); border-radius: 12px; cursor: pointer; display: flex; gap: 8px; min-height: 50px; padding: 10px 12px; }
.top-fulfillment input { accent-color: var(--top-red); min-height: auto; width: auto; }
.top-delivery-fields { background: rgba(255,255,255,.58); border: 1px solid var(--top-line); border-radius: 15px; display: grid; gap: 13px; padding: 14px; }
.top-delivery-fields[hidden] { display: none; }
.top-delivery-fields p { color: var(--top-muted); font-size: .78rem; margin: 0; }
.top-honeypot { height: 0; left: -9999px; overflow: hidden; position: absolute; width: 0; }
.top-pay-note { background: white; border: 1px solid var(--top-line); border-radius: 14px; margin-top: 16px; padding: 13px 14px; }
.top-pay-note p { color: var(--top-muted); font-size: .85rem; margin: 3px 0 0; }
.top-form-message { color: var(--top-red-dark); font-size: .88rem; font-weight: 800; margin: 12px 0 0; }
.top-success { padding: 30px 0 10px; text-align: center; }
.top-success__mark { align-items: center; background: var(--top-green); border-radius: 50%; color: white; display: flex; font-size: 2.3rem; height: 76px; justify-content: center; margin: 0 auto 17px; width: 76px; }
.top-success h3 { font-size: 1.7rem; margin-bottom: 9px; }
.top-success p { color: var(--top-muted); }
.top-drawer-open { overflow: hidden; }

.top-tracker { max-width: 940px; min-height: 55vh; padding-top: 40px; }
.top-tracker__loading { color: var(--top-muted); padding: 80px 0; text-align: center; }
.top-tracker__title { align-items: start; display: flex; flex-wrap: wrap; gap: 16px; justify-content: space-between; margin-bottom: 32px; }
.top-tracker__title h1 { font-size: clamp(2.3rem, 9vw, 5rem); letter-spacing: -.05em; line-height: .95; margin-bottom: 6px; }
.top-tracker__title p { color: var(--top-muted); }
.top-status-pill { background: var(--top-ink); border-radius: 999px; color: white; font-size: .75rem; font-weight: 900; letter-spacing: .08em; padding: 10px 14px; text-transform: uppercase; }
.top-status-pill--ready { background: var(--top-green); }
.top-status-pill--canceled, .top-status-pill--not_paid, .top-status-pill--no_show { background: var(--top-red-dark); }
.top-progress { display: grid; list-style: none; margin: 0 0 32px !important; padding: 0 !important; }
.top-progress li { align-items: center; color: #9a9188; display: grid; gap: 12px; grid-template-columns: 32px 1fr; min-height: 52px; padding: 0 !important; position: relative; }
.top-progress li::before { background: var(--top-line); content: ""; height: 100%; left: 15px; position: absolute; top: 26px; width: 2px; }
.top-progress li:last-child::before { display: none; }
.top-progress li > span { background: var(--top-paper); border: 3px solid var(--top-line); border-radius: 50%; height: 32px; position: relative; width: 32px; z-index: 1; }
.top-progress li.is-complete { color: var(--top-ink); }
.top-progress li.is-complete > span { background: var(--top-green); border-color: var(--top-green); }
.top-progress li.is-complete > span::after { color: white; content: "✓"; font-size: .8rem; font-weight: 900; left: 7px; position: absolute; top: 4px; }
.top-progress li.is-current { color: var(--top-red); }
.top-progress li.is-current > span { border-color: var(--top-red); box-shadow: 0 0 0 5px rgba(228,71,45,.12); }
.top-tracker__grid { display: grid; gap: 16px; }
.top-tracker__grid > section { background: white; border: 1px solid var(--top-line); border-radius: 20px; padding: 20px; }
.top-tracker__grid h2 { font-size: 1.1rem; margin-bottom: 14px; }
.top-tracker__items { list-style: none; margin: 0 !important; padding: 0 !important; }
.top-tracker__items li { border-bottom: 1px solid var(--top-line); padding: 9px 0; }
.top-tracker__alert { background: #ffe2dc; border: 1px solid #eca292; border-radius: 16px; color: var(--top-red-dark); font-weight: 900; margin-bottom: 24px; padding: 18px; }
.top-text-link { color: var(--top-red); font-weight: 900; }
.top-tracker__refresh { color: var(--top-muted); font-size: .78rem; margin-top: 16px; text-align: center; }

@media (min-width: 700px) {
	.top-app { padding: 40px 28px 120px; }
	.top-location { align-items: start; grid-template-columns: 78px 1fr; padding: 30px; }
	.top-location__actions { align-items: end; grid-template-columns: minmax(140px, 220px) auto; }
	.top-menu-heading { align-items: end; display: flex; gap: 30px; justify-content: space-between; }
	.top-menu-heading > p { margin-bottom: 8px; }
	.top-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.top-cart-bar { left: 50%; max-width: 620px; right: auto; transform: translateX(-50%); width: calc(100% - 40px); }
	.top-cart-bar.is-empty { left:auto; max-width:none; right:20px; transform:none; width:auto; }
	.top-drawer__panel { border-radius: 24px 0 0 24px; bottom: 0; left: auto; max-height: 100vh; max-width: 540px; padding: 30px; top: 0; transform: translateX(100%); width: 100%; }
	.top-drawer.is-open .top-drawer__panel { transform: translateX(0); }
	.top-tracker__grid { grid-template-columns: 1.15fr .85fr; }
	.top-progress { grid-template-columns: repeat(5, 1fr); }
	.top-progress li { gap: 7px; grid-template-columns: 1fr; justify-items: center; padding: 0 8px !important; text-align: center; }
	.top-progress li::before { height: 2px; left: calc(50% + 16px); top: 15px; width: calc(100% - 32px); }
}

@media (min-width: 1050px) {
	.top-product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

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