:root {
  --salvia: #e4e8dc;
  --salvia-2: #d6dccb;
  --pinho: #1c2a22;
  --pinho-2: #2a3b30;
  --vinho: #6a1d29;
  --vinho-2: #82283a;
  --bambu: #b3955c;
  --nevoa: #f3f4ee;
  --cinza: #5b6658;
  --display: "Bodoni Moda", "Didot", Georgia, serif;
  --texto: "Hanken Grotesk", system-ui, sans-serif;
  --pad: clamp(1.25rem, 5vw, 5.5rem);
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; } }
body { margin: 0; background: var(--salvia); color: var(--pinho); font: 400 1.0625rem/1.65 var(--texto); -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
:focus-visible { outline: 2px solid var(--vinho); outline-offset: 3px; }
h1, h2, h3 { font-family: var(--display); font-weight: 400; margin: 0; line-height: 1.05; font-optical-sizing: none; font-variation-settings: "opsz" 30; }
h2 { font-size: clamp(2.2rem, 4.8vw, 3.8rem); max-width: 18ch; letter-spacing: -0.01em; }
h3 { font-size: 1.6rem; line-height: 1.15; }
p { margin: 0 0 1em; max-width: 60ch; }
.fraco { color: var(--cinza); }
.skip { position: absolute; left: -999px; top: 0; background: var(--vinho); color: #fff; padding: .6rem 1rem; z-index: 99; }
.skip:focus { left: 1rem; }

.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: .8rem 1.6rem; border-radius: 2px; font-weight: 600; text-decoration: none; transition: background .2s, color .2s, border-color .2s; }
.btn-sm { min-height: 40px; padding: .45rem 1.1rem; font-size: .95rem; }
.btn-vinho { background: var(--vinho); color: #fff; }
.btn-vinho:hover { background: var(--vinho-2); }
.btn-claro { border: 1px solid rgba(255,255,255,.55); color: #fff; }
.btn-claro:hover { border-color: #fff; background: rgba(255,255,255,.08); }

/* topo */
.top { position: absolute; inset: 0 0 auto; z-index: 20; display: flex; align-items: center; gap: 2rem; padding: 1.2rem var(--pad); color: #fff; }
.top .marca { font-family: var(--display); font-size: 1.5rem; text-decoration: none; font-style: italic; }
.top nav { display: flex; gap: 1.8rem; margin-left: auto; }
.top nav a { text-decoration: none; font-size: .95rem; opacity: .85; }
.top nav a:hover { opacity: 1; }

/* hero */
.hero { position: relative; min-height: clamp(38rem, 100svh, 60rem); display: flex; align-items: flex-end; color: #fff; overflow: hidden; background: var(--pinho); }
.hero-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 40%; }
.hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20,30,24,.6) 0, rgba(20,30,24,.15) 25%, rgba(20,30,24,.45) 55%, rgba(20,30,24,.92) 100%), linear-gradient(90deg, rgba(20,30,24,.55), transparent 65%); }
.hero-texto { position: relative; z-index: 1; padding: 0 var(--pad) clamp(3rem, 8vh, 5.5rem); width: 100%; }
.hero-lugar { font-family: var(--display); font-style: italic; font-size: 1.35rem; margin-bottom: .8rem; color: #efe6cf; }
.hero h1 { font-size: clamp(4.5rem, 14vw, 12.5rem); line-height: .9; letter-spacing: -0.02em; font-weight: 500; font-variation-settings: "opsz" 18; margin-bottom: 1.6rem; }
.hero-sub { font-size: 1.2rem; max-width: 44ch; color: rgba(255,255,255,.9); margin-bottom: 1.8rem; }
.acoes { display: flex; flex-wrap: wrap; gap: .8rem; }

/* semana */
.semana { background: var(--pinho); color: var(--nevoa); padding: 3rem var(--pad) 2.5rem; }
.semana-t { font-size: clamp(1.5rem, 2.6vw, 2.1rem); max-width: none; margin-bottom: 1.6rem; font-style: italic; }
.dias { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(7, 1fr); border-top: 1px solid rgba(243,244,238,.2); }
.dias li { padding: 1rem .9rem 0 0; display: flex; flex-direction: column; gap: .15rem; border-right: 1px solid rgba(243,244,238,.12); padding-left: .9rem; }
.dias li:first-child { padding-left: 0; }
.dias li:last-child { border-right: 0; }
.dia { font-family: var(--display); font-size: 1.5rem; }
.hora { font-weight: 600; font-size: .98rem; }
.turno { font-size: .9rem; color: var(--bambu); }
.dias .fechado { color: rgba(243,244,238,.4); }
.semana-nota { margin: 1.6rem 0 0; font-size: .92rem; color: rgba(243,244,238,.65); }

/* modos */
.modos { padding: 7rem var(--pad) 3rem; display: grid; grid-template-columns: 1fr 1.6fr; gap: 3rem; align-items: start; }
.modos-lista { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; }
.modos article { border-top: 2px solid var(--pinho); padding-top: 1.2rem; }
.modos h3 { font-size: 2rem; margin-bottom: .8rem; font-style: italic; }

/* cozinha */
.cozinha { padding: 4rem var(--pad) 7rem; }
.cozinha-cab { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 4rem; align-items: end; margin-bottom: 3rem; }
.cozinha-cab p { margin: 0; color: var(--cinza); }
.pratos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.pratos img { width: 100%; aspect-ratio: 4/5; object-fit: cover; margin-bottom: 1rem; }
.pratos h3 { margin-bottom: .4rem; }
.pratos p { color: var(--cinza); font-size: .98rem; }
.pratos li:nth-child(even) { margin-top: 3rem; }

/* noite */
.noite { background: var(--pinho); color: var(--nevoa); padding: 7rem var(--pad); }
.noite h2 { margin-bottom: 3rem; }
.noite-linha { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; position: relative; }
.noite article img { width: 100%; aspect-ratio: 3/4; object-fit: cover; margin-bottom: 1.1rem; }
.noite h3 { margin-bottom: .4rem; font-style: italic; }
.noite p { color: rgba(243,244,238,.75); font-size: .98rem; }

/* lugar */
.lugar { padding: 7rem var(--pad); }
.lugar-texto { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 4rem; align-items: end; margin-bottom: 3rem; }
.lugar-texto p { margin: 0; color: var(--cinza); }
.galeria { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 15rem; gap: .8rem; }
.galeria li { overflow: hidden; }
.galeria .g-alta { grid-column: span 2; grid-row: span 2; }
.galeria .g-larga { grid-column: span 2; }
.galeria button { all: unset; cursor: zoom-in; display: block; width: 100%; height: 100%; }
.galeria button:focus-visible { outline: 3px solid var(--vinho); outline-offset: -3px; }
.galeria img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.galeria button:hover img { transform: scale(1.03); }

/* vozes */
.vozes { background: var(--salvia-2); padding: 6rem var(--pad); }
.vozes h2 { margin-bottom: 2.5rem; }
.vozes-lista { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3rem; }
.vozes blockquote { margin: 0; border-left: 2px solid var(--vinho); padding-left: 1.3rem; }
.vozes blockquote p { font-family: var(--display); font-style: italic; font-size: 1.3rem; line-height: 1.45; }
.vozes footer { font-size: .92rem; color: var(--cinza); }
.nota-google { margin: 2.5rem 0 0; font-weight: 600; }

/* reserva */
.reserva { display: grid; grid-template-columns: 1.1fr .9fr; gap: 4rem; padding: 7rem var(--pad); align-items: center; }
.reserva h2 { margin-bottom: 1.4rem; }
.reserva .btn { margin: .6rem 0 2.4rem; }
.reserva dl { margin: 0 0 1.5rem; }
.reserva dl div { display: grid; grid-template-columns: 8rem 1fr; gap: 1rem; padding: .9rem 0; border-top: 1px solid rgba(28,42,34,.18); }
.reserva dt { font-weight: 600; }
.reserva dd { margin: 0; }
.link-mapa { font-weight: 600; color: var(--vinho); }
.reserva-foto { margin: 0; }
.reserva-foto img { width: 100%; aspect-ratio: 1/1; object-fit: cover; }
.reserva-foto figcaption { font-family: var(--display); font-style: italic; margin-top: .6rem; color: var(--cinza); }

.rodape { background: var(--pinho); color: var(--nevoa); padding: 2.5rem var(--pad) 6rem; font-size: .95rem; }
.rodape p { margin: 0 0 .4rem; }
.rodape .marca { font-family: var(--display); font-style: italic; font-size: 1.3rem; margin-right: .8rem; }
.rodape .fraco { color: rgba(243,244,238,.6); }

.zap { position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 30; width: 58px; height: 58px; border-radius: 50%; background: #25d366; color: #fff; display: grid; place-items: center; box-shadow: 0 6px 20px rgba(0,0,0,.3); }
.zap svg { width: 30px; height: 30px; }

.visor { border: 0; padding: 0; background: transparent; max-width: 100vw; max-height: 100vh; width: 100vw; height: 100vh; }
.visor::backdrop { background: rgba(18,26,21,.95); }
.visor img { max-width: 92vw; max-height: 88vh; margin: 6vh auto 0; object-fit: contain; }
.visor button { position: fixed; background: rgba(255,255,255,.12); color: #fff; border: 0; width: 52px; height: 52px; border-radius: 50%; font-size: 2rem; line-height: 1; cursor: pointer; }
.visor button:hover { background: rgba(255,255,255,.25); }
.visor-fechar { top: 1rem; right: 1rem; }
.visor-ant { left: 1rem; top: 50%; transform: translateY(-50%); }
.visor-prox { right: 1rem; top: 50%; transform: translateY(-50%); }

@media (max-width: 960px) {
  .top nav { display: none; }
  .top .btn-sm { margin-left: auto; }
  .dias { grid-template-columns: repeat(4, 1fr); row-gap: 1rem; }
  .dias li, .dias li:first-child { padding: .8rem .6rem 0; border-right: 0; }
  .modos, .modos-lista, .cozinha-cab, .lugar-texto, .reserva { grid-template-columns: 1fr; }
  .pratos, .noite-linha { grid-template-columns: 1fr 1fr; }
  .pratos li:nth-child(even) { margin-top: 0; }
  .galeria { grid-template-columns: 1fr 1fr; grid-auto-rows: 11rem; }
  .vozes-lista { grid-template-columns: 1fr; gap: 2rem; }
  .reserva dl div { grid-template-columns: 1fr; gap: .2rem; }
  .modos, .cozinha, .noite, .lugar, .vozes, .reserva { padding-top: 4.5rem; padding-bottom: 4.5rem; }
}
@media (max-width: 520px) {
  .pratos, .noite-linha { grid-template-columns: 1fr; }
  .dias { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px) { .hero h1 { font-size: 3.9rem; } }
