
.rro-auto-menu{width:100%}
.rro-menu-nav{background:#fff;z-index:80;border-bottom:1px solid rgba(0,0,0,.08)}
.rro-menu-nav.is-sticky{position:sticky;top:0}
.rro-menu-nav__inner{display:flex;gap:28px;overflow-x:auto;scrollbar-width:none;padding:14px 0;white-space:nowrap}
.rro-menu-nav__inner::-webkit-scrollbar{display:none}
.rro-menu-nav__link{color:inherit;text-decoration:none;font-weight:600;padding:7px 0;border-bottom:2px solid transparent}
.rro-menu-nav__link.is-active{border-bottom-color:currentColor}
.rro-menu-section{scroll-margin-top:90px;padding:34px 0 10px}
.rro-menu-section__title{margin:0 0 20px}
.rro-menu-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.rro-menu-card{position:relative;display:flex;justify-content:space-between;gap:18px;border:1px solid rgba(0,0,0,.12);border-radius:8px;background:#fff;padding:20px;min-height:132px}
.rro-menu-card__content{min-width:0;padding-right:44px}
.rro-menu-card__title{font-size:18px;line-height:1.3;margin:0 0 8px}
.rro-menu-card__description{font-size:14px;line-height:1.45;opacity:.72}
.rro-menu-card__description p{margin:0}
.rro-menu-card__price{font-weight:700;margin-top:12px}
.rro-menu-card__add{position:absolute;right:16px;bottom:16px;width:36px;height:36px;border:0;border-radius:50%;font-size:24px;line-height:36px;cursor:pointer}
@media(max-width:767px){
  .rro-menu-grid{grid-template-columns:1fr}
  .rro-menu-nav__inner{gap:20px}
  .rro-menu-section{padding-top:28px}
}


/* 0.6.5: keep sticky restaurant navigation below the WordPress/Divi admin bar
   while logged in. Logged-out visitors still use top:0. */
body.admin-bar .rro-menu-nav.is-sticky { top: 32px; }
@media screen and (max-width: 782px) {
  body.admin-bar .rro-menu-nav.is-sticky { top: 46px; }
}


/* 0.6.6: horizontal category navigation with left/right controls */
.rro-menu-nav{
  display:flex;
  align-items:center;
  gap:6px;
}
.rro-menu-nav__viewport{
  flex:1 1 auto;
  min-width:0;
  overflow:hidden;
}
.rro-menu-nav__inner{
  scroll-behavior:smooth;
}
.rro-menu-nav__arrow{
  flex:0 0 38px;
  width:38px;
  height:38px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:50%;
  background:#fff;
  color:inherit;
  font-size:28px;
  line-height:1;
  cursor:pointer;
  box-shadow:0 1px 6px rgba(0,0,0,.10);
  transition:opacity .2s ease, transform .2s ease;
}
.rro-menu-nav__arrow:hover{transform:scale(1.04)}
.rro-menu-nav__arrow:disabled{
  opacity:.25;
  cursor:default;
  transform:none;
}
@media(max-width:767px){
  .rro-menu-nav__arrow{
    flex-basis:34px;
    width:34px;
    height:34px;
    font-size:25px;
  }
}


/* =========================================================
   0.6.7 – Restaurant menu design refinement only
   No menu/query/modal/navigation logic changed.
   ========================================================= */

.rro-auto-menu{
  --rro-line: rgba(25,25,25,.10);
  --rro-muted: rgba(25,25,25,.54);
  --rro-soft: rgba(25,25,25,.045);
  --rro-text: #222;
  color:var(--rro-text);
}

/* More breathing room between menu sections */
.rro-menu-section{
  margin-top:48px;
  scroll-margin-top:96px;
}
.rro-menu-section:first-of-type{
  margin-top:30px;
}
.rro-menu-section__title{
  margin:0 0 22px;
  font-size:28px;
  line-height:1.2;
  font-weight:600;
  letter-spacing:-.02em;
}

/* Quieter, lighter product cards */
.rro-menu-grid{
  gap:14px 16px;
}
.rro-menu-card{
  position:relative;
  min-height:132px;
  padding:21px 64px 20px 21px;
  border:1px solid var(--rro-line);
  border-radius:9px;
  background:#fff;
  box-shadow:none;
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.rro-menu-card:hover{
  border-color:rgba(25,25,25,.17);
  box-shadow:0 5px 18px rgba(0,0,0,.035);
  transform:translateY(-1px);
}
.rro-menu-card__title{
  margin:0 0 12px;
  font-size:18px;
  line-height:1.28;
  font-weight:600;
  letter-spacing:-.01em;
}
.rro-menu-card__description{
  margin:0 0 15px;
  color:var(--rro-muted);
  font-size:14px;
  line-height:1.48;
}
.rro-menu-card__price{
  margin-top:auto;
  color:var(--rro-text);
  font-size:14px;
  line-height:1.2;
  font-weight:700;
}

/* Smaller, calmer plus control */
.rro-menu-card__add{
  position:absolute;
  right:17px;
  bottom:17px;
  width:36px;
  height:36px;
  min-width:36px;
  padding:0;
  display:flex;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:50%;
  background:var(--rro-soft);
  color:var(--rro-text);
  font-size:23px;
  font-weight:400;
  line-height:1;
  cursor:pointer;
  transition:background .18s ease, transform .18s ease;
}
.rro-menu-card__add:hover{
  background:rgba(25,25,25,.085);
  transform:scale(1.04);
}

/* Navigation visually integrated with the menu instead of a toolbar */
.rro-menu-nav{
  padding:10px 0;
  border-bottom:1px solid var(--rro-line);
  background:rgba(255,255,255,.97);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.rro-menu-nav.is-fixed{
  box-shadow:0 5px 16px rgba(0,0,0,.045);
}
.rro-menu-nav__inner{
  gap:4px;
}
.rro-menu-nav__link{
  padding:9px 11px;
  border-radius:6px;
  white-space:nowrap;
  font-size:14px;
  line-height:1.2;
  text-decoration:none;
  transition:background .18s ease, color .18s ease;
}
.rro-menu-nav__link:hover{
  background:var(--rro-soft);
}
.rro-menu-nav__link.is-active{
  background:transparent;
  font-weight:600;
  box-shadow:inset 0 -2px 0 currentColor;
}
.rro-menu-nav__arrow{
  flex-basis:34px;
  width:34px;
  height:34px;
  border:1px solid var(--rro-line);
  box-shadow:none;
  font-size:24px;
}
.rro-menu-nav__arrow:hover{
  background:var(--rro-soft);
  transform:none;
}

/* Mobile */
@media(max-width:767px){
  .rro-menu-section{
    margin-top:38px;
  }
  .rro-menu-section__title{
    margin-bottom:16px;
    font-size:24px;
  }
  .rro-menu-grid{
    gap:10px;
  }
  .rro-menu-card{
    min-height:0;
    padding:18px 58px 18px 18px;
    border-radius:8px;
  }
  .rro-menu-card__title{
    margin-bottom:8px;
    font-size:17px;
  }
  .rro-menu-card__description{
    margin-bottom:12px;
    font-size:13.5px;
  }
  .rro-menu-card__add{
    right:14px;
    bottom:14px;
    width:34px;
    height:34px;
    min-width:34px;
  }
  .rro-menu-nav{
    padding:8px 0;
  }
  .rro-menu-nav__link{
    padding:8px 9px;
    font-size:13px;
  }
}


/* =========================================================
   0.6.8 – interaction refinements
   ========================================================= */

/* Active navigation: much lighter indicator */
.rro-menu-nav__link.is-active{
  box-shadow:none !important;
  border-bottom:1px solid currentColor !important;
}

/* Product cards must not move on hover */
.rro-menu-card,
.rro-menu-card:hover{
  transform:none !important;
}

/* Entire card is clickable */
.rro-menu-card{
  cursor:pointer;
}
.rro-menu-card:focus-visible{
  outline:2px solid currentColor;
  outline-offset:2px;
}


/* =========================================================
   0.8.0 – Restaurant cart drawer
   ========================================================= */
.rro-cart-fab{
  position:fixed;
  right:24px;
  bottom:24px;
  z-index:9990;
  display:flex;
  align-items:center;
  gap:9px;
  min-height:52px;
  padding:8px 16px 8px 10px;
  border:0;
  border-radius:999px;
  background:#222;
  color:#fff;
  font:inherit;
  font-weight:700;
  cursor:pointer;
  box-shadow:0 8px 28px rgba(0,0,0,.20);
}
.rro-cart-fab__icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  border-radius:50%;
  background:rgba(255,255,255,.10);
  font-size:16px;
}
.rro-cart-fab__count{
  position:absolute;
  top:-5px;
  left:29px;
  min-width:20px;
  height:20px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 5px;
  border-radius:10px;
  background:#fff;
  color:#222;
  font-size:11px;
  line-height:20px;
}
.rro-cart-fab__total:empty{display:none}
.rro-cart-fab__total{opacity:.78;font-weight:600}

.rro-cart-overlay{
  position:fixed;
  inset:0;
  z-index:1000000;
  display:none;
  justify-content:flex-end;
  background:rgba(0,0,0,.35);
}
.rro-cart-overlay.is-open{display:flex}
.rro-cart-drawer{
  width:min(440px,100vw);
  height:100%;
  display:flex;
  flex-direction:column;
  background:#fff;
  box-shadow:-12px 0 36px rgba(0,0,0,.16);
}
.rro-cart-drawer__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:20px 22px;
  border-bottom:1px solid rgba(0,0,0,.09);
}
.rro-cart-drawer__head h2{margin:0;font-size:22px}
.rro-cart-drawer__close{
  width:38px;height:38px;border:0;border-radius:50%;background:rgba(0,0,0,.05);
  font-size:27px;line-height:1;cursor:pointer
}
.rro-cart-drawer__body{
  flex:1;
  overflow:auto;
  padding:4px 22px 24px;
}
.rro-cart-loading,.rro-cart-empty{
  padding:40px 0;
  color:rgba(0,0,0,.55);
  text-align:center;
}
.rro-cart-item{
  padding:18px 0;
  border-bottom:1px solid rgba(0,0,0,.08);
}
.rro-cart-item__top{
  display:flex;
  justify-content:space-between;
  gap:16px;
}
.rro-cart-item__name{
  margin:0 0 5px;
  font-weight:700;
  font-size:15px;
  line-height:1.35;
}
.rro-cart-item__meta{
  color:rgba(0,0,0,.58);
  font-size:12.5px;
  line-height:1.4;
}
.rro-cart-item__meta dl{margin:4px 0 0}
.rro-cart-item__meta dt,.rro-cart-item__meta dd{display:inline;margin:0}
.rro-cart-item__meta dd:after{content:"";display:block}
.rro-cart-item__line-total{
  white-space:nowrap;
  font-weight:700;
  font-size:14px;
}
.rro-cart-item__bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:13px;
}
.rro-cart-qty{
  display:inline-flex;
  align-items:center;
  gap:9px;
  padding:3px;
  border:1px solid rgba(0,0,0,.10);
  border-radius:999px;
}
.rro-cart-qty button{
  width:30px;height:30px;border:0;border-radius:50%;background:rgba(0,0,0,.05);
  font-size:18px;cursor:pointer
}
.rro-cart-qty span{min-width:20px;text-align:center;font-weight:700;font-size:13px}
.rro-cart-remove{
  border:0;background:transparent;color:rgba(0,0,0,.48);font-size:12px;cursor:pointer;
  text-decoration:underline;text-underline-offset:2px
}
.rro-cart-drawer__footer{
  padding:16px 22px 20px;
  border-top:1px solid rgba(0,0,0,.09);
  background:#fff;
}
.rro-cart-drawer__subtotal{
  display:flex;align-items:center;justify-content:space-between;margin-bottom:13px;font-size:15px
}
.rro-cart-checkout{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:50px;
  border-radius:8px;
  background:#222;
  color:#fff!important;
  text-decoration:none!important;
  font-weight:700;
}
html.rro-cart-open,body.rro-cart-open{overflow:hidden}
@media(max-width:767px){
  .rro-cart-fab{
    right:14px;bottom:14px;
    max-width:calc(100vw - 28px)
  }
  .rro-cart-drawer{width:100vw}
}

/* =========================================================
   0.11.0 – Restaurant discounts
   ========================================================= */
.rro-menu-card.has-rro-discount .rro-menu-card__content{
  padding-right:68px;
}
.rro-menu-card > .rro-discount-badge{
  position:absolute;
  top:14px;
  right:14px;
  z-index:2;
}
.rro-discount-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:24px;
  padding:3px 9px;
  border-radius:999px;
  background:#c62828;
  color:#fff;
  font-size:12px;
  line-height:1;
  font-weight:700;
  letter-spacing:.01em;
  white-space:nowrap;
}
.rro-discount-price{
  display:inline-flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:7px;
}
.rro-discount-original{
  opacity:.5;
  font-weight:500;
}
.rro-discount-current{
  color:#c62828;
  font-weight:700;
  text-decoration:none;
}
.rro-discount-current .amount,
.rro-discount-current .woocommerce-Price-amount,
.rro-discount-current .woocommerce-Price-currencySymbol{
  color:inherit;
  font-weight:inherit;
  text-decoration:inherit;
}
@media(max-width:767px){
  .rro-menu-card.has-rro-discount .rro-menu-card__content{padding-right:62px}
  .rro-menu-card > .rro-discount-badge{top:12px;right:12px}
}


/* =========================================================
   0.11.4 – Rabatt-Hinweis + Navigation
   ========================================================= */
.rro-discount-notice{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin:18px 0 8px;
  padding:11px 14px;
  border:1px solid rgba(198,40,40,.18);
  border-radius:8px;
  background:rgba(198,40,40,.055);
  color:var(--rro-text,#222);
  font-size:13px;
  line-height:1.4;
}
.rro-discount-notice__title{
  flex:0 0 auto;
  font-weight:700;
  color:#c62828;
}
.rro-discount-notice__text{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
  min-width:0;
}
.rro-discount-notice__item{font-weight:600}
.rro-discount-notice__separator{opacity:.38;margin:0 1px}
.rro-menu-nav__link{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.rro-menu-nav__discount{
  display:inline-flex;
  align-items:center;
  min-height:18px;
  padding:2px 6px;
  border-radius:999px;
  background:rgba(198,40,40,.10);
  color:#c62828;
  font-size:10px;
  line-height:1;
  font-weight:700;
  letter-spacing:.01em;
}
.rro-menu-nav__discount.is-full{
  background:#c62828;
  color:#fff;
}
@media(max-width:767px){
  .rro-discount-notice{margin-top:14px;gap:6px 9px;padding:10px 12px}
  .rro-discount-notice__title{width:100%}
  .rro-menu-nav__discount{font-size:9px;padding:2px 5px}
}

/* =========================================================
   0.13.1 – Mobile layout refinement
   Prevent content-driven card overflow and balance navigation spacing.
   ========================================================= */
@media (max-width:767px){
  /* A single-column grid must be allowed to shrink below the min-content
     width of long product names / discount price rows. */
  .rro-menu-sections,
  .rro-menu-section,
  .rro-menu-grid,
  .rro-menu-card,
  .rro-menu-card__content{
    min-width:0;
    max-width:100%;
    box-sizing:border-box;
  }
  .rro-menu-grid{
    width:100%;
    grid-template-columns:minmax(0,1fr);
  }
  .rro-menu-card{
    width:100%;
  }
  .rro-menu-card__content,
  .rro-menu-card.has-rro-discount .rro-menu-card__content{
    padding-right:0;
  }
  .rro-menu-card__title,
  .rro-menu-card__description,
  .rro-menu-card__price{
    max-width:100%;
    white-space:normal;
    overflow-wrap:anywhere;
    word-break:normal;
  }

  /* On phones the navigation should read as its own element instead of
     visually disappearing between the offer notice and first category. */
  .rro-discount-notice{
    margin-bottom:0;
  }
  .rro-menu-nav{
    margin:18px 0;
  }
  .rro-menu-section:first-of-type{
    margin-top:0;
    padding-top:0;
  }
}
