/* Banner de promociones del CRM: paleta de la clínica (rojo #8B1A22 / #C41E3A, blanco) y logo. */
.cfc-promo {
  --cfc-rojo: #8B1A22; --cfc-rojo2: #C41E3A; --cfc-rojoclaro: #ffeaea; --cfc-texto: #111827;
  position: fixed; left: 20px; bottom: 20px; z-index: 900; display: flex; width: min(430px, calc(100vw - 40px));
  background: #fff; border-radius: 18px; overflow: hidden; font-family: 'Inter', system-ui, sans-serif; color: var(--cfc-texto);
  box-shadow: 0 18px 50px rgba(82, 20, 30, .28); border: 1px solid rgba(139, 26, 34, .12);
  opacity: 0; transform: translateY(16px); transition: opacity .35s ease, transform .35s ease;
}
.cfc-promo.is-visible { opacity: 1; transform: none; }
.cfc-promo__media {
  position: relative; flex: 0 0 132px; background: var(--cfc-rojo) center/cover no-repeat;
  display: flex; align-items: flex-end; justify-content: flex-start; padding: 12px;
}
.cfc-promo__media::before {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(160deg, rgba(196, 30, 58, .25), rgba(139, 26, 34, .85));
}
.cfc-promo__media i {
  position: relative; width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center;
  background: #fff; color: var(--cfc-rojo); font-size: 18px; box-shadow: 0 6px 16px rgba(0, 0, 0, .18);
}
.cfc-promo__body { flex: 1; padding: 14px 40px 14px 16px; min-width: 0; }
.cfc-promo__logo { display: block; width: 96px; height: auto; margin-bottom: 6px; }
.cfc-promo__kind {
  display: inline-block; background: var(--cfc-rojoclaro); color: var(--cfc-rojo); font-size: .7rem; font-weight: 700;
  letter-spacing: .04em; text-transform: uppercase; padding: 3px 10px; border-radius: 999px;
}
.cfc-promo__title { margin: 6px 0 2px; font-size: 1rem; font-weight: 800; line-height: 1.25; }
.cfc-promo__price { margin: 0; font-size: .95rem; color: #4b5563; }
.cfc-promo__price strong { color: var(--cfc-rojo2); font-size: 1.25rem; font-weight: 800; }
.cfc-promo__price strong, .cfc-promo__price s { white-space: nowrap; }
.cfc-promo__price s { color: #9ca3af; }
.cfc-promo__detail { margin: 2px 0 10px; font-size: .8rem; color: #6b7280; }
.cfc-promo__actions { display: flex; gap: 8px; flex-wrap: wrap; }
.cfc-promo__cta {
  background: var(--cfc-rojo); color: #fff; text-decoration: none; font-weight: 700; font-size: .85rem;
  padding: 8px 16px; border-radius: 999px; transition: background .2s;
}
.cfc-promo__cta:hover { background: var(--cfc-rojo2); }
.cfc-promo__next {
  background: none; border: 1px solid #e5c2c5; color: var(--cfc-rojo); font: inherit; font-size: .8rem; font-weight: 600;
  padding: 7px 12px; border-radius: 999px; cursor: pointer;
}
.cfc-promo__close {
  position: absolute; top: 8px; right: 8px; width: 30px; height: 30px; border-radius: 50%; border: none; cursor: pointer;
  background: rgba(17, 24, 39, .06); color: #374151; font-size: 20px; line-height: 1;
}
.cfc-promo__close:hover { background: rgba(17, 24, 39, .12); }
.cfc-promo a:focus-visible, .cfc-promo button:focus-visible { outline: 2px solid var(--cfc-rojo2); outline-offset: 2px; }

@media (max-width: 600px) {
  .cfc-promo { left: 10px; right: 10px; bottom: 10px; width: auto; }
  .cfc-promo__media { flex-basis: 84px; }
  .cfc-promo__logo { width: 80px; }
  /* En la portada Doki ocupa la esquina derecha: el banner se vuelve compacto y le deja espacio. */
  .cfc-promo--con-doki { right: 150px; }
  .cfc-promo--con-doki .cfc-promo__media { display: none; }
  .cfc-promo--con-doki .cfc-promo__body { padding: 12px 34px 12px 12px; }
  .cfc-promo--con-doki .cfc-promo__logo { display: none; }
}
@media (prefers-reduced-motion: reduce) { .cfc-promo { transition: none; } }
