/* Shared navigation, interactions and responsive corrections — v47 */
:root { --header-height:82px; --category-height:64px; }
html { scroll-padding-top:0; }
section[id],main[id],#map { scroll-margin-top:calc(var(--header-height) + 16px); }
.skip-link { position:fixed; left:16px; top:12px; z-index:2000; padding:12px 18px; background:#fff; color:#4a1c23; transform:translateY(-160%); }
.skip-link:focus { transform:none; }
input,select,textarea,summary { scroll-margin-block:calc(var(--header-height) + 16px) 100px; }
.section-label { color:#806318; }
.partner-actions { display:flex; flex-wrap:wrap; gap:16px; align-items:center; }
.text-link { color:inherit; text-underline-offset:4px; padding:12px 0; }
.oem-next-step { max-width:680px; margin:0 auto 24px; }
.privacy-note { font-size:.82rem; line-height:1.6; margin:0 0 16px; color:#62544f; }
.privacy-note a { color:#722f37; text-underline-offset:3px; }
.faq-section { background:#faf7f3; padding:64px 4%; }
.faq-inner { max-width:960px; margin:auto; }
.faq-inner h2 { font-family:var(--font-display); color:#4a1c23; font-size:clamp(1.85rem,3vw,2.6rem); margin-bottom:24px; }
.faq-inner details { border-top:1px solid #ded2ca; }
.faq-inner summary { padding:20px 8px; cursor:pointer; font-weight:600; color:#4a1c23; }
.faq-inner details p { padding:0 8px 20px; color:#62544f; line-height:1.7; }
.faq-inner a { color:#722f37; }
.legal-content { max-width:860px; margin:auto; padding:calc(var(--header-height) + 48px) 24px 64px; color:#62544f; }
.legal-content h1,.legal-content h2 { font-family:var(--font-display); color:#4a1c23; line-height:1.2; }
.legal-content h1 { font-size:clamp(2rem,4vw,3rem); margin-bottom:24px; }
.legal-content h2 { font-size:1.5rem; margin:32px 0 12px; }
.legal-content p { margin:12px 0; line-height:1.75; }
.legal-content a { color:#722f37; text-underline-offset:3px; }
.map-focus,#limparBusca { background:#fffaf5; border:1px solid #722f37; color:#722f37; border-radius:8px; padding:12px 16px; min-height:44px; cursor:pointer; font:inherit; font-size:.85rem; }
.map-focus { margin-bottom:16px; }
.distribuidor-card { cursor:default; }
#mapStatus { padding:12px; font-size:.85rem; }
.catalog-results-tools { max-width:1240px; padding:12px 4%; margin:auto; display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between; scroll-margin-top:calc(var(--header-height) + var(--category-height) + 12px); }
.catalog-results-tools .catalog-status { padding:0; margin:0; }
[hidden] { display:none !important; }
:focus-visible { outline:3px solid #b88f20; outline-offset:4px; }
.nav,.nav.scrolled { box-sizing:border-box; height:var(--header-height); padding:10px 24px; display:flex; justify-content:center; align-items:center; gap:24px; background:rgba(63,27,33,.96) !important; border-bottom:1px solid rgba(255,255,255,.15); box-shadow:0 4px 18px #24101515; transition:background .2s ease; }
@supports(backdrop-filter:blur(12px)) { .nav,.nav.scrolled { background:rgba(63,27,33,.86) !important; backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); } }
.home-page .nav:not(.scrolled) { background:linear-gradient(180deg,rgba(48,20,25,.76),rgba(48,20,25,.32)) !important; backdrop-filter:none; -webkit-backdrop-filter:none; border-bottom-color:rgba(255,255,255,.08); box-shadow:none; }
.nav .logo { margin:0; flex:0 0 auto; }
.nav .logo img,.nav.scrolled .logo img { display:block; height:54px; width:auto; }
.nav .nav-links { display:flex; gap:22px; margin:0; padding:0; }
.nav .nav-links a,.nav.scrolled .nav-links a { color:#fff !important; font-size:.84rem; white-space:nowrap; text-shadow:none; }
.nav .nav-links a[aria-current],.nav .nav-links a:hover { text-decoration:underline; text-underline-offset:6px; }
.nav .nav-cta,.nav.scrolled .nav-cta { display:flex; flex:0 0 220px; width:220px; align-items:center; justify-content:center; white-space:nowrap; padding:0 16px; }
.nav .nav-cta,.nav.scrolled .nav-cta { box-sizing:border-box; height:44px; min-height:44px; margin:0; border:1px solid transparent; border-radius:8px; background:#d2b34e; color:#32161b; font-family:Montserrat,sans-serif; font-size:13px; font-weight:600; line-height:16px; letter-spacing:0; text-transform:none; text-align:center; text-decoration:none; box-shadow:none; transform:none; transition:background-color .2s ease; }
.nav .nav-cta:hover,.nav.scrolled .nav-cta:hover { background:#e0c365; color:#32161b; transform:none; }
.produto-img.photo-unavailable { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; background:#f3ece6; color:#62544f; }
.photo-unavailable svg { width:44px; height:44px; color:#95786b; }
.photo-unavailable span { font-size:.9rem; font-weight:500; letter-spacing:0; }
.nav .mobile-menu-btn,.nav .mobile-contact-link { display:none; }
.mobile-nav { z-index:1002; max-width:calc(100vw - 24px); overflow-y:auto; }
.mobile-nav-overlay { z-index:1001; }
.mobile-nav-actions { display:grid; gap:12px; padding:20px; }
.mobile-nav .mobile-nav-actions a { display:block; padding:14px 12px; text-align:center; font-size:.85rem; border:1px solid #ffffff66; border-radius:8px; color:white; }
.mobile-nav .mobile-nav-actions .mobile-commercial { background:#d2b34e; color:#32161b; }
.mobile-nav-close,.mobile-menu-btn { min-height:44px; min-width:44px; }
.filtros { top:var(--header-height); background:rgba(255,251,245,.97); backdrop-filter:blur(10px); display:flex; flex-wrap:nowrap; overflow-x:auto; justify-content:flex-start; padding:10px 4%; }
.filtro-btn { flex-shrink:0; min-height:44px; white-space:nowrap; }
/* Auto margins center the group only when it fits; overflow remains reachable. */
.filtro-spacer { display:none; }
.filtro-btn:first-of-type { margin-inline-start:auto; }
.filtro-btn:last-of-type { margin-inline-end:auto; }
.catalogo-header { min-height:320px; padding:calc(var(--header-height) + 42px) 4% 42px; }
.catalogo-header h1 { max-width:1100px; font-size:clamp(2.1rem,3.2vw,3.25rem); line-height:1.15; }
.categoria[id] { scroll-margin-top:calc(var(--header-height) + var(--category-height) + 12px); }
#contato,#solucoes-b2b,#empresa,#marca-propria { scroll-margin-top:calc(var(--header-height) + 16px); }
.produtos-grid { align-items:stretch; }
.produto-card { width:100%; min-width:0; max-width:none; flex:auto; box-shadow:0 3px 14px #4020200d; }
.produto-info { display:flex; flex-direction:column; flex:1; }
.product-contact { display:block; margin-top:16px; padding:12px; border:1px solid #722f37; border-radius:8px; color:#722f37; text-align:center; font-weight:600; text-decoration:none; font-size:.86rem; }
.product-contact:hover { background:#722f37; color:#fff; }
.catalog-status,.distributor-search { max-width:1240px; margin:12px auto; padding:0 4%; color:#62544f; }
.distributor-search input { width:100%; padding:14px; font:inherit; font-size:16px; border:1px solid #b9a7a0; border-radius:8px; margin:8px 0; }
.distribuidor-header { display:flex; flex-direction:column; align-items:flex-start; gap:8px; }
.distribuidor-header .distribuidor-cidade { order:-1; font-weight:700; font-size:1.05rem; }
.fade-in,.fade-in-left,.fade-in-right { opacity:1; transform:none; }
.category-card,.produto-card,.benefit-card { transition:transform .2s ease,box-shadow .2s ease !important; transition-delay:0s !important; }
.category-card:hover,.produto-card:hover,.benefit-card:hover { transform:translateY(-3px); }
.category-image img,.produto-img img { transition:transform .2s ease; }
.category-card:hover img,.produto-card:hover img { transform:scale(1.02); }
.badge-bestseller { animation:none; }
.delivery-btn.retirada,.delivery-btn.ifood,.delivery-btn.food99 { background:#fff; color:#49242a; border:1px solid #ded2ca; border-top:3px solid #722f37; transform:none; box-shadow:none; }
.delivery-btn.ifood { border-top-color:#c62838; }
.delivery-btn.food99 { border-top-color:#d1ab14; }
.delivery-btn { --delivery-accent:#722f37; max-width:none; text-align:left; gap:0; transition:background-color .2s ease,border-color .2s ease; }
.delivery-btn.ifood { --delivery-accent:#c62838; }
.delivery-btn.food99 { --delivery-accent:#9b7610; }
.delivery-btn strong { font-family:var(--font-body); font-size:1.05rem; line-height:1.4; font-weight:600; }
.delivery-btn small { color:#62544f; opacity:1; line-height:1.5; }
.delivery-action { display:flex; align-items:center; gap:8px; margin-top:20px; color:#722f37; font-size:.85rem; font-weight:600; }
.delivery-btn:focus-visible { outline:3px solid #722f37; outline-offset:4px; }
.delivery-btn:focus-visible .delivery-action { text-decoration:underline; text-underline-offset:4px; }
.sr-only { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; }
@media(hover:hover) {
 .delivery-btn.retirada:hover,.delivery-btn.ifood:hover,.delivery-btn.food99:hover { background:#fff9f2; border-color:var(--delivery-accent); box-shadow:none; transform:none; }
 .delivery-btn:hover .delivery-action { text-decoration:underline; text-underline-offset:4px; }
}
.benefits { padding:3.5rem 4%; }
.benefit-card { padding:1.5rem; }
.delivery-kicker { color:#806318; }
.form-status { margin-top:12px; color:#49242a; }
.contact-form-container input,.contact-form-container select,.contact-form-container textarea { font-size:16px; }
.hero { background-image:url('images/cheesecake-hero-1920.webp'); }
.voltar-topo { position:fixed; right:21px; bottom:calc(88px + env(safe-area-inset-bottom)); width:44px; height:44px; border:1px solid #d4c7bf; border-radius:50%; background:#fffaf5; color:#722f37; z-index:98; font-size:1.25rem; cursor:pointer; box-shadow:0 3px 12px #3010151a; visibility:hidden; opacity:0; transition:opacity .2s; }
.voltar-topo.visivel { visibility:visible; opacity:1; transform:none; }
.whatsapp-float { right:16px; bottom:calc(16px + env(safe-area-inset-bottom)); width:54px; height:54px; }
@media(min-width:769px) and (max-width:1050px) {
 .company-story-inner { gap:2rem; }
 .products-categories,.produtos-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .contact-container,.distributor-content { grid-template-columns:1fr; gap:2rem; }
 .delivery-buttons { gap:.75rem; }
 .delivery-btn { padding:1rem; }
 .oem-benefits { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:1050px) {
 :root { --header-height:72px; }
 .nav,.nav.scrolled { justify-content:flex-end; gap:10px; padding:8px 20px; }
 .nav .logo { margin-right:auto; }
 .nav .logo img,.nav.scrolled .logo img { height:50px; }
 /* Keep desktop controls hidden in both scroll states on phones and tablets. */
 .nav .nav-links,.nav.scrolled .nav-links,.nav .nav-cta,.nav.scrolled .nav-cta { display:none; }
 .nav .mobile-menu-btn { display:flex; flex:0 0 44px; flex-direction:column; align-items:center; justify-content:center; }
 .nav .mobile-contact-link { display:flex; box-sizing:border-box; flex:0 1 170px; min-width:0; max-width:170px; min-height:44px; padding:8px 12px; align-items:center; justify-content:center; border:1px solid transparent; border-radius:8px; background:#d2b34e; color:#32161b; text-decoration:none; font-size:.8rem; font-weight:600; line-height:1.25; text-align:center; white-space:normal; }
 .nav .mobile-contact-link:hover { background:#e0c365; color:#32161b; }
}
@media(max-width:768px) {
 /* Mobile only: retain the transparent top state, use solid wine after scrolling. */
 .nav.scrolled { background:#3f1b21 !important; }
 .catalogo-header { min-height:0; padding:calc(var(--header-height) + 32px) 1.25rem 32px; }
 .catalogo-header h1 { font-size:clamp(1.85rem,7vw,2.5rem); }
 .hero { background-image:url('images/cheesecake-hero-960.webp'); }
 .produtos-grid { grid-template-columns:1fr; }
 .produto-card { max-width:none; width:100%; }
 .whatsapp-float { width:54px; height:54px; right:16px; bottom:calc(16px + env(safe-area-inset-bottom)); }
 .voltar-topo { bottom:calc(88px + env(safe-area-inset-bottom)); right:21px; width:44px; height:44px; }
 .hero-buttons a { white-space:normal; }
 .contact-form-container { min-width:0; padding:1.25rem; }
 .form-row { grid-template-columns:1fr; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto !important; }
 *,*::before,*::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}
