.theme-slot{display:flex;align-items:center;justify-content:flex-end;flex:none}
.theme-control{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:4px 5px 4px 11px;border:1px solid #ad7548;border-radius:4px;background:linear-gradient(145deg,#3b2b22,#291f1a);color:#f8dcba;box-shadow:0 3px 0 #633e2c;font:800 12px 'DM Sans',Arial,sans-serif;letter-spacing:.04em;white-space:nowrap;transition:border-color .15s,background .15s}
.theme-control:hover,.theme-control:has(.theme-hit:focus-visible),.theme-control:has(.theme-item:focus-visible){border-color:#efb24f;background:#443025}
.theme-control-mark{display:grid;place-items:center;width:21px;height:21px;border:1px solid #e6a43d;border-radius:50%;color:#f6be65;font-size:16px;line-height:1}
.theme-control select{appearance:none;-webkit-appearance:none;min-height:32px;min-width:108px;padding:5px 26px 5px 9px;border:1px solid #805d42;border-radius:2px;background-color:#211b17;background-image:linear-gradient(45deg,transparent 50%,#efb24f 50%),linear-gradient(135deg,#efb24f 50%,transparent 50%);background-position:calc(100% - 14px) 51%,calc(100% - 9px) 51%;background-size:5px 5px;background-repeat:no-repeat;color:#fff5e5;font:700 12px 'DM Sans',Arial,sans-serif;cursor:pointer}
.theme-control select:focus-visible{outline:3px solid #efb24f;outline-offset:2px}
.site-header{flex-wrap:wrap}.site-header .site-nav{margin-left:auto;gap:clamp(10px,1.6vw,25px)}.site-header .theme-slot{margin-left:auto}
.ticket-header,.payment-header{flex-wrap:wrap}.ticket-header-actions,.payment-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:18px;flex-wrap:wrap}.ticket-header-actions>a,.payment-header-actions>a{display:inline-flex;align-items:center;min-height:44px}
.admin-login-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:23px}.admin-login-header .login-logo{width:175px;max-width:100%;margin:0;padding:12px}
.admin-topline .top-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.gate-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;min-height:82px;padding:12px clamp(18px,6vw,94px);background:#241e19;color:#fff5e5;border-bottom:4px solid #a9442c}.gate-header a{display:block}.gate-header img{display:block;width:clamp(160px,18vw,220px);height:auto}
@media(max-width:800px){.site-header{flex-wrap:nowrap}.site-header .site-nav{margin-left:auto}.site-header .theme-slot{margin-left:0}}
@media(max-width:750px){.admin-main .admin-topline{display:block}.admin-topline .top-actions{margin-top:12px;justify-content:flex-end}}
@media(max-width:600px){.ticket-header,.payment-header{flex-wrap:nowrap}.ticket-header-actions,.payment-header-actions{width:auto;gap:4px}.gate-header{flex-wrap:nowrap}.gate-header .theme-slot{margin-left:auto}.theme-control{position:relative;width:44px;height:44px;min-height:44px;padding:0;justify-content:center;gap:0;border-radius:4px}.theme-control-label{display:none}.theme-control-mark{width:24px;height:24px}.theme-control select{position:absolute;inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px);min-width:0;min-height:0;padding:0;opacity:0;cursor:pointer}.theme-control:focus-within{outline:none}}
.theme-slot{gap:8px}
.lang-switch{display:inline-flex;align-items:stretch;min-height:44px;border:1px solid #ad7548;border-radius:4px;background:linear-gradient(145deg,#3b2b22,#291f1a);box-shadow:0 3px 0 #633e2c;overflow:hidden}
.theme-slot nav.lang-switch a{display:inline-flex;align-items:center;padding:0 11px;color:#f8dcba;font:800 12px 'DM Sans',Arial,sans-serif;letter-spacing:.08em;text-decoration:none}
.theme-slot nav.lang-switch a+a{border-left:1px solid #805d42}
.theme-slot nav.lang-switch a:hover{background:#443025}.theme-slot nav.lang-switch a:focus-visible{background:#443025;outline:3px solid #efb24f;outline-offset:-3px}
.theme-slot nav.lang-switch a[aria-current="true"]{background:#e6a43d;color:#241e19}
@media(max-width:600px){.lang-switch{flex:none}.theme-slot nav.lang-switch a{padding:0 8px;font-size:11px}.theme-slot{gap:5px}.site-header{flex-wrap:wrap;row-gap:0}.site-header .brand{order:1}.site-header .theme-slot{order:2;margin-left:auto}.site-header .site-nav{order:3;flex:1 1 100%;margin-left:0;justify-content:space-between;padding-bottom:8px}}
@media(max-width:480px){.ticket-header-actions>a,.payment-header-actions>a{display:none}}
@media all{.theme-slot:has(.lang-switch) .theme-control{position:relative;width:44px;height:44px;min-height:44px;padding:0;justify-content:center;gap:0}.theme-slot:has(.lang-switch) .theme-control-label{display:none}.theme-slot:has(.lang-switch) .theme-control-mark{width:24px;height:24px}.theme-slot:has(.lang-switch) .theme-control select{position:absolute;inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px);min-width:0;min-height:0;padding:0;opacity:0;cursor:pointer}.theme-slot:has(.lang-switch) .theme-control:focus-within{outline:none}}
.contact-toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:50;max-width:min(92vw,520px);padding:13px 18px;background:#241e19;color:#ffe6b4;border-left:5px solid #efb24f;box-shadow:0 9px 25px #241e193c;font:600 14px/1.45 'DM Sans',Arial,sans-serif;text-align:left}.contact-toast[hidden]{display:none}
/* Padrao do site: cabecalho e rodape das paginas de compra e de pedido iguais aos da pagina inicial; com "body" na frente para vencer o CSS das paginas, que o Vite carrega depois */
body .ticket-header,body .payment-header{min-height:100px}
body .ticket-header>a:first-child img,body .payment-header>a:first-child img{width:clamp(230px,26vw,360px);height:auto}
@media(min-width:601px){body .ticket-header .theme-slot nav.lang-switch,body .payment-header .theme-slot nav.lang-switch{min-height:44px} body .ticket-header .theme-slot nav.lang-switch a,body .payment-header .theme-slot nav.lang-switch a{padding:0 14px;font-size:13px} body .ticket-header .theme-slot:has(.lang-switch) .theme-control,body .payment-header .theme-slot:has(.lang-switch) .theme-control{width:44px;height:44px;min-height:44px} body .ticket-header .theme-slot:has(.lang-switch) .theme-control-mark,body .payment-header .theme-slot:has(.lang-switch) .theme-control-mark{width:26px;height:26px;font-size:18px}}
@media(max-width:600px){body .ticket-header,body .payment-header{flex-wrap:wrap;gap:0 8px;align-items:center;min-height:0;padding:10px 18px 4px} body .ticket-header>.ticket-header-actions,body .payment-header>.payment-header-actions{display:contents} body .ticket-header>a:first-child,body .payment-header>a:first-child{order:1;flex:1 1 0;min-width:0;max-width:260px;padding:8px 0} body .ticket-header>a:first-child img,body .payment-header>a:first-child img{width:100%} body .ticket-header .theme-slot,body .payment-header .theme-slot{order:2;margin-left:auto;flex:none;gap:5px;min-width:139px;min-height:46px} body .ticket-header .theme-slot nav.lang-switch,body .payment-header .theme-slot nav.lang-switch{min-height:44px} body .ticket-header .theme-slot nav.lang-switch a,body .payment-header .theme-slot nav.lang-switch a{padding:0 7px;font-size:12px} body .ticket-header::after,body .payment-header::after{content:'';order:3;flex:1 1 100%;height:0} body .ticket-header .ticket-header-actions>a,body .payment-header .payment-header-actions>a{order:4;flex:0 0 auto;margin-right:18px;display:inline-flex;align-items:center;min-height:40px;padding:0;font-size:13px}
body .ticket-header .ticket-header-actions>a:first-of-type,body .payment-header .payment-header-actions>a:first-of-type{margin-left:3px}
body .ticket-header .ticket-header-actions>a:last-of-type,body .payment-header .payment-header-actions>a:last-of-type{margin-right:0}}
body .site-footer a{line-height:1.5}
@media(max-width:800px){body .site-footer{display:grid;grid-template-columns:minmax(0,1fr);justify-items:stretch;gap:10px;padding:26px 24px 28px} body .site-footer strong{display:block;width:240px;max-width:100%;height:40px;margin:4px auto 2px;font-size:0;line-height:0;color:transparent;background:url(img/logo-cream.png) no-repeat center/contain} body .site-footer .footer-pages{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 24px} body .site-footer .footer-pages a{font-weight:800;color:#f4dcac;text-decoration:none;padding:6px 0} body .site-footer .footer-links{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;border-top:1px solid #4a3a2d} body .site-footer .footer-links a{display:block;padding:10px 0;border-bottom:1px solid #4a3a2d;text-decoration:none;text-align:center} body .site-footer a.footer-whatsapp{display:block;padding:12px 16px;margin-top:4px;border:1px solid #dfb982;background:#2f2620;text-align:center;font-weight:700;text-decoration:none;line-height:1.4}}
@media(min-width:801px){body .site-footer{display:grid;grid-template-columns:auto auto auto auto;justify-content:space-between;gap:40px;align-items:center;padding:24px clamp(24px,6vw,94px)} body .site-footer strong{display:block;width:150px;height:86px;font-size:0;line-height:0;color:transparent;background:url(img/logo-empilhada.png) no-repeat left center/contain} body .site-footer a{font-size:15px;text-decoration:none} body .site-footer .footer-pages{flex-direction:column;gap:10px} body .site-footer .footer-links{display:grid;grid-template-columns:auto auto;gap:10px 40px} body .site-footer .footer-links a{display:block;line-height:1.4} body .site-footer a.footer-whatsapp{padding:15px 22px;border:1px solid #dfb982;background:#2f2620;font-weight:700;white-space:nowrap}}
@media(min-width:801px) and (max-width:1150px){body .site-footer{grid-template-columns:1fr 1fr 1.4fr} body .site-footer a.footer-whatsapp{grid-column:1/-1;text-align:center}}
/* Rodape sempre no pe da tela, mesmo com pouco conteudo, e sem a textura de bolinhas no fundo */
html body:has(>footer.site-footer){min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
html body:has(>footer.site-footer)>*{flex-shrink:0}
html body>footer.site-footer{margin-top:auto}
:root body.ticket-page,:root body.payment-page,:root[data-theme="dark"] body.ticket-page,:root[data-theme="dark"] body.payment-page{background-image:none}
/* Menu de tema proprio (montado por theme.js sobre o select, que fica como reserva) */
body .theme-control.theme-enhanced{position:relative}
body .theme-control.theme-enhanced select{display:none}
body .theme-control.theme-enhanced .theme-control-mark{display:grid;place-items:center;width:22px;height:22px;border:0;border-radius:0;font-size:0;color:#f6be65}
.theme-control .ico svg,.theme-control-mark svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
body .theme-control .theme-hit{position:absolute;inset:0;width:100%;height:100%;min-height:0;padding:0;margin:0;border:0;border-radius:inherit;background:none;opacity:0;cursor:pointer}
/* Foco: so por teclado (:focus-visible), anel unico de 3 px dourado a 3 px do botao, cantos retos; depois de clicar com o mouse nao sobra anel. */
body .theme-control.theme-enhanced{border-radius:0}
body .theme-control .theme-hit{border-radius:0}
body .theme-control.theme-enhanced:focus-within{outline:none}
body .theme-control .theme-hit:focus{outline:none}
body .theme-control .theme-hit:focus-visible{outline:3px solid #efb24f;outline-offset:3px;border-radius:0}
body .theme-control .theme-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:60;display:none;min-width:132px;margin:0;padding:4px;list-style:none;background:#241e19;border:2px solid #e6a43d;box-shadow:3px 3px 0 #a9442c;letter-spacing:0;text-transform:none}
body .theme-control.is-open .theme-menu{display:block}
body .theme-control .theme-menu li{margin:0;padding:0}
body .theme-control .theme-item{display:flex;align-items:center;gap:8px;width:100%;min-height:32px;padding:6px 9px;border:0;border-radius:0;background:transparent;color:#f5e9d7;font:700 12.5px 'DM Sans',Arial,sans-serif;letter-spacing:.01em;text-align:left;white-space:nowrap;cursor:pointer}
body .theme-control .theme-item:hover,body .theme-control .theme-item:focus-visible{background:#35261d;color:#fff5e5;outline:none}
body .theme-control .theme-item .ico{display:inline-grid;place-items:center;flex:none;width:17px;height:17px;color:#f6be65}
body .theme-control .theme-item[aria-checked="true"]{background:#e6a43d;color:#241e19}
body .theme-control .theme-item[aria-checked="true"] .ico{color:#241e19}
body .theme-control .theme-item[aria-checked="true"]:after{content:'';flex:none;width:5px;height:10px;margin:0 3px 0 auto;border:solid #241e19;border-width:0 2.2px 2.2px 0;transform:translateY(-2px) rotate(45deg)}
@media(max-width:850px){body .theme-control .theme-menu{min-width:116px;padding:3px}body .theme-control .theme-item{min-height:32px;gap:7px;padding:5px 8px;font-size:12px}body .theme-control .theme-item .ico{width:15px;height:15px}body .theme-control .theme-item[aria-checked="true"]:after{width:4px;height:8px;margin-right:2px}}
/* Barra de rolagem fina do Salto (Chrome, Edge, Safari; o Firefox so troca as cores). No celular o navegador nao permite estilizar. */
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:transparent;border:0}
::-webkit-scrollbar-thumb{background:#a9442c;border:3px solid transparent;background-clip:padding-box;border-radius:6px;min-height:48px}
::-webkit-scrollbar-thumb:hover{background:#813321;background-clip:padding-box}
::-webkit-scrollbar-corner{background:transparent}
:root[data-theme="dark"] ::-webkit-scrollbar-thumb{background:#e6a43d;border:3px solid transparent;background-clip:padding-box}
:root[data-theme="dark"] ::-webkit-scrollbar-thumb:hover{background:#efb24f;background-clip:padding-box}
@supports (-moz-appearance:none){html{scrollbar-width:thin;scrollbar-color:#a9442c transparent}:root[data-theme="dark"]{scrollbar-color:#e6a43d transparent}}

/* Acima dos avisos de contato e das notificacoes do painel; abaixo dos menus. */
.back-to-top,.back-to-bottom{position:fixed;right:max(12px,env(safe-area-inset-right));z-index:40;display:flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border:2px solid var(--rust);border-radius:0;background:#a9442c;color:#fff5e5;box-shadow:4px 4px 0 #d39849;cursor:pointer}
/* Grupo de botoes: todos 48 px, vao de 10 px. --botoes-linha e a base comum (alinhada ao rodape pelo iniciar do bot ou, sem bot, pelo modulo da seta). */
:root{--botoes-passo:58px;--botoes-reserva:190px;--botoes-linha:var(--back-to-top-bottom,var(--chat-bottom,calc(30px + env(safe-area-inset-bottom))))}
.back-to-bottom{bottom:var(--botoes-linha)}
.back-to-top{bottom:var(--botoes-linha);right:calc(max(12px,env(safe-area-inset-right)) + var(--botoes-passo))}
.back-to-top[hidden],.back-to-bottom[hidden]{display:none}
.back-to-top,.back-to-bottom{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(16px);transition:opacity 200ms ease-out,visibility 0s 200ms,transform 0s 200ms}
.back-to-top.is-visible,.back-to-bottom.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);transition:opacity 280ms cubic-bezier(0.22,1,0.36,1),transform 280ms cubic-bezier(0.22,1,0.36,1),visibility 0s}
.back-to-top.is-visible{transition:opacity 280ms cubic-bezier(0.22,1,0.36,1),transform 280ms cubic-bezier(0.22,1,0.36,1),visibility 0s,translate 280ms cubic-bezier(0.22,1,0.36,1)}
.back-to-top.is-low{translate:var(--botoes-passo) 0}
@starting-style{.back-to-top.is-visible,.back-to-bottom.is-visible{opacity:0;transform:translateY(16px)}}
@media(prefers-reduced-motion:reduce){.back-to-top,.back-to-top.is-visible,.back-to-bottom,.back-to-bottom.is-visible{transition:none;transform:none}}
@media(max-width:800px){.back-to-top,.back-to-bottom{display:none!important}}
.back-to-top:hover,.back-to-bottom:hover{background:#873621}
.back-to-top:focus-visible,.back-to-bottom:focus-visible{outline:3px solid #241e19;outline-offset:5px}
:root[data-theme="dark"] .back-to-top,:root[data-theme="dark"] .back-to-bottom{background:#efb24f;color:#241e19;border-color:#efb24f;box-shadow:4px 4px 0 #a9442c}
:root[data-theme="dark"] .back-to-top:hover,:root[data-theme="dark"] .back-to-bottom:hover{background:#f5d1a4}
:root[data-theme="dark"] .back-to-top:focus-visible,:root[data-theme="dark"] .back-to-bottom:focus-visible{outline-color:#fff5e5}
/* Reserva lateral para a seta, inclusive quando o WhatsApp ocupa a linha toda. */
@media(min-width:801px){body .site-footer{padding-right:max(84px,6vw)}html.has-chat-bubble body .site-footer{padding-right:max(clamp(24px,6vw,94px),var(--botoes-reserva))}}
body:has(.contact-toast:not([hidden]),.toast:not([hidden])){--botoes-linha:max(132px,var(--back-to-top-bottom,var(--chat-bottom,30px)))}

/* Bot publico: alvo fixo pequeno, empilhado abaixo da seta. Sem JS permanece oculto. */
.salto-chat-toggle{box-sizing:border-box;position:fixed;right:max(12px,env(safe-area-inset-right));bottom:var(--chat-bottom,calc(30px + env(safe-area-inset-bottom)));translate:var(--chat-dx,0);transition:translate 280ms cubic-bezier(0.22,1,0.36,1);z-index:50;display:grid;place-items:center;width:48px;height:48px;padding:0;border:1px solid #e6a43d;border-radius:0;background:#923a25;color:#fff5e5;box-shadow:4px 4px 0 #d39849;cursor:pointer}
.salto-chat-toggle[hidden],.salto-chat-error[hidden]{display:none}
.salto-chat-toggle:focus-visible{outline:3px solid #241e19;outline-offset:4px}
:root[data-theme="dark"] .salto-chat-toggle{border-color:#efb24f;background:#efb24f;color:#241e19;box-shadow:4px 4px 0 #d39849}
:root[data-theme="dark"] .salto-chat-toggle:focus-visible{outline-color:#fff5e5}
body:has(.contact-toast:not([hidden]),.toast:not([hidden])) .salto-chat-toggle{bottom:max(132px,var(--chat-bottom,30px))}
/* Chat ao lado das setas (--setas = quantas estao visiveis, 0 a 2; o modulo da seta so ajusta o numero).
   Os tres ficam lado a lado na mesma base, com o chat na ponta esquerda. */
@media(min-width:801px){
.salto-chat-toggle{--chat-dx:calc(var(--setas,0)*var(--botoes-passo)*-1)}
}
@media(prefers-reduced-motion:reduce){.salto-chat-toggle{transition:none}}
.salto-chat-error{position:fixed;right:12px;bottom:90px;width:min(280px,calc(100vw - 24px));padding:12px;background:#fff5e5;color:#241e19;border:2px solid #923a25;z-index:56}
@media(max-width:800px){.has-chat-bubble body .site-footer a.footer-whatsapp{margin-right:56px}.salto-chat-toggle{bottom:calc(30px + env(safe-area-inset-bottom))}}
@media print{.salto-chat-toggle,.salto-chat-error{display:none!important}}

/* Fundo de carrancas limitado ao documento: a camada (.ex-fundo) e absoluta e o script a deixa com a altura da pagina; sem um pai posicionado ela
   media contra a janela e o proprio tamanho dela segurava o scrollHeight, entao a pagina nunca voltava a encolher (Cartao e depois Pix deixava uma
   faixa vazia no fim). Presa ao body ela nao conta para a altura e o script recompoe quando a altura muda. */
html body:has(>.ex-fundo){position:relative}
html body>.ex-fundo{height:100%!important}

/* Cor do topo e do fundo da pagina: tokens unicos. --topo-rgb alimenta os degrades do heroi (e a cor escura do topo no tema claro).
   Tema escuro: cabecalho, faixa do heroi e rodape usam EXATAMENTE a cor de fundo da pagina (--pagina-bg). Antes o topo era #1b1815 e o heroi
   terminava em #241e19, mais quentes que o fundo (#171714): uma faixa visivel. No tema claro nada muda (o topo escuro e uma escolha do desenho;
   a versao clara espera a escolha do Letto). */
:root{--topo-rgb:36 30 25}
:root[data-theme="dark"]{--pagina-bg:#171714;--topo-rgb:23 23 20}
html[data-theme="dark"] body{background-color:var(--pagina-bg)}
html[data-theme="dark"] body :is(.site-header,.ticket-header,.payment-header,.site-footer,.ticket-hero,.payment-hero,.hero){background-color:var(--pagina-bg)}
/* O menu de tema abre por cima de tudo (foto do heroi, quadros) em todas as paginas, com ou sem o motor de animacao */
.site-header,.ticket-header,.payment-header{position:relative;z-index:60}

/* Painel administrativo, guarita e caixa: o botao de tema mostra so o simbolo (44 x 44 px), sem a palavra "Tema". Landing, compra e pedido nao entram aqui. */
body.admin-page .theme-control,body.gate-page .theme-control{position:relative;width:44px;height:44px;min-height:44px;padding:0;justify-content:center;gap:0}
body.admin-page .theme-control-label,body.gate-page .theme-control-label{display:none}
body.admin-page .theme-control-mark,body.gate-page .theme-control-mark{width:24px;height:24px}
body.admin-page .theme-control select,body.gate-page .theme-control select{position:absolute;inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px);min-width:0;min-height:0;padding:0;opacity:0;cursor:pointer}
body.admin-page .top-actions .theme-control,body.admin-page .admin-topline .theme-control,body.gate-page .top-actions .theme-control{width:44px;height:44px;min-height:44px}
body.admin-page .top-actions .theme-slot,body.gate-page .top-actions .theme-slot{align-self:stretch;align-items:stretch}
body.admin-page .top-actions .theme-control,body.admin-page .admin-topline .theme-control,body.gate-page .top-actions .theme-control{height:auto;min-height:44px}
