/* Política de calidad. Depende de base.css y pages.css (pg-head). */
/* ---------- Política de calidad ---------- */
.calidad-page .pg-head__cake { width: min(36vw, 520px); top: 30%; rotate: -6deg; }
.qp { padding: clamp(56px, 9vw, 120px) clamp(20px, 5vw, 64px); }
.qp__list { max-width: 1240px; margin: 0 auto; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 18px; }
.qp__item { position: relative; display: grid; gap: 12px; align-content: start; padding: clamp(24px, 3vw, 34px); border-radius: var(--r-surface); background: #fff5e4; box-shadow: 0 24px 44px -36px rgba(61, 31, 22, 0.6); overflow: clip; }
.qp__item:nth-child(4n + 1) { --qc: var(--teal-800); --qb: color-mix(in srgb, var(--teal) 22%, #fff5e4); }
.qp__item:nth-child(4n + 2) { --qc: var(--fucsia-800); --qb: color-mix(in srgb, var(--pink) 70%, #fff5e4); }
.qp__item:nth-child(4n + 3) { --qc: var(--choco); --qb: color-mix(in srgb, var(--yellow) 40%, #fff5e4); }
.qp__item:nth-child(4n + 4) { --qc: var(--pistachio-800); --qb: color-mix(in srgb, var(--pistachio) 55%, #fff5e4); }
.qp__item { background: var(--qb); }
.qp__num { position: absolute; right: 22px; top: 14px; font-family: var(--font-display); font-size: clamp(3rem, 5vw, 4.4rem); line-height: 1; color: var(--qc); opacity: 0.16; }
.qp__icon { font-size: 40px; color: var(--qc); }
.qp__item h2 { font-size: clamp(1.4rem, 2.2vw, 1.75rem); line-height: 1.1; max-width: 16ch; }
.qp__item p { color: var(--ink-soft); max-width: 46ch; }
.qp-end { background: var(--pink); color: var(--ink); padding: clamp(72px, 11vw, 150px) 20px; text-align: center; }
.qp-end__inner { max-width: 760px; margin: 0 auto; display: grid; justify-items: center; gap: 24px; }
.qp-end__inner > i { font-size: 56px; color: var(--fucsia); }
.qp-end__inner p { font-family: var(--font-display); font-size: clamp(1.6rem, 3.4vw, 2.6rem); line-height: 1.15; text-wrap: balance; }
.qp-end__ctas { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
@media (max-width: 760px) {
  .calidad-page .pg-head__cake { width: 50vw; right: -16vw; top: 12%; }
}

/* Una sola política: tarjeta centrada */
.ab-pols--one { grid-template-columns: minmax(0, 520px); justify-content: center; }
@media (min-width: 1100px) {
  .qp__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  /* El último a lo ancho solo cuando queda solo en su fila (4, 7, 10 principios). */
  .qp__list--wide-last .qp__item:last-child { grid-column: 1 / -1; grid-template-columns: 56px minmax(0, 0.8fr) minmax(0, 1.2fr); align-items: center; column-gap: 24px; }
  .qp__list--wide-last .qp__item:last-child h2 { max-width: none; }
}

/* Entrada de la cabecera: CSS breve, sin GSAP. El titular y la torta (candidatos a LCP)
   no pasan por opacity 0: solo se desplazan. Con movimiento reducido no hay animación. */
@keyframes qp-rise { from { transform: translateY(26px); } to { transform: none; } }
@keyframes qp-rise-fade { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
@keyframes qp-cake-in { from { translate: 0 60px; } to { translate: 0 0; } }
@keyframes qp-cake-float { from { transform: translateY(0); } to { transform: translateY(12px); } }
@media (prefers-reduced-motion: no-preference) {
  .calidad-page .pg-head__inner > h1 { animation: qp-rise 0.8s cubic-bezier(0.16, 1, 0.3, 1) both; }
  .calidad-page .pg-head__inner > .lead { animation: qp-rise-fade 0.8s cubic-bezier(0.16, 1, 0.3, 1) 0.08s both; }
  .calidad-page .pg-head__cake {
    animation:
      qp-cake-in 1.2s cubic-bezier(0.16, 1, 0.3, 1) 0.15s both,
      qp-cake-float 3.2s cubic-bezier(0.37, 0, 0.63, 1) 1.4s infinite alternate;
  }
}
