/* ==========================================================================
   Página da Carta — layout próprio (scroll normal, sem snap)
   ========================================================================== */
html{ height:auto; overflow-x:hidden; }
body{ height:auto; }

main{
  display:block;
  opacity:1;
  transform:translateX(0);
  transition:opacity .22s cubic-bezier(.22,1,.36,1), transform .22s cubic-bezier(.22,1,.36,1);
}
body.carta-fade-init .carta-hero,
body.carta-leave-next .carta-hero,
body.carta-leave-prev .carta-hero,
body.carta-enter-next .carta-hero,
body.carta-enter-prev .carta-hero{
  opacity:0;
}
body.carta-fade-init main{
  opacity:0;
}
body.carta-leave-next main,
body.carta-enter-prev main{
  opacity:0;
  transform:translateX(-36px);
}
body.carta-leave-prev main,
body.carta-enter-next main{
  opacity:0;
  transform:translateX(36px);
}

.carta-overlay{
  position:fixed;
  inset:0;
  z-index:0;
  background:rgba(10,5,2,.86);
  pointer-events:none;
}

.carta-hero{
  position:fixed;
  top:48px;
  left:0;
  right:0;
  z-index:40;
  text-align:center;
  transition:opacity .22s ease, visibility .22s ease;
  opacity:1;
  visibility:visible;
}
.carta-hero.is-hidden{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.carta-hero__row{ position:relative; display:flex; align-items:center; justify-content:center; }
.carta-hero__logo{ width:64px; margin:0 auto; }
.carta-back{
  position:absolute;
  left:6vw;
  top:50%;
  transform:translateY(-50%);
  padding:10px 22px;
  font-size:.68rem;
}
.carta-back:hover{ transform:translateY(-50%) translateY(-3px) scale(1.03); }

.carta-jumpnav{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:12px;
  margin-top:44px;
}
.carta-jumpnav__btn{
  padding:10px 22px;
  font-size:.68rem;
}
.carta-jumpnav__btn.is-active{
  background:linear-gradient(135deg, var(--color-primary-light), var(--color-primary));
  border-color:transparent;
  pointer-events:none;
}

.carta-content{
  position:relative;
  z-index:1;
  max-width:1400px;
  margin:0 auto;
  padding:230px 6vw 100px;
}

.menu-division{ margin-bottom:90px; }
.menu-division:last-child{ margin-bottom:0; }
.menu-division__title{
  font-family:var(--ff-display);
  font-size:clamp(1.9rem, 3.6vw, 2.8rem);
  color:var(--color-cream);
  text-align:center;
  text-transform:uppercase;
  letter-spacing:.05em;
  margin-bottom:48px;
}
.menu-division__title::after{
  content:'';
  display:block;
  width:56px; height:3px;
  background:var(--color-primary-light);
  margin:20px auto 0;
  border-radius:3px;
}
.menu-division__grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(320px, 1fr));
  gap:0 60px;
}
.menu-division__grid--compact{
  grid-template-columns:repeat(2, 1fr);
  align-items:start;
  gap:0 40px;
}
.menu-division__grid--compact .menu-category--wide{
  grid-column:1 / -1;
}
.menu-division__grid--compact .menu-category__title{
  font-size:1.05rem;
  margin-bottom:16px;
  padding-bottom:8px;
}
.menu-division__grid--compact .menu-subgroup__title{ font-size:.7rem; margin:16px 0 8px; }
.menu-division__grid--compact .menu-item{ margin-bottom:11px; }
.menu-division__grid--compact .menu-item__name{ font-size:.85rem; }
.menu-division__grid--compact .menu-item__price{ font-size:.78rem; }
.menu-division__grid--compact .menu-item__desc{ font-size:.72rem; }

.menu-category{
  break-inside:avoid;
  margin-bottom:56px;
}
.menu-category__title{
  font-family:var(--ff-display);
  font-size:1.5rem;
  color:var(--color-primary-light);
  text-transform:uppercase;
  letter-spacing:.04em;
  padding-bottom:12px;
  margin-bottom:22px;
  border-bottom:1px solid rgba(253,246,234,.25);
}

.menu-subgroup__title{
  font-family:var(--ff-body);
  font-weight:800;
  font-size:.78rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--color-cream-soft);
  opacity:.75;
  margin:22px 0 12px;
}
.menu-subgroup:first-child .menu-subgroup__title{ margin-top:0; }

.menu-item{ margin-bottom:16px; }
.menu-item__row{
  display:flex;
  align-items:baseline;
  gap:8px;
}
.menu-item__name{
  font-family:var(--ff-display);
  font-size:1.05rem;
  color:var(--color-cream);
}
.menu-item__leader{
  flex:1;
  border-bottom:1px dotted rgba(253,246,234,.3);
  transform:translateY(-4px);
}
.menu-item__price{
  font-family:var(--ff-body);
  font-weight:700;
  font-size:.95rem;
  color:var(--color-primary-light);
  white-space:nowrap;
}
.menu-item__desc{
  font-size:.88rem;
  line-height:1.55;
  color:var(--color-cream-soft);
  opacity:.8;
  margin-top:4px;
}

@media (max-width:760px), (min-width:761px) and (max-width:1024px) and (orientation:portrait){
  .carta-hero{ top:80px; }
  .carta-hero__logo{ width:46px; }
  .carta-back{ left:4vw; font-size:.62rem; padding:8px 14px; }
  .carta-jumpnav{ margin-top:26px; gap:8px; padding:0 4vw; }
  .carta-jumpnav__btn{ padding:8px 14px; font-size:.62rem; }
  .carta-content{ padding:300px 6vw 60px; }
  .menu-division{ margin-bottom:64px; }
  .menu-division__grid{ grid-template-columns:1fr; }
  .menu-division__grid--compact{ grid-template-columns:1fr; }
}
