/*
Theme Name: FoodUp Restaurant
Theme URI: https://foodup.ch/
Author: FoodUp
Description: Reusable FoodUp restaurant theme for WooCommerce.
Version: 0.14.1
Requires at least: 6.5
Requires PHP: 8.0
Text Domain: foodup-restaurant
*/

:root{
  --fu-primary:#ff6600;
  --fu-secondary:#00a5a0;
  --fu-hero-button:#b40000;
  --fu-bg:#f7f7f7;
  --fu-text:#171717;
  --fu-muted:#667085;
  --fu-border:#e4e7ec;
  --fu-radius:14px;

  /* This matches the Elementor container setting you showed. */
  --fu-site-width:1140px;

  /* Eatime header dimensions: 37px top + 78px main = 115px.
     Sticky: 5px top + 78px main = 83px. */
  --fu-top-height:37px;
  --fu-main-height:78px;
  --fu-logo-width:169px;
  --fu-logo-height:98.6px;
  --fu-sticky-logo-width:118.3px;
  --fu-sticky-logo-height:69px;
  --fu-normal-header-row:118.6px;
  --fu-sticky-header-row:78px;
  --fu-sticky-logo-factor:.7;
  --fu-sticky-speed:300ms;
  --fu-topbar-overlay:.42;
  --fu-topbar-blur:8px;
  --fu-topbar-border:#7a7a7a;
  --fu-topbar-radius:10px;
  --fu-sticky-shadow-alpha:.16;
  --fu-logo-padding-top:0px;
  --fu-logo-padding-bottom:0px;
  --fu-sticky-logo-padding-top:8px;
  --fu-sticky-logo-padding-bottom:8px;
  --fu-logo-art-max-height:calc(var(--fu-main-height) - var(--fu-logo-padding-top) - var(--fu-logo-padding-bottom));
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--fu-bg);
  color:var(--fu-text);
  font-family:'Inter',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  font-size:var(--fu-body-font-size);
}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto}
button,input,textarea,select{font:inherit}

.fu-container{
  width:min(var(--fu-site-width),calc(100% - 32px));
  margin-inline:auto;
}

.fu-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:var(--fu-button-radius);
  padding:12px 18px;
  font-weight:700;
  cursor:pointer;
}
.fu-btn--primary{background:var(--fu-primary);color:#fff}
.fu-btn--surface{background:#fff;color:#111}

/* =========================================================
   EXACT EATIME HEADER
   ========================================================= */

.main-header1{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:1500;
  width:100%;
  background:none;
  border-bottom:2px solid transparent;
  color:#fff;
  transition:background var(--fu-sticky-speed) ease,border-color var(--fu-sticky-speed) ease,box-shadow var(--fu-sticky-speed) ease;
}

/* Top bar is boxed at 1140px, centered, exactly like your Elementor container. */
.main-header1 .header-top{
  width:min(var(--fu-site-width),calc(100% - 32px));
  height:var(--fu-topbar-height);
  margin:0 auto;
  padding:0 10px;
  overflow:hidden;
  border-top:0;
  border-left:1px solid var(--fu-topbar-border);
  border-right:1px solid var(--fu-topbar-border);
  border-bottom:1px solid var(--fu-topbar-border);
  border-radius:0 0 var(--fu-topbar-radius) var(--fu-topbar-radius);
  background:
    linear-gradient(115deg,rgba(255,255,255,.11) 0%,rgba(255,255,255,.025) 34%,rgba(255,255,255,.07) 68%,rgba(255,255,255,.015) 100%),
    rgba(0,0,0,var(--fu-topbar-overlay));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.10),
    0 2px 9px rgba(0,0,0,.10);
  backdrop-filter:saturate(180%) blur(var(--fu-topbar-blur));
  -webkit-backdrop-filter:saturate(180%) blur(var(--fu-topbar-blur));
  transition:
    height var(--fu-sticky-speed) cubic-bezier(.2,.7,.2,1),
    background var(--fu-sticky-speed) ease,
    border-color var(--fu-sticky-speed) ease,
    border-radius var(--fu-sticky-speed) ease,
    box-shadow var(--fu-sticky-speed) ease;
}

.fu-header-top-content{
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  font-size:var(--fu-topbar-font-size);
  font-weight:600;
}

.user-greeting-styled{
  visibility:visible;
  opacity:1;
  margin-top:0;
  white-space:nowrap;
  transition:all var(--fu-sticky-speed) ease;
}

.header-ad{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  visibility:visible;
  opacity:1;
  margin-top:0;
  white-space:nowrap;
  transition:all var(--fu-sticky-speed) ease;
}

.fu-top-item{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:#fff;
}
.fu-top-item .ti{
  width:14px;
  height:14px;
  flex:0 0 14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:14px;
  color:currentColor;
}
.fu-top-separator{
  width:1px;
  height:15px;
  background:rgba(255,255,255,.75);
}

/* Main row remains 78px both before and after sticky. */
.fu-header-main{
  width:100%;
  height:var(--fu-main-height);
  background:transparent;
  transition:background var(--fu-sticky-speed) ease,border-color var(--fu-sticky-speed) ease,box-shadow var(--fu-sticky-speed) ease;
}

.fu-header-main__inner{
  width:min(var(--fu-site-width),calc(100% - 32px));
  height:100%;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}

/* Logo: percentage control defines the NORMAL/base wrapper width.
   Sticky logo is a separate percentage of that base (default 70%). */
.fu-logo{
  width:var(--fu-logo-width);
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  min-width:0;
  line-height:0;
}

.logo-white{
  color:#fff;
}

.logo-white .fu-logo-svg{
  display:flex;
  align-items:center;
  width:100%;
}

.logo-white .fu-logo-svg svg{
  display:block;
  width:100% !important;
  max-width:none !important;
  height:auto !important;
  fill:currentColor;
  overflow:visible;
  transition:width var(--fu-sticky-speed) ease,height var(--fu-sticky-speed) ease,color var(--fu-sticky-speed) ease;
}

.fu-logo-image{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}

/* Right side is one continuous Elementor-style container. */
.fu-header-right{
  flex:1 1 auto;
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:24px;
}

.fu-nav{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  white-space:nowrap;
  font-size:var(--fu-menu-font-size);
  font-weight:var(--fu-menu-font-weight);
}

.fu-menu-link{
  display:inline-flex;
  align-items:center;
  min-height:36px;
  padding:0 var(--fu-menu-padding-x);
  color:var(--fu-menu-hero-color);
  transition:color .25s ease;
}

.fu-menu-divider{
  width:1px;
  height:var(--fu-menu-divider-height);
  background:currentColor;
  opacity:.9;
  flex:0 0 1px;
}

.fu-menu-link:hover{
  color:var(--fu-primary);
}

/* Only HOME is active on the homepage — not every URL ending in "/". */
body.home .fu-menu-home{
  color:var(--fu-primary);
}

/* Original account button CSS, mapped to SVG icon. */
.account-btn{
  display:inline-flex;
  align-items:center;
  padding:6px var(--fu-account-padding-x);
  font-size:var(--fu-account-font-size);
  line-height:1.2;
  font-weight:bold;
  text-decoration:none;
  border:var(--fu-account-border-width) solid var(--fu-primary);
  color:#fff !important;
  background:none;
  border-radius:var(--fu-account-radius);
  transition:all .3s ease;
  cursor:pointer;
  white-space:nowrap;
}

.account-btn .ti{
  width:16px;
  height:16px;
  margin-right:8px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:16px;
  color:var(--fu-primary);
  transition:color .3s ease;
}

.account-btn:hover{
  background:var(--fu-primary);
  color:#fff !important;
}
.account-btn:hover .ti{color:#000}

/* White / black menu swap from your exact CSS. */
.header-menu-white{
  display:flex;
  transition:all var(--fu-sticky-speed) ease;
}
.header-menu-black{
  display:none;
  transition:all var(--fu-sticky-speed) ease;
}

/* Sticky */
.main-header1.elementor-sticky--effects{
  background:#f5f5f5;
  border-bottom-color:#ccc;
  box-shadow:0 0 10px rgba(0,0,0,var(--fu-sticky-shadow-alpha));
  color:#000;
}

.main-header1.elementor-sticky--effects .header-top{
  height:5px;
  padding:0 10px;
  background:var(--fu-primary);
  border-left-color:var(--fu-primary);
  border-right-color:var(--fu-primary);
  border-bottom-color:var(--fu-primary);
  border-radius:0 0 min(5px,var(--fu-topbar-radius)) min(5px,var(--fu-topbar-radius));
}

.main-header1.elementor-sticky--effects .user-greeting-styled{
  visibility:hidden;
  opacity:0;
  margin-top:-20px;
}

.main-header1.elementor-sticky--effects .header-ad{
  visibility:hidden;
  opacity:0;
  margin-top:-20px;
}

.main-header1.elementor-sticky--effects .header-menu-black{
  display:flex;
}
.main-header1.elementor-sticky--effects .header-menu-white{
  display:none;
}

.main-header1.elementor-sticky--effects .header-menu-black .fu-menu-link{
  color:var(--fu-menu-sticky-color);
}
.main-header1.elementor-sticky--effects .header-menu-black .fu-menu-link:hover{
  color:var(--fu-primary);
}
body.home .main-header1.elementor-sticky--effects .header-menu-black .fu-menu-home{
  color:var(--fu-primary);
}

.main-header1.elementor-sticky--effects .logo-white .fu-logo-svg svg{
  width:var(--fu-sticky-logo-width) !important;
  height:auto !important;
  max-width:none !important;
  max-height:none !important;
  transform:none !important;
  transform-origin:left center;
}

.main-header1.elementor-sticky--effects .account-btn{
  border-color:var(--fu-primary);
  color:#000 !important;
}
.main-header1.elementor-sticky--effects .account-btn:hover{
  background:var(--fu-primary);
  color:#fff !important;
}
.main-header1.elementor-sticky--effects .account-btn:hover .ti{
  color:#000;
}

/* =========================================================
   HOME HERO
   ========================================================= */

.fu-hero{
  position:relative;
  isolation:isolate;
  width:100%;
  min-height:var(--fu-home-hero-height);
  height:var(--fu-home-hero-height);
  display:flex;
  align-items:center;
  overflow:hidden;
  color:#fff;
  background:#151515;
}

.fu-hero__media{
  position:absolute;
  inset:0;
  z-index:-2;
}
.fu-hero__media img{
  width:100%;
  height:100%;
  max-width:none;
  display:block;
  object-fit:cover;
  object-position:center center;
}

.fu-hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:rgba(0,0,0,var(--fu-home-hero-overlay));
}

/* No giant top padding. The content is vertically centered like Eatime. */
.fu-hero__content{
  width:min(var(--fu-site-width),calc(100% - 32px));
  margin:0 auto;
  padding:70px 0 0;
  transform:translateY(var(--fu-home-hero-offset-y));
}

.fu-hero h1{
  margin:0 0 15px;
  max-width:var(--fu-home-hero-content-width);
  color:var(--fu-primary);
  font-size:var(--fu-home-hero-title-size);
  line-height:1.2;
  font-weight:700;
}

.fu-hero p{
  margin:0 0 20px;
  max-width:var(--fu-home-hero-content-width);
  color:#fff;
  font-size:var(--fu-home-hero-text-size);
  line-height:1.65;
  font-weight:600;
}

.fu-hero__actions{
  display:flex;
  align-items:center;
}

.fu-hero-order-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:0 24px;
  border:0;
  border-radius:var(--fu-home-hero-button-radius);
  background:var(--fu-hero-button);
  color:#fff;
  font-size:14px;
  font-weight:700;
  transition:filter .2s ease,transform .2s ease;
}
.fu-hero-order-btn:hover{
  filter:brightness(1.08);
  transform:translateY(-1px);
}

/* =========================================================
   HOME CONTENT
   ========================================================= */

.fu-section{padding:72px 0}
.fu-section h2{
  margin:0 0 12px;
  font-size:clamp(30px,4vw,44px);
}
.fu-section__lead{
  max-width:720px;
  margin:0 0 28px;
  color:var(--fu-muted);
}

.fu-cards{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.fu-card{
  min-height:160px;
  padding:24px;
  border:1px solid var(--fu-border);
  border-radius:var(--fu-radius);
  background:#fff;
}
.fu-card h3{margin:0 0 8px}
.fu-card p{margin:0;color:var(--fu-muted)}

.fu-promo{
  min-height:320px;
  display:grid;
  grid-template-columns:1.1fr .9fr;
  overflow:hidden;
  border:1px solid var(--fu-border);
  border-radius:18px;
  background:#fff;
}
.fu-promo__content{
  padding:44px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.fu-promo__content h2{margin:0 0 12px}
.fu-promo__content p{margin:0 0 22px;color:var(--fu-muted)}
.fu-promo__image{
  min-height:300px;
  background:center center/cover no-repeat;
}

.fu-cta{
  position:relative;
  min-height:360px;
  display:flex;
  align-items:center;
  overflow:hidden;
  border-radius:18px;
  background:#222 center center/cover no-repeat;
  color:#fff;
}
.fu-cta::before{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.5);
}
.fu-cta__content{
  position:relative;
  z-index:1;
  max-width:650px;
  padding:44px;
}
.fu-cta__content h2{margin:0 0 12px}
.fu-cta__content p{margin:0 0 22px;font-size:18px}

/* =========================================================
   CONTACT / LEGAL
   ========================================================= */

.fu-contact-hero{
  position:relative;
  min-height:340px;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:#222 center center/cover no-repeat;
  color:#fff;
  text-align:center;
}
.fu-contact-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.48);
}
.fu-contact-hero__inner{
  position:relative;
  z-index:1;
  padding:140px 20px 70px;
}
.fu-contact-hero h1{
  margin:0;
  font-size:clamp(38px,6vw,64px);
}

.fu-contact-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.fu-contact-card{
  padding:26px;
  border:1px solid var(--fu-border);
  border-radius:16px;
  background:#fff;
}
.fu-contact-card h3{margin:0 0 14px}
.fu-contact-card p{margin:7px 0;color:var(--fu-muted)}

.fu-hours-list,.fu-zone-list{list-style:none;margin:0;padding:0}
.fu-hours-list li,.fu-zone-list li{
  display:flex;
  justify-content:space-between;
  gap:18px;
  padding:9px 0;
  border-bottom:1px solid var(--fu-border);
}
.fu-hours-list li:last-child,.fu-zone-list li:last-child{border-bottom:0}

.fu-map{
  width:100%;
  min-height:380px;
  display:block;
  border:0;
  border-radius:18px;
  background:#eee;
}

.fu-legal{
  max-width:900px;
  margin:0 auto;
  padding:clamp(24px,5vw,52px);
  border:1px solid var(--fu-border);
  border-radius:18px;
  background:#fff;
}
.fu-legal h1{margin-top:0}
.fu-legal h2,.fu-legal h3,.fu-legal h4{margin-top:28px}
.fu-legal hr{margin:24px 0;border:0;border-top:1px solid var(--fu-border)}
.fu-legal p,.fu-legal li{line-height:1.7}

/* =========================================================
   FOOTER / MOBILE NAV
   ========================================================= */

.fu-footer{
  padding:48px 0 100px;
  background:#111;
  color:#fff;
}
.fu-footer__grid{
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  gap:28px;
}
.fu-footer p{color:#c6c6c6}

.fu-bottom-nav{
  display:none;
  position:fixed;
  left:10px;
  right:10px;
  bottom:10px;
  z-index:1400;
  padding:8px;
  border:1px solid var(--fu-border);
  border-radius:18px;
  background:rgba(255,255,255,.96);
  box-shadow:0 10px 30px rgba(0,0,0,.14);
}
.fu-bottom-nav a{
  flex:1;
  min-height:52px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  border-radius:12px;
  color:#555;
  font-size:12px;
}
.fu-bottom-nav a.is-active{
  color:var(--fu-primary);
  background:#fff4ec;
}

/* =========================================================
   ACCOUNT
   ========================================================= */

.fu-account-page{
  min-height:100vh;
  padding:150px 20px 90px;
  background:#f4f5f7;
}
.fu-account-shell{
  width:min(1040px,100%);
  margin:0 auto;
}
.fu-account-heading{margin-bottom:26px}
.fu-account-eyebrow{
  display:inline-block;
  margin-bottom:8px;
  color:var(--fu-primary);
  font-size:13px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.fu-account-heading h1{
  margin:0 0 8px;
  font-size:clamp(30px,4vw,44px);
}
.fu-account-heading p{
  margin:0;
  color:var(--fu-muted);
  font-size:16px;
}
.fu-account-alert{
  margin-bottom:20px;
  padding:14px 16px;
  border:1px solid #fecaca;
  border-radius:12px;
  background:#fff1f2;
  color:#991b1b;
}
.fu-account-alert p{margin:0 0 5px}
.fu-account-alert p:last-child{margin-bottom:0}

.fu-auth-grid{
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:22px;
  align-items:start;
}
.fu-auth-card,.fu-account-card{
  border:1px solid var(--fu-border);
  border-radius:16px;
  background:#fff;
  box-shadow:0 8px 30px rgba(16,24,40,.06);
}
.fu-auth-card{padding:24px}
.fu-auth-card__header{
  display:flex;
  align-items:center;
  gap:13px;
  margin-bottom:22px;
}
.fu-auth-card__header h2{margin:0 0 3px;font-size:21px}
.fu-auth-card__header p{margin:0;color:var(--fu-muted);font-size:13px}
.fu-auth-icon{
  width:42px;
  height:42px;
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:12px;
  background:#fff2e8;
}
.fu-auth-icon svg{width:21px;height:21px;fill:var(--fu-primary)}

.fu-auth-form{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.fu-auth-form input[type="text"],
.fu-auth-form input[type="email"],
.fu-auth-form input[type="tel"],
.fu-auth-form input[type="password"]{
  width:100%;
  height:48px;
  padding:0 14px;
  border:1px solid #cfd4dc;
  border-radius:11px;
  outline:none;
  background:#fff;
  color:#111827;
}
.fu-auth-form input:focus{
  border-color:var(--fu-primary);
  box-shadow:0 0 0 3px rgba(255,102,0,.12);
}
.fu-input-wrap,.fu-password-wrap{position:relative}
.fu-input-wrap>svg{
  position:absolute;
  left:14px;
  top:50%;
  width:18px;
  height:18px;
  transform:translateY(-50%);
  fill:var(--fu-muted);
}
.fu-input-wrap>input{padding-left:42px!important}
.fu-password-wrap>input{padding-right:46px!important}
.fu-input-wrap.fu-password-wrap>input{padding-left:42px!important}

.fu-password-toggle{
  position:absolute;
  right:6px;
  top:50%;
  width:36px;
  height:36px;
  transform:translateY(-50%);
  display:flex;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:9px;
  background:transparent;
  cursor:pointer;
}
.fu-password-toggle:hover{background:#f2f4f7}
.fu-password-toggle svg{width:18px;height:18px;fill:var(--fu-muted)}

.fu-form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.fu-auth-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  font-size:13px;
}
.fu-auth-meta a{color:var(--fu-primary);font-weight:600}
.fu-check{display:flex;align-items:center;gap:7px;color:var(--fu-muted)}

.fu-auth-submit{
  height:48px;
  border:2px solid var(--fu-primary);
  border-radius:11px;
  background:var(--fu-primary);
  color:#fff;
  font-weight:700;
  cursor:pointer;
}
.fu-auth-submit--outline{background:#fff;color:#111}
.fu-auth-submit:hover,.fu-auth-submit--outline:hover{
  background:var(--fu-primary);
  color:#fff;
}

.fu-account-dashboard{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:16px;
}
.fu-account-card{
  position:relative;
  padding:22px;
}
.fu-account-card h2{margin:0 0 12px;font-size:18px}
.fu-account-card p{margin:5px 0;color:var(--fu-muted)}
.fu-account-card--link span{
  position:absolute;
  right:20px;
  top:50%;
  transform:translateY(-50%);
  color:var(--fu-primary);
  font-size:30px;
}
.fu-account-logout{
  display:inline-flex;
  margin-top:18px;
  color:#b42318;
  font-weight:700;
}
.fu-sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}

/* Internal pages need room below fixed header. */
body:not(.home) main:not(.fu-account-page){
  padding-top:115px;
}

/* =========================================================
   RESPONSIVE
   ========================================================= */

@media(max-width:900px){
  .fu-cards{grid-template-columns:1fr}
  .fu-promo{grid-template-columns:1fr}
  .fu-promo__image{min-height:240px}
  .fu-contact-grid{grid-template-columns:1fr}
  .fu-footer__grid{grid-template-columns:1fr}

  .fu-nav{
    font-size:12px;
  }
  .fu-menu-link{
    padding:0 10px;
  }
  .fu-header-right{
    gap:14px;
  }
}

@media(max-width:768px){
  :root{
    --fu-top-height:0px;
    --fu-main-height:64px;
  }

  .main-header1 .header-top{
    display:none;
  }

  .fu-header-main{
    height:64px;
  }
  .fu-header-main__inner{
    width:calc(100% - 24px);
  }

  .fu-header-right .fu-nav{
    display:none;
  }

  .fu-logo{
    max-width:130px;
  }

  .main-header1.elementor-sticky--effects .logo-white .fu-logo-svg svg{
    width:min(var(--fu-sticky-logo-width),130px) !important;
    height:auto !important;
    transform:none !important;
    transform-origin:left center;
  }

  .account-btn{
    width:38px;
    height:38px;
    padding:0;
    justify-content:center;
  }
  .account-btn svg{margin:0}
  .account-btn span{display:none}

  .fu-hero{
    min-height:100svh;
    height:100svh;
  }
  .fu-hero__content{
    width:calc(100% - 36px);
    padding:55px 0 80px;
  }
  .fu-hero h1{font-size:28px}
  .fu-hero p{font-size:17px;line-height:1.55}

  .fu-bottom-nav{display:flex}
  .fu-footer{padding-bottom:110px}

  .fu-auth-grid,.fu-account-dashboard{grid-template-columns:1fr}
  .fu-form-row{grid-template-columns:1fr}
  .fu-auth-meta{
    align-items:flex-start;
    flex-direction:column;
  }
  .fu-account-page{
    padding:95px 14px 90px;
  }

  body:not(.home) main:not(.fu-account-page){
    padding-top:64px;
  }
}


/* =========================================================
   FoodUp v0.12.9 — PARENT-FITS-LOGO MODEL
   ========================================================= */

/*
 * The normal header row is no longer fixed at 78px.
 * It expands to:
 *   actual logo height + top space + bottom space
 * with 78px as the minimum.
 */
@media(min-width:769px){
  .main-header1:not(.elementor-sticky--effects) .fu-header-main{
    height:var(--fu-normal-header-row) !important;
  }

  .main-header1.elementor-sticky--effects .fu-header-main{
    height:var(--fu-sticky-header-row) !important;
  }
}

.fu-header-main{
  transition:
    height var(--fu-sticky-speed) ease,
    background var(--fu-sticky-speed) ease,
    border-color var(--fu-sticky-speed) ease,
    box-shadow var(--fu-sticky-speed) ease;
}

/*
 * The wrapper keeps the base width so the navigation does not jump.
 * Artwork itself is always hard-left aligned.
 */
.main-header1 .fu-logo{
  width:var(--fu-logo-width) !important;
  flex:0 0 var(--fu-logo-width) !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  align-self:stretch !important;
  margin:0 !important;
  overflow:visible !important;
}

.main-header1 .fu-logo .fu-logo-svg{
  width:100% !important;
  height:100% !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  overflow:visible !important;
}

/* NORMAL: actual selected width, auto height, real surrounding space. */
.main-header1:not(.elementor-sticky--effects) .fu-logo{
  padding-top:var(--fu-logo-padding-top) !important;
  padding-bottom:var(--fu-logo-padding-bottom) !important;
}

.main-header1:not(.elementor-sticky--effects) .fu-logo .fu-logo-svg svg{
  display:block !important;
  width:var(--fu-logo-width) !important;
  height:var(--fu-logo-height) !important;
  max-width:none !important;
  max-height:none !important;
  margin:0 auto 0 0 !important;
  transform:none !important;
  transform-origin:left center !important;
  overflow:visible !important;
}

.main-header1:not(.elementor-sticky--effects) .fu-logo .fu-logo-image{
  display:block !important;
  width:var(--fu-logo-width) !important;
  height:var(--fu-logo-height) !important;
  max-width:none !important;
  max-height:none !important;
  margin:0 auto 0 0 !important;
  object-fit:contain !important;
  object-position:left center !important;
  transform:none !important;
}

/*
 * STICKY: actual smaller width is rendered, not transform-scaled.
 * Wrapper remains base width, therefore the left edge and menu position stay stable.
 */
.main-header1.elementor-sticky--effects .fu-logo{
  padding-top:var(--fu-sticky-logo-padding-top) !important;
  padding-bottom:var(--fu-sticky-logo-padding-bottom) !important;
}

.main-header1.elementor-sticky--effects .fu-logo .fu-logo-svg svg{
  display:block !important;
  width:var(--fu-sticky-logo-width) !important;
  height:var(--fu-sticky-logo-height) !important;
  max-width:none !important;
  max-height:none !important;
  margin:0 auto 0 0 !important;
  transform:none !important;
  transform-origin:left center !important;
  overflow:visible !important;
}

.main-header1.elementor-sticky--effects .fu-logo .fu-logo-image{
  display:block !important;
  width:var(--fu-sticky-logo-width) !important;
  height:var(--fu-sticky-logo-height) !important;
  max-width:none !important;
  max-height:none !important;
  margin:0 auto 0 0 !important;
  object-fit:contain !important;
  object-position:left center !important;
  transform:none !important;
}

/* Mobile keeps the fixed compact header. */
@media(max-width:768px){
  .main-header1 .fu-logo{
    width:min(var(--fu-logo-width),130px) !important;
    flex-basis:min(var(--fu-logo-width),130px) !important;
    align-self:center !important;
  }

  .main-header1:not(.elementor-sticky--effects) .fu-logo{
    padding-top:0 !important;
    padding-bottom:0 !important;
  }

  .main-header1.elementor-sticky--effects .fu-logo{
    padding-top:0 !important;
    padding-bottom:0 !important;
  }

  .main-header1:not(.elementor-sticky--effects) .fu-logo .fu-logo-svg svg,
  .main-header1:not(.elementor-sticky--effects) .fu-logo .fu-logo-image{
    width:min(var(--fu-logo-width),130px) !important;
    height:auto !important;
  }

  .main-header1.elementor-sticky--effects .fu-logo .fu-logo-svg svg,
  .main-header1.elementor-sticky--effects .fu-logo .fu-logo-image{
    width:min(var(--fu-sticky-logo-width),130px) !important;
    height:auto !important;
  }
}


/* =========================================================
   FoodUp v0.12.11 — SMOOTH LOGO + HEADER STATE TRANSITION
   ========================================================= */

/* Parent row grows/shrinks smoothly. */
.main-header1 .fu-header-main{
  transition:
    height var(--fu-sticky-speed) cubic-bezier(.2,.7,.2,1),
    background var(--fu-sticky-speed) ease,
    border-color var(--fu-sticky-speed) ease,
    box-shadow var(--fu-sticky-speed) ease !important;
}

/* Normal/sticky spacing changes smoothly too. */
.main-header1 .fu-logo{
  transition:
    padding-top var(--fu-sticky-speed) cubic-bezier(.2,.7,.2,1),
    padding-bottom var(--fu-sticky-speed) cubic-bezier(.2,.7,.2,1) !important;
}

/*
 * Logo artwork transitions between the two explicit sizes.
 * Both width AND height animate, so there is no snap from height:auto.
 */
.main-header1 .fu-logo .fu-logo-svg svg,
.main-header1 .fu-logo .fu-logo-image{
  transition:
    width var(--fu-sticky-speed) cubic-bezier(.2,.7,.2,1),
    height var(--fu-sticky-speed) cubic-bezier(.2,.7,.2,1),
    opacity var(--fu-sticky-speed) ease !important;
  transform-origin:left center !important;
}

/* SVG logo color parts transition with the same timing. */
.main-header1 .fu-logo .fu-logo-svg svg *,
.main-header1 .fu-logo .fu-logo-svg svg path,
.main-header1 .fu-logo .fu-logo-svg svg g{
  transition:
    fill var(--fu-sticky-speed) ease,
    stroke var(--fu-sticky-speed) ease !important;
}


/* MOBILE LOGO TRANSITION v0.12.11 */
@media(max-width:768px){
  .main-header1 .fu-logo .fu-logo-svg svg,
  .main-header1 .fu-logo .fu-logo-image{
    transition:
      width var(--fu-sticky-speed) cubic-bezier(.2,.7,.2,1),
      opacity var(--fu-sticky-speed) ease !important;
  }
}


/* FoodUp v0.13.0 — Homepage configurable spacing */
body.home .fu-section{
  padding:var(--fu-home-section-padding-y) 0;
}
body.home .fu-card{
  border-radius:var(--fu-home-card-radius);
}
body.home .fu-promo,
body.home .fu-cta{
  border-radius:var(--fu-home-promo-radius);
}


/* =========================================================
   FoodUp v0.13.0 — CONTACT PAGE
   ========================================================= */

/*
 * Contact has its own fixed-header spacing. This avoids the generic page.php
 * padding and guarantees the custom contact hero/template is visible.
 */
body.foodup-contact-page main{
  padding-top:0 !important;
}

/* Eatime-style internal page header: top greeting stays visible, main row is surface. */
body.foodup-contact-page .main-header1:not(.elementor-sticky--effects){
  background:#f5f5f5;
  color:var(--fu-menu-sticky-color);
  border-bottom-color:#ccc;
}

body.foodup-contact-page .main-header1:not(.elementor-sticky--effects) .header-menu-white .fu-menu-link{
  color:var(--fu-menu-sticky-color);
}

body.foodup-contact-page .main-header1:not(.elementor-sticky--effects) .header-menu-white .fu-menu-link:hover,
body.foodup-contact-page .main-header1:not(.elementor-sticky--effects) .header-menu-white .fu-menu-home:hover{
  color:var(--fu-primary);
}

body.foodup-contact-page .main-header1:not(.elementor-sticky--effects) .account-btn{
  color:var(--fu-menu-sticky-color) !important;
}

/* Contact hero begins after the normal fixed header. */
body.foodup-contact-page .fu-contact-hero{
  margin-top:calc(var(--fu-topbar-height) + var(--fu-normal-header-row));
}

.fu-contact-hero{
  min-height:var(--fu-contact-hero-height);
  background-position:center center;
  background-size:cover;
}

.fu-contact-hero::before{
  background:rgba(0,0,0,var(--fu-contact-hero-overlay));
}

.fu-contact-hero__inner{
  min-height:var(--fu-contact-hero-height);
  padding:32px 20px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.fu-contact-hero h1{
  font-size:var(--fu-contact-hero-title-size);
}

.fu-contact-content{
  padding:var(--fu-contact-section-padding-y) 0;
}

.fu-contact-top-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:var(--fu-contact-grid-gap);
  align-items:stretch;
}

.fu-contact-bottom-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:var(--fu-contact-grid-gap);
  align-items:stretch;
  margin-top:var(--fu-contact-grid-gap);
}

.fu-contact-card{
  padding:var(--fu-contact-card-padding);
  border-radius:var(--fu-contact-card-radius);
}

.fu-contact-logo-card{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:260px;
}

.fu-contact-logo{
  width:min(78%,280px);
  display:flex;
  align-items:center;
  justify-content:center;
}

.fu-contact-logo .fu-logo-svg{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
}

.fu-contact-logo .fu-logo-svg svg,
.fu-contact-logo .fu-logo-image{
  width:100% !important;
  height:auto !important;
  max-width:100% !important;
  max-height:220px !important;
  display:block;
}

/* Contact card logo should use sticky/brand colors instead of hero-white colors. */
.fu-contact-logo .fu-logo-svg svg .black-part{
  fill:#000 !important;
  stroke:#000;
}
.fu-contact-logo .fu-logo-svg svg .orange-part{
  fill:var(--fu-primary) !important;
  stroke:var(--fu-primary);
}

.fu-contact-details-card,
.fu-contact-hours-card{
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.fu-contact-card h3{
  margin:0 0 18px;
  font-size:20px;
}

.fu-contact-line{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin:7px 0;
  color:var(--fu-text);
  line-height:1.5;
}

.fu-contact-line .ti{
  flex:0 0 18px;
  margin-top:2px;
  font-size:18px;
  color:var(--fu-primary);
}

.fu-contact-muted{
  margin:0;
  color:var(--fu-muted);
  line-height:1.6;
}

.fu-contact-map-card{
  min-height:var(--fu-contact-map-height);
  overflow:hidden;
  border:1px solid var(--fu-border);
  border-radius:var(--fu-contact-card-radius);
  background:#fff;
}

.fu-map{
  width:100%;
  min-height:var(--fu-contact-map-height);
  height:100%;
  border:0;
  border-radius:0;
}

@media(max-width:900px){
  .fu-contact-top-grid{
    grid-template-columns:1fr;
  }

  .fu-contact-bottom-grid{
    grid-template-columns:1fr;
  }

  .fu-contact-logo-card{
    min-height:200px;
  }
}

@media(max-width:768px){
  body.foodup-contact-page .fu-contact-hero{
    margin-top:64px;
  }

  .fu-contact-hero,
  .fu-contact-hero__inner{
    min-height:min(var(--fu-contact-hero-height),320px);
  }
}


/* =========================================================
   FoodUp v0.13.1 — INTERNAL PAGE HEADER
   ========================================================= */

/*
 * ONLY the homepage starts transparent and transforms on scroll.
 * Contact, Account, Order, AGB, Impressum and every other internal page
 * always use a normal surface header with the colored logo.
 */
body:not(.home) .main-header1{
  background:var(--fu-inner-header-bg) !important;
  color:var(--fu-menu-sticky-color) !important;
  border-bottom:1px solid var(--fu-inner-header-border) !important;
  box-shadow:0 0 10px rgba(0,0,0,var(--fu-inner-header-shadow-alpha)) !important;
}

body:not(.home) .main-header1 .fu-header-main{
  height:var(--fu-normal-header-row) !important;
  background:var(--fu-inner-header-bg) !important;
}

body:not(.home) .header-menu-white{
  display:none !important;
}

body:not(.home) .header-menu-black{
  display:flex !important;
}

body:not(.home) .header-menu-black .fu-menu-link{
  color:var(--fu-menu-sticky-color) !important;
}

body:not(.home) .header-menu-black .fu-menu-link:hover{
  color:var(--fu-primary) !important;
}

body:not(.home) .account-btn{
  color:var(--fu-menu-sticky-color) !important;
  border-color:var(--fu-primary) !important;
}

body:not(.home) .account-btn:hover{
  color:#fff !important;
  background:var(--fu-primary) !important;
}

/* Internal-page logo uses the normal/base physical size and spacing. */
body:not(.home) .main-header1 .fu-logo{
  padding-top:var(--fu-logo-padding-top) !important;
  padding-bottom:var(--fu-logo-padding-bottom) !important;
}

body:not(.home) .main-header1 .fu-logo .fu-logo-svg svg,
body:not(.home) .main-header1 .fu-logo .fu-logo-image{
  width:var(--fu-logo-width) !important;
  height:var(--fu-logo-height) !important;
  transform:none !important;
}

/* Dynamic fixed-header clearance for ordinary internal pages. */
body:not(.home) main:not(.fu-account-page):not(.fu-contact-page){
  padding-top:calc(var(--fu-topbar-height) + var(--fu-normal-header-row)) !important;
}

/* Contact already has a hero; use the same calculated fixed-header clearance. */
body.foodup-contact-page .fu-contact-hero{
  margin-top:calc(var(--fu-topbar-height) + var(--fu-normal-header-row)) !important;
}


/* v0.13.1 supersedes the old contact-only initial-header rules. */
body.foodup-contact-page .main-header1:not(.elementor-sticky--effects){
  background:var(--fu-inner-header-bg) !important;
  color:var(--fu-menu-sticky-color) !important;
  border-bottom-color:var(--fu-inner-header-border) !important;
}


/* =========================================================
   FoodUp v0.13.1 — ACCOUNT SLIDER EXPERIENCE
   ========================================================= */

.fu-account-page{
  min-height:100vh;
  padding:
    calc(var(--fu-topbar-height) + var(--fu-normal-header-row) + 42px)
    20px
    90px !important;
  background:var(--fu-account-page-bg) !important;
}

.fu-account-shell{
  width:min(1080px,100%);
  margin:0 auto;
}

.fu-account-heading--auth{
  max-width:760px;
  margin:0 auto 24px;
  text-align:center;
}

.fu-account-heading h1{
  font-size:clamp(30px,4vw,var(--fu-account-title-size));
}

.fu-auth-experience{
  width:min(var(--fu-account-form-width),100%);
  margin:0 auto;
}

.fu-auth-switcher{
  position:relative;
  width:100%;
  height:var(--fu-account-switch-height);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
  padding:4px;
  margin:0 auto 16px;
  overflow:hidden;
  border:1px solid #d8dde5;
  border-radius:var(--fu-account-switch-radius);
  background:#e9edf2;
  box-shadow:inset 0 1px 2px rgba(16,24,40,.04);
}

.fu-auth-switcher__slider{
  position:absolute;
  z-index:0;
  top:4px;
  bottom:4px;
  left:4px;
  width:calc(50% - 4px);
  border-radius:max(6px,calc(var(--fu-account-switch-radius) - 4px));
  background:var(--fu-primary);
  box-shadow:0 5px 14px rgba(0,0,0,.12);
  transform:translateX(0);
  transition:
    transform var(--fu-account-animation) cubic-bezier(.34,1.56,.64,1),
    background var(--fu-account-animation) ease;
}

.fu-auth-switcher.is-register .fu-auth-switcher__slider{
  transform:translateX(100%);
}

.fu-auth-switcher__tab{
  position:relative;
  z-index:1;
  min-width:0;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:0;
  border-radius:max(6px,calc(var(--fu-account-switch-radius) - 4px));
  background:transparent;
  color:#525a68;
  font-weight:700;
  cursor:pointer;
  transition:
    color calc(var(--fu-account-animation) * .7) ease,
    transform calc(var(--fu-account-animation) * .7) cubic-bezier(.34,1.56,.64,1);
}

.fu-auth-switcher__tab:hover{
  color:#111827;
}

.fu-auth-switcher__tab.is-active{
  color:#fff;
}

.fu-auth-switcher__tab.is-active .ti{
  transform:scale(1.08);
}

.fu-auth-switcher__tab .ti{
  font-size:18px;
  transition:transform var(--fu-account-animation) cubic-bezier(.34,1.56,.64,1);
}

.fu-auth-stage{
  position:relative;
  width:100%;
  min-height:1px;
  overflow:hidden;
  transition:height var(--fu-account-animation) cubic-bezier(.2,.75,.2,1);
}

.fu-auth-panel{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateX(52px) scale(.985);
  transition:
    opacity calc(var(--fu-account-animation) * .7) ease,
    transform var(--fu-account-animation) cubic-bezier(.34,1.56,.64,1),
    visibility 0s linear var(--fu-account-animation);
}

.fu-auth-panel.is-before{
  transform:translateX(-52px) scale(.985);
}

.fu-auth-panel.is-after{
  transform:translateX(52px) scale(.985);
}

.fu-auth-panel.is-active{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateX(0) scale(1);
  transition-delay:0s;
}

.fu-auth-panel--bounce.is-active{
  animation:fu-auth-panel-bounce var(--fu-account-animation) cubic-bezier(.34,1.56,.64,1);
}

@keyframes fu-auth-panel-bounce{
  0%{transform:translateX(28px) scale(.97);opacity:.2}
  58%{transform:translateX(-5px) scale(1.008);opacity:1}
  78%{transform:translateX(2px) scale(.997)}
  100%{transform:translateX(0) scale(1);opacity:1}
}

.fu-auth-card,
.fu-account-card{
  border-radius:var(--fu-account-card-radius) !important;
}

.fu-auth-card{
  padding:var(--fu-account-card-padding) !important;
  border:1px solid #dde2e8;
  background:#fff;
  box-shadow:
    0 14px 36px rgba(16,24,40,.08),
    0 2px 6px rgba(16,24,40,.04);
}

.fu-auth-card__header{
  margin-bottom:24px;
}

.fu-auth-icon{
  width:46px;
  height:46px;
  border-radius:14px;
  background:color-mix(in srgb,var(--fu-primary) 10%,#fff);
  color:var(--fu-primary);
}

.fu-auth-icon .ti{
  font-size:21px;
}

.fu-auth-form{
  gap:12px;
}

.fu-auth-form input[type="text"],
.fu-auth-form input[type="email"],
.fu-auth-form input[type="tel"],
.fu-auth-form input[type="password"]{
  height:50px;
  border:1px solid #ccd3dc;
  border-radius:12px;
  background:#fff;
  font-size:15px;
  transition:
    border-color .18s ease,
    box-shadow .18s ease,
    transform .18s ease;
}

.fu-auth-form input:focus{
  transform:translateY(-1px);
}

.fu-input-wrap>.ti{
  position:absolute;
  z-index:2;
  left:14px;
  top:50%;
  transform:translateY(-50%);
  width:18px;
  display:inline-flex;
  justify-content:center;
  color:#788294;
  font-size:18px;
  pointer-events:none;
}

.fu-input-wrap>input{
  padding-left:43px !important;
}

.fu-password-wrap>input{
  padding-right:48px !important;
}

.fu-password-toggle{
  color:#697386;
}

.fu-password-toggle .ti{
  font-size:18px;
}

.fu-auth-submit{
  height:50px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  border:0;
  border-radius:12px;
  background:var(--fu-primary);
  color:#fff;
  box-shadow:0 5px 14px color-mix(in srgb,var(--fu-primary) 25%,transparent);
  transition:
    transform .18s cubic-bezier(.34,1.56,.64,1),
    box-shadow .18s ease,
    filter .18s ease;
}

.fu-auth-submit:hover{
  transform:translateY(-2px);
  filter:brightness(1.04);
  box-shadow:0 8px 18px color-mix(in srgb,var(--fu-primary) 30%,transparent);
}

.fu-auth-submit:active{
  transform:translateY(0) scale(.985);
}

@media(max-width:768px){
  .fu-account-page{
    padding:
      calc(64px + 24px)
      14px
      90px !important;
  }

  .fu-account-heading--auth{
    text-align:left;
  }

  .fu-auth-switcher__tab{
    font-size:13px;
  }

  .fu-form-row{
    grid-template-columns:1fr;
  }

  .fu-auth-panel{
    transform:translateX(28px) scale(.99);
  }

  .fu-auth-panel.is-before{
    transform:translateX(-28px) scale(.99);
  }

  .fu-auth-panel.is-after{
    transform:translateX(28px) scale(.99);
  }
}

@media(prefers-reduced-motion:reduce){
  .fu-auth-switcher__slider,
  .fu-auth-switcher__tab,
  .fu-auth-stage,
  .fu-auth-panel,
  .fu-auth-panel--bounce.is-active{
    transition:none !important;
    animation:none !important;
  }
}


/* =========================================================
   FoodUp v0.13.2 — LIGHT AUTH SWITCHER + CLEAN ANIMATION
   ========================================================= */

/* Lighter overall switcher: less border, less contrast, no heavy inset feel. */
.fu-auth-switcher{
  padding:3px !important;
  border:1px solid #e0e4e9 !important;
  background:#eef1f4 !important;
  box-shadow:none !important;
}

/* Selected orange slider is flatter/lighter — no shadow and no heavy outline. */
.fu-auth-switcher__slider{
  top:3px !important;
  bottom:3px !important;
  left:3px !important;
  width:calc(50% - 3px) !important;
  border:0 !important;
  box-shadow:none !important;
  background:var(--fu-primary) !important;
  transition:none !important;
}

/* Tab labels are a little lighter when inactive. */
.fu-auth-switcher__tab{
  font-weight:650 !important;
  color:#667085 !important;
  transition:
    color 180ms ease,
    transform 180ms ease !important;
}

.fu-auth-switcher__tab.is-active{
  color:#fff !important;
}

/*
 * Slider-only bounce.
 * The form/card itself never bounces.
 */
.fu-auth-switcher.is-register.fu-auth-switcher--bounce .fu-auth-switcher__slider{
  animation:fu-auth-slider-to-register var(--fu-account-animation) cubic-bezier(.22,.8,.2,1) both;
}

.fu-auth-switcher.is-login.fu-auth-switcher--bounce .fu-auth-switcher__slider{
  animation:fu-auth-slider-to-login var(--fu-account-animation) cubic-bezier(.22,.8,.2,1) both;
}

@keyframes fu-auth-slider-to-register{
  0%   { transform:translateX(0); }
  62%  { transform:translateX(104%); }
  78%  { transform:translateX(98.5%); }
  90%  { transform:translateX(100.7%); }
  100% { transform:translateX(100%); }
}

@keyframes fu-auth-slider-to-login{
  0%   { transform:translateX(100%); }
  62%  { transform:translateX(-4%); }
  78%  { transform:translateX(1.5%); }
  90%  { transform:translateX(-.7%); }
  100% { transform:translateX(0); }
}

/* Static end positions when no bounce animation is currently running. */
.fu-auth-switcher.is-login:not(.fu-auth-switcher--bounce) .fu-auth-switcher__slider{
  transform:translateX(0) !important;
}

.fu-auth-switcher.is-register:not(.fu-auth-switcher--bounce) .fu-auth-switcher__slider{
  transform:translateX(100%) !important;
}

/*
 * Form panels now simply slide/fade into view smoothly.
 * No scale bounce, overshoot or container jump.
 */
.fu-auth-panel{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateX(24px) !important;
  transition:
    opacity 260ms ease,
    transform var(--fu-account-animation) cubic-bezier(.2,.72,.2,1),
    visibility 0s linear var(--fu-account-animation) !important;
}

.fu-auth-panel.is-before{
  transform:translateX(-24px) !important;
}

.fu-auth-panel.is-after{
  transform:translateX(24px) !important;
}

.fu-auth-panel.is-active{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateX(0) !important;
  transition-delay:0s !important;
}

/* Disable the old panel bounce animation completely. */
.fu-auth-panel--bounce,
.fu-auth-panel--bounce.is-active{
  animation:none !important;
}

/* Cleaner card appearance; form container itself stays visually stable. */
.fu-auth-card{
  box-shadow:0 8px 24px rgba(16,24,40,.055) !important;
}

/* Orange action button: flat Material-style button, no shadow. */
.fu-auth-submit,
.fu-auth-submit:hover,
.fu-auth-submit:focus,
.fu-auth-submit:active{
  box-shadow:none !important;
}

.fu-auth-submit:hover{
  transform:translateY(-1px) !important;
}

.fu-auth-submit:active{
  transform:scale(.99) !important;
}

/* The stage height can still adapt smoothly, but it does not bounce. */
.fu-auth-stage{
  transition:height 300ms cubic-bezier(.2,.72,.2,1) !important;
}

/* Reduced-motion users get immediate state changes. */
@media(prefers-reduced-motion:reduce){
  .fu-auth-switcher__slider,
  .fu-auth-panel,
  .fu-auth-stage{
    animation:none !important;
    transition:none !important;
  }
}


/* =========================================================
   FoodUp v0.13.3 — ACCOUNT HEADING WIDTH ALIGNMENT
   ========================================================= */

/*
 * The heading, subtitle, selector and form now share the exact
 * same horizontal footprint. Text will wrap before it can extend
 * beyond the form edges.
 */
.fu-account-heading--auth,
.fu-auth-experience{
  width:min(var(--fu-account-form-width),100%) !important;
  max-width:var(--fu-account-form-width) !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

.fu-account-heading--auth h1,
.fu-account-heading--auth p{
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
  overflow-wrap:break-word;
}

.fu-account-heading--auth h1{
  margin-left:auto !important;
  margin-right:auto !important;
  line-height:1.14;
}

/* Keep subtitle visually inside the same form width too. */
.fu-account-heading--auth p{
  margin-left:auto !important;
  margin-right:auto !important;
}

/* Mobile remains naturally fluid. */
@media(max-width:768px){
  .fu-account-heading--auth,
  .fu-auth-experience{
    width:100% !important;
    max-width:100% !important;
  }
}


/* =========================================================
   FoodUp v0.13.4 — HOMEPAGE FOOTER
   ========================================================= */

.fu-home-footer{
  position:relative;
  overflow:hidden;
  background:var(--fu-footer-bg);
  color:var(--fu-footer-text);
}

.fu-home-footer__accent{
  width:100%;
  height:3px;
  background:linear-gradient(
    90deg,
    transparent 0,
    var(--fu-primary) 18%,
    var(--fu-primary) 82%,
    transparent 100%
  );
}

.fu-home-footer>.fu-container{
  padding-top:var(--fu-footer-padding-y);
  padding-bottom:26px;
}

.fu-home-footer__grid{
  display:grid;
  grid-template-columns:minmax(240px,1.45fr) repeat(3,minmax(150px,1fr));
  gap:clamp(28px,4vw,64px);
  align-items:start;
}

.fu-home-footer__brand{
  max-width:330px;
}

.fu-home-footer__logo{
  width:var(--fu-footer-logo-width);
  display:flex;
  align-items:center;
  justify-content:flex-start;
  margin-bottom:20px;
}

.fu-home-footer__logo .fu-logo-svg,
.fu-home-footer__logo .fu-logo-image{
  width:100% !important;
  display:block;
}

.fu-home-footer__logo .fu-logo-svg svg,
.fu-home-footer__logo .fu-logo-image{
  width:100% !important;
  height:auto !important;
  max-width:100% !important;
  display:block;
}

.fu-home-footer__intro{
  max-width:300px;
  margin:0 0 22px;
  color:var(--fu-footer-muted);
  font-size:var(--fu-footer-link-size);
  line-height:1.65;
}

.fu-home-footer__order{
  width:max-content;
  min-height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:0 16px;
  border-radius:var(--fu-footer-order-radius);
  background:var(--fu-primary);
  color:#fff;
  font-size:var(--fu-footer-link-size);
  font-weight:700;
  transition:
    transform .18s ease,
    filter .18s ease;
}

.fu-home-footer__order:hover{
  color:#fff;
  filter:brightness(1.06);
  transform:translateY(-1px);
}

.fu-home-footer__column h3{
  position:relative;
  margin:3px 0 20px;
  color:var(--fu-footer-text);
  font-size:var(--fu-footer-heading-size);
  font-weight:700;
}

.fu-home-footer__column h3::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-9px;
  width:28px;
  height:2px;
  border-radius:999px;
  background:var(--fu-primary);
}

.fu-home-footer__links,
.fu-home-footer__contact{
  display:flex;
  flex-direction:column;
  gap:11px;
}

.fu-home-footer__links a,
.fu-home-footer__contact a,
.fu-home-footer__contact>div{
  color:var(--fu-footer-muted);
  font-size:var(--fu-footer-link-size);
  line-height:1.5;
}

.fu-home-footer__links a{
  width:max-content;
  max-width:100%;
  transition:
    color .18s ease,
    transform .18s ease;
}

.fu-home-footer__links a:hover{
  color:var(--fu-footer-text);
  transform:translateX(3px);
}

.fu-home-footer__contact a,
.fu-home-footer__contact>div{
  display:flex;
  align-items:flex-start;
  gap:9px;
}

.fu-home-footer__contact .ti{
  flex:0 0 17px;
  margin-top:2px;
  color:var(--fu-primary);
  font-size:17px;
}

.fu-home-footer__contact a:hover{
  color:var(--fu-footer-text);
}

.fu-home-footer__bottom{
  min-height:64px;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  margin-top:44px;
  padding-top:22px;
  border-top:1px solid var(--fu-footer-divider);
  color:var(--fu-footer-muted);
  font-size:12px;
}

.fu-home-footer__bottom-links{
  display:flex;
  align-items:center;
  gap:9px;
}

.fu-home-footer__bottom a{
  color:var(--fu-footer-muted);
}

.fu-home-footer__bottom a:hover{
  color:var(--fu-footer-text);
}

/* Supersede the old generic footer styles. */
.fu-footer{
  display:none !important;
}

@media(max-width:900px){
  .fu-home-footer__grid{
    grid-template-columns:1.4fr 1fr;
  }
}

@media(max-width:600px){
  .fu-home-footer>.fu-container{
    padding-top:42px;
    padding-bottom:105px;
  }

  .fu-home-footer__grid{
    grid-template-columns:1fr;
    gap:32px;
  }

  .fu-home-footer__brand{
    max-width:none;
  }

  .fu-home-footer__intro{
    max-width:420px;
  }

  .fu-home-footer__bottom{
    align-items:flex-start;
    flex-direction:column;
    gap:12px;
    margin-top:36px;
  }
}


/* =========================================================
   FoodUp v0.13.5 — INTERNAL PAGE CLEARANCE + FULL WIDTH
   ========================================================= */

/*
 * Every internal page gets real visual breathing room below the fixed header.
 * This is in addition to the exact fixed-header height.
 */
body:not(.home) main:not(.fu-account-page):not(.fu-contact-page){
  padding-top:
    calc(
      var(--fu-topbar-height)
      + var(--fu-normal-header-row)
      + var(--fu-inner-page-gap)
    ) !important;
}

/* Contact hero also stays separated from the fixed header. */
body.foodup-contact-page .fu-contact-hero{
  margin-top:
    calc(
      var(--fu-topbar-height)
      + var(--fu-normal-header-row)
      + var(--fu-inner-page-gap)
    ) !important;
}

/* Account already has additional design spacing; include the same base gap. */
.fu-account-page{
  padding-top:
    calc(
      var(--fu-topbar-height)
      + var(--fu-normal-header-row)
      + var(--fu-inner-page-gap)
      + 14px
    ) !important;
}

/*
 * Generic internal pages (AGB, Impressum and normal pages) fill the available
 * browser width instead of being constrained to the 1140px site container.
 * Keep a clean 32px desktop gutter.
 */
@media(min-width:769px){
  body:not(.home) .fu-internal-page > .fu-container,
  body:not(.home) main.fu-section > .fu-container{
    width:calc(100% - 64px) !important;
    max-width:none !important;
    margin-left:32px !important;
    margin-right:32px !important;
  }
}

@media(max-width:768px){
  body:not(.home) .fu-internal-page > .fu-container,
  body:not(.home) main.fu-section > .fu-container{
    width:100% !important;
    max-width:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }

  .fu-ordering-page-shell{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
    background:#f5f5f6 !important;
    box-shadow:none !important;
    overflow-x:hidden !important;
  }

  .fu-ordering-page-shell > .fu-container{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
  }

}

/* Legal cards fill their parent instead of being capped at 900px. */
body:not(.home) .fu-legal{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  box-sizing:border-box !important;
}

/* =========================================================
   FoodUp v0.13.5 — SOLID BLACK TOP GREETING BAR
   ========================================================= */

/*
 * Normal visible top bar is always pure black with white content.
 * Homepage sticky state still collapses to the existing orange 5px strip.
 */
.main-header1:not(.elementor-sticky--effects) .header-top{
  background:#000 !important;
  color:#fff !important;
  border-left-color:#000 !important;
  border-right-color:#000 !important;
  border-bottom-color:#000 !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}

.main-header1:not(.elementor-sticky--effects) .header-top,
.main-header1:not(.elementor-sticky--effects) .header-top *,
.main-header1:not(.elementor-sticky--effects) .user-greeting-styled,
.main-header1:not(.elementor-sticky--effects) .header-ad,
.main-header1:not(.elementor-sticky--effects) .fu-top-item{
  color:#fff !important;
}

/* Keep all header-top icons white too. */
.main-header1:not(.elementor-sticky--effects) .header-top .ti{
  color:#fff !important;
}

/* Mobile gutters stay compact. */
@media(max-width:768px){
  body:not(.home) .fu-internal-page > .fu-container,
  body:not(.home) main.fu-section > .fu-container{
    width:calc(100% - 28px) !important;
    margin-left:14px !important;
    margin-right:14px !important;
  }

  body:not(.home) main:not(.fu-account-page):not(.fu-contact-page){
    padding-top:calc(64px + var(--fu-inner-page-gap)) !important;
  }

  body.foodup-contact-page .fu-contact-hero{
    margin-top:calc(64px + var(--fu-inner-page-gap)) !important;
  }

  .fu-account-page{
    padding-top:calc(64px + var(--fu-inner-page-gap)) !important;
  }
}


/* =========================================================
   FoodUp v0.13.6 — LIGHTER HOME STICKY HEADER EDGE
   ========================================================= */

/*
 * The old 2px border + centered 10px shadow created a heavy dark line.
 * Homepage sticky now uses a fine 1px separator and a soft downward shadow.
 * Existing Sticky shadow strength still controls the effect, but is attenuated
 * so normal values do not look harsh.
 */
body.home .main-header1.elementor-sticky--effects{
  border-bottom-width:1px !important;
  border-bottom-style:solid !important;
  border-bottom-color:rgba(0,0,0,.08) !important;
  box-shadow:
    0 3px 8px
    rgba(0,0,0,calc(var(--fu-sticky-shadow-alpha) * .45)) !important;
}


/* =========================================================
   FoodUp v0.13.7 — BANNER DIRECTLY BELOW HEADER
   ========================================================= */

/*
 * Large visual banners are different from ordinary page content:
 * - ordinary text/card pages keep --fu-inner-page-gap
 * - full-width hero/banner images start immediately after the fixed header
 *
 * This avoids the empty grey strip between the internal header and banner.
 */
body:not(.home) .fu-under-header-banner{
  margin-top:
    calc(
      var(--fu-topbar-height)
      + var(--fu-normal-header-row)
    ) !important;
}

/* Contact uses the shared banner behavior. */
body.foodup-contact-page .fu-contact-hero{
  margin-top:
    calc(
      var(--fu-topbar-height)
      + var(--fu-normal-header-row)
    ) !important;
}

/* The banner itself stays edge-to-edge. */
body:not(.home) .fu-under-header-banner{
  width:100% !important;
  max-width:none !important;
}

/* Mobile internal header is the compact 64px header. */
@media(max-width:768px){
  body:not(.home) .fu-under-header-banner,
  body.foodup-contact-page .fu-contact-hero{
    margin-top:64px !important;
  }
}


/* =========================================================
   FoodUp v0.13.8 — COMPACT INTERNAL-PAGE TOP STRIP
   ========================================================= */

/*
 * Homepage keeps the full greeting/address top bar and collapses it on scroll.
 *
 * Every NON-home page starts directly in the compact state:
 * - no greeting
 * - no address / phone content
 * - 5px BLACK top strip
 * - no delayed header-size transition
 *
 * Defining --fu-topbar-height on body is intentional: all existing internal
 * page clearances and FoodUp Ordering sticky fallbacks inherit the same exact
 * 5px value, so header and ordering layout cannot disagree.
 */
body:not(.home){
  --fu-topbar-height:5px;
}

body:not(.home) .main-header1 .header-top{
  display:block!important;
  height:5px!important;
  min-height:5px!important;
  max-height:5px!important;
  padding:0!important;
  overflow:hidden!important;
  background:#000!important;
  border-left-color:#000!important;
  border-right-color:#000!important;
  border-bottom-color:#000!important;
  border-radius:0 0 5px 5px!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  transition:none!important;
}

body:not(.home) .main-header1 .fu-header-top-content,
body:not(.home) .main-header1 .user-greeting-styled,
body:not(.home) .main-header1 .header-ad{
  display:none!important;
}

/*
 * Internal pages are already in their final header state, so do not animate
 * the fixed header dimensions on first paint.
 */
body:not(.home) .main-header1,
body:not(.home) .main-header1 .fu-header-main{
  transition:none!important;
}

/* Mobile already uses the dedicated compact 64px header with no top bar. */
@media(max-width:768px){
  body:not(.home){
    --fu-topbar-height:0px;
  }

  body:not(.home) .main-header1 .header-top{
    display:none!important;
    height:0!important;
    min-height:0!important;
    max-height:0!important;
  }
}


/* =========================================================
   FoodUp Theme v0.13.14 — MOBILE SHELL FOR EATIME-BASED UI
   ========================================================= */

.fu-mobile-hero-logo{display:none}

@media(max-width:768px){
  html,
  body{
    overflow-x:hidden!important;
  }

  body{
    padding-bottom:66px!important;
    background:#fff!important;
  }

  /* No desktop header on mobile. */
  .main-header1{display:none!important}

  body:not(.home) main:not(.fu-account-page):not(.fu-contact-page),
  body.foodup-contact-page .fu-contact-hero,
  body:not(.home) .fu-under-header-banner{
    padding-top:0!important;
    margin-top:0!important;
  }

  /*
   * Critical: Ordering page truly fills the viewport.
   * This removes the gray side frame / right-side pseudo shadow.
   */
  body.fuo-ordering-page .fu-internal-page,
  .fu-ordering-page-shell{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    background:#f5f5f6!important;
  }

  body.fuo-ordering-page .fu-internal-page>.fu-container,
  .fu-ordering-page-shell>.fu-container{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
  }


  /* Home keeps the user-requested large white centered logo. */
  .fu-hero{
    min-height:100svh!important;
    height:100svh!important;
  }

  .fu-hero__content{
    width:calc(100% - 32px)!important;
    min-height:100%!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    padding:24px 0 86px!important;
    text-align:center!important;
  }

  .fu-mobile-hero-logo{
    width:min(56vw,210px)!important;
    display:block!important;
    margin:0 auto 18px!important;
    line-height:0!important;
  }

  .fu-mobile-hero-logo .fu-logo-svg,
  .fu-mobile-hero-logo .fu-logo-svg svg,
  .fu-mobile-hero-logo .fu-logo-image{
    width:100%!important;
    height:auto!important;
    display:block!important;
  }

  .fu-mobile-hero-logo .fu-logo-svg svg *{
    fill:#fff!important;
    stroke:#fff!important;
  }

  .fu-mobile-hero-logo .fu-logo-image{
    filter:brightness(0) invert(1)!important;
  }

  /* Full-width, flat bottom nav like the current Eatime app/web style. */
  .fu-bottom-nav{
    position:fixed!important;
    z-index:1650!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    width:100%!important;
    min-height:66px!important;
    display:flex!important;
    gap:0!important;
    padding:4px 5px max(4px,env(safe-area-inset-bottom))!important;
    border:0!important;
    border-top:1px solid #dedfe2!important;
    border-radius:0!important;
    background:rgba(255,255,255,.98)!important;
    box-shadow:none!important;
    backdrop-filter:blur(14px)!important;
    -webkit-backdrop-filter:blur(14px)!important;
  }

  .fu-bottom-nav a{
    flex:1 1 0!important;
    min-width:0!important;
    min-height:54px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:2px!important;
    padding:3px!important;
    border-radius:0!important;
    background:transparent!important;
    color:#7f868d!important;
    font-size:9px!important;
    font-weight:700!important;
    box-shadow:none!important;
  }

  .fu-bottom-nav a .ti{
    font-size:19px!important;
  }

  .fu-bottom-nav a.is-active{
    background:transparent!important;
    color:var(--fu-primary)!important;
  }

  .fu-bottom-nav a:active{
    transform:scale(.96)!important;
  }

  body.woocommerce-checkout .fu-bottom-nav,
  body.fuo-order-confirmation-page .fu-bottom-nav{
    display:none!important;
  }

  body.woocommerce-checkout,
  body.fuo-order-confirmation-page{
    padding-bottom:0!important;
  }
}


/* =========================================================
   FoodUp Theme v0.13.16 — ORDERING PAGE STRUCTURAL SHELL
   ========================================================= */

.fu-ordering-page-shell{
  width:100%;
  max-width:none;
  margin:0;
  padding:0;
}

@media(max-width:768px){
  html,
  body.fuo-ordering-page{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding-left:0!important;
    padding-right:0!important;
    overflow-x:hidden!important;
    background:#f5f5f6!important;
  }

  /*
   * The ordering shortcode is now rendered DIRECTLY in this shell.
   * There is no .fu-container and no article wrapper around it anymore.
   */
  .fu-ordering-page-shell{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    background:#f5f5f6!important;
    box-shadow:none!important;
    overflow-x:hidden!important;
  }

  .fu-ordering-page-shell .foodup-ordering{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
  }
}


/* =========================================================
   FoodUp Theme v0.13.17 — ORDERING STICKY CONTAINMENT FIX
   ========================================================= */

@media(max-width:768px){
  /*
   * Do not use overflow:hidden on any ancestor of FoodUp's sticky category
   * menu. `clip` prevents horizontal spill without becoming a scroll container.
   */
  html,
  body.fuo-ordering-page,
  .fu-ordering-page-shell{
    overflow-x:clip!important;
  }

  .fu-ordering-page-shell{
    overflow-y:visible!important;
    box-shadow:none!important;
    filter:none!important;
    border:0!important;
  }

  .fu-ordering-page-shell .foodup-ordering{
    overflow-x:clip!important;
    overflow-y:visible!important;
    box-shadow:none!important;
    filter:none!important;
  }

  /* Site bottom nav remains flat and never creates an outer page shadow. */
  body.fuo-ordering-page .fu-bottom-nav{
    box-shadow:none!important;
    filter:none!important;
  }
}


/* =========================================================
   FoodUp Theme v0.13.18 — ORDERING SHELL HARD RESET
   ========================================================= */
@media(max-width:768px){
  html,
  body.fuo-ordering-page,
  .fu-ordering-page-shell{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin:0!important;
    padding-left:0!important;
    padding-right:0!important;
    border:0!important;
    box-shadow:none!important;
    filter:none!important;
    background:#f5f5f6!important;
    overflow-x:clip!important;
  }

  .fu-ordering-page-shell{
    overflow-y:visible!important;
  }

  .fu-ordering-page-shell .foodup-ordering{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin:0!important;
    border:0!important;
    box-shadow:none!important;
    filter:none!important;
    overflow:visible!important;
  }

  body.fuo-ordering-page .fu-bottom-nav{
    box-shadow:none!important;
    filter:none!important;
  }
}

/* FoodUp Theme v0.14.0 — clean ordering page canvas */
@media(max-width:768px){html,body.fuo-ordering-page,.fu-ordering-page-shell{width:100%!important;max-width:none!important;margin:0!important;padding-left:0!important;padding-right:0!important;border:0!important;box-shadow:none!important;filter:none!important;background:#f4f5f7!important;overflow-x:clip!important}.fu-ordering-page-shell{overflow-y:visible!important}.fu-ordering-page-shell .foodup-ordering{width:100%!important;max-width:none!important;margin:0!important;box-shadow:none!important;filter:none!important;overflow:visible!important}}


/* =========================================================
   FoodUp Theme v0.14.1 — CLEAN ORDERING SHELL OWNERSHIP
   IMPORTANT: never target descendant article elements here.
   Product cards inside FoodUp are <article> elements and belong to the plugin.
   ========================================================= */
@media(max-width:768px){
  html,
  body.fuo-ordering-page,
  .fu-ordering-page-shell{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin:0!important;
    padding-left:0!important;
    padding-right:0!important;
    border:0!important;
    background:#f4f5f7!important;
    box-shadow:none!important;
    filter:none!important;
    overflow-x:clip!important;
  }

  .fu-ordering-page-shell{
    padding-top:0!important;
    padding-bottom:0!important;
    overflow-y:visible!important;
  }

  .fu-ordering-page-shell > .foodup-ordering,
  .fu-ordering-page-shell .foodup-ordering{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin:0!important;
  }
}
