91³Ô¹ÏÍø

Watch CBS News

Climate Connection: Sustainable Valentine's Day

NORTH TEXAS - Love is in the air. From chocolates to stuffed animals, love birds around the world are searching for that perfect gift to signify their love. 

When you think of Valentine's Day, you think of flowers. But you may be surprised to know that these romantic flower arrangements aren't good for the environment. Rita Feldman, The Sustainable Floristry Network founder says there is a lot of waste in the floral industry.

"There's a real problem with forestry and floral design because packaging and particularly some really problematic plastics have been part of floral design for about the past 15 years," Feldman said.

Two floral sponges on a white background. Floral brick
Two floral sponges close-up on a white background. Floral brick

Feldman says the biggest offender in floral designs and packaging is the green floral foam that keeps your flowers fresh and secure for your arrangement.

"And of course, when we use it or it crumbles into microplastics very easily, and as florists we use that in conjunction with the water system," said Feldman. "It can't be recycled, it's not biodegradable. We'll have to go to regular trash. We need to contain those crumbles of plastic as best we can, so they don't leak into the environment."

It isn't only the packaging that is a concern. It is also transportation. 

With winter being in the northern hemisphere during February, roses need to be shipped to countries in the northern hemisphere including here in North America. 

According to in the three weeks leading up to Valentine's Day approximately 250 million stems of roses are shipped from countries like Kenya, Colombia, and Ecuador. That equals a lot of fuel and a larger carbon footprint. 

fs-250m-roses.png

According to the International Council on Clean Transportation, the importation of flowers burns roughly 30 million gallons of fuel, emitting approximately 360,000 metric tons of carbon dioxide into the atmosphere.

So how do we have a more sustainable Valentine's Day? 

You might not have to look too far. Feldman says to opt for locally grown, seasonal flowers, look to see if the flowers your florist is using have certifications, consider giving a gift card or voucher to be used at a later time, ask for minimal packaging such as a simple piece of twine or ribbon tied around a bouquet, explore using fresh foliage and even gifting a house plant instead of the traditional bouquet of roses.

fs-roses-6.png
View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=fd53910ecf4604072044ab7c46d9b028'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });