:root {
  --bg:#0f0f0f;
  --cream:#f4ede4;
  --muted:#b8b2a8;
  --accent:#9e3d30;
  --card:#171717;
  --border:rgba(255,255,255,0.08);
}
* {
  margin:0;
  padding:0;
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
}
body {
  font-family:'Inter',sans-serif;
  background:var(--bg);
  color:var(--cream);
  overflow-x:hidden;
}
body::before {
  content:'';
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:9999;
  opacity:0.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140'%3E%3Cg fill='%23ffffff'%3E%3Ccircle cx='12' cy='18' r='1'/%3E%3Ccircle cx='88' cy='42' r='1'/%3E%3Ccircle cx='52' cy='120' r='1'/%3E%3Ccircle cx='122' cy='96' r='1'/%3E%3Ccircle cx='34' cy='72' r='1'/%3E%3C/g%3E%3C/svg%3E");
}
img {
  width:100%;
  display:block;
}
a {
  text-decoration:none;
  color:inherit;
}
.container {
  width:min(1200px,92%);
  margin:auto;
}
header {
  position:fixed;
  top:0;
  width:100%;
  z-index:1000;
  background:rgba(10,10,10,0.72);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--border);
}
nav {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:1rem 0;
}
.logo {
  display:flex;
  align-items:center;
}
.logo .icon-logo-Aureliano {
  font-size:4rem;
  color:#fff;
  display:block;
}
.nav-links {
  display:flex;
  gap:2rem;
  color:var(--muted);
}
.nav-links a {
  transition:color .3s ease;
}
.nav-links a:hover {
  color:var(--cream);
}
.hero {
  min-height:100vh;
  display:flex;
  align-items:center;
  position:relative;
  background-image:
    linear-gradient(rgba(0,0,0,0.5),rgba(0,0,0,0.7)),
    url('https://images.unsplash.com/photo-1513104890138-7c749659a591?q=80&w=1600&auto=format&fit=crop');
  background-size:cover;
  background-position:center;
}
.hero-content {
  position:relative;
  z-index:2;
  max-width:1200px;
  padding-top:4rem;
}
.eyebrow {
  display:inline-block;
  margin-bottom:1.5rem;
  padding:.45rem .9rem;
  border:1px solid rgba(255,255,255,0.12);
  border-radius:999px;
  background:rgba(255,255,255,0.03);
  backdrop-filter:blur(8px);
  font-size:.78rem;
  letter-spacing:3px;
  text-transform:uppercase;
  color:#d7c4aa;
}
.hero p {
  color:#ddd;
  line-height:1.7;
  margin-bottom:2rem;
}
.hero-manifesto {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(3rem,7vw,5rem);
  line-height:1;
  color:var(--cream);
  margin-top:1.5rem;
  margin-bottom:2rem;
  font-weight:600;
  letter-spacing:-1.5px;
}
.hero-manifesto br {
  display:block;
}
.hero-buttons {
  display:flex;
  gap:1rem;
  flex-wrap:wrap;
}
.seo-hidden {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
.btn {
  padding:1rem 1.6rem;
  border-radius:999px;
  transition:
    transform .3s ease,
    background .3s ease,
    border-color .3s ease;
}
.btn-primary {
  background:var(--accent);
  color:#fff;
}
.btn-primary:hover {
  transform:translateY(-3px);
}
.btn-secondary {
  border:1px solid var(--border);
}
section {
  padding:3rem 0;
}
.map-section {
  padding:0;
}
.section-header {
  margin-bottom:2.5rem;
}
.section-header h2 {
  display:flex;
  align-items:center;
  gap:1.2rem;
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(3rem,7vw,5rem);
  margin-bottom:1rem;
  line-height:1;
}
.section-icon {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:.75em;
  color:var(--muted);
  opacity:.75;
  flex-shrink:0;
  transform:scale(1);
}
.section-header p {
  color:var(--muted);
  line-height:1.8;
  max-width:100%;
}
.mobile-break {
  display:none;
}
.cards {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.5rem;
}
.card {
  background:var(--card);
  border-radius:28px;
  overflow:hidden;
  border:1px solid var(--border);
  transition:
    transform .45s ease,
    border-color .45s ease,
    background .45s ease;
}
.card:hover {
  transform:translateY(-8px);
  border-color:rgba(255,255,255,0.18);
  background:#1b1b1b;
}
.card img {
  height:320px;
  object-fit:cover;
  transition:transform .7s ease;
}
.card:hover img {
  transform:scale(1.05);
}
.card-content {
  padding:2rem;
}
.card-content h3 {
  font-family:'Cormorant Garamond',serif;
  font-size:2rem;
  margin-bottom:.5rem;
}
.card-content p {
  color:var(--muted);
}

/* MENU */

.menu-filters {
  display:flex;
  justify-content:center;
  gap:1rem;
  margin:3rem 0 4rem;
  flex-wrap:wrap;
}

.menu-btn {
  padding:.9rem 1.8rem;
  border:1px solid var(--border);
  background:transparent;
  color:var(--cream);
  border-radius:999px;
  cursor:pointer;
  transition:.3s ease;
}

.menu-btn:hover,
.menu-btn.active {
  background:var(--accent);
  border-color:var(--accent);
}

.menu-category {
  max-width:900px;
  margin:0 auto 5rem;
}

.menu-category h3 {
  font-family:'Cormorant Garamond',serif;
  font-size:2.8rem;
  margin-bottom:.7rem;
}

.menu-category-desc {
  color:var(--muted);
  font-style:italic;
  line-height:1.7;
  margin-bottom:2.5rem;
}

.menu-item {
  padding:1.4rem 0;
  border-bottom:1px solid var(--border);
}

.menu-top h4 {
  font-family:'Cormorant Garamond',serif;
  font-size:1.8rem;
  font-weight:600;
}

.menu-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:1rem;
}

.menu-top span{
  color:#d7c4aa;
  font-weight:600;
  white-space:nowrap;
}

.menu-price {
  color:#d7c4aa;
  font-weight:700;
  white-space:nowrap;
}

.menu-item p {
  color:var(--muted);
  line-height:1.7;
  max-width:85%;
}

.map-section {
  position:relative;
  margin-top:4rem;
  overflow:hidden;
  border-radius:32px;
  border:1px solid var(--border);
}
.map-section::before {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(
    to bottom,
    rgba(0,0,0,0.08),
    rgba(0,0,0,0.22)
  );
  pointer-events:none;
  z-index:2;
}
.map-section iframe {
  width:100%;
  height:460px;
  border:0;
  display:block;
  filter:grayscale(.55) contrast(1.05) brightness(.92);
}
.cta {
  text-align:center;
}
.cta h2 {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(3rem,8vw,5rem);
  margin-bottom:1rem;
}
.cta p {
  color:#d6d0c7;
  margin-bottom:2rem;
}
.footer-contact {
  border-top: 1px solid var(--border);
  padding: 2rem 0 .5rem;
}
.footer-content {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:2rem;
  flex-wrap:wrap;
}
.footer-left h3 {
  font-family:'Cormorant Garamond',serif;
  font-size:1.6rem;
  margin-bottom:.5rem;
}
.footer-left p {
  color:var(--muted);
}
.footer-right {
  display:flex;
  align-items:center;
  gap:1rem;
}
.footer-icon {
  width:52px;
  height:52px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,0.08);
  background:rgba(255,255,255,0.03);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:.3s ease;
  font-size:1.1rem;
}
.footer-icon:hover {
  transform:translateY(-4px);
  background:rgba(255,255,255,0.08);
}
.footer-credit {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.6rem;
  padding:1rem 0;
  color:var(--muted);
  font-size:.9rem;
}
.footer-credit .icon-logo-yvype {
  font-size:1rem;
  opacity:.8;
}
.fade-up {
  opacity:0;
  transform:translateY(40px);
  transition:
    opacity 1s ease,
    transform 1s cubic-bezier(.16,1,.3,1);
  will-change:transform,opacity;
}
.fade-up.visible {
  opacity:1;
  transform:translateY(0);
}
.menu-toggle {
  width:52px;
  height:52px;
  border:1px solid var(--border);
  border-radius:50%;
  background:rgba(255,255,255,0.03);
  display:none;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:6px;
  cursor:pointer;
  transition:.3s ease;
  z-index:1001;
}
.menu-toggle span {
  width:18px;
  height:1.5px;
  background:#fff;
  transition:.3s ease;
}
.menu-toggle.active span:first-child {
  transform:rotate(45deg) translateY(5px);
}
.menu-toggle.active span:last-child {
  transform:rotate(-45deg) translateY(-5px);
}
.mobile-menu {
  position:fixed;
  inset:0;
  background:rgba(8,8,8,0.98);
  backdrop-filter:blur(20px);
  z-index:999;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:2.5rem;
  opacity:0;
  visibility:hidden;
  transition:
    opacity .4s ease,
    visibility .4s ease;
}
.mobile-menu.active {
  opacity:1;
  visibility:visible;
}
.mobile-menu a {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(2.2rem,6vw,4rem);
  color:var(--cream);
  letter-spacing:-1px;
  transition:.3s ease;
}
.mobile-menu a:hover {
  color:#d7c4aa;
  transform:translateY(-2px);
}
.menu-placeholder{
  margin-top:1rem;
  text-align:center;
  color:var(--muted);
  font-style:italic;
  line-height:1.6;
}

.menu-category{
  animation:menuFade .4s ease;
}

@keyframes menuFade{

  from{
    opacity:0;
    transform:translateY(20px);
  }

  to{
    opacity:1;
    transform:translateY(0);
  }

}

@media (max-width:900px) {
  .nav-links {
    display:none;
  }
  .menu-toggle {
    display:flex;
  }
  .cards,
  .menu-grid {
    grid-template-columns:1fr;
  }
  .hero-manifesto {
    font-size:clamp(2.2rem,7vw,3.5rem);
    line-height:1.05;
    letter-spacing:-1px;
  }
  .map-section iframe {
    height:400px;
  }
  .footer-content {
    flex-direction:column;
    align-items:flex-start;
  }
}

@media (max-width:768px) {

  .menu-category h3 {
    font-size:2.2rem;
  }

  .menu-top {
    flex-direction:column;
    gap:.3rem;
  }

  .menu-item p {
    max-width:100%;
  }

  .menu-price {
    font-size:.95rem;
  }

}

@media (max-width:600px) {
  .hero-manifesto {
    font-size:clamp(1.8rem,9vw,2.8rem);
    line-height:1.08;
    letter-spacing:0;
  }
  .hero-manifesto br {
    display:none;
  }
  .mobile-break {
    display:block;
  }
  .map-section {
    border-radius:24px;
  }
  .map-section iframe {
    height:340px;
  }
}