/* Importação da fonte (via HTML) e Definição de Variáveis de Cor */
/* TEMA BENTU'S - Paleta: Verde, Preto, Branco, Cinza */
:root {
    --color-primary: #3C5D43; /* Verde Principal */
    --color-primary-dark: #5C8D5A; /* Verde Secundário (Hover) */
    --color-secondary: #B6D8C0; /* Verde Claro (Apoio) */
    --color-secondary-dark: #3C5D43; /* Verde Principal (Hover do Apoio) */
    
    --color-background-light: #F5F5F5; /* Cinza bem claro (Fundo Geral) */
    --color-background-section: #FFFFFF; /* Branco (Fundo de Seções) */
    --color-text-dark: #1a1a1a; /* Preto, quase absoluto */
    --color-text-medium: #555555; /* Cinza médio */
    --color-text-light: #f5f5f5; /* Creme/Branco suave para texto em fundos escuros */
    --color-text-header: #f5f5f5; /* Cor do texto no header */
    
    --color-whatsapp: #25D366;
    --color-whatsapp-dark: #128C7E;
    --color-border: #e0e0e0;
    --color-input-border: #bdbdbd;
    --color-input-focus: var(--color-primary);
    --color-danger: #d32f2f; /* Vermelho para erros/remoção */
    --color-disabled: #bdbdbd;
    --color-modal-overlay: rgba(0, 0, 0, 0.7);

    --color-button-add: var(--color-primary);
    --color-button-add-hover: var(--color-primary-dark);
    --color-button-action: #333333; /* Botão de finalizar em cinza escuro */
    --color-button-action-hover: #1a1a1a;
    --color-button-clear: #757575; /* CORRIGIDO: Cinza para voltar/cancelar */
    --color-button-clear-hover: #616161;
    --color-button-cookie: var(--color-primary);
    --color-button-cookie-hover: var(--color-primary-dark);
    --color-button-cookie-text: var(--color-text-light);

    --transition-speed-fast: 0.2s;
    --transition-speed-normal: 0.3s;
    --transition-timing: ease-in-out;
}

/* Estilos Globais e Reset Básico */
body { font-family: 'Inter', sans-serif; background-color: var(--color-background-light); color: var(--color-text-dark); line-height: 1.6; font-size: 16px; }

html { 
    scroll-behavior: smooth;
    scroll-padding-top: var(--scroll-padding, 150px);
}

main {
    /* AJUSTADO: Reduzido de 88px para diminuir o espaço excessivo abaixo do cabeçalho */
    padding-top: 24px; 
}

h1, h2, h3, .menu-card-title { font-family: 'Playfair Display', serif; }

:is(a, button, input, select, textarea, [tabindex]):focus-visible {
    outline: 2px solid var(--color-input-focus);
    outline-offset: 2px;
    box-shadow: 0 0 0 3px rgba(60, 93, 67, 0.3);
    border-radius: 2px;
}


/* Estilos do Cabeçalho */
#main-header { background: var(--color-text-dark); color: var(--color-text-header); transition: background-color var(--transition-speed-normal) var(--transition-timing), box-shadow var(--transition-speed-normal) var(--transition-timing); }
.header-scrolled { background-color: rgba(26, 26, 26, 0.97); box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); }

/* Estilos da Navegação */
.nav-link { transition: color var(--transition-speed-normal) var(--transition-timing), transform var(--transition-speed-fast) var(--transition-timing), background-color var(--transition-speed-normal) var(--transition-timing); padding: 8px 10px; border-radius: 9999px; margin: 0 2px; color: var(--color-text-header); font-weight: 600; font-size: 0.85rem; }
.nav-link:hover { color: #fff; background-color: rgba(255, 255, 255, 0.15); transform: translateY(-1px); }
.nav-button-whatsapp { background-color: var(--color-primary); color: white; padding: 8px 15px; border-radius: 9999px; font-weight: 700; font-size: 0.85rem; transition: background-color var(--transition-speed-normal) var(--transition-timing), transform var(--transition-speed-fast) var(--transition-timing), box-shadow var(--transition-speed-normal) var(--transition-timing); }
.nav-button-whatsapp:hover { background-color: var(--color-primary-dark); transform: translateY(-1px); box-shadow: 0 3px 6px rgba(0,0,0,0.15); }
.nav-cart-button, .nav-install-button { position: relative; background: none; border: none; color: var(--color-text-header); padding: 8px; margin: 0 2px; cursor: pointer; transition: color var(--transition-speed-normal) var(--transition-timing), transform var(--transition-speed-fast) var(--transition-timing); }
.nav-cart-button:hover, .nav-install-button:hover { color: #fff; transform: scale(1.1); }
.cart-count { position: absolute; top: -5px; right: -8px; background-color: var(--color-primary); color: white; border-radius: 50%; padding: 1px 6px; font-size: 0.7rem; font-weight: bold; line-height: 1; min-width: 18px; text-align: center; border: 1px solid var(--color-text-dark); display: none; transition: transform var(--transition-speed-fast) var(--transition-timing), background-color var(--transition-speed-normal) var(--transition-timing), color var(--transition-speed-normal) var(--transition-timing); }
.nav-cart-button:hover .cart-count { transform: scale(1.1); }

@keyframes cartPulse {
    0% { transform: scale(1); filter: brightness(100%); }
    50% { transform: scale(1.15); filter: brightness(120%); }
    100% { transform: scale(1); filter: brightness(100%); }
}
.cart-icon-pulse { animation: cartPulse 0.6s ease-in-out; }

#main-nav .nav-link.active-nav-link,
.mobile-menu-container .nav-link-mobile.active-nav-link {
    color: var(--color-primary);
    font-weight: 700;
}
.nav-link-mobile.active-nav-link {
    background-color: rgba(255, 255, 255, 0.15);
}

.mobile-menu-container { background-color: var(--color-text-dark); border-top: 1px solid rgba(255, 255, 255, 0.1); max-height: 0; overflow: hidden; transition: max-height 0.5s ease-in-out; }
.mobile-menu-container:not(.hidden) { max-height: 500px; }
.nav-link-mobile { color: var(--color-text-header); padding: 10px 20px; width: 80%; text-align: center; border-radius: 5px; transition: background-color var(--transition-speed-normal) var(--transition-timing), color var(--transition-speed-normal) var(--transition-timing); }
.nav-link-mobile:hover { background-color: rgba(255, 255, 255, 0.1); }
.nav-button-whatsapp-mobile { background-color: var(--color-primary); color: white; padding: 10px 20px; border-radius: 9999px; font-weight: 700; width: 80%; text-align: center; transition: background-color var(--transition-speed-normal) var(--transition-timing); }
.nav-button-whatsapp-mobile:hover { background-color: var(--color-primary-dark); }

/* Estilos dos Botões Principais */
.btn { padding: 10px 20px; border-radius: 50px; font-weight: 600; transition: background-color var(--transition-speed-normal) var(--transition-timing), transform var(--transition-speed-fast) var(--transition-timing), box-shadow var(--transition-speed-normal) var(--transition-timing), opacity var(--transition-speed-normal) var(--transition-timing); display: inline-block; text-decoration: none; border: none; cursor: pointer; font-size: 0.9rem; text-align: center; white-space: nowrap; }
.btn:disabled { background-color: var(--color-disabled); color: var(--color-text-medium); cursor: not-allowed; transform: none; box-shadow: none; opacity: 0.7; }
.btn-primary { background-color: var(--color-primary); color: white; }
.btn-primary:hover:not(:disabled) { background-color: var(--color-primary-dark); transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0,0,0,0.15); }
.btn-whatsapp { background-color: var(--color-button-action); color: white; font-size: 1.05rem; padding: 12px 30px; }
.btn-whatsapp:hover:not(:disabled) { background-color: var(--color-button-action-hover); transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0,0,0,0.2); }

.btn-add-cart, .btn-add-cart-main { background-color: var(--color-button-add); color: white; width: calc(100% - 2rem); margin: 0 1rem 1rem 1rem; padding: 10px 15px; border-radius: 5px; font-size: 0.9rem; }
.btn-add-cart-main { margin: 0; width: 100%; }
.btn-add-cart:hover:not(:disabled), .btn-add-cart-main:hover:not(:disabled) { background-color: var(--color-button-add-hover); transform: translateY(-2px); box-shadow: 0 3px 6px rgba(0,0,0,0.15); }

.add-to-cart-feedback { position: fixed; bottom: 90px; left: 50%; transform: translateX(-50%); background-color: rgba(0, 0, 0, 0.8); color: white; padding: 10px 20px; border-radius: 5px; font-size: 0.9rem; z-index: 1002; animation: fadeOut 2s ease-out forwards; transition: opacity 0.4s ease-out, transform 0.4s ease-out; }
@keyframes fadeOut { 0% { opacity: 1; transform: translateX(-50%) translateY(0); } 80% { opacity: 1; transform: translateX(-50%) translateY(0); } 100% { opacity: 0; transform: translateX(-50%) translateY(10px); } }

/* Estilos das Seções */
.bg-section-light { background-color: var(--color-background-section); }
.bg-section-gradient { background: linear-gradient(to bottom, var(--color-background-light), var(--color-background-section)); }
.text-brand-dark { color: var(--color-text-dark); }
.text-brand-accent { color: var(--color-primary); }
.text-primary { color: var(--color-primary); }
.text-secondary { color: var(--color-secondary); }

#about .about-highlight { background-color: #f0f5f0; padding: 1.5rem; border-radius: 8px; border-left: 4px solid var(--color-primary); margin-top: 1.5rem; margin-bottom: 1.5rem; text-align: left; }
#about .about-highlight h3 { color: var(--color-primary-dark); margin-top: 0; }

#gallery .gallery-item { overflow: hidden; border-radius: 0.5rem; box-shadow: 0 4px 6px rgba(0,0,0,0.1); transition: transform var(--transition-speed-normal) var(--transition-timing), box-shadow var(--transition-speed-normal) var(--transition-timing); cursor: pointer; }
#gallery .gallery-item:hover { transform: scale(1.03) rotate(1deg); box-shadow: 0 10px 15px rgba(0,0,0,0.15); }
#gallery .gallery-image { width: 100%; height: 100%; aspect-ratio: 1 / 1; object-fit: cover; display: block; }

/* Estilos do Cardápio */
.menu-category { margin-bottom: 3rem; padding-top: 90px; margin-top: -90px; }
.menu-category-title { font-size: 2rem; font-weight: 700; color: var(--color-text-dark); text-align: center; margin-bottom: 1.5rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--color-primary); display: inline-block; position: relative; left: 50%; transform: translateX(-50%); }

.menu-index { text-align: center; padding: 0.75rem 1rem; border-bottom: 1px solid var(--color-border); display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 12px; position: sticky; top: 80px; background-color: var(--color-background-section); z-index: 998; width: 100%; left: 0; right: 0; transition: top 0.3s ease-in-out; }
.menu-index-link { display: inline-block; padding: 8px 18px; background-color: var(--color-text-medium); color: var(--color-text-light); border-radius: 50px; text-decoration: none; font-size: 0.9rem; font-weight: 600; transition: background-color var(--transition-speed-normal) var(--transition-timing), transform var(--transition-speed-fast) var(--transition-timing), box-shadow var(--transition-speed-normal) var(--transition-timing); }
.menu-index-link:hover { background-color: var(--color-primary); transform: translateY(-2px); box-shadow: 0 3px 6px rgba(0,0,0,0.1); }
.menu-index-link.menu-link-active { background-color: var(--color-primary); color: var(--color-text-light); transform: translateY(-2px); box-shadow: 0 3px 6px rgba(0,0,0,0.2); }

.menu-card { background-color: #fff; border-radius: 0.75rem; overflow: hidden; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.07); transition: transform var(--transition-speed-normal) var(--transition-timing), box-shadow var(--transition-speed-normal) var(--transition-timing); border: 1px solid var(--color-border); display: flex; flex-direction: column; }
.menu-card:hover { transform: translateY(-6px); box-shadow: 0 12px 25px rgba(0, 0, 0, 0.1); }
.menu-card-img { width: 100%; height: 12rem; object-fit: cover; transition: transform 0.4s var(--transition-timing); cursor: zoom-in; }
.menu-card:hover .menu-card-img { transform: scale(1.06); }
.menu-card-body { padding: 1rem 1.25rem 0.5rem 1.25rem; display: flex; flex-direction: column; flex-grow: 1; text-align: center; }
.menu-card-title { font-size: 1.3rem; font-weight: 700; color: var(--color-text-dark); margin-bottom: 0.5rem; }
.menu-card-description { color: var(--color-text-medium); font-size: 0.85rem; line-height: 1.4; margin-bottom: 0.8rem; flex-grow: 1; }
.menu-card-price { color: var(--color-primary); font-weight: 700; font-size: 1.2rem; margin-top: auto; margin-bottom: 0.5rem; }

.menu-card-actions { margin: 0 1rem 1rem 1rem; min-height: 40px; }
.quantity-selector-card { display: flex; align-items: center; justify-content: space-between; background-color: var(--color-primary); color: white; border-radius: 5px; padding: 2px; height: 100%; }
.quantity-selector-card button { background-color: transparent; border: none; color: white; font-size: 1.5rem; font-weight: bold; cursor: pointer; width: 45px; height: 36px; line-height: 1; }
.quantity-selector-card span { font-size: 1.1rem; font-weight: 700; }
.hidden { display: none; }

.menu-card-sizes { display: flex; justify-content: center; gap: 10px; margin: 0.5rem 0 1rem 0; }
.menu-card-sizes label { display: inline-block; }
.menu-card-sizes input[type="radio"] { display: none; }
.menu-card-sizes label span { display: block; padding: 6px 15px; border: 1px solid var(--color-border); border-radius: 50px; font-size: 0.9rem; font-weight: 600; color: var(--color-text-medium); cursor: pointer; transition: all var(--transition-speed-fast) ease-in-out; }
.menu-card-sizes label span:hover { background-color: #f0f0f0; border-color: #ccc; }
.menu-card-sizes input[type="radio"]:checked + span { background-color: var(--color-primary); color: white; border-color: var(--color-primary); font-weight: 700; transform: scale(1.05); }

.menu-card.esgotado { opacity: 0.6; pointer-events: none; position: relative; }
.esgotado-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(255, 255, 255, 0.7); display: flex; align-items: center; justify-content: center; z-index: 10; border-radius: 0.75rem; padding: 1rem; box-sizing: border-box; }
.esgotado-overlay-text { font-family: 'Inter', sans-serif; font-weight: 800; font-size: 1.25rem; color: var(--color-danger); padding: 8px 20px; border: 3px solid var(--color-danger); border-radius: 5px; transform: rotate(-10deg); text-align: center; background-color: #fff; }

/* Estilos da Seção de Depoimentos */
.testimonial-card { background-color: #ffffff; border-left: 5px solid var(--color-primary); padding: 1.5rem; border-radius: 8px; box-shadow: 0 4px 10px rgba(0,0,0,0.05); text-align: left; display: flex; flex-direction: column; height: 100%; transition: transform var(--transition-speed-normal) var(--transition-timing), box-shadow var(--transition-speed-normal) var(--transition-timing); }
.testimonial-card:hover { transform: translateY(-4px); box-shadow: 0 8px 15px rgba(0,0,0,0.08); }
.testimonial-rating { color: #FFD700; margin-bottom: 0.75rem; font-size: 1rem; }
.testimonial-text { font-style: italic; color: var(--color-text-medium); margin-bottom: 1rem; position: relative; padding-left: 25px; flex-grow: 1; }
.testimonial-text::before { content: '\201C'; font-family: Georgia, serif; font-size: 3rem; color: var(--color-primary); position: absolute; left: -10px; top: -15px; opacity: 0.6; line-height: 1; }
.testimonial-author { font-weight: 600; color: var(--color-text-dark); text-align: right; margin-top: auto; font-size: 0.9rem; }

/* Estilos do Rodapé */
.footer { background-color: var(--color-text-dark); color: rgba(255, 255, 255, 0.85); margin-top: 3rem; }
.social-links { display: flex; gap: 20px; }
.social-icon { color: rgba(255, 255, 255, 0.7); font-size: 1.6rem; transition: color var(--transition-speed-normal) var(--transition-timing), transform var(--transition-speed-fast) var(--transition-timing); }
.social-icon:hover { color: #fff; transform: translateY(-3px) scale(1.1); }

.map-container { position: relative; }
.map-overlay-link { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 1; cursor: pointer; border-radius: 0.5rem; }
.map-container:hover::after { content: 'Clique para traçar a rota'; position: absolute; bottom: 10px; left: 50%; transform: translateX(-50%); background-color: rgba(0, 0, 0, 0.75); color: white; padding: 5px 12px; border-radius: 5px; font-size: 0.8rem; font-family: 'Inter', sans-serif; z-index: 2; pointer-events: none; white-space: nowrap; animation: fadeIn 0.3s; }

/* Botões Flutuantes */
.whatsapp-float { position: fixed; width: 60px; height: 60px; bottom: 30px; right: 30px; background-color: var(--color-whatsapp); color: #FFF; border-radius: 50%; text-align: center; font-size: 30px; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); z-index: 998; display: flex; align-items: center; justify-content: center; transition: transform var(--transition-speed-normal) var(--transition-timing), background-color var(--transition-speed-normal) var(--transition-timing); }
.whatsapp-float:hover { transform: scale(1.1); background-color: var(--color-whatsapp-dark); }
.menu-float { position: fixed; width: 60px; height: 60px; bottom: 100px; right: 30px; background-color: var(--color-primary); color: #FFF; border-radius: 50%; text-align: center; font-size: 28px; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.25); z-index: 997; display: flex; align-items: center; justify-content: center; transition: transform var(--transition-speed-normal) var(--transition-timing), background-color var(--transition-speed-normal) var(--transition-timing); text-decoration: none; }
.menu-float:hover { transform: scale(1.1); background-color: var(--color-primary-dark); }

/* Popup de Cookies */
.cookie-popup { position: fixed; bottom: 0; left: 0; width: 100%; background-color: rgba(26, 26, 26, 0.95); color: var(--color-text-light); padding: 1rem 1.5rem; box-shadow: 0 -4px 10px rgba(0,0,0,0.2); z-index: 1000; display: none; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; }
.cookie-popup.show { display: flex; animation: slideUp 0.5s ease-out forwards; }
.cookie-content { display: flex; align-items: center; justify-content: space-between; width: 100%; max-width: 1200px; margin: 0 auto; flex-wrap: wrap; gap: 1rem; }
.cookie-text { font-size: 0.9rem; line-height: 1.5; margin-right: 1rem; flex-grow: 1; min-width: 250px; }
.btn-cookie-accept { background-color: var(--color-button-cookie); color: var(--color-button-cookie-text); padding: 8px 20px; border-radius: 5px; font-weight: 600; font-size: 0.9rem; cursor: pointer; border: none; transition: background-color var(--transition-speed-normal) var(--transition-timing); white-space: nowrap; }
.btn-cookie-accept:hover { background-color: var(--color-button-cookie-hover); }

/* ========================================================================
   ================== ESTILOS DOS MODAIS (CARRINHO E CHECKOUT) ============
   ======================================================================== */
.cart-modal, .checkout-modal { display: none; position: fixed; z-index: 1001; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: var(--color-modal-overlay); animation: fadeIn var(--transition-speed-normal) ease-out; }
.cart-modal.show, .checkout-modal.show { display: flex; align-items: center; justify-content: center; }
.cart-modal-content, .checkout-modal-content { background-color: #fefefe; padding: 25px; border: none; width: 90%; max-width: 600px; border-radius: 8px; box-shadow: 0 5px 20px rgba(0,0,0,0.3); position: relative; animation: slideDownModal 0.4s ease-out; display: flex; flex-direction: column; max-height: 85vh; }
.cart-modal-header, .checkout-modal-header { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--color-border); padding-bottom: 15px; margin-bottom: 15px; flex-shrink: 0; }
.cart-modal-title, .checkout-modal-title { font-size: 1.5rem; font-weight: 700; color: var(--color-text-dark); }
.cart-modal-close, .checkout-modal-close { color: #aaa; font-size: 28px; font-weight: bold; background: none; border: none; cursor: pointer; line-height: 1; padding: 0 5px; transition: color var(--transition-speed-normal) var(--transition-timing); }
.cart-modal-close:hover, .cart-modal-close:focus, .checkout-modal-close:hover, .checkout-modal-close:focus { color: black; text-decoration: none; }
.cart-modal-body, .checkout-modal-body { overflow-y: auto; margin-bottom: 15px; flex-grow: 1; padding-right: 5px; }
.cart-item { display: flex; align-items: center; justify-content: space-between; padding: 10px 5px; border-bottom: 1px dashed var(--color-border); font-size: 0.95rem; }
.cart-item:last-child { border-bottom: none; }
.cart-item-details { flex-grow: 1; margin-right: 10px; }
.cart-item-name { font-weight: 600; }
.cart-item-quantity { display: flex; align-items: center; margin-right: 10px; }
.cart-item-quantity button { background-color: var(--color-border); color: var(--color-text-medium); border: none; width: 25px; height: 25px; font-size: 1rem; cursor: pointer; border-radius: 4px; line-height: 1; margin: 0 5px; transition: background-color var(--transition-speed-fast) var(--transition-timing); }
.cart-item-quantity button:hover { background-color: #ccc; }
.cart-item-quantity span { min-width: 20px; text-align: center; font-weight: 600; }
.cart-item-total { font-weight: 600; min-width: 70px; text-align: right; }
.cart-item-remove button { background: none; border: none; color: var(--color-danger); font-size: 1.1rem; cursor: pointer; padding: 5px; margin-left: 10px; transition: color var(--transition-speed-fast) var(--transition-timing), transform var(--transition-speed-fast) var(--transition-timing); }
.cart-item-remove button:hover { color: #a01818; transform: scale(1.1); }
.cart-empty-message { text-align: center; color: var(--color-text-medium); padding: 20px; font-style: italic; }

.cart-modal-footer, .checkout-modal-footer { border-top: 1px solid var(--color-border); padding-top: 15px; text-align: right; flex-shrink: 0; margin-top: 15px; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px;}
.cart-total { font-size: 1.2rem; font-weight: bold; margin-bottom: 0; }
.cart-total span { color: var(--color-primary); }

/* --- Checkout específico --- */
.checkout-modal-footer { justify-content: flex-end; }
.checkout-modal-footer .btn-clear-cart { margin-right: auto; }
.form-group { margin-bottom: 12px; }
.form-label { display: block; margin-bottom: 4px; font-size: 0.85rem; font-weight: 600; color: var(--color-text-medium); }
.form-label:has(+ input:required)::after { content: '*'; color: var(--color-danger); margin-left: 3px; }
.form-input, textarea.form-input { width: 100%; padding: 8px 10px; border: 1px solid var(--color-input-border); border-radius: 4px; font-size: 0.9rem; transition: border-color var(--transition-speed-normal) var(--transition-timing), box-shadow var(--transition-speed-normal) var(--transition-timing); box-sizing: border-box; background-color: #fff; color: var(--color-text-dark); }
.form-input:focus, textarea.form-input:focus { outline: none; border-color: var(--color-input-focus); box-shadow: 0 0 0 2px rgba(60, 93, 67, 0.2); }
.input-error-message { color: var(--color-danger); font-size: 0.75rem; display: block; min-height: 1em; margin-top: 3px; font-weight: 500; }
.form-input.input-error, .form-group.input-error-group .form-input { border-color: var(--color-danger); box-shadow: 0 0 0 2px rgba(211, 47, 47, 0.2); }
.payment-options-modal { display: flex; flex-direction: column; gap: 10px; }
.payment-options-modal.input-error { outline: 1px solid var(--color-danger); border-radius: 6px; padding: 10px; box-shadow: 0 0 0 2px rgba(244, 67, 54, 0.2); }
.radio-label-modal { display: flex; align-items: center; cursor: pointer; font-size: 1rem; color: var(--color-text-dark); transition: all var(--transition-speed-normal) var(--transition-timing); padding: 12px; border: 1px solid var(--color-border); border-radius: 6px; }
.radio-label-modal:hover { background-color: #f7f7f7; border-color: var(--color-primary); }
.radio-label-modal input[type="radio"] { display: none; }
.radio-label-modal i { margin-right: 12px; font-size: 1.2rem; color: var(--color-primary); }
input[type="radio"]:checked + i + span, input[type="radio"]:checked ~ i { font-weight: 700; }
input[type="radio"]:checked + .radio-label-modal, .radio-label-modal:has(input:checked) { border-color: var(--color-primary); background-color: #f0f5f0; box-shadow: 0 0 5px rgba(60, 93, 67, 0.2); }
.btn-finalize-order { background-color: var(--color-button-action); color: white; padding: 12px; font-size: 1rem; }
.btn-finalize-order:hover:not(:disabled) { background-color: var(--color-button-action-hover); transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0,0,0,0.15); }
.btn-clear-cart { background-color: var(--color-button-clear); color: white; padding: 8px 16px; font-size: 0.85rem; opacity: 0.9; }
.btn-clear-cart:hover:not(:disabled) { background-color: var(--color-button-clear-hover); opacity: 1; transform: translateY(-2px); box-shadow: 0 2px 5px rgba(0,0,0,0.1); }
#cart-modal .btn-finalize-order, #cart-modal .btn-clear-cart { flex-grow: 1; }

/* ========================================================================
   ================== NOVO: ASSISTENTE DE MONTAGEM DE MARMITA ===============
   ======================================================================== */
.marmitex-assistant-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: var(--color-modal-overlay); z-index: 1003; display: none; align-items: center; justify-content: center; padding: 1rem; backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); }
.marmitex-assistant-overlay.show { display: flex; animation: fadeIn 0.3s ease-out; }
.marmitex-assistant-content { background-color: var(--color-background-section); width: 100%; max-width: 900px; height: 90%; max-height: 700px; border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,0.25); display: flex; flex-direction: column; overflow: hidden; animation: slideDownModal 0.4s ease-out; }
.marmitex-assistant-header { padding: 1rem 1.5rem; border-bottom: 1px solid var(--color-border); position: relative; }
.assistant-progress-bar { position: absolute; bottom: -1px; left: 0; height: 3px; background-color: var(--color-primary); width: 0%; transition: width 0.4s ease-out; }
.assistant-title { font-family: 'Playfair Display', serif; font-size: 1.5rem; font-weight: 700; color: var(--color-text-dark); text-align: center; margin: 0; }
.assistant-close-btn { position: absolute; top: 50%; right: 1.5rem; transform: translateY(-50%); font-size: 1.8rem; font-weight: 300; line-height: 1; color: #888; background: none; border: none; cursor: pointer; transition: color 0.2s; }
.assistant-close-btn:hover { color: #000; }
.marmitex-assistant-body { flex-grow: 1; display: flex; overflow: hidden; }
.assistant-main-content { flex-grow: 1; padding: 1.5rem; overflow-y: auto; }
.assistant-rule { font-size: 1.1rem; font-weight: 600; color: var(--color-text-medium); margin-bottom: 1.5rem; text-align: center; }
.assistant-options-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 1rem; }
.assistant-option-card { border: 2px solid var(--color-border); border-radius: 8px; padding: 1rem; text-align: center; cursor: pointer; transition: all 0.2s ease-out; position: relative; overflow: hidden; }
.assistant-option-card:hover { border-color: var(--color-primary-dark); transform: translateY(-3px); box-shadow: 0 4px 10px rgba(0,0,0,0.08); }
.assistant-option-card.selected { border-color: var(--color-primary); background-color: #f0f5f0; font-weight: bold; }
/* NOVO: Estilo para item esgotado no assistente */
.assistant-option-card.esgotado {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
    background-color: #f9f9f9;
}
.assistant-item-image { width: 100%; height: 100px; object-fit: cover; border-radius: 6px; margin-bottom: 0.75rem; }
.assistant-item-placeholder { width: 100%; height: 100px; display: flex; align-items: center; justify-content: center; background-color: #f0f0f0; border-radius: 6px; margin-bottom: 0.75rem; font-size: 2rem; color: #ccc; }
.assistant-item-name { display: block; color: var(--color-text-dark); }
.assistant-item-check-icon { position: absolute; top: 8px; right: 8px; color: white; background-color: var(--color-primary); width: 24px; height: 24px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.8rem; transform: scale(0); transition: transform 0.2s ease-out; }
.assistant-option-card.selected .assistant-item-check-icon { transform: scale(1); }
.assistant-sidebar { width: 300px; background-color: #f9f9f9; border-left: 1px solid var(--color-border); padding: 1.5rem; display: flex; flex-direction: column; overflow-y: auto; }
.sidebar-title { font-family: 'Playfair Display', serif; font-size: 1.3rem; margin-bottom: 1rem; border-bottom: 1px solid var(--color-border); padding-bottom: 0.5rem; }
.sidebar-summary { flex-grow: 1; }
.sidebar-summary-item { margin-bottom: 0.75rem; font-size: 0.9rem; }
.sidebar-summary-item strong { display: block; color: var(--color-primary); }
.sidebar-price { margin-top: auto; font-size: 1.3rem; font-weight: 700; text-align: right; }
.marmitex-assistant-footer { padding: 1rem 1.5rem; border-top: 1px solid var(--color-border); display: flex; justify-content: space-between; align-items: center; background-color: #fff; }

/* ESTILOS PARA O MODAL DE ZOOM DE IMAGEM */
.zoom-modal { display: none; position: fixed; z-index: 1005; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: transparent; align-items: center; justify-content: center; padding: 1rem; backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); }
.zoom-modal.show { display: flex; }
.zoom-modal-overlay { position: fixed; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.7); z-index: -1; animation: fadeIn 0.3s ease-out; }
.zoom-modal-content { position: relative; background: #fff; border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,0.25); width: 100%; max-width: 800px; max-height: 90vh; display: flex; overflow: hidden; animation: slideDownModal 0.4s ease-out; }
.zoom-modal-image-container { flex: 1 1 55%; background-color: #f0f0f0; }
.zoom-modal-img { width: 100%; height: 100%; object-fit: cover; }
.zoom-modal-details { flex: 1 1 45%; padding: 2rem; display: flex; flex-direction: column; }
.zoom-modal-close { position: absolute; top: 10px; right: 15px; font-size: 2.5rem; font-weight: 300; line-height: 1; color: #888; background: none; border: none; cursor: pointer; transition: color 0.2s; }
.zoom-modal-close:hover { color: #000; }
.zoom-modal-title { font-family: 'Playfair Display', serif; font-size: 2rem; font-weight: 700; color: var(--color-text-dark); margin: 0 0 0.5rem 0; }
.zoom-modal-description { font-size: 0.95rem; color: var(--color-text-medium); line-height: 1.5; flex-grow: 1; margin-bottom: 1rem; }
.zoom-modal-price { font-size: 1.8rem; font-weight: 700; color: var(--color-primary); margin: 1rem 0; }
.zoom-modal-actions { display: flex; align-items: center; gap: 1rem; margin-top: 1rem; }
.quantity-selector-zoom { display: flex; align-items: center; border: 1px solid var(--color-border); border-radius: 50px; }
.quantity-selector-zoom .quantity-btn { background-color: transparent; border: none; color: var(--color-text-dark); font-size: 1.5rem; font-weight: 600; cursor: pointer; width: 40px; height: 40px; line-height: 1; transition: background-color 0.2s; }
.quantity-selector-zoom .quantity-btn:hover:not(:disabled) { background-color: #f0f0f0; }
.quantity-selector-zoom .quantity-btn:disabled { color: #ccc; cursor: not-allowed; }
.quantity-selector-zoom .quantity-display { font-size: 1.1rem; font-weight: 700; min-width: 40px; text-align: center; }
.zoom-modal-actions .btn-add-cart { flex-grow: 1; margin: 0; width: auto; padding: 12px; font-size: 1rem; }

/* BARRA FLUTUANTE DE PEDIDO */
.floating-cart-bar { position: fixed; bottom: 0; left: 0; width: 100%; background-color: var(--color-text-dark); padding: 1rem; box-shadow: 0 -4px 10px rgba(0,0,0,0.2); z-index: 1000; transform: translateY(100%); transition: transform 0.4s ease-in-out; }
.floating-cart-bar.show { transform: translateY(0); }
.floating-cart-bar .btn { padding: 8px 16px; font-size: 0.9rem; }

.cart-modal-content :is(button, a, input, select, textarea):focus-visible,
.zoom-modal-content :is(button, input):focus-visible,
.checkout-modal-content :is(button, input, textarea):focus-visible,
.marmitex-assistant-content :is(button, input):focus-visible {
    outline: 2px solid var(--color-input-focus);
    outline-offset: 2px;
    box-shadow: 0 0 0 3px rgba(60, 93, 67, 0.3);
    border-radius: 2px;
}

/* Animações */
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes slideDownModal { from { transform: translateY(-20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
@keyframes slideUp { from { transform: translateY(100%); } to { transform: translateY(0); } }
.fade-in-section { opacity: 0; transform: translateY(25px); transition: opacity 0.7s ease-out, transform 0.7s ease-out; }
.fade-in-section.is-visible { opacity: 1; transform: translateY(0); }

/* Utilitários */
.container { max-width: 1200px; }
.link-whatsapp { color: var(--color-primary); font-weight: 600; text-decoration: none; transition: color var(--transition-speed-normal) var(--transition-timing); }
.link-whatsapp:hover { color: var(--color-primary-dark); text-decoration: underline; }

/* Ajustes finos de responsividade */
@media (max-width: 768px) {
    html { scroll-padding-top: var(--scroll-padding, 120px); }
    main { 
        /* AJUSTADO: Reduzido de 80px para diminuir o espaço em telas menores */
        padding-top: 20px; 
        padding-bottom: 120px; 
    }
    .menu-index { top: 68px; }
    
    h1 { font-size: 2.2rem; } h2 { font-size: 1.8rem; }
    .cookie-content { flex-direction: column; align-items: flex-start; }
    .cookie-text { margin-right: 0; margin-bottom: 0.5rem; }
    .btn-cookie-accept { align-self: flex-end; }
    
    .cart-modal-content, .checkout-modal-content { width: 95%; max-height: 90vh; padding: 20px; }
    .cart-item { flex-wrap: wrap; }
    .cart-item-details { margin-bottom: 5px; width: 100%; }
    .cart-item-quantity { margin-right: auto; }
    .cart-item-total { margin-left: auto; }
    .testimonial-card { margin-bottom: 1.5rem; }
    .nav-link { font-size: 0.8rem; padding: 6px 8px; margin: 0 1px;}
    .nav-button-whatsapp { font-size: 0.8rem; padding: 6px 10px;}
    .menu-category-title { font-size: 1.8rem; }
    .menu-index-link { padding: 6px 12px; font-size: 0.85rem; }
    
    .zoom-modal-content { flex-direction: column; max-height: 85vh; overflow-y: auto; }
    .zoom-modal-details { padding: 1.5rem; }
    .zoom-modal-title { font-size: 1.5rem; }
    .zoom-modal-price { font-size: 1.5rem; }

    .marmitex-assistant-content { height: 100%; max-height: 100%; border-radius: 0; }
    .marmitex-assistant-body { flex-direction: column; }
    .assistant-sidebar { width: 100%; height: 200px; border-left: none; border-top: 1px solid var(--color-border); }
}
@media (max-width: 480px) {
    .btn { padding: 8px 15px; font-size: 0.85rem; }
    .btn-whatsapp { padding: 10px 20px; font-size: 0.95rem; }
    .whatsapp-float { width: 50px; height: 50px; font-size: 24px; bottom: 20px; right: 20px; }
    .menu-float { width: 50px; height: 50px; font-size: 22px; bottom: 80px; right: 20px; }
    
    .cart-modal-content, .checkout-modal-content { padding: 15px; }
    .cart-modal-title, .checkout-modal-title { font-size: 1.3rem; }
    .cart-item { font-size: 0.9rem; }
    .form-input, textarea.form-input, .radio-label-modal { font-size: 0.9rem; }

    .social-links { gap: 15px; }
    .footer .social-links { justify-content: center; }
    .footer .text-left { text-align: center; }
    .social-icon { font-size: 1.4rem; }
    
    .menu-card-title { font-size: 1.1rem; }
    .menu-card-price { font-size: 1.05rem; }
    .menu-index { top: 68px; padding: 0.5rem; gap: 6px 8px; }
    .menu-index-link { padding: 5px 10px; font-size: 0.75rem; }

    .zoom-modal-actions { flex-direction: column; align-items: stretch; }
    .zoom-modal-actions .btn-add-cart { text-align: center; }
    
    .assistant-title { font-size: 1.2rem; }
    .assistant-options-grid { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 0.75rem; }
    .assistant-option-card { padding: 0.75rem; }
    .assistant-item-image, .assistant-item-placeholder { height: 80px; }
}

/* REMOVING old marmitex builder styles to avoid conflict */
.marmitex-category, .marmitex-options-grid, .marmitex-option-label, .marmitex-builder-actions {
    display: none !important;
}