/* Camilo Veterinario · /recetario/ (página de venta del recetario de perros). Se suma a base.css y marco-v2.css; mismos tokens (DESIGN.md).
   Sin sombras (el visor de PDF y algunos navegadores las dibujan como rectángulos), sin estilos en línea. Si se edita, cambiar el nombre (recetario-v2.css). */
main.rec{max-width:980px;display:grid;gap:20px;padding-top:12px}
.hero{display:grid;grid-template-columns:1fr;border-radius:32px;background:linear-gradient(180deg,#E3F1F4,#F4F9FA);overflow:hidden}
.hero-txt{padding:26px 22px 8px}
.eti{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;background:var(--white);font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.eti i{width:8px;height:8px;border-radius:50%;background:var(--ok)}
.hero h1{margin:16px 0 12px;font-size:clamp(2.2rem,8.4vw,3.6rem);line-height:.98}
.resalta{color:var(--brand)}
.hero .lead{margin-bottom:16px;max-width:46ch}
.precio{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:0 0 12px}
.precio b{font-family:var(--f-display);font-weight:600;font-size:2.5rem;letter-spacing:-.04em;line-height:1}
.precio span{font-size:15px;font-weight:600;color:var(--muted)}
.tachado{font-size:1.25rem;font-weight:600;color:var(--muted)}
.tachado span{font-size:inherit!important;font-weight:inherit!important;color:inherit!important}
.aviso-promo{display:inline-block;margin:0 0 12px;padding:7px 14px;border-radius:999px;background:var(--warn-tint);color:var(--warn);font-size:14px;font-weight:700;line-height:1.35}
.aviso-promo b{font-weight:800}
.cierre .aviso-promo{background:#FFF0CC}
.garantia{margin:12px 0 0;font-size:13px;line-height:1.5;color:var(--muted)}
.portada-img{display:block;width:calc(100% - 28px);height:auto;aspect-ratio:1/1;margin:14px;border-radius:24px;object-fit:cover}
.bloque{padding:24px 22px;border-radius:32px;background:var(--white);border:1px solid var(--line)}
.bloque h2,.cierre h2{margin:0 0 14px;font-family:var(--f-display);font-weight:600;font-size:clamp(1.6rem,5vw,2.2rem);line-height:1.04;letter-spacing:-.04em}
.cards{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.cards li{display:flex;gap:14px;align-items:flex-start;padding:14px 16px;border-radius:22px;background:var(--bg)}
.ck{flex:none;width:34px;height:34px;border-radius:12px;background:var(--pastel);color:var(--brand);display:grid;place-items:center}
.ck .ico{width:20px;height:20px}
.cards b{display:block;font-family:var(--f-display);font-weight:600;font-size:1.2rem;letter-spacing:-.03em;line-height:1.1}
.cards p{margin:4px 0 0;font-size:15px;line-height:1.5;color:var(--muted)}
.nota{margin:14px 0 0;font-size:15px;line-height:1.55;color:var(--muted)}
.muestras{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.muestras img{display:block;width:100%;height:auto;border-radius:14px;border:1px solid var(--line)}
.dos{display:grid;gap:20px}
.dos ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.dos li{display:flex;gap:10px;align-items:flex-start;font-size:16px;line-height:1.5}
.dos .ico{width:22px;height:22px;flex:none;margin-top:1px;padding:3px;border-radius:50%}
.si .ico{background:var(--ok-tint);color:var(--ok)}
.no .ico{background:var(--danger-tint);color:var(--danger)}
.autor{display:grid;gap:18px;align-items:center}
.autor img{display:block;width:min(60%,240px);height:auto;margin:0 auto;border-radius:24px;background:linear-gradient(180deg,#E3F1F4,#F4F9FA)}
.autor p{margin:0 0 10px;font-size:16px;line-height:1.6}
.bloque details{border-top:1px solid var(--line)}
.bloque details:first-of-type{border-top:0}
.bloque summary{display:flex;align-items:center;min-height:56px;padding:6px 0;font-weight:700;font-size:16px;cursor:pointer;list-style:none}
.bloque summary::-webkit-details-marker{display:none}
.bloque summary::after{content:"+";margin-left:auto;padding-left:12px;font-size:24px;color:var(--brand)}
.bloque details[open] summary::after{content:"\2212"}
.bloque details p{margin:0 0 14px;font-size:16px;line-height:1.6;color:var(--muted)}
.cierre{padding:28px 22px;border-radius:32px;background:linear-gradient(180deg,#0F4A5C,#0A3441);color:#EAF5F8}
.cierre h2{color:#fff}
.cierre .precio b{color:#fff}.cierre .precio span{color:#C7DEE4}
.aviso{margin:4px 4px 0;font-size:14px;line-height:1.55;color:var(--muted)}
.aviso a{color:var(--brand);font-weight:600}
/* catálogo /recetarios/ */
.cab-cat{grid-template-columns:1fr}
.cab-cat .hero-txt{padding:30px 22px 30px}
.reg{display:grid;gap:16px;align-items:center;color:inherit;text-decoration:none}
.reg img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;border-radius:24px}
.reg h3{margin:10px 0 6px;font-family:var(--f-display);font-weight:600;font-size:1.6rem;line-height:1.05;letter-spacing:-.04em}
.reg p{margin:0 0 10px;font-size:16px;line-height:1.55;color:var(--muted)}
.reg .precio{margin:0 0 12px}
.reg .btn{width:100%}
.prox{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.prox li{padding:14px 16px;border-radius:22px;background:var(--bg)}
.prox b{display:block;font-family:var(--f-display);font-weight:600;font-size:1.2rem;letter-spacing:-.03em}
.prox a{display:block;color:inherit;text-decoration:none}
.reg.sin-foto{grid-template-columns:1fr!important}
.cruzada{display:grid;gap:14px}
.prox span{display:block;margin-top:4px;font-size:15px;line-height:1.5;color:var(--muted)}
.nota a{color:var(--brand);font-weight:600}
@media (min-width:760px){
  .cab-cat .hero-txt{padding:44px}
  .reg{grid-template-columns:260px 1fr;gap:28px}
  .reg .btn{width:auto}
  .prox{grid-template-columns:1fr 1fr}
  main.rec{padding-top:20px;gap:24px}
  .hero{grid-template-columns:1.1fr .9fr;align-items:center}
  .hero-txt{padding:44px 0 44px 44px}
  .portada-img{width:calc(100% - 28px);margin:20px 20px 20px 0}
  .cards{grid-template-columns:1fr 1fr}
  .dos{grid-template-columns:1fr 1fr}
  .autor{grid-template-columns:240px 1fr;gap:32px}
  .bloque{padding:34px 36px}
  .cierre{padding:40px 44px}
}
@media (prefers-reduced-motion:no-preference){
  .hero,.bloque{animation:sube .5s cubic-bezier(.2,.7,.2,1) backwards}
  @keyframes sube{from{opacity:0;transform:translateY(14px)}}
}
