/* Osool Royal Menu V46 — Adaptive Premium Cards
   Mobile: one horizontal card per row. Tablet: two columns. Desktop: three columns.
   Food imagery leads; controls stay quiet and compact. */

.osrm11.osrm11-direct-menu{
  --os46-olive:#646946;
  --os46-olive-dark:#46502f;
  --os46-beige:#ebd8c1;
  --os46-cream:#fffaf3;
  --os46-cream-2:#f8efe5;
  --os46-ink:#3f452c;
  --os46-muted:#85806f;
  --os46-line:rgba(100,105,70,.16);
}

/* The menu itself is the responsive container, so Elementor widths and iPad split-view
   are handled by the real available space rather than device-name guesses. */
.osrm11.osrm11-direct-menu .osrm11-menu-area{
  container-type:inline-size;
  container-name:osool-menu;
}

.osrm11.osrm11-direct-menu .osrm11-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:24px!important;
  align-items:stretch!important;
  margin-top:24px!important;
}

.osrm11.osrm11-direct-menu .osrm46-card{
  position:relative!important;
  display:flex!important;
  flex-direction:column!important;
  min-width:0!important;
  height:100%!important;
  overflow:hidden!important;
  border:1px solid var(--os46-line)!important;
  border-radius:24px!important;
  background:linear-gradient(180deg,#fffdf9 0%,#fbf4ec 100%)!important;
  box-shadow:0 7px 24px rgba(67,62,43,.075)!important;
  transform:none!important;
  filter:none!important;
  isolation:isolate!important;
  content-visibility:auto;
  contain-intrinsic-size:420px;
}
.osrm11.osrm11-direct-menu .osrm46-card::after{
  display:none!important;
}

.osrm11.osrm11-direct-menu .osrm46-media{
  position:relative!important;
  display:block!important;
  width:100%!important;
  aspect-ratio:4 / 3!important;
  overflow:hidden!important;
  border:0!important;
  border-radius:0!important;
  background:linear-gradient(110deg,#eee5da 8%,#faf5ee 18%,#eee5da 33%)!important;
  background-size:200% 100%!important;
  animation:osrm46Skeleton 1.45s linear infinite!important;
}
.osrm11.osrm11-direct-menu .osrm46-media img,
.osrm11.osrm11-direct-menu .osrm46-img{
  position:relative!important;
  z-index:1!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  object-fit:cover!important;
  object-position:center!important;
  border-radius:0!important;
  transform:none!important;
  transition:transform .45s cubic-bezier(.2,.65,.25,1)!important;
}

.osrm11.osrm11-direct-menu .osrm46-premium-badge{
  position:absolute!important;
  z-index:3!important;
  top:14px!important;
  right:14px!important;
  padding:7px 10px!important;
  border:1px solid rgba(255,255,255,.55)!important;
  border-radius:999px!important;
  background:rgba(66,77,43,.86)!important;
  backdrop-filter:blur(8px)!important;
  -webkit-backdrop-filter:blur(8px)!important;
  color:#fff!important;
  font-size:10px!important;
  font-weight:900!important;
  line-height:1!important;
  box-shadow:0 6px 20px rgba(37,45,24,.18)!important;
}

.osrm11.osrm11-direct-menu .osrm46-card .osrm11-card-info{
  display:flex!important;
  flex:1 1 auto!important;
  flex-direction:column!important;
  min-height:0!important;
  padding:18px 18px 17px!important;
  background:transparent!important;
}
.osrm11.osrm11-direct-menu .osrm46-card .osrm11-card-info h3{
  min-height:0!important;
  margin:0 0 7px!important;
  color:var(--os46-ink)!important;
  font-size:clamp(17px,1.45vw,21px)!important;
  font-weight:900!important;
  line-height:1.55!important;
  letter-spacing:-.02em!important;
  text-shadow:none!important;
}
.osrm11.osrm11-direct-menu .osrm46-card .osrm11-card-info p{
  display:-webkit-box!important;
  overflow:hidden!important;
  min-height:0!important;
  margin:0 0 10px!important;
  color:var(--os46-muted)!important;
  font-size:11px!important;
  font-weight:600!important;
  line-height:1.8!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:2!important;
}

/* Weekly availability becomes a quiet editorial chip rather than a large red band. */
.osrm11.osrm11-direct-menu .osrm46-card .osrm11-weekday-label{
  display:inline-flex!important;
  align-self:flex-start!important;
  width:auto!important;
  max-width:100%!important;
  margin:0 0 10px!important;
  padding:6px 10px!important;
  border:1px solid rgba(140,92,70,.10)!important;
  border-radius:999px!important;
  background:#f8ece5!important;
  color:#985e4d!important;
  font-size:10px!important;
  font-weight:900!important;
  line-height:1.25!important;
  white-space:normal!important;
}

.osrm11.osrm11-direct-menu .osrm46-card .osrm11-card-foot{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:end!important;
  gap:10px!important;
  width:100%!important;
  margin:auto 0 0!important;
  padding:14px 0 0!important;
  border-top:1px solid var(--os46-line)!important;
}
.osrm11.osrm11-direct-menu .osrm46-card .osrm46-price{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:baseline!important;
  gap:3px 5px!important;
  min-width:0!important;
  color:var(--os46-ink)!important;
  font-size:16px!important;
  font-weight:950!important;
  line-height:1.3!important;
  direction:rtl!important;
}
.osrm11.osrm11-direct-menu .osrm46-card .osrm46-price .woocommerce-Price-amount{
  color:var(--os46-ink)!important;
  font-weight:950!important;
}
.osrm11.osrm11-direct-menu .osrm46-card .osrm46-from{
  flex:0 0 100%!important;
  color:var(--os46-muted)!important;
  font-size:9px!important;
  font-weight:800!important;
}
.osrm11.osrm11-direct-menu .osrm46-card .osrm11-tax-price-caption{
  flex:0 0 100%!important;
  margin-top:1px!important;
  color:#99927f!important;
  font-size:8.5px!important;
  font-weight:700!important;
  line-height:1.25!important;
}

/* Food first: quantity controls leave the catalogue. Quantity remains editable in the cart
   and in the variable-product sheet. */
.osrm11.osrm11-direct-menu .osrm46-card .osrm15-card-order{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  width:auto!important;
  min-width:0!important;
  margin:0!important;
}
.osrm11.osrm11-direct-menu .osrm46-card .osrm15-card-order > .osrm15-qty{
  display:none!important;
}
.osrm11.osrm11-direct-menu .osrm46-card .osrm15-inline-status{
  position:absolute!important;
  left:16px!important;
  right:16px!important;
  bottom:4px!important;
  margin:0!important;
  color:#8d5b4f!important;
  font-size:9px!important;
}

.osrm11.osrm11-direct-menu .osrm46-card .osrm11-add{
  position:relative!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:auto!important;
  min-width:74px!important;
  min-height:42px!important;
  margin:0!important;
  padding:10px 14px!important;
  border:1px solid rgba(100,105,70,.18)!important;
  border-radius:999px!important;
  background:linear-gradient(145deg,#758052,#536038)!important;
  color:#fff!important;
  box-shadow:0 5px 14px rgba(75,85,49,.16)!important;
  font-size:11px!important;
  font-weight:900!important;
  line-height:1!important;
  white-space:nowrap!important;
  text-decoration:none!important;
  transform:none!important;
}
.osrm11.osrm11-direct-menu .osrm46-card .osrm15-simple-add::before{
  content:'+';
  display:grid;
  place-items:center;
  width:19px;
  height:19px;
  margin-left:6px;
  border-radius:50%;
  background:rgba(255,255,255,.16);
  color:#fff;
  font-size:15px;
  font-weight:800;
  line-height:1;
}
.osrm11.osrm11-direct-menu .osrm46-card .osrm15-var-trigger::after,
.osrm11.osrm11-direct-menu .osrm46-card .osrm11-var-trigger::after{
  content:'‹';
  margin-right:6px;
  font-size:18px;
  font-weight:500;
  line-height:.7;
}
.osrm11.osrm11-direct-menu .osrm46-card .osrm11-unavailable,
.osrm11.osrm11-direct-menu .osrm46-card .osrm11-weekly-unavailable{
  background:#eee8df!important;
  color:#8a8375!important;
  box-shadow:none!important;
}

/* Premium grill/chef cards use a cinematic crop without changing interaction. */
.osrm11.osrm11-direct-menu .osrm46-card--premium{
  border-color:rgba(100,105,70,.25)!important;
  background:linear-gradient(180deg,#fffdf9 0%,#f8efe5 100%)!important;
}
.osrm11.osrm11-direct-menu .osrm46-card--premium .osrm46-media{
  aspect-ratio:16 / 10!important;
}
.osrm11.osrm11-direct-menu .osrm46-card--premium .osrm11-card-info h3{
  font-size:clamp(18px,1.55vw,22px)!important;
}

/* Weekly meals are easy to identify but remain in the same visual family. */
.osrm11.osrm11-direct-menu .osrm46-card--weekly{
  background:linear-gradient(180deg,#fffdf9 0%,#fbf1e9 100%)!important;
}
.osrm11.osrm11-direct-menu .osrm46-card--weekly .osrm46-price{
  color:#545b39!important;
}

@media (hover:hover) and (pointer:fine){
  .osrm11.osrm11-direct-menu .osrm46-card:hover{
    transform:translateY(-4px)!important;
    border-color:rgba(100,105,70,.30)!important;
    box-shadow:0 16px 34px rgba(67,62,43,.12)!important;
  }
  .osrm11.osrm11-direct-menu .osrm46-card:hover .osrm46-img{
    transform:scale(1.035)!important;
  }
  .osrm11.osrm11-direct-menu .osrm46-card .osrm11-add:hover{
    transform:translateY(-1px)!important;
    background:linear-gradient(145deg,#7d8957,#4b5732)!important;
    box-shadow:0 8px 18px rgba(75,85,49,.22)!important;
  }
}

/* Tablet / iPad: two comfortable cards; no narrow three-column cards. */
@container osool-menu (max-width: 1050px){
  .osrm11.osrm11-direct-menu .osrm11-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:18px!important;
  }
  .osrm11.osrm11-direct-menu .osrm46-card{
    border-radius:22px!important;
  }
  .osrm11.osrm11-direct-menu .osrm46-card .osrm11-card-info{
    padding:16px!important;
  }
}

/* Phones: one horizontal restaurant-card per row. No two thin columns. */
@container osool-menu (max-width: 700px){
  .osrm11.osrm11-direct-menu .osrm11-grid{
    grid-template-columns:minmax(0,1fr)!important;
    gap:12px!important;
    margin-top:16px!important;
  }
  .osrm11.osrm11-direct-menu .osrm46-card{
    display:grid!important;
    grid-template-columns:minmax(118px,38%) minmax(0,1fr)!important;
    min-height:154px!important;
    height:auto!important;
    border-radius:19px!important;
    box-shadow:0 5px 16px rgba(67,62,43,.07)!important;
    content-visibility:auto;
    contain-intrinsic-size:162px;
  }
  .osrm11.osrm11-direct-menu .osrm46-media,
  .osrm11.osrm11-direct-menu .osrm46-card--premium .osrm46-media{
    grid-column:1!important;
    grid-row:1!important;
    width:100%!important;
    height:100%!important;
    min-height:154px!important;
    aspect-ratio:auto!important;
    border-radius:0!important;
  }
  .osrm11.osrm11-direct-menu .osrm46-card .osrm11-card-info{
    grid-column:2!important;
    grid-row:1!important;
    display:flex!important;
    min-width:0!important;
    padding:14px 14px 12px!important;
  }
  .osrm11.osrm11-direct-menu .osrm46-card .osrm11-card-info h3,
  .osrm11.osrm11-direct-menu .osrm46-card--premium .osrm11-card-info h3{
    margin-bottom:5px!important;
    font-size:16px!important;
    line-height:1.45!important;
  }
  .osrm11.osrm11-direct-menu .osrm46-card .osrm11-card-info p{
    margin-bottom:6px!important;
    font-size:10px!important;
    line-height:1.65!important;
    -webkit-line-clamp:1!important;
  }
  .osrm11.osrm11-direct-menu .osrm46-card .osrm11-weekday-label{
    margin-bottom:7px!important;
    padding:5px 8px!important;
    font-size:8.5px!important;
  }
  .osrm11.osrm11-direct-menu .osrm46-card .osrm11-card-foot{
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:7px!important;
    margin-top:auto!important;
    padding-top:9px!important;
  }
  .osrm11.osrm11-direct-menu .osrm46-card .osrm46-price{
    gap:1px 4px!important;
    font-size:13px!important;
  }
  .osrm11.osrm11-direct-menu .osrm46-card .osrm46-from,
  .osrm11.osrm11-direct-menu .osrm46-card .osrm11-tax-price-caption{
    font-size:7.5px!important;
  }
  .osrm11.osrm11-direct-menu .osrm46-card .osrm11-add{
    min-width:44px!important;
    min-height:40px!important;
    padding:9px 11px!important;
    font-size:10px!important;
    box-shadow:none!important;
  }
  .osrm11.osrm11-direct-menu .osrm46-card .osrm15-simple-add{
    width:40px!important;
    min-width:40px!important;
    height:40px!important;
    min-height:40px!important;
    padding:0!important;
    overflow:hidden!important;
    color:transparent!important;
    font-size:0!important;
  }
  .osrm11.osrm11-direct-menu .osrm46-card .osrm15-simple-add::before{
    content:'+'!important;
    width:auto!important;
    height:auto!important;
    margin:0!important;
    background:transparent!important;
    color:#fff!important;
    font-size:22px!important;
    line-height:1!important;
  }
  .osrm11.osrm11-direct-menu .osrm46-card .osrm15-var-trigger,
  .osrm11.osrm11-direct-menu .osrm46-card .osrm11-var-trigger{
    min-width:64px!important;
    padding-inline:11px!important;
  }
  .osrm11.osrm11-direct-menu .osrm46-premium-badge{
    top:9px!important;
    right:9px!important;
    padding:5px 7px!important;
    font-size:8px!important;
  }
  .osrm11.osrm11-direct-menu .osrm46-card .osrm15-inline-status{
    display:none!important;
  }
}

/* Very narrow phones: keep image useful without starving the text column. */
@container osool-menu (max-width: 390px){
  .osrm11.osrm11-direct-menu .osrm46-card{
    grid-template-columns:116px minmax(0,1fr)!important;
    min-height:148px!important;
  }
  .osrm11.osrm11-direct-menu .osrm46-media,
  .osrm11.osrm11-direct-menu .osrm46-card--premium .osrm46-media{
    min-height:148px!important;
  }
  .osrm11.osrm11-direct-menu .osrm46-card .osrm11-card-info{
    padding:12px 11px 10px!important;
  }
  .osrm11.osrm11-direct-menu .osrm46-card .osrm11-card-info h3{
    font-size:14px!important;
  }
}

/* Fallback for browsers without container queries. */
@supports not (container-type:inline-size){
  @media (max-width:1050px){
    .osrm11.osrm11-direct-menu .osrm11-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  }
  @media (max-width:700px){
    .osrm11.osrm11-direct-menu .osrm11-grid{grid-template-columns:minmax(0,1fr)!important}
    .osrm11.osrm11-direct-menu .osrm46-card{display:grid!important;grid-template-columns:minmax(118px,38%) minmax(0,1fr)!important;min-height:154px!important}
    .osrm11.osrm11-direct-menu .osrm46-media{height:100%!important;min-height:154px!important;aspect-ratio:auto!important}
  }
}

/* Floating cart and tracker must not cover the last food card. */
.osrm11.osrm11-direct-menu .osrm11-menu-area{
  padding-bottom:max(118px,calc(86px + env(safe-area-inset-bottom)))!important;
}

@keyframes osrm46Skeleton{
  to{background-position-x:-200%}
}

@media (prefers-reduced-motion:reduce){
  .osrm11.osrm11-direct-menu .osrm46-media{animation:none!important}
  .osrm11.osrm11-direct-menu .osrm46-card,
  .osrm11.osrm11-direct-menu .osrm46-img,
  .osrm11.osrm11-direct-menu .osrm46-card .osrm11-add{transition:none!important}
}

.osrm11.osrm11-direct-menu .osrm46-card .osrm15-simple-add:disabled::before{content:'…'!important;font-size:18px!important}
@container osool-menu (max-width:700px){
  .osrm11.osrm11-direct-menu .osrm46-card--weekly .osrm11-card-info p{display:none!important}
}
