:root {
--espresso: #3b2315;
--dark-brown: #5c3d2e;
--warm-brown: #8b5e3c;
--gold: #d4a053;
--cream: #fdf8f4;
--light-cream: #f5efe9;
--white: #ffffff;
--accent-orange: #e07b39;
--text-dark: #2c1810;
--text-muted: #6b5b50;
--shadow: 0 4px 24px rgba(59,35,21,.10);
--shadow-lg: 0 12px 40px rgba(59,35,21,.14);
--radius: 14px;
--transition: .3s ease;
--success: #2e7d32;
}
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
color: var(--text-dark);
line-height: 1.6;
background: var(--cream);
}
a { text-decoration: none; color: inherit; }
ul { list-style: none; }
img { max-width: 100%; display: block; }
.container { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.btn {
display: inline-flex; align-items: center; justify-content: center; gap: 8px;
padding: 12px 28px; border-radius: 50px; font-weight: 700; font-size: .95rem;
cursor: pointer; border: none; transition: var(--transition);
}
.btn-primary { background: var(--accent-orange); color: var(--white); }
.btn-primary:hover { background: var(--gold); transform: translateY(-2px); box-shadow: 0 6px 20px rgba(224,123,57,.35); }
.btn-outline { border: 2px solid var(--espresso); color: var(--espresso); background: transparent; }
.btn-outline:hover { background: var(--espresso); color: var(--white); }
.btn-sm { padding: 10px 20px; font-size: .85rem; }
.section-label { text-transform: uppercase; letter-spacing: 3px; font-size: .8rem; font-weight: 700; color: var(--gold); margin-bottom: 8px; }
.section-title { font-size: clamp(1.8rem, 4vw, 2.6rem); font-weight: 800; line-height: 1.2; margin-bottom: 16px; }
.section-subtitle { font-size: 1.05rem; color: var(--text-muted); max-width: 600px; margin: 0 auto 40px; }
.text-center { text-align: center; }
/* NAV */
.navbar {
position: fixed; top: 0; left: 0; width: 100%; z-index: 1000;
padding: 16px 0; transition: var(--transition); background: transparent;
}
.navbar.scrolled { background: rgba(253,248,244,.95); backdrop-filter: blur(12px); box-shadow: 0 2px 16px rgba(59,35,21,.08); padding: 10px 0; }
.navbar .container { display: flex; justify-content: space-between; align-items: center; }
.logo { font-size: 1.6rem; font-weight: 900; color: var(--espresso); display: flex; align-items: center; gap: 8px; }
.logo-icon { width: 36px; height: 36px; background: var(--accent-orange); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--white); font-size: 1.1rem; }
.nav-links { display: flex; gap: 32px; align-items: center; }
.nav-links a { font-weight: 600; font-size: .95rem; color: var(--dark-brown); transition: var(--transition); position: relative; }
.nav-links a::after { content: ''; position: absolute; bottom: -4px; left: 0; width: 0; height: 2px; background: var(--accent-orange); transition: var(--transition); }
.nav-links a:hover::after { width: 100%; }
.nav-links a:hover { color: var(--accent-orange); }
.hamburger { display: none; flex-direction: column; gap: 5px; cursor: pointer; background: none; border: none; }
.hamburger span { width: 26px; height: 3px; background: var(--espresso); border-radius: 2px; transition: var(--transition); }
/* PAGE HERO */
.page-hero {
padding: 140px 0 60px;
background: linear-gradient(135deg, var(--espresso) 0%, var(--dark-brown) 50%, var(--warm-brown) 100%);
color: var(--white); text-align: center; position: relative; overflow: hidden;
}
.page-hero::before {
content: ''; position: absolute; top: -50%; right: -20%; width: 80%; height: 200%;
background: radial-gradient(circle, rgba(212,160,83,.15) 0%, transparent 60%); pointer-events: none;
}
.page-hero h1 { color: var(--white); }
.page-hero p { color: rgba(255,255,255,.75); max-width: 650px; margin: 0 auto; font-size: 1.1rem; }
/* FILTER BAR */
.filter-bar {
background: var(--white); border-radius: var(--radius); padding: 28px;
margin-top: -40px; position: relative; z-index: 10;
box-shadow: var(--shadow-lg); display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-end;
}
.filter-group { flex: 1; min-width: 200px; }
.filter-group label { display: block; font-size: .85rem; font-weight: 700; color: var(--dark-brown); margin-bottom: 6px; }
.filter-input, .filter-select {
width: 100%; padding: 12px 16px; border: 2px solid #e0d8d0; border-radius: 10px;
font-size: .95rem; background: var(--light-cream); transition: var(--transition);
}
.filter-input:focus, .filter-select:focus { outline: none; border-color: var(--accent-orange); }
.filter-actions { display: flex; gap: 12px; align-items: flex-end; }
.result-count { font-size: .9rem; color: var(--text-muted); margin-bottom: 24px; }
/* SPECS GRID */
.specs-section { padding: 60px 0 80px; }
.specs-grid {
display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
gap: 24px;
}
.spec-card {
background: var(--white); border-radius: var(--radius); padding: 28px;
border: 1px solid #e8e0d8; transition: var(--transition); position: relative;
}
.spec-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: var(--gold); }
.spec-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 16px; }
.spec-title { font-size: 1.15rem; font-weight: 700; color: var(--espresso); }
.spec-badge {
background: rgba(212,160,83,.15); color: var(--gold); font-size: .7rem;
font-weight: 700; padding: 4px 10px; border-radius: 50px; text-transform: uppercase;
}
.spec-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 20px; }
.spec-meta-item { font-size: .88rem; color: var(--text-muted); }
.spec-meta-item strong { color: var(--dark-brown); display: block; font-size: .75rem; text-transform: uppercase; letter-spacing: .5px; margin-bottom: 2px; }
.spec-footer { display: flex; justify-content: space-between; align-items: center; padding-top: 16px; border-top: 1px solid #f0e8e0; }
.file-info { font-size: .8rem; color: var(--text-muted); display: flex; align-items: center; gap: 6px; }
.file-info::before { content: '📄'; }
.download-btn {
background: var(--espresso); color: var(--white); padding: 10px 20px;
border-radius: 8px; font-size: .85rem; font-weight: 700; transition: var(--transition);
display: inline-flex; align-items: center; gap: 6px;
}
.download-btn:hover { background: var(--accent-orange); transform: translateY(-2px); }
/* BULK DOWNLOAD */
.bulk-section {
background: linear-gradient(135deg, var(--light-cream), var(--cream));
padding: 80px 0; text-align: center;
}
.bulk-card {
background: var(--white); border-radius: 20px; padding: 48px;
max-width: 800px; margin: 0 auto; box-shadow: var(--shadow);
}
.bulk-card h3 { font-size: 1.6rem; font-weight: 800; margin-bottom: 12px; }
.bulk-card p { color: var(--text-muted); margin-bottom: 28px; max-width: 500px; margin-left: auto; margin-right: auto; }
/* SUPPORT */
.support-section {
padding: 60px 0; background: var(--white); text-align: center;
}
.support-card {
background: var(--light-cream); border-radius: var(--radius); padding: 40px;
max-width: 700px; margin: 0 auto; display: flex; flex-direction: column; align-items: center;
}
.support-card .icon { font-size: 2.5rem; margin-bottom: 16px; }
.support-card h3 { font-size: 1.4rem; font-weight: 700; margin-bottom: 12px; }
.support-card p { color: var(--text-muted); margin-bottom: 24px; }
/* FOOTER */
.footer {
background: var(--espresso); color: rgba(255,255,255,.7); padding: 80px 0 0;
}
.footer-grid {
display: grid; grid-template-columns: 2fr 1fr 1fr 1fr;
gap: 48px; margin-bottom: 60px;
}
.footer-brand .logo { color: var(--white); margin-bottom: 16px; }
.footer-brand p { font-size: .92rem; line-height: 1.7; max-width: 300px; }
.footer h4 { color: var(--white); font-size: 1rem; font-weight: 700; margin-bottom: 20px; text-transform: uppercase; letter-spacing: 1px; }
.footer ul li { margin-bottom: 12px; }
.footer ul li a { font-size: .92rem; transition: var(--transition); }
.footer ul li a:hover { color: var(--gold); padding-left: 4px; }
.footer-bottom {
border-top: 1px solid rgba(255,255,255,.08); padding: 28px 0;
display: flex; justify-content: space-between; align-items: center;
flex-wrap: wrap; gap: 16px; font-size: .85rem;
}
.social-links { display: flex; gap: 12px; }
.social-links a {
width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(255,255,255,.15);
display: flex; align-items: center; justify-content: center; transition: var(--transition); font-size: .9rem;
}
.social-links a:hover { background: var(--gold); border-color: var(--gold); color: var(--espresso); }
/* RESPONSIVE */
@media (max-width: 992px) {
.footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 768px) {
.nav-links {
display: none; position: absolute; top: 100%; left: 0; width: 100%;
background: var(--white); flex-direction: column; padding: 24px; gap: 20px; box-shadow: var(--shadow);
}
.nav-links.active { display: flex; }
.hamburger { display: flex; }
.filter-bar { flex-direction: column; }
.filter-group { min-width: 100%; }
.filter-actions { width: 100%; justify-content: flex-end; }
.specs-grid { grid-template-columns: 1fr; }
.footer-grid { grid-template-columns: 1fr; }
.footer-bottom { justify-content: center; text-align: center; }
}
Technical Documentation
Product Specification Sheets
Access detailed engineering specs, material safety data, dimensions, and printing guidelines for every Cup Source product. Download PDFs directly or request custom technical packs.
Search Products
Category
All Products
Hot & Cold Cups
Takeaway Bowls
Lids & Sleeves
Straws & Utensils
Material
All Materials
Paper / Board
PET / Clear Plastic
Polypropylene (PP)
Bioplastics / Compostable
Reset
Apply Filters
Showing 6 of 12 product families
Volume & Catalog
Download Master Spec Catalog
Need complete technical documentation for procurement, compliance, or engineering review? Download our full product spec pack.
📦 Download Full Catalog (PDF, 48MB)
🔍
Can't Find a Spec Sheet?
Custom formulations, regional compliance variants, or white-label technical packs? Our product engineering team will send you exactly what you need within 24 hours.
Request Custom Documentation