-
π [Download Meal Plan PDF](#)
π [Add to Calendar](#)
---
π Add Groceries:
- [Add All Groceries to Cart](#)
- Recipe 1 β [Add to Cart](#)
- Recipe 2 β [Add to Cart](#)
- Recipe 3 β [Add to Cart](#)
- Recipe 4 β [Add to Cart](#)
-
Description text goes here
-
Description text goes here
/* ========== Veggies & Virtue β Meal Plan Grid ========== */ /* Easy theme variables */ :root { --vv-bg: #ffffff; --vv-card: #ffffff; --vv-text: #1a1a1a; --vv-muted: #6b7280; --vv-border: #e5e7eb; --vv-primary: #0ea5e9; /* primary buttons (PDF + All Groceries) */ --vv-primary-text: #ffffff; --vv-secondary: #f3f4f6; /* secondary buttons (Calendar) */ --vv-secondary-text: #111827; --vv-radius: 18px; --vv-shadow: 0 8px 24px rgba(0,0,0,0.06); } /* Scope styles to sections you tag with class "meal-grid" */ .meal-grid { background: var(--vv-bg); padding-top: 24px; padding-bottom: 24px; } /* Grid layout for card wrapper */ .meal-grid .vv-grid { display: grid; grid-template-columns: 1fr; gap: 18px; } /* 2 columns on tablets, 3 on large screens */ @media (min-width: 700px) { .meal-grid .vv-grid { grid-template-columns: 1fr 1fr; } } @media (min-width: 1100px) { .meal-grid .vv-grid { grid-template-columns: 1fr 1fr 1fr; } } /* Card */ .meal-grid .vv-card { background: var(--vv-card); border: 1px solid var(--vv-border); border-radius: var(--vv-radius); padding: 20px; box-shadow: var(--vv-shadow); } /* Card header */ .meal-grid .vv-week { font-size: 1.1rem; font-weight: 700; margin: 0 0 8px 0; color: var(--vv-text); } /* Subheading line (optional) */ .meal-grid .vv-sub { margin: 0 0 14px 0; color: var(--vv-muted); font-size: 0.95rem; } /* Button row */ .meal-grid .vv-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 8px 0 14px 0; } /* Buttons */ .meal-grid .vv-btn { display: inline-block; padding: 10px 14px; border-radius: 12px; text-decoration: none; font-weight: 600; line-height: 1; transition: transform 0.05s ease, opacity 0.2s ease; white-space: nowrap; border: 1px solid transparent; } .meal-grid .vv-btn:active { transform: translateY(1px); } .meal-grid .vv-btn--primary { background: var(--vv-primary); color: var(--vv-primary-text); border-color: var(--vv-primary); } .meal-grid .vv-btn--secondary { background: var(--vv-secondary); color: var(--vv-secondary-text); border-color: var(--vv-border); } /* Divider */ .meal-grid .vv-rule { height: 1px; background: var(--vv-border); margin: 12px 0 10px 0; border: 0; } /* Groceries list */ .meal-grid .vv-groceries { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; } .meal-grid .vv-groceries li { display: flex; align-items: center; gap: 8px; font-size: 0.95rem; } .meal-grid .vv-groceries .vv-pill { font-size: 0.8rem; padding: 4px 8px; border-radius: 999px; background: #eef8ff; color: #0b74b5; } /* Inline βAdd to Cartβ links */ .meal-grid .vv-link { color: var(--vv-primary); text-decoration: none; font-weight: 600; border-bottom: 1px solid rgba(14,165,233,0.25); } .meal-grid .vv-link:hover { border-bottom-color: rgba(14,165,233,0.55); } /* Small helper text */ .meal-grid .vv-note { margin-top: 10px; color: var(--vv-muted); font-size: 0.85rem; } /* Optional: subtle hover lift on cards for desktop */ @media (hover:hover) { .meal-grid .vv-card { transition: transform 0.15s ease, box-shadow 0.2s ease; } .meal-grid .vv-card:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(0,0,0,0.08); } }