/* ------------------------------------------------------------------
 * Tienda de recursos.
 * 1) Fichas de producto y archivo de la tienda en el estilo oscuro de la marca (el CSS global del sitio fuerza
 *    los textos en verde claro, que sobre fondo blanco no se leen).
 * 2) Catálogo [ep_recursos].
 * ---------------------------------------------------------------- */

body.single-product,
body.post-type-archive-product,
body.tax-product_cat,
body.tax-product_tag {
	background: #05070d !important;
}
body.single-product .wp-site-blocks,
body.single-product main,
body.post-type-archive-product main,
body.tax-product_cat main {
	background: transparent !important;
}
body.single-product main { padding-top: 24px; padding-bottom: 56px; }
body.single-product main .wp-block-group,
body.single-product .wp-block-group.woocommerce.product,
body.post-type-archive-product main .wp-block-group,
body.tax-product_cat main .wp-block-group { background: transparent !important; }

body.single-product .wc-block-breadcrumbs,
body.single-product .wp-block-woocommerce-breadcrumbs,
body.post-type-archive-product .wc-block-breadcrumbs,
body.tax-product_cat .wc-block-breadcrumbs { background: transparent !important; color: #8b96a8 !important; }
body.single-product .wc-block-breadcrumbs a,
body.post-type-archive-product .wc-block-breadcrumbs a,
body.tax-product_cat .wc-block-breadcrumbs a { color: #cdeee0 !important; }

/* Menú, carrito y encabezado: en estas plantillas el menú usa un color oscuro propio */
body.single-product .wp-block-navigation a,
body.single-product .wp-block-navigation .wp-block-navigation-item__content,
body.single-product .wp-block-navigation__responsive-container-content a,
body.post-type-archive-product .wp-block-navigation a,
body.tax-product_cat .wp-block-navigation a { color: #cdeee0 !important; }
body.single-product .wc-block-mini-cart__button svg,
body.post-type-archive-product .wc-block-mini-cart__button svg,
body.single-product .wp-block-woocommerce-customer-account svg,
body.post-type-archive-product .wp-block-woocommerce-customer-account svg { fill: #cdeee0 !important; color: #cdeee0 !important; }
body.single-product h1,
body.single-product h2,
body.single-product h3,
body.single-product h4,
body.post-type-archive-product h1,
body.post-type-archive-product h2,
body.tax-product_cat h1 { color: #cdeee0 !important; }
body.single-product main p,
body.single-product main li,
body.single-product main td,
body.single-product main th,
body.single-product main span,
body.post-type-archive-product main p,
body.tax-product_cat main p { color: #c7d2de !important; }
body.single-product main a { color: #02ec97; }
body.single-product .woocommerce-breadcrumb,
body.single-product .wc-block-breadcrumbs,
body.single-product .wp-block-woocommerce-breadcrumbs,
body.single-product .wp-block-woocommerce-breadcrumbs a,
body.single-product .wp-block-woocommerce-breadcrumbs span { color: #8b96a8 !important; }

/* Imagen y precio */
body.single-product .wp-block-woocommerce-product-image-gallery img { border-radius: 16px; border: 1px solid rgba(255, 255, 255, .12); }
body.single-product .wp-block-woocommerce-product-price,
body.single-product .wp-block-woocommerce-product-price * {
	color: #02ec97 !important;
	font-size: 30px;
	font-weight: 700;
}
body.single-product .wp-block-woocommerce-product-price del,
body.single-product .wp-block-woocommerce-product-price del * { color: #8b96a8 !important; font-size: 18px; font-weight: 400; }

/* Botón de compra */
body.single-product .single_add_to_cart_button,
body.single-product .wp-block-woocommerce-add-to-cart-form button {
	background: #02ec97 !important;
	color: #05070d !important;
	border: 0 !important;
	border-radius: 50px !important;
	padding: 16px 38px !important;
	font-weight: 700 !important;
	font-size: 17px !important;
	cursor: pointer;
}
body.single-product .single_add_to_cart_button:hover { background: #05c77e !important; }
body.single-product .quantity { display: none; }

/* Metadatos y pestañas */
body.single-product .wp-block-woocommerce-product-meta,
body.single-product .wp-block-woocommerce-product-meta * { color: #8b96a8 !important; font-size: 13.5px; }
body.single-product .wp-block-woocommerce-product-details { margin-top: 28px; }
body.single-product .wp-block-woocommerce-product-details .wc-tabs { border-bottom: 1px solid rgba(255, 255, 255, .15); }
body.single-product .wp-block-woocommerce-product-details .wc-tabs li a,
body.single-product .wp-block-woocommerce-product-details .wc-tabs li { color: #c7d2de !important; }
body.single-product .wp-block-woocommerce-product-details .wc-tabs li.active a { color: #02ec97 !important; border-bottom: 2px solid #02ec97; }
body.single-product .woocommerce-Tabs-panel,
body.single-product .wp-block-woocommerce-product-details > div {
	background: rgba(255, 255, 255, .04);
	border: 1px solid rgba(255, 255, 255, .1);
	border-radius: 14px;
	padding: 22px 26px;
	margin-top: 16px;
}
body.single-product .woocommerce-Tabs-panel h2:first-child { display: none; }
body.single-product .woocommerce-Tabs-panel h3 { margin: 22px 0 6px; font-size: 19px; }
body.single-product .woocommerce-Tabs-panel ul,
body.single-product .woocommerce-Tabs-panel ol { padding-left: 22px; }
body.single-product .woocommerce-Tabs-panel li { margin: 6px 0; }

/* Productos relacionados */
body.single-product .wp-block-woocommerce-product-collection * { color: #c7d2de !important; }
body.single-product .wp-block-woocommerce-product-collection a { color: #cdeee0 !important; }
body.single-product .wp-block-woocommerce-product-collection .wc-block-components-product-price,
body.single-product .wp-block-woocommerce-product-collection .wc-block-components-product-price * { color: #02ec97 !important; }
body.single-product .wp-block-woocommerce-product-collection .wp-block-button__link { background: transparent !important; border: 2px solid #02ec97 !important; color: #02ec97 !important; border-radius: 50px; }

/* ------------------------------------------------------------------ Catálogo */
.ep-rc {
	--rc-fondo: #05070d; --rc-tarjeta: rgba(255, 255, 255, .045); --rc-borde: rgba(255, 255, 255, .12);
	--rc-texto: #c7d2de; --rc-titulo: #cdeee0; --rc-tenue: #8b96a8; --rc-acento: #02ec97;
	background: var(--rc-fondo); color: var(--rc-texto); border-radius: 18px; padding: 32px 28px 40px; max-width: 1180px; margin: 0 auto; line-height: 1.55;
}
.ep-rc * { box-sizing: border-box; }
.ep-rc h2, .ep-rc h3 { color: var(--rc-titulo) !important; }
.ep-rc p, .ep-rc li, .ep-rc span, .ep-rc summary { color: var(--rc-texto); }
.ep-rc a { color: var(--rc-acento); }
.ep-rc-kicker { display: inline-block; color: var(--rc-acento) !important; font-size: 12.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; margin-bottom: 8px; }
.ep-rc-hero { text-align: center; max-width: 760px; margin: 0 auto 36px; }
.ep-rc-hero h2 { font-size: clamp(28px, 4vw, 42px); line-height: 1.15; margin: 0 0 14px; }
.ep-rc-hero p { font-size: 17px; margin: 0 0 18px; }
.ep-rc-garantias { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 22px; padding: 0; margin: 0; }
.ep-rc-garantias li { font-size: 14px; }
.ep-rc-garantias li::before { content: "✓ "; color: var(--rc-acento); font-weight: 700; }
.ep-rc-seccion { margin: 0 0 44px; }
.ep-rc-seccion > h2 { font-size: 26px; margin: 0 0 18px; }
.ep-rc-filtros { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px; }
.ep-rc-chip { background: transparent; border: 1px solid var(--rc-borde); color: var(--rc-texto); border-radius: 999px; padding: 8px 18px; font-size: 14px; cursor: pointer; }
.ep-rc-chip.activo { background: var(--rc-acento); border-color: var(--rc-acento); color: #05070d; font-weight: 700; }
.ep-rc-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.ep-rc-grid-paquetes { grid-template-columns: repeat(3, 1fr); }
.ep-rc-card { background: var(--rc-tarjeta); border: 1px solid var(--rc-borde); border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; }
.ep-rc-paquete { border-color: rgba(2, 236, 151, .45); }
.ep-rc-card[hidden] { display: none; }
.ep-rc-img { position: relative; display: block; line-height: 0; }
.ep-rc-img img { width: 100%; height: auto; display: block; }
.ep-rc-ahorro { position: absolute; top: 14px; right: 14px; background: var(--rc-acento); color: #05070d !important; font-weight: 700; font-size: 13px; padding: 6px 12px; border-radius: 999px; line-height: 1.2; }
.ep-rc-cuerpo { padding: 18px 20px 20px; display: flex; flex-direction: column; flex: 1; }
.ep-rc-formato { align-self: flex-start; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--rc-acento) !important; border: 1px solid rgba(2, 236, 151, .4); border-radius: 999px; padding: 3px 10px; margin-bottom: 10px; }
.ep-rc-cuerpo h3 { font-size: 19px; line-height: 1.25; margin: 0 0 8px; }
.ep-rc-cuerpo h3 a { color: var(--rc-titulo) !important; text-decoration: none; }
.ep-rc-desc { flex: 1; font-size: 14.5px; }
.ep-rc-desc p { margin: 0 0 12px; }
.ep-rc-pie { display: flex; flex-direction: column; gap: 12px; margin-top: 6px; }
.ep-rc-precio, .ep-rc-precio * { color: var(--rc-acento) !important; font-size: 26px; font-weight: 700; }
.ep-rc-botones { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; }
.ep-rc-boton { display: inline-block; background: var(--rc-acento); color: #05070d !important; border: 2px solid var(--rc-acento); border-radius: 50px; padding: 12px 24px; font-weight: 700; text-decoration: none; cursor: pointer; font-size: 15px; }
.ep-rc-boton:hover { background: #05c77e; border-color: #05c77e; }
.ep-rc-boton.ep-rc-sec { background: transparent; color: var(--rc-acento) !important; }
.ep-rc-enlace { color: var(--rc-texto) !important; font-size: 14px; text-decoration: underline; }
.ep-rc-gratis { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; align-items: center; background: linear-gradient(135deg, rgba(2, 236, 151, .14), rgba(50, 53, 62, .5)); border: 1px solid rgba(2, 236, 151, .35); border-radius: 18px; padding: 30px 32px; margin: 0 0 44px; }
.ep-rc-gratis h2 { font-size: 28px; margin: 0 0 10px; }
.ep-rc-form { display: flex; flex-direction: column; gap: 10px; }
.ep-rc-form input[type=text], .ep-rc-form input[type=email] { width: 100%; background: rgba(5, 7, 13, .7); border: 1px solid var(--rc-borde); border-radius: 10px; padding: 13px 14px; color: #fff; font-size: 15px; }
.ep-rc-consent { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; color: var(--rc-texto); cursor: pointer; }
.ep-rc-consent input { margin-top: 3px; }
.ep-rc-msg { margin: 4px 0 0; min-height: 22px; font-size: 14px; }
.ep-rc-msg.ok { color: var(--rc-acento) !important; }
.ep-rc-msg.error { color: #f87171 !important; }
.ep-rc-pasos { list-style: none; counter-reset: paso; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; padding: 0; margin: 0; }
.ep-rc-pasos li { counter-increment: paso; background: var(--rc-tarjeta); border: 1px solid var(--rc-borde); border-radius: 14px; padding: 18px 20px; display: flex; flex-direction: column; gap: 4px; }
.ep-rc-pasos li::before { content: counter(paso); width: 34px; height: 34px; border-radius: 50%; background: var(--rc-acento); color: #05070d; font-weight: 700; display: flex; align-items: center; justify-content: center; margin-bottom: 6px; }
.ep-rc-pasos strong { color: var(--rc-titulo) !important; font-size: 18px; }
.ep-rc-faq details { background: var(--rc-tarjeta); border: 1px solid var(--rc-borde); border-radius: 12px; padding: 14px 18px; margin-bottom: 10px; }
.ep-rc-faq summary { cursor: pointer; font-weight: 600; color: var(--rc-titulo) !important; }
.ep-rc-faq p { margin: 10px 0 0; }
.ep-rc-cta { text-align: center; background: var(--rc-tarjeta); border: 1px solid var(--rc-borde); border-radius: 18px; padding: 34px 24px; }
.ep-rc-cta h2 { font-size: 28px; margin: 0 0 10px; }
.ep-rc-cta p { max-width: 640px; margin-left: auto; margin-right: auto; }
.ep-rc-cta-botones { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; margin-top: 16px; }
@media (max-width: 960px) { .ep-rc-grid, .ep-rc-grid-paquetes { grid-template-columns: 1fr 1fr; } .ep-rc-gratis { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .ep-rc { padding: 22px 14px 30px; } .ep-rc-grid, .ep-rc-grid-paquetes, .ep-rc-pasos { grid-template-columns: 1fr; } .ep-rc-gratis { padding: 22px 18px; } }

/* ---------- Pago, carrito y Mi cuenta: la página es clara, el texto debe ser oscuro ---------- */
body.woocommerce-checkout .woocommerce :is(label, legend, h2, h3, h4, p, td, th, dt, dd, .payment_box, .woocommerce-privacy-policy-text),
body.woocommerce-cart .woocommerce :is(label, legend, h2, h3, h4, p, td, th, dt, dd),
body.woocommerce-account .woocommerce :is(label, legend, h2, h3, h4, p, td, th, dt, dd) { color: #1f2933 !important; }
body.woocommerce-checkout .woocommerce .required,
body.woocommerce-account .woocommerce .required { color: #b91c1c !important; }
body.woocommerce-checkout .woocommerce a:not(.button):not(.wc-block-components-button),
body.woocommerce-account .woocommerce a:not(.button) { color: #0b7f57; }

/* Encabezado y pie en todas las páginas de la tienda */
body.woocommerce-checkout .wp-block-navigation a,
body.woocommerce-cart .wp-block-navigation a,
body.woocommerce-account .wp-block-navigation a { color: #cdeee0 !important; }
body.woocommerce-checkout footer :is(h1, h2, h3, h4, .wp-block-heading),
body.woocommerce-cart footer :is(h1, h2, h3, h4, .wp-block-heading),
body.woocommerce-account footer :is(h1, h2, h3, h4, .wp-block-heading),
body.single-product footer :is(h1, h2, h3, h4, .wp-block-heading),
body.post-type-archive-product footer :is(h1, h2, h3, h4, .wp-block-heading) { color: #cdeee0 !important; }

/* Paquetes: los 3 primeros a la vista y el resto plegado */
.ep-rc-mas { margin-top: 22px; }
.ep-rc-mas > summary { list-style: none; display: inline-block; cursor: pointer; border: 1px solid var(--rc-borde); color: var(--rc-texto); border-radius: 999px; padding: 10px 22px; font-size: 15px; font-weight: 600; }
.ep-rc-mas > summary::-webkit-details-marker { display: none; }
.ep-rc-mas > summary::after { content: " \25BE"; }
.ep-rc-mas[open] > summary::after { content: " \25B4"; }
.ep-rc-mas > summary:hover { border-color: var(--rc-acento); }
.ep-rc-mas > .ep-rc-grid { margin-top: 22px; }

/* ---------- Panel del carrito (ícono del encabezado): colores explícitos, también con el modo oscuro del teléfono ---------- */
.wc-block-mini-cart__drawer,
.wc-block-mini-cart__drawer .wc-block-components-drawer__content,
.wc-block-mini-cart__drawer .wc-block-mini-cart__template-part { background: #0b0f1a !important; color: #cdeee0 !important; color-scheme: dark; }
.wc-block-mini-cart__drawer :is(h1, h2, h3, p, span, div, a, li, dt, dd, td, th, label, strong) { color: #cdeee0 !important; }
.wc-block-mini-cart__drawer .wc-block-components-product-name { color: #ffffff !important; font-weight: 600; }
.wc-block-mini-cart__drawer :is(.wc-block-components-product-metadata, .wc-block-components-product-metadata p, .wc-block-components-product-metadata span) { color: #9fb1c2 !important; }
.wc-block-mini-cart__drawer svg { fill: currentColor; }
.wc-block-mini-cart__drawer :is(.wc-block-components-drawer__close, .wc-block-cart-item__remove-link, .wc-block-components-drawer__close svg) { color: #cdeee0 !important; background: transparent !important; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-checkout { background: #02ec97 !important; color: #05070d !important; border: 2px solid #02ec97 !important; font-weight: 700; border-radius: 50px; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-checkout :is(span, div) { color: #05070d !important; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-cart { background: transparent !important; color: #cdeee0 !important; border: 2px solid #cdeee0 !important; border-radius: 50px; font-weight: 600; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-cart :is(span, div) { color: #cdeee0 !important; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer { border-top: 1px solid rgba(205, 238, 224, .18); }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-actions { gap: 12px; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-actions > * { flex: 1 1 100%; text-align: center; }
