/* Safra Store — CSS não-crítico do header/footer (mobile-menu overlay, toast, footer completo).
   Extraído dos <style> inline de header.php/footer.php (trilha CSS da auditoria de performance,
   2026-08-30): nenhuma dessas regras afeta o primeiro paint (menu mobile começa escondido, toast
   só existe após ação AJAX, footer fica abaixo da dobra) mas eram reimpressas por INTEIRO em toda
   resposta HTML dinâmica do site inteiro. Como arquivo estático cacheável (30 dias, ver header.php
   e footer.php que carregam este link com filemtime() como versão), a partir da 2ª página vista
   pelo visitante o download deste CSS é zero bytes (cache do browser) em vez de ~9KB por página.
   Os tokens (--navy, --gold, --sans, --serif etc.) usados aqui vêm do :root crítico que continua
   inline em header.php — carrega antes deste arquivo, então a cascata resolve normalmente. */
/* z-index:150 > .site-header (100): sem isso o header sticky ficava por cima do overlay,
   escondendo o primeiro item da lista atrás dele. */
#mobile-menu.hidden{display:none}
#mobile-menu{opacity:1;transition:opacity .3s ease;z-index:150}
#mobile-menu.opacity-0{opacity:0}
#mobile-menu.opacity-100{opacity:1}
.safra-mobile-nav{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.safra-mobile-nav li a,.mobile-menu-link{display:block;padding:14px 4px;font-family:var(--sans);font-size:16px;font-weight:500;color:var(--ink);border-bottom:1px solid var(--surface-1);position:relative}
.safra-mobile-nav li a:hover,.mobile-menu-link:hover{color:var(--navy)}
.safra-mobile-nav li.current-menu-item a{color:var(--navy);font-weight:700}
#safra-toast-container{position:fixed;bottom:24px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:10px;pointer-events:none;max-width:calc(100vw - 48px)}
.safra-toast{background:var(--navy);color:#fff;padding:14px 18px;border-radius:8px;display:flex;align-items:center;gap:14px;font-family:var(--sans);font-size:13.5px;font-weight:500;box-shadow:0 10px 40px rgba(0,0,48,.25);opacity:0;transform:translateX(20px);transition:opacity .25s,transform .25s;pointer-events:auto;min-width:280px;max-width:400px}
.safra-toast.is-visible{opacity:1;transform:translateX(0)}
.safra-toast--success{background:#15803D}
.safra-toast--info{background:var(--navy-link)}
.safra-toast--error{background:#B3261E}
.safra-toast-msg{flex:1;line-height:1.4}
.safra-toast-action{color:#fff;background:rgba(255,255,255,.2);padding:6px 12px;border-radius:6px;font-size:12px;font-weight:700;text-decoration:none;white-space:nowrap;transition:background .15s}
.safra-toast-action:hover{background:rgba(255,255,255,.3);color:#fff}
@media(max-width:540px){#safra-toast-container{left:16px;right:16px;bottom:16px}.safra-toast{min-width:0;width:100%}}
.site-footer{background:var(--navy);color:#fff;position:relative;overflow:hidden;padding-top:0}
.footer-hair{border-top:1px solid rgba(199,176,106,.35)}
.footer-top{display:grid;grid-template-columns:1.2fr repeat(4,1fr);gap:40px;padding-top:64px;padding-bottom:52px}
.footer-brand .logo{color:#fff;height:26px;margin-bottom:18px}
.footer-brand p{font-size:13px;line-height:1.7;color:var(--navy-on-navy);max-width:230px}
.footer-social{display:flex;gap:9px;margin-top:24px}
.footer-social a{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid rgba(226,219,201,.26);color:#fff;transition:border-color .2s ease,color .2s ease,background-color .2s ease}
.footer-social a:hover{border-color:var(--gold);color:var(--gold);background:rgba(199,176,106,.1)}
.footer-social .icon{width:17px;height:17px;stroke-width:1.3}
.footer-col h3{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin-bottom:18px}
.footer-col a{display:block;padding:6px 0;font-size:13px;color:#fff;opacity:.92;position:relative;width:fit-content;transition:color .35s cubic-bezier(.16,1,.3,1),opacity .35s ease}
.footer-col a::after{content:'';position:absolute;left:0;bottom:2px;width:100%;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.16,1,.3,1)}
.footer-col a:hover{color:var(--gold);opacity:1}
.footer-col a:hover::after{transform:scaleX(1)}
.footer-legal{border-top:1px solid rgba(255,255,255,.14);padding-top:24px;padding-bottom:12px;display:grid;grid-template-columns:4fr 1fr;align-items:center;gap:24px}
.footer-legal p,.footer-legal address{font-size:11.5px;line-height:1.75;color:var(--navy-on-navy);max-width:none;margin:0;font-style:normal}
.footer-legal a{color:#fff;text-decoration:underline;text-underline-offset:2px}
.footer-legal a:hover{color:var(--gold)}
.footer-legal p.footer-tagline{font-family:var(--serif);font-weight:600;font-size:17px;color:var(--gold);justify-self:end;text-align:right;white-space:nowrap}
/* Cor era rgba(255,255,255,.35) — contraste 2.99:1 sobre navy, abaixo do mínimo WCAG 4.5:1.
   #b8ad91 é o tint dourado da rampa do design system (--gold-hair), ratio ~9:1 sobre --navy. */
.footer-credit{padding-bottom:24px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:11px;color:#b8ad91}
.footer-credit a{color:rgba(255,255,255,.55);font-weight:600;text-decoration:none}
.footer-credit a:hover{color:var(--gold)}
@media (prefers-reduced-motion: reduce){.footer-col a,.footer-col a::after,.footer-social a{transition:none}}
@media(max-width:640px){.footer-legal{grid-template-columns:1fr;gap:14px}.footer-legal p.footer-tagline{justify-self:start;text-align:left}}
@media(max-width:900px){.footer-top{grid-template-columns:repeat(2,1fr);row-gap:36px}.footer-brand{grid-column:1/-1}}
@media(max-width:480px){.footer-top{grid-template-columns:1fr}}

