:root{
  --qe-bordeaux:#823230;
  --qe-gold:#C78F5A;
  --qe-white:#FFFFFF;
  --qe-panel-w:365px;
  --qe-panel-h:699px;
  --qe-header-h:116px;
  --qe-panel-left:32px;
}

html.qe-menu-open, body.qe-menu-open{overflow:hidden;}

/* The menu is an overlay: it must never participate in the header's layout. */
.qe-menu-overlay{
  position:fixed;
  left:0;
  right:0;
  top:var(--qe-header-h);
  height:calc(100vh - var(--qe-header-h));
  z-index:999999;
  pointer-events:none;
  visibility:hidden;
  opacity:0;
  transition:opacity .18s ease,visibility .18s ease;
}
.qe-menu-overlay.is-open{pointer-events:auto;visibility:visible;opacity:1;}
.qe-menu-overlay::before{
  content:"";
  position:absolute;
  inset:0;
  background:transparent;
}
.qe-menu-panel{
  position:absolute;
  left:var(--qe-panel-left);
  top:0;
  width:var(--qe-panel-w);
  height:var(--qe-panel-h);
  max-width:calc(100vw - var(--qe-panel-left) - 16px);
  max-height:calc(100vh - var(--qe-header-h) - 16px);
  overflow:hidden;
  box-sizing:border-box;
  background-color:var(--qe-bordeaux);
  background-image:var(--qe-bg-image);
  background-size:cover;
  background-position:center;
  box-shadow:0 14px 35px rgba(0,0,0,.18);
  transform:translateY(-100%);
  transition:transform .28s cubic-bezier(.22,.61,.36,1);
}
.qe-menu-overlay.is-open .qe-menu-panel{transform:translateY(0);}

.qe-menu-close{
  position:absolute;
  right:18px;
  top:18px;
  width:34px;
  height:34px;
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
  z-index:5;
}
.qe-menu-close span{
  position:absolute;
  left:5px;
  top:16px;
  width:24px;
  height:2px;
  background:#fff;
}
.qe-menu-close span:first-child{transform:rotate(45deg);}
.qe-menu-close span:last-child{transform:rotate(-45deg);}

.qe-menu-inner{
  position:relative;
  z-index:2;
  height:100%;
  display:flex;
  flex-direction:column;
  box-sizing:border-box;
  padding:69px 0 18px;
  background:transparent;
  overflow:auto;
  scrollbar-width:none;
}
.qe-menu-inner::-webkit-scrollbar{display:none;}
.qe-menu-nav{width:100%;}
.qe-menu-list,.qe-menu-list ul{list-style:none;margin:0;padding:0;}
.qe-menu-list>li{position:relative;margin:0;padding:0;}
.qe-menu-list>li>a{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:69px;
  width:100%;
  box-sizing:border-box;
  padding:12px 28px;
  color:#fff !important;
  text-decoration:none !important;
  text-align:center;
  font-family:"Cinzel",serif;
  font-size:20px;
  line-height:1.2;
  font-weight:700;
  position:relative;
  transition:background-color .16s ease,color .16s ease;
}

/* Figma states: HOVER = gold, ACTIVE/CURRENT = bordeaux at 80%. */
.qe-menu-list>li>a:hover,
.qe-menu-list>li>a:focus-visible{
  background-color:rgba(199,143,90,.86) !important;
  color:#fff !important;
  outline:none;
}
.qe-menu-list>li.current-menu-item>a,
.qe-menu-list>li.current_page_item>a,
.qe-menu-list>li.current-menu-ancestor>a,
.qe-menu-list>li.current-menu-parent>a,
.qe-menu-list>li>a[aria-current="page"]{
  background-color:rgba(130,50,48,.80) !important;
  color:#fff !important;
}
.qe-menu-list .sub-menu{display:none !important;}

.qe-menu-bottom{
  margin-top:auto;
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:28px;
  padding:24px 18px 6px;
  box-sizing:border-box;
  flex-shrink:0;
}
.qe-booking{
  display:flex;
  align-items:center;
  justify-content:center;
  width:223px;
  min-height:36px;
  padding:7px 16px;
  box-sizing:border-box;
  border-radius:999px;
  background-color:#823230 !important;
  color:transparent !important;
  text-decoration:none !important;
  font-family:"Exo 2",sans-serif;
  font-size:15px;
  font-weight:700;
  line-height:1.1;
  text-align:center;
  position:relative;
}
.qe-booking::after{
  content:"PRENOTA ORA";
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-family:"Exo 2",sans-serif;
  font-size:15px;
  font-weight:700;
  line-height:1.1;
  letter-spacing:0;
}
.qe-menu-logo{
  display:block;
  width:auto;
  height:auto;
  max-width:119px;
  max-height:95px;
  object-fit:contain;
}
.qe-menu-empty{padding:24px;color:#fff;font-family:"Cinzel",serif;text-align:center;}

/* Elementor hamburger trigger */
.qe-menu-trigger{cursor:pointer;}
.qe-menu-trigger,.qe-menu-trigger *{color:#fff !important;}
.qe-menu-trigger svg{fill:#fff !important;stroke:#fff !important;color:#fff !important;}
.qe-menu-trigger .elementor-icon,
.qe-menu-trigger .elementor-icon svg,
.qe-menu-trigger i{font-size:33px;width:33px;height:33px;}

/* Tablet */
@media (max-width:1024px){
  :root{--qe-header-h:96px;--qe-panel-left:24px;}
  .qe-menu-trigger .elementor-icon,
  .qe-menu-trigger .elementor-icon svg,
  .qe-menu-trigger i{font-size:30px;width:30px;height:30px;}
}

/* Mobile */
@media (max-width:767px){
  :root{--qe-header-h:72px;--qe-panel-left:16px;}
  .qe-menu-overlay{top:var(--qe-header-h);height:calc(100vh - var(--qe-header-h));}
  .qe-menu-panel{
    width:365px;
    height:699px;
    max-width:calc(100vw - var(--qe-panel-left) - 8px);
    max-height:calc(100vh - var(--qe-header-h) - 8px);
  }
  .qe-menu-inner{padding-top:58px;padding-bottom:14px;}
  .qe-menu-list>li>a{min-height:58px;padding:10px 22px;font-size:18px;}
  .qe-menu-bottom{gap:22px;padding-top:20px;}
  .qe-booking{width:min(223px,calc(100% - 16px));min-height:32px;font-size:14px;}
  .qe-menu-logo{max-width:105px;max-height:82px;}
  .qe-menu-close{right:12px;top:12px;width:32px;height:32px;}
  .qe-menu-close span{left:5px;top:15px;width:22px;}
  .qe-menu-trigger .elementor-icon,
  .qe-menu-trigger .elementor-icon svg,
  .qe-menu-trigger i{font-size:26px;width:26px;height:26px;}
}

@media (max-width:380px){
  :root{--qe-panel-left:12px;}
  .qe-menu-list>li>a{font-size:17px;min-height:54px;}
  .qe-menu-bottom{gap:18px;}
  .qe-menu-logo{max-width:96px;max-height:74px;}
  .qe-menu-trigger .elementor-icon,
  .qe-menu-trigger .elementor-icon svg,
  .qe-menu-trigger i{font-size:24px;width:24px;height:24px;}
}
