:root{--ink:#172018;--muted:#68736b;--paper:#f4f1e8;--card:#fffdf7;--green:#176b45;--green-dark:#0d4c30;--line:#dedbd0;--amber:#e8a52f;font-family:"Trebuchet MS","Segoe UI",sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#ede9dc 0,#f8f6ef 360px,#f4f1e8 100%)}button,input,textarea{font:inherit}.okd-loading,.okd-error{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:14px;padding:30px;text-align:center}.okd-loading span{width:38px;height:38px;border:4px solid #cad8cf;border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.okd-hero{padding:34px max(20px,calc((100vw - 1080px)/2));background:radial-gradient(circle at 86% 20%,rgba(232,165,47,.28),transparent 27%),#173d2a;color:#fff}.okd-hero__brand span{color:#f6c668;font-size:12px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.okd-hero__brand strong{display:block;margin-top:7px;font-family:Georgia,serif;font-size:clamp(30px,7vw,52px)}.okd-hero__brand p{max-width:620px;margin:8px 0;color:#d9e5dc}.okd-hero__facts{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.okd-hero__facts span{padding:7px 11px;border:1px solid rgba(255,255,255,.24);border-radius:999px;background:rgba(255,255,255,.08);font-size:13px;font-weight:800}.okd-hero__facts .is-open{background:#d8f3df;color:#145837}.okd-hero__facts .is-closed{background:#f5ddd8;color:#87382d}.okd-categories{position:sticky;top:0;z-index:10;display:flex;gap:9px;overflow:auto;padding:13px max(16px,calc((100vw - 1080px)/2));background:rgba(244,241,232,.94);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.okd-categories button{flex:0 0 auto;padding:9px 14px;border:1px solid #d4d2c9;border-radius:999px;background:#fffdf7;color:#485249;font-weight:800}.okd-categories button.is-active{border-color:var(--green);background:var(--green);color:#fff}.okd-menu{max-width:1080px;margin:auto;padding:22px 16px 130px}.okd-category-section{scroll-margin-top:75px;margin-bottom:34px}.okd-category-section>header h2{margin:0;font-family:Georgia,serif;font-size:29px}.okd-category-section>header p{margin:5px 0 15px;color:var(--muted)}.okd-products{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.okd-product{min-height:150px;display:grid;grid-template-columns:1fr 120px;gap:14px;padding:15px;border:1px solid var(--line);border-radius:16px;background:var(--card);color:var(--ink);text-align:left;box-shadow:0 8px 24px rgba(40,48,42,.05)}.okd-product div{display:flex;flex-direction:column}.okd-product strong{font-size:17px}.okd-product p{flex:1;margin:7px 0;color:var(--muted);font-size:14px}.okd-product span{font-weight:900;color:var(--green-dark)}.okd-product s{color:#8b918c;font-weight:500}.okd-product em{margin-top:6px;color:#9b3429;font-size:12px;font-style:normal;font-weight:900}.okd-product img,.okd-product__placeholder{width:120px;height:120px;object-fit:cover;border-radius:12px;background:#e7eee9;display:grid;place-items:center;font-family:Georgia,serif;font-size:28px}.okd-product.is-blocked{opacity:.62}.okd-footer{display:flex;justify-content:space-between;gap:12px;padding:24px max(16px,calc((100vw - 1080px)/2));background:#173d2a;color:#dce7df}.okd-cart-bar{position:fixed;z-index:30;right:0;bottom:0;left:0;padding:12px max(14px,calc((100vw - 700px)/2));background:linear-gradient(transparent,rgba(20,31,24,.16))}.okd-cart-bar button{width:100%;display:flex;justify-content:space-between;padding:16px 18px;border:0;border-radius:14px;background:var(--green);color:#fff;box-shadow:0 12px 34px rgba(18,71,45,.3)}.okd-modal-layer,.okd-cart-layer{position:fixed;inset:0;z-index:50}.okd-modal-backdrop{position:absolute;inset:0;background:rgba(14,22,17,.62);backdrop-filter:blur(4px)}.okd-product-modal,.okd-cart{position:absolute;right:0;bottom:0;left:0;max-height:92vh;overflow:auto;margin:auto;border-radius:22px 22px 0 0;background:#fffdf8;box-shadow:0 -20px 60px rgba(0,0,0,.2)}.okd-product-modal{max-width:720px}.okd-product-modal>header,.okd-cart>header{display:flex;justify-content:space-between;gap:15px;padding:22px;border-bottom:1px solid var(--line)}.okd-product-modal h2,.okd-cart h2{margin:3px 0;font-family:Georgia,serif}.okd-product-modal header p{margin:5px 0;color:var(--muted)}.okd-product-modal header button,.okd-cart header button{width:36px;height:36px;border:1px solid var(--line);border-radius:50%;background:#fff}.okd-option-groups fieldset{margin:0;padding:18px 22px;border:0;border-bottom:1px solid var(--line)}.okd-option-groups legend{width:100%;display:flex;justify-content:space-between;font-weight:900}.okd-option-groups legend small{color:var(--muted)}.okd-option-groups label{display:grid;grid-template-columns:auto 1fr auto;gap:10px;padding:12px 0}.okd-option-groups input{width:20px;height:20px;accent-color:var(--green)}.okd-field-error{min-height:18px;margin:0;color:#a22d23;font-size:13px;font-weight:800}.okd-note{display:grid;gap:7px;padding:18px 22px;font-weight:800}.okd-note textarea{padding:11px;border:1px solid var(--line);border-radius:10px}.okd-product-modal form>footer{position:sticky;bottom:0;display:flex;align-items:end;gap:12px;padding:16px 22px;background:#fff}.okd-product-modal form>footer label{display:grid;gap:5px}.okd-product-modal form>footer input{width:75px;padding:11px;border:1px solid var(--line);border-radius:9px}.okd-product-modal form>footer button,.okd-cart>footer>button{flex:1;padding:14px;border:0;border-radius:11px;background:var(--green);color:#fff;font-weight:900}.okd-cart{max-width:560px}.okd-cart__items{padding:8px 20px}.okd-cart__items article{display:grid;grid-template-columns:1fr auto;gap:6px;padding:14px 0;border-bottom:1px solid var(--line)}.okd-cart__items article div{display:grid;gap:4px}.okd-cart__items small,.okd-cart__items p{margin:0;color:var(--muted)}.okd-cart__items article button{grid-column:1/-1;width:max-content;border:0;background:none;color:#a0342c;font-weight:800}.okd-cart>footer{display:grid;gap:10px;padding:20px}.okd-cart>footer div{display:flex;justify-content:space-between;font-size:20px}.okd-cart>footer p{margin:0;color:#9a4b13;font-weight:800}.okd-cart>footer>button:disabled{background:#9ca49e}.okd-cart>footer>small{text-align:center;color:var(--muted)}.okd-error span{color:var(--green);font-weight:900;text-transform:uppercase}.okd-error h1{margin:0;font-family:Georgia,serif;font-size:42px}.okd-error p{max-width:460px;color:var(--muted)}@media(max-width:700px){.okd-products{grid-template-columns:1fr}.okd-product{grid-template-columns:1fr 96px;min-height:130px}.okd-product img,.okd-product__placeholder{width:96px;height:96px}.okd-footer{flex-direction:column}}.okd-checkout,.okd-order-confirmed{position:absolute;right:0;bottom:0;left:0;max-width:680px;max-height:94vh;overflow:auto;margin:auto;border-radius:22px 22px 0 0;background:#fffdf8;box-shadow:0 -20px 60px rgba(0,0,0,.2)}.okd-checkout>header{display:flex;justify-content:space-between;gap:15px;padding:20px 22px;border-bottom:1px solid var(--line)}.okd-checkout>header h2{margin:3px 0;font-family:Georgia,serif}.okd-checkout>header button{width:36px;height:36px;border:1px solid var(--line);border-radius:50%;background:#fff}.okd-checkout__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;padding:20px 22px}.okd-checkout__grid label{display:grid;gap:6px;font-size:13px;font-weight:900}.okd-checkout__grid .is-wide{grid-column:1/-1}.okd-checkout__grid input,.okd-checkout__grid select,.okd-checkout__grid textarea{width:100%;padding:11px;border:1px solid var(--line);border-radius:9px;background:#fff;font:inherit}.okd-checkout__error{min-height:20px;margin:0;padding:0 22px;color:#a02d24;font-weight:800}.okd-checkout form>footer{position:sticky;bottom:0;display:grid;gap:11px;padding:17px 22px;background:#fff}.okd-checkout form>footer div{display:flex;justify-content:space-between;font-size:19px}.okd-checkout form>footer button,.okd-order-confirmed button{padding:14px;border:0;border-radius:11px;background:var(--green);color:#fff;font-weight:900}.okd-order-confirmed{top:50%;bottom:auto;display:grid;justify-items:center;gap:10px;padding:34px;transform:translateY(-50%);text-align:center;border-radius:22px}.okd-order-confirmed span{color:var(--green);font-weight:900;text-transform:uppercase}.okd-order-confirmed h2{margin:0;font-family:Georgia,serif;font-size:38px}.okd-order-confirmed p{max-width:440px;color:var(--muted)}.okd-order-confirmed strong{font-size:24px}@media(max-width:600px){.okd-checkout__grid{grid-template-columns:1fr}.okd-checkout__grid .is-wide{grid-column:auto}}
.okd-order-tracking { align-items:center; background:#fff7e8; border:1px solid #f2c36b; border-radius:14px; display:flex; gap:16px; justify-content:space-between; margin:16px auto 0; max-width:1180px; padding:14px 18px; }
.okd-order-tracking[hidden] { display:none; }
.okd-order-tracking div { display:grid; gap:3px; }
.okd-order-tracking span { color:#6f5730; font-size:.82rem; }
.okd-order-tracking strong { color:#33240d; }
.okd-order-tracking button { background:#33240d; border:0; border-radius:999px; color:#fff; cursor:pointer; padding:9px 14px; }

.okd-app .okd-group-questions { display:grid; gap:12px; margin:16px 0; }
.okd-app .okd-group-questions fieldset { border:1px solid var(--okd-border,#cbd5cf); border-radius:12px; padding:14px; min-width:0; }
.okd-app .okd-group-questions legend { font-weight:600; overflow-wrap:anywhere; }
.okd-app .okd-group-questions fieldset > div { display:flex; flex-wrap:wrap; gap:12px; }
.okd-app .okd-group-questions label { display:flex; align-items:center; gap:8px; min-height:44px; padding:8px 14px; border:1px solid var(--okd-border,#cbd5cf); border-radius:10px; cursor:pointer; }
.okd-app .okd-group-questions input[type=radio] { width:20px; height:20px; accent-color:var(--okd-action); }
.okd-app .okd-group-questions label:has(:checked) { background:var(--okd-soft); color:var(--okd-brand-text); border-color:var(--okd-action); }
/* Address review is available before the lazy map module and for stores without maps. */
.okd-app .okd-address-review{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0;grid-column:1/-1}
.okd-app .okd-address-review[hidden],.okd-app .okd-address-location[hidden]{display:none!important}
.okd-app .okd-address-review label{min-width:0}
.okd-app .okd-address-location{min-width:0;padding:12px;border:1px solid var(--okd-border,#cbded5);border-radius:12px;background:var(--okd-surface,#fff)}
.okd-app .okd-address-location h4{margin:0 0 8px}.okd-app .okd-address-location p{margin:6px 0 12px}
.okd-app .okd-address-location .okd-map-actions{display:flex;gap:8px;flex-wrap:wrap}
.okd-app .okd-address-location .okd-map-actions button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:10px 14px;border:1px solid var(--okd-border,#cbded5);border-radius:10px;background:var(--okd-surface,#fff);color:var(--okd-text,#172922);font:inherit;cursor:pointer}
.okd-app .okd-address-location[data-confirmed=true] [data-address-gps],.okd-app .okd-address-location[data-confirmed=true] [data-address-manual-start]{display:none}
.okd-app .okd-address-location [data-address-gps]{background:var(--okd-primary,#08754f);color:#fff}
@media(max-width:420px){.okd-app .okd-address-review{grid-template-columns:minmax(0,1fr)}}
/* Etapa Localizacao do checkout (20/09/2026): GPS no gesto, mapa ja no ponto, endereco depois. */
.okd-app .okd-address-location .okd-location-status{margin:0 0 10px;font-size:14px}
.okd-app .okd-address-location .okd-location-status[hidden]{display:none!important}
.okd-app .okd-address-location .okd-location-status .ok-loader{margin-right:6px}
.okd-app .okd-address-location .okd-location-saved{display:flex;align-items:center;gap:10px;width:100%;margin:0 0 10px;padding:10px 12px;border:1px solid var(--okd-primary,#08754f);border-radius:12px;background:var(--okd-surface,#fff);color:inherit;text-align:left;font:inherit;cursor:pointer}
.okd-app .okd-address-location .okd-location-saved[hidden]{display:none!important}
.okd-app .okd-address-location .okd-location-saved svg{width:22px;height:22px;flex:none;color:var(--okd-primary,#08754f)}
.okd-app .okd-address-location .okd-location-saved span{display:grid;gap:2px;min-width:0}
.okd-app .okd-address-location .okd-location-saved small{color:var(--okd-muted,#5b6b64);overflow-wrap:anywhere}
.okd-app .okd-address-location [data-location-host]:not([hidden]){margin-top:10px}
.okd-app .okd-location-picker--confirm .okd-map-actions[hidden],.okd-app .okd-location-picker--confirm [data-map-results]:empty{display:none}
.okd-app .okd-location-picker--confirm [data-map-confirm]{background:var(--okd-primary,#08754f);color:#fff;font-weight:700}
.okd-app .okd-location-picker--confirm > [hidden],.okd-app .okd-location-picker--confirm [data-map-status][hidden]{display:none!important}
.okd-app .okd-location-picker--confirm{padding:0;border:0;background:transparent;gap:10px}
.okd-app .okd-location-picker--confirm .okd-map-canvas{height:min(56vh,480px)}
.okd-app .okd-address-location:has(.okd-location-picker--confirm){padding:0;border:0;background:transparent}

/* Carrossel de promocoes do topo do cardapio (designer#5, proposta docs/design/carrossel-promocoes.html) */
.okd-app .okd-promos { --promo-ms: 5000ms; --promo-ease: cubic-bezier(.22, .8, .24, 1); position: relative; margin: 6px 0 2px; }
/* overflow: clip (o hidden antes dele e reserva para navegador antigo): hidden faz do viewport um conteiner rolavel e o foco por teclado num card fora da tela o rolava, desencontrando o carrossel (designer#12) */
.okd-app .okd-promos__viewport { position: relative; overflow: hidden; overflow: clip; touch-action: pan-y; }
/* design-ok: --promo-x e a posicao do carrossel, calculada pelo script que liga a marcacao */
.okd-app .okd-promos__track { display: flex; gap: 12px; transform: translate3d(var(--promo-x), 0, 0); transition: transform 600ms var(--promo-ease); will-change: transform; }
.okd-app .okd-promos__slide { position: relative; flex: 0 0 min(88%, 640px); aspect-ratio: 12 / 5; overflow: hidden; padding: 0; border: 0; border-radius: 16px; background: var(--okd-soft); transform: scale(.94); transition: transform 600ms var(--promo-ease); cursor: pointer; }
.okd-app .okd-promos__slide.is-active { transform: scale(1); }
.okd-app .okd-promos__slide img { display: block; width: 100%; height: 100%; object-fit: cover; }
.okd-app .okd-promos__slide::after { content: ""; position: absolute; inset: 0; background: var(--okd-scrim); opacity: .5; transition: opacity 600ms var(--promo-ease); pointer-events: none; }
.okd-app .okd-promos__slide.is-active::after { opacity: 0; }
.okd-app .okd-promos__slide:focus-visible { outline: 2px solid var(--okd-brand); outline-offset: 2px; }
.okd-app .okd-promos__controls { display: flex; align-items: center; gap: 6px; padding: 8px 16px 0; }
.okd-app .okd-promos__bar { flex: 1; display: flex; align-items: center; min-height: 20px; padding: 0; border: 0; background: transparent; cursor: pointer; }
.okd-app .okd-promos__bar > span { position: relative; display: block; width: 100%; height: 3px; overflow: hidden; border-radius: 2px; background: var(--okd-border-strong, var(--okd-border)); }
.okd-app .okd-promos__bar > span::after { content: ""; position: absolute; inset: 0; background: var(--okd-brand); transform: scaleX(0); transform-origin: left center; }
.okd-app .okd-promos__bar.is-done > span::after { transform: scaleX(1); }
.okd-app .okd-promos__bar.is-active > span::after { animation: okd-promo-fill var(--promo-ms) linear forwards; }
.okd-app .okd-promos.is-paused .okd-promos__bar.is-active > span::after { animation-play-state: paused; }
.okd-app .okd-promos__pause { display: grid; place-items: center; width: 36px; height: 36px; flex: none; padding: 0; border: 0; border-radius: 10px; background: var(--okd-background); color: var(--okd-text); cursor: pointer; }
.okd-app .okd-promos__pause svg { width: 14px; height: 14px; }
.okd-app .okd-promos__arrow { display: none; position: absolute; top: calc(50% - 18px); width: 40px; height: 40px; place-items: center; padding: 0; border: 1px solid var(--okd-border); border-radius: 50%; background: var(--okd-surface); color: var(--okd-text); cursor: pointer; z-index: 2; }
.okd-app .okd-promos__arrow[data-promo-prev] { left: 12px; }
.okd-app .okd-promos__arrow[data-promo-next] { right: 12px; }
.okd-app .okd-promos__arrow svg { width: 18px; height: 18px; }
@media (hover: hover) and (min-width: 700px) { .okd-app .okd-promos__arrow { display: grid; } }
@keyframes okd-promo-fill { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@media (prefers-reduced-motion: reduce) {
  .okd-app .okd-promos__track, .okd-app .okd-promos__slide, .okd-app .okd-promos__slide::after { transition: none; }
  .okd-app .okd-promos__bar.is-active > span::after { animation: none; transform: scaleX(1); }
}
