Navigating 2025 Single-Use Plastic Bans Across EU Markets
How foodservice operators can transition to compliant alternatives without disrupting service.
Read Article β:root { --primary: #2b523c; --primary-light: #3a6b50; --accent: #d4a853; --accent-hover: #b8913e; --dark: #1a1c20; --gray-900: #212529; --gray-700: #495057; --gray-500: #6c757d; --gray-300: #dee2e6; --gray-100: #f8f9fa; --white: #ffffff; --shadow-sm: 0 2px 8px rgba(0,0,0,0.06); --shadow-md: 0 8px 24px rgba(0,0,0,0.08); --shadow-lg: 0 16px 48px rgba(0,0,0,0.12); --radius: 12px; --transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1); --font-sans: 'Inter', system-ui, -apple-system, sans-serif; } *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } html { scroll-behavior: smooth; font-size: 16px; } body { font-family: var(--font-sans); color: var(--gray-900); background: var(--gray-100); line-height: 1.6; -webkit-font-smoothing: antialiased; } a { text-decoration: none; color: inherit; transition: var(--transition); } ul { list-style: none; } img { max-width: 100%; display: block; } button { cursor: pointer; border: none; background: none; font-family: inherit; } .container { max-width: 1280px; margin: 0 auto; padding: 0 24px; } .btn { display: inline-flex; align-items: center; justify-content: center; padding: 12px 28px; border-radius: 8px; font-weight: 600; font-size: 0.95rem; transition: var(--transition); gap: 8px; } .btn-primary { background: var(--primary); color: var(--white); } .btn-primary:hover { background: var(--primary-light); transform: translateY(-2px); box-shadow: var(--shadow-md); } .btn-accent { background: var(--accent); color: var(--white); } .btn-accent:hover { background: var(--accent-hover); transform: translateY(-2px); box-shadow: var(--shadow-md); } .btn-outline { border: 2px solid var(--gray-300); color: var(--gray-700); } .btn-outline:hover { border-color: var(--primary); color: var(--primary); } .section-label { text-transform: uppercase; letter-spacing: 2px; font-size: 0.75rem; font-weight: 700; color: var(--accent); margin-bottom: 8px; } .section-title { font-size: clamp(1.8rem, 3.5vw, 2.5rem); font-weight: 800; line-height: 1.2; margin-bottom: 16px; color: var(--dark); } .section-subtitle { font-size: 1.05rem; color: var(--gray-700); max-width: 640px; } .text-center { text-align: center; } .mx-auto { margin-left: auto; margin-right: auto; } /* HEADER */ .site-header { position: fixed; top: 0; left: 0; width: 100%; z-index: 1000; background: rgba(255,255,255,0.92); backdrop-filter: blur(12px); border-bottom: 1px solid var(--gray-300); transition: var(--transition); } .site-header.scrolled { box-shadow: var(--shadow-sm); } .header-inner { display: flex; justify-content: space-between; align-items: center; height: 72px; } .logo { display: flex; align-items: center; gap: 10px; font-size: 1.4rem; font-weight: 800; color: var(--primary); } .logo-icon { width: 38px; height: 38px; background: var(--primary); border-radius: 8px; display: flex; align-items: center; justify-content: center; color: var(--white); font-size: 1.2rem; } .nav-main { display: flex; gap: 32px; align-items: center; } .nav-main a { font-weight: 500; font-size: 0.95rem; color: var(--gray-700); position: relative; } .nav-main a::after { content: ''; position: absolute; bottom: -4px; left: 0; width: 0; height: 2px; background: var(--primary); transition: var(--transition); } .nav-main a:hover { color: var(--primary); } .nav-main a:hover::after { width: 100%; } .header-actions { display: flex; align-items: center; gap: 16px; } .mobile-toggle { display: none; flex-direction: column; gap: 5px; padding: 8px; } .mobile-toggle span { width: 24px; height: 2px; background: var(--gray-900); transition: var(--transition); border-radius: 2px; } /* HERO */ .hero { padding: 140px 0 100px; background: linear-gradient(135deg, #f0f4f2 0%, #e8eee9 100%); position: relative; overflow: hidden; } .hero::before { content: ''; position: absolute; top: -20%; right: -10%; width: 60%; height: 120%; background: radial-gradient(circle, rgba(43,82,60,0.06) 0%, transparent 70%); } .hero .container { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 60px; align-items: center; position: relative; z-index: 1; } .hero-badge { display: inline-flex; align-items: center; gap: 8px; background: rgba(43,82,60,0.08); color: var(--primary); padding: 8px 16px; border-radius: 50px; font-size: 0.85rem; font-weight: 600; margin-bottom: 24px; } .hero h1 { font-size: clamp(2.2rem, 4.5vw, 3.4rem); font-weight: 900; line-height: 1.1; margin-bottom: 20px; color: var(--dark); } .hero h1 span { color: var(--primary); } .hero p { font-size: 1.1rem; color: var(--gray-700); max-width: 520px; margin-bottom: 36px; } .hero-actions { display: flex; gap: 16px; flex-wrap: wrap; margin-bottom: 48px; } .hero-stats { display: flex; gap: 40px; padding-top: 32px; border-top: 1px solid var(--gray-300); } .hero-stat h3 { font-size: 1.6rem; font-weight: 800; color: var(--primary); } .hero-stat p { font-size: 0.85rem; color: var(--gray-500); margin-bottom: 0; } .hero-visual { display: flex; justify-content: center; align-items: center; position: relative; } .hero-card { background: var(--white); border-radius: 20px; padding: 40px; box-shadow: var(--shadow-lg); text-align: center; transform: rotate(-3deg); transition: var(--transition); } .hero-card:hover { transform: rotate(0deg) translateY(-8px); } .hero-card-icon { font-size: 5rem; margin-bottom: 16px; } .hero-card h3 { font-size: 1.3rem; font-weight: 700; margin-bottom: 8px; } .hero-card p { font-size: 0.95rem; color: var(--gray-700); } /* ABOUT */ .about { padding: 100px 0; background: var(--white); } .about .container { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; } .about-visual { background: var(--gray-100); border-radius: 24px; height: 460px; display: flex; align-items: center; justify-content: center; font-size: 6rem; position: relative; overflow: hidden; } .about-visual::after { content: ''; position: absolute; bottom: -30px; right: -30px; width: 180px; height: 180px; border-radius: 50%; background: rgba(43,82,60,0.08); } .about-content .section-label, .about-content .section-title { text-align: left; } .about-content .section-subtitle { margin-bottom: 28px; } .values-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 32px; } .value-item { display: flex; align-items: flex-start; gap: 12px; } .value-icon { width: 36px; height: 36px; min-width: 36px; border-radius: 8px; background: rgba(43,82,60,0.08); display: flex; align-items: center; justify-content: center; color: var(--primary); font-size: 0.9rem; margin-top: 2px; } .value-item h4 { font-size: 1rem; font-weight: 700; margin-bottom: 4px; } .value-item p { font-size: 0.88rem; color: var(--gray-700); } /* PRODUCTS */ .products { padding: 100px 0; background: var(--gray-100); } .products-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 28px; margin-top: 40px; } .product-card { background: var(--white); border-radius: var(--radius); overflow: hidden; transition: var(--transition); box-shadow: var(--shadow-sm); } .product-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); } .product-thumb { height: 200px; display: flex; align-items: center; justify-content: center; font-size: 4rem; } .product-thumb.p1 { background: linear-gradient(135deg, #e8f0e8, #d4e4d4); } .product-thumb.p2 { background: linear-gradient(135deg, #f0e8d4, #e4d8c4); } .product-thumb.p3 { background: linear-gradient(135deg, #d4e8f0, #c4d8e4); } .product-thumb.p4 { background: linear-gradient(135deg, #f0d4d4, #e4c4c4); } .product-body { padding: 24px; } .product-tag { display: inline-block; padding: 4px 12px; border-radius: 50px; font-size: 0.75rem; font-weight: 600; margin-bottom: 12px; background: rgba(43,82,60,0.08); color: var(--primary); } .product-body h3 { font-size: 1.15rem; font-weight: 700; margin-bottom: 8px; } .product-body p { font-size: 0.9rem; color: var(--gray-700); margin-bottom: 20px; } .product-footer { display: flex; justify-content: space-between; align-items: center; } .product-price { font-size: 1.1rem; font-weight: 800; color: var(--primary); } .product-price small { font-size: 0.8rem; color: var(--gray-500); font-weight: 500; } /* SUSTAINABILITY */ .sustainability { padding: 100px 0; background: var(--primary); color: var(--white); } .sustainability .section-title { color: var(--white); } .sustainability .section-subtitle { color: rgba(255,255,255,0.7); } .sustain-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 24px; margin-top: 40px; } .sustain-card { background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.12); border-radius: var(--radius); padding: 28px; transition: var(--transition); } .sustain-card:hover { background: rgba(255,255,255,0.14); transform: translateY(-4px); } .sustain-icon { font-size: 1.8rem; margin-bottom: 16px; } .sustain-card h3 { font-size: 1.1rem; font-weight: 700; margin-bottom: 8px; } .sustain-card p { font-size: 0.9rem; color: rgba(255,255,255,0.7); } /* BLOG */ .blog { padding: 100px 0; background: var(--white); } .blog-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 28px; margin-top: 40px; } .blog-card { background: var(--gray-100); border-radius: var(--radius); overflow: hidden; transition: var(--transition); } .blog-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); } .blog-thumb { height: 180px; display: flex; align-items: center; justify-content: center; font-size: 3rem; background: linear-gradient(135deg, #e8eee9, #dce5de); } .blog-body { padding: 24px; } .blog-meta { font-size: 0.8rem; color: var(--gray-500); margin-bottom: 8px; } .blog-body h3 { font-size: 1.1rem; font-weight: 700; margin-bottom: 8px; line-height: 1.4; } .blog-body p { font-size: 0.9rem; color: var(--gray-700); } .read-more { display: inline-flex; align-items: center; gap: 6px; font-size: 0.88rem; font-weight: 600; color: var(--primary); margin-top: 12px; } .read-more:hover { gap: 10px; } /* CONTACT */ .contact { padding: 100px 0; background: var(--gray-100); } .contact .container { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: flex-start; } .contact-info h2 { font-size: 2rem; font-weight: 800; margin-bottom: 16px; } .contact-info p { font-size: 1rem; color: var(--gray-700); margin-bottom: 32px; } .contact-details { display: flex; flex-direction: column; gap: 20px; } .contact-item { display: flex; align-items: flex-start; gap: 14px; } .contact-icon { width: 44px; height: 44px; border-radius: 10px; background: rgba(43,82,60,0.08); display: flex; align-items: center; justify-content: center; color: var(--primary); font-size: 1.1rem; } .contact-item h4 { font-size: 0.95rem; font-weight: 700; margin-bottom: 2px; } .contact-item p { font-size: 0.9rem; color: var(--gray-700); margin-bottom: 0; } .contact-form { background: var(--white); border-radius: var(--radius); padding: 36px; box-shadow: var(--shadow-md); } .form-group { margin-bottom: 20px; } .form-group label { display: block; font-size: 0.88rem; font-weight: 600; margin-bottom: 6px; color: var(--gray-900); } .form-group input, .form-group select, .form-group textarea { width: 100%; padding: 12px 16px; border: 1px solid var(--gray-300); border-radius: 8px; font-size: 0.95rem; font-family: inherit; transition: var(--transition); background: var(--gray-100); } .form-group input:focus, .form-group select:focus, .form-group textarea:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px rgba(43,82,60,0.1); } .form-group textarea { resize: vertical; min-height: 120px; } .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; } /* FOOTER */ .site-footer { background: var(--dark); color: rgba(255,255,255,0.7); padding: 80px 0 0; } .footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 48px; margin-bottom: 60px; } .footer-brand .logo { color: var(--white); margin-bottom: 16px; } .footer-brand p { font-size: 0.92rem; line-height: 1.7; max-width: 320px; margin-bottom: 24px; } .social-links { display: flex; gap: 12px; } .social-links a { width: 40px; height: 40px; border-radius: 8px; border: 1px solid rgba(255,255,255,0.15); display: flex; align-items: center; justify-content: center; transition: var(--transition); } .social-links a:hover { background: var(--accent); border-color: var(--accent); color: var(--white); } .footer h4 { color: var(--white); font-size: 0.95rem; font-weight: 700; margin-bottom: 20px; text-transform: uppercase; letter-spacing: 1px; } .footer ul li { margin-bottom: 12px; } .footer ul li a { font-size: 0.9rem; transition: var(--transition); } .footer ul li a:hover { color: var(--accent); padding-left: 4px; } .footer-bottom { border-top: 1px solid rgba(255,255,255,0.08); padding: 28px 0; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; font-size: 0.85rem; } .footer-legal { display: flex; gap: 24px; } .footer-legal a:hover { color: var(--accent); } /* RESPONSIVE */ @media (max-width: 992px) { .hero .container { grid-template-columns: 1fr; text-align: center; } .hero p { margin-left: auto; margin-right: auto; } .hero-actions, .hero-stats { justify-content: center; } .hero-visual { display: none; } .about .container, .contact .container { grid-template-columns: 1fr; } .about-visual { height: 320px; } .about-content .section-label, .about-content .section-title { text-align: center; } .about-content .section-subtitle { margin-left: auto; margin-right: auto; } .values-grid { grid-template-columns: 1fr; } .footer-grid { grid-template-columns: 1fr 1fr; } } @media (max-width: 768px) { .nav-main { display: none; position: absolute; top: 72px; left: 0; width: 100%; background: var(--white); flex-direction: column; padding: 24px; gap: 20px; box-shadow: var(--shadow-md); } .nav-main.active { display: flex; } .mobile-toggle { display: flex; } .hero-stats { flex-direction: column; gap: 20px; align-items: center; } .form-row { grid-template-columns: 1fr; } .footer-grid { grid-template-columns: 1fr; } .footer-bottom { justify-content: center; text-align: center; } .footer-legal { justify-content: center; } } /* ANIMATIONS */ .fade-up { opacity: 0; transform: translateY(24px); transition: opacity 0.6s ease, transform 0.6s ease; } .fade-up.visible { opacity: 1; transform: translateY(0); }
Cup Source delivers premium paper cups, cold drinkware, lids, and custom packaging to cafΓ©s, restaurants, and retailers across 30+ countries. Bulk pricing, reliable logistics, sustainable materials.
Units Shipped Monthly
Active B2B Clients
Global Fulfillment
Custom packaging, private labeling, and dedicated account management for your supply chain.
We bridge the gap between manufacturing excellence and retail demand. Cup Source partners with certified factories and logistics networks to ensure your business never runs out of essential drinkware.
Food-grade materials tested for safety.
Full-color printing & custom dimensions.
Warehouse networks across NA, EU & APAC.
Account managers for every tier.
From hot coffee cups to iced tea containers, every product is designed for durability, insulation, and brand visibility.
8ozβ20oz capacity with PE coating. Superior heat retention and leak-resistant base.
Crystal clarity, condensation-resistant. Ideal for smoothies, iced coffee, and juices.
Flat, dome, and travel lids. Cardboard sleeves and compostable straw options.
Plant-based alternatives. Fully compostable and certified for commercial digestion.
We're committed to reducing single-use plastic waste through material innovation, supply chain transparency, and certified recycling programs.
Biodegradable PLA linings and bagasse fibers that break down in 90 days.
Offset logistics emissions through verified reforestation and renewable energy credits.
FSC paper sourcing, BPI compostability, and FDA/LFGB food safety standards.
Return unused stock or defective batches for recycling credit on future orders.
Stay informed on packaging regulations, sustainability trends, and wholesale supply chain strategies.
How foodservice operators can transition to compliant alternatives without disrupting service.
Read Article βStrategies to reduce warehousing costs while maintaining consistent product availability.
Read Article βA technical breakdown of materials, degradation rates, and commercial compatibility.
Read Article βRequest a catalog, schedule a sample shipment, or speak with a wholesale specialist. We respond within 4 business hours.
412 Commerce Blvd, Suite 300
Portland, OR 97201, USA
orders@cupsource.com
+1 (800) 555-CUPS
MonβFri: 8AMβ6PM PST