/* Redstone Ranch Food Truck Menu */
.rsr-menu{
  --rsr-red:#b3201f; --rsr-red-dark:#8e1716; --rsr-cream:#fbf3e4; --rsr-ink:#2b1d14;
  --rsr-brown:#4a2e1e; --rsr-line:#e9c9c4; --rsr-green:#7a8f4e; --rsr-black:#141414;
  font-family:'Nunito',system-ui,sans-serif; color:var(--rsr-ink);
  max-width:1180px; margin:0 auto; padding:0 16px 120px;
}
.rsr-menu *{box-sizing:border-box}

/* Banner */
.rsr-banner{margin:0 -16px 24px;overflow:hidden;border-radius:0 0 18px 18px}
.rsr-banner img{display:block;width:100%;height:auto}
.rsr-banner-fallback{background:var(--rsr-cream);padding:56px 24px;text-align:center}
.rsr-eyebrow{font-family:'Oswald',sans-serif;letter-spacing:.2em;text-transform:uppercase;color:var(--rsr-red);font-weight:700}
.rsr-banner-fallback h1{font-family:'Rye',serif;color:var(--rsr-brown);font-size:clamp(34px,6vw,64px);line-height:1.05;margin:12px 0}
.rsr-banner-fallback h1 em{font-style:normal;color:var(--rsr-red)}

/* Ranch Cash note */
.rsr-cash-note{background:var(--rsr-cream);border:1px dashed var(--rsr-red);border-radius:12px;padding:12px 16px;text-align:center;margin:0 0 18px}
.rsr-cash-note a{color:var(--rsr-red);font-weight:700}

/* Section jump links */
.rsr-jump{position:sticky;top:0;z-index:20;display:flex;gap:8px;overflow-x:auto;padding:10px 0;background:#fff;margin-bottom:8px;scrollbar-width:none}
.rsr-jump a{flex:0 0 auto;font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.05em;text-decoration:none;
  color:var(--rsr-red);border:2px solid var(--rsr-red);border-radius:999px;padding:6px 16px;font-size:15px}
.rsr-jump a:hover{background:var(--rsr-red);color:#fff}

/* Sections */
.rsr-section{margin:28px 0 40px;scroll-margin-top:70px}
.rsr-section h2{font-family:'Oswald',sans-serif;font-weight:700;text-transform:uppercase;font-size:clamp(28px,4vw,42px);
  color:var(--rsr-red-dark);margin:0 0 18px;padding-bottom:8px;border-bottom:3px dashed var(--rsr-red)}
.rsr-section.rsr-dark{background:var(--rsr-black);border-radius:18px;padding:24px}
.rsr-section.rsr-dark h2{color:#fff}

.rsr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}

/* Cards */
.rsr-card{background:#fff;border:2px solid var(--rsr-line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;transition:transform .15s,box-shadow .15s}
.rsr-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(179,32,31,.12)}
.rsr-dark .rsr-card{border-color:#333}
.rsr-thumb img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}
.rsr-body{padding:16px;display:flex;flex-direction:column;gap:10px;flex:1}
.rsr-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.rsr-head h3{font-family:'Oswald',sans-serif;font-weight:500;text-transform:uppercase;font-size:19px;line-height:1.2;margin:0;color:var(--rsr-ink)}
.rsr-price{font-family:'Oswald',sans-serif;font-weight:700;font-size:20px;color:var(--rsr-red);white-space:nowrap}
.rsr-desc{font-size:15px;line-height:1.5;color:#5a4a40;flex:1}
.rsr-desc p{margin:0}

/* Options + qty + button */
.rsr-add{display:flex;flex-direction:column;gap:10px;margin-top:auto}
.rsr-opt{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--rsr-brown)}
.rsr-opt select{font:inherit;text-transform:none;letter-spacing:0;font-weight:600;font-size:15px;padding:9px 10px;border:2px solid var(--rsr-line);border-radius:10px;background:#fff;color:var(--rsr-ink)}
.rsr-actions{display:flex;gap:10px;align-items:stretch}
.rsr-qty{display:flex;border:2px solid var(--rsr-line);border-radius:10px;overflow:hidden}
.rsr-qty button{background:var(--rsr-cream);border:0;width:36px;font-size:20px;cursor:pointer;color:var(--rsr-red)}
.rsr-qty input{width:42px;border:0;text-align:center;font:inherit;font-weight:700;-moz-appearance:textfield}
.rsr-qty input::-webkit-inner-spin-button{-webkit-appearance:none}
.rsr-btn{flex:1;background:var(--rsr-red);color:#fff !important;border:0;border-radius:10px;padding:11px 16px;font-family:'Oswald',sans-serif;
  text-transform:uppercase;letter-spacing:.05em;font-size:16px;cursor:pointer;text-align:center;text-decoration:none;transition:background .15s}
.rsr-btn:hover{background:var(--rsr-red-dark)}
.rsr-btn.is-loading{opacity:.7;pointer-events:none}
.rsr-btn.is-added{background:var(--rsr-green)}
.rsr-msg{font-size:13px;color:var(--rsr-red);margin:0}
.rsr-card.is-soldout{opacity:.55}
.rsr-soldout{font-weight:700;color:var(--rsr-red);margin:0}

/* Sticky order bar */
.rsr-cartbar{position:fixed;left:50%;bottom:16px;transform:translate(-50%,140%);width:calc(100% - 32px);max-width:640px;z-index:999;
  background:var(--rsr-ink);color:#fff;border-radius:16px;padding:12px 14px 12px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;
  box-shadow:0 12px 30px rgba(0,0,0,.25);transition:transform .3s}
.rsr-cartbar.has-items{transform:translate(-50%,0)}
.rsr-cartbar-info{display:flex;flex-direction:column;line-height:1.2}
.rsr-cartbar-info span,.rsr-cartbar-info .amount{color:#f3d8b0}
.rsr-cartbar-links{display:flex;gap:12px;align-items:center}
.rsr-link{color:#fff !important;font-size:14px;text-decoration:underline}
.rsr-cartbar .rsr-btn{flex:0 0 auto;padding:10px 22px}
.rsr-cartbar.bump{animation:rsrbump .4s}
@keyframes rsrbump{50%{transform:translate(-50%,0) scale(1.04)}}

@media (max-width:560px){
  .rsr-grid{grid-template-columns:1fr}
  .rsr-banner{border-radius:0}
  .rsr-link{display:none}
}
