/* Identidade temporária: substitua cores após receber a marca oficial. */
:root {
  --forest: #173d31;
  --forest-2: #254e3e;
  --text: #233e33;
  --muted: #607169;
  --cream: #f9f7f0;
  --surface: #ffffff;
  --soft: #f0f1e8;
  --line: #e0e6db;
  --lime: #cde7a9;
  --mint: #e1eccf;
  --orange: #e1a777;
  --danger: #8c4934;
  --shadow: 0 18px 50px rgba(31, 65, 46, 0.08);
  --radius: 20px;
  --container: 1190px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 95px; }
body { margin: 0; min-width: 320px; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: var(--cream); color: var(--text); -webkit-font-smoothing: antialiased; }
body, button, input { font-size: 16px; }
button, input { font: inherit; }
button { cursor: pointer; }
a { color: inherit; }
img { display: block; max-width: 100%; }
h1,h2,h3,p { margin-top: 0; }
h1,h2,h3 { letter-spacing: -.042em; }
h2 { font-size: clamp(1.9rem, 3.6vw, 3rem); line-height: 1.12; }
p { line-height: 1.65; }
[hidden] { display: none !important; }
.container { width: min(calc(100% - 36px), var(--container)); margin-inline: auto; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:absolute; top:-100px; left:12px; z-index:1000; color:white; background:var(--forest); padding:12px 18px; border-radius:8px; }
.skip-link:focus { top:12px; }
:focus-visible { outline: 3px solid #c1803d; outline-offset: 3px; }
.button { border:0; display:inline-flex; align-items:center; justify-content:center; gap:13px; text-align:center; text-decoration:none; border-radius:14px; font-weight:750; transition:transform .18s, background .18s, box-shadow .18s; }
.button:hover:not(.is-disabled) { transform:translateY(-2px); }
.button-primary { padding:18px 23px; color:#fff; background:var(--forest); box-shadow:0 7px 18px rgba(23,61,49,.18); }
.button-primary:hover { background:#285a45; }
.button-light { padding:15px 21px; background:var(--lime); color:var(--forest); }
.section-kicker { font-weight:800; font-size:.72rem; letter-spacing:.17em; color:#558263; margin-bottom:14px; }
.site-header { position:sticky; top:0; z-index:50; background:rgba(249,247,240,.96); backdrop-filter:blur(15px); border-bottom:1px solid rgba(23,61,49,.08); }
.header-inner { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:78px; }
.brand { display:inline-flex; align-items:center; gap:10px; text-decoration:none; min-width:0; }
.brand-mark { flex:0 0 auto; display:grid; place-items:center; width:44px; height:44px; border-radius:13px; background:var(--forest); color:var(--cream); font-family:Georgia,serif; font-size:1.9rem; letter-spacing:-.18em; font-weight:700; padding-right:8px; padding-bottom:3px; }
.brand-dot { color:var(--lime); }
.brand-type { display:flex; flex-direction:column; line-height:1; }
.brand-type strong { font-family:Georgia,serif; font-size:1.48rem; letter-spacing:-.05em; }
.brand-type small { font-size:.56rem; letter-spacing:.27em; font-weight:850; margin-top:5px; }
.primary-nav { display:flex; align-items:center; gap:30px; font-weight:650; font-size:.87rem; }
.primary-nav a { text-decoration:none; }
.primary-nav a:hover { color:#5c8a62; }
.nav-order { white-space:nowrap; display:inline-flex; align-items:center; gap:9px; border-radius:100px; text-decoration:none; font-size:.84rem; font-weight:750; border:1px solid #d1dcca; padding:10px 11px 10px 17px; }
.nav-order span { min-width:25px; min-height:25px; display:grid; place-items:center; background:var(--forest); color:white; border-radius:99px; font-size:.76rem; }
.hero { overflow:hidden; padding:55px 0 76px; background:radial-gradient(circle at 75% 45%, #e5eed8 0, transparent 38%), var(--cream); }
.hero-grid { display:grid; align-items:center; grid-template-columns:1fr 1fr; gap:35px; }
.eyebrow { color:#5b805e; display:inline-flex; align-items:center; gap:10px; font-size:.72rem; font-weight:800; letter-spacing:.12em; }
.eyebrow-line { width:22px; height:2px; background:#8eb274; }
.hero h1 { margin:25px 0 23px; color:var(--forest); font-size:clamp(2.7rem,5.25vw,5rem); line-height:1.07; letter-spacing:-.075em; max-width:750px; }
.hero h1 em { color:#65845f; font-family:Georgia,serif; font-weight:400; letter-spacing:-.075em; }
.hero-copy > p { max-width:540px; color:#566e60; font-size:1.04rem; line-height:1.85; }
.hero-actions { display:flex; align-items:center; gap:25px; flex-wrap:wrap; margin-top:32px; }
.text-link { text-decoration:none; font-weight:750; font-size:.86rem; border-bottom:1px solid #9dafa2; padding-bottom:7px; }
.hero-notes { margin-top:40px; display:flex; flex-wrap:wrap; gap:14px 23px; font-size:.77rem; color:#526d5f; font-weight:650; }
.note-check { display:inline-grid; place-items:center; width:20px; height:20px; background:#e3ead6; border-radius:50%; color:var(--forest); margin-right:5px; font-weight:900; }
.hero-art { aspect-ratio: 1/1; position:relative; min-width:0; display:grid; place-items:center; isolation:isolate; }
.hero-art::before { content:""; position:absolute; inset:5%; border-radius:50%; background:#e5e9d8; z-index:-2; }
.hero-art::after { content:""; position:absolute; width:78%; height:78%; border:1px dashed #9bb898; border-radius:50%; z-index:-1; }
.hero-art img { width:100%; filter: drop-shadow(0 27px 24px rgba(39,65,40,.15)); animation: float 7s ease-in-out infinite; }
.hero-sun { background:#ddecc4; width:36%; height:36%; border-radius:50%; position:absolute; right:4%; top:4%; z-index:-1; }
.hero-art-caption { position:absolute; background:rgba(255,255,255,.96); border:1px solid #e5e8db; box-shadow:0 7px 22px rgba(27,50,30,.09); border-radius:15px; color:var(--forest); font-size:.74rem; font-weight:700; z-index:2; }
.hero-art-caption-top { top:17%; right:0; transform:rotate(7deg); line-height:1.4; padding:15px 19px; letter-spacing:.1em; }
.hero-art-caption-top strong { font-size:.95rem; letter-spacing:.045em; }
.hero-art-caption-bottom { bottom:12%; left:1%; transform:rotate(-6deg); padding:13px 16px; }
.hero-art-caption-bottom span { font-size:1rem; margin-left:10px; }
@keyframes float { 0%,100% { transform:translateY(0) rotate(-1deg); } 50% { transform:translateY(-7px) rotate(1deg); } }
.how { background:#f0f2e9; padding:65px 0 73px; }
.how h2 { margin-bottom:34px; }
.steps { display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; }
.step { padding:24px 26px; background:rgba(255,255,255,.65); border:1px solid #e2e8dc; border-radius:20px; }
.step-number { font-family:Georgia,serif; color:#8cad83; font-size:1.6rem; }
.step h3 { margin:18px 0 9px; font-size:1.08rem; letter-spacing:-.02em; }
.step p { margin:0; font-size:.88rem; color:var(--muted); line-height:1.7; }
.shop-section { padding:94px 0 100px; }
.shop-intro { display:flex; align-items:flex-end; justify-content:space-between; gap:22px; margin-bottom:34px; }
.shop-intro h2 { margin-bottom:12px; }
.shop-intro p { margin:0; max-width:650px; color:var(--muted); }
.minimum-chip { white-space:nowrap; border:1px solid #d4dec7; background:#eff5e4; border-radius:100px; padding:12px 17px; color:#456447; font-size:.86rem; }
.shopping-layout { display:grid; grid-template-columns:minmax(0, 1fr) 340px; gap:23px; align-items:start; }
.catalog-main { min-width:0; }
.product-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:17px; }
.product-card { background:white; border:1px solid #e5e8df; border-radius:20px; overflow:hidden; min-width:0; box-shadow:0 8px 23px rgba(23,61,49,.035); transition:box-shadow .2s, border-color .2s; }
.product-card:hover { box-shadow:var(--shadow); border-color:#cfddc7; }
.product-visual { position:relative; overflow:hidden; aspect-ratio:1.8/1; display:grid; place-items:center; background:var(--product-bg); }
.product-visual::before, .product-visual::after { content:""; position:absolute; border-radius:50%; }
.product-visual::before { width:230px; height:230px; background:rgba(255,255,255,.25); right:-30px; top:-115px; }
.product-visual::after { width:90px; height:90px; border:1px dashed rgba(255,255,255,.65); left:-28px; bottom:-30px; }
.dish-icon { position:relative; z-index:1; width:118px; height:118px; border-radius:50%; background:#fffaf0; box-shadow:0 11px 14px rgba(38,46,27,.13), inset 0 0 0 8px rgba(253,245,219,.85), inset 0 0 0 10px #d6ddc4; display:grid; place-items:center; transform:rotate(-9deg); }
.dish-icon::before { content:""; position:absolute; width:58px; height:45px; background:var(--product-main); border-radius:53% 47% 45% 51%; left:34px; top:37px; transform:rotate(21deg); box-shadow:inset -5px -5px 0 rgba(0,0,0,.06); }
.dish-icon::after { content:""; position:absolute; width:26px; height:16px; top:25px; left:30px; border-radius:80% 10% 80% 10%; background:#789b50; transform:rotate(20deg); box-shadow:24px 47px #a2b86b,43px 0 #9db56a; }
.product-label { position:absolute; z-index:2; left:16px; top:15px; background:rgba(255,255,255,.88); border:1px solid rgba(255,255,255,.55); padding:6px 10px; border-radius:30px; color:#435a42; letter-spacing:.08em; font-weight:850; font-size:.65rem; }
.product-body { padding:19px 19px 20px; }
.product-body h3 { font-size:1.18rem; line-height:1.25; margin-bottom:6px; }
.product-body > p { color:#78867a; line-height:1.5; margin-bottom:13px; min-height:40px; font-size:.8rem; }
.product-price { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:4px; padding-bottom:16px; border-bottom:1px solid #edf0e8; }
.product-price strong { font-size:1.27rem; color:var(--forest); letter-spacing:-.04em; }
.product-price span { font-size:.74rem; color:#697f6c; }
.quantity-row { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:16px; }
.quantity-row > span { font-size:.77rem; color:#748477; font-weight:650; }
.quantity-control { display:flex; align-items:center; overflow:hidden; border:1px solid #dbe5d7; border-radius:11px; background:#f8faf6; }
.qty-button { min-width:37px; min-height:39px; border:0; background:transparent; color:var(--forest); font-size:1.23rem; font-weight:750; }
.qty-button:hover { background:#e8f0de; }
.qty-button:disabled { cursor:not-allowed; opacity:.35; }
.qty-input { border:0; outline-offset:-3px; text-align:center; width:45px; min-height:39px; font-weight:800; color:var(--forest); background:transparent; appearance:textfield; -moz-appearance:textfield; }
.qty-input::-webkit-inner-spin-button,.qty-input::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
.catalog-disclaimer { padding:17px 3px 0; color:#7b887d; font-size:.78rem; }
.order-card { position:sticky; top:98px; border:1px solid #e4e8dd; background:white; padding:24px; border-radius:22px; box-shadow:var(--shadow); scroll-margin-top:95px; }
.order-header { display:flex; gap:12px; justify-content:space-between; align-items:flex-end; border-bottom:1px solid #edf0e8; padding-bottom:17px; }
.order-header .section-kicker { font-size:.63rem; margin-bottom:8px; }
.order-header h2 { font-size:1.6rem; margin:0; display:flex; align-items:center; gap:10px; }
.count-badge { display:inline-grid; place-items:center; background:#eaf1de; color:#3e6143; border-radius:8px; font-size:.72rem; min-width:25px; min-height:25px; }
.clear-button { background:none; border:0; font-size:.75rem; color:#957067; text-decoration:underline; padding:3px; }
.cart-empty { text-align:center; padding:30px 0 25px; color:#6b7e6f; }
.empty-icon { background:#f0f5eb; border-radius:50%; color:#8ca480; width:50px; height:50px; display:grid; place-items:center; margin:0 auto 13px; font-size:1.7rem; }
.cart-empty strong { display:block; color:var(--forest); font-size:.9rem; }
.cart-empty p { font-size:.8rem; line-height:1.6; margin:8px auto 0; max-width:215px; }
.cart-items { list-style:none; margin:18px 0; padding:0; display:grid; gap:13px; }
.cart-item { display:flex; align-items:flex-start; justify-content:space-between; gap:8px; }
.cart-item > div { min-width:0; }
.cart-item strong { display:block; font-size:.83rem; line-height:1.35; }
.cart-item span { color:#788579; font-size:.73rem; }
.cart-item > strong { flex:0 0 auto; font-size:.82rem; color:var(--forest); }
.tier-status { background:#f0f4e8; border:1px solid #e4eadc; padding:15px; border-radius:14px; }
.tier-status > span { font-weight:850; font-size:.85rem; color:var(--forest); }
.tier-status p { font-size:.74rem; color:#60765d; line-height:1.55; margin:6px 0 12px; }
.progress-track { height:6px; overflow:hidden; border-radius:10px; background:#d2dec7; }
.progress-fill { width:0%; height:100%; border-radius:10px; background:#74a36c; transition:width .2s; }
.total-row { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:21px; }
.total-row span { font-size:.88rem; color:#55695a; }
.total-row strong { color:var(--forest); font-size:1.55rem; letter-spacing:-.045em; }
.total-explainer { font-size:.72rem; color:#7a897d; margin:7px 0 15px; }
.validation-note { font-size:.74rem; font-weight:650; color:#8b583b; background:#fff5e9; border-radius:9px; padding:10px 12px; line-height:1.5; margin:14px 0 12px; }
.button-whatsapp { display:flex; width:100%; min-height:51px; padding:12px 11px; background:#1d8050; color:white; font-size:.78rem; white-space:nowrap; }
.button-whatsapp:hover { background:#12693e; }
.button-whatsapp.is-disabled { background:#b4c8b9; cursor:not-allowed; }
.button-whatsapp svg { flex:0 0 18px; }
.config-warning { color:var(--danger); background:#fff5ec; padding:9px 11px; border-radius:9px; font-size:.73rem; line-height:1.5; margin:11px 0 0; }
.message-preview { margin-top:16px; }
.message-preview summary { cursor:pointer; font-size:.75rem; font-weight:750; color:#536c58; }
.message-preview pre { font: .72rem/1.7 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; color:#496153; white-space:pre-wrap; overflow-wrap:anywhere; max-height:230px; overflow:auto; padding:12px; background:#f7f8f4; border:1px solid #ecf0e9; border-radius:9px; }
.copy-button { background:none; border:1px solid #cddac9; border-radius:8px; font-size:.72rem; font-weight:700; color:var(--forest); padding:8px 11px; }
.copy-button:disabled { cursor:not-allowed; opacity:.4; }
.order-footnote { margin:17px 0 0; padding-top:13px; border-top:1px solid #edf0e8; color:#7b877e; font-size:.7rem; line-height:1.65; text-align:center; }
.price-section { background:#eff2e9; padding:75px 0 85px; }
.price-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:30px; }
.price-heading h2 { margin:0 0 12px; }
.price-heading p { margin:0; max-width:570px; color:var(--muted); }
.price-tag { white-space:nowrap; font-size:.73rem; font-weight:850; color:#6e886d; border:1px solid #cfddc4; border-radius:100px; padding:10px 15px; }
.table-wrap { overflow-x:auto; border:1px solid #dde6da; border-radius:17px; background:white; }
.price-table { width:100%; border-collapse:collapse; text-align:left; white-space:nowrap; min-width:670px; }
.price-table th,.price-table td { padding:21px 23px; border-bottom:1px solid #edf0e8; }
.price-table thead { background:#e5ecdd; color:#45694d; font-size:.76rem; }
.price-table th:first-child { min-width:185px; }
.price-table tbody th { font-size:.88rem; font-weight:750; }
.price-table tbody th small { display:block; color:#8a9b89; margin-top:4px; font-size:.72rem; font-weight:500; }
.price-table tbody td { color:#3d5447; font-weight:700; font-size:.84rem; }
.price-table tr:last-child th,.price-table tr:last-child td { border-bottom:0; }
.price-table tbody tr.is-current { background:#eaf5da; }
.price-table tbody tr.is-current th::after { content:"EM SEU PEDIDO"; display:inline-block; margin-left:10px; background:var(--forest); color:white; border-radius:30px; font-size:.53rem; letter-spacing:.03em; vertical-align:middle; padding:5px 7px; }
.price-note { margin:17px 0 0; font-size:.79rem; color:#6a806a; }
.end-banner { padding:51px 0; background:var(--forest); color:#fff; }
.end-inner { display:flex; justify-content:space-between; align-items:center; gap:25px; }
.end-banner .section-kicker { color:#a9c798; }
.end-banner h2 { font-size:clamp(1.65rem,3vw,2.65rem); max-width:580px; margin:0; }
.site-footer { padding:33px 0; background:#102e25; color:#d9e3d7; }
.footer-inner { display:flex; justify-content:space-between; gap:30px; align-items:center; }
.footer-inner strong { font-family:Georgia,serif; font-size:1.25rem; }
.footer-inner p { font-size:.75rem; margin:5px 0 0; color:#b9cabe; }
.footer-inner small { display:block; max-width:350px; font-size:.71rem; color:#b9cabe; line-height:1.7; text-align:right; }
.mobile-cart-bar { display:none; }
@media (max-width: 1050px) {
  .shopping-layout { grid-template-columns:minmax(0,1fr) 310px; gap:14px; }
  .order-card { padding:18px; }
  .product-body { padding:16px; }
  .quantity-row { gap:5px; }
  .qty-input { width:37px; }
  .qty-button { min-width:33px; }
}
@media (max-width: 800px) {
  .primary-nav { display:none; }
  .hero { padding:50px 0 60px; }
  .hero-grid { gap:15px; }
  .hero h1 { font-size:clamp(2.3rem,5.8vw,3.5rem); }
  .hero-art-caption-top { top:8%; right:0; }
  .shopping-layout { display:block; }
  .order-card { position:static; margin-top:24px; padding:25px; }
  .shop-section { padding:70px 0; }
  .catalog-disclaimer { margin-bottom:0; }
}
@media (max-width: 600px) {
  html { scroll-padding-top:76px; }
  .container { width:min(calc(100% - 30px),var(--container)); }
  .header-inner { min-height:65px; }
  .brand-mark { width:38px; height:38px; font-size:1.65rem; }
  .brand-type strong { font-size:1.23rem; }
  .brand-type small { font-size:.47rem; }
  .nav-order { font-size:.74rem; padding:6px 6px 6px 12px; gap:6px; }
  .nav-order span { min-width:23px; min-height:23px; }
  .hero { padding:43px 0 43px; }
  .hero-grid { display:flex; flex-direction:column; gap:12px; }
  .hero-copy { align-self:stretch; }
  .eyebrow { font-size:.62rem; letter-spacing:.09em; }
  .hero h1 { font-size:clamp(2.58rem, 11.7vw, 4rem); margin:17px 0; }
  .hero-copy > p { font-size:.92rem; line-height:1.75; }
  .hero-actions { margin-top:24px; gap:17px; }
  .hero-actions .button { width:100%; justify-content:space-between; }
  .hero-notes { margin-top:23px; font-size:.69rem; }
  .hero-art { width:min(100%,390px); align-self:center; margin-top:13px; }
  .hero-art-caption { font-size:.64rem; }
  .hero-art-caption-top { top:10%; right:0; padding:10px; }
  .hero-art-caption-top strong { font-size:.75rem; }
  .hero-art-caption-bottom { bottom:9%; padding:10px; }
  .how { padding:55px 0; }
  .how h2 { margin-bottom:25px; }
  .steps { grid-template-columns:1fr; gap:12px; }
  .step { display:grid; grid-template-columns:41px 1fr; gap:3px 10px; padding:17px; }
  .step-number { grid-row:1/3; font-size:1.5rem; }
  .step h3 { margin:0; }
  .step p { grid-column:2; }
  .shop-section { padding:60px 0 67px; }
  .shop-intro { display:block; margin-bottom:25px; }
  .shop-intro h2 { margin-bottom:9px; }
  .shop-intro p { font-size:.9rem; }
  .minimum-chip { display:inline-block; margin-top:17px; font-size:.76rem; }
  .product-grid { grid-template-columns:1fr; gap:14px; }
  .product-card { display:grid; grid-template-columns: 37% minmax(0, 1fr); min-height:188px; }
  .product-visual { aspect-ratio:auto; min-height:188px; }
  .product-label { font-size:.56rem; left:8px; top:10px; padding:5px 7px; }
  .dish-icon { width:95px; height:95px; }
  .dish-icon::before { width:45px; height:37px; left:30px; top:29px; }
  .dish-icon::after { width:22px; height:13px; left:23px; top:25px; }
  .product-body { padding:15px 13px 12px; }
  .product-body h3 { font-size:1.01rem; }
  .product-body > p { min-height:0; margin-bottom:8px; font-size:.72rem; }
  .product-price { padding-bottom:10px; }
  .product-price strong { font-size:1.07rem; }
  .product-price span { font-size:.65rem; }
  .quantity-row { margin-top:10px; }
  .quantity-row > span { font-size:.7rem; }
  .qty-input { width:33px; }
  .qty-button { min-width:30px; min-height:34px; }
  .qty-input { min-height:34px; }
  .order-card { padding:19px; }
  .price-section { padding:58px 0 63px; }
  .price-heading { display:block; }
  .price-heading p { font-size:.88rem; }
  .price-tag { display:inline-block; margin-top:15px; }
  .price-table th,.price-table td { padding:17px 19px; }
  .end-inner { display:block; }
  .end-inner h2 { margin-bottom:24px; }
  .footer-inner { display:block; }
  .footer-inner small { margin-top:18px; text-align:left; }
  .site-footer { padding-bottom:110px; }
  .mobile-cart-bar:not([hidden]) { position:fixed; z-index:40; bottom:0; left:0; right:0; display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px max(15px,env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(15px,env(safe-area-inset-left)); background:rgba(255,255,255,.98); border-top:1px solid #dce7d6; box-shadow:0 -8px 30px rgba(29,62,35,.1); }
  .mobile-cart-bar > div { display:flex; flex-direction:column; gap:2px; min-width:0; }
  .mobile-cart-bar > div span { font-size:.71rem; color:#60786b; }
  .mobile-cart-bar > div strong { font-size:1.18rem; color:var(--forest); white-space:nowrap; }
  .mobile-cart-link { background:var(--forest); color:white; border-radius:12px; text-decoration:none; padding:14px 16px; font-size:.8rem; font-weight:750; white-space:nowrap; }
}
@media (max-width: 360px) {
  .product-card { grid-template-columns:31% 69%; }
  .product-visual { min-height:185px; }
  .dish-icon { transform:scale(.75) rotate(-9deg); }
  .product-label { font-size:.51rem; }
  .product-body h3 { font-size:.94rem; }
  .qty-button { min-width:27px; }
  .qty-input { width:27px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}


/* CARDÁPIO 2.0 — cards individuais, filtros e detalhes */
.catalog-toolbar { display:grid; gap:13px; margin-bottom:14px; }
.category-tabs { display:flex; gap:8px; flex-wrap:wrap; }
.category-tab { border:1px solid #dfe7d8; background:white; border-radius:100px; padding:10px 13px; font-size:.78rem; font-weight:750; color:#42634e; transition:.15s ease; }
.category-tab:hover { border-color:#8bae78; }
.category-tab.is-active { background:#173d31; border-color:#173d31; color:white; }
.tab-count { margin-left:6px; font-weight:800; opacity:.65; font-size:.7rem; }
.search-wrap { display:block; }
.search-wrap input { display:block; width:100%; border:1px solid #dfe7d8; border-radius:13px; background:white; font-size:.88rem; color:#173d31; min-height:48px; padding:0 15px; outline-offset:3px; }
.search-wrap input::placeholder { color:#8b978e; }
.catalog-result-count { color:#6e826e; font-size:.75rem; margin:0 0 12px; }
.catalog-empty { padding:40px 22px; text-align:center; background:white; border-radius:16px; border:1px solid #e3e8dd; }
.product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:stretch; gap:14px; }
.product-card.dish-card { display:flex; flex-direction:column; min-height:100%; }
.dish-card .dish-photo { position:relative; height:152px; aspect-ratio:auto; background:var(--product-bg); display:flex; align-items:center; justify-content:center; }
.dish-card .dish-photo::before { display:none; }
.dish-card .dish-photo::after { width:150px; height:150px; left:auto; right:-32px; bottom:-55px; }
.dish-image { width:100%; height:100%; object-fit:contain; position:relative; z-index:1; }
.dish-image[src^="https:"],.dish-image[src^="data:"] { object-fit:cover; }
.dish-card .product-label { top:12px; left:12px; font-size:.63rem; padding:5px 10px; }
.dish-card .product-body { display:flex; flex-direction:column; flex:1; padding:17px; }
.dish-meta { display:flex; align-items:center; gap:6px; flex-wrap:wrap; justify-content:space-between; margin-bottom:10px; }
.dish-sku { color:#859388; font-size:.66rem; letter-spacing:.05em; font-weight:750; }
.stock-label { display:inline-flex; align-items:center; gap:5px; font-size:.66rem; color:#338357; font-weight:850; }
.stock-label::before { content:""; height:6px; width:6px; background:currentColor; border-radius:50%; }
.stock-label.low { color:#b07a29; }
.stock-label.out { color:#9c6d68; }
.dish-card .product-body h3 { font-size:1.02rem; line-height:1.35; letter-spacing:-.025em; margin:0 0 7px; }
.dish-card .product-body>.dish-desc { min-height:0; margin-bottom:10px; line-height:1.48; font-size:.76rem; }
.dish-details { border-bottom:1px solid #edf0e8; padding-bottom:12px; margin:0 0 12px; }
.dish-details summary { cursor:pointer; color:#2e7254; font-weight:780; font-size:.73rem; line-height:1.4; }
.dish-details[open] summary { margin-bottom:12px; }
.dish-expanded { background:#f7f9f5; border:1px solid #e6ebdf; border-radius:11px; padding:12px; font-size:.75rem; }
.dish-expanded strong { color:#254c3b; display:block; margin-bottom:5px; }
.dish-expanded p { color:#596f61; margin:0 0 10px; line-height:1.5; }
.dish-expanded .nutri-title { margin-top:8px; }
.dish-expanded .portion-note { color:#738678; display:block; padding-bottom:8px; }
.dish-expanded .nutrient-pending { color:#77857e; padding:6px 0; margin:0; }
.nutrition-table { border-collapse:collapse; width:100%; background:white; color:#33463a; }
.nutrition-table tr { border-bottom:1px solid #e8eee4; }
.nutrition-table th,.nutrition-table td { font-weight:600; font-size:.72rem; text-align:left; padding:8px 5px; }
.nutrition-table td { text-align:right; font-weight:800; }
.nutrition-caveat { display:block; color:#768b79; margin-top:10px; }
.dish-card .product-price { border:0; margin-top:auto; padding:0 0 6px; }
.dish-card .product-price strong { font-size:1.14rem; }
.dish-card .product-price span { font-size:.67rem; }
.dish-card .quantity-row { margin-top:5px; }
.dish-card .quantity-row>span { font-size:.7rem; }
.dish-card .quantity-control { flex-shrink:0; }
.dish-card .qty-button { min-width:34px; min-height:37px; }
.dish-card .qty-input { width:34px; min-height:37px; }
.dish-card.is-soldout { opacity:.72; }
.dish-card.is-soldout .product-visual { filter:grayscale(.45); }
.admin-footer { font-size:.74rem; color:#6c937d; display:inline-block; margin-top:12px; text-decoration:underline; }
@media(max-width:1080px) { .dish-card .product-body { padding:13px; } .dish-card .quantity-row { flex-wrap:wrap; } }
@media(max-width:760px) { .product-grid { grid-template-columns:1fr 1fr; } }
@media(max-width:600px) {
  .category-tabs { flex-wrap:nowrap; max-width:calc(100vw - 30px); overflow-x:auto; padding:3px 1px 8px; scrollbar-width:thin; }
  .category-tab { white-space:nowrap; flex:0 0 auto; }
  .product-grid { grid-template-columns:1fr; gap:11px; }
  .dish-card { flex-direction:row!important; flex-wrap:wrap; }
  .dish-card .dish-photo { width:118px; min-height:142px; height:auto; align-self:stretch; border-radius:0; flex:0 0 118px; }
  .dish-card .product-body { flex:1 1 calc(100% - 118px); min-width:0; padding:13px; }
  .dish-card .product-body h3 { font-size:.97rem; }
  .dish-card .product-body>.dish-desc { font-size:.73rem; }
  .dish-card .dish-meta { display:block; }
  .dish-card .stock-label { margin-left:7px; }
  .dish-card .quantity-row { flex-direction:row; align-items:center; }
  .dish-card .quantity-control { margin-left:auto; }
  .dish-card .product-price { margin-top:7px; }
  .dish-details[open] .dish-expanded { margin-left:-118px; }
  .dish-details[open] { position:relative; z-index:2; }
  .dish-card .product-price span { font-size:.65rem; }
}
@media(max-width:385px) {
  .dish-card .dish-photo { flex-basis:96px; width:96px; }
  .dish-card .product-body { flex-basis:calc(100% - 96px); }
  .dish-details[open] .dish-expanded { margin-left:-96px; }
  .dish-card .quantity-row>span { width:100%; }
}

/* Fallback estático se os módulos forem bloqueados (ex.: visualizador de anexos). */
.fallback-catalog{grid-column:1/-1;padding:20px;border:1px solid var(--line);border-radius:18px;background:white;color:var(--text)}.fallback-catalog ul{padding-left:20px;columns:2;column-gap:25px}.fallback-catalog li{break-inside:avoid;margin:0 0 12px}.fallback-catalog small{color:var(--muted)}@media(max-width:650px){.fallback-catalog ul{columns:1}}


/* V4 — prateleiras/carrosséis de receitas, mobile-first e touch-friendly. */
.product-shelves{display:grid;gap:26px;min-width:0}
.protein-shelf{min-width:0;overflow:hidden;border:1px solid #e2e9dd;border-radius:22px;background:#f7f9f3;padding:16px 0 17px}
.shelf-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:1px 17px 15px}
.shelf-heading-copy{min-width:0}
.shelf-eyebrow{display:block;font-size:.72rem;font-weight:800;letter-spacing:.045em;color:#50795b}
.shelf-title{font-size:1.36rem;line-height:1.22;margin:3px 0 4px;color:#173d31}
.shelf-subtitle{font-size:.74rem;line-height:1.45;color:#68776b;margin:0;max-width:36ch}
.shelf-controls{display:flex;gap:7px;flex-shrink:0}
.shelf-arrow{height:38px;width:38px;border:1px solid #cddccf;border-radius:50%;background:white;color:#245b41;font-size:1.15rem;font-weight:900}
.shelf-arrow:hover:not(:disabled){background:#173d31;color:white}
.shelf-arrow:disabled{opacity:.35;cursor:not-allowed}
.shelf-track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(246px,calc((100% - 32px)/2));gap:14px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x mandatory;scroll-padding-inline:17px;padding:0 17px 16px;scrollbar-color:#8cb296 #f0f4e9;scrollbar-width:thin;align-items:stretch}
.shelf-track>.dish-card{scroll-snap-align:start;min-width:0;height:100%;display:flex!important;flex-direction:column!important}
.shelf-track .dish-photo{width:100%!important;min-height:0!important;flex-basis:auto!important;height:168px!important;align-self:auto!important}
.shelf-track .product-body{width:100%;flex-basis:auto!important;padding:16px!important}
.shelf-track .dish-details[open] .dish-expanded{margin-left:0!important}
.shelf-track .dish-meta{display:flex;flex-wrap:wrap;gap:6px}
.shelf-track .stock-label{margin-left:0}
.shelf-track .quantity-row{display:flex;flex-wrap:wrap;gap:8px}
.shelf-empty{background:white;border:1px dashed #ccd9c8;border-radius:15px;padding:22px;margin:0 17px;color:#6a796c;font-size:.86rem}
@media(max-width:760px){
 .shelf-track{grid-auto-columns:min(84%,345px)}
 .shelf-title{font-size:1.26rem}
}
@media(max-width:430px){
 .protein-shelf{border-radius:18px;padding-top:13px}
 .shelf-heading{padding-inline:13px}
 .shelf-track{grid-auto-columns:86%;gap:11px;padding-inline:13px;scroll-padding-inline:13px}
 .shelf-track .dish-photo{height:152px!important}
 .shelf-track .product-body{padding:14px!important}
 .shelf-subtitle{max-width:26ch}
}
@media(prefers-reduced-motion:reduce){.shelf-track{scroll-behavior:auto}}

/* Respeitar o atributo hidden mesmo em componentes com display:grid/flex. */
[hidden] { display: none !important; }

/* Conversão mobile: mostrar as primeiras opções sem vários scrolls antes do catálogo. */
@media (max-width:600px) {
  .hero { padding:28px 0 24px; }
  .hero h1 { font-size:clamp(2.25rem,9.7vw,3.1rem); margin:11px 0 12px; }
  .hero-copy > p { line-height:1.55; margin-bottom:0; }
  .hero-actions { margin-top:16px; gap:11px; }
  .hero-actions .button { padding:14px 17px; }
  .hero-notes { margin-top:17px; }
  .hero-art, .how { display:none; }
  .shop-section { padding:27px 0 52px; }
  .shop-intro { margin-bottom:18px; }
  .shop-intro .section-kicker { margin-bottom:8px; }
  .shop-intro h2 { font-size:1.95rem; }
  .minimum-chip { margin-top:10px; }
  .catalog-toolbar { margin-bottom:12px; }
}


/* V5 — Seletor de quantidade confortável no celular, mantendo o carrossel. */
.shelf-track .quantity-help {
  display: none;
  color: #627768;
  font-size: .70rem;
  line-height: 1.4;
}
.shelf-track .qty-button {
  touch-action: manipulation;
  cursor: pointer;
}
.shelf-track .qty-button:focus-visible,
.shelf-track .qty-input:focus-visible {
  outline: 3px solid #568765;
  outline-offset: 2px;
  position: relative;
  z-index: 1;
}
.shelf-track .quantity-row .qty-prompt {
  color: #315b42;
  font-weight: 850;
}
@media (max-width: 760px) {
  .shelf-track > .dish-card { height: auto; }
  .shelf-track .product-body { display: flex; flex-direction: column; }
  .shelf-track .quantity-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 9px;
    margin-top: auto;
    padding: 12px;
    border: 1px solid #c7dbc2;
    border-radius: 14px;
    background: #eff6e9;
  }
  .shelf-track .quantity-row > .qty-prompt {
    width: 100%;
    font-size: .82rem;
    line-height: 1.3;
  }
  .shelf-track .quantity-row .quantity-control {
    display: grid;
    grid-template-columns: minmax(48px, 1fr) 64px minmax(48px, 1fr);
    width: 100%;
    margin: 0;
    background: #fff;
    border: 1.5px solid #a9c9a7;
    border-radius: 12px;
    overflow: hidden;
  }
  .shelf-track .quantity-row .qty-button {
    min-width: 0;
    width: 100%;
    min-height: 48px;
    font-size: 1.65rem;
    font-weight: 800;
  }
  .shelf-track .quantity-row .qty-input {
    width: 100%;
    min-width: 0;
    min-height: 48px;
    font-size: 1.15rem;
    font-weight: 850;
    border-inline: 1px solid #dce9d8;
    border-radius: 0;
  }
  .shelf-track .quantity-row .quantity-help, .shelf-track .quantity-row .quantity-help {
    display: block;
    width: 100%;
  }
}

/* V6 — card com ações de compra visíveis, ficha completa e galeria. */
.shelf-track > .dish-card { scroll-snap-align:start; }
.shelf-track .product-body { gap:0; }
.dish-card .dish-photo { flex-shrink:0; }
.card-media-opener { display:block; width:100%; height:100%; border:0; padding:0; background:transparent; cursor:pointer; position:relative; z-index:1; }
.card-media-opener .dish-image { width:100%;height:100%;object-fit:cover;display:block; }
.dish-card .product-label { z-index:2; pointer-events:none; }
.dish-title-button { font:inherit; font-weight:inherit; text-align:left; color:inherit; cursor:pointer; background:none; border:0; padding:0; line-height:inherit; }
.dish-title-button:hover,.dish-title-button:focus-visible { color:#2e7a56; text-decoration:underline; }
.dish-card .dish-desc { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; line-clamp:2; overflow:hidden; min-height:2.1em !important; }
.dish-open-details { text-align:left; margin:3px 0 15px; padding:7px 0; width:100%; background:transparent; border:0; color:#236f4a; font:inherit; font-size:.79rem; font-weight:800; cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.dish-open-details:hover { color:#133e2c; }
.shelf-track .product-price { margin-top:auto !important; border-top:1px solid #e7ece3; padding:13px 0 7px; }
.shelf-track .quantity-row { margin-top:8px !important; }
.product-dialog { width:min(920px,calc(100% - 26px)); max-height:min(92dvh,920px); margin:auto; border:0; border-radius:25px; background:#fffdf8; color:#19392f; padding:0; box-shadow:0 28px 90px rgba(9,30,23,.35); overflow:auto; }
.product-dialog::backdrop { background:rgba(11,38,29,.75); backdrop-filter:blur(2px); }
.detail-layout { display:grid; grid-template-columns: minmax(0,.90fr) minmax(0,1.10fr); }
.detail-gallery-wrap { padding:24px; background:#f3f6ed; min-width:0; }
.detail-gallery { position:relative; aspect-ratio: 1/1; border-radius:20px; overflow:hidden; background:#e3e9d9; }
.detail-gallery>img { display:block; width:100%;height:100%; object-fit:cover; }
.gallery-prev,.gallery-next { position:absolute; top:50%; transform:translateY(-50%); background:#fffdf5; border:1px solid #d9e7d4; box-shadow:0 4px 12px rgba(0,0,0,.12); color:#244b38; border-radius:50%; width:44px;height:44px; font-size:2rem; cursor:pointer; z-index:2; }
.gallery-prev { left:10px; } .gallery-next { right:10px; }
.gallery-prev:disabled,.gallery-next:disabled { opacity:.2; cursor:default; }
.gallery-counter { position:absolute; bottom:12px; right:12px; border-radius:20px; background:#173d31d8; color:white; padding:5px 12px; font-size:.76rem; }
.gallery-thumbnails { display:flex; overflow-x:auto; gap:8px; margin-top:13px; padding-bottom:6px; }
.gallery-thumb { width:66px;height:66px; border:2px solid transparent; padding:3px; flex-shrink:0; background:white; border-radius:12px; cursor:pointer; }
.gallery-thumb.is-active { border-color:#2e7a56; }
.gallery-thumb img { width:100%;height:100%;object-fit:cover; border-radius:8px; }
.detail-photo-notice { font-size:.74rem; color:#667b6b; margin:10px 0 0; }
.detail-info { padding:29px; position:relative; min-width:0; }
.detail-close { position:absolute; right:16px; top:12px; width:42px;height:42px; border:1px solid #dbe5db;border-radius:50%;background:white;font-size:1.8rem;cursor:pointer; }
.detail-category { margin:0 40px 9px 0; color:#46835c;font-size:.78rem;text-transform:uppercase;letter-spacing:.10em;font-weight:800; }
.detail-info h2 { font-size:clamp(1.7rem,2.8vw,2.35rem);line-height:1.12;letter-spacing:-.04em; margin:0 36px 12px 0; }
.detail-desc { color:#607b68;line-height:1.55;font-size:.96rem;margin-bottom:18px; }
.detail-info-section { border-top:1px solid #e3e9de;padding:15px 0; }
.detail-info-section h3 { color:#234936;font-size:.95rem;margin:0 0 7px; }
.detail-info-section p { font-size:.85rem;line-height:1.6;color:#5a6e62;margin:0 0 12px; }
.detail-info-section>small {font-size:.73rem;color:#74877a;line-height:1.4;display:block; }
.detail-buy { padding:14px; border:1px solid #cbdcc5; border-radius:17px; background:#f0f6eb; }
.detail-stock { font-size:.78rem;font-weight:800;color:#2d7650; }
.detail-buy-title { display:flex;align-items:end;justify-content:space-between;gap:12px; margin:12px 0 9px; }
.detail-buy-title>div {display:flex;flex-direction:column;}
.detail-buy-title strong {font-size:1.48rem;letter-spacing:-.03em;}
.detail-buy-title small {font-size:.70rem;color:#6c7b6d;}
.detail-buy-title>span {font-size:.81rem;font-weight:750;}
.detail-quantity { display:grid !important; grid-template-columns:1fr 76px 1fr; width:100%; background:white; border-radius:13px; overflow:hidden; }
.detail-quantity button { border:0; min-height:50px; font-size:1.7rem; font-weight:750; background:white;color:#173d31; cursor:pointer; }
.detail-quantity button:disabled {opacity:.35;}
.detail-quantity input { min-width:0; width:100%;border:0;border-inline:1px solid #d9e5d6; text-align:center; font-size:1.18rem;font-weight:800; }
.detail-qty-help {font-size:.76rem;margin:9px 0 12px;color:#54715f;}
.detail-cart-link {display:block;text-align:center;padding:13px;margin-top:7px;}
.card-media-opener:focus-visible,.dish-open-details:focus-visible,.dish-title-button:focus-visible,
.gallery-thumb:focus-visible,.gallery-next:focus-visible,.gallery-prev:focus-visible {outline:3px solid #72a385;outline-offset:3px;}
@media(max-width:680px){
 .product-dialog { max-height:94dvh;width:calc(100% - 12px);border-radius:20px; }
 .detail-layout {display:block;}
 .detail-gallery-wrap {padding:14px 14px 7px;}
 .detail-gallery {aspect-ratio:1.3/1;}
 .gallery-thumb {width:52px;height:52px;}
 .detail-info {padding:20px 17px 23px;}
 .detail-info h2 {font-size:1.68rem;}
 .detail-close {top:14px;right:13px;}
 .shelf-track .quantity-row { padding:10px !important; }
 .shelf-track .quantity-row .qty-button { min-height:50px !important; }
 .shelf-track .quantity-row .qty-input {min-height:50px!important;}
}

/* V7 — fechar ficha sempre visível, inclusive sobre fotos no iPhone */
.product-dialog { position: fixed; }
.product-dialog .detail-close {
  position: sticky !important; top: 10px !important; right: 12px !important;
  float: right !important; margin: 10px 12px -66px 0 !important;
  z-index: 90 !important;
  width: 54px !important; height: 54px !important;
  display: grid !important; place-items: center !important;
  border-radius: 16px !important;
  color: #fff !important; background: #173d31 !important;
  border: 2px solid #fff !important;
  font: 900 1.5rem/1 system-ui, sans-serif !important;
  box-shadow: 0 5px 19px rgba(0,0,0,.29) !important;
  opacity: 1 !important; visibility: visible !important;
}
.product-dialog .detail-close:focus-visible { outline: 4px solid #e7b44c !important; outline-offset: 2px; }
.brand-logo { display:block; width:46px; height:46px; object-fit:contain; border-radius:9px; background:#fff; }
@media(max-width:680px) { .product-dialog .detail-close { width:52px!important; height:52px!important; } }

.brand-mark[hidden] {display:none!important;}

/* V8: banner personalizável */
.hero-art[hidden]{display:none !important}
.hero-grid:has(.hero-art[hidden]){grid-template-columns:minmax(0,1fr)}
.hero-grid:has(.hero-art[hidden]) .hero-copy{max-width:850px}
.hero-art.hero-art-photo{aspect-ratio:1/1;overflow:hidden;border-radius:28px;background:#e4eade}
.hero-art.hero-art-photo::before,.hero-art.hero-art-photo::after,
.hero-art.hero-art-photo .hero-sun,.hero-art.hero-art-photo .hero-art-caption{display:none}
.hero-art.hero-art-photo img{width:100%;height:100%;object-fit:cover;filter:none;animation:none}
@media(max-width:780px){.hero-grid:has(.hero-art[hidden]){grid-template-columns:minmax(0,1fr)}}
