/* =========================================================
   ANIMAL FOOD · TARJETA DE PRODUCTO "PLATO"
   Fondo de rayos del color de la receta, foto como plato,
   ingredientes orbitando y precio tipo sticker.
   ========================================================= */
.af-pc {
	position: relative; display: flex; flex-direction: column; height: 100%; min-width: 0;
	background: #fff; border-radius: 32px; overflow: hidden; isolation: isolate;
	box-shadow: 0 0 0 1px rgba(15, 35, 80, .06), 0 26px 46px -30px color-mix(in srgb, var(--c) 70%, #0f2350);
	transition: transform .4s cubic-bezier(.3, 1.4, .5, 1), box-shadow .4s;
}
.af-pc:hover { transform: translateY(-10px); box-shadow: 0 0 0 1px rgba(15, 35, 80, .04), 0 40px 60px -30px color-mix(in srgb, var(--c) 85%, #0f2350); }
.af-pc *, .af-pc *::before, .af-pc *::after { box-sizing: border-box; }

/* Escena del plato */
.af-pc__escena {
	position: relative; display: grid; place-items: center; aspect-ratio: 1 / .9; overflow: hidden;
	text-decoration: none !important; background: var(--c);
}
.af-pc__escena::before { /* rayos que giran */
	content: ''; position: absolute; inset: -40%; z-index: 0;
	background: repeating-conic-gradient(from 0deg, color-mix(in srgb, var(--c) 100%, #fff 0%) 0 9deg, color-mix(in srgb, var(--c) 78%, #fff) 9deg 18deg);
	animation: af-giro 50s linear infinite;
}
.af-pc__escena::after { /* brillo central + grano */
	content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none;
	background: var(--af-grano), radial-gradient(circle at 50% 50%, rgba(255, 255, 255, .55) 0 30%, transparent 62%);
}

.af-pc__plato {
	position: relative; z-index: 2; width: 66%; aspect-ratio: 1; border-radius: 50%; overflow: hidden; background: #fff;
	border: 8px solid #fff;
	box-shadow: 0 0 0 9px rgba(255, 255, 255, .38), 0 0 0 18px rgba(255, 255, 255, .16), 0 28px 34px -14px rgba(15, 35, 80, .65);
	transition: transform .7s cubic-bezier(.3, 1.4, .5, 1);
}
.af-pc__plato img, .af-pc__plato .af-ph { width: 100% !important; height: 100% !important; object-fit: cover; aspect-ratio: auto !important; display: block; border-radius: 50%; margin: 0 !important; }
.af-pc:hover .af-pc__plato { transform: rotate(-10deg) scale(1.07); }

/* Ingredientes orbitando */
.af-pc__orbita { position: absolute; z-index: 3; inset: 9%; border-radius: 50%; border: 2px dashed rgba(255, 255, 255, .55); animation: af-giro 16s linear infinite; pointer-events: none; }
.af-pc__orbita i {
	position: absolute; width: 46px; height: 46px; margin: -23px; border-radius: 50%; display: grid; place-items: center;
	background: #fff; font-style: normal; font-size: 1.45rem; box-shadow: 0 10px 18px -8px rgba(15, 35, 80, .55);
	animation: af-giro 16s linear infinite reverse;
}
.af-pc__orbita i:first-child { top: 14.6%; left: 85.4%; }
.af-pc__orbita i:last-child { top: 85.4%; left: 14.6%; width: 38px; height: 38px; margin: -19px; font-size: 1.15rem; }
.af-pc:hover .af-pc__orbita, .af-pc:hover .af-pc__orbita i { animation-duration: 6s; }

/* Etiquetas */
.af-pc__para { position: absolute; z-index: 4; top: 14px; left: 14px; display: flex; gap: 4px; }
.af-pc__para span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: rgba(255, 255, 255, .95); font-size: 1.05rem; box-shadow: 0 6px 12px -6px rgba(15, 35, 80, .5); }
.af-pc__oferta { position: absolute; z-index: 4; top: 14px; right: 14px; background: #ff3d3d; color: #fff; font-family: var(--af-f-sub); font-weight: 700; font-size: .75rem; padding: 6px 11px; border-radius: 999px; }

/* Precio sticker */
.af-pc__precio {
	position: absolute; z-index: 4; right: 14px; bottom: 30px; transform: rotate(-7deg);
	display: flex; flex-direction: column; align-items: center; line-height: 1;
	background: var(--af-oscuro); color: #fff; border: 3px solid #fff; border-radius: 18px; padding: 9px 14px 8px;
	font-family: var(--af-f-titulo); font-size: 1.55rem; box-shadow: 0 14px 22px -10px rgba(15, 35, 80, .7);
	transition: transform .4s cubic-bezier(.3, 1.6, .5, 1);
}
.af-pc:hover .af-pc__precio { transform: rotate(4deg) scale(1.08); }
.af-pc__precio .amount, .af-pc__precio bdi { color: #fff; }
.af-pc__precio del { font-size: .55em; opacity: .65; }
.af-pc__precio ins { text-decoration: none; }
.af-pc__precio small { font-family: var(--af-f-sub); font-weight: 600; font-size: .66rem; letter-spacing: .06em; text-transform: uppercase; color: var(--af-naranja); margin-top: 4px; }
.af-pc__consulta { font-family: var(--af-f-sub); font-size: .85rem; }
.af-pc__ola { position: absolute; z-index: 3; left: 0; bottom: -1px; width: 100%; height: 26px; fill: #fff; }

/* Cuerpo */
.af-pc__body { position: relative; z-index: 2; display: flex; flex-direction: column; gap: 6px; padding: 4px 22px 22px; flex: 1; }
.af-pc__cat { font-family: var(--af-f-sub); font-weight: 600; font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: color-mix(in srgb, var(--c) 75%, #0f2350); }
.af-pc__t { font-family: var(--af-f-titulo); font-weight: 400; font-size: clamp(1.4rem, 1.6vw, 1.7rem); line-height: 1.05; margin: 0 !important; padding: 0 !important; }
.af-pc__t a { color: var(--af-oscuro) !important; text-decoration: none !important; }
.af-pc__desc { margin: 0; color: var(--af-gris); font-size: .9rem; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.af-pc__puntos { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 5px; }
.af-pc__puntos li { font-family: var(--af-f-sub); font-weight: 600; font-size: .72rem; color: var(--af-oscuro); background: color-mix(in srgb, var(--c) 14%, #fff); border-radius: 999px; padding: 5px 10px; }
.af-pc__acc { display: flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 14px; }
.af-pc__add {
	flex: 1; display: inline-flex !important; align-items: center; justify-content: center; gap: 8px; text-decoration: none !important;
	min-height: 48px; padding: 12px 16px !important; margin: 0 !important; border: 0 !important; border-radius: 999px !important;
	background: linear-gradient(135deg, var(--af-naranja), var(--af-naranja-2)) !important; color: #fff !important;
	font-family: var(--af-f-sub) !important; font-weight: 600 !important; font-size: .95rem !important; line-height: 1 !important;
	box-shadow: 0 14px 24px -12px rgba(255, 122, 0, .95) !important; transition: transform .25s, filter .25s !important;
}
.af-pc__add:hover { transform: translateY(-2px); filter: brightness(1.05); }
.af-pc__add .af-ico { width: 20px; height: 20px; }
.af-pc__add--wa { background: var(--af-wa) !important; box-shadow: 0 14px 24px -12px rgba(37, 211, 102, .9) !important; }
.af-pc__add.loading { opacity: .65; }
.af-pc__add.added span::after { content: ' ✓'; }
.af-pc__ver {
	flex: none; width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; text-decoration: none !important;
	background: color-mix(in srgb, var(--c) 14%, #fff); color: var(--af-oscuro) !important; transition: all .25s;
}
.af-pc__ver .af-ico { width: 20px; height: 20px; }
.af-pc__ver:hover { background: var(--af-oscuro); color: #fff !important; transform: rotate(-12deg); }
.af-pc .added_to_cart { position: absolute; left: 22px; right: 22px; bottom: 78px; text-align: center; background: var(--af-azul); color: var(--af-azul-o) !important; border-radius: 999px; padding: 8px; font-family: var(--af-f-sub); font-weight: 600; font-size: .82rem; text-decoration: none !important; animation: af-entra .4s ease both; }

/* ===== Listados de WooCommerce (tienda, categorías, relacionados) ===== */
ul.products li.product.af-pc-li {
	float: none !important; width: auto !important; margin: 0 !important; padding: 0 !important;
	border: 0 !important; background: none !important; text-align: left; list-style: none;
}
.af-store ul.products, .related ul.products, .upsells ul.products {
	display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 2vw, 30px) !important;
	padding: 14px 0 20px !important; margin: 0 !important;
}
.related ul.products::before, .related ul.products::after, .upsells ul.products::before, .upsells ul.products::after { display: none !important; }
@media (min-width: 1400px) { .af-store ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* ===== Sección [af_productos] (página Recetas) ===== */
.af-prods--pc { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: clamp(18px, 2vw, 28px); }
.af-prods--pc > .af-pc.is-oculto { display: none; }

@media (max-width: 1000px) {
	.af-store ul.products, .related ul.products, .upsells ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* Móvil: tarjeta horizontal compacta en la tienda */
@media (max-width: 650px) {
	.af-store ul.products, .related ul.products, .upsells ul.products, .af-prods--pc { grid-template-columns: 1fr; gap: 14px !important; }
	.af-store .af-pc, .related .af-pc, .upsells .af-pc, .af-prods--pc .af-pc { flex-direction: row; border-radius: 24px; }
	.af-store .af-pc__escena, .related .af-pc__escena, .upsells .af-pc__escena, .af-prods--pc .af-pc__escena { flex: 0 0 42%; aspect-ratio: auto; min-height: 210px; }
	.af-store .af-pc__ola, .related .af-pc__ola, .upsells .af-pc__ola, .af-prods--pc .af-pc__ola { display: none; }
	.af-store .af-pc__orbita i:last-child, .related .af-pc__orbita i:last-child, .af-prods--pc .af-pc__orbita i:last-child { display: none; }
	.af-store .af-pc__plato, .related .af-pc__plato, .af-prods--pc .af-pc__plato { width: 78%; border-width: 5px; }
	.af-store .af-pc__body, .related .af-pc__body, .af-prods--pc .af-pc__body { padding: 14px 14px 14px 12px; }
	.af-store .af-pc__precio, .related .af-pc__precio, .af-prods--pc .af-pc__precio { right: 8px; bottom: 8px; font-size: 1.15rem; padding: 6px 10px; }
	.af-store .af-pc__puntos, .related .af-pc__puntos, .af-prods--pc .af-pc__puntos { display: none; }
}
@media (max-width: 640px) {
	.af-pc__orbita i { width: 36px; height: 36px; margin: -18px; font-size: 1.1rem; }
	.af-pc__t { font-size: 1.3rem; }
	.af-pc__add { min-height: 42px; padding: 10px 12px !important; font-size: .88rem !important; }
	.af-pc__ver { width: 42px; height: 42px; }
}
@media (prefers-reduced-motion: reduce) {
	.af-pc__escena::before, .af-pc__orbita, .af-pc__orbita i { animation: none; }
}

/* ===== Presentación 500 g / 1 kg y "bajo pedido" (v1.27) ===== */
.af-pres { display: flex; gap: 6px; margin: 10px 0 0; }
.af-pres__op {
	flex: 1; min-width: 0; cursor: pointer; font: 700 .82rem/1 var(--af-f-sub); color: var(--af-oscuro, #0f2350);
	background: #fff; border: 2px solid #dbe7f8; border-radius: 999px; padding: 8px 10px; transition: background .2s, border-color .2s, color .2s, transform .2s;
}
.af-pres__op:hover { border-color: var(--c, #1769e0); transform: translateY(-1px); }
.af-pres__op.is-on { background: var(--c, #1769e0); border-color: var(--c, #1769e0); color: #fff; box-shadow: 0 6px 14px -8px var(--c, #1769e0); }
.af-pc__oferta--pedido { background: #0c3c8c; }
.af-pc--pedido .af-pc__precio { font-size: 1rem; line-height: 1.05; }
.af-pc--pedido .af-pc__plato { filter: saturate(.92); }
.af-pc__add--wa { background: #25d366 !important; color: #fff !important; }
.af-prod__add--wa { background: #25d366 !important; color: #fff !important; }
.af-pedido { font-family: var(--af-f-sub); font-weight: 700; }
