/* Chef Elô Buffet — Site institucional
   Caminho no servidor: public_html/assets/css/site.css

   Direção: moderno minimalista (hotelaria contemporânea).
   Fotos em molduras de cantos arredondados, cabeçalho flutuante translúcido,
   títulos sem serifa bem justos com um destaque em itálico serifado,
   botões em pílula e cartões com etiqueta de vidro.
   Cores, fontes, raios, espaços e movimento ficam todos nos tokens abaixo. */

/* Fontes hospedadas no próprio site (licença SIL OFL — ver assets/fonts/) */
@font-face { font-family: 'Geist'; font-style: normal; font-weight: 400; font-display: swap; src: url('/assets/fonts/geist-sans-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Geist'; font-style: normal; font-weight: 500; font-display: swap; src: url('/assets/fonts/geist-sans-latin-500-normal.woff2') format('woff2'); }
@font-face { font-family: 'Geist'; font-style: normal; font-weight: 600; font-display: swap; src: url('/assets/fonts/geist-sans-latin-600-normal.woff2') format('woff2'); }
@font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 400; font-display: swap; src: url('/assets/fonts/cormorant-garamond-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Cormorant Garamond'; font-style: italic; font-weight: 400; font-display: swap; src: url('/assets/fonts/cormorant-garamond-latin-400-italic.woff2') format('woff2'); }
@font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 500; font-display: swap; src: url('/assets/fonts/cormorant-garamond-latin-500-normal.woff2') format('woff2'); }
@font-face { font-family: 'Cormorant Garamond'; font-style: italic; font-weight: 500; font-display: swap; src: url('/assets/fonts/cormorant-garamond-latin-500-italic.woff2') format('woff2'); }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 200 800; font-display: swap; src: url('/assets/fonts/manrope-latin-wght-normal.woff2') format('woff2'); }
@font-face { font-family: 'Instrument Serif'; font-style: normal; font-weight: 400; font-display: swap; src: url('/assets/fonts/instrument-serif-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Parisienne'; font-style: normal; font-weight: 400; font-display: swap; src: url('/assets/fonts/parisienne-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Instrument Serif'; font-style: italic; font-weight: 400; font-display: swap; src: url('/assets/fonts/instrument-serif-latin-400-italic.woff2') format('woff2'); }

:root {
  /* Paleta (a oficial da marca, aplicada com mais contraste) */
  --fundo: #EEEAE3;          /* pedra clara: fundo da página */
  --ivory: #F7F3EC;          /* Ivory Champagne: superfícies e cartões */
  --branco: #FCFBF8;
  --espresso: #25231F;       /* Espresso Black: texto, botões, painéis escuros */
  --espresso-2: #33302B;
  --noite: #1B1916;          /* fundo da primeira tela sem foto */
  --ouro: #A58451;           /* Antique Gold: detalhes */
  --ouro-escuro: #8A6C3E;    /* itálicos dos títulos sobre fundo claro */
  --ouro-texto: #7A6036;     /* dourado em texto pequeno (AA) */
  --champanhe: #E6D3AE;      /* destaque sobre fundo escuro */
  --taupe: #B7AA98;
  --texto-2: #57524A;        /* texto de apoio (AA sobre fundo e cartões) */
  --linha: rgba(37, 35, 31, .12);
  --erro: #8A3426;

  /* nomes usados por outras páginas, apontando para a paleta atual */
  --marfim: var(--fundo); --offwhite: var(--ivory); --grafite: var(--espresso); --grafite-2: var(--espresso-2);
  --dourado: var(--ouro); --dourado-texto: var(--ouro-texto); --champagne: var(--champanhe);
  --bege: #E2DCD1; --bege-fundo: var(--ivory); --suave: var(--texto-2); --ivory-claro: var(--branco); --taupe-texto: var(--texto-2);

  /* Tipografia */
  --sans: 'Geist', 'Helvetica Neue', Arial, sans-serif;
  --serif: 'Instrument Serif', 'Times New Roman', Georgia, serif;
  --serif-lux: 'Cormorant Garamond', 'Times New Roman', Georgia, serif;   /* banner e cabeçalho */
  --sans-lux: 'Manrope', 'Helvetica Neue', Arial, sans-serif;
  /* Paleta do banner premium */
  --lux-preto: #100D0A; --lux-cafe: #2B1C13; --lux-champanhe: #D9B777; --lux-marfim: #F8F5EF;
  --t-display: clamp(3rem, 7.2vw, 7.25rem);
  --t-h2: clamp(2.25rem, 4.6vw, 4.25rem);
  --t-h3: clamp(1.3rem, 1.6vw, 1.55rem);

  /* Forma e espaço */
  --r-grande: 28px; --r-card: 24px; --r-medio: 18px; --r-campo: 14px;
  --pagina: 12px;                                 /* respiro das molduras até a borda */
  --margem: clamp(20px, 4.2vw, 64px);
  --vao: clamp(10px, 1vw, 14px);                  /* vão entre cartões */
  --secao: clamp(88px, 10vw, 152px);
  --sombra: 0 1px 0 rgba(37, 35, 31, .04), 0 24px 48px -28px rgba(60, 45, 25, .28);

  /* Movimento */
  --ease: cubic-bezier(.22, .61, .36, 1);
  --ease-saida: cubic-bezier(.16, 1, .3, 1);
  --rapido: .25s; --medio: .5s; --lento: 1s;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 110px; }
body {
  margin: 0; background: var(--fundo); color: var(--espresso);
  font: 400 1.0625rem/1.6 var(--sans); letter-spacing: -.005em;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: hidden;
}
body.menu-aberto { overflow: hidden; }
img { max-width: 100%; display: block; }
a { color: inherit; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--espresso); outline-offset: 3px; border-radius: 4px; }
::selection { background: var(--espresso); color: var(--ivory); }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pular { position: absolute; left: 16px; top: -60px; z-index: 100; background: var(--espresso); color: var(--ivory); padding: 10px 16px; border-radius: 999px; text-decoration: none; }
.pular:focus { top: 16px; }
h1, h2, h3 { text-wrap: balance; }
p { text-wrap: pretty; }
em { font-style: italic; }

/* ═══════════════ Linguagem ═══════════════ */

/* Etiqueta acima dos títulos: número + nome, em pílula discreta */
.olho {
  display: inline-flex; align-items: center; gap: 10px; margin: 0 0 22px; padding: 6px 14px 6px 8px;
  border-radius: 999px; background: rgba(37, 35, 31, .06);
  font: 500 .8125rem/1.3 var(--sans); letter-spacing: 0; color: var(--espresso-2);
}
.olho__n {
  display: inline-grid; place-items: center; min-width: 26px; height: 22px; padding: 0 6px; border-radius: 999px;
  background: var(--espresso); color: var(--ivory); font: 500 .6875rem/1 var(--sans); letter-spacing: .02em;
}
.olho--claro { background: rgba(255, 255, 255, .12); color: rgba(255, 255, 255, .9); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.olho--claro .olho__n { background: var(--champanhe); color: var(--espresso); }
.olho__mono { width: 18px; height: 18px; flex: none; margin-left: 2px; }
.olho__folio { color: var(--texto-2); }
.olho__folio::before { content: "·"; margin-right: 8px; }

/* Títulos: sem serifa bem justo; a parte em itálico em serifa */
.secao-titulo { margin: 0; font: 500 var(--t-h2)/1 var(--sans); letter-spacing: -.045em; }
.secao-titulo em { display: block; font-family: var(--serif); font-weight: 400; font-size: 1.08em; line-height: .98; letter-spacing: -.02em; color: var(--ouro-escuro); }
.secao-sub { margin: 0; max-width: 34ch; font-size: 1.0625rem; line-height: 1.55; color: var(--texto-2); }

.secao { padding: var(--secao) var(--margem) 0; }
.secao-topo { display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; gap: 24px 48px; margin-bottom: clamp(36px, 4vw, 56px); }

/* Botões em pílula */
.botao {
  position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 12px;
  min-height: 52px; padding: 0 26px; border: 0; border-radius: 999px; cursor: pointer; text-decoration: none; text-align: center;
  background: var(--espresso); color: var(--ivory);
  font: 500 .9375rem/1.2 var(--sans); letter-spacing: -.01em; white-space: nowrap;
  transition: background-color var(--rapido) var(--ease), color var(--rapido) var(--ease), box-shadow var(--rapido) var(--ease), transform var(--rapido) var(--ease);
}
.botao:has(.seta-circ) { padding-right: 8px; }
.botao--pequeno { min-height: 44px; padding: 0 20px; font-size: .875rem; }
.botao--escuro { background: var(--espresso); color: var(--ivory); }
.botao--claro { background: var(--branco); color: var(--espresso); }
.botao--vidro { background: rgba(255, 255, 255, .14); color: #fff; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .3); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.botao--linha { background: transparent; color: var(--espresso); box-shadow: inset 0 0 0 1px rgba(37, 35, 31, .28); }
.botao--grande { min-height: 58px; padding: 0 30px; }
/* Botões do banner: champanhe sólido e contorno claro */
.botao--ouro { background: var(--lux-champanhe); color: var(--lux-preto); font-family: var(--sans-lux); font-weight: 600; letter-spacing: .01em; }
.botao--contorno { background: rgba(16, 13, 10, .18); color: var(--lux-marfim); box-shadow: inset 0 0 0 1px rgba(248, 245, 239, .5); font-family: var(--sans-lux); font-weight: 600; letter-spacing: .01em; }
.botao__seta { display: inline-flex; width: 20px; height: 20px; transition: transform var(--medio) var(--ease-saida); }
.botao__seta svg { width: 100%; height: 100%; }
.botao:active { transform: scale(.98); }
.seta-circ {
  display: inline-grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; flex: none;
  background: var(--ivory); color: var(--espresso); transition: transform var(--medio) var(--ease-saida);
}
.seta-circ svg { width: 14px; height: 14px; }
.botao--claro .seta-circ { background: var(--espresso); color: var(--ivory); }
@media (hover: hover) {
  .botao:hover { background: #3A3631; }
  .botao--claro:hover { background: #fff; box-shadow: 0 10px 30px -12px rgba(0, 0, 0, .35); }
  .botao--vidro:hover { background: rgba(255, 255, 255, .24); }
  .botao--linha:hover { background: var(--espresso); color: var(--ivory); }
  .botao:hover .seta-circ, a:hover > .seta-circ { transform: rotate(45deg); }
  .botao--ouro:hover { background: #E6CB94; transform: translateY(-2px); box-shadow: 0 16px 34px -16px rgba(217, 183, 119, .7); }
  .botao--contorno:hover { background: rgba(16, 13, 10, .35); color: var(--lux-champanhe); box-shadow: inset 0 0 0 1px var(--lux-champanhe); transform: translateY(-2px); }
  .botao:hover .botao__seta { transform: translateX(4px); }
}

/* Link com sublinhado animado */
.link-linha { position: relative; display: inline-flex; align-items: center; min-height: 44px; font: 500 .9375rem/1.2 var(--sans); text-decoration: none; color: var(--espresso); }
.link-linha::after { content: ""; position: absolute; left: 0; right: 0; bottom: 10px; height: 1px; background: currentColor; transform-origin: right; transition: transform var(--medio) var(--ease); }
@media (hover: hover) { .link-linha:hover::after { transform: scaleX(.3); } }

/* Etiquetas (chips) */
.chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.chips li { padding: 9px 16px; border-radius: 999px; background: var(--fundo); font-size: .9375rem; color: var(--espresso); }

.legenda-ilustrativa {
  position: absolute; z-index: 3; right: 14px; top: 14px; margin: 0; padding: 6px 12px; border-radius: 999px;
  background: rgba(255, 255, 255, .8); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  font: 500 .75rem/1.2 var(--sans); color: var(--espresso);
}

/* Assinatura (logotipo em texto) e monograma */
.assinatura { display: inline-flex; align-items: baseline; gap: 10px; line-height: 1; white-space: nowrap; }
.assinatura__nome { font: 600 1.375rem/1 var(--sans); letter-spacing: -.045em; }
.assinatura__linha { font: italic 400 1.0625rem/1 var(--serif); letter-spacing: 0; opacity: .72; }
.assinatura__logo { display: block; height: var(--logo-h, 48px); width: auto; }
/* Logo oficial: a versão de letras claras só aparece sobre fundo escuro */
.assinatura--logo { display: inline-flex; align-items: center; }
.assinatura__logo--claro { display: none; }
.cab-sobre-escuro .cab .assinatura__logo--claro, .menu-cel .assinatura__logo--claro, .rod .assinatura__logo--claro { display: block; }
.cab-sobre-escuro .cab .assinatura__logo--padrao:not(:only-child), .menu-cel .assinatura__logo--padrao:not(:only-child), .rod .assinatura__logo--padrao:not(:only-child) { display: none; }
/* sem a versão clara, o logo escuro vira claro por filtro (fallback) */
.cab-sobre-escuro .cab .assinatura__logo--padrao:only-child, .menu-cel .assinatura__logo--padrao:only-child, .rod .assinatura__logo--padrao:only-child { filter: brightness(0) invert(1); }
.cab .assinatura__logo { --logo-h: 68px; transition: height var(--medio) var(--ease); }
.cab.rolado .assinatura__logo { --logo-h: 56px; }
.menu-cel .assinatura__logo { --logo-h: 58px; }
.rod__marca .assinatura__logo { --logo-h: 100px; }
/* Emblema oficial no lugar do monograma */
img.emblema { height: auto; object-fit: contain; }
img.hero__mono { opacity: .12; }
img.sobre__mono { width: 40%; opacity: .92; }
img.cartao__mono { opacity: .16; }
img.olho__mono, img.separador__mono { width: 20px; height: 20px; }
.monograma__meio { stroke: var(--ouro); }

/* ═══════════════ Cabeçalho ═══════════════
   Barra de largura total: logo à esquerda, menu no centro, orçamento à direita.
   No topo é transparente; ao rolar ganha fundo translúcido com desfoque.
   Na página inicial (primeira tela escura) o fundo ao rolar é escuro. */
.cab {
  position: fixed; z-index: 50; top: 0; left: 0; right: 0; color: var(--espresso);
  transition: transform .55s var(--ease-saida), background-color var(--medio) var(--ease), box-shadow var(--medio) var(--ease);
}
.cab__dentro {
  position: relative; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px;
  max-width: 1680px; margin: 0 auto; min-height: 92px; padding: 0 var(--margem);
  transition: min-height var(--medio) var(--ease);
}
.cab.rolado {
  background: rgba(247, 243, 236, .88); box-shadow: inset 0 -1px 0 var(--linha);
  -webkit-backdrop-filter: blur(16px) saturate(1.2); backdrop-filter: blur(16px) saturate(1.2);
}
.cab.rolado .cab__dentro { min-height: 74px; }
.cab__marca { justify-self: start; text-decoration: none; display: inline-flex; align-items: center; color: inherit; }
.cab .assinatura { flex-direction: column; align-items: flex-start; gap: 6px; }
.cab .assinatura__nome { font: italic 500 1.75rem/.9 var(--serif-lux); letter-spacing: -.01em; }
.cab .assinatura__linha { font: 600 .625rem/1 var(--sans-lux); letter-spacing: .3em; text-transform: uppercase; font-style: normal; opacity: 1; color: var(--ouro-texto); }
.cab__nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 4px; }
.cab__nav a {
  position: relative; display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px;
  font: 500 .875rem/1 var(--sans-lux); letter-spacing: .01em; text-decoration: none; white-space: nowrap; color: inherit;
  transition: color var(--rapido) var(--ease);
}
.cab__nav a::after {
  content: ""; position: absolute; left: 14px; right: 14px; bottom: 6px; height: 1px; background: currentColor;
  transform: scaleX(0); transform-origin: left; transition: transform var(--medio) var(--ease-saida);
}
.cab__nav a:hover::after, .cab__nav a.ativo::after, .cab__nav a[aria-current]::after { transform: scaleX(1); }
.cab__nav a.ativo, .cab__nav a[aria-current] { color: var(--ouro-texto); }
.cab__cta { justify-self: end; }
.cab__abrir { display: none; }
.cab__progresso { position: absolute; z-index: 2; left: 0; right: 0; bottom: 0; height: 1px; background: var(--ouro); transform: scaleX(0); transform-origin: left; opacity: 0; transition: opacity var(--medio); }
.cab.rolado .cab__progresso { opacity: .9; }
.cab.recolhido { transform: translateY(-100%); }
.cab:focus-within { transform: none; }

/* Sobre a primeira tela escura (página inicial) */
.cab-sobre-escuro .cab { color: var(--lux-marfim); }
.cab-sobre-escuro .cab.rolado { background: rgba(16, 13, 10, .8); box-shadow: inset 0 -1px 0 rgba(217, 183, 119, .16); }
.cab-sobre-escuro .cab .assinatura__linha { color: var(--lux-champanhe); }
.cab-sobre-escuro .cab__nav a { color: rgba(248, 245, 239, .86); }
.cab-sobre-escuro .cab__nav a:hover { color: var(--lux-marfim); }
.cab-sobre-escuro .cab__nav a.ativo, .cab-sobre-escuro .cab__nav a[aria-current] { color: var(--lux-champanhe); }
.cab-sobre-escuro .cab__progresso { background: var(--lux-champanhe); }
.cab-sobre-escuro .cab :focus-visible { outline-color: var(--lux-champanhe); }

.cab__abrir {
  justify-self: end; width: 48px; height: 48px; border: 0; border-radius: 50%; cursor: pointer;
  background: var(--espresso); color: var(--ivory); align-items: center; justify-content: center;
}
.cab-sobre-escuro .cab__abrir { background: transparent; color: var(--lux-marfim); box-shadow: inset 0 0 0 1px rgba(248, 245, 239, .4); }
.cab__linhas { display: grid; gap: 6px; width: 20px; }
.cab__linhas span { height: 1.5px; border-radius: 2px; background: currentColor; }
.cab__linhas span:last-child { width: 70%; justify-self: end; }

/* Menu do celular (tela cheia, escuro) */
.menu-cel {
  position: fixed; inset: 0; z-index: 60; background: var(--lux-preto); color: var(--lux-marfim);
  display: flex; flex-direction: column; padding: 0 var(--margem) calc(20px + env(safe-area-inset-bottom));
  overflow-y: auto; animation: menuEntra .45s var(--ease-saida) both;
}
@keyframes menuEntra { from { opacity: 0; } to { opacity: 1; } }
@keyframes aparecer { from { opacity: 0; } to { opacity: 1; } }
.menu-cel__topo { display: flex; align-items: center; justify-content: space-between; min-height: 92px; flex: none; border-bottom: 1px solid rgba(217, 183, 119, .18); }
.menu-cel .assinatura { flex-direction: column; align-items: flex-start; gap: 6px; }
.menu-cel .assinatura__nome { font: italic 500 1.75rem/.9 var(--serif-lux); }
.menu-cel .assinatura__linha { display: block; font: 600 .625rem/1 var(--sans-lux); letter-spacing: .3em; text-transform: uppercase; font-style: normal; opacity: 1; color: var(--lux-champanhe); }
.menu-cel__fechar { width: 48px; height: 48px; border: 0; border-radius: 50%; background: transparent; color: var(--lux-marfim); box-shadow: inset 0 0 0 1px rgba(248, 245, 239, .4); cursor: pointer; position: relative; }
.menu-cel__fechar span::before, .menu-cel__fechar span::after { content: ""; position: absolute; left: 15px; right: 15px; top: 50%; height: 1.5px; background: currentColor; }
.menu-cel__fechar span::before { transform: rotate(45deg); }
.menu-cel__fechar span::after { transform: rotate(-45deg); }
.menu-cel :focus-visible { outline-color: var(--lux-champanhe); }
.menu-cel__lista { list-style: none; margin: 16px 0 24px; padding: 0; }
.menu-cel__lista li { animation: menuItem .6s var(--ease-saida) both; animation-delay: calc(80ms + var(--i, 0) * 45ms); }
.menu-cel__lista li + li { border-top: 1px solid rgba(248, 245, 239, .1); }
@keyframes menuItem { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.menu-cel__lista a { display: flex; align-items: baseline; gap: 18px; padding: 16px 2px; text-decoration: none; font: 500 clamp(1.9rem, 8vw, 2.5rem)/1.1 var(--serif-lux); color: inherit; }
.menu-cel__lista a:hover, .menu-cel__lista a.ativo { color: var(--lux-champanhe); }
.menu-cel__n { font: 500 .75rem/1 var(--sans-lux); letter-spacing: .14em; color: var(--lux-champanhe); min-width: 22px; }
.menu-cel__cta { margin-top: auto; width: 100%; }

/* ═══════════════ Primeira tela (banner) ═══════════════
   A foto ocupa a tela inteira, sem margens; o degradê escurece a esquerda e a base
   para o texto ler bem. Textos e botões são HTML. */
.hero {
  position: relative; overflow: hidden; isolation: isolate;
  min-height: 100vh; min-height: 100svh;
  display: flex; flex-direction: column; justify-content: center;
  padding: 132px var(--margem) 128px; color: var(--lux-marfim); background: var(--lux-preto);
}
.hero__fundo { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
.hero__zoom { position: absolute; inset: 0; }
.hero__img, .hero__img img { display: block; width: 100%; height: 100%; }
.hero__img img { object-fit: cover; object-position: var(--foco, 50% 50%); }
.hero__fundo::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    linear-gradient(90deg, rgba(16, 13, 10, .94) 0%, rgba(16, 13, 10, .82) 26%, rgba(16, 13, 10, .45) 48%, rgba(16, 13, 10, .08) 68%, rgba(16, 13, 10, 0) 82%),
    linear-gradient(180deg, rgba(16, 13, 10, .6) 0%, rgba(16, 13, 10, 0) 20%, rgba(16, 13, 10, 0) 58%, rgba(16, 13, 10, .7) 86%, var(--lux-preto) 100%);
}
/* sem foto: fundo café escuro com o monograma em traço fino */
.hero--sem-foto .hero__fundo { background: radial-gradient(80% 90% at 80% 35%, #4A3424 0%, var(--lux-cafe) 42%, var(--lux-preto) 100%); }
.hero--sem-foto .hero__fundo::after { background: linear-gradient(180deg, rgba(16, 13, 10, 0) 55%, var(--lux-preto) 100%); }
.hero__mono { position: absolute; right: 4%; top: 46%; width: min(42vw, 600px); height: auto; transform: translateY(-50%); color: rgba(217, 183, 119, .14); }
.hero__mono .monograma__meio { stroke: rgba(217, 183, 119, .38); }

.hero__conteudo { position: relative; width: 100%; max-width: 1680px; margin: 0 auto; }
.hero__olho {
  display: flex; align-items: center; gap: 18px; margin: 0 0 28px;
  font: 600 .75rem/1.2 var(--sans-lux); letter-spacing: .32em; text-transform: uppercase; color: var(--lux-champanhe);
}
.hero__olho::before { content: ""; width: 56px; height: 1px; background: currentColor; opacity: .8; flex: none; }
.hero__titulo {
  margin: 0; max-width: 11.5em;
  font: 500 clamp(3rem, 5.4vw, 6.25rem)/.98 var(--serif-lux); letter-spacing: -.012em; color: var(--lux-marfim);
  text-wrap: balance;
}
.hero__titulo .linha { display: block; }
.hero__titulo .linha > span { display: inline-block; }
.hero__titulo em { font-style: italic; font-weight: 500; color: var(--lux-champanhe); letter-spacing: -.01em; }
.hero__texto { max-width: 31rem; margin: 30px 0 40px; font: 400 1.125rem/1.7 var(--sans-lux); color: rgba(248, 245, 239, .86); }
.hero__acoes { display: flex; flex-wrap: wrap; gap: 14px; }
.hero .legenda-ilustrativa {
  top: auto; bottom: 40px; left: var(--margem); right: auto; padding: 0; background: none; -webkit-backdrop-filter: none; backdrop-filter: none;
  font: 500 .6875rem/1.2 var(--sans-lux); letter-spacing: .14em; text-transform: uppercase; color: rgba(248, 245, 239, .62);
}

/* Indicador de rolagem: texto discreto e uma linha champanhe que desce */
.hero__rolar {
  position: absolute; right: var(--margem); bottom: 34px; display: inline-flex; align-items: center; gap: 14px; min-height: 44px;
  font: 500 .75rem/1 var(--sans-lux); letter-spacing: .18em; text-transform: uppercase; text-decoration: none; color: rgba(248, 245, 239, .78);
  transition: color var(--rapido) var(--ease);
}
.hero__rolar:hover { color: var(--lux-champanhe); }
.hero__rolar-linha { position: relative; width: 1px; height: 44px; overflow: hidden; background: rgba(217, 183, 119, .25); }
.hero__rolar-linha::after { content: ""; position: absolute; left: 0; top: 0; width: 1px; height: 45%; background: var(--lux-champanhe); animation: rolarLinha 2.4s var(--ease) infinite; }
@keyframes rolarLinha { from { transform: translateY(-100%); } to { transform: translateY(240%); } }

/* ═══════════════ Seções da página inicial (luxo escuro) ═══════════════
   .lux--escura (preto, continua o banner) · .lux--cafe (café) · .lux--clara (marfim)
   Títulos em Cormorant Garamond; textos em Manrope; fotos com cantos retos. */
.lux { --r-card: 0px; position: relative; padding: clamp(96px, 11vw, 168px) 0; font-family: var(--sans-lux); }
.lux__dentro { width: 100%; max-width: 1440px; margin: 0 auto; padding: 0 var(--margem); }
.lux--escura { background: var(--lux-preto); color: var(--lux-marfim); }
.lux--cafe { background: var(--lux-cafe); color: var(--lux-marfim); }
.lux--clara { background: var(--lux-marfim); color: var(--lux-preto); }
/* duas seções claras seguidas: só uma linha fina entre elas */
.lux--clara + .lux--clara { padding-top: 0; }
.lux--clara + .lux--clara > .lux__dentro:first-child { padding-top: clamp(96px, 11vw, 168px); border-top: 1px solid rgba(43, 28, 19, .1); }

.lux-olho {
  display: flex; align-items: center; gap: 14px; margin: 0 0 26px;
  font: 600 .75rem/1.2 var(--sans-lux); letter-spacing: .28em; text-transform: uppercase; color: var(--ouro-texto);
}
.lux-olho::before { content: ""; order: -1; flex: none; width: 44px; height: 1px; background: currentColor; opacity: .7; }
.lux-olho .olho__n { order: -2; display: inline; min-width: 0; height: auto; padding: 0; border-radius: 0; background: none; color: inherit; font: inherit; letter-spacing: .12em; }
.lux--escura .lux-olho, .lux--cafe .lux-olho, .rod .lux-olho { color: var(--lux-champanhe); }
.lux-olho--centro { justify-content: center; }
.lux-olho--centro::after { content: ""; flex: none; width: 44px; height: 1px; background: currentColor; opacity: .7; }

.lux-titulo { margin: 0; font: 500 clamp(2.5rem, 4.6vw, 4.5rem)/1.02 var(--serif-lux); letter-spacing: -.01em; text-wrap: balance; }
.lux-titulo em { font-style: italic; color: var(--ouro-escuro); }
.lux--escura .lux-titulo em, .lux--cafe .lux-titulo em, .rod .lux-titulo em { color: var(--lux-champanhe); }
.lux-sub { margin: 0; max-width: 34rem; font-size: 1.0625rem; line-height: 1.75; color: #5A4E44; }
.lux--escura .lux-sub, .lux--cafe .lux-sub { color: rgba(248, 245, 239, .74); }
.lux-topo { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); align-items: end; gap: 28px 64px; margin-bottom: clamp(48px, 6vw, 88px); }
.lux-topo > :last-child { justify-self: end; }
.lux-topo .lux-titulo { max-width: 13em; }

/* Botão escuro para fundo claro */
.botao--lux-escuro { background: var(--lux-preto); color: var(--lux-marfim); font-family: var(--sans-lux); font-weight: 600; letter-spacing: .01em; }
@media (hover: hover) {
  .botao--lux-escuro:hover { background: var(--lux-cafe); transform: translateY(-2px); box-shadow: 0 16px 30px -18px rgba(16, 13, 10, .6); }
}
.lux :focus-visible, .rod :focus-visible { outline: 2px solid var(--ouro-texto); outline-offset: 3px; }
.lux--escura :focus-visible, .lux--cafe :focus-visible, .rod :focus-visible { outline-color: var(--lux-champanhe); }

/* ── Experiências: mosaico assimétrico ── */
.exp { padding-top: clamp(40px, 5vw, 72px); }
.exp::before { /* emenda com a base do banner */
  content: ""; position: absolute; left: 0; right: 0; top: -1px; height: 2px; background: var(--lux-preto);
}
.exp__mosaico { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-rows: clamp(260px, 23vw, 340px); gap: clamp(12px, 1.4vw, 20px); }
.exp__item { grid-column: span 6; min-width: 0; }
.exp__mosaico--1 .exp__item { grid-column: 1 / -1; }
.exp__mosaico--3 .exp__item:nth-child(1), .exp__mosaico--4 .exp__item:nth-child(1), .exp__mosaico--5 .exp__item:nth-child(1) { grid-column: 1 / 8; grid-row: span 2; }
.exp__mosaico--3 .exp__item:nth-child(n+2), .exp__mosaico--4 .exp__item:nth-child(2), .exp__mosaico--4 .exp__item:nth-child(3),
.exp__mosaico--5 .exp__item:nth-child(2), .exp__mosaico--5 .exp__item:nth-child(3) { grid-column: 8 / -1; }
.exp__mosaico--4 .exp__item:nth-child(4) { grid-column: 3 / -1; }
.exp__mosaico--5 .exp__item:nth-child(4) { grid-column: 1 / 6; }
.exp__mosaico--5 .exp__item:nth-child(5) { grid-column: 6 / -1; }

.exp-card {
  position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end;
  height: 100%; padding: clamp(22px, 2.4vw, 36px); text-decoration: none; color: var(--lux-marfim);
}
.exp-card__foto { position: absolute; inset: 0; z-index: -2; background: var(--lux-cafe); }
.exp-card__img, .exp-card__img img { display: block; width: 100%; height: 100%; }
.exp-card__img img { object-fit: cover; object-position: var(--foco, 50% 50%); transition: transform 1.6s var(--ease-saida); }
.exp-card__foto::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(16, 13, 10, .05) 0%, rgba(16, 13, 10, .2) 30%, rgba(16, 13, 10, .7) 62%, rgba(16, 13, 10, .94) 100%); transition: opacity var(--medio) var(--ease); }
.exp-card .legenda-ilustrativa { z-index: 2; top: 16px; right: 16px; }
/* sem foto: painel café com o número grande em itálico */
.exp--sem-foto .exp-card {
  background: radial-gradient(120% 90% at 85% 0%, rgba(217, 183, 119, .12) 0%, rgba(217, 183, 119, 0) 55%), #1A1410;
  box-shadow: inset 0 0 0 1px rgba(217, 183, 119, .16);
  transition: box-shadow var(--medio) var(--ease), background-color var(--medio) var(--ease);
}
.exp-card__marca {
  position: absolute; z-index: -1; top: clamp(10px, 1.6vw, 22px); right: clamp(20px, 2.4vw, 36px);
  font: italic 500 clamp(5rem, 9vw, 9rem)/1 var(--serif-lux); color: rgba(217, 183, 119, .2); transition: color var(--medio) var(--ease);
}
.exp__item:nth-child(1) .exp-card__marca { font-size: clamp(7rem, 15vw, 15rem); }
.exp-card__info { max-width: 30rem; }
.exp-card__n { display: block; margin-bottom: 14px; font: 600 .75rem/1 var(--sans-lux); letter-spacing: .2em; color: var(--lux-champanhe); }
.exp-card__titulo { margin: 0; font: 500 clamp(1.75rem, 2.4vw, 2.5rem)/1.05 var(--serif-lux); letter-spacing: -.005em; }
.exp__item:nth-child(1) .exp-card__titulo { font-size: clamp(2.1rem, 3.4vw, 3.4rem); }
.exp-card__texto { margin: 12px 0 0; font-size: .9375rem; line-height: 1.6; color: rgba(248, 245, 239, .78); }
.exp-card__ver { display: inline-flex; align-items: center; gap: 14px; margin-top: 20px; font: 600 .75rem/1 var(--sans-lux); letter-spacing: .16em; text-transform: uppercase; color: var(--lux-champanhe); }
.exp-card__linha { width: 28px; height: 1px; background: currentColor; transition: width var(--medio) var(--ease-saida); }
@media (hover: hover) {
  .exp-card:hover .exp-card__img img { transform: scale(1.05); }
  .exp-card:hover .exp-card__linha { width: 56px; }
  .exp--sem-foto .exp-card:hover { box-shadow: inset 0 0 0 1px rgba(217, 183, 119, .55); }
  .exp--sem-foto .exp-card:hover .exp-card__marca { color: rgba(217, 183, 119, .42); }
}
.exp-card:focus-visible { outline-offset: -4px; }

/* ── Nosso buffet ── */
.buffet__grade { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 40px clamp(24px, 3vw, 48px); align-items: start; }
.buffet--sem-foto .buffet__texto { grid-column: 1 / 7; }
.buffet--sem-foto .buffet__lista { grid-column: 8 / -1; padding-top: 8px; }
.buffet--foto .buffet__foto { grid-column: 1 / 7; grid-row: 1 / span 2; margin: 0; position: relative; overflow: hidden; aspect-ratio: 4 / 5; background: #E9E1D4; }
.buffet--foto .buffet__texto, .buffet--foto .buffet__lista { grid-column: 8 / -1; }
.buffet--foto .buffet__texto { align-self: end; }
.buffet__img, .buffet__img img { display: block; width: 100%; height: 100%; }
.buffet__img img { object-fit: cover; object-position: var(--foco, 50% 50%); }
.buffet__texto .lux-sub { margin: 28px 0 36px; }
.buffet--foto .buffet__texto .lux-sub { margin-bottom: 0; }
.buffet__destaques { list-style: none; margin: 0; padding: 0; counter-reset: none; }
.buffet__destaques li {
  display: flex; align-items: baseline; gap: 22px; padding: 22px 0; border-top: 1px solid rgba(43, 28, 19, .14);
  font: 500 clamp(1.5rem, 2.1vw, 2rem)/1.15 var(--serif-lux); color: var(--lux-preto);
}
.buffet__destaques li:last-child { border-bottom: 1px solid rgba(43, 28, 19, .14); }
.buffet__n { flex: none; min-width: 28px; font: 600 .75rem/1 var(--sans-lux); letter-spacing: .14em; color: var(--ouro-texto); }
.buffet__cardapio { margin: 36px 0 0; }
.buffet__cardapio-titulo { margin: 0 0 10px; font: 600 .75rem/1.2 var(--sans-lux); letter-spacing: .2em; text-transform: uppercase; color: var(--ouro-texto); }
.buffet__cardapio p { margin: 0; font-size: 1rem; line-height: 1.7; color: #3E342C; }
.buffet__cardapio .ponto { color: var(--ouro-texto); }
.buffet__cardapio .gastro__nota { margin-top: 8px; font-size: .875rem; color: #5A4E44; }
.buffet__cardapio .gastro__poema { margin: 18px 0 0; padding-left: 16px; border-left: 1px solid #B08A4E; font-family: var(--serif-lux); font-style: italic; font-size: 1.1875rem; line-height: 1.5; color: #3A2A1E; max-width: 40ch; }
.buffet__lista > .botao { margin-top: 36px; }

.buffet__detalhes { display: grid; grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr)); gap: clamp(12px, 1.4vw, 20px); margin-top: clamp(56px, 7vw, 104px); align-items: start; }
.buffet__detalhes--1 { --n: 1; } .buffet__detalhes--2 { --n: 2; } .buffet__detalhes--3 { --n: 3; } .buffet__detalhes--4 { --n: 4; } .buffet__detalhes--5 { --n: 5; }
.buffet__detalhes .detalhe:nth-child(even) { margin-top: clamp(32px, 5vw, 72px); }
.detalhe { position: relative; margin: 0; }
.detalhe__quadro { position: relative; overflow: hidden; aspect-ratio: 4 / 5; background: #E9E1D4; }
.detalhe__img, .detalhe__img img { display: block; width: 100%; height: 100%; }
.detalhe__img img { object-fit: cover; object-position: var(--foco, 50% 50%); transition: transform 1.6s var(--ease-saida); }
.detalhe__legenda { margin-top: 14px; font: 600 .6875rem/1.2 var(--sans-lux); letter-spacing: .2em; text-transform: uppercase; color: var(--ouro-texto); }
.detalhe .legenda-ilustrativa { top: 10px; right: 10px; }
@media (hover: hover) { .detalhe:hover .detalhe__img img { transform: scale(1.04); } }

/* ── Galeria (prévia) no fundo marfim ── */
.gal-previa .gal-item__link { border-radius: 0; background: #E9E1D4; }
.gal-previa .gal-grade { column-gap: clamp(12px, 1.4vw, 20px); }
.gal-previa .gal-item { margin-bottom: clamp(12px, 1.4vw, 20px); }

/* ── Sobre ── */
.sobre__grade { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 40px clamp(24px, 3vw, 48px); align-items: center; }
.sobre__foto, .sobre__reserva { grid-column: 1 / 6; margin: 0; position: relative; overflow: hidden; aspect-ratio: 4 / 5; }
.sobre__foto { background: #3A2A1E; }
.sobre__img, .sobre__img img { display: block; width: 100%; height: 100%; }
.sobre__img img { object-fit: cover; object-position: var(--foco, 50% 50%); }
.sobre__reserva {
  display: grid; place-items: center;
  background: radial-gradient(90% 70% at 50% 40%, rgba(217, 183, 119, .1) 0%, rgba(217, 183, 119, 0) 70%), #22160F;
  box-shadow: inset 0 0 0 1px rgba(217, 183, 119, .18);
}
.sobre__reserva::before { content: ""; position: absolute; inset: 18px; border: 1px solid rgba(217, 183, 119, .12); pointer-events: none; }
.sobre__mono { width: 46%; height: auto; color: rgba(217, 183, 119, .28); }
.sobre__mono .monograma__meio { stroke: var(--lux-champanhe); }
.sobre__texto { grid-column: 7 / -1; }
.sobre__paragrafos { margin-top: 32px; }
.sobre__paragrafos p { margin: 0 0 18px; max-width: 34rem; font-size: 1.0625rem; line-height: 1.8; color: rgba(248, 245, 239, .78); }
.sobre__paragrafos p:first-child { font: 400 clamp(1.3rem, 1.7vw, 1.55rem)/1.55 var(--serif-lux); color: var(--lux-marfim); }
.sobre__assinatura { margin: 28px 0 0; font: italic 500 1.5rem/1.2 var(--serif-lux); color: var(--lux-champanhe); }

/* ── Como funciona: colunas com linha fina, sem cartões ── */
.passos__lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 clamp(20px, 2.6vw, 40px); }
.passo { padding-top: 28px; border-top: 1px solid rgba(43, 28, 19, .18); }
.passo__num { display: block; font: italic 500 3.25rem/1 var(--serif-lux); color: var(--ouro-escuro); }
.passo__titulo { margin: 28px 0 12px; font: 500 1.6rem/1.15 var(--serif-lux); color: var(--lux-preto); }
.passo p { margin: 0; font-size: .9375rem; line-height: 1.7; color: #5A4E44; }
.passos__nota { margin: 40px 0 0; font-size: .875rem; color: #5A4E44; }

/* ── Depoimentos ── */
.depos__lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 48px clamp(24px, 3vw, 48px); }
.depo { margin: 0; height: 100%; display: flex; flex-direction: column; padding-top: 28px; border-top: 1px solid rgba(43, 28, 19, .18); }
.depo__texto { margin: 0 0 28px; font: italic 500 1.6rem/1.35 var(--serif-lux); color: var(--lux-preto); }
.depo__texto::before { content: "“"; display: block; height: .45em; font-size: 2.4em; line-height: 1; color: var(--ouro-escuro); }
.depo__texto p { margin: 0; }
.depo__autor { margin-top: auto; font-weight: 600; font-size: .9375rem; }
.depo__evento { display: block; margin-top: 4px; font-weight: 400; font-size: .875rem; color: #5A4E44; }

/* ═══════════════ Chamada final e rodapé (escuros, em todas as páginas) ═══════════════ */
.rod { --r-card: 0px; background: var(--lux-preto); color: var(--lux-marfim); font-family: var(--sans-lux); }
body:not(.cab-sobre-escuro) .rod { margin-top: var(--secao); }   /* páginas internas: respiro antes da chamada */
.rod a { text-decoration: none; }
.rod a:not(.botao) { color: inherit; }
.rod__chamada {
  position: relative; isolation: isolate; overflow: hidden; display: grid; place-items: center; text-align: center;
  min-height: clamp(560px, 78vh, 820px); padding: clamp(96px, 12vw, 160px) var(--margem);
  background: var(--lux-cafe);
}
.rod__fundo { position: absolute; inset: 0; z-index: -1; }
.rod__img, .rod__img img { display: block; width: 100%; height: 100%; }
.rod__img img { object-fit: cover; object-position: var(--foco, 50% 50%); }
/* luz quente no centro e bordas escuras, para o texto ler bem sobre a foto */
.rod__fundo::after {
  content: ""; position: absolute; inset: 0;
  background:
    radial-gradient(60% 55% at 50% 50%, rgba(43, 28, 19, .55) 0%, rgba(16, 13, 10, .82) 70%, rgba(16, 13, 10, .94) 100%);
}
.rod__chamada--sem-foto .rod__fundo { background: radial-gradient(70% 70% at 50% 45%, #4A3220 0%, var(--lux-cafe) 45%, var(--lux-preto) 100%); }
.rod__chamada--sem-foto .rod__fundo::after { background: radial-gradient(40% 35% at 50% 40%, rgba(217, 183, 119, .14), rgba(217, 183, 119, 0)); }
.rod__chamada-texto { max-width: 52rem; }
.rod__titulo { font-size: clamp(2.6rem, 5.6vw, 5.25rem); line-height: 1; }
.rod__titulo em { display: block; }
.rod__texto { margin: 28px auto 40px; max-width: 34rem; font-size: 1.0625rem; line-height: 1.75; color: rgba(248, 245, 239, .8); }
.rod__acoes { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; }
.rod__legenda { margin: 32px 0 0; font: 500 .6875rem/1.2 var(--sans-lux); letter-spacing: .14em; text-transform: uppercase; color: rgba(248, 245, 239, .55); }

.rod__grade {
  display: grid; grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr)); gap: 48px 32px;
  max-width: 1440px; margin: 0 auto; padding: clamp(72px, 8vw, 112px) var(--margem) 56px;
}
.rod__mono { display: block; width: 44px; height: 44px; margin-bottom: 22px; color: var(--lux-marfim); }
.rod__mono .monograma__meio { stroke: var(--lux-champanhe); }
.rod__marca .assinatura { flex-direction: column; align-items: flex-start; gap: 8px; }
.rod__marca .assinatura__nome { font: italic 500 2.25rem/.9 var(--serif-lux); letter-spacing: -.01em; }
.rod__marca .assinatura__linha { font: 600 .6875rem/1 var(--sans-lux); letter-spacing: .3em; text-transform: uppercase; font-style: normal; opacity: 1; color: var(--lux-champanhe); }
.rod__marca p { margin: 22px 0 0; max-width: 30ch; font-size: .9375rem; line-height: 1.7; color: rgba(248, 245, 239, .66); }
.rod__col h3 { margin: 6px 0 18px; font: 600 .6875rem/1.2 var(--sans-lux); letter-spacing: .22em; text-transform: uppercase; color: var(--lux-champanhe); }
.rod__col .rod__h3-seg { margin-top: 36px; }
.rod__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; font-size: .9375rem; color: rgba(248, 245, 239, .82); }
.rod__col a { display: inline-block; padding: 2px 0; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: color var(--rapido), background-size var(--medio) var(--ease-saida); }
.rod__col a:hover { color: var(--lux-champanhe); background-size: 100% 1px; }
.rod__rotulo { display: block; font-size: .75rem; color: rgba(248, 245, 239, .55); }
.rod__base {
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px 24px;
  max-width: 1440px; margin: 0 auto; padding: 26px var(--margem) 32px; border-top: 1px solid rgba(217, 183, 119, .16);
  font-size: .8125rem; color: rgba(248, 245, 239, .6);
}
.rod__base p { margin: 0; }
.rod__frase { font: italic 500 1.125rem/1.3 var(--serif-lux); color: rgba(248, 245, 239, .78); }
.rod__legal a { margin-left: 14px; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(217, 183, 119, .5); }
.rod__legal a:hover { color: var(--lux-champanhe); }

/* WhatsApp flutuante */
.wa-flutuante {
  position: fixed; z-index: 40; right: max(20px, env(safe-area-inset-right)); bottom: max(20px, env(safe-area-inset-bottom));
  display: inline-flex; align-items: center; gap: 10px; min-height: 52px; padding: 0 20px 0 16px; border-radius: 999px;
  background: rgba(16, 13, 10, .92); color: var(--lux-marfim); text-decoration: none; font: 600 .875rem/1 var(--sans-lux);
  box-shadow: inset 0 0 0 1px rgba(217, 183, 119, .35), 0 16px 40px -16px rgba(0, 0, 0, .5);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  transition: opacity var(--medio) var(--ease), transform var(--medio) var(--ease), background-color var(--rapido);
}
.wa-flutuante svg { width: 22px; height: 22px; color: var(--lux-champanhe); }
.wa-flutuante:hover { background: var(--lux-cafe); }
.wa-flutuante.oculto { opacity: 0; transform: translateY(12px); pointer-events: none; visibility: hidden; }

/* ── Responsivo das seções ── */
@media (max-width: 1080px) {
  .lux-topo { grid-template-columns: 1fr; }
  .lux-topo > :last-child { justify-self: start; }
  .exp__mosaico { grid-template-columns: 1fr 1fr; grid-auto-rows: clamp(280px, 42vw, 380px); }
  .exp__mosaico .exp__item, .exp__mosaico .exp__item:nth-child(n) { grid-column: auto; grid-row: auto; }
  .exp__mosaico .exp__item:first-child { grid-column: 1 / -1; }
  .exp__mosaico--2 .exp__item:first-child, .exp__mosaico--4 .exp__item:nth-child(4) { grid-column: auto; }
  .exp__mosaico--4 .exp__item:nth-child(4) { grid-column: 1 / -1; }
  .buffet__grade, .sobre__grade { grid-template-columns: 1fr; }
  .buffet__grade > *, .sobre__grade > * { grid-column: 1 / -1 !important; grid-row: auto !important; }
  .buffet--foto .buffet__foto { aspect-ratio: 4 / 3; }
  .sobre__foto, .sobre__reserva { aspect-ratio: 16 / 10; max-height: 520px; }
  .buffet__detalhes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .buffet__detalhes .detalhe:nth-child(even) { margin-top: 40px; }
  .passos__lista { grid-template-columns: 1fr 1fr; gap: 48px 32px; }
  .rod__grade { grid-template-columns: 1fr 1fr; }
  .rod__marca { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .lux { padding: 80px 0; }
  .lux--clara + .lux--clara > .lux__dentro:first-child { padding-top: 80px; }
  .lux__dentro { padding: 0 20px; }
  .lux-titulo { font-size: clamp(2.3rem, 10.5vw, 2.9rem); }
  .lux-olho { font-size: .6875rem; letter-spacing: .24em; margin-bottom: 20px; }
  .lux-topo { margin-bottom: 40px; }
  .lux-topo .botao { width: 100%; }
  .exp { padding-top: 24px; }
  .exp__mosaico { grid-template-columns: 1fr; grid-auto-rows: auto; }
  .exp__mosaico .exp__item:first-child, .exp__mosaico--4 .exp__item:nth-child(4) { grid-column: auto; }
  .exp--fotos .exp-card { min-height: 420px; }
  .exp--sem-foto .exp-card { min-height: 260px; }
  .exp__item:nth-child(1) .exp-card__marca { font-size: 7rem; }
  .exp__item:nth-child(1) .exp-card__titulo { font-size: 2.1rem; }
  .buffet__destaques li { font-size: 1.5rem; padding: 18px 0; }
  .buffet__lista > .botao, .buffet__texto > .botao { width: 100%; }
  .buffet__detalhes { gap: 10px; }
  .buffet__detalhes .detalhe:nth-child(even) { margin-top: 28px; }
  .sobre__foto, .sobre__reserva { aspect-ratio: 4 / 5; }
  .passos__lista { grid-template-columns: 1fr; gap: 36px; }
  .rod__chamada { min-height: 0; padding: 96px 20px; }
  .rod__acoes { flex-direction: column; }
  .rod__acoes .botao { width: 100%; }
  .rod__grade { grid-template-columns: 1fr; padding: 64px 20px 40px; gap: 36px; }
  .rod__base { flex-direction: column; align-items: flex-start; padding: 24px 20px 96px; } /* espaço para o botão do WhatsApp */
  .rod__legal a { margin-left: 0; display: inline-block; margin-top: 6px; }
  .wa-flutuante { padding: 0; width: 56px; height: 56px; justify-content: center; }
  .wa-flutuante__texto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .detalhe .legenda-ilustrativa, .exp-card .legenda-ilustrativa { font-size: .6875rem; }
}

/* ═══════════════ Movimento ═══════════════
   Só com JavaScript (classe .js no <html>); sem JS tudo aparece parado. */
.js .cab__dentro { animation: cabEntra .9s var(--ease-saida) .05s both; }
@keyframes cabEntra { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: none; } }
/* Banner: a foto aparece e depois aproxima muito devagar (no máximo 4%) */
.js .hero__fundo { animation: surgir 1.4s var(--ease) both; }
.js .hero__zoom { animation: heroZoom 26s var(--ease) .2s both; }
@keyframes heroZoom { from { transform: scale(1); } to { transform: scale(1.04); } }
.js .hero__olho { animation: subirPouco 1s var(--ease-saida) .25s both; }
.js .hero__titulo .linha > span { animation: tituloSurge 1.2s var(--ease-saida) both; }
.js .hero__titulo .linha:nth-child(1) > span { animation-delay: .35s; }
.js .hero__titulo .linha:nth-child(2) > span { animation-delay: .47s; }
.js .hero__titulo .linha:nth-child(3) > span { animation-delay: .59s; }
.js .hero__texto { animation: subirPouco 1s var(--ease-saida) .85s both; }
.js .hero__acoes { animation: subirPouco 1s var(--ease-saida) 1s both; }
.js .hero__rolar, .js .hero .legenda-ilustrativa { animation: surgir 1.2s var(--ease) 1.4s both; }
@keyframes tituloSurge { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
@keyframes surgir { from { opacity: 0; } to { opacity: 1; } }
@keyframes subirPouco { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }

.js .revelar { opacity: 0; transform: translateY(24px); transition: opacity var(--lento) var(--ease), transform var(--lento) var(--ease-saida); transition-delay: var(--atraso, 0ms); }
.js .revelar.visivel { opacity: 1; transform: none; }
.js .revelar--imagem { opacity: 1; transform: none; clip-path: inset(12% 0 0 0 round var(--r-card)); transition: clip-path 1.3s var(--ease-saida); transition-delay: var(--atraso, 0ms); }
.js .revelar--imagem.visivel { clip-path: inset(0 0 0 0 round var(--r-card)); }
.js .revelar--imagem img { transform: scale(1.08); transition: transform 2s var(--ease-saida); transition-delay: var(--atraso, 0ms); }
.js .revelar--imagem.visivel img { transform: none; }
.js .revelar .secao-titulo em { opacity: 0; transform: translateY(.3em); transition: opacity 1s var(--ease), transform 1.1s var(--ease-saida); transition-delay: calc(var(--atraso, 0ms) + 160ms); }
.js .revelar.visivel .secao-titulo em { opacity: 1; transform: none; }
[data-parallax] { will-change: transform; }

/* ═══════════════ Galeria ═══════════════ */
.gal-grade { list-style: none; margin: 0; padding: 0; columns: 3; column-gap: var(--vao); }
.gal-item { break-inside: avoid; margin: 0 0 var(--vao); }
.gal-item[hidden] { display: none; }
.gal-item__link { display: block; position: relative; overflow: hidden; border-radius: var(--r-medio); background: var(--bege); cursor: zoom-in; }
.gal-item__link img { width: 100%; height: auto; transition: transform 1.1s var(--ease-saida); }
@media (hover: hover) { .gal-item__link:hover img { transform: scale(1.035); } }
.gal-item__link:focus-visible { outline: 2px solid var(--espresso); outline-offset: 3px; }
.gal-grade--previa .gal-item:nth-child(n+8) { display: none; }

.gal-filtros { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 clamp(20px, 3vw, 32px); }
.gal-filtro {
  -webkit-appearance: none; appearance: none; border: 0; cursor: pointer; display: inline-flex; align-items: center; gap: 8px;
  min-height: 44px; padding: 0 16px; border-radius: 999px; background: var(--ivory);
  font: 500 .9375rem/1 var(--sans); color: var(--espresso-2); transition: background-color var(--rapido), color var(--rapido);
}
.gal-filtro__n { font-size: .8125rem; color: var(--texto-2); }
.gal-filtro[aria-pressed="true"] { background: var(--espresso); color: var(--ivory); }
.gal-filtro[aria-pressed="true"] .gal-filtro__n { color: var(--champanhe); }
@media (hover: hover) { .gal-filtro:hover { background: #E3DDD2; } .gal-filtro[aria-pressed="true"]:hover { background: var(--espresso); } }
.gal-cta { margin-top: var(--secao); padding: clamp(40px, 6vw, 80px) 24px; border-radius: var(--r-grande); background: var(--ivory); text-align: center; }
.gal-cta .secao-titulo { margin-bottom: 28px; }

/* Visualizador (ampliação) */
.visor { width: 100vw; height: 100vh; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: #12110F; color: var(--ivory); overflow: hidden; }
.visor[open] { display: grid; grid-template-rows: auto 1fr; animation: aparecer .3s var(--ease) both; }
.visor::backdrop { background: rgba(18, 17, 15, .6); }
.visor__barra { display: flex; justify-content: space-between; align-items: center; padding: 14px var(--margem); }
.visor__contador { margin: 0; font-size: .875rem; color: rgba(247, 243, 236, .72); }
.visor__fechar { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 16px 0 12px; border: 0; border-radius: 999px; background: rgba(255, 255, 255, .1); cursor: pointer; color: var(--ivory); font: 500 .875rem/1 var(--sans); }
.visor__x { position: relative; width: 18px; height: 18px; }
.visor__x::before, .visor__x::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1.5px; background: currentColor; transform: rotate(45deg); }
.visor__x::after { transform: rotate(-45deg); }
.visor__palco { margin: 0; min-height: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 0 clamp(64px, 8vw, 120px) 28px; touch-action: pan-y; }
.visor__img { max-width: 100%; max-height: calc(100% - 40px); width: auto; height: auto; object-fit: contain; border-radius: 14px; transition: opacity .35s var(--ease); }
.visor__img.carregando { opacity: .25; }
.visor__legenda { margin-top: 14px; font-size: .875rem; color: var(--champanhe); min-height: 1em; }
.visor__nav { position: absolute; top: 50%; width: 52px; height: 52px; margin-top: -26px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .1); cursor: pointer; color: var(--ivory); }
.visor__nav--ant { left: max(10px, calc(var(--margem) - 26px)); }
.visor__nav--prox { right: max(10px, calc(var(--margem) - 26px)); }
.visor__nav span { position: absolute; left: 50%; top: 50%; width: 12px; height: 12px; border: solid currentColor; border-width: 1.5px 1.5px 0 0; }
.visor__nav--ant span { transform: translate(-30%, -50%) rotate(-135deg); }
.visor__nav--prox span { transform: translate(-70%, -50%) rotate(45deg); }
.visor__nav:disabled { opacity: .25; cursor: default; }
@media (hover: hover) { .visor__nav:not(:disabled):hover, .visor__fechar:hover { background: rgba(255, 255, 255, .2); } }
.visor__fechar:focus-visible, .visor__nav:focus-visible { outline-color: var(--champanhe); }

/* ═══════════════ Páginas internas ═══════════════ */
.pagina-simples, .pagina-galeria { padding: 124px var(--margem) 0; }
.pg-topo { margin: 0 0 clamp(28px, 4vw, 48px); padding: clamp(32px, 5vw, 72px) 0 0; max-width: 980px; }
.pg-topo__titulo { margin: 0 0 22px; font: 500 clamp(2.75rem, 6.4vw, 6rem)/.96 var(--sans); letter-spacing: -.055em; }
.pg-topo__titulo em { display: block; font: italic 400 1.08em/.98 var(--serif); letter-spacing: -.02em; color: var(--ouro-escuro); }
.pg-topo__texto { margin: 0 0 28px; max-width: 48ch; font-size: 1.125rem; line-height: 1.55; color: var(--texto-2); }
.pagina-simples .hero__acoes { margin-top: 4px; }

/* Política de privacidade: sumário ao lado e texto em cartão */
.legal { display: grid; grid-template-columns: minmax(220px, 300px) minmax(0, 1fr); gap: var(--vao); align-items: start; }
.sumario { position: sticky; top: 104px; padding: 22px; border-radius: var(--r-card); background: var(--ivory); }
.sumario__titulo { margin: 0 0 10px; font-size: .8125rem; font-weight: 500; color: var(--texto-2); }
.sumario ol { list-style: none; margin: 0; padding: 0; }
.sumario a { display: grid; grid-template-columns: 30px 1fr; padding: 8px 10px; border-radius: 12px; font-size: .9375rem; line-height: 1.35; text-decoration: none; transition: background-color var(--rapido); }
.sumario a span { font: italic 400 1.05rem/1.2 var(--serif); color: var(--ouro-texto); }
@media (hover: hover) { .sumario a:hover { background: var(--fundo); } }
.texto-legal { padding: clamp(24px, 4vw, 56px); border-radius: var(--r-card); background: var(--ivory); }
.texto-legal section { padding: 26px 0; border-bottom: 1px solid var(--linha); }
.texto-legal section:first-child { padding-top: 0; }
.texto-legal h2 { display: grid; grid-template-columns: 48px 1fr; align-items: baseline; margin: 0 0 12px; font: 500 1.5rem/1.2 var(--sans); letter-spacing: -.03em; scroll-margin-top: 110px; }
.texto-legal__n { font: italic 400 1.3rem/1 var(--serif); color: var(--ouro-texto); }
.texto-legal section > :not(h2) { margin-left: 48px; }
.texto-legal p, .texto-legal li { font-size: 1rem; line-height: 1.7; color: var(--texto-2); }
.texto-legal p { margin: 0 0 12px; }
.texto-legal ul { margin: 0 0 12px; padding-left: 20px; }
.texto-legal li { margin-bottom: 6px; }
.texto-legal li::marker { color: var(--ouro); }
.texto-legal a { color: var(--espresso); }
.texto-legal__data { margin: 24px 0 0 !important; font-size: .875rem !important; }
.separador { display: flex; align-items: center; gap: 16px; margin: 36px 0 0; }
.separador span { flex: 1; height: 1px; background: var(--linha); }
.separador__mono { width: 26px; height: 26px; color: var(--espresso); flex: none; }
.gal-cta .separador { max-width: 360px; margin: 0 auto 32px; }

/* 404: cartão escuro com o monograma */
.pagina-erro { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(280px, 1fr); gap: var(--vao); align-items: stretch; }
.pagina-erro .pg-topo { margin: 0; padding: clamp(32px, 5vw, 72px) clamp(24px, 4vw, 56px); border-radius: var(--r-card); background: var(--ivory); }
.pagina-erro__cartao { border-radius: var(--r-card); overflow: hidden; }
.cartao {
  position: relative; height: 100%; min-height: 360px; display: flex; flex-direction: column; justify-content: flex-end; gap: 14px;
  padding: 32px; background: radial-gradient(90% 80% at 70% 20%, #4A3B2C 0%, #2A231C 50%, var(--noite) 100%); color: #fff; overflow: hidden;
}
.cartao__mono { position: absolute; right: -10%; top: -6%; width: 80%; height: auto; color: rgba(230, 211, 174, .18); }
.cartao__mono .monograma__meio { stroke: rgba(230, 211, 174, .34); }
.cartao__marca, .cartao__fio, .cartao__rodape { display: none; }
.cartao__frase { position: relative; font: italic 400 1.6rem/1.25 var(--serif); color: var(--champanhe); }

/* Pesquisa de satisfação */
.aval .pg-topo { margin-bottom: 28px; }
.aval-form, .aval-bloco { max-width: 820px; }
.aval-form { counter-reset: pergunta; }
.aval-campo { margin: 0 0 var(--vao); padding: 26px; border: 0; border-radius: var(--r-card); background: var(--ivory); min-width: 0; }
.aval-form > fieldset.aval-campo > legend { float: left; width: 100%; }
.aval-form > fieldset.aval-campo > legend + * { clear: both; }
.aval-campo legend, .aval-campo > label { display: block; margin: 0 0 16px; padding: 0; font: 500 1.25rem/1.3 var(--sans); letter-spacing: -.025em; color: var(--espresso); }
.aval-form > .aval-campo > legend, .aval-form > .aval-campo > label { counter-increment: pergunta; }
.aval-form > .aval-campo > legend::before, .aval-form > .aval-campo > label::before { content: counter(pergunta, decimal-leading-zero); display: block; margin-bottom: 4px; font: italic 400 1.15rem/1 var(--serif); color: var(--ouro-texto); }
.aval-opcional { display: block; margin-top: 4px; font-size: .875rem; font-weight: 400; letter-spacing: 0; color: var(--texto-2); }
.aval-escala { display: flex; flex-wrap: wrap; gap: 8px; }
.aval-escala--11 { display: grid; grid-template-columns: repeat(11, minmax(0, 1fr)); }
.aval-opcao { position: relative; display: block; }
.aval-opcao input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.aval-opcao span { display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 8px 6px; border-radius: 12px; background: var(--fundo); font-size: 1rem; color: var(--espresso); transition: background-color var(--rapido), color var(--rapido); }
.aval-opcao--larga span { padding: 8px 18px; border-radius: 999px; font-size: .9375rem; }
.aval-opcao--neutra span { background: transparent; box-shadow: inset 0 0 0 1px rgba(37, 35, 31, .22); color: var(--texto-2); }
.aval-opcao input:checked + span { background: var(--espresso); color: var(--ivory); }
.aval-opcao--neutra input:checked + span { background: #DDD6CA; color: var(--espresso); box-shadow: none; }
.aval-opcao input:focus-visible + span { outline: 2px solid var(--espresso); outline-offset: 2px; }
@media (hover: hover) { .aval-opcao:hover span { background: #E3DDD2; } .aval-opcao input:checked + span, .aval-opcao:hover input:checked + span { background: var(--espresso); } }
.aval-legenda { display: flex; justify-content: space-between; gap: 12px; margin: 10px 0 0; font-size: .8125rem; color: var(--texto-2); }
.aval-campo textarea, .aval-campo input[type="text"] {
  width: 100%; padding: 14px 16px; border: 0; border-radius: var(--r-campo); background: var(--branco);
  box-shadow: inset 0 0 0 1px rgba(37, 35, 31, .16); font: 400 1rem/1.5 var(--sans); color: var(--espresso);
  transition: box-shadow var(--rapido) var(--ease);
}
.aval-campo textarea:focus, .aval-campo input[type="text"]:focus { outline: none; box-shadow: inset 0 0 0 2px var(--espresso), 0 0 0 4px rgba(165, 132, 81, .2); }
.aval-depo { margin: 0 0 var(--vao); padding: 26px; border-radius: var(--r-card); background: var(--ivory); }
.aval-depo .aval-campo { padding: 0; background: none; margin-bottom: 20px; }
.aval-depo .aval-campo > label { font-size: .9375rem; margin-bottom: 8px; }
.aval-depo .aval-campo > label::before { content: none; }
.aval-bloco__titulo { margin: 0 0 10px; font: 500 1.5rem/1.2 var(--sans); letter-spacing: -.03em; }
.aval-texto { margin: 0 0 20px; font-size: 1rem; line-height: 1.6; color: var(--texto-2); }
.aval-texto--miudo { margin-top: 18px; font-size: .875rem; }
.aval-texto a { color: var(--espresso); }
.aval-marcar { display: flex; gap: 12px; align-items: flex-start; font-size: .9375rem; line-height: 1.55; color: var(--espresso-2); cursor: pointer; }
.aval-marcar input { flex: none; width: 22px; height: 22px; margin: 1px 0 0; accent-color: var(--espresso); }
.aval-erro { margin: 8px 0 0; font-size: .9rem; color: var(--erro); }
.aval-aviso { max-width: 820px; margin: 0 0 var(--vao); padding: 16px 20px; border-radius: var(--r-medio); background: #F6E3DF; color: #5E2318; }
.aval-citacao { margin: 0 0 20px; padding: 22px; border-radius: var(--r-medio); background: var(--fundo); }
.aval-citacao p { margin: 0 0 8px; font: italic 400 1.4rem/1.35 var(--serif); }
.aval-citacao footer { font-size: .875rem; color: var(--texto-2); }
.aval-bloco { padding: 26px; border-radius: var(--r-card); background: var(--ivory); }

/* ═══════════════ Responsivo ═══════════════ */
/* Menu completo só quando cabe com folga (com a Galeria são 7 itens) */
@media (max-width: 1320px) {
  .cab__dentro:has(.cab__nav li:nth-child(7)) { grid-template-columns: 1fr auto auto; }
  .cab__nav:has(li:nth-child(7)) { display: none; }
  .cab__dentro:has(.cab__nav li:nth-child(7)) .cab__abrir { display: inline-flex; }
}
@media (max-width: 1180px) {
  .cab__dentro { grid-template-columns: 1fr auto auto; }
  .cab__nav { display: none; }
  .cab__abrir { display: inline-flex; }
}

@media (max-width: 1080px) {
  /* banner: texto na base, foto respirando acima; degradê mais forte embaixo */
  .hero { justify-content: flex-end; padding-top: 140px; padding-bottom: 112px; }
  .hero__fundo::after {
    background:
      linear-gradient(90deg, rgba(16, 13, 10, .55) 0%, rgba(16, 13, 10, .15) 60%, rgba(16, 13, 10, 0) 100%),
      linear-gradient(180deg, rgba(16, 13, 10, .62) 0%, rgba(16, 13, 10, 0) 18%, rgba(16, 13, 10, .05) 36%, rgba(16, 13, 10, .78) 58%, rgba(16, 13, 10, .94) 80%, var(--lux-preto) 100%);
  }
  .hero__mono { top: 30%; right: -6%; width: 70vw; }
  .hero__titulo { font-size: clamp(3rem, 8vw, 5.25rem); }
  .legal { grid-template-columns: 1fr; }
  .sumario { position: static; }
  .sumario ol { columns: 2; column-gap: 8px; }
  .sumario li { break-inside: avoid; }
  .pagina-erro { grid-template-columns: 1fr; }
  .cartao { min-height: 240px; }
  .gal-grade { columns: 2; }
}

/* tablet em pé: usa a versão em pé da foto do banner (a mesma do celular) */
@media (min-width: 641px) and (max-width: 1080px) and (orientation: portrait) {
  .hero__img img { object-position: var(--foco-cel, var(--foco, 50% 50%)); }
}

@media (max-width: 640px) {
  :root { --pagina: 8px; --secao: 72px; }
  .cab__dentro, .cab.rolado .cab__dentro { min-height: 72px; grid-template-columns: 1fr auto; padding: 0 20px; }
  .cab__cta { display: none; }
  .cab .assinatura__nome { font-size: 1.5rem; }
  .cab .assinatura__logo, .cab.rolado .assinatura__logo { --logo-h: 50px; }
  .menu-cel .assinatura__logo { --logo-h: 50px; }
  .rod__marca .assinatura__logo { --logo-h: 84px; }
  .cab .assinatura__linha { font-size: .5625rem; letter-spacing: .26em; }
  .menu-cel { padding-left: 20px; padding-right: 20px; }
  .menu-cel__topo { min-height: 72px; }
  .menu-cel .assinatura__nome { font-size: 1.5rem; }
  .hero { padding: 120px 20px 40px; }
  .hero__olho { gap: 12px; margin-bottom: 20px; font-size: .6875rem; letter-spacing: .26em; }
  .hero__olho::before { width: 32px; }
  .hero__titulo { font-size: clamp(2.65rem, 12vw, 3.6rem); line-height: 1; }
  .hero__texto { margin: 20px 0 28px; font-size: 1rem; line-height: 1.65; }
  .hero__acoes { flex-direction: column; gap: 10px; }
  .hero__acoes .botao { width: 100%; min-height: 56px; }
  .hero__rolar { display: none; }
  .hero .legenda-ilustrativa { top: 88px; bottom: auto; left: auto; right: 20px; padding: 5px 10px; border-radius: 999px; background: rgba(16, 13, 10, .55); color: rgba(248, 245, 239, .8); letter-spacing: .1em; }
  .hero__mono { width: 120vw; right: -40%; top: 26%; }
  .hero__img img, .exp-card__img img, .buffet__img img, .sobre__img img, .detalhe__img img, .rod__img img { object-position: var(--foco-cel, var(--foco, 50% 50%)); }
  .secao { padding-left: 16px; padding-right: 16px; }
  .secao-titulo { font-size: clamp(2.2rem, 10.6vw, 2.9rem); }
  .secao-topo { margin-bottom: 28px; }
  .secao-topo .botao { width: 100%; justify-content: space-between; }
  .pagina-simples, .pagina-galeria { padding: 96px 16px 0; }
  .sumario ol { columns: 1; }
  .texto-legal h2 { grid-template-columns: 38px 1fr; font-size: 1.3rem; }
  .texto-legal section > :not(h2) { margin-left: 0; }
  .aval-escala--11 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .aval-opcao--larga { flex: 1 1 calc(50% - 8px); }
  .aval-campo, .aval-depo { padding: 20px; }
  .gal-grade { column-gap: 8px; }
  .gal-item { margin-bottom: 8px; }
  .gal-grade--previa .gal-item:nth-child(n+7) { display: none; }   /* número par no celular */
  .gal-filtros { flex-wrap: nowrap; overflow-x: auto; margin-left: -16px; margin-right: -16px; padding: 0 16px; scrollbar-width: none; }
  .gal-filtros::-webkit-scrollbar { display: none; }
  .gal-filtro { white-space: nowrap; flex: none; }
  .visor__palco { padding: 0 0 20px; }
  .visor__nav { top: auto; bottom: max(10px, env(safe-area-inset-bottom)); margin-top: 0; }
  .visor__img { max-height: calc(100% - 96px); }
  .visor__fechar-texto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
}

/* ═══════════════ Movimento reduzido ═══════════════ */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition-duration: .01ms !important; transition-delay: 0ms !important; }
  .js .revelar, .js .revelar--imagem { opacity: 1; transform: none; clip-path: none; }
  .js .revelar--imagem img, .js .revelar .secao-titulo em { opacity: 1; transform: none; }
  [data-parallax] { transform: none !important; }
}

/* ═══════════════ Páginas internas (galeria, privacidade, avaliação, 404) ═══════════════
   Mesma identidade da página inicial: faixa escura no topo (cabeçalho por cima),
   conteúdo em marfim, títulos em Cormorant e textos em Manrope, cantos retos. */
body:has(.pagina-simples), body:has(.pagina-galeria) { background: var(--lux-marfim); }
.pagina-simples, .pagina-galeria { --r-card: 0px; --r-medio: 0px; padding: 0 var(--margem); font-family: var(--sans-lux); color: var(--lux-preto); }
.pg-topo {
  position: relative; isolation: isolate; overflow: hidden; max-width: none;
  margin: 0 calc(-1 * var(--margem)) clamp(48px, 6vw, 88px); padding: clamp(150px, 16vw, 210px) var(--margem) clamp(56px, 7vw, 96px);
  background: radial-gradient(70% 120% at 85% 0%, #3A2718 0%, var(--lux-cafe) 38%, var(--lux-preto) 100%); color: var(--lux-marfim);
}
.pg-topo::after { content: ""; position: absolute; z-index: -1; right: clamp(-60px, -2vw, 0px); bottom: -18%; width: min(36vw, 420px); aspect-ratio: 1;
  background: url('/assets/marca/emblema-chef-elo.webp') center / contain no-repeat; opacity: .09; }
.pg-topo > * { max-width: 980px; }
.pg-topo .olho { padding: 0; background: none; -webkit-backdrop-filter: none; backdrop-filter: none; margin-bottom: 26px;
  font: 600 .75rem/1.2 var(--sans-lux); letter-spacing: .28em; text-transform: uppercase; color: var(--lux-champanhe); }
.pg-topo .olho__mono { width: 22px; height: 22px; }
.pg-topo .olho__folio { color: rgba(248, 245, 239, .62); letter-spacing: .18em; }
.pg-topo__titulo { font: 500 clamp(2.8rem, 6vw, 5.5rem)/1 var(--serif-lux); letter-spacing: -.01em; color: var(--lux-marfim); text-wrap: balance; }
.pg-topo__titulo em { display: block; font: italic 500 1em/1 var(--serif-lux); letter-spacing: -.005em; color: var(--lux-champanhe); }
.pg-topo__texto { max-width: 40rem; font-size: 1.0625rem; line-height: 1.75; color: rgba(248, 245, 239, .8); }
.pg-topo .hero__acoes { flex-wrap: wrap; gap: 14px; }
.pg-topo :focus-visible { outline-color: var(--lux-champanhe); }

/* Política de privacidade */
.legal { gap: clamp(24px, 4vw, 64px); padding-bottom: clamp(24px, 4vw, 48px); }
.sumario { top: 112px; padding: 26px 0 0; background: none; border-top: 1px solid rgba(43, 28, 19, .18); }
.sumario__titulo { font: 600 .72rem/1.2 var(--sans-lux); letter-spacing: .22em; text-transform: uppercase; color: var(--ouro-texto); margin-bottom: 14px; }
.sumario a { border-radius: 0; padding: 9px 0; font-size: .9375rem; color: #3E342C; border-bottom: 1px solid rgba(43, 28, 19, .08); }
.sumario a span { font: 600 .72rem/1.6 var(--sans-lux); letter-spacing: .12em; color: var(--ouro-texto); }
@media (hover: hover) { .sumario a:hover { background: none; color: var(--lux-preto); } }
.texto-legal { padding: 0; background: none; }
.texto-legal section { border-bottom-color: rgba(43, 28, 19, .12); padding: 32px 0; }
.texto-legal h2 { font: 500 clamp(1.6rem, 2.2vw, 2rem)/1.15 var(--serif-lux); letter-spacing: 0; color: var(--lux-preto); grid-template-columns: 56px 1fr; }
.texto-legal__n { font: 600 .75rem/1 var(--sans-lux); letter-spacing: .14em; color: var(--ouro-texto); }
.texto-legal section > :not(h2) { margin-left: 56px; }
.texto-legal p, .texto-legal li { font-size: 1.0rem; line-height: 1.8; color: #4A3F35; }
.texto-legal a { color: var(--lux-preto); text-decoration-color: var(--ouro); text-underline-offset: 3px; }
.pagina-simples .separador span { background: rgba(43, 28, 19, .14); }
.separador__mono { color: var(--lux-cafe); }

/* Galeria */
.pagina-galeria .gal-filtros { margin-bottom: clamp(24px, 3vw, 40px); }
.pagina-galeria .gal-filtro { border-radius: 0; background: none; box-shadow: inset 0 -1px 0 rgba(43, 28, 19, .18); font: 600 .78rem/1 var(--sans-lux); letter-spacing: .14em; text-transform: uppercase; color: #5A4E44; padding: 0 4px; margin-right: 14px; min-height: 44px; }
.pagina-galeria .gal-filtro__n { font-weight: 500; color: var(--ouro-texto); letter-spacing: 0; }
.pagina-galeria .gal-filtro[aria-pressed="true"] { background: none; color: var(--lux-preto); box-shadow: inset 0 -2px 0 var(--ouro); }
.pagina-galeria .gal-filtro[aria-pressed="true"] .gal-filtro__n { color: var(--ouro-texto); }
@media (hover: hover) { .pagina-galeria .gal-filtro:hover, .pagina-galeria .gal-filtro[aria-pressed="true"]:hover { background: none; color: var(--lux-preto); } }
.pagina-galeria .gal-grade { column-gap: clamp(12px, 1.4vw, 20px); }
.pagina-galeria .gal-item { margin-bottom: clamp(12px, 1.4vw, 20px); }
.pagina-galeria .gal-item__link { border-radius: 0; background: #E9E1D4; }
.gal-cta { border-radius: 0; background: none; border-top: 1px solid rgba(43, 28, 19, .14); padding: clamp(56px, 7vw, 96px) 0 0; margin-top: clamp(56px, 7vw, 96px); }
.gal-cta .secao-titulo { font: 500 clamp(2.2rem, 4vw, 3.6rem)/1.05 var(--serif-lux); letter-spacing: -.005em; color: var(--lux-preto); }
.gal-cta .secao-titulo em { font: italic 500 1em/1.05 var(--serif-lux); color: var(--ouro-escuro); }
.visor__img { border-radius: 0; }

/* 404 */
.pagina-erro { display: block; }
.pagina-erro .pg-topo { margin: 0 calc(-1 * var(--margem)); min-height: 78vh; display: flex; flex-direction: column; justify-content: center; border-radius: 0;
  background: radial-gradient(70% 120% at 85% 0%, #3A2718 0%, var(--lux-cafe) 38%, var(--lux-preto) 100%); padding: clamp(150px, 16vw, 210px) var(--margem) clamp(56px, 7vw, 96px); }
.pagina-erro .pg-topo::after { opacity: .12; bottom: 8%; }
body:has(.pagina-erro) .rod { margin-top: 0 !important; }

/* Pesquisa de satisfação */
.aval .pg-topo { margin-bottom: clamp(40px, 5vw, 64px); }
.aval-campo, .aval-depo { border-radius: 0; background: #FFFDF9; box-shadow: inset 0 0 0 1px rgba(43, 28, 19, .1); }
.aval-campo legend, .aval-campo > label, .aval-bloco__titulo { font: 500 1.45rem/1.25 var(--serif-lux); letter-spacing: 0; color: var(--lux-preto); }
.aval-form > .aval-campo > legend::before, .aval-form > .aval-campo > label::before { font: 600 .72rem/1 var(--sans-lux); letter-spacing: .16em; margin-bottom: 10px; }
.aval-opcao span { border-radius: 0; background: var(--lux-marfim); box-shadow: inset 0 0 0 1px rgba(43, 28, 19, .16); }
.aval-opcao input:checked + span, .aval-opcao--neutra input:checked + span { background: var(--lux-preto); color: var(--lux-marfim); box-shadow: none; }
@media (hover: hover) { .aval-opcao:hover span { background: #EFE6D6; } .aval-opcao input:checked + span, .aval-opcao:hover input:checked + span { background: var(--lux-preto); } }
.aval-citacao { border-radius: 0; background: #FFFDF9; box-shadow: inset 0 0 0 1px rgba(43, 28, 19, .1); }
.aval-citacao p { font-family: var(--serif-lux); }

@media (max-width: 640px) {
  .pagina-simples, .pagina-galeria { padding: 0 20px; }
  .pg-topo { margin: 0 -20px 48px; padding: 128px 20px 52px; }
  .pagina-erro .pg-topo { margin: 0 -20px; min-height: 0; padding: 128px 20px 64px; }
  .pg-topo::after { width: 60vw; right: -18vw; }
  .pg-topo .hero__acoes .botao { width: 100%; }
  .texto-legal h2 { grid-template-columns: 40px 1fr; }
  .texto-legal section > :not(h2) { margin-left: 0; }
  .pagina-galeria .gal-filtro { margin-right: 10px; }
}
.pg-topo:last-child { margin-bottom: 0; }
/* logo oficial (versão vertical) no rodapé: maior, para o nome ficar legível */
.rod__marca .assinatura__logo { --logo-h: 170px; }
@media (max-width: 640px) { .rod__marca .assinatura__logo { --logo-h: 150px; } }
/* logo deitado no cabeçalho e no menu do celular */
.cab .assinatura__logo { --logo-h: 76px; }
.cab.rolado .assinatura__logo { --logo-h: 62px; }
@media (max-width: 640px) { .cab .assinatura__logo, .cab.rolado .assinatura__logo, .menu-cel .assinatura__logo { --logo-h: 54px; } }

/* ═══════════════ Área do cliente (public_html/cliente/) ═══════════════ */
.area-cli { padding-bottom: clamp(56px, 7vw, 104px); }
.area-cli .pg-topo { margin-bottom: clamp(40px, 5vw, 64px); }
.rod__legal a + a { margin-left: 14px; }
.botao--largo { width: 100%; justify-content: center; }

/* Entrada: confirmar os 4 dígitos */
.area-cli__entrar { max-width: 520px; padding: clamp(24px, 3vw, 36px); background: #FFFDF9; box-shadow: inset 0 0 0 1px rgba(43, 28, 19, .1); }
.area-cli__entrar .aval-aviso { margin-bottom: 20px; }
.area-cli__rotulo { display: block; margin: 0 0 6px; font: 500 1.45rem/1.25 var(--serif-lux); color: var(--lux-preto); }
.area-cli__dica { margin: 0 0 18px; font-size: .9375rem; line-height: 1.6; color: #5A4E44; }
.area-cli__digitos { display: block; width: 100%; max-width: 220px; margin: 0 0 22px; padding: 14px 18px; border: 0; border-radius: 0;
  background: var(--lux-marfim); box-shadow: inset 0 0 0 1px rgba(43, 28, 19, .22);
  font: 500 1.75rem/1 var(--sans-lux); letter-spacing: .5em; color: var(--lux-preto); }
.area-cli__digitos:focus { outline: none; box-shadow: inset 0 0 0 2px var(--lux-preto), 0 0 0 4px rgba(165, 132, 81, .25); }
.area-cli__digitos[aria-invalid="true"] { box-shadow: inset 0 0 0 2px var(--erro); }
.area-cli__digitos:disabled, .area-cli__entrar .botao:disabled { opacity: .55; cursor: not-allowed; }

/* Início */
.area-cli__grade { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: clamp(28px, 4vw, 64px); align-items: start; }
.area-cli__bloco + .area-cli__bloco { margin-top: clamp(48px, 6vw, 80px); }
.area-cli__titulo { margin: 0 0 22px; padding-bottom: 14px; border-bottom: 1px solid rgba(43, 28, 19, .14);
  font: 500 clamp(1.8rem, 2.6vw, 2.4rem)/1.1 var(--serif-lux); color: var(--lux-preto); }
.area-cli__titulo--pequeno { margin-bottom: 12px; padding-bottom: 0; border: 0; font-size: 1.5rem; }
.area-cli__subtitulo { margin: 36px 0 12px; font: 600 .75rem/1.2 var(--sans-lux); letter-spacing: .22em; text-transform: uppercase; color: var(--ouro-texto); }
.area-cli__vazio { margin: 0; padding: 26px; background: #FFFDF9; box-shadow: inset 0 0 0 1px rgba(43, 28, 19, .1); font-size: 1rem; line-height: 1.6; color: #5A4E44; }
.area-cli__nota { margin: 18px 0 0; max-width: 60ch; font: italic 500 1.15rem/1.5 var(--serif-lux); color: #4A3F35; }
.area-cli__eventos, .area-cli__propostas, .area-cli__lista { margin: 0; padding: 0; list-style: none; }
.area-cli__eventos, .area-cli__propostas { display: grid; gap: 14px; }

.ac-evento { display: grid; grid-template-columns: 116px minmax(0, 1fr); background: #FFFDF9; box-shadow: inset 0 0 0 1px rgba(43, 28, 19, .1); }
.ac-evento__data { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; margin: 0; padding: 20px 10px;
  background: radial-gradient(120% 120% at 80% 0%, #3A2718 0%, var(--lux-cafe) 45%, var(--lux-preto) 100%); color: var(--lux-marfim); }
.ac-evento__dia { font: 500 3rem/1 var(--serif-lux); color: var(--lux-champanhe); }
.ac-evento__mes { font: 600 .72rem/1 var(--sans-lux); letter-spacing: .18em; text-transform: uppercase; }
.ac-evento__corpo { padding: 22px clamp(18px, 2.4vw, 28px); }
.ac-evento__nome, .ac-proposta__nome { margin: 0 0 8px; font: 500 1.5rem/1.2 var(--serif-lux); color: var(--lux-preto); }

.ac-selo { display: inline-block; margin: 0 0 16px; padding: 6px 12px; font: 600 .72rem/1.2 var(--sans-lux); letter-spacing: .1em; text-transform: uppercase;
  background: #F1E8D8; color: #5B4526; }
.ac-selo--confirmado, .ac-selo--aprovada { background: #E3EAD9; color: #2F4A22; }
.ac-selo--reservado { background: #EFE3CB; color: #5B4526; }
.ac-selo--realizado, .ac-selo--vencida { background: #ECE7DF; color: #4F4740; }

.ac-dados { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 24px; margin: 0; }
.ac-dados dt { margin: 0 0 3px; font: 600 .7rem/1.2 var(--sans-lux); letter-spacing: .16em; text-transform: uppercase; color: var(--ouro-texto); }
.ac-dados dd { margin: 0; font-size: .9875rem; line-height: 1.5; color: #3E342C; overflow-wrap: anywhere; }

.ac-proposta { padding: 22px clamp(18px, 2.4vw, 28px); background: #FFFDF9; box-shadow: inset 0 0 0 1px rgba(43, 28, 19, .1); }
.ac-proposta__topo { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 16px; align-items: flex-start; }
.ac-proposta__topo .ac-selo { margin-bottom: 10px; }
.ac-proposta__num { display: block; margin-top: 4px; font: 500 .8125rem/1.3 var(--sans-lux); letter-spacing: .02em; color: #5A4E44; }
.ac-proposta__valor { margin: 4px 0 18px; font: 500 2rem/1.1 var(--serif-lux); color: var(--lux-cafe); }

.area-cli__lista li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 16px; padding: 14px 0; border-bottom: 1px solid rgba(43, 28, 19, .1); font-size: 1rem; color: #3E342C; }
.area-cli__lista-info { color: #5A4E44; font-size: .9375rem; }

.area-cli__lateral { position: sticky; top: 112px; display: grid; gap: 18px; }
.area-cli__cartao { padding: 26px; background: var(--lux-cafe); color: rgba(248, 245, 239, .85); }
.area-cli__cartao .area-cli__titulo { color: var(--lux-marfim); }
.area-cli__cartao p { margin: 0 0 20px; font-size: .9875rem; line-height: 1.65; }
.area-cli__cartao :focus-visible { outline-color: var(--lux-champanhe); }
.area-cli__sair { margin: 0; }
.area-cli__lateral .area-cli__dica { margin: 0; font-size: .875rem; }

@media (max-width: 980px) {
  .area-cli__grade { grid-template-columns: 1fr; }
  .area-cli__lateral { position: static; }
}
@media (max-width: 520px) {
  .ac-evento { grid-template-columns: 1fr; }
  .ac-evento__data { flex-direction: row; justify-content: flex-start; gap: 12px; padding: 14px 18px; }
  .ac-evento__dia { font-size: 2.2rem; }
  .ac-dados { grid-template-columns: 1fr; }
}

/* Área do cliente · etapa 2 (documentos e pagamentos) */
.ac-acoes { display: flex; flex-wrap: wrap; gap: 10px 22px; margin: 20px 0 0; padding-top: 16px; border-top: 1px solid rgba(43, 28, 19, .1); }
.ac-baixar { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font: 600 .875rem/1.2 var(--sans-lux); color: var(--lux-cafe);
  text-decoration: underline; text-decoration-color: var(--ouro); text-underline-offset: 4px; }
.ac-baixar::before { content: ""; width: 14px; height: 14px; flex: none; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 2v8M4.5 6.5 8 10l3.5-3.5M3 13h10' fill='none' stroke='black' stroke-width='1.5'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 2v8M4.5 6.5 8 10l3.5-3.5M3 13h10' fill='none' stroke='black' stroke-width='1.5'/%3E%3C/svg%3E") center / contain no-repeat; }
@media (hover: hover) { .ac-baixar:hover { color: var(--lux-preto); text-decoration-color: var(--lux-preto); } }
.area-cli__dica--abaixo { margin: 14px 0 0; max-width: 62ch; }
.ac-totais { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 0 0 14px; }
.ac-totais div { padding: 20px 22px; background: #FFFDF9; box-shadow: inset 0 0 0 1px rgba(43, 28, 19, .1); }
.ac-totais dt { margin: 0 0 6px; font: 600 .7rem/1.2 var(--sans-lux); letter-spacing: .16em; text-transform: uppercase; color: var(--ouro-texto); }
.ac-totais dd { margin: 0; font: 500 1.9rem/1.1 var(--serif-lux); color: var(--lux-cafe); }
.ac-pagamentos { margin: 0; padding: 0; list-style: none; background: #FFFDF9; box-shadow: inset 0 0 0 1px rgba(43, 28, 19, .1); }
.ac-pagamento { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 20px; align-items: center; padding: 18px 22px; }
.ac-pagamento + .ac-pagamento { border-top: 1px solid rgba(43, 28, 19, .1); }
.ac-pagamento__desc { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; min-width: 0; }
.ac-pagamento__nome { font-size: 1rem; line-height: 1.45; color: #3E342C; overflow-wrap: anywhere; }
.ac-pagamento .ac-selo { margin: 0; }
.ac-pagamento__valor { font: 500 1.35rem/1.1 var(--serif-lux); color: var(--lux-preto); text-align: right; white-space: nowrap; }
.ac-pagamento__recibo { grid-column: 1 / -1; min-height: 32px; }
@media (max-width: 520px) {
  .ac-totais { grid-template-columns: 1fr; }
  .ac-pagamento { grid-template-columns: 1fr; }
  .ac-pagamento__valor { text-align: left; }
}

/* ═══════════════ Hero premium: botão dourado, selos, frase manuscrita e ramos ═══════════════ */
.botao--ouro {
  position: relative; isolation: isolate; overflow: hidden; color: #1A120A;
  background: linear-gradient(135deg, #F7E3AE 0%, #E6C47D 22%, #CFA257 48%, #B0823A 72%, #D9B46C 88%, #F2D99B 100%);
  background-size: 160% 160%; background-position: 0% 50%;
  box-shadow: inset 0 1px 0 rgba(255, 248, 225, .8), inset 0 -2px 8px rgba(110, 72, 24, .35), 0 0 0 1px rgba(255, 228, 165, .45), 0 12px 30px -14px rgba(214, 166, 86, .85);
  text-shadow: 0 1px 0 rgba(255, 240, 200, .35);
  transition: background-position .6s var(--ease), transform var(--rapido) var(--ease), box-shadow var(--medio) var(--ease);
}
.botao--ouro::after {   /* reflexo que atravessa o botão */
  content: ""; position: absolute; z-index: -1; top: -20%; bottom: -20%; left: -60%; width: 40%;
  background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .55), transparent); transform: skewX(-18deg);
  transition: left .8s var(--ease);
}
@media (hover: hover) {
  .botao--ouro:hover { background: linear-gradient(135deg, #F7E3AE 0%, #E6C47D 22%, #CFA257 48%, #B0823A 72%, #D9B46C 88%, #F2D99B 100%); background-size: 160% 160%; background-position: 100% 50%; transform: translateY(-2px);
    box-shadow: inset 0 1px 0 rgba(255, 248, 225, .85), inset 0 -2px 8px rgba(110, 72, 24, .3), 0 0 0 1px rgba(255, 228, 165, .6), 0 18px 40px -14px rgba(224, 176, 92, .95); }
  .botao--ouro:hover::after { left: 125%; }
}
@media (prefers-reduced-motion: reduce) { .botao--ouro::after { display: none; } }
.botao__icone { width: 18px; height: 18px; flex: none; margin-right: -2px; }
.botao--pequeno .botao__icone { width: 16px; height: 16px; }
.botao--escuro .botao__icone { color: var(--lux-champanhe); }
.botao__circulo { display: inline-grid; place-items: center; width: 28px; height: 28px; margin-right: -10px; border-radius: 50%; box-shadow: inset 0 0 0 1px currentColor; }
.botao__circulo svg { width: 16px; height: 16px; }
.icone-linha { display: block; width: 100%; height: 100%; }

/* Logo maior e legível no cabeçalho (versão deitada) */
.cab .assinatura--horizontal .assinatura__logo { --logo-h: 84px; }
.cab.rolado .assinatura--horizontal .assinatura__logo { --logo-h: 66px; }
@media (max-width: 640px) { .cab .assinatura--horizontal .assinatura__logo, .cab.rolado .assinatura--horizontal .assinatura__logo { --logo-h: 58px; } }

/* Selos abaixo dos botões */
.hero__selos { display: flex; flex-wrap: wrap; margin: 56px 0 0; padding: 0; list-style: none; }
.hero__selos li { display: flex; flex-direction: column; align-items: center; gap: 12px; min-width: 128px; padding: 0 22px; text-align: center;
  font: 500 .875rem/1.35 var(--sans-lux); color: rgba(248, 245, 239, .9); }
.hero__selos li:first-child { padding-left: 0; }
.hero__selos li + li { box-shadow: inset 1px 0 0 rgba(217, 183, 119, .35); }
.hero__selos svg { width: 34px; height: 34px; color: var(--lux-champanhe); }
.hero__selos span { max-width: 9.5em; }

/* Frase manuscrita no canto direito */
.hero__frase { position: absolute; z-index: 1; top: clamp(130px, 17vh, 200px); right: clamp(40px, 7vw, 140px); margin: 0; text-align: center;
  font: 400 clamp(2rem, 2.5vw, 2.75rem)/1.08 'Parisienne', var(--serif-lux); color: var(--lux-champanhe);
  transform: rotate(-9deg); text-shadow: 0 2px 18px rgba(0, 0, 0, .55); pointer-events: none; }
.hero__frase span { display: block; }
.hero__frase-traco { display: block; width: 72%; height: 18px; margin: 4px 0 0 auto; color: var(--lux-champanhe); opacity: .85; }

/* Ramos dourados em traço fino */
.hero { isolation: isolate; }
.hero__ramo { position: absolute; z-index: 0; width: clamp(150px, 15vw, 250px); height: auto; opacity: .5; pointer-events: none; }
.hero__ramo--topo { top: -24px; left: -56px; transform: scaleY(-1) rotate(-8deg); }
.hero__ramo--base { bottom: -64px; left: -54px; }
.hero__ramo--direita { bottom: -64px; right: -50px; transform: scaleX(-1); }
.hero__conteudo { z-index: 1; }

/* Role para descobrir com o mouse */
.hero__rolar { align-items: center; }
.hero__rolar-mouse { display: block; width: 24px; height: 24px; color: var(--lux-champanhe); }

.js .hero__selos { animation: subirPouco 1s var(--ease-saida) 1.15s both; }
.js .hero__frase { animation: surgir 1.4s var(--ease) 1.3s both; }
.js .hero__ramo { animation: surgir 1.6s var(--ease) .8s both; }

@media (max-width: 1180px) { .hero__frase { display: none; } }
@media (max-width: 640px) {
  .hero__selos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 0; margin-top: 32px; }
  .hero__selos li { min-width: 0; padding: 0 10px; font-size: .8125rem; }
  .hero__selos li:nth-child(odd) { padding-left: 0; box-shadow: none; }
  .hero__selos li + li:nth-child(even) { box-shadow: inset 1px 0 0 rgba(217, 183, 119, .35); }
  .hero__selos svg { width: 28px; height: 28px; }
  .hero__ramo { width: 130px; opacity: .35; }
  .hero__ramo--topo { display: none; }
}
@media (min-width: 641px) { .hero__rolar { right: calc(var(--margem) + clamp(70px, 7vw, 130px)); } }

/* ═══════════════ Rodapé premium (arte preta e dourada da marca em camadas) ═══════════════
   Peças recortadas da arte original: assets/marca/rodape/ (brilho do canto, onda, folhas,
   linhas da faixa e brilho inferior). Textos, links e ícones são HTML por cima. */
.rod__corpo { position: relative; isolation: isolate; overflow: hidden;
  background: radial-gradient(60% 90% at 0% 0%, rgba(87, 56, 25, .35), rgba(10, 6, 2, 0) 60%), #0A0602; }
.rod__deco { position: absolute; z-index: -1; display: block; height: auto; pointer-events: none; user-select: none; }
.rod__deco--brilho { top: 0; left: 0; width: min(62vw, 900px);
  -webkit-mask: linear-gradient(90deg, #000 55%, transparent), linear-gradient(180deg, #000 55%, transparent); -webkit-mask-composite: source-in;
          mask: linear-gradient(90deg, #000 55%, transparent) intersect, linear-gradient(180deg, #000 55%, transparent); }
.rod__deco--folhas { right: 0; bottom: 0; height: min(100%, 452px); width: auto;
  -webkit-mask: linear-gradient(90deg, transparent, #000 22%); mask: linear-gradient(90deg, transparent, #000 22%); }
.rod__deco--onda { left: 0; bottom: 0; width: clamp(150px, 15vw, 330px); }

.rod__corpo .rod__grade { position: relative; display: grid; grid-template-columns: minmax(260px, 1fr) minmax(200px, 1.25fr); gap: 48px clamp(32px, 6vw, 120px);
  max-width: 1500px; margin: 0 auto; padding: clamp(72px, 7vw, 104px) var(--margem) clamp(64px, 6vw, 96px) calc(var(--margem) + clamp(0px, 5vw, 110px)); }
.rod__corpo .rod__grade--3 { grid-template-columns: minmax(260px, 1fr) minmax(180px, .9fr) minmax(180px, .9fr); }
.rod__corpo .rod__marca .assinatura__logo { --logo-h: clamp(170px, 14vw, 220px); filter: drop-shadow(0 6px 24px rgba(217, 170, 90, .18)); }
.rod__traco { display: block; width: 46px; height: 2px; margin: 30px 0 22px; background: linear-gradient(90deg, #E9CB8A, #B0823A); }
.rod__corpo .rod__marca p { margin: 0; max-width: 23ch; font: 400 1.0625rem/1.75 var(--sans-lux); letter-spacing: .045em; color: rgba(248, 245, 239, .8); }
.rod__corpo .rod__col h3 { margin: 6px 0 0; font: 600 .8125rem/1.2 var(--sans-lux); letter-spacing: .3em; color: #D9B777; }
.rod__corpo .rod__col h3::after { content: ""; display: block; width: 40px; height: 2px; margin: 16px 0 24px; background: linear-gradient(90deg, #E9CB8A, #B0823A); }
.rod__corpo .rod__col ul { gap: 14px; font-size: 1.125rem; color: rgba(248, 245, 239, .9); }
.rod__corpo .rod__col a { transition: color .25s var(--ease), background-size .35s var(--ease-saida); }
.rod__corpo .rod__col a:hover { color: #F0D69B; }

/* Faixa com as linhas douradas da arte */
.rod__faixa { position: relative; z-index: 1;
  background: url('/assets/marca/rodape/rodape-linha-topo.webp') top center / 100% 30px no-repeat,
              url('/assets/marca/rodape/rodape-linha-base.webp') bottom center / 100% 30px no-repeat,
              linear-gradient(90deg, #0E0700 0%, #080400 45%, #060300 100%); }
.rod__faixa-dentro { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 14px 0;
  max-width: 1500px; margin: 0 auto; padding: 34px var(--margem) 32px; }
.rod__faixa-dentro > * { margin: 0; padding: 4px clamp(18px, 2.4vw, 44px); }
.rod__faixa-dentro > * + * { box-shadow: inset 1px 0 0 rgba(217, 183, 119, .5); }
.rod__faixa .rod__frase { font: italic 500 clamp(1.15rem, 1.5vw, 1.45rem)/1.3 var(--serif-lux); color: #E3C88E; padding-left: 0; }
.rod__sociais { display: flex; gap: 14px; list-style: none; }
.rod__sociais a { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; color: #D9B777;
  box-shadow: inset 0 0 0 1.2px rgba(217, 183, 119, .85); transition: color .25s var(--ease), box-shadow .25s var(--ease), transform .25s var(--ease); }
.rod__sociais svg { width: 21px; height: 21px; }
.rod__sociais a:hover { color: #F6DFA6; transform: translateY(-1px); box-shadow: inset 0 0 0 1.2px #F0D69B, 0 0 18px rgba(233, 196, 120, .45); }
.rod__copia { font-size: .875rem; color: rgba(230, 210, 170, .78); }
.rod__faixa .rod__legal { display: flex; gap: 26px; font-size: .875rem; padding-right: 0; }
.rod__faixa .rod__legal a { margin: 0; color: rgba(248, 245, 239, .88); text-decoration: none;
  background: linear-gradient(90deg, #D9B777, #B0823A) 0 100% / 100% 1px no-repeat; padding-bottom: 3px; transition: color .25s var(--ease), background-size .3s var(--ease); }
.rod__faixa .rod__legal a:hover { color: #F0D69B; background-image: linear-gradient(90deg, #F0D69B, #D9B777); }
.rod__faixa :focus-visible, .rod__corpo :focus-visible { outline: 2px solid #F0D69B; outline-offset: 4px; }
.rod__brilho { height: clamp(48px, 6.5vw, 120px); background: url('/assets/marca/rodape/rodape-brilho.webp') top center / 100% 100% no-repeat #120A03; }

@media (max-width: 1080px) {
  .rod__corpo .rod__grade, .rod__corpo .rod__grade--3 { grid-template-columns: 1fr 1fr; padding-left: var(--margem); }
  .rod__corpo .rod__marca { grid-column: 1 / -1; }
  .rod__deco--folhas { height: 70%; opacity: .8; }
  .rod__faixa-dentro > * + * { box-shadow: none; }
}
@media (max-width: 760px) {
  .rod__corpo .rod__grade, .rod__corpo .rod__grade--3 { grid-template-columns: 1fr; justify-items: center; text-align: center; padding: 64px 24px 72px; gap: 44px; }
  .rod__corpo .rod__marca { display: flex; flex-direction: column; align-items: center; }
  .rod__corpo .rod__marca .assinatura { align-items: center; }
  .rod__corpo .rod__marca .assinatura__logo { --logo-h: 160px; }
  .rod__corpo .rod__col h3::after { margin-left: auto; margin-right: auto; }
  .rod__corpo .rod__col ul { justify-items: center; }
  .rod__deco--folhas { height: 46%; top: 0; bottom: auto; opacity: .55; }
  .rod__deco--brilho { width: 90vw; }
  .rod__deco--onda { width: 130px; }
  .rod__faixa-dentro { flex-direction: column; padding: 36px 24px 34px; gap: 18px; text-align: center; }
  .rod__faixa-dentro > * { padding: 0; }
  .rod__faixa-dentro > * + * { padding-top: 18px; box-shadow: none; background: linear-gradient(90deg, #D9B777, #B0823A) top center / 36px 1px no-repeat; }
  .rod__faixa .rod__legal { justify-content: center; flex-wrap: wrap; gap: 10px 22px; }
  .rod__brilho { height: 96px; }   /* espaço para o botão flutuante do WhatsApp */
}

/* Rodapé: bordas das peças da arte se dissolvem no fundo (sem "caixas" visíveis) */
.rod__deco--brilho {
  -webkit-mask-image: linear-gradient(90deg, #000 45%, transparent), linear-gradient(180deg, #000 45%, transparent); -webkit-mask-composite: source-in;
          mask-image: linear-gradient(90deg, #000 45%, transparent), linear-gradient(180deg, #000 45%, transparent); mask-composite: intersect; }
.rod__deco--folhas {
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 30%), linear-gradient(180deg, transparent, #000 18%); -webkit-mask-composite: source-in;
          mask-image: linear-gradient(90deg, transparent, #000 30%), linear-gradient(180deg, transparent, #000 18%); mask-composite: intersect; }
.rod__deco--onda {
  -webkit-mask-image: linear-gradient(90deg, #000 60%, transparent), linear-gradient(180deg, transparent, #000 35%); -webkit-mask-composite: source-in;
          mask-image: linear-gradient(90deg, #000 60%, transparent), linear-gradient(180deg, transparent, #000 35%); mask-composite: intersect; }
.rod__corpo .rod__col .rod__rotulo { margin-bottom: 2px; font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: rgba(217, 183, 119, .8); }

/* Botão flutuante do WhatsApp (dourado, discreto) */
.wa-flutuante { gap: 12px; min-height: 56px; padding: 0 22px 0 8px; color: #F8F5EF; background: rgba(12, 8, 4, .92);
  box-shadow: inset 0 0 0 1px rgba(217, 183, 119, .55), 0 18px 40px -16px rgba(0, 0, 0, .65), 0 0 0 0 rgba(217, 183, 119, .0); }
.wa-flutuante svg { box-sizing: content-box; width: 22px; height: 22px; padding: 9px; border-radius: 50%; color: #1A120A;
  background: linear-gradient(135deg, #F7E3AE 0%, #E2BD73 35%, #BE8F45 75%, #E6C78A 100%);
  box-shadow: inset 0 1px 0 rgba(255, 248, 225, .8), 0 4px 14px -4px rgba(224, 176, 92, .8); }
@media (hover: hover) { .wa-flutuante:hover { background: #1A110A; box-shadow: inset 0 0 0 1px #E9CB8A, 0 18px 40px -16px rgba(0, 0, 0, .65), 0 0 22px rgba(233, 196, 120, .35); } }
.wa-flutuante:focus-visible { outline: 2px solid #F0D69B; outline-offset: 3px; }
@media (max-width: 640px) {
  .wa-flutuante { width: 60px; height: 60px; padding: 0; background: transparent; box-shadow: 0 14px 30px -12px rgba(0, 0, 0, .6); }
  .wa-flutuante svg { width: 26px; height: 26px; padding: 17px; }
}
@media (min-width: 1081px) {
  .rod__corpo .rod__grade--3 { padding-right: calc(var(--margem) + clamp(120px, 20vw, 400px)); max-width: 1700px; }
}
@media (max-width: 760px) {
  .rod__deco--folhas { height: 300px; opacity: .3;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 30%), linear-gradient(180deg, #000 55%, transparent); -webkit-mask-composite: source-in;
            mask-image: linear-gradient(90deg, transparent, #000 30%), linear-gradient(180deg, #000 55%, transparent); mask-composite: intersect; }
}

/* ═══════════════ Experiências: vitrine editorial (1 cartão grande + 2 empilhados) ═══════════════ */
.exp .lux-topo { align-items: center; margin-bottom: clamp(36px, 4.4vw, 64px); }
.exp .lux-titulo { color: #F5F0E8; }
.exp .lux-titulo em { color: #DDB86A; }
.exp__mosaico--3 { grid-template-columns: 54fr 46fr; grid-template-rows: repeat(2, clamp(250px, 21vw, 330px)); grid-auto-rows: auto; }
.exp__mosaico--3 .exp__item:nth-child(1) { grid-column: 1; grid-row: 1 / span 2; }
.exp__mosaico--3 .exp__item:nth-child(n+2) { grid-column: 2; }
.exp-card { box-shadow: inset 0 0 0 1px rgba(184, 138, 59, .6); transition: box-shadow .3s var(--ease); }
.exp-card::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; box-shadow: inset 0 0 0 1px rgba(184, 138, 59, .6); transition: box-shadow .3s var(--ease); }
.exp-card__foto::after { background: linear-gradient(180deg, rgba(13, 11, 9, 0) 32%, rgba(13, 11, 9, .5) 62%, rgba(13, 11, 9, .9) 100%); }
.exp-card__foto::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(13, 11, 9, 0) 40%, rgba(13, 11, 9, .25) 100%); opacity: 0; transition: opacity .35s var(--ease); }
.exp-card__img img { transition: transform .9s var(--ease-saida); }
.exp-card__n { display: inline-flex; align-items: center; gap: 12px; color: #DDB86A; }
.exp-card__n::after { content: ""; width: 26px; height: 1px; background: currentColor; }
.exp-card__titulo { color: #F5F0E8; text-shadow: 0 2px 18px rgba(0, 0, 0, .35); }
.exp-card__texto { max-width: 34ch; color: rgba(245, 240, 232, .86); }
.exp-card__ver { gap: 12px; color: #DDB86A; }
.exp-card__seta { width: 18px; height: 18px; transition: transform .3s var(--ease); }
@media (hover: hover) {
  .exp-card:hover .exp-card__img img { transform: scale(1.035); }
  .exp-card:hover::after { box-shadow: inset 0 0 0 1px rgba(221, 184, 106, .95); }
  .exp-card:hover .exp-card__foto::before { opacity: 1; }
  .exp-card:hover .exp-card__seta { transform: translateX(4px); }
}
.exp-card:focus-visible::after { box-shadow: inset 0 0 0 2px #F0D69B; }
@media (prefers-reduced-motion: reduce) { .exp-card__img img, .exp-card__seta { transition: none; } }
@media (max-width: 1080px) {
  .exp__mosaico--3 { grid-template-columns: 1fr 1fr; grid-template-rows: none; grid-auto-rows: clamp(260px, 38vw, 360px); }
  .exp__mosaico--3 .exp__item:nth-child(1) { grid-column: 1 / -1; grid-row: auto; }
  .exp__mosaico--3 .exp__item:nth-child(n+2) { grid-column: auto; }
}
@media (max-width: 640px) {
  .exp__mosaico--3 { grid-template-columns: 1fr; grid-auto-rows: auto; }
  .exp--fotos .exp__item:nth-child(1) .exp-card { min-height: 460px; }
  .exp--fotos .exp__item:nth-child(n+2) .exp-card { min-height: 360px; }
}

/* ═══════════════ Nosso Buffet: editorial (título | diferenciais; foto + composição + citação) ═══════════════ */
.buffet--editorial { --b-preto: #15120F; --b-ouro: #967644; --b-cinza: #766D63; background: #F7F4EE; color: var(--b-preto); padding-bottom: clamp(56px, 6vw, 88px); }
.buffet--editorial .buffet__grade { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 40px clamp(40px, 7vw, 120px); align-items: start; }
.buffet--editorial .buffet__texto, .buffet--editorial .buffet__lista { grid-column: auto; grid-row: auto; }
.buffet--editorial .lux-olho { color: var(--b-ouro); }
.buffet--editorial .lux-titulo { color: var(--b-preto); max-width: 12.5em; }
.buffet--editorial .lux-titulo .quebra { display: block; }
.buffet--editorial .lux-titulo em { color: var(--b-ouro); }
.buffet--editorial .gastro__texto { max-width: 34rem; margin: 26px 0 34px; color: var(--b-cinza); }
.buffet__cta { background: var(--b-preto); color: #F7F4EE; }
.buffet__cta .botao__seta { transition: transform .3s var(--ease); }
@media (hover: hover) { .buffet__cta:hover { background: #2B211A; } .buffet__cta:hover .botao__seta { transform: translateX(4px); } }

.buffet--editorial .buffet__lista { padding-top: 6px; }
.buffet--editorial .buffet__destaques li { position: relative; display: flex; align-items: baseline; gap: 22px; padding: 22px 0; border-top: 1px solid rgba(150, 118, 68, .2);
  font: 400 clamp(1.45rem, 2vw, 1.9rem)/1.2 var(--serif-lux); color: var(--b-preto); transition: color .3s var(--ease); }
.buffet--editorial .buffet__destaques li:last-child { border-bottom: 1px solid rgba(150, 118, 68, .2); }
.buffet--editorial .buffet__destaques li::after { content: ""; position: absolute; left: 0; bottom: -1px; width: 0; height: 1px; background: var(--b-ouro); transition: width .5s var(--ease-saida); }
.buffet--editorial .buffet__n { color: var(--b-ouro); transition: color .3s var(--ease), text-shadow .3s var(--ease); }
@media (hover: hover) {
  .buffet--editorial .buffet__destaques li:hover::after { width: 100%; }
  .buffet--editorial .buffet__destaques li:hover .buffet__n { color: #B88A3B; text-shadow: 0 0 12px rgba(221, 184, 106, .55); }
}

.buffet__composicao { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 88px); align-items: center;
  margin-top: clamp(56px, 6vw, 96px); padding-top: clamp(48px, 5vw, 80px); border-top: 1px solid rgba(150, 118, 68, .2); }
.buffet__composicao--sem-foto { grid-template-columns: minmax(0, 1fr); }
.buffet--editorial .buffet__foto { grid-column: auto; grid-row: auto; margin: 0; position: relative; overflow: hidden; aspect-ratio: 3 / 2; background: #E9E1D4; }
.buffet--editorial .buffet__foto img { transition: transform 1.2s var(--ease-saida); }
@media (hover: hover) { .buffet--editorial .buffet__foto:hover img { transform: scale(1.03); } }
.buffet--editorial .buffet__cardapio { margin: 0; }
.buffet--editorial .buffet__cardapio-titulo { color: var(--b-ouro); letter-spacing: .22em; }
.buffet--editorial .buffet__categorias { margin: 0; font-size: 1.0625rem; line-height: 1.8; color: #2E2722; }
.buffet--editorial .buffet__categorias .ponto { color: var(--b-ouro); }
.buffet--editorial .gastro__poema { margin: 34px 0 0; padding: 4px 0 4px 22px; border-left: 1px solid var(--b-ouro); max-width: 46ch; }
.buffet--editorial .gastro__poema p { margin: 0; font: italic 400 clamp(1.25rem, 1.6vw, 1.45rem)/1.55 var(--serif-lux); color: #5E5248; }
.buffet--editorial .buffet__detalhes { margin-top: clamp(48px, 5vw, 80px); }

@media (max-width: 1080px) {
  .buffet--editorial .buffet__grade { grid-template-columns: 1fr; }
  .buffet__composicao { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .buffet--editorial .buffet__destaques li { padding: 18px 0; font-size: 1.45rem; }
  .buffet--editorial .buffet__cta { width: 100%; }
  .buffet__composicao { margin-top: 44px; padding-top: 40px; }
  .buffet--editorial .gastro__poema p { font-size: 1.25rem; }
}
.exp__mosaico--3 .exp__item:nth-child(n+2) .exp-card__foto::after { background: linear-gradient(180deg, rgba(13, 11, 9, .08) 0%, rgba(13, 11, 9, .55) 45%, rgba(13, 11, 9, .92) 100%); }

/* ═══════════════ Galeria da inicial: composição editorial (destaque vertical no centro) ═══════════════ */
.gal-previa--editorial { background: #F7F4EE; }
.gal-previa--editorial .lux-topo { margin-bottom: clamp(28px, 3.4vw, 48px); align-items: end; }
.gal-previa--editorial .lux-titulo { color: #15120F; }
.gal-previa--editorial .lux-titulo em { display: block; color: #967644; }
.gal-previa__todas { background: #15120F; color: #F5F0E8; }
@media (hover: hover) { .gal-previa__todas:hover { background: #2B211A; } .gal-previa__todas:hover .botao__seta { transform: translateX(4px); } }
.gal-previa__todas .botao__seta { transition: transform .3s var(--ease); }

.gal-filtros--home { display: flex; flex-wrap: wrap; gap: 4px 26px; margin: 0 0 clamp(22px, 2.4vw, 32px); padding-bottom: 2px; border-bottom: 1px solid rgba(150, 118, 68, .2); }
.gal-filtros--home .gal-filtro { min-height: 44px; padding: 0; border: 0; border-radius: 0; background: none; cursor: pointer;
  font: 600 .75rem/1 var(--sans-lux); letter-spacing: .16em; text-transform: uppercase; color: #766D63; box-shadow: inset 0 -2px 0 transparent; transition: color .25s var(--ease), box-shadow .25s var(--ease); }
.gal-filtros--home .gal-filtro[aria-pressed="true"] { color: #15120F; box-shadow: inset 0 -2px 0 #967644; }
@media (hover: hover) { .gal-filtros--home .gal-filtro:hover { color: #15120F; } }
.gal-filtros--home .gal-filtro:focus-visible { outline: 2px solid #967644; outline-offset: 4px; }

.gal-editorial { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1.08fr 1fr; grid-template-areas: "l1 c r1" "l2 c r2"; gap: clamp(12px, 1.4vw, 20px); }
.gal-editorial .gal-item { margin: 0; min-width: 0; break-inside: auto; }
.gal-editorial .gal-item[hidden], .gal-editorial:not(.filtrado) .gal-pos-extra { display: none !important; }
.gal-pos-l1 { grid-area: l1; } .gal-pos-l2 { grid-area: l2; } .gal-pos-c { grid-area: c; } .gal-pos-r1 { grid-area: r1; } .gal-pos-r2 { grid-area: r2; }
.gal-editorial .gal-item__link { position: relative; display: block; height: 100%; overflow: hidden; border-radius: 0; background: #E9E1D4; aspect-ratio: 3 / 2; }
.gal-editorial .gal-pos-c .gal-item__link { aspect-ratio: auto; }
.gal-editorial .gal-item__link img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: var(--foco, 50% 50%); transition: transform .8s var(--ease-saida); }
.gal-editorial .gal-item__link::before { content: ""; position: absolute; inset: 0; z-index: 1; background: rgba(21, 18, 15, .16); opacity: 0; transition: opacity .35s var(--ease); }
.gal-editorial .gal-item__link::after { content: ""; position: absolute; z-index: 2; left: 50%; top: 50%; width: 48px; height: 48px; margin: -24px 0 0 -24px; border-radius: 50%;
  background: rgba(21, 18, 15, .55) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F5F0E8' stroke-width='1.5' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6'/%3E%3Cpath d='M15.5 15.5 20 20M11 8.5v5M8.5 11h5'/%3E%3C/svg%3E") center / 22px no-repeat;
  box-shadow: inset 0 0 0 1px rgba(221, 184, 106, .7); opacity: 0; transform: scale(.85); transition: opacity .3s var(--ease), transform .3s var(--ease); }
@media (hover: hover) {
  .gal-editorial .gal-item__link:hover img { transform: scale(1.04); }
  .gal-editorial .gal-item__link:hover::before, .gal-editorial .gal-item__link:hover::after { opacity: 1; transform: none; }
}
.gal-editorial .gal-item__link:focus-visible { outline: 2px solid #967644; outline-offset: 3px; }
.gal-editorial .gal-item__link:focus-visible::after { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .gal-editorial .gal-item__link img { transition: none; } }
/* Filtrada (ou sem foto vertical): grade uniforme */
.gal-editorial.filtrado, .gal-editorial--simples { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-areas: none; }
.gal-editorial.filtrado .gal-item, .gal-editorial--simples .gal-item { grid-area: auto; }
.gal-editorial.filtrado .gal-item__link, .gal-editorial--simples .gal-item__link { aspect-ratio: 4 / 3; }

.gal-fecho { max-width: 640px; margin: clamp(64px, 7vw, 112px) auto 0; text-align: center; }
.gal-fecho__titulo { margin: 0 0 14px; font: 500 clamp(1.9rem, 3vw, 2.75rem)/1.12 var(--serif-lux); color: #15120F; }
.gal-fecho__titulo em { color: #967644; }
.gal-fecho__texto { margin: 0 auto 30px; max-width: 34rem; font-size: 1.0625rem; line-height: 1.7; color: #766D63; }

@media (max-width: 760px) {
  .gal-editorial { grid-template-columns: 1fr 1fr; grid-template-areas: "c c" "l1 r1" "l2 r2"; gap: 10px; }
  .gal-editorial .gal-pos-c .gal-item__link { aspect-ratio: 4 / 5; }
  .gal-editorial .gal-item__link { aspect-ratio: 1 / 1; }
  .gal-editorial.filtrado, .gal-editorial--simples { grid-template-columns: 1fr 1fr; }
  .gal-editorial.filtrado .gal-item__link, .gal-editorial--simples .gal-item__link { aspect-ratio: 1 / 1; }
  .gal-filtros--home { gap: 0 18px; overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none; }
  .gal-filtros--home .gal-filtro { white-space: nowrap; flex: none; }
  .gal-fecho .botao { width: 100%; }
}

/* Rodapé: acesso ao painel administrativo */
.rod__faixa .rod__legal .rod__adm { display: inline-flex; align-items: center; gap: 7px; background: none; padding: 5px 12px; border-radius: 999px;
  box-shadow: inset 0 0 0 1px rgba(217, 183, 119, .5); color: rgba(248, 245, 239, .8); }
.rod__adm svg { width: 14px; height: 14px; color: #D9B777; }
.rod__faixa .rod__legal .rod__adm:hover { color: #F0D69B; background: rgba(217, 183, 119, .08); box-shadow: inset 0 0 0 1px #E9CB8A; }
.gal-editorial { grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr) minmax(0, 1fr); }
.gal-editorial .gal-item__link { width: 100%; }
@media (max-width: 760px) { .gal-editorial { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.gal-editorial.filtrado, .gal-editorial--simples { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 760px) { .gal-editorial.filtrado, .gal-editorial--simples { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 761px) {
  .rod__faixa .rod__legal { flex-basis: 100%; justify-content: center; align-items: center; padding: 6px 0 0; box-shadow: none; }
}
.buffet--editorial .lux-olho, .gal-previa--editorial .lux-olho { color: var(--ouro-texto); }   /* texto pequeno: dourado mais escuro (contraste AA) */
.buffet--editorial .buffet__n { color: var(--ouro-texto); }
@media (hover: hover) { .buffet--editorial .buffet__destaques li:hover .buffet__n { color: #6B5230; text-shadow: 0 0 12px rgba(221, 184, 106, .7); } }
.buffet--editorial .buffet__cardapio-titulo { color: var(--ouro-texto); }

/* ═══════════════ Rodapé compacto ═══════════════ */
.rod__corpo .rod__grade, .rod__corpo .rod__grade--3 { grid-template-columns: auto auto auto; justify-content: space-between; align-items: start; gap: 28px 64px;
  max-width: 1240px; padding: 40px var(--margem) 34px; }
.rod__corpo .rod__grade:not(.rod__grade--3) { grid-template-columns: auto auto; justify-content: start; gap: 28px clamp(64px, 10vw, 180px); }
.rod__corpo .rod__marca { display: flex; align-items: center; gap: 22px; }
.rod__corpo .rod__marca .assinatura__logo { --logo-h: 92px; }
.rod__traco { display: none; }
.rod__corpo .rod__marca p { max-width: 22ch; padding-left: 22px; border-left: 1px solid rgba(217, 183, 119, .45); font-size: .875rem; line-height: 1.6; }
.rod__corpo .rod__col h3 { margin: 4px 0 0; font-size: .6875rem; }
.rod__corpo .rod__col h3::after { width: 28px; margin: 10px 0 12px; }
.rod__corpo .rod__nav ul { grid-template-columns: repeat(2, auto); gap: 6px 36px; font-size: .9375rem; }
.rod__corpo .rod__col ul { gap: 6px; font-size: .9375rem; }
.rod__corpo .rod__col .rod__rotulo { font-size: .6875rem; }
.rod__deco--folhas { height: 100%; }
.rod__deco--onda { width: clamp(90px, 8vw, 150px); }
.rod__deco--brilho { width: min(40vw, 560px); }
.rod__faixa-dentro { padding: 20px var(--margem) 18px; gap: 6px 0; }
.rod__faixa-dentro > * { padding: 2px clamp(14px, 1.6vw, 28px); }
.rod__faixa .rod__frase { font-size: 1.05rem; }
.rod__sociais a { width: 34px; height: 34px; }
.rod__sociais svg { width: 17px; height: 17px; }
.rod__copia, .rod__faixa .rod__legal { font-size: .8125rem; }
.rod__faixa .rod__legal { gap: 18px; }
.rod__faixa .rod__legal .rod__adm { padding: 3px 10px; }
@media (min-width: 761px) { .rod__faixa .rod__legal { padding-top: 2px; } }
.rod__brilho { height: 26px; }
@media (max-width: 1080px) {
  .rod__corpo .rod__grade, .rod__corpo .rod__grade--3, .rod__corpo .rod__grade:not(.rod__grade--3) { grid-template-columns: 1fr 1fr; justify-content: stretch; }
  .rod__corpo .rod__marca { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .rod__corpo .rod__grade, .rod__corpo .rod__grade--3, .rod__corpo .rod__grade:not(.rod__grade--3) { grid-template-columns: 1fr; padding: 36px 20px 30px; gap: 26px; }
  .rod__corpo .rod__marca { flex-direction: column; gap: 14px; }
  .rod__corpo .rod__marca .assinatura__logo { --logo-h: 84px; }
  .rod__corpo .rod__marca p { padding-left: 0; border-left: 0; }
  .rod__corpo .rod__nav ul { justify-content: center; }
  .rod__deco--folhas { height: 200px; }
  .rod__faixa-dentro { padding: 22px 20px 20px; gap: 12px; }
  .rod__faixa-dentro > * + * { padding-top: 12px; }
  .rod__brilho { height: 84px; }   /* espaço para o botão flutuante do WhatsApp */
}
@media (max-width: 760px) { .rod__corpo .rod__col h3::after { margin-left: auto; margin-right: auto; } }
/* Faixa do rodapé toda em dourado */
.rod__copia { color: #D9B777; }
.rod__faixa .rod__legal a, .rod__faixa .rod__legal .rod__adm { color: #E3C88E; }
.rod__faixa .rod__legal a:hover, .rod__faixa .rod__legal .rod__adm:hover { color: #F6DFA6; }

/* Respiro acima da logo no topo da página (ao rolar, o cabeçalho volta a ficar compacto) */
.cab:not(.rolado) .cab__dentro { padding-top: clamp(14px, 1.6vw, 26px); min-height: clamp(104px, 9vw, 124px); }
@media (max-width: 640px) { .cab:not(.rolado) .cab__dentro { padding-top: 12px; min-height: 84px; } }

/* Banner: foto mais visível (como o original), sem zoom; o texto ganha sombra suave para continuar legível */
@media (min-width: 641px) {
  .hero--foto .hero__fundo::after {
    background:
      linear-gradient(90deg, rgba(16, 13, 10, .8) 0%, rgba(16, 13, 10, .6) 24%, rgba(16, 13, 10, .28) 46%, rgba(16, 13, 10, 0) 64%),
      linear-gradient(180deg, rgba(16, 13, 10, .45) 0%, rgba(16, 13, 10, 0) 18%, rgba(16, 13, 10, 0) 62%, rgba(16, 13, 10, .62) 88%, var(--lux-preto) 100%);
  }
}
.js .hero__zoom { animation: surgir 1.2s var(--ease) both; }
.hero__olho, .hero__titulo, .hero__texto, .hero__selos li, .hero__rolar { text-shadow: 0 1px 2px rgba(10, 7, 4, .55), 0 2px 18px rgba(10, 7, 4, .55); }

/* ── Sobre nós: degradê café e cobre com a marca-d'água floral da Chef Elô ── */
.sobre {
  position: relative; overflow: hidden; isolation: isolate;
  background:
    radial-gradient(900px 520px at 12% 0%, rgba(214, 177, 106, .14), rgba(214, 177, 106, 0) 70%),
    radial-gradient(760px 620px at 100% 100%, rgba(167, 122, 66, .22), rgba(167, 122, 66, 0) 70%),
    linear-gradient(135deg, #2B170B 0%, #3E2412 48%, #2A160A 100%);
}
.sobre::before {   /* marca-d'água: símbolo floral original, bem suave, cortado pela borda direita */
  content: ""; position: absolute; z-index: -1; top: 50%; right: -7%; width: clamp(380px, 48vw, 820px); aspect-ratio: 528 / 506;
  transform: translateY(-50%); background: url('/assets/marca/simbolo-chef-elo.webp') center / contain no-repeat; opacity: .075; pointer-events: none;
}
.sobre::after {    /* fio dourado no topo da seção */
  content: ""; position: absolute; left: 8%; right: 8%; top: 0; height: 1px; pointer-events: none;
  background: linear-gradient(90deg, rgba(243, 217, 154, 0), rgba(243, 217, 154, .45), rgba(243, 217, 154, 0));
}
@media (max-width: 900px) { .sobre::before { top: auto; bottom: -6%; right: -24%; width: 92vw; transform: none; opacity: .06; } }

/* ── Sobre nós: foto como polaroide (borda branca, mais larga embaixo, leve inclinação) ── */
.sobre__foto {
  box-sizing: border-box; padding: clamp(12px, 1.2vw, 18px) clamp(12px, 1.2vw, 18px) clamp(58px, 5.4vw, 84px);
  background: #FBF8F1; border-radius: 3px; overflow: hidden; rotate: -2deg;
  box-shadow: 0 1px 0 rgba(255, 255, 255, .6) inset, 0 2px 4px rgba(0, 0, 0, .25), 0 24px 46px -18px rgba(0, 0, 0, .75);
  transition: rotate .6s var(--ease-saida, ease), box-shadow .6s;
}
.sobre__foto:hover { rotate: -.6deg; }
.sobre__foto .sobre__img { overflow: hidden; background: #E9E1D4; }
/* legenda escrita à mão na faixa branca de baixo */
.sobre__foto::after {
  content: "Chef Elô"; position: absolute; left: 0; right: 0; bottom: clamp(14px, 1.4vw, 24px); text-align: center; pointer-events: none;
  font: 400 clamp(1.5rem, 2vw, 2rem)/1 'Parisienne', var(--serif-lux, Georgia, serif); color: #5A4636;
}
/* entrada: a polaroide surge e assenta (sem o recorte, que cortaria a sombra) */
.js .sobre__foto.revelar--imagem { clip-path: none; opacity: 0; transform: translateY(28px); transition: opacity 1s var(--ease, ease), transform 1.2s var(--ease-saida, ease), rotate .6s var(--ease-saida, ease); }
.js .sobre__foto.revelar--imagem.visivel { opacity: 1; transform: none; }
@media (max-width: 900px) { .sobre__foto { rotate: -1.2deg; margin-inline: 6px; } }
@media (prefers-reduced-motion: reduce) { .sobre__foto, .sobre__foto:hover { rotate: -2deg; transition: none; } .js .sobre__foto.revelar--imagem { opacity: 1; transform: none; } }

/* ═════ Galeria premium (28/10): mosaico na inicial, legendas e visualizador ═════ */
.gal-mosaico:not(.filtrado) { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-areas: "a a b c" "a a b d" "e f g g" "e h g g";
  grid-auto-rows: clamp(168px, 16.5vw, 286px); }
.gal-pos-a { grid-area: a; } .gal-pos-b { grid-area: b; } .gal-pos-c { grid-area: c; } .gal-pos-d { grid-area: d; }
.gal-pos-e { grid-area: e; } .gal-pos-f { grid-area: f; } .gal-pos-g { grid-area: g; } .gal-pos-h { grid-area: h; }
.gal-mosaico.filtrado .gal-item { grid-area: auto; }
.gal-mosaico:not(.filtrado) .gal-item__link { aspect-ratio: auto; height: 100%; }
.gal-mosaico.filtrado { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-areas: none; }
.gal-mosaico.filtrado .gal-item__link { aspect-ratio: 4 / 5; }
/* ícone de ampliar no canto, para não disputar com a legenda */
.gal-mosaico .gal-item__link::after { left: auto; top: 16px; right: 16px; margin: 0; width: 42px; height: 42px; background-size: 19px; }
.gal-mosaico .gal-item__link::before { background: rgba(21, 18, 15, .08); }

/* Legenda sobre a foto (todas as galerias) */
.gal-item__link { position: relative; }
.gal-item__legenda { position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; display: flex; flex-direction: column; gap: 7px;
  padding: 56px clamp(16px, 1.6vw, 24px) clamp(14px, 1.4vw, 22px); background: linear-gradient(to top, rgba(18, 14, 11, .82), rgba(18, 14, 11, .38) 55%, rgba(18, 14, 11, 0));
  color: #F7F2EA; opacity: 0; transform: translateY(10px); transition: opacity .4s var(--ease), transform .5s var(--ease-saida); pointer-events: none; }
.gal-item__cat { display: flex; align-items: center; gap: 10px; font: 600 .66rem/1 var(--sans-lux); letter-spacing: .2em; text-transform: uppercase; color: #E6CD94; }
.gal-item__cat::before { content: ""; width: 22px; height: 1px; background: currentColor; }
.gal-item__texto { font: 500 clamp(1rem, 1.15vw, 1.2rem)/1.22 var(--serif-lux); letter-spacing: .005em; text-wrap: balance; }
.gal-pos-a .gal-item__texto, .gal-pos-g .gal-item__texto { font-size: clamp(1.2rem, 1.7vw, 1.65rem); }
@media (hover: hover) {
  .gal-item__link:hover .gal-item__legenda { opacity: 1; transform: none; }
}
.gal-item__link:focus-visible .gal-item__legenda { opacity: 1; transform: none; }
/* Toque (celular): os dois destaques mostram a legenda sempre */
@media (hover: none) {
  .gal-mosaico:not(.filtrado) .gal-pos-a .gal-item__legenda, .gal-mosaico:not(.filtrado) .gal-pos-g .gal-item__legenda { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) { .gal-item__legenda { transition: opacity .2s linear; transform: none; } }

/* Faixa com o total de fotos */
.gal-rodape { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px 24px;
  margin-top: clamp(18px, 2vw, 28px); padding-top: 18px; border-top: 1px solid rgba(150, 118, 68, .22); }
.gal-rodape__conta { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0 10px; margin: 0; font: 500 .74rem/1.4 var(--sans-lux); letter-spacing: .16em; text-transform: uppercase; color: #6B6158; }
.gal-rodape__n { font: 500 2rem/1 var(--serif-lux); letter-spacing: 0; color: #15120F; }
.gal-rodape__ponto { color: #967644; }
.gal-rodape__link { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font: 600 .74rem/1 var(--sans-lux); letter-spacing: .16em; text-transform: uppercase;
  color: #15120F; text-decoration: none; box-shadow: inset 0 -1px 0 rgba(150, 118, 68, .5); transition: box-shadow .3s var(--ease); }
.gal-rodape__link .botao__seta { transition: transform .3s var(--ease); }
@media (hover: hover) { .gal-rodape__link:hover { box-shadow: inset 0 -2px 0 #967644; } .gal-rodape__link:hover .botao__seta { transform: translateX(4px); } }
.gal-rodape__link:focus-visible { outline: 2px solid #967644; outline-offset: 4px; }

/* Página /galeria/: zoom suave e legenda nas fotos */
.pagina-galeria .gal-item__link img { transition: transform 1s var(--ease-saida), filter .5s var(--ease); }
@media (hover: hover) { .pagina-galeria .gal-item__link:hover img { transform: scale(1.045); filter: saturate(1.06); } }
@media (min-width: 1500px) { .pagina-galeria .gal-grade { columns: 4; } }

/* Visualizador: categoria + descrição */
.visor__legenda { display: flex; flex-direction: column; align-items: center; gap: 8px; margin-top: 16px; text-align: center; max-width: 46rem; }
.visor__cat { display: inline-flex; align-items: center; gap: 12px; font: 600 .68rem/1 var(--sans-lux); letter-spacing: .22em; text-transform: uppercase; color: #E6CD94; }
.visor__cat:not(:empty)::before, .visor__cat:not(:empty)::after { content: ""; width: 26px; height: 1px; background: rgba(230, 205, 148, .6); }
.visor__texto { font: 500 clamp(1.05rem, 1.6vw, 1.4rem)/1.3 var(--serif-lux); color: #F7F2EA; }
.visor__img { max-height: calc(100% - 70px); box-shadow: 0 30px 80px rgba(0, 0, 0, .45); }

@media (max-width: 1000px) {
  .gal-mosaico:not(.filtrado) { grid-auto-rows: clamp(150px, 21vw, 230px); }
  .gal-mosaico.filtrado { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .gal-mosaico:not(.filtrado) { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-areas: "a a" "b c" "b d" "e f" "e h" "g g"; grid-auto-rows: 44vw; }
  .gal-mosaico.filtrado { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gal-mosaico .gal-item__link::after { display: none; }
  .gal-item__legenda { padding: 40px 14px 12px; gap: 5px; }
  .gal-item__texto { font-size: 1rem; }
  .gal-pos-a .gal-item__texto, .gal-pos-g .gal-item__texto { font-size: 1.15rem; }
  .gal-rodape { justify-content: center; text-align: center; }
  .gal-rodape__conta { justify-content: center; }
  .visor__img { max-height: calc(100% - 150px); }
  .visor__texto { font-size: 1rem; padding: 0 64px; }
}
