/* Petmarket · Ficha de producto nueva. Todo va dentro de .pmf para no chocar con el tema. */

.pmf{
	--pmf-plus:#4739a0; --pmf-plus-deep:#453d9c; --pmf-plus-dark:#372c82; --pmf-plus-pale:#efedfa;
	--pmf-grn:#3a9e48; --pmf-grn-dark:#227a35; --pmf-grn-tint:#eaf6ec; --pmf-grn-line:#cbe6cf; --pmf-grn-body:#3c5b43; --pmf-badge:#4aa64e;
	--pmf-org:#ed6436; --pmf-org-dark:#d4562b;
	--pmf-red:#a8322a; --pmf-red-tint:#fbeeec; --pmf-red-line:#f0d3cf;
	--pmf-ink:#201d2b; --pmf-soft:#6d6885; --pmf-faint:#8b87a0; --pmf-line:#e7e5ef; --pmf-panel:#f4f3f9;
	font-family:"Nunito",system-ui,-apple-system,"Segoe UI",sans-serif;
	color:var(--pmf-ink);
	font-variant-numeric:tabular-nums;
	-webkit-font-smoothing:antialiased;
}
.pmf *,.pmf *::before,.pmf *::after{ box-sizing:border-box; }
.pmf [hidden]{ display:none !important; }
.pmf button{ font:inherit; color:inherit; text-transform:none; letter-spacing:normal; line-height:inherit; box-shadow:none; margin:0; cursor:pointer; min-height:0; }
.pmf button:focus-visible,.pmf a:focus-visible,.pmf input:focus-visible{ outline:2px solid var(--pmf-plus); outline-offset:2px; }
.pmf p{ margin:0; }
.pmf h1,.pmf h2,.pmf h3{ font-family:inherit; text-transform:none; letter-spacing:-.02em; margin:0; color:var(--pmf-ink); text-wrap:balance; }

.pmf-wrap{ max-width:1180px; margin:0 auto; padding:0 16px 24px; }

/* ---------- Estructura ---------- */
.pmf-top{ display:grid; grid-template-columns:minmax(0,1fr); gap:28px; align-items:start; }
@media (min-width:1024px){
	.pmf-top{ grid-template-columns:minmax(0,1.02fr) minmax(0,1fr); gap:48px; }
	.pmf-gallery{ position:sticky; top:96px; }
}

/* ---------- Galería ---------- */
.pmf-stage{ border:1px solid var(--pmf-line); border-radius:24px; background:#fff; padding:24px; display:flex; align-items:center; justify-content:center; aspect-ratio:1/1; overflow:hidden; }
.pmf-stage img{ max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; }
.pmf-thumbs{ display:flex; gap:10px; margin-top:12px; overflow-x:auto; scrollbar-width:none; }
.pmf-thumbs::-webkit-scrollbar{ display:none; }
.pmf-thumb{ flex:0 0 auto; width:68px; height:68px; border:2px solid var(--pmf-line) !important; border-radius:12px; background:#fff !important; padding:4px !important; display:flex; align-items:center; justify-content:center; }
.pmf-thumb img{ max-width:100%; max-height:100%; object-fit:contain; }
.pmf-thumb.is-on{ border-color:var(--pmf-plus) !important; box-shadow:0 0 0 3px rgba(71,57,160,.13); }

/* ---------- Cabecera ---------- */
.pmf-meta{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 12px; margin-bottom:12px; }
.pmf-pill{ display:inline-flex; align-items:center; gap:6px; height:20px; padding:0 10px; border-radius:999px; font-size:8px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; border:1px solid; }
.pmf-pill i{ width:6px; height:6px; border-radius:50%; background:currentColor; }
.pmf-pill--ok{ background:var(--pmf-grn-tint); color:var(--pmf-grn-dark); border-color:var(--pmf-grn-line); }
.pmf-pill--off{ background:#fdecea; color:#b42318; border-color:#f5c2bd; }
.pmf-pill--rx{ background:var(--pmf-red-tint); color:var(--pmf-red); border-color:var(--pmf-red-line); }
.pmf-rating{ display:inline-flex; align-items:center; gap:8px; text-decoration:none; color:var(--pmf-soft); font-size:13px; font-weight:600; }
.pmf-stars{ position:relative; display:inline-block; font-size:14px; letter-spacing:1px; color:#dcd9e6; line-height:1; }
.pmf-stars::before{ content:"★★★★★"; }
.pmf-stars::after{ content:"★★★★★"; position:absolute; left:0; top:0; width:var(--pmf-r,100%); overflow:hidden; white-space:nowrap; color:#e8a33d; }
.pmf-title{ font-size:clamp(24px,3.2vw,24px) !important; line-height:1.30 !important; font-weight:800 !important; margin:0 0 24px !important; }
@media (max-width:767px){ .pmf-title{ font-size:18px !important; } }

.pmf-rx{ display:flex; gap:12px; align-items:flex-start; background:var(--pmf-red-tint); border:1px solid var(--pmf-red-line); border-radius:16px; padding:16px; margin-bottom:22px; }
.pmf-rx-ico{ flex:0 0 auto; width:28px; height:28px; border-radius:50%; background:var(--pmf-red); color:#fff; font-weight:900; display:flex; align-items:center; justify-content:center; font-size:18px; line-height:1; }
.pmf-rx strong{ display:block; color:var(--pmf-red); font-size:14px; font-weight:800; margin-bottom:3px; }
.pmf-rx p{ font-size:13.5px; font-weight:600; color:var(--pmf-soft); margin-bottom:6px; }
.pmf-rx a{ font-size:13.5px; font-weight:800; color:var(--pmf-plus); text-decoration:underline; text-underline-offset:2px; }

/* ---------- Bloque de compra ---------- */
.pmf-plusbadge{ display:inline-flex; align-items:baseline; background:var(--pmf-badge); color:#fff; font-weight:800; letter-spacing:-.2px; padding:3px 11px 4px; border-radius:10px; line-height:1; font-size:14px; }
.pmf-plusbadge span{ font-size:.8em; margin-left:1px; }
/* La insignia nunca se parte: gana a cualquier regla de span del contenedor. */
.pmf .pmf-plusbadge span{ display:inline; width:auto; margin-top:0; text-transform:none; letter-spacing:inherit; color:inherit; font-weight:inherit; }

.pmf-buy{ border:1px solid var(--pmf-line); border-radius:24px; background:#fff; overflow:hidden; box-shadow:0 1px 2px rgba(32,29,43,.05),0 14px 34px rgba(32,29,43,.07); }
.pmf-tabs{ display:grid; grid-template-columns:repeat(var(--pmf-cols,3),minmax(0,1fr)); border-bottom:1px solid var(--pmf-line); }
.pmf-tab{ border:0 !important; border-right:1px solid var(--pmf-line) !important; border-radius:0 !important; background:var(--pmf-panel) !important; color:var(--pmf-faint) !important; padding:12px 4px 13px !important; min-height:74px !important; display:flex !important; flex-direction:column; align-items:center; justify-content:center; text-align:center; transition:background .15s,color .15s; }
.pmf-tab:last-child{ border-right:0 !important; }
.pmf-tab-t{ font-size:11.5px; font-weight:700; line-height:1.15; }
.pmf-tab-p{ font-size:15px; font-weight:900; margin-top:5px; letter-spacing:-.3px; color:var(--pmf-faint); }
.pmf-tab.is-on{ background:#fff !important; color:var(--pmf-plus) !important; }
.pmf-tab.is-on .pmf-tab-p{ color:var(--pmf-ink); }
/* La raya del tab activo es un elemento propio y no una sombra: el tema quita la sombra de
   los botones al hacer clic o al darles foco, y la raya desaparecía al cambiar de tab. */
.pmf .pmf-tab{ position:relative !important; }
.pmf .pmf-tab.is-on::after{ content:"" !important; display:block !important; position:absolute !important; left:0 !important; right:0 !important; bottom:0 !important; top:auto !important; width:auto !important; height:3px !important; margin:0 !important; background:var(--pmf-plus) !important; border:0 !important; opacity:1 !important; transform:none !important; pointer-events:none; }
.pmf .pmf-tab--plus.is-on::after{ background:var(--pmf-badge) !important; }

.pmf-buy-body{ padding:20px; }
.pmf-price-row{ display:flex; flex-wrap:wrap; align-items:baseline; gap:8px; margin-bottom:6px; }
.pmf-price{ font-size:32px; font-weight:800; line-height:1; letter-spacing:-.03em; color:var(--pmf-ink); }
.pmf-cross{ font-size:17px; font-weight:600; color:var(--pmf-faint); }
.pmf-save{ display:inline-flex; align-items:center; height:32px; padding:0 16px; border-radius:999px; background:var(--pmf-grn); color:#fff; font-size:12px; font-weight:800; margin:4px 0 12px; }
.pmf-detail{ font-size:14px; font-weight:600; line-height:1.25; color:var(--pmf-soft); margin-bottom:16px; }
.pmf-detail strong{ color:var(--pmf-grn-dark); font-weight:700; }

.pmf-plusctx{ display:flex; gap:12px; align-items:flex-start; background:var(--pmf-grn-tint); border-radius:16px; padding:16px; margin-bottom:16px; }
.pmf-plusctx .pmf-plusbadge{ flex:0 0 auto; font-size:16px; }
.pmf-plusctx strong{ display:block; color:var(--pmf-grn-dark); font-size:14.5px; font-weight:800; margin-bottom:2px; }
.pmf-plusctx p{ font-size:14px; font-weight:600; line-height:1.25; color:var(--pmf-grn-body); margin-bottom:14px; }
.pmf-plusctx a{ display:block; font-size:14px; color:var(--pmf-grn-body); font-weight:600; text-decoration:none; }
.pmf-plusctx .pmf-plusctx-main{ color:var(--pmf-grn-dark); font-weight:700; text-decoration:underline; text-underline-offset:2px; margin-bottom:10px; }

.pmf-freq{ border-top:1px solid var(--pmf-line); padding-top:18px; margin-bottom:16px; }
.pmf-freq-t{ font-size:14.5px; font-weight:800; margin-bottom:12px; }
/* Frecuencias en una rejilla pareja que ocupa todo el ancho: con flex y ancho según el texto
   quedaban dos columnas desiguales y un hueco a la derecha. */
.pmf-chips{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
@media (max-width:340px){ .pmf-chips{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
.pmf-chip{ width:100%; min-width:0; min-height:42px; display:flex !important; align-items:center; justify-content:center; text-align:center; white-space:nowrap; margin:0 !important; padding:0 6px !important; border:1.5px solid var(--pmf-line) !important; border-radius:12px !important; background:#fff !important; color:var(--pmf-soft) !important; font-size:13px !important; font-weight:700 !important; }
.pmf-chip.is-on{ border-color:var(--pmf-plus) !important; color:var(--pmf-plus) !important; background:var(--pmf-plus-pale) !important; }
.pmf-hint{ display:flex; gap:10px; align-items:flex-start; margin-top:16px; padding-top:16px; border-top:1px solid var(--pmf-line); font-size:14px; font-weight:600; color:var(--pmf-soft); line-height:1.35; }
.pmf-hint svg{ width:20px; height:20px; flex:0 0 auto; color:var(--pmf-plus); margin-top:1px; }
.pmf-hint b{ color:var(--pmf-plus); font-weight:800; }

.pmf-sched{ border-top:1px solid var(--pmf-line); padding-top:16px; margin-bottom:16px; }
.pmf-sched-head{ width:100%; display:flex !important; align-items:flex-start; justify-content:space-between; gap:12px; background:none !important; border:0 !important; padding:0 !important; text-align:left; color:var(--pmf-ink) !important; }
/* El texto ocupa todo lo que queda; "Programar" solo lo que mide. */
.pmf-sched-head > span:first-child{ flex:1 1 auto; min-width:0; }
/* Título como texto corrido con la píldora detrás: en flex, la píldora le quitaba ancho y
   partía "Programa tu pedido" en dos líneas. */
.pmf-sched-t{ display:block; font-size:15px; font-weight:800; line-height:1.3; }
.pmf .pmf-sched-t em{ display:inline-block; vertical-align:2px; margin-left:6px; font-style:normal; font-size:6px !important; line-height:1 !important; font-weight:900; background:var(--pmf-plus-pale); padding:4px 8px !important; border-radius:999px; text-transform:uppercase; letter-spacing:.06em; white-space:nowrap; }
.pmf-sched-s{ display:block; font-size:14px; font-weight:600; color:var(--pmf-soft); margin-top:4px; line-height:1.25; }
.pmf-sched-lbl{ display:inline-flex; align-items:center; gap:4px; color:var(--pmf-plus); font-size:13px; font-weight:800; flex:0 0 auto; }
.pmf-chev{ width:16px; height:16px; transition:transform .25s ease; }
.pmf-sched-head[aria-expanded="true"] .pmf-chev{ transform:rotate(180deg); }
.pmf-collapse{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .3s ease; }
.pmf-collapse.is-open{ grid-template-rows:1fr; }
.pmf-collapse > div{ overflow:hidden; }
.pmf-collapse .pmf-freq{ margin:16px 0 0; }

.pmf-cta-row{ display:flex; gap:10px; margin:26px 0 12px; }
.pmf-qty{ display:flex; align-items:center; height:50px; border:2px solid var(--pmf-line); border-radius:999px; padding:0 4px; flex:0 0 auto; }
.pmf-qty button{ width:42px; height:42px; border:0 !important; border-radius:50% !important; background:none !important; color:var(--pmf-plus) !important; font-size:22px !important; font-weight:700; padding:0 !important; display:flex !important; align-items:center; justify-content:center; }
.pmf-qty button:disabled{ opacity:.4; cursor:not-allowed; }
.pmf .pmf-meta-row{ display:flex; align-items:center; gap:12px; margin-top:14px; }
.pmf .pmf-qty-max{ margin:0 !important; font-size:12px; font-weight:800; letter-spacing:.04em; color:var(--pmf-soft); }
.pmf-qty span{ min-width:30px; text-align:center; font-weight:700; color:var(--pmf-plus); font-size:17px; }
.pmf-btn{ height:50px; border:0 !important; border-radius:999px !important; color:#fff !important; font-weight:800 !important; font-size:15.5px !important; padding:0 20px !important; display:flex !important; align-items:center; justify-content:center; transition:background .15s, opacity .15s; }
.pmf-btn--add{ flex:1; background:var(--pmf-org) !important; }
.pmf-btn--add:hover{ background:var(--pmf-org-dark) !important; }
.pmf-btn--buy{ width:100%; background:var(--pmf-plus-deep) !important; font-size:15px !important; }
.pmf-btn--buy:hover{ background:var(--pmf-plus-dark) !important; }
.pmf-btn:disabled{ background:#d8d5e3 !important; cursor:not-allowed; }
/* Mientras se agrega al carrito: el botón gira y no dice nada más. No hay avisos ni
   enlaces al carrito; la señal es el propio botón y el contador del encabezado. */
.pmf-btn.is-busy{ pointer-events:none; position:relative; color:transparent !important; }
.pmf-btn.is-busy::after{ content:""; position:absolute; top:50%; left:50%; width:20px; height:20px; margin:-10px 0 0 -10px; border-radius:50%; border:2.5px solid rgba(255,255,255,.35); border-top-color:#fff; animation:pmf-spin .6s linear infinite; }
@keyframes pmf-spin{ to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce){ .pmf-btn.is-busy::after{ animation-duration:1.8s; } }
.pmf-note{ font-size:13px; font-weight:600; color:var(--pmf-soft); margin-top:12px; line-height:1.3; }
.pmf-msg{ margin-top:12px; font-size:14px; font-weight:700; border-radius:12px; padding:10px 14px; }
.pmf-msg.is-ok{ background:var(--pmf-grn-tint); color:var(--pmf-grn-dark); }
.pmf-msg.is-err{ background:#fdecea; color:#b42318; }
.pmf-msg a{ color:inherit; text-decoration:underline; margin-left:6px; }

.pmf-memberhead{ display:flex; align-items:center; gap:12px; background:var(--pmf-grn-tint); padding:14px 20px; border-bottom:1px solid var(--pmf-grn-line); }
.pmf-memberhead .pmf-plusbadge{ font-size:15px; }
.pmf-memberhead strong{ display:block; font-size:14px; font-weight:800; color:var(--pmf-grn-dark); }
.pmf-memberhead > div > span{ display:block; font-size:13px; font-weight:600; color:var(--pmf-grn-body); }

/* ---------- PETCASH, envío y entrega ---------- */
.pmf-benefits{ margin-top:20px; border:1px solid var(--pmf-line); border-radius:16px; background:#fff; }
.pmf-benefit{ display:flex; align-items:center; gap:12px; padding:16px; border-top:1px solid var(--pmf-line); font-size:13.5px; font-weight:600; color:var(--pmf-soft); line-height:1.3; }
.pmf-benefit:first-child{ border-top:0; }
.pmf-benefit b{ display:block; color:var(--pmf-ink); font-weight:800; }
.pmf-benefit span{ display:block; }
.pmf-bico{ width:36px; height:36px; border-radius:12px; flex:0 0 auto; display:flex !important; align-items:center; justify-content:center; }
.pmf-bico svg{ width:20px; height:20px; }
.pmf-bico--pc{ background:var(--pmf-grn); color:#fff; font-size:18px; font-weight:900; }
.pmf-bico--ship{ background:var(--pmf-grn-tint); color:var(--pmf-grn-dark); }
.pmf-bico--time{ background:var(--pmf-plus-pale); color:var(--pmf-plus); }

/* ---------- Planificador ---------- */
.pmf-plan{ margin-top:56px; border:1px solid var(--pmf-line); border-radius:24px; background:var(--pmf-panel); padding:24px; display:grid; gap:24px; align-items:center; }
@media (min-width:1024px){ .pmf-plan{ grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); padding:32px; gap:32px; } }
.pmf-kicker{ font-size:11.5px; font-weight:800; color:var(--pmf-plus); text-transform:uppercase; letter-spacing:.12em; margin-bottom:6px; }
.pmf-plan h2{ font-size:24px !important; font-weight:900 !important; margin-bottom:8px !important; }
.pmf-plan-copy p{ font-size:14.5px; font-weight:600; line-height:1.4; color:var(--pmf-soft); max-width:52ch; }
.pmf-plan-box{ background:#fff; border:1px solid var(--pmf-line); border-radius:16px; padding:20px; }
.pmf-plan-w{ display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.pmf-plan-w label{ font-size:14px; font-weight:800; margin:0; color:var(--pmf-ink); }
.pmf-plan-w b{ font-size:19px; font-weight:900; color:var(--pmf-plus); }
.pmf-range{ -webkit-appearance:none; appearance:none; width:100%; background:transparent; margin:0 0 20px; border:0; padding:0; height:26px; }
.pmf-range::-webkit-slider-runnable-track{ height:7px; background:#e6e2f2; border-radius:999px; }
.pmf-range::-webkit-slider-thumb{ -webkit-appearance:none; width:26px; height:26px; border-radius:50%; background:var(--pmf-plus); border:4px solid #fff; box-shadow:0 3px 10px rgba(71,57,160,.45); margin-top:-10px; }
.pmf-range::-moz-range-track{ height:7px; background:#e6e2f2; border-radius:999px; }
.pmf-range::-moz-range-thumb{ width:26px; height:26px; border-radius:50%; background:var(--pmf-plus); border:4px solid #fff; }
.pmf-units{ display:flex; gap:10px; margin-bottom:20px; }
.pmf-unit{ min-width:56px; height:46px; border:1.5px solid var(--pmf-line) !important; border-radius:12px !important; background:#fff !important; color:var(--pmf-soft) !important; font-size:15px !important; font-weight:800 !important; padding:0 !important; }
.pmf-unit.is-on{ border-color:var(--pmf-plus) !important; color:var(--pmf-plus) !important; background:var(--pmf-plus-pale) !important; }
.pmf-plan-res{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; text-align:center; }
.pmf-plan-res > div{ background:var(--pmf-panel); border-radius:12px; padding:12px 6px; }
.pmf-plan-res small{ display:block; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; color:var(--pmf-soft); margin-bottom:4px; }
.pmf-plan-res b{ font-size:18px; font-weight:900; }
.pmf-plan-res .is-g{ background:var(--pmf-grn-tint); }
.pmf-plan-res .is-g small,.pmf-plan-res .is-g b{ color:var(--pmf-grn-dark); }
.pmf-plan-res .is-p{ background:var(--pmf-plus-pale); }
.pmf-plan-res .is-p small,.pmf-plan-res .is-p b{ color:var(--pmf-plus); }
.pmf-plan-cta{ margin-top:16px; width:100%; height:46px; border:1.5px solid var(--pmf-plus) !important; border-radius:999px !important; background:#fff !important; color:var(--pmf-plus) !important; font-weight:800 !important; font-size:14px !important; }
.pmf-plan-cta:hover{ background:var(--pmf-plus-pale) !important; }

/* ---------- Secciones del tema debajo (hasta la fase 4) ---------- */
.pmf-legacy{ max-width:1180px; margin:48px auto 0; padding:0 16px; }

/* ---------- Barra fija en móvil ---------- */
.pmf-bar{ display:none; }
@media (max-width:1023px){
	.pmf-bar{ position:fixed; left:0; right:0; bottom:0; z-index:60; display:flex; align-items:center; gap:12px; background:#fff; border-top:1px solid var(--pmf-line); padding:10px 16px calc(10px + env(safe-area-inset-bottom)); box-shadow:0 -6px 24px rgba(32,29,43,.10); transform:translateY(110%); transition:transform .25s ease; }
	.pmf-bar.is-on{ transform:none; }
	/* Con la barra visible, "volver arriba" (tema) y el botón del asistente IA suben lo que
	   mide la barra. Un margin-bottom desplaza un elemento fijo sin tener que conocer su
	   bottom, que cada uno define a su manera. */
	/* Se conservan sus transiciones propias (aparición de la flecha, zoom del botón IA). */
	.back-top{ transition:all .3s ease; }
	#pmai-chat-fab,#mobile-product-back-button,#qlwapp{ transition:transform .2s, box-shadow .2s, margin-bottom .25s ease; }
	/* #mobile-product-back-button: la flecha naranja de "regresar" (abajo a la izquierda).
	   #qlwapp: el botón de WhatsApp (abajo a la derecha, plugin wp-whatsapp-chat). */
	body.pmf-bar-on .back-top,body.pmf-bar-on #pmai-chat-fab,body.pmf-bar-on #mobile-product-back-button,body.pmf-bar-on #qlwapp{ margin-bottom:calc(var(--pmf-bar-h, 70px) + 8px) !important; }
	.pmf-bar > div{ flex:1; min-width:0; }
	.pmf-bar small{ display:block; font-size:11.5px; font-weight:700; color:var(--pmf-soft); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
	.pmf-bar b{ font-size:19px; font-weight:900; }
	.pmf-bar button{ height:48px; padding:0 24px !important; border:0 !important; border-radius:999px !important; background:var(--pmf-org) !important; color:#fff !important; font-weight:800 !important; font-size:14px !important; }
}

@media (prefers-reduced-motion:reduce){ .pmf-collapse,.pmf-chev,.pmf-bar{ transition:none; } }

/* =========================================================
   Secciones inferiores (fase 4)
   ========================================================= */
.pmf-lower{ padding-bottom:48px; }
.pmf-sec{ margin-top:56px; }
.pmf-sec > h2{ font-size:24px !important; font-weight:900 !important; margin:0 0 20px !important; }
@media (max-width:767px){ .pmf-sec > h2,.pmf .pmf-seen-head h2,.pmf .pmf-prose .pmf-tab-h{ font-size:18px !important; } }
.pmf-eyebrow{ font-size:11.5px; font-weight:800; text-transform:uppercase; letter-spacing:.12em; color:var(--pmf-plus); margin-bottom:6px; }
.pmf-eyebrow.is-g{ color:var(--pmf-grn-dark); }
.pmf-link{ background:none !important; border:0 !important; padding:0 !important; color:var(--pmf-soft) !important; font-size:13px !important; font-weight:700 !important; }
.pmf-link:hover{ color:var(--pmf-plus) !important; }
.pmf-outline{ width:100%; height:44px; margin-top:20px; border:2px solid var(--pmf-plus) !important; border-radius:999px !important; background:#fff !important; color:var(--pmf-plus) !important; font-size:14px !important; font-weight:800 !important; padding:0 16px !important; }
.pmf-outline:hover{ background:var(--pmf-plus-pale) !important; }

/* Tabs a lo ancho */
.pmf-dtabs{ display:flex; gap:4px; border-bottom:1px solid var(--pmf-line); overflow-x:auto; scrollbar-width:none; }
.pmf-dtabs::-webkit-scrollbar{ display:none; }
.pmf-dtab{ flex:0 0 auto; background:none !important; border:0 !important; border-bottom:3px solid transparent !important; border-radius:0 !important; padding:16px 20px !important; font-size:15px !important; font-weight:800 !important; color:var(--pmf-faint) !important; white-space:nowrap; transition:color .15s,border-color .15s; }
.pmf-dtab:hover{ color:var(--pmf-ink) !important; }
.pmf-dtab.is-on{ color:var(--pmf-plus) !important; border-bottom-color:var(--pmf-plus) !important; }
.pmf-dpane{ display:none; padding-top:28px; }
.pmf-dpane.is-on{ display:block; }
.pmf-reviews > .pmf-filler{ margin:-8px 0 16px; }
.pmf-filler{ display:inline-block; font-size:11.5px; font-weight:800; color:#8a5a00; background:#fff4d6; border:1px dashed #e8c46a; border-radius:8px; padding:4px 10px; margin-bottom:16px; }
.pmf-prose{ font-size:15px; font-weight:600; line-height:1.6; color:var(--pmf-soft); }
.pmf-prose h3{ font-size:21px !important; font-weight:900 !important; margin:0 0 16px !important; }
.pmf-prose p{ margin:0 0 12px; }
.pmf-prose strong,.pmf-prose b{ color:var(--pmf-ink); }
.pmf-prose--desc{ max-width:none; }
.pmf-prose ul,.pmf-prose ol{ margin:0 0 12px 20px; }
.pmf-chips-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:20px; }
@media (min-width:768px){ .pmf-chips-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (min-width:1024px){ .pmf-chips-grid{ grid-template-columns:repeat(6,minmax(0,1fr)); } }
.pmf-icard{ border:1px solid var(--pmf-line); border-radius:16px; padding:16px; text-align:center; }
.pmf-icard b{ display:block; color:var(--pmf-ink); font-size:13.5px; font-weight:800; }
.pmf-icard span{ display:block; margin-top:2px; font-size:11.5px; font-weight:800; text-transform:uppercase; color:var(--pmf-org); letter-spacing:.04em; }
.pmf-panelbox,.pmf-warnbox{ border-radius:16px; padding:18px 20px; background:var(--pmf-panel); }
.pmf-warnbox{ background:var(--pmf-red-tint); border:1px solid var(--pmf-red-line); }
.pmf-panelbox small,.pmf-warnbox small{ display:block; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.1em; margin-bottom:6px; color:var(--pmf-soft); }
.pmf-warnbox small{ color:var(--pmf-red); }
.pmf-panelbox p,.pmf-warnbox p{ margin:0; font-size:14px; }
.pmf-split{ display:grid; gap:24px; }
@media (min-width:1024px){ .pmf-split{ grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:32px; } }
.pmf-bars{ display:flex; flex-direction:column; gap:16px; }
.pmf-bar-row > div{ display:flex; justify-content:space-between; font-size:14px; font-weight:800; color:var(--pmf-ink); margin-bottom:6px; }
.pmf-bar-row b{ color:var(--pmf-grn-dark); }
.pmf-bar-row i{ display:block; height:10px; border-radius:999px; background:var(--pmf-panel); overflow:hidden; }
.pmf-bar-row em{ display:block; height:100%; background:var(--pmf-grn); border-radius:999px; }
.pmf-stats{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.pmf-stats--4{ margin-bottom:20px; }
@media (min-width:1024px){ .pmf-stats--4{ grid-template-columns:repeat(4,minmax(0,1fr)); } }
.pmf-stat{ background:var(--pmf-panel); border-radius:16px; padding:18px 20px; }
.pmf-stat small{ display:block; font-size:11.5px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; color:var(--pmf-soft); margin-bottom:4px; }
.pmf-stat b{ font-size:24px; font-weight:900; color:var(--pmf-ink); }
.pmf-stat b span{ font-size:13px; font-weight:700; color:var(--pmf-soft); }
.pmf-table{ border:1px solid var(--pmf-line); border-radius:16px; overflow:hidden; font-size:14px; }
.pmf-tr{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); padding:12px 14px; border-top:1px solid var(--pmf-line); }
.pmf-tr:nth-child(odd):not(.pmf-th){ background:var(--pmf-panel); }
.pmf-tr span:first-child{ font-weight:800; color:var(--pmf-ink); }
.pmf-th{ background:var(--pmf-plus); color:#fff; border-top:0; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.pmf-th span:first-child{ color:#fff; }
.pmf-tips{ display:flex; flex-direction:column; gap:12px; }
.pmf-tip{ border:1px solid var(--pmf-line); border-radius:16px; padding:14px 16px; font-size:14px; line-height:1.4; }
.pmf-tip b{ color:var(--pmf-ink); }
.pmf-faq{ display:grid; gap:16px; }
@media (min-width:1024px){ .pmf-faq{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
.pmf-faq-i{ border:1px solid var(--pmf-line); border-radius:16px; padding:20px; }
.pmf-faq-i b{ display:block; font-size:15px; font-weight:800; color:var(--pmf-ink); margin-bottom:8px; }
.pmf-faq-i p{ margin:0; font-size:14px; line-height:1.45; }

/* Reseñas */
/* Una columna que no crece con el contenido: sin minmax(0,1fr) el carrusel de reseñas
   ensanchaba la columna a la fila completa de tarjetas y el bloque se salía de la pantalla. */
.pmf-rev-grid{ display:grid; grid-template-columns:minmax(0,1fr); gap:32px; align-items:start; }
.pmf-rev-grid > *,.pmf-rev-carousel{ min-width:0; max-width:100%; }
@media (min-width:1024px){ .pmf-rev-grid{ grid-template-columns:280px minmax(0,1fr); } }
.pmf-rev-sum{ border:1px solid var(--pmf-line); border-radius:16px; padding:20px; text-align:center; }
.pmf-rev-avg{ font-size:42px; font-weight:900; line-height:1; margin-bottom:6px; }
.pmf-stars--lg{ font-size:16px; }
.pmf-rev-count{ font-size:13px; font-weight:600; color:var(--pmf-soft); margin:6px 0 16px; }
.pmf-rev-dist{ display:flex; flex-direction:column; gap:6px; text-align:left; }
.pmf-rev-dist > div{ display:flex; align-items:center; gap:8px; font-size:12px; font-weight:700; color:var(--pmf-soft); }
.pmf-rev-dist span:first-child{ width:10px; }
.pmf-rev-dist span:last-child{ width:34px; text-align:right; }
.pmf-rev-dist i{ flex:1; height:8px; border-radius:999px; background:var(--pmf-panel); overflow:hidden; }
.pmf-rev-dist em{ display:block; height:100%; background:var(--pmf-grn); }
.pmf-rev-empty{ font-size:14px; font-weight:600; color:var(--pmf-soft); }
.pmf-rev-list{ display:grid; gap:16px; }
@media (min-width:768px){ .pmf-rev-list{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
.pmf-rev{ border:1px solid var(--pmf-line); border-radius:16px; padding:20px; }
.pmf-rev header{ display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.pmf-rev header > div{ flex:1; min-width:0; }
.pmf-rev header b{ display:block; font-size:14px; font-weight:800; }
.pmf-rev header small{ display:block; font-size:12px; font-weight:700; color:var(--pmf-faint); }
.pmf-rev p{ margin:0; font-size:14px; font-weight:600; line-height:1.45; color:var(--pmf-soft); }
.pmf-avatar{ width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:900; font-size:13px; flex:0 0 auto; }
.pmf-avatar.is-p{ background:var(--pmf-plus-pale); color:var(--pmf-plus); }
.pmf-avatar.is-g{ background:var(--pmf-grn-tint); color:var(--pmf-grn-dark); }
.pmf-avatar.is-o{ background:#fbf0ea; color:var(--pmf-org); }
.pmf-rev-form{ margin-top:20px; border:1px solid var(--pmf-line); border-radius:16px; padding:20px; }
.pmf-rev-form .comment-reply-title{ display:block; font-size:18px; font-weight:900; margin-bottom:12px; color:var(--pmf-ink); }
.pmf-rev-form label{ display:block; font-size:13.5px; font-weight:800; color:var(--pmf-ink); margin-bottom:6px; }
.pmf-rev-form input[type=text],.pmf-rev-form input[type=email],.pmf-rev-form textarea{ width:100%; border:1.5px solid var(--pmf-line); border-radius:12px; padding:10px 14px; font:inherit; font-size:14px; background:#fff; }
.pmf-rev-form p{ margin:0 0 14px; }
.pmf-rev-form .form-submit input[type=submit]{ height:46px; padding:0 24px; border:0; border-radius:999px; background:var(--pmf-plus-deep); color:#fff; font:inherit; font-weight:800; cursor:pointer; }

/* Comprado frecuentemente junto */
.pmf-bundle-box{ border:1px solid var(--pmf-line); border-radius:16px; background:#fff; padding:20px; display:flex; flex-direction:column; gap:24px; align-items:center; }
@media (min-width:1024px){ .pmf-bundle-box{ flex-direction:row; } }
.pmf-bundle-icons{ display:flex; align-items:center; gap:12px; flex:0 0 auto; }
/* Marco fino y claro (el panel gris de 6px se veía como un borde grueso); la foto lleva su propio radio a juego. */
.pmf-bundle-img{ width:80px; height:80px; border-radius:14px; background:#fff; border:1px solid var(--pmf-line); display:flex; align-items:center; justify-content:center; padding:5px; transition:opacity .15s; overflow:hidden; }
.pmf-bundle-img img{ max-width:100%; max-height:100%; object-fit:contain; border-radius:9px; }
.pmf-bundle-img.is-off{ opacity:.3; }
.pmf-plus-sign{ color:var(--pmf-faint); font-weight:900; font-size:20px; }
.pmf-bundle-list{ flex:1; width:100%; }
@media (min-width:1024px){ .pmf-bundle-list{ padding-left:24px; border-left:1px solid var(--pmf-line); } }
.pmf-bundle-rows{ display:flex; flex-direction:column; gap:10px; margin-bottom:16px; }
.pmf-bundle-row{ display:flex; align-items:center; gap:12px; font-size:14px; font-weight:600; cursor:pointer; margin:0; }
.pmf-bundle-row input{ width:16px; height:16px; accent-color:var(--pmf-plus); margin:0; }
.pmf-bundle-name{ flex:1; min-width:0; color:var(--pmf-ink); }
.pmf-bundle-name a{ color:inherit; text-decoration:none; }
.pmf-bundle-name a:hover{ color:var(--pmf-plus); }
.pmf-bundle-price{ font-weight:800; color:var(--pmf-ink); white-space:nowrap; }
.pmf-bundle-row.is-off .pmf-bundle-name,.pmf-bundle-row.is-off .pmf-bundle-price{ color:var(--pmf-faint); }
.pmf-bundle-foot{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; padding-top:16px; border-top:1px solid var(--pmf-line); }
.pmf-bundle-foot small{ display:block; font-size:12.5px; font-weight:700; color:var(--pmf-soft); margin-bottom:4px; }
.pmf-bundle-foot small b{ color:var(--pmf-grn-dark); }
.pmf-bundle-foot > div > b{ font-size:26px; font-weight:900; line-height:1; }
.pmf-bundle-foot .pmf-btn{ flex:0 0 auto; height:48px; }

/* Tarjetas de relacionados */
.pmf-cards,.pmf-seen-list{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
@media (min-width:1024px){ .pmf-cards,.pmf-seen-list{ grid-template-columns:repeat(4,minmax(0,1fr)); } }
/* Móvil: "También te puede interesar" en una fila que se desliza, una tarjeta a la vez con
   la siguiente asomando, sin flechas ni contador. En dos columnas las tarjetas quedaban
   apretadas y los precios se amontonaban. */
@media (max-width:767px){
	.pmf-cards,.pmf-seen-list{ display:flex; gap:12px; overflow-x:auto; min-width:0; max-width:100%; scroll-snap-type:x mandatory; scroll-behavior:smooth; overscroll-behavior-x:contain; scrollbar-width:none; padding-bottom:4px; }
	.pmf-cards::-webkit-scrollbar,.pmf-seen-list::-webkit-scrollbar{ display:none; }
	.pmf-cards > .pmf-card{ flex:0 0 78%; min-width:0; scroll-snap-align:start; box-sizing:border-box; }
	/* "Vistos recientemente": tarjetas chicas (imagen y nombre), dos a la vista y la tercera asomando. */
	.pmf-seen-list > .pmf-card{ flex:0 0 44%; min-width:0; scroll-snap-align:start; box-sizing:border-box; }
}
@media (max-width:767px) and (prefers-reduced-motion:reduce){ .pmf-cards,.pmf-seen-list{ scroll-behavior:auto; } }
/* Un solo ritmo vertical: el gap separa todas las piezas y el botón, anclado abajo, nunca
   queda a menos de esa distancia. Nada de márgenes pieza por pieza. */
/* Estilos de la tarjeta: en assets/cards.css (compartidos con la tienda y el home). */


/* Vistos recientemente */
.pmf-seen-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:20px; }
.pmf-seen-head h2{ font-size:24px !important; font-weight:900 !important; margin:0 !important; }

/* Modal de reseña */
.pmf-modal{ border:0; padding:0; margin:auto; width:min(640px, calc(100vw - 32px)); max-height:calc(100vh - 48px); overflow:auto; border-radius:24px; background:#fff; color:var(--pmf-ink); box-shadow:0 30px 80px rgba(32,29,43,.35); }
.pmf-modal::backdrop{ background:rgba(32,29,43,.55); }
.pmf-modal-box{ position:relative; padding:28px; }
.pmf .pmf-modal .pmf-rev-form{ margin:0; border:0; border-radius:0; }
.pmf-modal .comment-reply-title{ padding-right:48px; font-size:20px !important; }
.pmf-modal .comment-notes{ font-size:13px; color:var(--pmf-soft); margin:0 0 16px; }
.pmf-modal .comment-form-rating .stars{ margin:6px 0 16px; }
.pmf-modal-x{ position:absolute; top:16px; right:16px; width:40px; height:40px; border:0 !important; border-radius:50% !important; background:var(--pmf-panel) !important; color:var(--pmf-soft) !important; font-size:22px !important; line-height:1 !important; padding:0 !important; display:flex !important; align-items:center; justify-content:center; }
.pmf-modal-x:hover{ color:var(--pmf-ink) !important; }
.pmf-modal .comment-form-cookies-consent{ display:flex; gap:8px; align-items:flex-start; font-size:13px; color:var(--pmf-soft); }
.pmf-modal .comment-form-cookies-consent label{ font-weight:600; color:var(--pmf-soft); margin:0; }
@media (max-width:600px){ .pmf-modal-box{ padding:22px 18px; } }
.pmf-modal .comment-form-rating .stars ~ .stars{ display:none; }

/* Programa de reseñas con premio */
/* Franja del premio (bloque con reseñas), bajo el título */
.pmf .pmf-rw-banner{ display:flex; align-items:center; gap:16px; background:var(--pmf-grn-tint); border:1px solid var(--pmf-grn-line); border-radius:16px; padding:16px 20px; margin:0 0 24px; }
.pmf .pmf-rw-banner.is-gris{ background:var(--pmf-panel); border-color:var(--pmf-line); }
.pmf .pmf-rw-ico{ width:40px; height:40px; border-radius:50%; flex:0 0 auto; background:var(--pmf-grn); color:#fff; display:flex; align-items:center; justify-content:center; }
.pmf .pmf-rw-ico svg{ width:22px; height:22px; }
.pmf .is-gris .pmf-rw-ico{ background:var(--pmf-faint); }
.pmf .pmf-rw-banner-t{ flex:1; min-width:0; display:flex; flex-direction:column; gap:3px; }
.pmf .pmf-rw-banner-t b{ font-size:15.5px; font-weight:900; color:var(--pmf-grn-dark); line-height:1.2; }
.pmf .is-gris .pmf-rw-banner-t b{ color:var(--pmf-ink); }
.pmf .pmf-rw-banner-t span{ font-size:12.5px; font-weight:600; color:var(--pmf-soft); line-height:1.35; }
.pmf .pmf-rw-cta{ display:flex; align-items:center; justify-content:center; flex:0 0 auto; height:44px; margin:0 !important; padding:0 22px !important; border:0 !important; border-radius:999px !important; background:var(--pmf-org) !important; color:#fff !important; font:inherit; font-size:14px !important; font-weight:800 !important; cursor:pointer; white-space:nowrap; }
.pmf .pmf-rw-cta:hover{ background:var(--pmf-org-dark) !important; }

/* Estado vacío: el bloque entero es la invitación */
.pmf .pmf-rev-grid.is-vacio{ grid-template-columns:minmax(0,1fr); }
.pmf .pmf-rw-vacio{ border:1px solid var(--pmf-line); border-radius:18px; display:grid; overflow:hidden; }
@media (min-width:1024px){ .pmf .pmf-rw-vacio{ grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); } }
.pmf .pmf-rw-vl{ padding:34px 36px; display:flex; flex-direction:column; gap:14px; justify-content:center; }
.pmf .pmf-rw-vstars{ font-size:30px; letter-spacing:4px; color:#dcd9e6; line-height:1; }
.pmf .pmf-rw-vt{ margin:0 !important; font-size:24px; font-weight:900; line-height:1.2; color:var(--pmf-ink); }
.pmf .pmf-rw-vp{ margin:0 !important; color:var(--pmf-soft); font-weight:600; max-width:48ch; }
.pmf .pmf-rw-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:4px; }
.pmf .pmf-rw-chips span{ display:inline-flex; align-items:center; gap:6px; height:28px; padding:0 12px; border-radius:999px; font-size:12px; font-weight:800; background:var(--pmf-panel); color:var(--pmf-soft); }
.pmf .pmf-rw-chips span::before{ content:"✓"; color:var(--pmf-grn-dark); font-weight:900; }
.pmf .pmf-rw-vr{ background:var(--pmf-grn-tint); border-left:1px solid var(--pmf-grn-line); padding:34px 36px; display:flex; flex-direction:column; gap:14px; justify-content:center; }
.pmf .pmf-rw-vacio.is-gris .pmf-rw-vr{ background:var(--pmf-panel); border-color:var(--pmf-line); }
.pmf .pmf-rw-vhead{ display:flex; align-items:center; gap:14px; }
.pmf .pmf-rw-vhead .pmf-rw-ico{ width:52px; height:52px; }
.pmf .pmf-rw-vhead .pmf-rw-ico svg{ width:28px; height:28px; }
.pmf .pmf-rw-vhead b{ font-size:22px; font-weight:900; line-height:1.15; color:var(--pmf-grn-dark); }
.pmf .is-gris .pmf-rw-vhead b{ color:var(--pmf-ink); }
.pmf .pmf-rw-vsub{ margin:0 !important; font-size:13.5px; font-weight:600; color:var(--pmf-soft); line-height:1.45; }
.pmf .pmf-rw-steps{ margin:0 !important; padding:0 !important; list-style:none !important; display:flex; flex-direction:column; gap:8px; }
.pmf .pmf-rw-steps li{ display:flex; gap:10px; align-items:flex-start; margin:0 !important; padding:0 !important; font-size:13.5px; font-weight:600; color:var(--pmf-soft); }
.pmf .pmf-rw-steps li::before{ content:none !important; }
.pmf .pmf-rw-steps li i{ flex:0 0 auto; width:22px; height:22px; border-radius:50%; background:#fff; border:1px solid var(--pmf-grn-line); color:var(--pmf-grn-dark); font-style:normal; font-weight:900; font-size:11px; display:flex; align-items:center; justify-content:center; margin-top:1px; }
.pmf .pmf-rw-vr .pmf-rw-cta{ width:100%; height:48px; font-size:15px !important; }
.pmf .pmf-rw-vfoot{ display:none; margin:0 !important; font-size:11.5px; font-weight:700; color:var(--pmf-faint); text-align:center; }
@media (max-width:1023px){
	.pmf .pmf-rw-vl{ padding:24px 20px; }
	.pmf .pmf-rw-vr{ border-left:0; border-top:1px solid var(--pmf-grn-line); padding:24px 20px; }
	.pmf .pmf-rw-vt{ font-size:20px; }
}
@media (max-width:767px){
	/* Móvil: solo el bloque verde (diseño C); la franja se apila */
	.pmf .pmf-rw-vl{ display:none; }
	.pmf .pmf-rw-vr{ border-top:0; padding:22px 18px; }
	.pmf .pmf-rw-vhead b{ font-size:20px; }
	.pmf .pmf-rw-vfoot{ display:block; }
	.pmf .pmf-rw-banner{ display:grid; grid-template-columns:auto minmax(0,1fr); gap:10px 12px; padding:14px; margin-bottom:16px; }
	.pmf .pmf-rw-banner .pmf-rw-cta{ grid-column:1 / -1; width:100%; white-space:normal; }
	.pmf .pmf-rw-banner-t b{ font-size:15px; }
}
.pmf .pmf-rw-form label{ display:block; font-size:13.5px; font-weight:800; color:var(--pmf-ink); margin-bottom:6px; }
.pmf .pmf-rw-form .comment-form-comment{ margin:0 0 6px; }
.pmf .pmf-rw-form textarea{ width:100%; box-sizing:border-box; border:1.5px solid var(--pmf-line); border-radius:12px; padding:10px 14px; font:inherit; font-size:14px; line-height:1.45; background:#fff; resize:vertical; min-height:96px; }
.pmf .pmf-rw-form textarea::placeholder{ color:#9b98a6; opacity:1; }
.pmf .pmf-rw-form textarea:focus{ outline:2px solid var(--pmf-plus); outline-offset:1px; border-color:transparent; }
.pmf .pmf-rw-meta{ display:flex; justify-content:space-between; align-items:center; gap:12px; margin:0 0 12px; font-size:12px; font-weight:700; color:var(--pmf-faint); }
.pmf .pmf-rw-count.is-ok{ color:var(--pmf-grn-dark); }
.pmf .pmf-rw-fix{ background:none !important; border:0 !important; padding:0 !important; margin:0 0 0 8px !important; min-height:0 !important; font-size:12px !important; font-weight:800 !important; color:var(--pmf-plus) !important; text-decoration:underline; text-underline-offset:2px; cursor:pointer; }
.pmf .pmf-rw-fix:disabled{ opacity:.5; cursor:default; }
.pmf .pmf-rw-err{ margin:0 0 12px !important; padding:10px 12px; border-radius:10px; background:#fdecea; color:#a32b22; font-size:13px; font-weight:700; }
.pmf .pmf-rw-submit{ display:flex; align-items:center; justify-content:center; width:100%; height:48px; margin:0 !important; padding:0 24px !important; border:0 !important; border-radius:999px !important; background:var(--pmf-org) !important; color:#fff !important; font:inherit; font-size:15px !important; font-weight:800 !important; text-decoration:none; cursor:pointer; }
.pmf .pmf-rw-submit:disabled{ opacity:.6; cursor:default; }
.pmf .pmf-rw-note{ margin:10px 0 0 !important; font-size:12.5px; font-weight:600; color:var(--pmf-soft); text-align:center; }
.pmf .pmf-rw-done{ font-size:14.5px; line-height:1.5; color:var(--pmf-soft); }
.pmf .pmf-rw-done p{ margin:0 0 12px; }
.pmf .pmf-rw-done .pmf-rw-ok{ font-size:18px; color:var(--pmf-ink); }
.pmf .pmf-rw-done .pmf-rw-submit{ margin-top:6px !important; }

/* El tema fuerza dialog{display:block}: cerrado debe ocultarse y abierto ir fijo al centro. */
.pmf dialog.pmf-modal:not([open]){ display:none !important; }
.pmf dialog.pmf-modal[open]{ display:block !important; position:fixed !important; inset:0 !important; margin:auto !important; height:fit-content; z-index:100000; transform:none !important; }

/* Ruta de navegación */
.pmf-crumbs{ padding:22px 0 26px; font-size:13px; font-weight:600; color:var(--pmf-soft); }
.pmf-crumbs a{ color:var(--pmf-soft); text-decoration:none; transition:color .15s; }
.pmf-crumbs a:hover{ color:var(--pmf-plus); }
.pmf-crumbs-list{ display:flex; flex-wrap:wrap; align-items:center; gap:6px 4px; list-style:none; margin:0 !important; padding:0 !important; }
.pmf-crumbs-list li{ display:inline-flex; align-items:center; gap:4px; margin:0; padding:0; white-space:nowrap; }
.pmf-crumbs-list svg,.pmf-crumbs-back svg{ width:14px; height:14px; color:var(--pmf-faint); flex:0 0 auto; }
.pmf-crumbs-more button{ height:22px; min-width:28px; padding:0 8px !important; border:1px solid var(--pmf-line) !important; border-radius:999px !important; background:#fff !important; color:var(--pmf-soft) !important; font-size:13px !important; font-weight:800 !important; line-height:1 !important; }
.pmf-crumbs-more button:hover{ border-color:var(--pmf-plus) !important; color:var(--pmf-plus) !important; }
.pmf-crumbs-back{ display:none; align-items:center; gap:4px; font-weight:700; }
@media (max-width:767px){
	.pmf-crumbs{ padding:16px 0 18px; }
	.pmf-crumbs-list{ display:none; }
	.pmf-crumbs-back{ display:inline-flex; }
}

/* Márgenes de botones: la regla general ".pmf button{margin:0}" pesa más que una clase sola. */
.pmf .pmf-plan-cta{ margin-top:20px; }
.pmf .pmf-outline{ margin-top:20px; }
.pmf .pmf-card-add{ margin-top:auto; }
.pmf .pmf-card-plus + .pmf-card-add,.pmf .pmf-card-price + .pmf-card-add{ margin-top:14px; }

/* Modal de beneficios Plus (mismo diseño que el del checkout, sin precio ni botón) */
/* El diálogo mide lo que su caja: con los 640px del modal general sobraba media ventana en blanco. */
/* Aplica también al de "Inicia sesión", que tenía el mismo problema. */
.pmf dialog.pmf-modal#pmf-plusinfo,.pmf dialog.pmf-modal#pmf-login,.pmf dialog.pmf-modal#pmf-recinfo,.pmf dialog.pmf-modal#pmf-planinfo{width:min(420px, calc(100vw - 32px));border-radius:14px;box-shadow:0 24px 60px -20px rgba(24,22,32,.5)}
.pmf .pmf-plusinfo-box,.pmf .pmf-login-box{padding:28px 26px 26px;text-align:left}
.pmf .pmf-plusinfo-box .pmf-modal-x,.pmf .pmf-login-box .pmf-modal-x{top:10px;right:12px;width:32px;height:32px;background:none !important;color:#8d8a97 !important;font-size:26px !important}
.pmf .pmf-plusinfo-box .pmf-modal-x:hover,.pmf .pmf-login-box .pmf-modal-x:hover{color:#2f2c38 !important}
.pmf .pmf-plusinfo-box .pmf-modal-x:focus:not(:focus-visible),.pmf .pmf-login-box .pmf-modal-x:focus:not(:focus-visible){outline:none}
.pmf .pmf-login-t{padding-right:36px}
/* Regla de la compra recurrente bajo las frecuencias, con enlace al modal "Cómo funciona". */
.pmf .pmf-rec-rule{margin:10px 0 0 !important;font-size:13px;line-height:1.45;color:var(--pmf-soft)}
.pmf .pmf-rec-link{display:inline;margin:0 !important;padding:0 !important;border:0 !important;background:none !important;color:var(--pmf-plus) !important;font-weight:800 !important;font-size:13px !important;text-decoration:underline;text-underline-offset:2px;cursor:pointer;min-height:0 !important;line-height:inherit !important}
.pmf .pmf-rec-link:hover{color:var(--pmf-plus-deep) !important}
.pmf .pmf-recinfo .pmf-plusinfo-t{padding-right:36px}
@media (max-width:600px){ .pmf .pmf-plusinfo-box,.pmf .pmf-login-box{padding:24px 18px 20px} }
.pmf .pmf-plusinfo-t:focus{outline:none}
.pmf .pmf-plusinfo-marca{display:flex;align-items:center;gap:5px;margin:0 0 14px;font-size:19px;line-height:1.2}
.pmf .pmf-plusinfo-pm{color:#ed6436;font-weight:900;letter-spacing:-.02em}
.pmf .pmf-plusinfo-plus{background:#259C45;color:#fff;font-weight:900;border-radius:999px;padding:1px 9px 2px}
.pmf .pmf-plusinfo-t{display:block;margin:0 0 18px;font-size:20px;font-weight:800;color:#2f2c38;line-height:1.25}
.pmf .pmf-plusinfo-lista{list-style:none !important;margin:0 !important;padding:0 !important}
.pmf .pmf-plusinfo-lista li{display:flex;align-items:flex-start;gap:11px;margin:0 0 15px !important;padding:0 !important;list-style:none !important}
.pmf .pmf-plusinfo-lista li:last-child{margin-bottom:0 !important}
.pmf .pmf-plusinfo-lista li::before{content:none !important}
.pmf .pmf-plusinfo-lista svg{flex:none;margin-top:2px;color:#259C45}
.pmf .pmf-plusinfo-lista b{display:block;font-size:14.5px;font-weight:800;color:#2f2c38;line-height:1.3}
.pmf .pmf-plusinfo-lista small{display:block;margin-top:2px;font-size:13px;color:#6f6c78;line-height:1.45}

/* Modal de acceso (¿Ya eres Plus?) */
.pmf .pmf-login-box{max-width:420px}
.pmf .pmf-login-t{display:block;font-size:20px;font-weight:800;color:var(--pmf-ink);margin:0 0 4px}
.pmf .pmf-login-sub{margin:0 0 16px;font-size:13px;color:var(--pmf-soft);line-height:1.5}
.pmf .pmf-login-form p{margin:0 0 12px}
.pmf .pmf-login-form label{display:block;font-size:13px;font-weight:700;margin-bottom:6px;color:var(--pmf-ink)}
.pmf .pmf-login-form input[type=text],.pmf .pmf-login-form input[type=password]{width:100%;box-sizing:border-box;padding:11px 12px;border:1px solid var(--pmf-line);border-radius:4px;font:inherit;font-size:15px;background:#fff}
.pmf .pmf-login-form input[type=text]:focus,.pmf .pmf-login-form input[type=password]:focus{outline:2px solid var(--pmf-plus);outline-offset:1px;border-color:transparent}
.pmf .pmf-login-rem{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--pmf-soft);margin-bottom:16px;cursor:pointer}
.pmf .pmf-login-rem input{width:16px;height:16px;margin:0;accent-color:var(--pmf-plus)}
.pmf .pmf-login-go{width:100%;padding:13px 16px;border:0;border-radius:4px;background:var(--pmf-org);color:#fff;font:inherit;font-size:15px;font-weight:800;cursor:pointer}
.pmf .pmf-login-go:hover{filter:brightness(.95)}
.pmf .pmf-login-links{display:flex;justify-content:space-between;gap:12px;margin-top:14px;font-size:13px;font-weight:700}
.pmf .pmf-login-links a{color:var(--pmf-plus);text-decoration:none}
.pmf .pmf-login-links a:hover{text-decoration:underline}
.pmf .pmf-login-box .woocommerce-error,.pmf .pmf-login-box .woocommerce-message{margin:0 0 14px;padding:10px 12px;border-radius:4px;font-size:13px;list-style:none;background:#fdeceb;color:#a32b22}

/* SKU: dato de referencia del producto, discreto al pie del bloque de compra. */
.pmf .pmf-sku{ margin:0 0 0 auto !important; font-size:12px; font-weight:700; color:var(--pmf-faint); letter-spacing:.02em; }
.pmf .pmf-sku span{ color:var(--pmf-soft); user-select:all; }

/* Encabezado de cada tab. */
.pmf-prose .pmf-tab-h{ font-size:22px !important; font-weight:900 !important; line-height:1.2 !important; color:var(--pmf-ink) !important; margin:0 0 18px !important; letter-spacing:-.01em; }

/* Listas y pasos del contenido generado.
   Las viñetas y los números se dibujan a mano: un display:flex en la lista cancela el
   ::marker del navegador, y ahí fue donde los pasos se quedaron sin numerar. */
.pmf-prose .pmf-ul,.pmf-prose .pmf-ol{ list-style:none; margin:0 0 20px; padding:0; }
.pmf-prose .pmf-ul li{ position:relative; padding-left:26px; margin-bottom:10px; }
.pmf-prose .pmf-ul li::before{ content:""; position:absolute; left:7px; top:.62em; width:7px; height:7px; border-radius:50%; background:var(--pmf-org); }
.pmf-prose .pmf-ol{ counter-reset:pmf-step; }
.pmf-prose .pmf-ol li{ position:relative; counter-increment:pmf-step; padding-left:42px; margin-bottom:14px; min-height:28px; }
.pmf-prose .pmf-ol li::before{ content:counter(pmf-step); position:absolute; left:0; top:-1px; width:28px; height:28px; border-radius:50%; background:var(--pmf-plus-pale); color:var(--pmf-plus); font-size:13px; font-weight:900; display:flex; align-items:center; justify-content:center; font-variant-numeric:tabular-nums; }
.pmf-prose .pmf-ul li:last-child,.pmf-prose .pmf-ol li:last-child{ margin-bottom:0; }
.pmf-prose .pmf-table{ margin:0 0 20px; }
.pmf-prose > :last-child{ margin-bottom:0 !important; }

/* Tabla de datos del contenido generado: etiqueta a la izquierda, valor a la derecha.
   Sin relleno gris cuando es una sola fila, que parecía una pastilla suelta. */
.pmf-prose .pmf-table{ border:1px solid var(--pmf-line); border-radius:12px; overflow:hidden; background:#fff; font-size:14px; }
.pmf-prose .pmf-tr{ display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:18px; align-items:baseline; padding:13px 16px; border-top:1px solid var(--pmf-line); background:none; }
.pmf-prose .pmf-tr:first-child{ border-top:0; }
.pmf-prose .pmf-tr:nth-child(even){ background:var(--pmf-panel); }
.pmf-prose .pmf-tr span:first-child{ font-size:13.5px; font-weight:700; color:var(--pmf-soft); }
.pmf-prose .pmf-tr span:last-child{ font-weight:800; color:var(--pmf-ink); text-align:right; font-variant-numeric:tabular-nums; }
@media (max-width:520px){
	.pmf-prose .pmf-tr{ grid-template-columns:1fr; gap:3px; }
	.pmf-prose .pmf-tr span:last-child{ text-align:left; }
}

/* Aviso de producto de uso veterinario: nota al pie de la sección, no alarma. */
.pmf-prose .pmf-vetnote{ display:flex; gap:11px; align-items:flex-start; background:var(--pmf-panel); border:1px solid var(--pmf-line); border-left:3px solid var(--pmf-red); border-radius:10px; padding:13px 15px; margin:22px 0 0; }
.pmf-prose .pmf-vetnote-ico{ flex:0 0 auto; width:18px; height:18px; margin-top:1px; color:var(--pmf-red); }
.pmf-prose .pmf-vetnote p{ margin:0 !important; font-size:13px; font-weight:600; line-height:1.55; color:var(--pmf-soft); }

/* Listas largas y cortas repartidas en columnas: una lista de ingredientes en una sola
   columna deja media pantalla vacía y obliga a hacer scroll sin necesidad. */
/* Ancho de columna en vez de número fijo: el navegador mete las que quepan y baja a una
   sola en móvil sin necesidad de media queries. */
.pmf-prose .pmf-ul--cols{ column-width:15rem; column-gap:34px; }
.pmf-prose .pmf-ul--cols li{ break-inside:avoid; margin-bottom:9px; }

/* Tabla de varias columnas, con encabezado. */
.pmf-prose .pmf-table--grid .pmf-tr{ grid-template-columns:repeat(var(--pmf-cols,2),minmax(0,1fr)); gap:16px; }
.pmf-prose .pmf-table--grid .pmf-tr span{ text-align:left; font-weight:700; color:var(--pmf-ink); font-size:13.5px; }
.pmf-prose .pmf-table--grid .pmf-tr span:first-child{ color:var(--pmf-soft); }
.pmf-prose .pmf-table--grid .pmf-th{ background:var(--pmf-panel); border-top:0; }
.pmf-prose .pmf-table--grid .pmf-th span{ font-size:11.5px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color:var(--pmf-soft); }
.pmf-prose .pmf-table--grid .pmf-tr:nth-child(even){ background:none; }
.pmf-prose .pmf-table--grid .pmf-tr:nth-child(odd):not(.pmf-th){ background:var(--pmf-panel); }
@media (max-width:560px){
	.pmf-prose .pmf-table--grid .pmf-tr{ grid-template-columns:1fr 1fr; gap:10px; }
	.pmf-prose .pmf-table--grid .pmf-tr span{ font-size:13px; }
}

/* Resultados del planificador: cada cifra en una sola línea, sin romper la altura de las
   tres cajas. */
.pmf-plan-res > div{ padding:12px 4px; min-width:0; }
.pmf-plan-res b{ display:block; white-space:nowrap; overflow:hidden; font-size:17px; line-height:1.2; }
@media (max-width:420px){ .pmf-plan-res b{ font-size:15px; } }

/* Reseñas en carrusel: páginas de 4 con la misma rejilla de 2×2. Se desliza con las flechas o
   con el dedo; sin controles si todo cabe en una página. */
.pmf-rev-track{ display:flex; align-items:flex-start; gap:24px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; overscroll-behavior-x:contain; scrollbar-width:none; }
.pmf-rev-track::-webkit-scrollbar{ display:none; }
.pmf-rev-page{ flex:0 0 100%; min-width:0; scroll-snap-align:start; }
.pmf-rev-nav{ display:flex; align-items:center; justify-content:flex-end; gap:12px; margin-top:16px; }
.pmf .pmf-rev-arrow{ width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center; padding:0 !important; margin:0; border:1px solid var(--pmf-line) !important; border-radius:50% !important; background:#fff !important; color:var(--pmf-ink) !important; cursor:pointer; transition:border-color .15s,color .15s; }
.pmf .pmf-rev-arrow:hover:not(:disabled){ border-color:var(--pmf-plus) !important; color:var(--pmf-plus) !important; }
.pmf .pmf-rev-arrow:focus-visible{ outline:2px solid var(--pmf-plus); outline-offset:2px; }
.pmf .pmf-rev-arrow:disabled{ opacity:.4; cursor:default; }
.pmf-rev-arrow svg{ width:18px; height:18px; }
.pmf-rev-pos{ min-width:44px; text-align:center; font-size:13px; font-weight:800; color:var(--pmf-soft); font-variant-numeric:tabular-nums; }
@media (prefers-reduced-motion:reduce){ .pmf-rev-track{ scroll-behavior:auto; } }
/* Móvil: una reseña por deslizamiento, con la siguiente asomando. Las páginas de 4 apiladas
   hacían el carrusel altísimo y con huecos distintos al cambiar de página. */
@media (min-width:768px){ .pmf-rev-nav--movil{ display:none; } }
@media (max-width:767px){
	.pmf-rev-grid{ gap:20px; }
	.pmf-rev-sum{ padding:18px 16px; }
	.pmf-rev-track{ gap:12px; align-items:stretch; }
	.pmf-rev-page,.pmf-rev-list{ display:contents; }
	.pmf-rev{ flex:0 0 86%; min-width:0; scroll-snap-align:start; padding:16px; box-sizing:border-box; }
	.pmf-rev header{ flex-wrap:wrap; row-gap:6px; }
	.pmf-rev header .pmf-stars{ margin-left:auto; }
	.pmf-rev p{ overflow-wrap:anywhere; }
	.pmf-rev-nav{ justify-content:center; }
}

/* Calificación en el modal de reseña: estrellas grandes. WooCommerce (single-product.js) crea
   <p class="stars"><a class="star-N">N de 5 estrellas</a>…</p> delante del select #rating; el
   tema solo las estiliza dentro de #respond, y el formulario del premio no está ahí, así que
   se veían como texto. Aquí se dibujan con ★ para los dos formularios del modal. */
.pmf #pmf-rev-form .comment-form-rating{ margin:0 0 16px; }
.pmf #pmf-rev-form .comment-form-rating label{ display:block; font-weight:800; margin:0 0 6px; }
.pmf #pmf-rev-form .comment-form-rating p.stars + select{ display:none !important; }
.pmf #pmf-rev-form .comment-form-rating p.stars{ display:flex; align-items:center; gap:0; margin:2px 0 0; padding:0; width:auto; position:static; }
.pmf #pmf-rev-form .comment-form-rating p.stars > span{ display:inline-flex; gap:2px; }
.pmf #pmf-rev-form .comment-form-rating p.stars a{ position:static; display:block; width:42px; height:42px; margin:0; padding:0; font-size:0; line-height:0; color:transparent; text-indent:0; letter-spacing:0; text-decoration:none; border:0; border-radius:8px; }
.pmf #pmf-rev-form .comment-form-rating p.stars a:focus-visible{ outline:2px solid #4739a0; outline-offset:2px; }
.pmf #pmf-rev-form .comment-form-rating p.stars a::after{ content:none; }
.pmf #pmf-rev-form .comment-form-rating p.stars a::before{ content:"★"; position:static; display:block; width:42px; height:42px; margin:0; font-family:Arial,Helvetica,sans-serif; font-size:38px; line-height:42px; text-align:center; text-indent:0; color:#dcd9e6; transition:color .12s, transform .12s; }
.pmf #pmf-rev-form .comment-form-rating p.stars.selected a::before{ color:#e8a33d; }
.pmf #pmf-rev-form .comment-form-rating p.stars.selected a.active ~ a::before{ color:#dcd9e6; }
.pmf #pmf-rev-form .comment-form-rating p.stars:hover a::before{ color:#e8a33d; }
.pmf #pmf-rev-form .comment-form-rating p.stars a:hover ~ a::before{ color:#dcd9e6; }
.pmf #pmf-rev-form .comment-form-rating p.stars a:hover::before{ transform:scale(1.15); }
.pmf #pmf-rev-form .pmf-rw-cap{ display:block; min-height:20px; margin:4px 0 0 4px; font-size:14px; font-weight:800; color:#8b87a0; }
.pmf #pmf-rev-form .pmf-rw-cap.is-on{ color:#8a5a00; }