/* Reset & base */
*{margin:0;padding:0;box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
:root{
  /* Cores neutras até a configuração atual da loja ser carregada. */
  --primary-color:#64748b;
  --primary-strong:color-mix(in srgb,var(--primary-color) 82%,#000);
  --secondary-color:#334155;
  --accent-color:#94a3b8;
  --text-color:#2B1710;
  --light:#F5F1EA;              /* fundo claro quente */
  --light-2:#E9E1D3;
  --border-color:#E9E1D3;
  --success-color:#16a34a;
  --error-color:#e11d48;
  --surface:#ffffff;
  --header-bg:#ffffff;
  --shadow-color:2,6,23;
}
body{
  font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  color:var(--text-color);
  background:
    radial-gradient(circle at 8% 3%,color-mix(in srgb,var(--accent-color) 10%,transparent),transparent 22rem),
    var(--light);
  line-height:1.6;
  transition:background .2s ease, color .2s ease;
}
.store-config-pending body > :not(#store-loading){visibility:hidden}
.store-config-pending body{overflow:hidden}
#store-loading{position:fixed;inset:0;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;background:#f5f1ea;color:#334155;text-align:center;padding:1.5rem}
#store-loading[hidden]{display:none}
.store-loading-spinner{width:34px;height:34px;border:3px solid #cbd5e1;border-top-color:#64748b;border-radius:50%;animation:store-loading-spin .8s linear infinite}
@keyframes store-loading-spin{to{transform:rotate(360deg)}}
#store-loading button{min-height:44px;padding:.65rem 1rem;border:0;border-radius:999px;background:#334155;color:#fff;font:600 1rem 'Inter',sans-serif;cursor:pointer}

/* ── Modo escuro ── */
body.dark-mode{
  --text-color:#F2EDE4;
  --light:#181310;
  --light-2:#2A231D;
  --border-color:#38302A;
  --surface:#221C18;
  --header-bg:#221C18;
  --shadow-color:0,0,0;
}
body.dark-mode .product-price{color:var(--accent-color)}
body.dark-mode .cart-item-price{color:var(--accent-color)}
body.dark-mode .search-container i{color:var(--accent-color)}
body.dark-mode .payment-option.selected{background:rgba(216,160,42,.12)}
body.dark-mode .form-group input:read-only{background:#2A231D}
body.dark-mode .quantity-btn{background:var(--surface);color:var(--text-color)}
body.dark-mode .quantity-btn:hover{background:#332B24}
body.dark-mode .payment-option,
body.dark-mode .form-group input,
body.dark-mode .form-group select,
body.dark-mode .form-group textarea,
body.dark-mode #coupon-input{background:var(--surface);color:var(--text-color)}
body.dark-mode .shopping-benefits small,body.dark-mode .products-heading p,body.dark-mode .product-price small{color:#b8adb0}
h1,h2,h3{font-family:'Montserrat',sans-serif}

/* Header */
header{
  background:color-mix(in srgb,var(--header-bg) 94%,transparent);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  position:sticky;top:0;z-index:990;
  padding:.7rem max(1rem,calc((100% - 1200px)/2));
  display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  box-shadow:0 8px 26px rgba(var(--shadow-color),.07);
  border-bottom:1px solid var(--border-color);
}
.logo{display:flex;align-items:center;gap:.6rem;cursor:pointer;min-width:0}
.store-logo{width:42px;height:42px;object-fit:contain;flex:0 0 42px;filter:drop-shadow(0 5px 10px rgba(var(--shadow-color),.12))}
.logo h1{font-size:1.18rem;color:var(--text-color);font-weight:800;letter-spacing:-.02em;line-height:1.15}

.search-container{
  width:100%;max-width:560px;margin:0;display:flex;align-items:center;
  background:var(--surface);border:1px solid var(--border-color);
  border-radius:999px;padding:.55rem 1rem;order:3;flex-basis:100%;
  box-shadow:0 8px 24px rgba(var(--shadow-color),.07);
}
.search-container input{
  width:100%;border:none;background:transparent;outline:none;
  padding:.3rem .5rem;font-size:1rem;color:var(--text-color);
}
.search-container i{color:var(--primary-color);cursor:pointer}

.header-actions{display:flex;align-items:center;gap:.35rem;order:2}
.favorites-toggle-btn,.theme-toggle-btn{
  background:var(--surface);border:1px solid var(--border-color);color:var(--text-color);
  width:42px;height:42px;border-radius:50%;cursor:pointer;font-size:1rem;
  display:flex;align-items:center;justify-content:center;transition:.2s;flex-shrink:0;
}
.favorites-toggle-btn:hover,.theme-toggle-btn:hover{border-color:var(--primary-color);color:var(--primary-color)}
.favorites-toggle-btn.active{background:var(--primary-color);border-color:var(--primary-color);color:#fff}
.favorites-toggle-btn.active i{font-weight:900}

.cart-icon{position:relative;cursor:pointer;padding:.55rem;border-radius:50%;background:var(--secondary-color);width:44px;height:44px;display:grid;place-items:center}
.cart-icon i{font-size:1.2rem;color:#fff}
.cart-badge{
  position:absolute;top:0;right:0;background:var(--accent-color);color:#fff;border-radius:999px;
  min-width:20px;height:20px;display:flex;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;
  transform:translate(30%,-30%);
}

/* Categorias */
.categories-container{background:color-mix(in srgb,var(--light) 92%,transparent);display:block;overflow:visible;box-shadow:0 7px 20px rgba(var(--shadow-color),.05)}
.categories-bar{
  display:flex;justify-content:flex-start;align-items:stretch;padding:.55rem 1rem;gap:.5rem;width:100%;
  max-width:1200px;margin:0 auto;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;
}
.categories-bar::-webkit-scrollbar{display:none}
.category-btn{
  display:grid;grid-template-columns:28px auto;gap:.4rem;align-items:center;border:1px solid var(--border-color);color:var(--text-color);
  border-radius:999px;padding:.34rem .75rem .34rem .38rem;cursor:pointer;background:var(--surface);white-space:nowrap;font-size:.8rem;font-weight:700;
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease,background .2s ease;
  box-shadow:0 5px 14px rgba(var(--shadow-color),.05);
}
.category-btn i{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--primary-color) 10%,var(--surface));color:var(--primary-color);font-size:.78rem}
.category-btn:hover{transform:translateY(-1px);border-color:var(--primary-color)}
.category-btn.active{
  background:var(--secondary-color);color:#fff;border-color:var(--secondary-color);
  box-shadow:0 8px 20px rgba(var(--shadow-color),.16);
}
.category-btn.active i{background:var(--primary-color);color:#fff}
.categories-scroll-status{display:none}

/* Hero */
.hero-section{
  background:
    radial-gradient(650px 300px at 100% 0%,color-mix(in srgb,var(--primary-color) 58%,transparent),transparent 68%),
    radial-gradient(520px 260px at 0% 100%,color-mix(in srgb,var(--accent-color) 26%,transparent),transparent 70%),
    linear-gradient(135deg,var(--secondary-color),#0B1220);
  color:#fff;text-align:left;padding:2.5rem 1.35rem;position:relative;overflow:hidden;
  min-height:330px;display:flex;align-items:center;
  border-radius:0 0 28px 28px;
  box-shadow:none;
}
.hero-section::after{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(90deg,rgba(15,10,8,.62) 0%,rgba(15,10,8,.22) 52%,rgba(15,10,8,.02) 100%);pointer-events:none}
.hero-section--banner{background-size:cover;background-position:center}
.hero-custom-image{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:cover;pointer-events:none}
.hero-custom-image[hidden]{display:none}
.hero-section.is-ready .hero-custom-image{animation:hero-image-unblur .65s ease-out both}
.hero-content{width:100%;max-width:1200px;margin:0 auto;position:relative;z-index:3}
@keyframes hero-image-unblur{from{filter:blur(2px)}to{filter:blur(0)}}
.hero-tag{
  display:inline-flex;align-items:center;gap:.4rem;background:#ffffff18;border:1px solid #ffffff30;color:#fff;
  padding:.38rem .75rem;border-radius:999px;font-size:.75rem;font-weight:800;letter-spacing:.5px;text-transform:uppercase;margin-bottom:.85rem
}
.hero-tag[hidden]{display:none}
.hero-section h2{max-width:720px;font-size:clamp(2rem,8vw,3.8rem);line-height:1.04;margin:.15rem 0 .75rem;font-weight:800;letter-spacing:-.045em;text-wrap:balance}
.hero-motion-pending #hero-title{visibility:hidden}
#hero-title .hero-word{display:inline-block}
#hero-title.is-entering .hero-word{animation:hero-word-reveal .78s cubic-bezier(.22,.72,.22,1) both;animation-delay:calc(var(--word-index)*.14s)}
@keyframes hero-word-reveal{from{opacity:0;filter:blur(4px);transform:translateY(8px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}
.hero-section h2,.hero-section p{text-shadow:0 2px 12px rgba(0,0,0,.42)}
.hero-section p{max-width:600px;opacity:.96;font-size:1rem}
.hero-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.25rem}
.hero-actions button{min-height:46px;padding:.72rem 1.05rem;border-radius:999px;border:1px solid #ffffff45;font:700 .9rem 'Inter',sans-serif;cursor:pointer;transition:transform .2s,filter .2s;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}
.hero-motion-pending .hero-actions button{opacity:0;transform:translateY(28px)}
.hero-actions.is-entering button{animation:hero-button-enter .9s cubic-bezier(.22,.72,.22,1) both}
.hero-actions.is-entering button:first-child{animation-delay:.1s}
.hero-actions.is-entering button:nth-child(2){animation-delay:.48s}
@keyframes hero-button-enter{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
.hero-actions button:hover{transform:translateY(-2px);filter:brightness(1.06)}
.hero-menu-btn{background:var(--primary-color);color:#fff;border-color:var(--primary-color)!important;box-shadow:0 10px 24px color-mix(in srgb,var(--primary-color) 35%,transparent)}
.hero-cart-btn{background:#ffffff18;color:#fff;backdrop-filter:blur(6px)}
.hero-store-info{display:flex;justify-content:flex-start;gap:.55rem;flex-wrap:wrap;margin:1rem 0 0;max-width:760px;min-height:42px}
.hero-store-info[hidden]{visibility:hidden}
.hero-store-info p[hidden]{display:none}
.hero-store-info p{display:flex;align-items:center;justify-content:flex-start;gap:.45rem;padding:.48rem .7rem;border-radius:999px;background:#ffffff14;border:1px solid #ffffff24;font-size:.78rem;text-align:left}

.shopping-benefits{width:calc(100% - 1.5rem);max-width:940px;margin:.85rem auto .25rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem}
.shopping-benefits>div{min-width:0;display:block;padding:.45rem .25rem;text-align:center}
.shopping-benefits>div+div{border-left:1px solid var(--border-color)}
.shopping-benefits i{display:none}
.shopping-benefits span{min-width:0;display:grid;line-height:1.2}.shopping-benefits strong{font-size:.8rem}.shopping-benefits small{margin-top:.2rem;color:#6b7280;font-size:.66rem;white-space:normal}

/* Produtos */
.products{width:100%;max-width:1200px;padding:1.25rem 1rem 2.5rem;margin:0 auto;scroll-margin-top:150px}
.products-heading{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin:.2rem 0 1rem}
.products-heading span{display:block;color:var(--primary-color);font-size:.73rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.products-heading h2{font-size:1.55rem;line-height:1.1;letter-spacing:-.035em}
.products-heading p{color:#6b7280;font-size:.78rem;text-align:right}
.products-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}

.product-card{
  position:relative;
  display:flex;flex-direction:column;
  background:var(--surface);border-radius:20px;overflow:hidden;cursor:pointer;transition:.25s;
  box-shadow:0 12px 30px rgba(var(--shadow-color),.08);
  border:1px solid var(--border-color);
  animation:card-enter .42s ease both;
}
.product-card:nth-child(2){animation-delay:.04s}.product-card:nth-child(3){animation-delay:.08s}.product-card:nth-child(4){animation-delay:.12s}
.product-card:hover{transform:translateY(-6px);box-shadow:0 16px 36px rgba(var(--shadow-color),.14)}
.product-card.highlight{outline:3px solid var(--accent-color);outline-offset:-3px}
.product-img-wrap{position:relative;overflow:hidden;background:var(--light-2)}
.product-img{width:100%;height:240px;object-fit:cover;background:#f8fafc;display:block;transition:transform .35s ease}
.product-card:hover .product-img{transform:scale(1.035)}
.destaque-badge{
  position:absolute;top:.6rem;left:.6rem;z-index:2;
  display:flex;align-items:center;gap:.35rem;
  background:var(--accent-color);color:#2B1710;
  font-size:.72rem;font-weight:800;letter-spacing:.2px;
  padding:.32rem .6rem;border-radius:999px;
  box-shadow:0 3px 10px rgba(2,6,23,.18);
}
.encomenda-badge{
  position:absolute;left:.6rem;bottom:.6rem;z-index:2;
  display:flex;align-items:center;gap:.35rem;padding:.32rem .6rem;border-radius:999px;
  background:rgba(255,255,255,.94);color:#7c2d12;font-size:.7rem;font-weight:800;
  box-shadow:0 3px 10px rgba(2,6,23,.18);
}
.product-card-actions{position:absolute;top:.6rem;right:.6rem;display:flex;flex-direction:column;gap:.4rem;z-index:2}
.product-card-actions button{
  width:34px;height:34px;border-radius:50%;border:none;cursor:pointer;
  background:rgba(255,255,255,.92);color:#2B1710;font-size:.9rem;
  display:flex;align-items:center;justify-content:center;box-shadow:0 3px 10px rgba(2,6,23,.18);
  transition:transform .15s ease, color .15s ease;
}
.product-card-actions button:hover{transform:scale(1.08)}
.product-card-actions .fav-btn.active{color:var(--primary-color)}
.product-card-actions .fav-btn.active i{font-weight:900}
.product-info{padding:1rem 1rem 1.05rem;display:flex;flex:1;flex-direction:column}
.product-name{font-family:'Montserrat',sans-serif;font-size:1.05rem;font-weight:700;margin-bottom:.45rem;color:var(--text-color)}
.product-description-slot{min-height:calc(2.1rem + 44px);margin-bottom:.45rem}
.product-description{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;height:2.7em;font-size:.78rem;line-height:1.35;color:#6b7280}
.product-description-more{display:inline-flex;align-items:center;min-height:44px;padding:0;border:0;background:none;color:var(--primary-color);font-size:.76rem;font-weight:700;cursor:pointer}
.product-description-more[hidden]{display:none}
.product-description-more:hover{text-decoration:underline}
.product-order-note{font-size:.7rem;font-weight:700;color:#9a3412;margin:-.3rem 0 .6rem;line-height:1.3}
.product-order-deposit-note{font-size:.68rem;font-weight:700;color:#9a3412;margin:-.35rem 0 .6rem;line-height:1.3}
.product-card-footer{display:flex;align-items:end;justify-content:space-between;gap:.65rem;margin-top:auto;padding-top:.25rem}
.product-price{display:grid;font-size:1.28rem;line-height:1.1;color:var(--primary-color);font-weight:800;margin:0}
.product-price small{margin-bottom:.22rem;color:#6b7280;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}

.product-button{
  min-width:46px;min-height:46px;background:var(--primary-color);color:#fff;border:1px solid var(--primary-color);
  padding:.7rem .9rem;font-size:.86rem;font-weight:800;border-radius:999px;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;gap:.45rem;
  transition:transform .15s ease,background .2s ease,box-shadow .2s ease,border-color .2s ease;
  box-shadow:0 8px 20px rgba(15,23,42,.18);
}
.product-button:hover{filter:brightness(.92);transform:translateY(-1px)}
.product-button:active{transform:translateY(0)}

/* Carrinho */
.cart-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.4);z-index:999;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
.cart-overlay.show{opacity:1;visibility:visible}

.cart-sidebar{
  position:fixed;top:0;right:0;width:100%;max-width:420px;height:100%;background:var(--surface);
  box-shadow:-4px 0 24px rgba(var(--shadow-color),.15);z-index:1000;display:flex;flex-direction:column;transform:translateX(100%);
  transition:transform .4s cubic-bezier(.25,.46,.45,.94);
  border-left:1px solid var(--border-color);
}
.cart-sidebar.show{transform:translateX(0)}
.cart-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--border-color)}
.cart-header h3{font-size:1.25rem;color:var(--text-color)}
.close-cart-btn{background:none;border:none;font-size:2rem;cursor:pointer;color:var(--text-color)}

.cart-body{padding:1.5rem;overflow-y:auto;flex-shrink:1}
.cart-footer{padding:1rem 1.5rem;border-top:1px solid var(--border-color);background:var(--light-2);overflow-y:auto;flex-grow:1}
.finish-order-btn-container{padding:1rem 1.5rem;border-top:1px solid var(--border-color);background:var(--surface);box-shadow:0 -2px 5px rgba(var(--shadow-color),.05)}

.cart-body::-webkit-scrollbar,.cart-footer::-webkit-scrollbar{width:6px}
.cart-body::-webkit-scrollbar-track,.cart-footer::-webkit-scrollbar-track{background:var(--light-2)}
.cart-body::-webkit-scrollbar-thumb,.cart-footer::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:10px;border:2px solid var(--light-2)}

.cart-empty{text-align:center;padding-top:4rem;color:#9aa3b2}
.cart-empty i{font-size:4rem;margin-bottom:1rem;color:#e2e8f0}
.cart-empty p{font-size:1.05rem;font-weight:600}

.cart-item{display:flex;align-items:center;gap:1rem;margin-bottom:1.2rem}
.cart-item-img{width:80px;height:80px;object-fit:cover;border-radius:.6rem;border:1px solid var(--border-color)}
.cart-item-info{flex-grow:1}
.cart-item-name{font-size:1rem;font-weight:700;margin-bottom:.25rem}
.cart-item-price{font-size:.95rem;color:var(--primary-color);font-weight:800}
.cart-item-controls{display:flex;align-items:center;gap:.5rem;margin-top:.5rem}
.quantity-btn{background:#fff;border:1px solid var(--border-color);width:28px;height:28px;border-radius:50%;cursor:pointer;font-weight:700;transition:background .2s}
.quantity-btn:hover{background:#f1f5f9}
.remove-item-btn{background:none;border:none;color:#ef4444;font-size:1.6rem;cursor:pointer;margin-left:auto;transition:color .2s}
.remove-item-btn:hover{color:#b91c1c}
.cart-suggestions{border-top:1px solid var(--border-color);padding-top:1rem;margin-top:.4rem}
.cart-suggestions h4{font-size:1rem;margin-bottom:.75rem;color:var(--text-color)}
.cart-suggestions-list{display:flex;gap:.65rem;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:.4rem;overscroll-behavior-x:contain}
.cart-suggestion{flex:0 0 180px;min-height:64px;display:grid;grid-template-columns:48px 1fr 20px;align-items:center;gap:.55rem;padding:.5rem;border:1px solid var(--border-color);border-radius:.7rem;background:var(--surface);color:var(--text-color);text-align:left;cursor:pointer;scroll-snap-align:start}
.cart-suggestion img{width:48px;height:48px;object-fit:cover;border-radius:.5rem}
.cart-suggestion span{min-width:0;display:grid;gap:.2rem}
.cart-suggestion strong{font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cart-suggestion small{font-size:.78rem;color:var(--primary-color);font-weight:700}
.cart-suggestion i{color:var(--primary-color)}

.product-image-fly{position:fixed;z-index:2000;border-radius:50%;pointer-events:none;transition:left .72s cubic-bezier(.22,.75,.3,1),top .72s cubic-bezier(.22,.75,.3,1),width .72s ease,height .72s ease,opacity .68s ease,transform .72s ease;object-fit:cover;box-shadow:0 10px 28px rgba(2,6,23,.28);will-change:left,top,width,height,opacity,transform}
.cart-icon.cart-received{animation:cart-received .55s ease}
.cart-icon.cart-received .cart-badge{animation:cart-badge-received .55s ease}
@keyframes cart-received{0%,100%{transform:scale(1)}45%{transform:scale(1.22) rotate(-8deg)}70%{transform:scale(.94) rotate(4deg)}}
@keyframes cart-badge-received{0%,100%{filter:brightness(1);box-shadow:none}50%{filter:brightness(1.2);box-shadow:0 0 0 8px rgba(216,160,42,.2)}}

/* Opções entrega/retirada */
.options-toggle{display:flex;border:1px solid var(--border-color);border-radius:999px;overflow:hidden;margin-bottom:1.2rem;background:var(--surface)}
.delivery-btn{flex:1;padding:.75rem;border:none;background:var(--surface);cursor:pointer;font-size:1rem;font-weight:700;color:var(--text-color);transition:background .2s,color .2s}
.delivery-btn.active{background:var(--secondary-color);color:#fff}
.delivery-btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}

.delivery-unavailable-notice{
  display:flex;align-items:center;gap:.5rem;font-size:.85rem;text-align:left;color:var(--error-color);
  background:rgba(225,29,72,.08);padding:.7rem .9rem;border-radius:.6rem;margin:-.6rem 0 1.2rem;
  border:1px solid rgba(225,29,72,.25);
}
.delivery-unavailable-notice i{flex-shrink:0}

.product-delivery-note{font-size:.7rem;color:var(--primary-color);font-weight:700;margin:-.45rem 0 .65rem;display:flex;align-items:center;gap:.35rem;line-height:1.3}

.form-group{margin-bottom:1rem}
.form-group label{display:block;margin-bottom:.45rem;font-weight:700;font-size:.9rem}
.form-group input,.form-group select,.form-group textarea{
  width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:.6rem;font-size:1rem;font-family:inherit;
  transition:border-color .2s, box-shadow .2s;background:#fff;
}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{
  border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(14,165,166,.18);outline:none
}
.form-group input.error,.form-group textarea.error,.form-group select.error{
  border-color:var(--error-color)!important;box-shadow:0 0 0 3px rgba(225,29,72,.2)!important
}
.form-group input:read-only{background:#f1f5f9;cursor:not-allowed;opacity:.9}

.payment-options-container{border-top:1px solid var(--border-color);margin-top:1.2rem;padding-top:1.2rem}
.payment-options-container h4{font-size:1rem;margin:0 0 1rem}
.payment-option{
  display:flex;align-items:center;gap:.75rem;padding:.75rem;border:1px solid var(--border-color);border-radius:.6rem;margin-bottom:.5rem;
  cursor:pointer;transition:border-color .2s, background .2s;background:#fff;
}
.payment-option:hover{background:#f8fafc}
.payment-option input[type="radio"]{width:auto}
.payment-option.selected{border-color:var(--primary-color);background:#ecfeff}

#troco-container{display:none;margin-top:1rem;padding:1rem;background:#fff;border-radius:.6rem;border:1px solid var(--border-color)}
.delivery-fee-notice{font-size:.85rem;text-align:center;color:#6b7280;background:#fff;padding:.55rem;border-radius:.6rem;margin:1.2rem 0}
.delivery-schedule-notice{display:flex;align-items:flex-start;gap:.6rem;font-size:.84rem;line-height:1.45;color:#5b6472;background:#fff;padding:.8rem;border-radius:.6rem;border:1px solid var(--border-color);margin:1rem 0}
.delivery-schedule-notice i{color:var(--primary-color);margin-top:.15rem;flex-shrink:0}
.field-help{display:block;min-height:1.1em;margin-top:.35rem;color:#6b7280;font-size:.78rem}
.date-time-row{display:flex;gap:1rem}

.cart-summary{margin:1.2rem 0;border-top:1px solid var(--border-color);padding-top:1.2rem}
.summary-line{display:flex;justify-content:space-between;margin-bottom:.5rem;font-size:1rem}
.summary-line.total{font-size:1.2rem;font-weight:800;color:var(--primary-color);margin-top:1rem}
.consulta-aviso{padding:.75rem;border-radius:.65rem;background:#fff3d7;color:#573b0b;font-size:.88rem;line-height:1.45}
.consulta-aviso[hidden]{display:none}

.coupon-container{display:flex;gap:.5rem;margin-bottom:.5rem}
#coupon-input{flex-grow:1;border:1px solid var(--border-color);border-radius:.6rem;padding:.75rem;font-size:1rem}
#apply-coupon-btn{border:none;background:var(--secondary-color);color:#fff;padding:0 1.5rem;border-radius:.6rem;cursor:pointer;font-weight:800;transition:background .2s}
#apply-coupon-btn:hover{background:#111827}
.coupon-feedback{font-size:.9rem;font-weight:700;margin-bottom:1rem;height:1em}
.coupon-feedback.success{color:var(--success-color)}
.coupon-feedback.error{color:var(--error-color)}
.summary-line.discount-line{color:var(--success-color);font-weight:700}

.finish-order-btn{
  width:100%;padding:1rem;font-size:1.1rem;font-weight:800;color:#fff;
  background:linear-gradient(135deg,var(--secondary-color),#111827);
  border:none;border-radius:.7rem;cursor:pointer;transition:filter .2s, transform .1s;
  box-shadow:0 10px 26px rgba(2,6,23,.18);
}
.finish-order-btn:hover:not(:disabled){filter:brightness(1.03);transform:translateY(-1px)}
.finish-order-btn:disabled{background:#cbd5e1;cursor:not-allowed}
.finish-order-btn .fa-whatsapp{margin-right:.5rem}

/* Barra inferior "Ver carrinho" */
.view-cart-banner{
  position:fixed;bottom:-100px;left:0;width:100%;background:var(--secondary-color);color:#fff;z-index:980;
  padding:1rem;display:flex;justify-content:space-between;align-items:center;box-shadow:0 -8px 20px rgba(2,6,23,.18);
  transition:bottom .35s ease;
}
.view-cart-banner.show{bottom:0}
.view-cart-banner p{margin:0;font-weight:800}
.view-cart-banner-btn{
  background:var(--primary-color);color:#fff;border:none;padding:.75rem 1.4rem;border-radius:999px;font-weight:800;cursor:pointer;
  box-shadow:0 8px 20px rgba(14,165,166,.22);transition:transform .15s ease, background .2s ease;
}
.view-cart-banner-btn:hover{background:var(--primary-strong);transform:translateY(-1px)}

/* Footer */
footer{background:var(--secondary-color);color:#fff;text-align:center;padding:2rem}
.developer-credit{display:inline-block;margin-top:.35rem;color:#cbd5e1;font-size:.76rem;text-decoration:none;opacity:.8;transition:opacity .2s,color .2s}
.developer-credit:hover,.developer-credit:focus-visible{color:#fff;opacity:1;text-decoration:underline}
.storefront-cta{display:flex;align-items:center;justify-content:center;gap:.4rem;width:max-content;max-width:100%;min-height:44px;margin:.75rem auto 0;padding:.55rem .9rem;border:1px solid color-mix(in srgb,#fff 35%,transparent);border-radius:999px;color:#fff;font-size:.78rem;font-weight:800;text-decoration:none;transition:background .2s,border-color .2s,transform .2s}
.storefront-cta:hover,.storefront-cta:focus-visible{background:color-mix(in srgb,#fff 12%,transparent);border-color:#fff;transform:translateY(-1px)}
.storefront-cta i{font-size:.68rem}

/* ── Skeleton (carregando produtos) ── */
.skeleton-card{
  background:var(--surface);border-radius:14px;overflow:hidden;border:1px solid var(--border-color);
}
.skeleton-img,.skeleton-line{
  background:linear-gradient(90deg,var(--light-2) 25%,var(--border-color) 37%,var(--light-2) 63%);
  background-size:400% 100%;animation:skeleton-shimmer 1.4s ease infinite;
}
.skeleton-img{width:100%;height:240px}
.skeleton-info{padding:1rem}
.skeleton-line{height:.8rem;border-radius:4px;margin-bottom:.6rem}
.skeleton-line.w-70{width:70%}
.skeleton-line.w-40{width:40%}
.skeleton-line.w-90{width:90%;height:1.2rem;margin-top:.4rem}
@keyframes skeleton-shimmer{0%{background-position:100% 0}100%{background-position:0 0}}
@keyframes card-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media (prefers-reduced-motion:reduce){.skeleton-img,.skeleton-line,.cart-icon.cart-received,.cart-icon.cart-received .cart-badge,.product-card{animation:none}.product-image-fly{display:none}.product-img{transition:none}}

/* ── Botão flutuante do WhatsApp ── */
.whatsapp-float{
  position:fixed;right:1.2rem;bottom:.5rem;z-index:970;
  width:48px;height:48px;border-radius:50%;background:#25D366;color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:1.35rem;text-decoration:none;
  box-shadow:0 10px 24px rgba(37,211,102,.4);transition:transform .15s ease;
}
.whatsapp-float:hover{transform:scale(1.06)}
@media (min-width:769px){.whatsapp-float{right:2rem;bottom:.5rem}}

/* ── Toast simples (favoritos / compartilhar) ── */
.mini-toast{
  position:fixed;left:50%;bottom:1.2rem;transform:translate(-50%,20px);
  background:var(--secondary-color);color:#fff;padding:.65rem 1.1rem;border-radius:999px;
  font-size:.85rem;font-weight:600;z-index:1100;opacity:0;pointer-events:none;
  transition:opacity .25s ease, transform .25s ease;box-shadow:0 8px 20px rgba(var(--shadow-color),.3);
}
.mini-toast.show{opacity:1;transform:translate(-50%,0)}

/* Responsivo */
@media (min-width:768px){
  .search-container{order:2;flex-basis:auto;width:auto}
  .header-actions{order:3}
  .categories-bar{justify-content:center}
  .category-btn{padding:.4rem .75rem .4rem .4rem;font-size:.83rem}
  .products{padding:2rem}
  .products-container{gap:1.6rem}
  .product-img{height:260px}
  .product-info{padding:1.2rem 1.2rem 1.4rem}
  .product-name{font-size:1.15rem}
  .hero-section{padding:4.5rem 2rem;min-height:430px;border-radius:0 0 42px 42px}
}
/* Esconde a barra "Ver Carrinho" em telas maiores */
@media (min-width:769px){.view-cart-banner{display:none}}

/* Banner do cabeçalho (opcional, definido pelo admin em Configurações) */
header.header--banner {
    background-size: cover;
    background-position: center;
    color: #fff;
}
header.header--banner::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, rgba(0,0,0,.6), rgba(0,0,0,.3), rgba(0,0,0,.1));
    z-index: 0;
}
header.header--banner > * {
    position: relative;
    z-index: 1;
}
/* A barra existente acompanha a altura real do header (inclusive busca mobile). */
.categories-container { position: sticky; top: var(--altura-header, 0px); z-index: 989; overflow: visible; }
.categories-bar .category-btn { flex-shrink: 0; }
.produto-dialog { margin: auto; width: min(520px, 94vw); max-height: 90dvh; overflow: auto; padding: 24px; border: 1px solid #ccc; border-radius: 16px; background: var(--surface, #fff); color: var(--text-color, #222); }
.produto-dialog::backdrop { background: #0009; }
.produto-dialog .detalhe-imagem { width: 100%; max-height: 250px; object-fit: contain; }
.produto-dialog .detalhe-galeria { clear:both; }
.produto-dialog .detalhe-galeria-miniaturas { display:flex; gap:8px; overflow-x:auto; overscroll-behavior-inline:contain; padding:8px 2px 10px; }
.produto-dialog .detalhe-miniatura { flex:0 0 58px; width:58px; height:58px; padding:3px; border:2px solid transparent; border-radius:10px; background:transparent; cursor:pointer; }
.produto-dialog .detalhe-miniatura.ativa { border-color:var(--accent-color, #0b6); }
.produto-dialog .detalhe-miniatura:focus-visible { outline:2px solid var(--accent-color, #0b6); outline-offset:2px; }
.produto-dialog .detalhe-miniatura img { display:block; width:100%; height:100%; object-fit:cover; border-radius:5px; }
.produto-dialog .fechar-detalhe { float: right; font-size: 28px; background: transparent; color: inherit; border: 0; cursor: pointer; padding: 4px 10px; }
.produto-dialog form, .produto-dialog label { display: grid; gap: 10px; margin: 12px 0; }
.produto-dialog .detalhe-adicionais { display:grid; gap:12px; }
.produto-dialog .detalhe-adicionais label { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:10px; min-height:48px; padding:8px; border-radius:8px; cursor:pointer; }
@media(max-width:480px){.produto-dialog .detalhe-adicionais label.adicional-consulta{grid-template-columns:auto minmax(0,1fr)}.produto-dialog .detalhe-adicionais label.adicional-consulta strong{grid-column:2;justify-self:start}}
.produto-dialog .detalhe-adicionais label:has(input:checked) { background:color-mix(in srgb, var(--accent-color, #0b6) 12%, transparent); outline:1px solid var(--accent-color, #0b6); }
.produto-dialog .detalhe-adicionais input { width:20px; height:20px; accent-color:var(--accent-color, #0b6); }
.produto-dialog .detalhe-adicional-limite { margin:.2rem 0 .5rem; color:var(--muted-color, #64748b); font-size:.88rem; }
.produto-dialog .detalhe-variacoes label { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:10px; min-height:48px; padding:8px; border-radius:8px; cursor:pointer; }
.produto-dialog .detalhe-variacoes label:has(input:checked) { background:color-mix(in srgb, var(--accent-color, #0b6) 12%, transparent); outline:1px solid var(--accent-color, #0b6); }
.produto-dialog .detalhe-variacoes input { width:20px; height:20px; accent-color:var(--accent-color, #0b6); }
.detalhe-variacao-limite { margin:4px 0 9px; font-size:.86rem; color:var(--muted, #685f70); line-height:1.4; }
.produto-dialog fieldset { border: 1px solid #ccc; padding: 12px; }
.produto-dialog input[type=number], .produto-dialog textarea { width: 100%; font: inherit; padding: 8px; }
.produto-dialog .product-button { width: 100%; }
.produto-dialog .detalhe-encomenda{padding:.7rem .8rem;border-radius:.65rem;background:#fff7ed;color:#9a3412;font-weight:700}
.order-lead-time-notice{margin:.85rem 0;padding:.8rem;border-radius:.7rem;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;font-size:.88rem;line-height:1.45}
.order-lead-time-notice[hidden]{display:none}
.order-deposit-notice{margin:.85rem 0;padding:.8rem;border-radius:.7rem;background:#fffbeb;border:1px solid #fcd34d;color:#854d0e;font-size:.88rem;font-weight:700;line-height:1.45}
.order-deposit-notice[hidden]{display:none}

/* Mobile first: uma única rolagem no checkout e ação sempre disponível. */
.no-scroll { overflow: hidden; }
.cart-sidebar { height: 100dvh; }
.cart-header, .finish-order-btn-container { flex-shrink: 0; }
.cart-scroll { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
.cart-scroll .cart-body, .cart-scroll .cart-footer { overflow: visible; }
.finish-order-btn-container { background: var(--surface); padding-bottom: max(1rem, env(safe-area-inset-bottom)); }
#order-result { overflow-wrap: anywhere; max-height: 20dvh; overflow-y: auto; }
.categories-bar { justify-content: flex-start; }
.category-btn, .product-button, .finish-order-btn, .delivery-btn, .pickup-btn { min-height: 44px; }
.produto-dialog { max-height: calc(100dvh - 24px); overscroll-behavior: contain; }
.produto-dialog .fechar-detalhe { min-width: 44px; min-height: 44px; }
.produto-dialog label { min-height: 44px; }
.cart-item-info, .coupon-container input, .date-time-row > * { min-width: 0; }
.coupon-feedback { height: auto; min-height: 1em; }
@media (max-width: 767px) {
  header { padding: .75rem; gap: .75rem; }
  .logo { min-width: 0; flex:1; }
  .store-logo { width:34px; height:34px; flex-basis:34px; }
  .logo h1 { font-size: 1rem; display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2; }
  .header-actions{gap:.25rem}
  .favorites-toggle-btn,.theme-toggle-btn,.cart-icon{width:44px;height:44px}
  .search-container{padding:.45rem .8rem}
  .hero-section{min-height:340px;padding:2.5rem 1.1rem 2.2rem}
  .hero-section h2{max-width:330px}
  .hero-section>p{font-size:.95rem}
  .hero-actions{display:grid;grid-template-columns:1fr 1fr;width:100%;max-width:350px}
  .hero-actions button{padding:.7rem .65rem}
  .categories-bar{padding:.5rem .75rem .38rem;gap:.45rem}
  .category-btn{grid-template-columns:28px auto;padding:.32rem .62rem .32rem .36rem}
  .category-btn i{width:28px;height:28px}
  .categories-scroll-status:not([hidden]){display:flex;height:11px;align-items:flex-start;justify-content:center;padding-top:1px}
  .categories-scroll-track{position:relative;display:block;width:54px;height:3px;border-radius:999px;background:color-mix(in srgb,var(--text-color) 14%,transparent);overflow:hidden}
  .categories-scroll-track i{position:absolute;top:0;bottom:0;left:0;min-width:12px;border-radius:inherit;background:var(--primary-color);transition:left .12s linear,width .18s ease}
  .shopping-benefits{width:100%;padding:.6rem .65rem .5rem;margin:.35rem auto 0;gap:0;overflow:visible}
  .shopping-benefits>div{padding:.42rem .18rem}
  .shopping-benefits strong{font-size:.68rem}
  .shopping-benefits small{font-size:.56rem;line-height:1.25}
  .products { padding: .75rem; }
  .products-heading{align-items:flex-start;margin:.55rem 0 .9rem}
  .products-heading h2{font-size:1.35rem}
  .products-heading p{max-width:110px;line-height:1.35}
  .products-container { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
  .product-img { height: auto; aspect-ratio: 1 / 1; }
  .product-card{border-radius:16px}
  .product-info { padding: .72rem; }
  .product-name { font-size: .9rem; line-height: 1.3; }
  .product-description {
    font-size: .75rem;
  }
  .product-card-footer{gap:.35rem;padding-top:.2rem}
  .product-price { font-size: 1.02rem; }
  .product-price small{font-size:.53rem}
  .product-button { width:44px;height:44px;min-width:44px;min-height:44px;padding:0; }
  .product-button span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  .product-card-actions { top:.15rem;right:.15rem;gap:0 }
  .product-card-actions button { position:relative;width:44px;height:44px;background:transparent;box-shadow:none;font-size:.75rem; }
  .product-card-actions button::before { content:"";position:absolute;inset:7px;border-radius:50%;background:rgba(255,255,255,.9);box-shadow:0 2px 7px rgba(2,6,23,.16); }
  .product-card-actions button i { position:relative;z-index:1; }
  .product-order-note{font-size:.62rem;margin:-.2rem 0 .5rem}
  .product-order-deposit-note{font-size:.6rem;margin:-.25rem 0 .5rem}
  .product-delivery-note{font-size:.62rem;margin:-.3rem 0 .5rem}
  .cart-body, .cart-footer, .cart-header, .finish-order-btn-container { padding-left: 1rem; padding-right: 1rem; }
  .cart-sidebar input, .cart-sidebar select, .cart-sidebar textarea,
  .produto-dialog input, .produto-dialog textarea { font-size: 16px; }
  .cart-sidebar button, .header-actions button, .cart-icon,
  .product-card-actions button { min-width: 44px; min-height: 44px; }
  .cart-item { gap: .65rem; }
  .cart-item img { width: 60px; height: 60px; }
  .produto-dialog { padding: 16px; }
  .hero-store-info{display:grid;grid-template-columns:1fr;gap:.5rem;margin-top:.85rem}
  .hero-store-info[hidden]{display:grid;visibility:hidden}
  .hero-store-info p{justify-content:flex-start;font-size:.85rem}
  .view-cart-banner { padding-bottom: max(.75rem, env(safe-area-inset-bottom)); }
  .whatsapp-float { right:.85rem;bottom:calc(.25rem + env(safe-area-inset-bottom));width:44px;height:44px;font-size:1.25rem; }
  body:has(.view-cart-banner.show) .whatsapp-float { bottom:calc(5.25rem + env(safe-area-inset-bottom)); }
  .mini-toast { bottom: calc(5rem + env(safe-area-inset-bottom)); max-width: calc(100vw - 24px); font-size: 1rem; }
  footer { padding:1.15rem .8rem max(1.25rem, env(safe-area-inset-bottom)); }
  footer #store-copyright{font-size:.84rem;line-height:1.45}
  .developer-credit{margin-top:.2rem;font-size:.7rem}
  .storefront-cta{margin-top:.6rem;padding:.48rem .78rem;font-size:.72rem}
}
.payment-option[hidden]{display:none}
@media (hover: none) { .product-card:hover { transform: none; } }

/* O título e os botões entram só depois que a configuração tornou a vitrine visível. */
@keyframes storefront-copy-reveal {
  from { opacity:0; filter:blur(3px); }
  to { opacity:1; filter:none; }
}
@keyframes storefront-benefit-reveal {
  from { opacity:0; transform:translate3d(0,12px,0); }
  to { opacity:1; transform:none; }
}
.hero-section.is-ready .hero-tag,
.hero-section.is-ready .hero-content > p,
.hero-section.is-ready .hero-store-info p:not([hidden]) {
  animation:storefront-copy-reveal .6s ease both;
}
.hero-section.is-ready .hero-content > p { animation-delay:.18s; }
.hero-section.is-ready .hero-store-info p:first-child { animation-delay:.4s; }
.hero-section.is-ready .hero-store-info p:last-child { animation-delay:.52s; }
.shopping-benefits > div {
  animation:storefront-benefit-reveal .52s cubic-bezier(.2,.75,.25,1) backwards;
}
.shopping-benefits > div:nth-child(1) { animation-delay:.48s; }
.shopping-benefits > div:nth-child(2) { animation-delay:.57s; }
.shopping-benefits > div:nth-child(3) { animation-delay:.66s; }
@media (prefers-reduced-motion:reduce) {
  .hero-section.is-ready .hero-custom-image:not([hidden]),
  .hero-section.is-ready #hero-title .hero-word,
  .hero-section.is-ready .hero-actions button,
  .hero-section.is-ready .hero-tag,
  .hero-section.is-ready .hero-content > p,
  .hero-section.is-ready .hero-store-info p:not([hidden]),
  .shopping-benefits > div {animation:none}
}
