/*
Theme Name:   Donelli Child
Theme URI:    http://donelli-massas.test
Description:  Tema filho do Hello Elementor para o Donelli Massas. Direção visual "cinema": preto profundo, dourado do brasão, letras em Great Vibes, Cinzel e Montserrat.
Author:       [NOME DO DESENVOLVEDOR]
Template:     hello-elementor
Version:      0.2.0
Text Domain:  donelli
License:      GPL-2.0-or-later
*/

/* =========================================================================
   1. Tokens (paleta extraída do logo; valores espelham as Cores Globais do Elementor)
   ========================================================================= */
:root {
	--dm-preto: #0A0A0B;
	--dm-grafite: #141416;
	--dm-ardosia: #2A2A2E;
	--dm-ouro: #C3A664;
	--dm-ouro-claro: #E9CF84;
	--dm-ouro-escuro: #96804F;
	--dm-ouro-medio: #8C6D2C;
	--dm-ouro-texto: #7A5F22;
	--dm-ouro-metal: linear-gradient(120deg, #96804F 0%, #E9CF84 38%, #C3A664 58%, #96804F 100%);
	--dm-marfim: #EFE8D8;
	--dm-marfim-suave: #B9B1A0;
	--dm-creme: #F6F1E7;
	--dm-borda: #E8E1D3;
	--dm-texto: #1A1A1A;
	--dm-texto-medio: #5E5A55;
	--dm-linha: rgba(195, 166, 100, .28);
	--dm-fonte-cursiva: 'Great Vibes', 'Brush Script MT', cursive;
	--dm-fonte-titulo: 'Cinzel', 'Trajan Pro', Georgia, serif;
	--dm-fonte-corpo: 'Montserrat', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--dm-ease: cubic-bezier(.22, 1, .36, 1);
	--dm-topo-fixo: 64px;
	--dm-grao: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

/* =========================================================================
   2. Base: página escura, grão de película e tipografia
   ========================================================================= */
html { background: var(--dm-preto); scroll-behavior: smooth; }
body {
	background: var(--dm-preto);
	color: var(--dm-marfim);
	font-family: var(--dm-fonte-corpo);
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
}
/* Grão de película sobre tudo (estático, sem custo de animação). */
body::after {
	content: ""; position: fixed; inset: 0; z-index: 9999; pointer-events: none;
	background-image: var(--dm-grao); background-size: 160px; opacity: .045; mix-blend-mode: overlay;
}
::selection { background: var(--dm-ouro); color: var(--dm-preto); }

h1, h2, h3, h4 { font-family: var(--dm-fonte-titulo); font-weight: 500; color: var(--dm-marfim); letter-spacing: .04em; }
p { color: inherit; }
a { color: var(--dm-ouro-claro); text-decoration: none; transition: color .25s ease; }
a:hover, a:active { color: #fff; }

/* Seções claras (menu em papel marfim, diferenciais): contraste de página impressa */
.dm-claro, .dm-claro p, .dm-claro li, .dm-claro span, .dm-claro .elementor-widget-text-editor { color: var(--dm-texto-medio); }
.dm-claro h1, .dm-claro h2, .dm-claro h3, .dm-claro .elementor-heading-title, .dm-claro .elementor-icon-box-title { color: var(--dm-texto); }
.dm-claro a { color: var(--dm-ouro-texto); }
.dm-claro a:hover { color: var(--dm-texto); }
.dm-claro .elementor-icon { color: var(--dm-ouro-medio); fill: var(--dm-ouro-medio); }
.dm-claro .elementor-icon svg { fill: var(--dm-ouro-medio); }

/* Compatibilidade: .dm-escuro continua valendo (texto claro) */
.dm-escuro, .dm-escuro p, .dm-escuro li, .dm-escuro th, .dm-escuro td, .dm-escuro span,
.dm-escuro .elementor-heading-title, .dm-escuro .elementor-widget-text-editor { color: var(--dm-marfim); }
.dm-escuro a { color: var(--dm-ouro-claro); }
.dm-escuro a:hover { color: #fff; }

.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;
}
.skip-link.screen-reader-text:focus { z-index: 100000; background: var(--dm-ouro); color: var(--dm-preto); }

/* Foco visível */
a:focus-visible, button:focus-visible, input:focus-visible, [tabindex]:focus-visible {
	outline: 2px solid var(--dm-ouro-claro);
	outline-offset: 3px;
}
.dm-claro a:focus-visible, .dm-claro button:focus-visible, .dm-claro input:focus-visible { outline-color: var(--dm-ouro-medio); }

/* =========================================================================
   3. Logo, botões e filetes
   ========================================================================= */
.dm-logo { display: block; height: auto; max-width: 100%; }
.dm-logo--horizontal { width: clamp(190px, 20vw, 270px); }
.dm-logo--vertical { width: min(100%, 300px); }
.dm-logo-link { display: inline-block; line-height: 0; }
.dm-logo-link:hover .dm-logo { filter: drop-shadow(0 0 14px rgba(233, 207, 132, .35)); }
.dm-logo { transition: filter .4s var(--dm-ease); }

/* Botões: metal dourado com brilho que passa no hover */
body .dm-btn, .elementor-button {
	position: relative; overflow: hidden; isolation: isolate;
	font-family: var(--dm-fonte-corpo); font-weight: 600; letter-spacing: .16em; text-transform: uppercase;
	border-radius: 2px;
}
body .dm-btn--cheio, body a.dm-btn:not([class*="--"]), .elementor-button {
	background: var(--dm-ouro-metal); background-size: 180% 100%; border-color: var(--dm-ouro); color: var(--dm-preto);
	transition: transform .35s var(--dm-ease), background-position .6s var(--dm-ease), box-shadow .35s var(--dm-ease);
}
body .dm-btn--cheio:hover, .elementor-button:hover {
	background-position: 100% 0; color: var(--dm-preto); transform: translateY(-2px);
	box-shadow: 0 10px 28px -8px rgba(233, 207, 132, .55);
}
body .dm-btn--cheio::after, .elementor-button::after {
	content: ""; position: absolute; inset: 0; z-index: -1; transform: translateX(-120%) skewX(-18deg);
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .55), transparent);
}
body .dm-btn--cheio:hover::after, .elementor-button:hover::after { transform: translateX(120%) skewX(-18deg); transition: transform .8s var(--dm-ease); }
body .dm-btn:active, .elementor-button:active { transform: translateY(0) scale(.98); }
body .dm-btn--contorno { background: transparent; color: var(--dm-ouro-claro); border: 1px solid var(--dm-ouro); }
body .dm-btn--contorno:hover { background: rgba(195, 166, 100, .14); color: #fff; box-shadow: none; }
body .dm-btn--escuro { background: var(--dm-preto); border-color: var(--dm-preto); color: var(--dm-ouro-claro); }
body .dm-btn--escuro:hover { background: var(--dm-grafite); color: #fff; }
body .dm-btn--texto { color: var(--dm-ouro-claro); }
.dm-claro .dm-btn--contorno { color: var(--dm-ouro-texto); border-color: var(--dm-ouro-medio); }
.dm-claro .dm-btn--contorno:hover { color: var(--dm-texto); background: rgba(140, 109, 44, .08); }

.filete {
	display: block; width: 120px; height: 1px; margin: 14px auto;
	background: linear-gradient(90deg, transparent, var(--dm-ouro) 18%, var(--dm-ouro-claro) 50%, var(--dm-ouro) 82%, transparent);
	transform-origin: center;
}

/* =========================================================================
   4. Título duplo: cursiva dourada em metal + linha em caixa alta
   ========================================================================= */
.titulo-duplo, .titulo-duplo .elementor-heading-title {
	display: flex; flex-direction: column; align-items: center; text-align: center; gap: .15rem;
}
.titulo-duplo__cursiva {
	display: block; padding: .08em .2em .12em;
	font-family: var(--dm-fonte-cursiva); font-style: normal; font-weight: 400;
	font-size: clamp(3rem, 5vw + 1rem, 5.5rem); line-height: 1.05; letter-spacing: 0; text-transform: none;
	background: var(--dm-ouro-metal); -webkit-background-clip: text; background-clip: text;
	-webkit-text-fill-color: transparent; color: var(--dm-ouro-claro);
}
.titulo-duplo__caixa-alta {
	display: block; max-width: 52ch;
	font-family: var(--dm-fonte-corpo); font-size: clamp(.9rem, .5vw + .8rem, 1.1rem); font-weight: 500;
	text-transform: uppercase; letter-spacing: .26em; line-height: 1.8; color: var(--dm-marfim-suave);
}
.titulo-duplo__caixa-alta strong { font-family: var(--dm-fonte-titulo); color: var(--dm-ouro-claro); font-weight: 700; letter-spacing: .14em; }
.dm-escuro .titulo-duplo__caixa-alta { color: var(--dm-marfim); }
.dm-claro .titulo-duplo__cursiva { background: none; -webkit-text-fill-color: currentColor; color: var(--dm-ouro-medio); }
.dm-claro .titulo-duplo__caixa-alta { color: var(--dm-texto-medio); }
.dm-claro .titulo-duplo__caixa-alta strong { color: var(--dm-ouro-texto); }
.dm-titulo-esquerda, .dm-titulo-esquerda .elementor-heading-title { align-items: flex-start; text-align: left; }
.dm-titulo-esquerda .filete { margin-left: 0; }
.dm-titulo-secao .elementor-heading-title {
	font-family: var(--dm-fonte-titulo); font-size: 1.15rem; text-transform: uppercase; letter-spacing: .2em; color: var(--dm-ouro-claro);
}

/* =========================================================================
   5. Faixa superior e cabeçalho
   ========================================================================= */
.dm-topbar { background: var(--dm-ouro-metal) !important; background-size: 200% 100%; }
.dm-topbar .elementor-heading-title { font-size: .75rem; letter-spacing: .12em; color: var(--dm-preto); font-family: var(--dm-fonte-corpo); }
.dm-topbar .elementor-heading-title a, .dm-topbar a { color: var(--dm-preto); }
.dm-topbar .dm-status, .dm-topbar .dm-btn--texto { color: var(--dm-preto); font-size: .75rem; letter-spacing: .1em; }
body .dm-topbar .dm-btn { background: none; box-shadow: none; }
body .dm-topbar .dm-btn::after { display: none; }

.dm-cabecalho {
	background: rgba(10, 10, 11, .94) !important; backdrop-filter: blur(10px);
	border-bottom: 1px solid var(--dm-linha) !important;
	transition: min-height .3s var(--dm-ease), box-shadow .3s ease;
}
.dm-cabecalho.elementor-sticky--effects { min-height: 64px !important; box-shadow: 0 10px 30px rgba(0, 0, 0, .55); }
.dm-cabecalho.elementor-sticky--effects .dm-logo--horizontal { width: 170px; }
.dm-cabecalho .dm-logo--horizontal { transition: width .3s var(--dm-ease); }

.elementor-nav-menu--main .elementor-item {
	color: var(--dm-marfim) !important; font-family: var(--dm-fonte-corpo); font-size: .75rem; font-weight: 500; letter-spacing: .2em; text-transform: uppercase;
}
.elementor-nav-menu--main .elementor-item:hover,
.elementor-nav-menu--main .elementor-item.elementor-item-active { color: var(--dm-ouro-claro) !important; }
.elementor-nav-menu--main .elementor-item::after { background-color: var(--dm-ouro) !important; }
.elementor-nav-menu--dropdown { background: var(--dm-preto); }
.elementor-nav-menu--dropdown a { color: var(--dm-marfim) !important; font-family: var(--dm-fonte-titulo); letter-spacing: .12em; }
.elementor-menu-toggle { color: var(--dm-ouro-claro); }

/* =========================================================================
   6. Abas douradas sobre o hero (topo em "telhado")
   ========================================================================= */
.abas-hero { position: relative; z-index: 3; }
@media (min-width: 768px) { .abas-hero { margin-top: -78px; } }
.aba-hero {
	clip-path: polygon(0 16px, 50% 0, 100% 16px, 100% 100%, 0 100%);
	padding-top: 30px;
	background: var(--dm-ouro-metal); background-size: 200% 100%;
	color: var(--dm-preto); text-align: center;
	transition: transform .5s var(--dm-ease), background-position .7s var(--dm-ease), filter .4s ease;
}
.aba-hero:hover, .aba-hero:focus-within, a.aba-hero:focus-visible { transform: translateY(-8px); background-position: 100% 0; filter: drop-shadow(0 18px 24px rgba(0, 0, 0, .55)); }
.aba-hero .elementor-heading-title {
	font-family: var(--dm-fonte-titulo); font-weight: 700; text-transform: uppercase; letter-spacing: .14em;
	color: var(--dm-preto); font-size: clamp(.9375rem, .4vw + .85rem, 1.1rem);
}
.aba-hero .elementor-widget-text-editor, .aba-hero .elementor-widget-text-editor p { font-size: .8125rem; color: var(--dm-preto); margin: 0; }

/* =========================================================================
   7. Descubra + cards com selo
   ========================================================================= */
.dm-descubra { position: relative; isolation: isolate; }
.dm-descubra::before {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background:
		radial-gradient(ellipse 60% 40% at 50% 0%, rgba(195, 166, 100, .10), transparent 70%),
		url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 120'><path d='M6.5 9H93.5C96 28 100 42 100 58C100 84 78 104 50 115C22 104 0 84 0 58C0 42 4 28 6.5 9Z' fill='none' stroke='%23C3A664' stroke-width='.6'/></svg>") no-repeat 50% 92% / min(560px, 80vw);
	opacity: .3;
}
.card-selo {
	background: linear-gradient(180deg, rgba(255, 255, 255, .04), rgba(255, 255, 255, .01)), var(--dm-grafite);
	border: 1px solid var(--dm-linha);
	box-shadow: 0 24px 50px -28px rgba(0, 0, 0, .9);
	transition: transform .5s var(--dm-ease), box-shadow .5s var(--dm-ease), border-color .4s ease;
}
.card-selo:hover { transform: translateY(-6px); border-color: var(--dm-ouro); box-shadow: 0 30px 60px -24px rgba(0, 0, 0, .95), 0 0 0 1px rgba(233, 207, 132, .15); }
.card-selo .elementor-widget-image { overflow: hidden; position: relative; }
.card-selo .elementor-widget-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(20, 20, 22, .9)); pointer-events: none; }
.card-selo .elementor-widget-image img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform .9s var(--dm-ease); }
.card-selo:hover .elementor-widget-image img { transform: scale(1.07); }
.card-selo__selo { position: relative; z-index: 2; margin: -28px auto 0 !important; }
.card-selo__selo .elementor-icon {
	width: 56px; height: 56px; display: inline-flex; align-items: center; justify-content: center;
	border-radius: 50%; background: var(--dm-ouro-metal); color: var(--dm-preto); font-size: 20px;
	box-shadow: 0 0 0 5px var(--dm-grafite), 0 0 22px rgba(233, 207, 132, .35);
	transition: transform .9s var(--dm-ease), box-shadow .5s ease;
}
.card-selo:hover .card-selo__selo .elementor-icon { transform: rotate(360deg); box-shadow: 0 0 0 5px var(--dm-grafite), 0 0 34px rgba(233, 207, 132, .6); }
.card-selo__selo .elementor-icon svg { width: 22px; height: 22px; fill: currentColor; }
.card-selo h3.elementor-heading-title { font-family: var(--dm-fonte-titulo); font-size: 1.05rem; text-transform: uppercase; letter-spacing: .18em; color: var(--dm-ouro-claro); }
.card-selo__sub, .card-selo__sub p { font-size: .8125rem; letter-spacing: .14em; text-transform: uppercase; color: var(--dm-marfim-suave); }
.card-selo .elementor-divider-separator { border-color: var(--dm-linha) !important; }
.card-selo .elementor-widget-text-editor { color: var(--dm-marfim-suave); }

/* =========================================================================
   8. Faixa de foto em tela de cinema (parallax + barras)
   ========================================================================= */
.faixa-foto { position: relative; isolation: isolate; }
.faixa-foto::before {
	content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
	background:
		radial-gradient(ellipse at 50% 50%, rgba(10, 10, 11, .35), rgba(10, 10, 11, .85) 100%),
		linear-gradient(180deg, rgba(10, 10, 11, .75), rgba(10, 10, 11, .35) 30%, rgba(10, 10, 11, .35) 70%, rgba(10, 10, 11, .75));
}
.faixa-foto::after {
	content: ""; position: absolute; left: 0; right: 0; top: 0; bottom: 0; z-index: 1; pointer-events: none;
	border-top: 1px solid var(--dm-linha); border-bottom: 1px solid var(--dm-linha);
}
.faixa-foto > :not(.elementor-motion-effects-container) { position: relative; z-index: 2; }
.faixa-foto > .elementor-motion-effects-container { z-index: 0; }
.faixa-foto .elementor-widget-text-editor, .faixa-foto .elementor-widget-text-editor p {
	max-width: 46ch; text-align: center; font-size: clamp(1rem, .5vw + .9rem, 1.25rem); color: var(--dm-marfim);
}

/* Cabeçalho de página interna */
.dm-cabecalho-pagina { min-height: 300px; }
.dm-cabecalho-pagina .titulo-duplo__cursiva { font-size: clamp(3.2rem, 6vw + 1rem, 6rem); }

/* =========================================================================
   9. Frase de transição
   ========================================================================= */
.dm-transicao { position: relative; text-align: center; background: var(--dm-preto); }
.dm-transicao .dm-transicao__frase, .dm-transicao .dm-transicao__frase p {
	font-family: var(--dm-fonte-titulo); font-weight: 500; letter-spacing: .06em; line-height: 1.5;
	font-size: clamp(1.35rem, 2.2vw + .6rem, 2.35rem); max-width: 30ch; margin-inline: auto; color: var(--dm-marfim);
}
.dm-transicao .dm-transicao__frase p::before, .dm-transicao .dm-transicao__frase p::after {
	content: ""; display: block; width: 1px; height: 56px; margin: 0 auto 28px;
	background: linear-gradient(180deg, transparent, var(--dm-ouro));
}
.dm-transicao .dm-transicao__frase p::after { margin: 28px auto 0; background: linear-gradient(180deg, var(--dm-ouro), transparent); }

/* =========================================================================
   10. Cardápio (papel marfim), galeria, horários, chamada final
   ========================================================================= */
.dm-secao-cardapio.dm-claro { background: var(--dm-creme) !important; }
.dm-secao-cardapio .dm-prato__nome { font-family: var(--dm-fonte-titulo); letter-spacing: .08em; color: var(--dm-texto); }
.dm-secao-cardapio .dm-prato__preco { font-family: var(--dm-fonte-titulo); color: var(--dm-ouro-texto); font-weight: 700; }
.dm-secao-cardapio .dm-prato__pontilhado { border-bottom-color: var(--dm-ouro-medio); }
.dm-secao-cardapio .dm-prato__foto { box-shadow: 0 0 0 3px var(--dm-creme), 0 0 0 4px var(--dm-ouro); }

/* Cardápio na página própria (fundo escuro) */
.dm-cardapio__abas a { color: var(--dm-marfim); font-family: var(--dm-fonte-corpo); }
.dm-cardapio__abas a[aria-selected="true"], .dm-cardapio__abas a:hover { color: var(--dm-ouro-claro); border-bottom-color: var(--dm-ouro); }
.dm-cardapio--completo .dm-cardapio__ferramentas { background: rgba(10, 10, 11, .92); backdrop-filter: blur(8px); border-bottom: 1px solid var(--dm-linha); }
.dm-claro .dm-cardapio__abas a { color: var(--dm-texto); }
.dm-claro .dm-cardapio__abas a[aria-selected="true"], .dm-claro .dm-cardapio__abas a:hover { color: var(--dm-ouro-texto); border-bottom-color: var(--dm-ouro-medio); }
.dm-cardapio__busca { background: var(--dm-grafite); color: var(--dm-marfim); border: 1px solid var(--dm-linha); }
.dm-claro .dm-cardapio__busca { background: #fff; color: var(--dm-texto); border-color: var(--dm-borda); }
.dm-cardapio__titulo { font-family: var(--dm-fonte-titulo); color: var(--dm-ouro-claro); }
.dm-prato__nome { font-family: var(--dm-fonte-titulo); color: var(--dm-marfim); }
.dm-prato__preco { color: var(--dm-ouro-claro); font-family: var(--dm-fonte-titulo); }
.dm-prato__descricao { color: var(--dm-marfim-suave); }
.dm-prato__foto { box-shadow: 0 0 0 3px var(--dm-preto), 0 0 0 4px var(--dm-ouro); }
.dm-claro .dm-prato__descricao { color: var(--dm-texto-medio); }
.dm-cardapio__aviso, .dm-cardapio__vazio { color: var(--dm-marfim-suave); }

.dm-secao-galeria .elementor-gallery-item { overflow: hidden; border: 1px solid var(--dm-linha); }
.dm-secao-galeria .elementor-gallery-item__image { transition: transform 1s var(--dm-ease), filter .6s ease; filter: saturate(.9) brightness(.92); }
.dm-secao-galeria .elementor-gallery-item:hover .elementor-gallery-item__image { transform: scale(1.06); filter: saturate(1.05) brightness(1.05); }
.elementor-gallery-title { color: var(--dm-marfim-suave); font-family: var(--dm-fonte-corpo); letter-spacing: .16em; text-transform: uppercase; font-size: .75rem; }
.elementor-gallery-title.elementor-item-active, .elementor-gallery-title:hover { color: var(--dm-ouro-claro); }

.dm-horarios th, .dm-horarios td { border-bottom: 1px solid var(--dm-linha); color: var(--dm-marfim); }
.dm-horarios caption { font-family: var(--dm-fonte-titulo); color: var(--dm-ouro-claro); letter-spacing: .14em; text-transform: uppercase; }
.dm-horarios tr.is-hoje th, .dm-horarios tr.is-hoje td { background: rgba(195, 166, 100, .12); color: var(--dm-ouro-claro); font-weight: 600; }
.dm-mapa__area { background: var(--dm-grafite); border: 1px solid var(--dm-linha); }
.dm-mapa__aviso { color: var(--dm-marfim-suave); }

.dm-secao-horarios { background: var(--dm-grafite); }
.dm-avaliacao { background: var(--dm-preto); border-top: 1px solid var(--dm-linha); border-bottom: 1px solid var(--dm-linha); }

.cta-final { background: var(--dm-ouro-metal) !important; background-size: 200% 100%; color: var(--dm-preto); position: relative; overflow: hidden; }
.cta-final .elementor-heading-title { color: var(--dm-preto); font-family: var(--dm-fonte-cursiva); font-size: clamp(3rem, 5vw + 1rem, 5.5rem); font-weight: 400; letter-spacing: 0; text-transform: none; }
.cta-final .elementor-button, .cta-final .dm-btn { background: var(--dm-preto); color: var(--dm-ouro-claro); border-color: var(--dm-preto); }
.cta-final .elementor-button:hover, .cta-final .dm-btn:hover { background: var(--dm-grafite); color: #fff; }

/* =========================================================================
   11. Rodapé
   ========================================================================= */
.dm-rodape { position: relative; isolation: isolate; overflow: hidden; background: var(--dm-preto) !important; border-top: 1px solid var(--dm-linha); }
.dm-rodape::before {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: .22;
	background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 120'><path d='M6.5 9H93.5C96 28 100 42 100 58C100 84 78 104 50 115C22 104 0 84 0 58C0 42 4 28 6.5 9Z' fill='none' stroke='%23C3A664' stroke-width='.5'/></svg>") no-repeat 96% 30% / 300px;
}
.dm-rodape__titulo .elementor-heading-title { font-family: var(--dm-fonte-titulo); font-size: .9rem; text-transform: uppercase; letter-spacing: .22em; font-weight: 500; color: var(--dm-ouro-claro); }
.dm-rodape .elementor-nav-menu--main .elementor-item { padding: 6px 0; }
.dm-rodape p, .dm-rodape li { color: var(--dm-marfim-suave); }
.dm-rodape-legal { color: var(--dm-marfim-suave); }

/* =========================================================================
   12. Barra mobile e 404
   ========================================================================= */
.dm-barra-mobile, .elementor-popup-modal .dialog-widget-content { background: var(--dm-preto); }
.elementor-location-popup { background: var(--dm-preto); border-top: 1px solid var(--dm-linha); }

/* =========================================================================
   13. Entradas por rolagem (melhoria progressiva: só com JS e suporte a view())
   ========================================================================= */
@supports (animation-timeline: view()) {
	@media (prefers-reduced-motion: no-preference) {
		.js .titulo-duplo__cursiva { animation: dm-escrever linear both; animation-timeline: view(); animation-range: entry 5% cover 38%; }
		.js .filete { animation: dm-desenhar linear both; animation-timeline: view(); animation-range: entry 10% cover 40%; }
		.js .titulo-duplo__caixa-alta { animation: dm-subir linear both; animation-timeline: view(); animation-range: entry 8% cover 36%; }
		.js .card-selo { animation: dm-subir linear both; animation-timeline: view(); animation-range: entry 0% cover 30%; }
		.js .dm-transicao__frase { animation: dm-subir linear both; animation-timeline: view(); animation-range: entry 10% cover 40%; }
	}
}
@keyframes dm-escrever { from { clip-path: inset(0 100% 0 0); opacity: .4; } to { clip-path: inset(0 0 0 0); opacity: 1; } }
@keyframes dm-desenhar { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes dm-subir { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }

/* Transição entre páginas (melhoria progressiva) */
@view-transition { navigation: auto; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
	.card-selo:hover, .aba-hero:hover { transform: none; }
}

/* Esconder elementos cujo link ficou vazio (rede não cadastrada) */
.dm-se-vazio:has(a[href=""]), .dm-se-vazio:has(a:not([href])), .dm-se-vazio:has(a[href="#"]) { display: none !important; }
.elementor-icon-list-item.dm-se-vazio:has(> a[href=""]), .elementor-icon-list-item:has(> a[href=""]) { display: none; }

/* =========================================================================
   14. Ajustes finais: cor do texto dos botões do Elementor e cabeçalho no celular
   ========================================================================= */
body a.elementor-button, body a.elementor-button .elementor-button-text, body a.elementor-button span { color: var(--dm-preto); }
body .cta-final a.elementor-button, body .cta-final a.elementor-button span { color: var(--dm-ouro-claro); }
body .dm-btn--contorno, body .dm-btn--texto { color: var(--dm-ouro-claro); }
body .dm-claro .dm-btn--contorno { color: var(--dm-ouro-texto); }

.elementor-menu-toggle, .elementor-menu-toggle svg, .elementor-menu-toggle i { color: var(--dm-ouro-claro) !important; fill: var(--dm-ouro-claro) !important; }
.dm-cabecalho .elementor-widget-donelli_logo { flex: 0 0 auto; }
@media (max-width: 767px) {
	.dm-logo--horizontal { width: 156px; }
	.dm-cabecalho.elementor-sticky--effects .dm-logo--horizontal { width: 140px; }
}

@media (max-width: 767px) {
	.dm-cabecalho .e-con-inner, .dm-cabecalho .e-con-inner > .e-con { flex-direction: row !important; flex-wrap: nowrap !important; align-items: center; justify-content: space-between; gap: 8px; }
	.dm-cabecalho .dm-btn { padding: .6em 1em; font-size: .7rem; min-height: 40px; }
}

/* =========================================================================
   15. Fotos reais: retrato com moldura dourada deslocada (Sobre) e fotos de "Como chegar" (Contato)
   ========================================================================= */
.moldura-deslocada { position: relative; max-width: 520px; width: 100%; margin-inline: auto; padding: 0 18px 18px 0; }
.moldura-deslocada::before { content: ""; position: absolute; top: 18px; left: 18px; right: 0; bottom: 0; border: 2px solid var(--dm-ouro); border-radius: 20px; pointer-events: none; }
.moldura-deslocada .elementor-widget-container { position: relative; z-index: 1; }
.moldura-deslocada img { display: block; width: 100%; height: auto; border-radius: 18px; box-shadow: 0 24px 60px rgba(0, 0, 0, .5); }
.moldura-deslocada .widget-image-caption,
.dm-foto-chegar .widget-image-caption { margin: .9rem 0 0; text-align: center; font-family: var(--dm-fonte-titulo); font-weight: 500; letter-spacing: .06em; color: var(--dm-ouro-claro); }
.moldura-deslocada .widget-image-caption { font-size: 1rem; }
.dm-foto-chegar img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 14px; box-shadow: 0 0 0 1px var(--dm-linha); }
.dm-foto-chegar .widget-image-caption { font-size: .85rem; }
@media (max-width: 767px) {
	.moldura-deslocada { padding: 0 12px 12px 0; }
	.moldura-deslocada::before { top: 12px; left: 12px; }
}
