/* ============================= */
/* BENEFICIOS — TARJETAS FLIP    */
/* ISO 37301 — Azul Oxford       */
/* Bloque autocontenido: no depende de variables externas */
/* ============================= */
.beneficios {
  --lot-ox-900: #0D1F35;
  --lot-ox-700: #1A3A5C;
  --lot-ox-500: #2563A8;
  --lot-ox-400: #3B82C4;
  --lot-ox-300: #6AAAD9;
  --lot-ox-200: #93C4EA;
  --lot-ox-100: #D6EAFA;

  --bf-black: #060F1B;
  --bf-black-2: #03080F;

  --bf-ink: var(--lot-ox-100);
  --bf-ink-muted: rgba(214, 234, 250, 0.6);
  --bf-ink-faint: rgba(214, 234, 250, 0.32);

  --bf-font-display: 'Cormorant Garamond', 'Times New Roman', serif;
  --bf-font-caps: 'Cormorant SC', 'Cormorant Garamond', serif;

  --bf-accent-500: var(--lot-ox-400);
  --bf-accent-400: var(--lot-ox-200);

  background: var(--bf-black);
  padding: 96px 24px;
  font-family: var(--bf-font-display);
}

/* ── Encabezado de la sección ── */
.beneficios .section-head {
  max-width: 640px;
  margin: 0 auto 56px;
  text-align: center;
}
.beneficios .eyebrow {
  display: inline-block;
  font-family: var(--bf-font-caps);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  color: var(--bf-accent-400);
  margin-bottom: 14px;
  position: relative;
  padding-bottom: 12px;
}
.beneficios .eyebrow::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 40px;
  height: 1px;
  background: var(--bf-accent-400);
}
.beneficios .section-head h2 {
  font-family: var(--bf-font-display);
  font-size: clamp(1.7rem, 3.2vw, 2.4rem);
  font-weight: 600;
  color: var(--bf-ink);
  line-height: 1.25;
  margin: 0;
}
.beneficios .section-head h2 em {
  color: var(--bf-accent-400);
  font-style: italic;
}

/* ── Grid ── */
.bf-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; max-width:940px; margin:0 auto 52px; }
.bf-scene { height:300px; perspective:1000px; cursor:pointer; opacity:0; transform:translateY(24px); transition:opacity .5s, transform .5s; }
.bf-scene.in { opacity:1; transform:translateY(0); }
.bf-card { width:100%; height:100%; position:relative; transform-style:preserve-3d; transition:transform .7s cubic-bezier(.4,0,.2,1); }
.bf-scene.flipped .bf-card { transform:rotateY(180deg); }
.bf-front, .bf-back { position:absolute; inset:0; border-radius:4px; backface-visibility:hidden; overflow:hidden; }
.bf-front {
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  border:1px solid rgba(59, 130, 196, 0.28);
  background:linear-gradient(160deg,#0B1826, var(--bf-black-2));
  padding:0 20px;
}
.bf-icon {
  width:54px; height:54px; margin:0 auto 16px; border-radius:50%;
  border:1px solid rgba(59, 130, 196, 0.55);
  color:var(--bf-accent-400);
  display:flex; align-items:center; justify-content:center;
  transition:transform .3s, box-shadow .3s;
}
.bf-scene:hover .bf-icon { transform:scale(1.08); box-shadow:0 0 0 1px rgba(59,130,196,0.3), 0 0 22px rgba(59,130,196,0.3); }
.bf-icon svg { width:26px; height:26px; }
.bf-front-title {
  font-family: var(--bf-font-caps);
  font-size:0.98rem; font-weight:600;
  color: var(--bf-ink);
  letter-spacing:0.07em; margin-bottom:8px; text-align:center;
}
.bf-hint {
  font-family: var(--bf-font-caps);
  font-size:0.66rem; color: var(--bf-ink-faint); letter-spacing:0.08em;
  display:flex; align-items:center; justify-content:center; gap:5px;
  position:absolute; bottom:16px; left:50%; transform:translateX(-50%);
}
.bf-hint-dot { width:5px; height:5px; border-radius:50%; background: var(--bf-accent-400); animation:bf-pulse 1.8s infinite; }
@keyframes bf-pulse { 0%,100%{opacity:1;transform:scale(1);} 50%{opacity:.35;transform:scale(.7);} }
.bf-back {
  background:linear-gradient(180deg, rgba(11,24,38,0.98), var(--bf-black-2));
  border:1px solid rgba(59, 130, 196, 0.38);
  transform:rotateY(180deg);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:30px 24px; text-align:center;
}
.bf-back-title {
  font-family: var(--bf-font-caps);
  font-size:0.86rem; font-weight:600;
  color: var(--bf-accent-400);
  letter-spacing:0.08em; margin-bottom:14px;
}
.bf-back-text { font-family: var(--bf-font-display); font-size:0.94rem; color: var(--bf-ink-muted); line-height:1.7; }
.bf-back-close { margin-top:18px; font-family: var(--bf-font-caps); font-size:0.64rem; color: var(--bf-ink-faint); letter-spacing:0.06em; }

.bf-cta { text-align:center; }
.bf-cta .btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 32px;
  border-radius: 3px;
  background: transparent;
  color: var(--bf-accent-400);
  font-family: var(--bf-font-caps);
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.09em;
  border: 1px solid rgba(59, 130, 196, 0.55);
  cursor: pointer;
  text-decoration: none;
  transition: border-color 0.25s, box-shadow 0.25s, color 0.25s;
}
.bf-cta .btn:hover {
  border-color: var(--bf-accent-400);
  color: var(--bf-ink);
  box-shadow: 0 0 22px rgba(59,130,196,0.32);
}

.bf-img {
  width: 100%;
  height: 120px;
  margin-bottom: 18px;
  border-radius: 6px;
  overflow: hidden;
  border: 1px solid rgba(59, 130, 196, 0.28);
  background: rgba(59, 130, 196, 0.04);
}
.bf-img img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
}

@media (max-width: 900px) { .bf-grid { grid-template-columns:1fr 1fr; max-width:640px; } }
@media (max-width: 600px) {
  .beneficios { padding: 72px 20px; }
  .bf-grid { grid-template-columns:1fr; gap:20px; max-width:380px; }
  .bf-scene { height:260px; }
  .beneficios .section-head { margin-bottom: 40px; }
}