ADVERTISEMENT

Manila councilor files sexual harassment raps vs colleague

Published Dec 16, 2025 04:26 pm
Manila 4th District Councilor Eunice Castro (right) files charges against 4th District Councilor Ryan Ponce on Tuesday, Dec. 16. (Photo from Councilor Eunice Castro)
Manila 4th District Councilor Eunice Castro (right) files charges against 4th District Councilor Ryan Ponce on Tuesday, Dec. 16. (Photo from Councilor Eunice Castro)
Manila 4th District Councilor Eunice Castro has filed charges against fellow 4th District Councilor Ryan Ponce at the Manila Prosecutor's Office on Tuesday, Dec. 16, following Ponce's alleged sexual advances on her which she disclosed during one of the city council's sessions in October.
According to Castro, she filed charges for violations of RA 11313, or the Safe Spaces Act, as well as acts of lasciviousness against Ponce.
The city official chastised Ponce during the city council's Oct. 9 session for his alleged repeated sexual innuendos during multiple occasions, which include poking her palm which is considered a sexually suggestive gesture, sending lewd text messages, and repeatedly sending lewd comments to her, particularly about her clothing.
Castro ended her speech by urging abused and harassed women to speak up against their abusers.
"Sa mga kapwa ko babae sa Lungsod ng Maynila, sa buong Pilipinas, at sa buong mundo, hindi niyo kailangang magpanggap para tratuhin nang tama. Hindi kayo nag-iisa. Hinihikayat ko kayong lahat: huwag mangamba, huwag magsarili, huwag mag-isa, huwag magkulong, at huwag matakot. Wala tayong dapat ikahiya. Dapat tayong tumindig laban sa mga taong abusado, tinatayuan, tinatawag, at nilalabanan sa tamang paraan (To my fellow women in the City of Manila, throughout the Philippines, and around the world, you don’t have to pretend to be treated right. You are not alone. I encourage you all: don’t remain silent, don’t lock yourselves up, and don’t be afraid. We have nothing to be ashamed of. We must stand up against abusive people, call them out, and fight them the right way)," she stressed.
Following Castro's revelations, Ponce apologized to her, saying that he did not mean to cause her harm or offend her.
On Oct. 16, Manila Vice Mayor Chi Atienza said the city council voted to suspend Ponce through Resolution No. 393 following its investigation into the issue.
In its committee report, the body said that it "finds credence to the allegation" made by Castro and emphasized that despite an apology from Ponce, a public official must be held accountable for his actions.
The Committee on Ethics also recommended the 60-day suspension against Ponce, the maximum penalty allowed under the council’s internal rules for such an offense.
The council also approved reorganizing all committees where Ponce previously served as a member.
“Let this serve as a clear signal that this council takes its duties and ethical standards with seriousness and due process. This is also a reminder to everyone that this kind of complaint should not be taken lightly,” Atienza said.

Related Tags

EUNICE CASTRO RYAN PONCE SEXUAL HARASSMENT MANILA CITY METRO NEWS
ADVERTISEMENT
.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1561_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1562_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1563_widget.title }}

{{ articles_filter_1564_widget.title }}

.mb-article-details { position: relative; } .mb-article-details .article-body-preview, .mb-article-details .article-body-summary{ font-size: 17px; line-height: 30px; font-family: "Libre Caslon Text", serif; color: #000; } .mb-article-details .article-body-preview iframe , .mb-article-details .article-body-summary iframe{ width: 100%; margin: auto; } .read-more-background { background: linear-gradient(180deg, color(display-p3 1.000 1.000 1.000 / 0) 13.75%, color(display-p3 1.000 1.000 1.000 / 0.8) 30.79%, color(display-p3 1.000 1.000 1.000) 72.5%); position: absolute; height: 200px; width: 100%; bottom: 0; display: flex; justify-content: center; align-items: center; padding: 0; } .read-more-background a{ color: #000; } .read-more-btn { padding: 17px 45px; font-family: Inter; font-weight: 700; font-size: 18px; line-height: 16px; text-align: center; vertical-align: middle; border: 1px solid black; background-color: white; } .hidden { display: none; }
function initializeAllSwipers() { // Get all hidden inputs with cms_article_id document.querySelectorAll('[id^="cms_article_id_"]').forEach(function (input) { const cmsArticleId = input.value; const articleSelector = '#article-' + cmsArticleId + ' .body_images'; const swiperElement = document.querySelector(articleSelector); if (swiperElement && !swiperElement.classList.contains('swiper-initialized')) { new Swiper(articleSelector, { loop: true, pagination: false, navigation: { nextEl: '#article-' + cmsArticleId + ' .swiper-button-next', prevEl: '#article-' + cmsArticleId + ' .swiper-button-prev', }, }); } }); } setTimeout(initializeAllSwipers, 3000); const intersectionObserver = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { const newUrl = entry.target.getAttribute("data-url"); if (newUrl) { history.pushState(null, null, newUrl); let article = entry.target; // Extract metadata const author = article.querySelector('.author-section').textContent.replace('By', '').trim(); const section = article.querySelector('.section-info ').textContent.replace(' ', ' '); const title = article.querySelector('.article-title h1').textContent; // Parse URL for Chartbeat path format const parsedUrl = new URL(newUrl, window.location.origin); const cleanUrl = parsedUrl.host + parsedUrl.pathname; // Update Chartbeat configuration if (typeof window._sf_async_config !== 'undefined') { window._sf_async_config.path = cleanUrl; window._sf_async_config.sections = section; window._sf_async_config.authors = author; } // Track virtual page view with Chartbeat if (typeof pSUPERFLY !== 'undefined' && typeof pSUPERFLY.virtualPage === 'function') { try { pSUPERFLY.virtualPage({ path: cleanUrl, title: title, sections: section, authors: author }); } catch (error) { console.error('ping error', error); } } // Optional: Update document title if (title && title !== document.title) { document.title = title; } } } }); }, { threshold: 0.1 } ); function showArticleBody(button) { const article = button.closest("article"); const summary = article.querySelector(".article-body-summary"); const body = article.querySelector(".article-body-preview"); const readMoreSection = article.querySelector(".read-more-background"); // Hide summary and read-more section summary.style.display = "none"; readMoreSection.style.display = "none"; // Show the full article body body.classList.remove("hidden"); } document.addEventListener("DOMContentLoaded", () => { let loadCount = 0; // Track how many times articles are loaded const offset = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // Offset values const currentUrl = window.location.pathname.substring(1); let isLoading = false; // Prevent multiple calls if (!currentUrl) { console.log("Current URL is invalid."); return; } const sentinel = document.getElementById("load-more-sentinel"); if (!sentinel) { console.log("Sentinel element not found."); return; } function isSentinelVisible() { const rect = sentinel.getBoundingClientRect(); return ( rect.top < window.innerHeight && rect.bottom >= 0 ); } function onScroll() { if (isLoading) return; if (isSentinelVisible()) { if (loadCount >= offset.length) { console.log("Maximum load attempts reached."); window.removeEventListener("scroll", onScroll); return; } isLoading = true; const currentOffset = offset[loadCount]; window.loadMoreItems().then(() => { let article = document.querySelector('#widget_1690 > div:nth-last-of-type(2) article'); intersectionObserver.observe(article) loadCount++; }).catch(error => { console.error("Error loading more items:", error); }).finally(() => { isLoading = false; }); } } window.addEventListener("scroll", onScroll); });

Sign up by email to receive news.