:root {
  --brasa-cream: #fffaf1;
  --brasa-sand: #f2e7d6;
  --brasa-porcelain: #ffffff;
  --brasa-ink: #241b16;
  --brasa-muted: #75685f;
  --brasa-line: #decbb8;
  --brasa-ember: #9f3f28;
  --brasa-coral: #cf6f4e;
  --brasa-olive: #59663c;
  --brasa-shadow: 0 24px 72px rgba(80, 45, 28, 0.12);
}

html {
  scroll-behavior: smooth;
}

body.brasa-premium {
  color: var(--brasa-ink);
  background:
    radial-gradient(circle at 14% 8%, rgba(207, 111, 78, 0.18), transparent 26rem),
    radial-gradient(circle at 84% 0%, rgba(89, 102, 60, 0.14), transparent 24rem),
    linear-gradient(180deg, var(--brasa-cream), #fffdfa 42%, var(--brasa-sand));
  text-rendering: optimizeLegibility;
}

body.brasa-premium::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  background-image:
    linear-gradient(rgba(36, 27, 22, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(36, 27, 22, 0.025) 1px, transparent 1px);
  background-size: 80px 80px;
  mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), transparent 68%);
}

.brasa-premium nav {
  border-bottom: 1px solid rgba(222, 203, 184, 0.72);
  box-shadow: 0 16px 54px rgba(36, 27, 22, 0.07);
}

.brasa-premium h1,
.brasa-premium h2,
.brasa-premium h3 {
  letter-spacing: 0;
}

.brasa-premium p {
  color: var(--brasa-muted);
}

.brasa-premium a,
.brasa-premium button,
.brasa-premium input,
.brasa-premium select,
.brasa-premium textarea {
  transition-property: color, background-color, border-color, box-shadow, opacity, filter, transform;
  transition-duration: 220ms;
  transition-timing-function: ease;
}

.brasa-premium a:focus-visible,
.brasa-premium button:focus-visible,
.brasa-premium input:focus-visible,
.brasa-premium select:focus-visible,
.brasa-premium textarea:focus-visible {
  outline: 2px solid var(--brasa-ember);
  outline-offset: 4px;
  box-shadow: 0 0 0 6px rgba(159, 63, 40, 0.16);
}

.brasa-premium button,
.brasa-premium a[href$=".html"],
.brasa-premium a[href^="mailto:"],
.brasa-premium a[href^="tel:"],
.brasa-premium a[href^="https://"] {
  cursor: pointer;
}

.brasa-premium button[class*="bg-primary"],
.brasa-premium a[class*="bg-primary"] {
  background: linear-gradient(135deg, var(--brasa-ember), #7d2f20);
}

.brasa-premium button[class*="bg-primary"]:hover,
.brasa-premium a[class*="bg-primary"]:hover {
  background: linear-gradient(135deg, #b95437, var(--brasa-olive));
  box-shadow: 0 18px 40px rgba(159, 63, 40, 0.2);
  transform: translateY(-1px);
}

.brasa-premium main > section,
.brasa-premium main > header,
.brasa-premium body > header {
  position: relative;
}

.brasa-premium .bg-surface,
.brasa-premium .bg-surface-container,
.brasa-premium .bg-surface-container-low,
.brasa-premium .bg-surface-container-high,
.brasa-premium .bg-surface-container-lowest {
  border: 1px solid rgba(222, 203, 184, 0.66);
}

.brasa-premium .shadow-sm,
.brasa-premium .shadow-lg,
.brasa-premium .shadow-xl,
.brasa-premium .shadow-2xl {
  box-shadow: var(--brasa-shadow) !important;
}

.brasa-premium img {
  background-color: var(--brasa-sand);
}

.brasa-premium img:hover {
  filter: saturate(1.04) contrast(1.03);
}

.brasa-premium form {
  accent-color: var(--brasa-ember);
}

.brasa-premium input,
.brasa-premium select,
.brasa-premium textarea {
  color: var(--brasa-ink);
}

.brasa-premium input::placeholder,
.brasa-premium textarea::placeholder {
  color: rgba(117, 104, 95, 0.72);
}

.brasa-premium [aria-current="page"] {
  color: var(--brasa-ember) !important;
}

.brasa-premium [data-brasa-card] {
  position: relative;
  isolation: isolate;
}

.brasa-premium [data-brasa-card]::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border: 1px solid rgba(207, 111, 78, 0);
  transition: border-color 220ms ease, transform 220ms ease;
}

.brasa-premium [data-brasa-card]:hover::after {
  border-color: rgba(207, 111, 78, 0.44);
  transform: translate(5px, 5px);
}

.brasa-premium [data-brasa-cta="reservation"] {
  letter-spacing: 0.08em;
}

.brasa-premium label:has(input[type="radio"]:focus-visible) {
  outline: 2px solid var(--brasa-ember);
  outline-offset: 4px;
}

@keyframes brasa-rise {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.001ms !important;
  }
}

@media (max-width: 767px) {
  .brasa-premium nav {
    box-shadow: 0 10px 32px rgba(36, 27, 22, 0.08);
  }

  .brasa-premium h1 {
    letter-spacing: 0;
  }
}
