.menu-campaigns { margin:1.5rem var(--menu-page-x) 0; min-width:0; }
.menu-campaigns__heading { align-items:baseline; display:flex; flex-wrap:wrap; gap:.45rem .75rem; margin-bottom:.85rem; }
.menu-campaigns__heading > span { color:var(--menu-leaf,#587064); font-size:.625rem; font-weight:750; letter-spacing:.13em; text-transform:uppercase; }
.menu-campaigns__heading h2 { color:var(--menu-ink,#173f35); font-size:1rem; font-weight:700; letter-spacing:-.035em; }
.menu-campaigns__track { border-radius:22px; display:flex; gap:1rem; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scrollbar-width:none; }
.menu-campaigns__track::-webkit-scrollbar { display:none; }
.menu-campaigns__track:focus-visible { outline:3px solid #7e9b80; outline-offset:4px; }
.menu-campaigns__slide { flex:0 0 100%; min-width:0; scroll-snap-align:start; scroll-snap-stop:always; }
.menu-campaigns__card { background:var(--menu-forest,#163d32); border:1px solid #274c3c; border-radius:22px; color:#fffdf4; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); height:100%; min-height:260px; overflow:hidden; text-decoration:none; }
.qr-menu-scope .menu-campaigns__card:focus-visible { outline:3px solid #d7c496; outline-offset:-4px; }
.menu-campaigns__body { align-self:center; min-width:0; padding:1.15rem; }
.menu-campaigns__badge { background:#ded3b4; border-radius:6px; color:#264537; display:inline-block; font-size:.5625rem; font-weight:750; letter-spacing:.06em; line-height:1.6; padding:.3rem .55rem; text-transform:uppercase; overflow-wrap:anywhere; max-width:100%; }
.menu-campaigns__body h3 { color:#fffdf4; font-size:clamp(1.05rem,4.4vw,1.85rem); font-weight:650; letter-spacing:-.04em; line-height:1.3; margin:.75rem 0 .55rem; overflow-wrap:anywhere; }
.menu-campaigns__description { color:#d0ded1; font-size:.75rem; line-height:1.7; overflow-wrap:anywhere; white-space:pre-line; }
.menu-campaigns__product { border-top:1px solid rgba(255,253,244,.18); display:flex; flex-wrap:wrap; gap:.3rem .5rem; margin-top:.95rem; padding-top:.75rem; }
.menu-campaigns__product span { color:#c1d0c3; flex:1 1 100%; font-size:.6875rem; line-height:1.5; overflow-wrap:anywhere; }
.menu-campaigns__product strong { color:#f4e8c6; font-size:1.1rem; font-weight:750; font-variant-numeric:tabular-nums; letter-spacing:-.025em; }
.menu-campaigns__link { align-items:center; background:#fffdf3; border:1px solid #fffdf3; border-radius:999px; color:#173f35; display:inline-flex; font-size:.625rem; font-weight:750; gap:.45rem; margin-top:.85rem; min-height:40px; padding:.55rem .8rem; }
.menu-campaigns__link .menu-icon { height:16px; width:16px; }
.menu-campaigns__photo { background:#e9e9dd; min-width:0; overflow:hidden; position:relative; }
.menu-campaigns__photo img { height:100%; left:0; object-fit:cover; position:absolute; top:0; width:100%; }
.menu-campaigns__photo--logo img { object-fit:contain; padding:1.25rem; }
.menu-campaigns__controls { align-items:center; display:flex; gap:.25rem; justify-content:center; margin-top:.65rem; min-width:0; }
.menu-campaigns__controls[hidden] { display:none; }
.menu-campaigns__controls > button { align-items:center; background:var(--menu-surface,#fffefa); border:1px solid var(--menu-rule,#e4e5da); border-radius:50%; color:#173f35; cursor:pointer; display:flex; flex:0 0 auto; font:inherit; justify-content:center; min-height:44px; min-width:44px; }
.menu-campaigns__controls > button:hover { background:#e4e9de; }
.menu-campaigns__controls button:focus-visible { outline:2px solid #173f35; outline-offset:1px; }
.menu-campaigns__controls [data-campaign-prev] .menu-icon { transform:rotate(180deg); }
.menu-campaigns__position { color:#536654; flex-shrink:0; font-size:.6875rem; font-variant-numeric:tabular-nums; }
.menu-campaigns__dots { align-items:center; display:flex; flex:1 1 auto; justify-content:center; min-width:0; overflow-x:auto; scrollbar-width:none; }
.menu-campaigns__dots button { align-items:center; background:none; border:0; cursor:pointer; display:flex; flex:0 0 28px; justify-content:center; min-height:44px; padding:0; }
.menu-campaigns__dots button span { background:#b8c5b5; border-radius:50%; height:5px; width:5px; }
.menu-campaigns__dots button[aria-current] span { background:#7a6947; border-radius:4px; width:16px; }
.menu-campaigns__controls .menu-campaigns__toggle { background:transparent; border-color:transparent; border-radius:999px; font-size:.625rem; min-width:56px; padding-inline:.4rem; }
.menu-campaigns__toggle[hidden] { display:none; }
@media (min-width:640px) {
  .menu-campaigns__card { grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); min-height:286px; }
  .menu-campaigns__body { padding:2rem 2.25rem; }
  .menu-campaigns__description { font-size:.8125rem; max-width:48ch; }
  .menu-campaigns__product span { flex:0 1 auto; font-size:.8125rem; }
  .menu-campaigns__product { align-items:center; gap:1rem; }
  .menu-campaigns__link { font-size:.75rem; }
  .menu-campaigns__controls { margin-inline:auto; max-width:420px; }
}
@media (max-width:359px) {
  .menu-campaigns__body { padding:.95rem; }
  .menu-campaigns__card { grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); }
  .menu-campaigns__dots { display:none; }
  .menu-campaigns__controls { justify-content:space-between; }
}
@media (prefers-reduced-motion:reduce) { .menu-campaigns__track { scroll-behavior:auto; } }
