/* Widgets Donelli — estilo neutro da fase de montagem. As cores vêm das Cores Globais do Elementor. */

.sr-only {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Botões */
.dm-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5em;
	min-height: 44px;
	padding: .75em 1.5em;
	border: 2px solid var(--e-global-color-dm_ouro, #8a8a8a);
	background: var(--e-global-color-dm_ouro, #8a8a8a);
	color: var(--e-global-color-dm_preto, #111);
	font-weight: 600;
	font-size: .875rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	text-decoration: none;
	line-height: 1.2;
	cursor: pointer;
	transition: transform .2s ease, background-color .2s ease, color .2s ease;
}
.dm-btn:hover { transform: translateY(-2px); background: var(--e-global-color-dm_ouro_claro, #bdbdbd); }
.dm-btn:focus-visible { outline: 2px solid var(--e-global-color-dm_ouro_texto, #4a4a4a); outline-offset: 3px; }
.dm-btn--contorno { background: transparent; color: inherit; }
.dm-btn--escuro { background: var(--e-global-color-dm_preto, #111); border-color: var(--e-global-color-dm_preto, #111); color: var(--e-global-color-dm_ouro_claro, #bdbdbd); }
.dm-btn--escuro:hover { background: var(--e-global-color-dm_ardosia, #2b2b2b); }
.dm-btn--texto { background: transparent; border-color: transparent; padding-inline: 0; min-height: 0; color: inherit; }
.dm-btn--texto:hover { background: transparent; text-decoration: underline; }
.dm-btn--pequeno { font-size: .75rem; padding: .55em 1.1em; }
.dm-btn--grande { font-size: 1rem; padding: 1em 2em; }

/* Status */
.dm-status { display: inline-flex; align-items: center; gap: .5em; font-weight: 500; }
.dm-status:empty { display: none; }
.dm-status--icone::before { content: ""; width: .6em; height: .6em; border-radius: 50%; background: currentColor; opacity: .4; }
.dm-status--icone.is-aberto::before { background: #2e7d57; opacity: 1; }
.dm-status--icone.is-fechado::before { background: #b3443a; opacity: 1; }

/* Tabela de horários */
.dm-horarios { width: 100%; border-collapse: collapse; }
.dm-horarios caption { text-align: left; font-weight: 600; padding-bottom: .5em; }
.dm-horarios th, .dm-horarios td { padding: .5em .75em; border-bottom: 1px solid var(--e-global-color-dm_borda, #e0e0e0); text-align: left; font-weight: 400; }
.dm-horarios tr.is-hoje th, .dm-horarios tr.is-hoje td { font-weight: 700; background: var(--e-global-color-dm_creme, #f2f2f2); }
.dm-horarios--compacta th, .dm-horarios--compacta td { padding: .25em 0; border: 0; background: transparent !important; }

/* Mapa */
.dm-mapa__area { position: relative; height: 360px; overflow: hidden; background: var(--e-global-color-dm_creme, #f2f2f2); }
.dm-mapa__fachada, .dm-mapa__iframe { width: 100%; height: 100%; border: 0; }
.dm-mapa__fachada { display: grid; place-items: center; }
.dm-mapa__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dm-mapa__carregar { position: relative; z-index: 1; }
.dm-mapa__endereco { margin: .75em 0 .5em; }
.dm-mapa__aviso { font-size: .8125rem; opacity: .75; margin-top: .5em; }

/* Cardápio */
.dm-cardapio__ferramentas { display: flex; flex-wrap: wrap; gap: 1rem; align-items: end; justify-content: center; margin-bottom: 2rem; }
.dm-cardapio--completo .dm-cardapio__ferramentas { position: sticky; top: var(--dm-topo-fixo, 64px); z-index: 5; background: var(--e-global-color-dm_creme, #f2f2f2); padding: .75rem 1rem; }
html:not(.js) .dm-cardapio__campo { display: none; }
.dm-cardapio__campo { display: flex; flex-direction: column; gap: .25rem; }
.dm-cardapio__busca { min-height: 44px; padding: .5rem .75rem; border: 1px solid var(--e-global-color-dm_borda, #e0e0e0); min-width: 240px; }
.dm-cardapio__abas { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; }
.dm-cardapio__abas a { display: inline-flex; align-items: center; min-height: 44px; padding: .5rem 1rem; text-transform: uppercase; letter-spacing: .12em; font-size: .8125rem; font-weight: 600; text-decoration: none; color: inherit; border-bottom: 2px solid transparent; }
.dm-cardapio__abas a[aria-selected="true"], .dm-cardapio__abas a:hover { border-bottom-color: var(--e-global-color-dm_ouro, #8a8a8a); }
.dm-cardapio__titulo { text-align: center; text-transform: uppercase; letter-spacing: .12em; margin: 2rem 0 1rem; }
.dm-cardapio--destaques .dm-cardapio__titulo { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
html:not(.js) .dm-cardapio--destaques .dm-cardapio__titulo { position: static; width: auto; height: auto; clip: auto; }
.dm-cardapio__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.5rem 3rem; }
@media (min-width: 1024px) { .dm-cardapio__lista { grid-template-columns: 1fr 1fr; } }
.dm-prato { display: flex; gap: 1rem; align-items: flex-start; }
.dm-prato__foto { width: 72px; height: 72px; border-radius: 50% !important; object-fit: cover; flex: none; }
.dm-prato__corpo { flex: 1; min-width: 0; }
.dm-prato__linha { display: flex; align-items: baseline; gap: .5rem; }
.dm-prato__nome { margin: 0; font-size: 1rem; text-transform: uppercase; letter-spacing: .06em; }
.dm-prato__pontilhado { flex: 1; border-bottom: 1px dotted var(--e-global-color-dm_ouro, #8a8a8a); transform: translateY(-.25em); min-width: 1rem; }
.dm-prato__preco { white-space: nowrap; font-weight: 600; }
.dm-prato__preco s { font-weight: 400; opacity: .6; margin-right: .25em; }
.dm-prato__selo { display: inline-block; font-size: .6875rem; text-transform: uppercase; letter-spacing: .1em; padding: .1em .5em; border: 1px solid currentColor; margin-top: .25rem; }
.dm-prato__descricao { margin: .25rem 0 .5rem; color: var(--e-global-color-dm_texto_medio, #5e5e5e); }
.dm-cardapio__acoes { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; margin-top: 2.5rem; }
.dm-cardapio__aviso, .dm-cardapio__vazio { text-align: center; margin-top: 2rem; color: var(--e-global-color-dm_texto_medio, #5e5e5e); }

/* Contatos, redes, trilha, rodapé legal */
.dm-icone { flex: none; vertical-align: middle; }
.dm-contatos { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; }
.dm-contatos__item { display: flex; align-items: center; gap: .6rem; }
.dm-contatos__item a { color: inherit; }
.dm-redes { display: flex; gap: .5rem; flex-wrap: wrap; }
.dm-redes__link { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; color: inherit; border-radius: 50%; }
.dm-redes__link:hover { background: rgba(0, 0, 0, .08); }
.dm-redes__link .dm-icone { width: 28px; height: 28px; transition: transform .3s ease; }
.dm-redes__link:hover .dm-icone { transform: scale(1.1); }
.dm-redes__link { width: 48px; height: 48px; }
/* Faixa dourada do topo: ícones maiores sem engordar a faixa (caixa de toque de 36 px, ícone de 24 px) */
.dm-topbar .dm-redes__link { width: 38px; height: 38px; margin-block: -4px; }
.dm-topbar .dm-redes__link .dm-icone { width: 24px; height: 24px; }
.dm-topbar .dm-redes__link:hover { background: rgba(10, 10, 11, .12); }
.dm-trilha ol { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin: 0; padding: 0; font-size: .875rem; }
.dm-trilha li + li::before { content: "›"; margin-right: .5rem; opacity: .7; }
.dm-trilha a { color: inherit; }
.dm-rodape-legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1.5rem; font-size: .8125rem; }
.dm-rodape-legal p { margin: 0; }
.dm-rodape-legal__links { display: flex; gap: 1rem; }
.dm-rodape-legal a { color: inherit; }

/* O atributo hidden precisa vencer o display:flex/grid dos itens (busca e abas do cardápio). */
.dm-cardapio [hidden] { display: none !important; }
.dm-rodape .dm-redes__link { color: var(--dm-ouro-claro); }
.dm-rodape .dm-redes__link:hover { background: rgba(195, 166, 100, .18); }
