Let’s Bring Rosie’s to Your Event

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;1,9..144,500&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap'); :root{ --cream:#F6EEE3; --cream-2:#EFE2D0; --red:#A6192E; --red-dark:#7C1122; --ink:#2B2320; --ink-soft:#6b6058; --gold:#C98A3E; --line:#DCC9AE; --paper:#FFFDF9; } *{box-sizing:border-box;} #rosie-quote-root{ background:var(--cream); color:var(--ink); font-family:'Inter',sans-serif; -webkit-font-smoothing:antialiased; padding:1px 0; } .wrap{ max-width:1120px; margin:0 auto; padding:28px 20px 80px; } /* ---------- Header ---------- */ header{ display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-bottom:8px; flex-wrap:wrap; } .brand{ font-family:'Fraunces',serif; font-style:italic; font-weight:500; color:var(--red); font-size:clamp(28px,4vw,40px); line-height:1; letter-spacing:-0.01em; } .brand .paw{ font-style:normal; font-size:0.55em; vertical-align:middle; margin-left:6px; opacity:0.7; } .tagline{ font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink-soft); } .intro{ max-width:640px; color:var(--ink-soft); font-size:15px; line-height:1.55; margin:14px 0 32px; } .intro strong{color:var(--ink);} /* ---------- Layout ---------- */ .grid{ display:grid; grid-template-columns: 1.5fr 1fr; gap:28px; align-items:start; } @media (max-width: 860px){ .grid{grid-template-columns:1fr;} } .card{ background:var(--paper); border:1px solid var(--line); border-radius:14px; padding:22px 22px 26px; margin-bottom:22px; } .card h2{ font-family:'Fraunces',serif; font-weight:600; font-size:19px; margin:0 0 4px; color:var(--ink); } .card .sub{ font-size:12.5px; color:var(--ink-soft); margin:0 0 18px; } .step-eyebrow{ font-family:'JetBrains Mono',monospace; font-size:10.5px; letter-spacing:0.12em; color:var(--gold); text-transform:uppercase; margin-bottom:6px; display:block; } /* ---------- Guest count ---------- */ .guest-row{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; } input[type=number]{ font-family:'JetBrains Mono',monospace; font-size:22px; font-weight:700; width:110px; padding:10px 12px; border:1.5px solid var(--line); border-radius:10px; background:var(--cream); color:var(--ink); } input[type=number]:focus{outline:2px solid var(--red); outline-offset:1px;} input[type=range]{ flex:1; min-width:160px; accent-color:var(--red); } .bracket-pill{ font-family:'JetBrains Mono',monospace; font-size:11.5px; background:var(--cream-2); color:var(--red-dark); padding:5px 10px; border-radius:20px; white-space:nowrap; } /* ---------- Package cards ---------- */ .packages{ display:grid; grid-template-columns:repeat(4,1fr); gap:10px; } @media (max-width:640px){ .packages{grid-template-columns:repeat(2,1fr);} } .pkg{ border:1.5px solid var(--line); border-radius:12px; padding:14px 12px; cursor:pointer; background:var(--cream); transition:border-color .15s, background .15s, transform .1s; position:relative; } .pkg:hover{border-color:var(--gold);} .pkg.selected{ border-color:var(--red); background:#FBEAE4; } .pkg.selected::after{ content:"✓"; position:absolute; top:8px; right:10px; color:var(--red); font-weight:700; font-size:13px; } .pkg-name{ font-family:'Fraunces',serif; font-weight:600; font-size:15px; margin-bottom:4px; } .pkg-price{ font-family:'JetBrains Mono',monospace; font-size:17px; font-weight:700; color:var(--red-dark); } .pkg-desc{ font-size:11px; color:var(--ink-soft); margin-top:6px; line-height:1.4; } /* ---------- Toggle rows (upgrades) ---------- */ .toggle-row{ display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px 2px; border-bottom:1px solid var(--line); } .toggle-row:last-child{border-bottom:none;} .toggle-row > div:first-child{ flex:1; min-width:0; } .toggle-label{ font-size:14.5px; font-weight:600; } .toggle-note{ font-size:12px; color:var(--ink-soft); margin-top:3px; line-height:1.45; } .toggle-rate{ font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--gold); margin-top:4px; letter-spacing:0.02em; } .toggle-price{ font-family:'JetBrains Mono',monospace; font-size:13px; color:var(--red-dark); white-space:nowrap; min-width:64px; text-align:right; flex-shrink:0; } .included-badge{ font-family:'JetBrains Mono',monospace; font-size:10.5px; background:var(--cream-2); color:var(--ink-soft); padding:3px 8px; border-radius:20px; white-space:nowrap; flex-shrink:0; } /* switch */ .switch{ position:relative; width:38px; height:22px; flex-shrink:0; } .switch input{position:absolute; opacity:0; width:100%; height:100%; margin:0; cursor:pointer;} .slider{ position:absolute; inset:0; background:var(--line); border-radius:20px; transition:.15s; } .slider::before{ content:""; position:absolute; height:16px;width:16px; left:3px; top:3px; background:var(--paper); border-radius:50%; transition:.15s; } .switch input:checked + .slider{background:var(--red);} .switch input:checked + .slider::before{transform:translateX(16px);} .switch input:disabled + .slider{opacity:0.5; cursor:not-allowed;} /* per-person mini input */ .mini-input{ display:flex;align-items:center;gap:8px; } .mini-input input[type=number]{ width:68px; font-size:14px; padding:6px 8px; } /* extras */ .extras-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; } @media (max-width:520px){ .extras-grid{grid-template-columns:1fr;} } .field label{ display:block; font-size:12.5px; color:var(--ink-soft); margin-bottom:6px; font-weight:500; } .field input[type=number]{ width:100%; font-size:15px; font-weight:500; padding:9px 10px; } /* ---------- Receipt ---------- */ .receipt-wrap{ position:sticky; top:20px; } .receipt{ background:var(--paper); border:1px solid var(--line); border-radius:2px; padding:26px 22px 20px; box-shadow:0 10px 30px -12px rgba(60,30,20,0.25); position:relative; } .receipt::before, .receipt::after{ content:""; position:absolute; left:0; right:0; height:10px; background: radial-gradient(circle at 8px 5px, var(--cream) 5px, transparent 5.5px) repeat-x; background-size:16px 10px; } .receipt::before{ top:-5px; } .receipt::after{ bottom:-5px; transform:rotate(180deg); } .receipt-head{ text-align:center; font-family:'Fraunces',serif; font-style:italic; font-weight:600; font-size:18px; color:var(--red); margin-bottom:2px; } .receipt-sub{ text-align:center; font-family:'JetBrains Mono',monospace; font-size:9.5px; letter-spacing:0.12em; color:var(--ink-soft); text-transform:uppercase; margin-bottom:16px; } .receipt-divider{ border:none; border-top:1.5px dashed var(--line); margin:12px 0; } .receipt-line{ display:flex; justify-content:space-between; font-family:'JetBrains Mono',monospace; font-size:12.5px; padding:3px 0; gap:10px; } .receipt-line.dim{ color:var(--ink-soft); } .receipt-line .amt{ white-space:nowrap; } .receipt-total{ display:flex; justify-content:space-between; align-items:baseline; font-family:'JetBrains Mono',monospace; margin-top:10px; padding-top:10px; border-top:2px solid var(--ink); } .receipt-total .label{ font-size:13px; font-weight:700; letter-spacing:0.04em;} .receipt-total .amt{ font-size:26px; font-weight:700; color:var(--red-dark);} .receipt-foot{ text-align:center; font-size:10.5px; color:var(--ink-soft); margin-top:16px; line-height:1.5; } .estimate-flag{ background:#FBEAE4; border:1px dashed var(--red); border-radius:8px; padding:9px 11px; font-size:11.5px; color:var(--red-dark); margin-top:14px; line-height:1.4; } .cta-btn{ display:block; width:100%; text-align:center; background:var(--red); color:#fff; font-family:'Inter',sans-serif; font-weight:600; font-size:14px; padding:13px; border:none; border-radius:8px; margin-top:16px; cursor:pointer; transition:background .15s; } .cta-btn:hover{ background:var(--red-dark); } .cta-btn:disabled{ opacity:0.6; cursor:not-allowed; } .fs-field-error{ display:block; font-size:11.5px; color:var(--red-dark); margin-top:4px; } .fs-form-error{ font-size:12.5px; color:var(--red-dark); margin-top:10px; text-align:center; line-height:1.5; } .fs-form-success{ font-size:13px; color:var(--ink); margin-top:10px; text-align:center; line-height:1.5; font-weight:600; } input[aria-invalid="true"]{ border-color:var(--red) !important; } footer{ text-align:center; margin-top:36px; font-size:11.5px; color:var(--ink-soft); }
Rosie's Mobile Coffee
Baltimore, MD · Event & Pop-Up Coffee Bar

Build your event package below and get an instant estimate. Final quotes are confirmed by Rosie's based on date, location, and availability.

Step 1

How many guests?

Pricing is set in brackets, so your rate covers the largest group in your tier.

26–50 guests
Step 2

Choose a package

Each package includes everything in the tier below it.

Step 3

Add features individually

Already included in your package? It's toggled on and locked in at no extra cost.

Step 4

À la carte add-ons

Layer any of these onto your package.

Step 5

Logistics

Hours and timing extras.

Off-hours (before 8am / after 9pm)
+$50
Step 6

Your info

So we can follow up and confirm availability for your date.

Rosie's Mobile Coffee
Event Quote Estimate

Total $0
Estimate only, not a booking confirmation.
Rosie's Mobile Coffee · @rosiesmobilecoffee
Rosie's Mobile Coffee LLC · Baltimore, MD
Rosie, the rescue dog behind Rosie’s Mobile Coffee