/* ==========================================================================
   BPI Capital — estilos del sitio (Elementor + ProElements + Hello theme)
   Sistema: arena · oro · tinta cálida · navy. Registro editorial.
   Las clases .bpi-* se asignan en Elementor (Avanzado → Clases CSS).
   ========================================================================== */

:root {
  --sand-50: #FBF8F2; --sand-100: #F5EEE1; --sand-200: #ECE2D0; --sand-300: #DDCFB6; --sand-400: #C9B896;
  --ink-950: #14110D; --ink-900: #1A1712; --ink-800: #2C2721; --ink-700: #433B2F; --ink-600: #5C5040; --ink-500: #766A57; --ink-400: #9A8E79; --ink-300: #C0B7A4;
  --gold-700: #7E6428; --gold-600: #957531; --gold-500: #B08C3D; --gold-400: #C6A25A; --gold-300: #DCC08A; --gold-200: #EBD8B0; --gold-100: #F6ECD5;
  --navy-900: #0F2035; --navy-800: #16304C; --paper-card: #FFFDF9; --loss-600: #A23A2E;
  --font-serif: "Source Serif 4", Georgia, "Times New Roman", serif;
  --font-sans: "Libre Franklin", "Helvetica Neue", Arial, system-ui, sans-serif;
  --font-mono: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;
  --shadow-md: 0 4px 12px rgba(42,33,20,.09), 0 2px 4px rgba(42,33,20,.06);
  --shadow-lg: 0 12px 32px rgba(42,33,20,.12), 0 4px 8px rgba(42,33,20,.06);
  --shadow-dark: 0 12px 40px rgba(6,15,26,.45);
  --ring: 0 0 0 3px rgba(198,162,90,.35);
  --ease: cubic-bezier(.4,0,.2,1); --ease-out: cubic-bezier(.16,1,.3,1);
  --pad: clamp(20px, 4vw, 44px); --hdr-h: 84px;
}

/* ---------- Base ---------- */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { background: var(--sand-100); color: var(--ink-800); font-family: var(--font-sans); font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
body.admin-bar .bpi-hdr { top: 32px; }
@media (max-width: 782px) { body.admin-bar .bpi-hdr { top: 46px; } }
a { transition: color 160ms var(--ease); }
::selection { background: var(--gold-200); color: var(--ink-900); }
h1, h2, h3, h4, .bpi-serif { font-family: var(--font-serif); font-weight: 600; letter-spacing: -.02em; line-height: 1.1; color: var(--ink-900); text-wrap: balance; }
.elementor-widget:not(:last-child) { --kit-widget-spacing: 0; }
.e-con { --padding-block-start: 0; --padding-block-end: 0; --padding-inline-start: 0; --padding-inline-end: 0; }
.e-con-boxed > .e-con-inner { padding-left: var(--pad); padding-right: var(--pad); }
.elementor-widget-image img { display: block; }

/* Tipos de texto */
.bpi-kicker .elementor-heading-title, .bpi-kicker { font-family: var(--font-sans); font-size: 11.5px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--gold-600); line-height: 1.5; }
.bpi-dark .bpi-kicker .elementor-heading-title, .bpi-hero .bpi-kicker .elementor-heading-title { color: var(--gold-300); }
.bpi-h-display .elementor-heading-title { font-size: clamp(42px, 6.4vw, 84px); line-height: 1.02; letter-spacing: -.025em; }
.bpi-h1 .elementor-heading-title { font-size: clamp(36px, 4.6vw, 60px); line-height: 1.06; }
.bpi-h2 .elementor-heading-title { font-size: clamp(30px, 3.2vw, 44px); line-height: 1.1; }
.bpi-h3 .elementor-heading-title { font-size: clamp(22px, 2vw, 27px); line-height: 1.2; }
.bpi-h4 .elementor-heading-title { font-size: 18px; line-height: 1.3; }
.bpi-lead, .bpi-lead p { font-size: clamp(17px, 1.4vw, 19px); line-height: 1.6; color: var(--ink-600); max-width: 62ch; text-wrap: pretty; }
.bpi-dark .bpi-lead, .bpi-dark .bpi-lead p, .bpi-hero .bpi-lead p { color: rgba(245,238,225,.78); }
.bpi-body, .bpi-body p { font-size: 16.5px; line-height: 1.65; color: var(--ink-600); max-width: 56ch; }
.bpi-body p + p { margin-top: 16px; }
.bpi-dark .bpi-body, .bpi-dark .bpi-body p { color: rgba(245,238,225,.72); }
.bpi-dark h1, .bpi-dark h2, .bpi-dark h3, .bpi-dark .elementor-heading-title { color: var(--sand-50); }
.bpi-num .elementor-heading-title { font-family: var(--font-mono); font-size: 13px; color: var(--gold-600); letter-spacing: 0; }
.bpi-rule { display: block; width: 56px; height: 2px; background: var(--gold-400); }
.bpi-rule--center { margin: 0 auto; }
.bpi-dark, .bpi-hero { color: var(--sand-50); }

/* ---------- Botones ---------- */
.bpi-btn .elementor-button, .bpi-form .elementor-button {
  font-family: var(--font-sans); font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
  padding: 16px 28px; border: 1px solid transparent; border-radius: 2px; line-height: 1.2;
  transition: background 180ms var(--ease), color 180ms var(--ease), border-color 180ms var(--ease), transform 120ms var(--ease);
}
.bpi-btn .elementor-button:active { transform: translateY(1px); }
.bpi-btn--gold .elementor-button, .bpi-form .elementor-button { background: var(--gold-400); color: var(--ink-900); }
.bpi-btn--gold .elementor-button:hover, .bpi-form .elementor-button:hover { background: var(--gold-300); color: var(--ink-900); }
.bpi-btn--ghost .elementor-button { background: transparent; color: var(--sand-50); border-color: rgba(245,238,225,.38); }
.bpi-btn--ghost .elementor-button:hover { border-color: var(--gold-300); color: var(--gold-300); background: transparent; }
.bpi-btn--dark .elementor-button { background: var(--ink-900); color: var(--sand-50); }
.bpi-btn--dark .elementor-button:hover { background: var(--ink-700); color: var(--sand-50); }
.bpi-btn--outline .elementor-button { background: transparent; color: var(--ink-900); border-color: var(--ink-300); }
.bpi-btn--outline .elementor-button:hover { background: var(--sand-200); color: var(--ink-900); }
.bpi-btn--full .elementor-button-wrapper, .bpi-btn--full .elementor-button { width: 100%; }
.bpi-hdr__cta .elementor-button { padding: 12px 22px; font-size: 11px; }

/* Enlace con flecha */
.bpi-link .elementor-button { background: none; color: var(--gold-600); padding: 0; border: 0; border-radius: 0; font-size: 11.5px; letter-spacing: .16em; }
.bpi-link .elementor-button:hover { color: var(--gold-700); background: none; }
.bpi-link .elementor-button .elementor-button-text::after { content: "\2192"; display: inline-block; margin-left: 10px; transition: transform 220ms var(--ease-out); }
.bpi-link--ext .elementor-button .elementor-button-text::after { content: "\2197"; }

/* ---------- Marca ---------- */
.bpi-brand, body a.bpi-brand, body a.bpi-brand:hover, body a.bpi-brand:focus { display: inline-flex; align-items: center; gap: 13px; color: var(--sand-50); text-decoration: none; }
.bpi-mark { display: inline-flex; align-items: flex-end; gap: 2.5px; height: 26px; }
.bpi-mark i { display: block; width: 3.5px; background: var(--sand-50); transform-origin: bottom; }
.bpi-mark i:nth-child(1), .bpi-mark i:nth-child(7) { height: 10px; }
.bpi-mark i:nth-child(2), .bpi-mark i:nth-child(6) { height: 15px; }
.bpi-mark i:nth-child(3), .bpi-mark i:nth-child(5) { height: 20px; }
.bpi-mark i:nth-child(4) { height: 26px; width: 4.5px; background: var(--gold-400); }
.bpi-brand:hover .bpi-mark i { animation: bpiMark 900ms var(--ease-out); }
.bpi-brand:hover .bpi-mark i:nth-child(2), .bpi-brand:hover .bpi-mark i:nth-child(6) { animation-delay: 60ms; }
.bpi-brand:hover .bpi-mark i:nth-child(3), .bpi-brand:hover .bpi-mark i:nth-child(5) { animation-delay: 120ms; }
.bpi-brand:hover .bpi-mark i:nth-child(4) { animation-delay: 180ms; }
@keyframes bpiMark { 0% { transform: scaleY(1); } 40% { transform: scaleY(.55); } 100% { transform: scaleY(1); } }
.bpi-wordmark { display: flex; flex-direction: column; gap: 4px; }
.bpi-wordmark b { font-family: var(--font-serif); font-size: 19px; font-weight: 600; letter-spacing: .15em; line-height: 1; white-space: nowrap; }
.bpi-wordmark i { display: block; width: 30px; height: 1.5px; background: var(--gold-400); transition: width 300ms var(--ease-out); }
.bpi-brand:hover .bpi-wordmark i { width: 100%; }

/* ---------- Header ---------- */
.bpi-hdr { position: fixed !important; top: 0; left: 0; right: 0; z-index: 80; width: 100%; padding: 26px 0; background: transparent; border-bottom: 1px solid transparent; transition: background 260ms var(--ease), padding 260ms var(--ease), border-color 260ms var(--ease), transform 320ms var(--ease-out); }
.bpi-hdr.is-scrolled { background: rgba(20,17,13,.96); padding: 14px 0; border-color: rgba(245,238,225,.12); backdrop-filter: blur(6px); }
.bpi-hdr.is-hidden { transform: translateY(-100%); }
.bpi-hdr__in > .e-con-inner { display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: clamp(14px, 2.5vw, 40px); }
.bpi-hdr__brand { flex: 0 0 auto; }
.bpi-hdr__tools { flex: 0 0 auto; }
.bpi-hdr__tools.e-con { flex-direction: row; align-items: center; gap: clamp(12px, 1.5vw, 20px); width: auto; }
.bpi-progress { position: fixed; top: 0; left: 0; height: 2px; width: 100%; z-index: 90; pointer-events: none; }
.bpi-progress i { display: block; height: 100%; width: 100%; background: linear-gradient(90deg, var(--gold-500), var(--gold-300)); transform-origin: left; transform: scaleX(0); }
body.admin-bar .bpi-progress { top: 32px; }

/* Idioma */
.bpi-lang { display: inline-flex; align-items: center; gap: 7px; font-size: 11px; font-weight: 600; letter-spacing: .1em; }
body .bpi-lang a { color: rgba(245,238,225,.62); text-decoration: none; padding: 4px 2px; }
body .bpi-lang a:hover { color: var(--gold-300); }
body .bpi-lang a.is-on { color: var(--gold-300); }
.bpi-lang span { color: rgba(245,238,225,.3); }
body .bpi-foot .bpi-lang a { color: rgba(245,238,225,.55); }

/* Menú principal (ProElements nav-menu) */
.bpi-nav { flex: 1 1 auto; }
.bpi-nav .elementor-nav-menu--main { justify-content: flex-end; }
.bpi-nav .elementor-nav-menu--main .elementor-item { font-family: var(--font-sans); font-size: 12px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: rgba(245,238,225,.72); padding: 6px 0 4px; background: none; }
.bpi-nav .elementor-nav-menu--main .elementor-item:hover, .bpi-nav .elementor-nav-menu--main .elementor-item.elementor-item-active, .bpi-nav .elementor-nav-menu--main .elementor-item.highlighted { color: var(--gold-300); background: none; }
.bpi-nav .elementor-nav-menu--main .elementor-item.elementor-item-active { color: var(--sand-50); }
.bpi-nav .e--pointer-underline .elementor-item::after { background: var(--gold-400); height: 1px; }
.bpi-nav .elementor-nav-menu--main > ul > li:not(:last-child) { margin-right: clamp(16px, 1.8vw, 32px); }
.bpi-nav .elementor-menu-toggle { width: 44px; height: 44px; border: 1px solid rgba(245,238,225,.25); border-radius: 2px; color: var(--sand-50); background: transparent; margin-left: auto; }
.bpi-nav .elementor-menu-toggle:hover, .bpi-nav .elementor-menu-toggle.elementor-active { color: var(--gold-300); border-color: var(--gold-300); background: transparent; }
.bpi-nav .elementor-nav-menu--dropdown { background: var(--ink-950); border-top: 1px solid rgba(245,238,225,.1); padding: 18px var(--pad) 26px; box-shadow: var(--shadow-dark); margin-top: 18px; }
.bpi-nav .elementor-nav-menu--dropdown .elementor-item { font-family: var(--font-serif) !important; font-size: clamp(26px, 6vw, 36px) !important; font-weight: 600; letter-spacing: -.02em; color: var(--sand-50) !important; padding: 14px 0 !important; border-bottom: 1px solid rgba(245,238,225,.1); background: none !important; text-align: left; justify-content: flex-start; }
.bpi-nav .elementor-nav-menu--dropdown li { text-align: left; }
.bpi-nav .elementor-nav-menu--dropdown .elementor-item:hover, .bpi-nav .elementor-nav-menu--dropdown .elementor-item.elementor-item-active { color: var(--gold-300) !important; background: none !important; }
.bpi-nav .elementor-nav-menu--dropdown li:last-child .elementor-item { border-bottom: 0; }

/* ---------- Secciones ---------- */
.bpi-sec { padding-top: clamp(64px, 9vw, 120px); padding-bottom: clamp(64px, 9vw, 120px); }
.bpi-sec--tight { padding-top: clamp(48px, 6vw, 80px); padding-bottom: clamp(48px, 6vw, 80px); }
.bpi-sand { background: var(--sand-100); }
.bpi-sand2 { background: var(--sand-200); }
.bpi-dark { background: var(--ink-900); }
.bpi-head { max-width: 760px; margin-bottom: clamp(36px, 5vw, 64px); }
.bpi-head.e-con { --gap: 18px; }

/* ---------- Hero ---------- */
.bpi-hero { position: relative; min-height: 100svh; display: flex; flex-direction: column; justify-content: flex-end; align-items: stretch; background: var(--ink-900); overflow: hidden; isolation: isolate; }
.bpi-hero--mid { min-height: 84svh; justify-content: center; }
.bpi-hero--short { min-height: 78svh; }
.bpi-hero__media { position: absolute !important; inset: 0; z-index: 0; width: 100% !important; height: 100%; max-width: none; margin: 0; }
.bpi-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: center; transform: scale(1.06); animation: bpiKen 16s var(--ease-out) forwards; }
.bpi-hero--mid .bpi-hero__media img, .bpi-hero--short .bpi-hero__media img { animation-duration: 12s; }
@keyframes bpiKen { to { transform: scale(1); } }
.bpi-hero::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(to top, rgba(20,17,13,.96) 0%, rgba(20,17,13,.66) 40%, rgba(20,17,13,.28) 72%, rgba(20,17,13,.55) 100%); }
.bpi-hero--mid::after { background: linear-gradient(90deg, rgba(20,17,13,.92) 0%, rgba(20,17,13,.7) 50%, rgba(20,17,13,.45) 100%); }
.bpi-hero::before { content: ""; position: absolute; inset: 0; z-index: 1; opacity: .05; pointer-events: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.bpi-hero__in { position: relative; z-index: 2; width: 100%; padding-top: calc(var(--hdr-h) + 40px); padding-bottom: clamp(56px, 8vw, 110px); }
.bpi-hero__in.e-con { --gap: 0; }
.bpi-hero__kicker { margin-bottom: 26px; animation: bpiRise 900ms var(--ease-out) both; }
.bpi-hero__title .elementor-heading-title { color: var(--sand-50); max-width: 14ch; animation: bpiRise 1000ms var(--ease-out) 120ms both; }
.bpi-hero--page .bpi-hero__title .elementor-heading-title { max-width: 18ch; }
.bpi-hero__rule { display: block; margin: 34px 0 30px; width: 88px; height: 2px; background: var(--gold-400); transform-origin: left; animation: bpiDraw 900ms var(--ease-out) 520ms both; }
.bpi-hero__body.e-con { flex-direction: row; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; --gap: 32px clamp(32px, 5vw, 80px); animation: bpiRise 1000ms var(--ease-out) 380ms both; }
.bpi-hero__lead { max-width: 640px; }
.bpi-hero__lead p { color: rgba(245,238,225,.82); font-size: clamp(17px, 1.45vw, 20px); line-height: 1.6; text-wrap: pretty; max-width: none; }
.bpi-hero__actions.e-con { flex-direction: row; flex-wrap: wrap; --gap: 14px; width: auto; }
.bpi-hero--page .bpi-lead { margin-top: 26px; animation: bpiRise 1000ms var(--ease-out) 320ms both; }
.bpi-hero__cue { position: absolute; right: var(--pad); bottom: 34px; z-index: 2; display: flex; flex-direction: column; align-items: center; gap: 10px; color: rgba(245,238,225,.55); font-size: 10px; letter-spacing: .22em; text-transform: uppercase; }
.bpi-hero__cue i { display: block; width: 1px; height: 46px; background: linear-gradient(to bottom, transparent, var(--gold-300)); animation: bpiCue 1900ms var(--ease) infinite; transform-origin: top; }
@keyframes bpiCue { 0% { transform: scaleY(0); opacity: 0; } 40% { transform: scaleY(1); opacity: 1; } 100% { transform: scaleY(1) translateY(10px); opacity: 0; } }
@keyframes bpiRise { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
@keyframes bpiDraw { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes bpiFade { from { opacity: 0; } to { opacity: 1; } }

/* ---------- Pilares ---------- */
.bpi-pillars { padding-top: clamp(48px, 6vw, 80px); padding-bottom: clamp(48px, 6vw, 80px); }
.bpi-pillars__row.e-con { --gap: clamp(28px, 4vw, 64px); }
.bpi-pillar { position: relative; padding-top: 24px; }
.bpi-pillar.e-con { --gap: 12px; }
.bpi-pillar::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 1px; background: rgba(245,238,225,.16); }
.bpi-pillar::after { content: ""; position: absolute; top: 0; left: 0; width: 72px; height: 1px; background: var(--gold-400); }
.bpi-pillar .bpi-h3 .elementor-heading-title { font-size: 23px; color: var(--sand-50); }
.bpi-pillar .bpi-body p { color: rgba(245,238,225,.68); font-size: 15px; }

/* ---------- Por qué ---------- */
.bpi-why__row.e-con { --gap: clamp(36px, 6vw, 110px); align-items: flex-start; }
.bpi-sticky { position: sticky; top: calc(var(--hdr-h) + 24px); }
.bpi-sticky.e-con { --gap: 20px; }
.bpi-diff { position: relative; padding: 28px 16px 28px 0; border-top: 1px solid var(--sand-300); transition: background 200ms var(--ease), padding-left 260ms var(--ease-out); }
.bpi-diff.e-con { flex-direction: row; align-items: flex-start; --gap: 20px; }
.bpi-diffs > .bpi-diff:last-child { border-bottom: 1px solid var(--sand-300); }
.bpi-diff:hover { background: var(--gold-100); padding-left: 16px; }
.bpi-diff .bpi-num { flex: 0 0 44px; padding-top: 6px; }
.bpi-diff__text.e-con { --gap: 10px; flex: 1 1 0; width: auto; }
.bpi-diff .bpi-h3 .elementor-heading-title { font-size: 22px; }
.bpi-diff .bpi-body p { font-size: 15.5px; }

/* ---------- Filosofía (teaser) ---------- */
.bpi-phil__row.e-con { --gap: clamp(36px, 6vw, 100px); align-items: center; }
.bpi-frame { position: relative; }
.bpi-frame::before { content: ""; position: absolute; inset: 0; transform: translate(14px, 14px); border: 1px solid var(--gold-400); z-index: 0; transition: transform 500ms var(--ease-out); }
.bpi-frame:hover::before { transform: translate(20px, 20px); }
.bpi-frame img { position: relative; z-index: 1; width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 5; transition: transform 1200ms var(--ease-out); }
.bpi-frame--portrait img { aspect-ratio: 3 / 4; object-position: center 18%; }
.bpi-frame:hover img { transform: scale(1.02); }
.bpi-phil__text.e-con { --gap: 22px; }
.bpi-principles.e-con { flex-direction: row; flex-wrap: wrap; --gap: 26px 36px; margin: 18px 0 14px; }
.bpi-principle.e-con { flex-direction: row; --gap: 12px; width: calc(50% - 18px); align-items: flex-start; }
.bpi-principle .bpi-num { flex: 0 0 34px; padding-top: 5px; }
.bpi-principle .bpi-num .elementor-heading-title { font-size: 12px; }
.bpi-principle__text.e-con { --gap: 6px; flex: 1 1 0; width: auto; }
.bpi-principle .bpi-body p { font-size: 14.5px; line-height: 1.6; }

/* ---------- Cita ---------- */
.bpi-quote { position: relative; min-height: 70svh; display: flex; flex-direction: column; justify-content: center; align-items: stretch; background: var(--ink-900); overflow: hidden; isolation: isolate; }
.bpi-quote .bpi-hero__media img { animation: none; transform: none; object-position: center 40%; }
.bpi-quote::after { content: ""; position: absolute; inset: 0; z-index: 1; background: rgba(20,17,13,.72); pointer-events: none; }
.bpi-quote__in { position: relative; z-index: 2; text-align: center; padding-top: clamp(80px, 12vw, 160px); padding-bottom: clamp(80px, 12vw, 160px); }
.bpi-quote__in.e-con { --gap: 0; align-items: center; }
.bpi-quote__mark { display: block; width: 56px; height: 2px; background: var(--gold-400); margin: 0 auto 36px; }
.bpi-quote__text .elementor-heading-title { font-family: var(--font-serif); font-weight: 500; font-size: clamp(26px, 3.4vw, 46px); line-height: 1.22; letter-spacing: -.015em; max-width: 22ch; margin: 0 auto; color: var(--sand-50); text-align: center; }
.bpi-quote__attr .elementor-heading-title { margin-top: 28px; font-family: var(--font-sans); font-size: 11.5px; letter-spacing: .18em; text-transform: uppercase; color: var(--gold-300); text-align: center; font-weight: 500; }

/* ---------- Segmentos ---------- */
.bpi-seg { border-top: 1px solid var(--sand-300); padding-top: clamp(44px, 5vw, 72px); padding-bottom: clamp(44px, 5vw, 72px); }
.bpi-seg.e-con { flex-direction: row; align-items: center; --gap: clamp(28px, 5vw, 80px); }
.bpi-segs > .bpi-seg:last-child { border-bottom: 1px solid var(--sand-300); }
.bpi-seg--flip.e-con { flex-direction: row-reverse; }
.bpi-seg__media { overflow: hidden; background: var(--sand-300); }
.bpi-seg__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transform: scale(1.02); transition: transform 1200ms var(--ease-out); }
.bpi-seg:hover .bpi-seg__media img { transform: scale(1.06); }
.bpi-seg__text.e-con { --gap: 14px; }
.bpi-seg .bpi-h3 .elementor-heading-title { font-size: clamp(28px, 2.6vw, 36px); }
.bpi-seg .bpi-body p { font-size: 16.5px; max-width: 52ch; }
.bpi-list { margin: 12px 0 16px; padding-top: 26px; border-top: 1px solid var(--sand-300); }
.bpi-list .elementor-icon-list-items { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 28px; }
.bpi-list .elementor-icon-list-item { display: flex; align-items: flex-start; gap: 12px; font-size: 15px; color: var(--ink-700); line-height: 1.5; margin: 0 !important; padding: 0 !important; }
.bpi-list .elementor-icon-list-icon { display: none; }
.bpi-list .elementor-icon-list-text::before { content: ""; display: inline-block; width: 6px; height: 6px; background: var(--gold-400); margin: 0 12px 3px 0; }
.bpi-list--dark .elementor-icon-list-item { color: rgba(245,238,225,.85); }

/* ---------- Proceso ---------- */
.bpi-process.e-con { flex-direction: row; flex-wrap: wrap; --gap: 40px clamp(20px, 3vw, 48px); }
.bpi-step { position: relative; padding-top: 30px; width: calc(25% - 36px); }
.bpi-step.e-con { --gap: 10px; }
.bpi-step::before { content: ""; position: absolute; top: 8px; left: 0; right: 0; height: 1px; background: var(--sand-300); }
.bpi-step::after { content: ""; position: absolute; top: 4px; left: 0; width: 9px; height: 9px; background: var(--gold-400); border: 1.5px solid var(--gold-500); transform: rotate(45deg); }
.bpi-step .bpi-bignum .elementor-heading-title { font-family: var(--font-serif); font-size: 44px; font-weight: 500; color: var(--gold-300); line-height: 1; letter-spacing: -.02em; margin-bottom: 4px; }
.bpi-step .bpi-h3 .elementor-heading-title { font-size: 21px; }
.bpi-step .bpi-body p { font-size: 15px; }

/* ---------- Principios (página Filosofía) ---------- */
.bpi-plong.e-con { flex-direction: row; flex-wrap: wrap; --gap: 1px; background: var(--sand-300); border: 1px solid var(--sand-300); }
.bpi-plong__item { background: var(--sand-100); padding: clamp(28px, 3vw, 44px); position: relative; transition: background 240ms var(--ease); width: calc(33.333% - 1px); }
.bpi-plong__item.e-con { --gap: 12px; }
.bpi-plong__item:hover { background: var(--paper-card); }
.bpi-plong__item::after { content: ""; position: absolute; left: 0; top: 0; width: 0; height: 3px; background: var(--gold-400); transition: width 500ms var(--ease-out); }
.bpi-plong__item:hover::after { width: 100%; }
.bpi-plong__item .bpi-bignum .elementor-heading-title { font-family: var(--font-serif); font-size: 52px; font-weight: 500; color: var(--gold-300); line-height: 1; letter-spacing: -.02em; margin-bottom: 10px; }
.bpi-plong__item .bpi-h3 .elementor-heading-title { font-size: 22px; }
.bpi-plong__item .bpi-body p { font-size: 15.5px; }

/* ---------- Lo que no hacemos ---------- */
.bpi-avoid__row.e-con { --gap: clamp(32px, 5vw, 90px); align-items: flex-start; }
.bpi-avoid__list .elementor-icon-list-items { display: block; }
.bpi-avoid__list .elementor-icon-list-item { display: flex; gap: 16px; padding: 22px 0 !important; margin: 0 !important; border-top: 1px solid rgba(245,238,225,.14); font-family: var(--font-serif); font-size: clamp(19px, 1.6vw, 23px); line-height: 1.35; color: var(--sand-50); font-weight: 500; }
.bpi-avoid__list .elementor-icon-list-item:last-child { border-bottom: 1px solid rgba(245,238,225,.14); }
.bpi-avoid__list .elementor-icon-list-icon { display: none; }
.bpi-avoid__list .elementor-icon-list-text::before { content: "\2212"; color: var(--gold-400); font-family: var(--font-mono); font-size: 22px; margin-right: 18px; }

/* ---------- Servicios ---------- */
.bpi-slong { border-top: 1px solid var(--sand-300); padding-top: clamp(44px, 5vw, 72px); padding-bottom: clamp(44px, 5vw, 72px); }
.bpi-slong.e-con { flex-direction: row; --gap: clamp(28px, 5vw, 90px); align-items: flex-start; }
.bpi-slongs > .bpi-slong:last-child { border-bottom: 1px solid var(--sand-300); }
.bpi-slong__intro.e-con { --gap: 16px; }
.bpi-slong .bpi-h2 .elementor-heading-title { font-size: clamp(30px, 3vw, 40px); }
.bpi-slong .bpi-body p { max-width: 48ch; }
.bpi-detail.e-con { flex-direction: row; flex-wrap: wrap; --gap: 28px 32px; }
.bpi-detail__item { padding-top: 18px; border-top: 1px solid var(--sand-300); position: relative; width: calc(50% - 16px); }
.bpi-detail__item.e-con { --gap: 8px; }
.bpi-detail__item::before { content: ""; position: absolute; top: -1px; left: 0; width: 28px; height: 1px; background: var(--gold-500); transition: width 500ms var(--ease-out); }
.bpi-detail__item:hover::before { width: 100%; }
.bpi-detail__item .bpi-body p { font-size: 14.5px; line-height: 1.6; }
.bpi-fees { background: var(--ink-900); padding: clamp(44px, 5vw, 80px) clamp(24px, 5vw, 96px); }
.bpi-fees.e-con { flex-direction: row; --gap: clamp(28px, 5vw, 90px); align-items: center; }
.bpi-fees__intro.e-con { --gap: 18px; }
.bpi-fees .bpi-h2 .elementor-heading-title { color: var(--sand-50); font-size: clamp(30px, 3vw, 42px); }
.bpi-fees .bpi-body p { color: rgba(245,238,225,.78); font-size: 17px; line-height: 1.7; max-width: none; }

/* ---------- Contacto ---------- */
.bpi-contact-hero { position: relative; min-height: 70svh; display: flex; flex-direction: column; justify-content: flex-end; align-items: stretch; background: var(--ink-900); overflow: hidden; isolation: isolate; }
.bpi-contact-hero::before { content: ""; position: absolute; inset: 0; z-index: 0; background: radial-gradient(ellipse 60% 70% at 78% 30%, rgba(198,162,90,.16), transparent 60%), radial-gradient(ellipse 50% 50% at 10% 90%, rgba(22,48,76,.5), transparent 60%); }
.bpi-contact-hero .bpi-hero__in { padding-top: calc(var(--hdr-h) + 56px); }
.bpi-contact-data { margin-top: clamp(40px, 5vw, 64px); padding-top: 32px; border-top: 1px solid rgba(245,238,225,.16); animation: bpiRise 1000ms var(--ease-out) 460ms both; }
.bpi-contact-data.e-con { flex-direction: row; flex-wrap: wrap; --gap: 24px clamp(40px, 6vw, 110px); width: fit-content; }
.bpi-contact-data .bpi-kicker .elementor-heading-title { color: rgba(245,238,225,.55); margin-bottom: 10px; }
body .bpi-contact-data .bpi-mono, body .bpi-contact-data .bpi-mono p, body .bpi-contact-data .bpi-mono a { font-family: var(--font-mono); font-size: 16px; color: var(--gold-300); text-decoration: none; word-break: break-all; }
.bpi-contact-data .bpi-mono a:hover { color: var(--gold-200); }
.bpi-contact-item.e-con { --gap: 0; width: auto; }
.bpi-bio__row.e-con { --gap: clamp(32px, 6vw, 100px); align-items: flex-start; }
.bpi-bio__text.e-con { --gap: 10px; }
.bpi-bio__text .bpi-h2 .elementor-heading-title { font-size: clamp(32px, 3.4vw, 46px); }
.bpi-role .elementor-heading-title { font-family: var(--font-sans); font-size: 15px; font-weight: 600; color: var(--gold-600); letter-spacing: 0; margin-bottom: 16px; }
.bpi-bio__text .bpi-body p { font-size: 16.5px; line-height: 1.7; color: var(--ink-700); max-width: 62ch; }
.bpi-facts.e-con { flex-direction: row; flex-wrap: wrap; --gap: 22px 32px; margin-top: 26px; padding-top: 30px; border-top: 1px solid var(--sand-300); }
.bpi-fact { width: calc(50% - 16px); }
.bpi-fact.e-con { --gap: 6px; }
.bpi-fact .bpi-kicker .elementor-heading-title { color: var(--ink-500); }
.bpi-fact .bpi-body p { font-size: 15px; color: var(--ink-800); }
.bpi-bio__portrait .bpi-link { margin-top: 30px; }
.bpi-form__row.e-con { --gap: clamp(32px, 5vw, 90px); align-items: flex-start; }
.bpi-expect.e-con { --gap: 26px; }
.bpi-expect .bpi-h3 .elementor-heading-title { font-size: clamp(24px, 2.4vw, 30px); }
.bpi-expect__list .elementor-icon-list-items { display: block; counter-reset: bpi; }
.bpi-expect__list .elementor-icon-list-item { display: flex; gap: 16px; padding: 18px 0 !important; margin: 0 !important; border-top: 1px solid var(--sand-300); font-size: 16px; line-height: 1.55; color: var(--ink-700); counter-increment: bpi; }
.bpi-expect__list .elementor-icon-list-item:last-child { border-bottom: 1px solid var(--sand-300); }
.bpi-expect__list .elementor-icon-list-icon { display: none; }
.bpi-expect__list .elementor-icon-list-text::before { content: "0" counter(bpi); font-family: var(--font-mono); font-size: 12px; color: var(--gold-600); margin-right: 16px; }
.bpi-card { background: var(--paper-card); border: 1px solid var(--sand-300); border-radius: 4px; box-shadow: var(--shadow-md); position: relative; padding: clamp(28px, 3.4vw, 44px); }
.bpi-card.e-con { --gap: 8px; }
.bpi-card::before { content: ""; position: absolute; top: -1px; left: -1px; right: -1px; height: 3px; background: var(--gold-400); border-radius: 4px 4px 0 0; }
.bpi-card .bpi-h3 .elementor-heading-title { font-size: 26px; }
.bpi-card .bpi-form__lead p { font-size: 15px; color: var(--ink-600); margin-bottom: 14px; max-width: none; }
.bpi-form .elementor-field-label { font-family: var(--font-sans); font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-600); margin-bottom: 8px; }
.bpi-form .elementor-field-group { margin-bottom: 18px; }
.bpi-form .elementor-field-textual, .bpi-form select.elementor-field, .bpi-form textarea.elementor-field { font-family: var(--font-sans); font-size: 16px; color: var(--ink-900); background: #fff; border: 1px solid var(--sand-300); border-radius: 4px; padding: 13px 14px; transition: border-color 160ms var(--ease), box-shadow 160ms var(--ease); }
.bpi-form .elementor-field-textual:focus, .bpi-form select.elementor-field:focus, .bpi-form textarea.elementor-field:focus { outline: none; border-color: var(--gold-500); box-shadow: var(--ring); }
.bpi-form .elementor-field-textual::placeholder { color: var(--ink-400); }
.bpi-form .elementor-mark-required .elementor-field-label::after { color: var(--gold-600); }
.bpi-form .elementor-message { font-family: var(--font-sans); font-size: 14px; }
.bpi-form .elementor-message-success { color: var(--ink-800); background: var(--gold-100); border: 1px solid var(--gold-200); padding: 14px 16px; border-radius: 4px; }
.bpi-form .elementor-message-danger { color: var(--loss-600); }
.bpi-form__legal p { font-size: 12.5px; color: var(--ink-500); line-height: 1.5; margin-top: 10px; max-width: none; }

/* ---------- Banda CTA ---------- */
.bpi-band { background: var(--ink-900); text-align: center; position: relative; overflow: hidden; padding-top: clamp(72px, 10vw, 140px); padding-bottom: clamp(72px, 10vw, 140px); }
.bpi-band::before { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse 50% 60% at 50% 100%, rgba(198,162,90,.14), transparent 65%); pointer-events: none; }
.bpi-band__in.e-con { --gap: 0; align-items: center; position: relative; }
.bpi-band .bpi-rule { margin: 0 auto 30px; }
.bpi-band .bpi-h2 .elementor-heading-title { color: var(--sand-50); font-size: clamp(30px, 3.6vw, 48px); max-width: 20ch; margin: 0 auto; text-align: center; }
.bpi-band .bpi-lead p { color: rgba(245,238,225,.72); font-size: 17px; margin: 20px auto 36px; max-width: 52ch; text-align: center; }
.bpi-band .elementor-widget-text-editor { text-align: center; }

/* ---------- Footer ---------- */
.bpi-foot { background: var(--ink-950); color: rgba(245,238,225,.62); font-size: 13.5px; padding-top: clamp(48px, 6vw, 80px); padding-bottom: 32px; }
.bpi-foot__in.e-con { --gap: 0; }
.bpi-foot__top { padding-bottom: 36px; border-bottom: 1px solid rgba(245,238,225,.1); }
.bpi-foot__top.e-con { flex-direction: row; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; --gap: 32px; }
.bpi-foot__brand.e-con { --gap: 14px; width: auto; }
.bpi-foot__tag .elementor-heading-title { font-family: var(--font-sans); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: rgba(245,238,225,.5); font-weight: 500; }
.bpi-foot__nav { width: auto; }
.bpi-foot__nav .elementor-nav-menu--main .elementor-item { font-family: var(--font-sans); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: rgba(245,238,225,.72); padding: 4px 0; background: none; }
.bpi-foot__nav .elementor-nav-menu--main .elementor-item:hover { color: var(--gold-300); background: none; }
.bpi-foot__nav .elementor-nav-menu--main > ul > li:not(:last-child) { margin-right: 26px; }
.bpi-foot__nav .elementor-menu-toggle { display: none !important; }
.bpi-foot__nav .elementor-nav-menu--main { display: flex !important; }
.bpi-foot__legal, .bpi-foot__legal p { padding-top: 28px; max-width: 92ch; line-height: 1.6; color: rgba(245,238,225,.5); font-size: 12.5px; }
.bpi-foot__bottom { margin-top: 28px; }
.bpi-foot__bottom.e-con { flex-direction: row; justify-content: space-between; flex-wrap: wrap; --gap: 16px 28px; }
.bpi-foot__bottom .elementor-widget-text-editor, .bpi-foot__bottom p { font-size: 12px; color: rgba(245,238,225,.4); width: auto; }
body .bpi-foot__bottom a { color: rgba(245,238,225,.55); text-decoration: none; }
body .bpi-foot__bottom a:hover { color: var(--gold-300); }

/* ---------- Animaciones de Elementor (entrada) ---------- */
.elementor-invisible { visibility: hidden; }
.animated { animation-duration: 1.1s; animation-fill-mode: both; }
@media (prefers-reduced-motion: reduce) {
  .animated, .elementor-invisible { animation: none !important; visibility: visible !important; }
  .bpi-hero__media img, .bpi-hero__cue i, .bpi-hero__kicker, .bpi-hero__title .elementor-heading-title, .bpi-hero__rule, .bpi-hero__body.e-con, .bpi-hero--page .bpi-lead, .bpi-contact-data { animation: none !important; }
}

/* ---------- Asistente virtual ---------- */
.bpi-asst { position: fixed; right: 18px; bottom: 18px; z-index: 70; font-family: var(--font-sans); }
.bpi-asst__btn { display: inline-flex; align-items: center; gap: 10px; height: 46px; padding: 0 16px 0 12px; border-radius: 999px; background: rgba(26,23,18,.94); color: var(--sand-50); border: 1px solid rgba(198,162,90,.45); box-shadow: var(--shadow-dark); font-size: 11.5px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; backdrop-filter: blur(6px); cursor: pointer; transition: border-color 200ms var(--ease), transform 200ms var(--ease-out), opacity 200ms var(--ease); }
.bpi-asst__btn:hover { border-color: var(--gold-300); transform: translateY(-1px); }
.bpi-asst__btn .bpi-mark, .bpi-asst__head .bpi-mark { height: 18px; gap: 2px; }
.bpi-asst__btn .bpi-mark i, .bpi-asst__head .bpi-mark i { width: 2.5px; }
.bpi-asst__btn .bpi-mark i:nth-child(1), .bpi-asst__btn .bpi-mark i:nth-child(7), .bpi-asst__head .bpi-mark i:nth-child(1), .bpi-asst__head .bpi-mark i:nth-child(7) { height: 7px; }
.bpi-asst__btn .bpi-mark i:nth-child(2), .bpi-asst__btn .bpi-mark i:nth-child(6), .bpi-asst__head .bpi-mark i:nth-child(2), .bpi-asst__head .bpi-mark i:nth-child(6) { height: 10px; }
.bpi-asst__btn .bpi-mark i:nth-child(3), .bpi-asst__btn .bpi-mark i:nth-child(5), .bpi-asst__head .bpi-mark i:nth-child(3), .bpi-asst__head .bpi-mark i:nth-child(5) { height: 14px; }
.bpi-asst__btn .bpi-mark i:nth-child(4), .bpi-asst__head .bpi-mark i:nth-child(4) { height: 18px; width: 3px; }
.bpi-asst__btn .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--gold-400); animation: bpiPing 2400ms var(--ease) infinite; }
@keyframes bpiPing { 0% { box-shadow: 0 0 0 0 rgba(198,162,90,.55); } 70% { box-shadow: 0 0 0 9px rgba(198,162,90,0); } 100% { box-shadow: 0 0 0 0 rgba(198,162,90,0); } }
.bpi-asst.is-open .bpi-asst__btn { opacity: 0; pointer-events: none; transform: translateY(8px); }
.bpi-asst__panel { position: absolute; right: 0; bottom: 0; width: min(390px, calc(100vw - 36px)); height: min(600px, calc(100dvh - 36px)); background: var(--sand-50); color: var(--ink-800); border: 1px solid var(--sand-300); border-radius: 6px; box-shadow: var(--shadow-lg), var(--shadow-dark); display: flex; flex-direction: column; overflow: hidden; opacity: 0; visibility: hidden; transform: translateY(14px) scale(.98); transform-origin: bottom right; transition: opacity 240ms var(--ease), transform 320ms var(--ease-out), visibility 0s linear 320ms; }
.bpi-asst.is-open .bpi-asst__panel { opacity: 1; visibility: visible; transform: none; transition: opacity 240ms var(--ease), transform 320ms var(--ease-out); }
.bpi-asst__head { display: flex; align-items: center; gap: 12px; padding: 14px 14px 14px 16px; background: var(--ink-900); color: var(--sand-50); border-bottom: 1px solid rgba(198,162,90,.35); }
.bpi-asst__title { flex: 1; min-width: 0; }
.bpi-asst__title b { display: block; font-family: var(--font-serif); font-size: 16px; font-weight: 600; line-height: 1.2; }
.bpi-asst__title span { display: block; font-size: 11px; color: rgba(245,238,225,.6); margin-top: 3px; letter-spacing: .04em; }
.bpi-asst__iconbtn { width: 34px; height: 34px; border-radius: 3px; border: 1px solid rgba(245,238,225,.18); background: transparent; color: var(--sand-50); display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; cursor: pointer; padding: 0; transition: border-color 160ms var(--ease), background 160ms var(--ease); }
.bpi-asst__iconbtn:hover { border-color: var(--gold-300); background: rgba(245,238,225,.06); }
.bpi-asst__iconbtn svg { width: 16px; height: 16px; }
.bpi-asst__log { flex: 1; overflow-y: auto; padding: 18px 16px 8px; display: flex; flex-direction: column; gap: 12px; scroll-behavior: smooth; overscroll-behavior: contain; }
.bpi-msg { max-width: 86%; padding: 12px 14px; font-size: 14.5px; line-height: 1.55; border-radius: 4px; white-space: pre-wrap; word-wrap: break-word; animation: bpiRise 360ms var(--ease-out) both; }
.bpi-msg--a { align-self: flex-start; background: var(--paper-card); border: 1px solid var(--sand-300); color: var(--ink-800); border-left: 2px solid var(--gold-400); }
.bpi-msg--u { align-self: flex-end; background: var(--ink-900); color: var(--sand-50); }
.bpi-msg a { color: var(--gold-600); text-decoration: underline; text-underline-offset: 2px; }
.bpi-msg--u a { color: var(--gold-300); }
.bpi-typing { align-self: flex-start; display: inline-flex; gap: 5px; padding: 12px 14px; background: var(--paper-card); border: 1px solid var(--sand-300); border-left: 2px solid var(--gold-400); border-radius: 4px; }
.bpi-typing i { width: 6px; height: 6px; border-radius: 50%; background: var(--gold-500); animation: bpiBlink 1200ms var(--ease) infinite; }
.bpi-typing i:nth-child(2) { animation-delay: 160ms; }
.bpi-typing i:nth-child(3) { animation-delay: 320ms; }
@keyframes bpiBlink { 0%, 80%, 100% { opacity: .25; transform: translateY(0); } 40% { opacity: 1; transform: translateY(-3px); } }
.bpi-chips { display: flex; flex-wrap: wrap; gap: 8px; padding: 4px 16px 10px; }
.bpi-chip { background: transparent; border: 1px solid var(--sand-300); color: var(--ink-700); border-radius: 999px; padding: 8px 12px; font-size: 12.5px; line-height: 1.2; text-align: left; cursor: pointer; font-family: inherit; transition: border-color 160ms var(--ease), background 160ms var(--ease), color 160ms var(--ease); }
.bpi-chip:hover { border-color: var(--gold-500); background: var(--gold-100); color: var(--ink-900); }
.bpi-asst__cta { margin: 0 16px 8px; }
.bpi-asst__cta a { display: block; text-align: center; background: var(--ink-900); color: var(--sand-50); text-decoration: none; padding: 12px; font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; border-radius: 2px; transition: background 180ms var(--ease); }
.bpi-asst__cta a:hover { background: var(--ink-700); color: var(--sand-50); }
.bpi-asst__form { display: flex; align-items: flex-end; gap: 8px; padding: 10px 12px 10px 16px; border-top: 1px solid var(--sand-300); background: var(--paper-card); margin: 0; }
.bpi-asst__form textarea { flex: 1; resize: none; border: 0; background: transparent; font: 400 14.5px/1.45 var(--font-sans); color: var(--ink-900); padding: 8px 0; max-height: 120px; min-height: 36px; outline: none; box-shadow: none; }
.bpi-asst__form textarea::placeholder { color: var(--ink-400); }
.bpi-asst__send { width: 38px; height: 38px; border-radius: 3px; border: 0; background: var(--gold-400); color: var(--ink-900); display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; cursor: pointer; padding: 0; transition: background 160ms var(--ease), transform 120ms var(--ease); }
.bpi-asst__send:hover { background: var(--gold-300); }
.bpi-asst__send[disabled] { opacity: .42; cursor: not-allowed; }
.bpi-asst__send svg { width: 16px; height: 16px; }
.bpi-asst__foot { font-size: 10.5px; color: var(--ink-500); text-align: center; padding: 6px 14px 9px; background: var(--paper-card); letter-spacing: .02em; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .bpi-why__row.e-con, .bpi-phil__row.e-con, .bpi-avoid__row.e-con, .bpi-slong.e-con, .bpi-fees.e-con, .bpi-bio__row.e-con, .bpi-form__row.e-con { flex-direction: column; }
  .bpi-why__row.e-con > .e-con, .bpi-phil__row.e-con > .e-con, .bpi-avoid__row.e-con > .e-con, .bpi-slong.e-con > .e-con, .bpi-fees.e-con > .e-con, .bpi-bio__row.e-con > .e-con, .bpi-form__row.e-con > .e-con, .bpi-why__row.e-con > .elementor-widget, .bpi-phil__row.e-con > .elementor-widget, .bpi-bio__row.e-con > .elementor-widget { width: 100% !important; max-width: 100%; }
  .bpi-sticky { position: static; }
  .bpi-frame { max-width: 520px; }
  .bpi-step { width: calc(50% - 24px); }
  .bpi-plong__item { width: calc(50% - 1px); }
  .bpi-bio__portrait { max-width: 380px; }
}
@media (max-width: 1024px) {
  .bpi-hdr__cta { display: none; }
  .bpi-hdr__in > .e-con-inner { gap: 14px; }
}
@media (max-width: 900px) {
  .bpi-hero__body.e-con { flex-direction: column; align-items: flex-start; }
  .bpi-hero__cue { display: none; }
  .bpi-pillars__row.e-con { flex-direction: column; --gap: 28px; }
  .bpi-pillars__row.e-con > .e-con { width: 100% !important; }
  .bpi-seg.e-con, .bpi-seg--flip.e-con { flex-direction: column; align-items: stretch; --gap: 28px; }
  .bpi-seg.e-con > .e-con, .bpi-seg.e-con > .elementor-widget { width: 100% !important; max-width: 100%; }
  .bpi-seg__media img { aspect-ratio: 3 / 2; }
  .bpi-contact-data.e-con { flex-direction: column; --gap: 20px; width: 100%; }
  .bpi-contact-hero { min-height: 60svh; }
  .bpi-quote { min-height: 56svh; }
}
@media (max-width: 640px) {
  :root { --hdr-h: 72px; }
  .bpi-hdr { padding: 16px 0; }
  .bpi-hdr.is-scrolled { padding: 12px 0; }
  .bpi-wordmark b { font-size: 16px; }
  .bpi-hero { min-height: 92svh; }
  .bpi-hero__in { padding-top: calc(var(--hdr-h) + 24px); }
  .bpi-hero__title .elementor-heading-title { max-width: none; }
  .bpi-hero__actions.e-con { width: 100%; }
  .bpi-hero__actions .bpi-btn, .bpi-hero__actions .elementor-button-wrapper, .bpi-hero__actions .elementor-button { width: 100%; }
  .bpi-principle.e-con, .bpi-detail__item, .bpi-fact, .bpi-step, .bpi-plong__item { width: 100%; }
  .bpi-list .elementor-icon-list-items { grid-template-columns: 1fr; }
  .bpi-diff { padding: 22px 0; }
  .bpi-diff:hover { padding-left: 0; }
  .bpi-fees { padding: 40px 24px; }
  .bpi-foot__top.e-con, .bpi-foot__bottom.e-con { flex-direction: column; }
  .bpi-foot__nav .elementor-nav-menu--main > ul { flex-wrap: wrap; }
  .bpi-band .bpi-h2 .elementor-heading-title { font-size: 30px; }
  .bpi-form .elementor-field-group.elementor-col-50 { width: 100%; }
  .bpi-asst { right: 12px; bottom: 12px; }
  .bpi-asst__btn { height: 44px; padding: 0 14px 0 11px; font-size: 10.5px; }
  .bpi-asst.is-open { inset: 0; }
  .bpi-asst__panel { position: fixed; inset: 0; width: 100%; height: 100%; border-radius: 0; border: 0; transform: translateY(20px); padding-bottom: env(safe-area-inset-bottom); }
  .bpi-asst.is-open .bpi-asst__panel { transform: none; }
  .bpi-msg { max-width: 92%; }
}
@media (max-width: 380px) { .bpi-asst__btn .lbl { display: none; } }

/* ==========================================================================
   v1.1 — asistente (reset de los estilos globales de botón del kit), video de
   fondo, Lotties, diagramas animados y efectos de hover/scroll
   ========================================================================== */

/* ---------- Asistente: neutralizar los estilos globales de <button> del kit ---------- */
body .bpi-asst button, body .bpi-asst button:hover, body .bpi-asst button:focus { box-shadow: none; text-transform: none; letter-spacing: 0; line-height: 1.2; font-family: var(--font-sans); border-radius: 3px; width: auto; }
body .bpi-asst .bpi-asst__btn { padding: 0 16px 0 12px; height: 46px; border-radius: 999px; background: rgba(26,23,18,.94); color: var(--sand-50); border: 1px solid rgba(198,162,90,.45); text-transform: uppercase; letter-spacing: .12em; font-size: 11.5px; font-weight: 600; }
body .bpi-asst .bpi-asst__btn:hover { background: rgba(26,23,18,.98); color: var(--sand-50); border-color: var(--gold-300); }
body .bpi-asst .bpi-asst__iconbtn, body .bpi-asst .bpi-asst__iconbtn:hover { width: 34px; height: 34px; min-width: 34px; padding: 0; background: transparent; color: var(--sand-50); border: 1px solid rgba(245,238,225,.18); }
body .bpi-asst .bpi-asst__iconbtn:hover { border-color: var(--gold-300); background: rgba(245,238,225,.06); }
body .bpi-asst .bpi-chip, body .bpi-asst .bpi-chip:hover { padding: 9px 13px; font-size: 12.5px; font-weight: 500; background: transparent; color: var(--ink-700); border: 1px solid var(--sand-300); border-radius: 999px; text-transform: none; letter-spacing: 0; text-align: left; }
body .bpi-asst .bpi-chip:hover { border-color: var(--gold-500); background: var(--gold-100); color: var(--ink-900); }
body .bpi-asst .bpi-asst__send, body .bpi-asst .bpi-asst__send:hover { width: 38px; height: 38px; min-width: 38px; padding: 0; background: var(--gold-400); color: var(--ink-900); border: 0; }
body .bpi-asst .bpi-asst__send:hover { background: var(--gold-300); }
body .bpi-asst .bpi-asst__form textarea, body .bpi-asst .bpi-asst__form textarea:focus { border: 0; background: transparent; box-shadow: none; padding: 8px 0; font-size: 14.5px; border-radius: 0; color: var(--ink-900); outline: none; }
body .bpi-asst .bpi-asst__cta a { font-family: var(--font-sans); }
.bpi-asst__head { flex-wrap: nowrap; padding: 12px 12px 12px 14px; gap: 10px; }
.bpi-asst__title b { font-size: 15px; }
.bpi-asst__title span { font-size: 10.5px; }
.bpi-chips { gap: 7px; padding: 4px 14px 10px; }
/* el panel nunca se sale de la pantalla */
.bpi-asst__panel { width: min(384px, calc(100vw - 28px)); height: min(600px, calc(100dvh - 96px)); max-height: calc(100dvh - 28px); }
@media (max-width: 1024px) and (min-width: 641px) { .bpi-asst__panel { width: min(360px, calc(100vw - 24px)); height: min(560px, calc(100dvh - 80px)); } }

/* ---------- Video de fondo (Elementor) en hero / cita ---------- */
.bpi-hero > .elementor-background-video-container, .bpi-quote > .elementor-background-video-container, .bpi-contact-hero > .elementor-background-video-container { z-index: 1; opacity: 1; }
.bpi-hero.bpi-has-video::before, .bpi-hero.bpi-has-video::after, .bpi-quote.bpi-has-video::after, .bpi-contact-hero.bpi-has-video::before { z-index: 2; }
.bpi-hero.bpi-has-video .bpi-hero__in, .bpi-quote.bpi-has-video .bpi-quote__in, .bpi-contact-hero.bpi-has-video .bpi-hero__in { z-index: 3; }
.bpi-hero .elementor-background-video-container video, .bpi-quote .elementor-background-video-container video { filter: saturate(.86) contrast(1.03); }
.bpi-hero.bpi-has-video .bpi-hero__media { z-index: 0; }
.bpi-hero.bpi-has-video .bpi-hero__media img { animation: none; transform: none; }

/* ---------- Video como "imagen viva" en las tarjetas de segmento ---------- */
.bpi-seg__media .elementor-widget-video { width: 100%; }
.bpi-seg__media .elementor-wrapper { padding: 0 !important; height: auto !important; aspect-ratio: 4 / 3; }
.bpi-seg__media .elementor-wrapper video, .bpi-seg__media video { position: relative !important; width: 100%; height: 100% !important; object-fit: cover; display: block; }
@media (max-width: 900px) { .bpi-seg__media .elementor-wrapper { aspect-ratio: 3 / 2; } }

/* ---------- Lotties (íconos animados) ---------- */
.bpi-lottie .e-lottie__container { width: 72px; margin: 0; }
.bpi-lottie .e-lottie__animation { width: 100%; }
.bpi-lottie svg { display: block; }
.bpi-lottie--lg .e-lottie__container { width: 104px; }
.bpi-lottie--sm .e-lottie__container { width: 48px; }
.bpi-pillar .bpi-lottie { margin-bottom: 2px; }
.bpi-step .bpi-lottie { margin-bottom: 4px; }
.bpi-diff .bpi-lottie { flex: 0 0 48px; }

/* ---------- Diagramas animados (SVG inline en widgets HTML) ---------- */
.bpi-diagram { width: 100%; }
.bpi-diagram svg { width: 100%; height: auto; display: block; overflow: visible; font-family: var(--font-sans); }
.bpi-diagram .d-kicker { font-size: 11px; letter-spacing: .16em; text-transform: uppercase; font-weight: 600; fill: var(--gold-600); }
.bpi-dark .bpi-diagram .d-kicker { fill: var(--gold-300); }
.bpi-diagram .d-label { font-size: 14.5px; font-weight: 500; fill: var(--ink-900); }
.bpi-diagram .d-serif { font-family: var(--font-serif); }
.bpi-diagram .d-sub { font-size: 12.5px; fill: var(--ink-500); }
.bpi-dark .bpi-diagram .d-label { fill: var(--sand-50); }
.bpi-dark .bpi-diagram .d-sub { fill: rgba(245,238,225,.62); }
.bpi-diagram .d-node { fill: var(--paper-card); stroke: var(--sand-300); stroke-width: 1; }
.bpi-diagram .d-node--gold { fill: var(--gold-100); stroke: var(--gold-400); }
.bpi-diagram .d-node--ink { fill: var(--ink-900); stroke: var(--ink-900); }
.bpi-diagram .d-on-ink { fill: var(--sand-50); }
.bpi-diagram .d-line { fill: none; stroke: var(--gold-500); stroke-width: 1.5; stroke-linecap: round; }
.bpi-diagram .d-line--muted { stroke: var(--ink-300); stroke-dasharray: 4 5; }
.bpi-dark .bpi-diagram .d-line--muted { stroke: rgba(245,238,225,.3); }
.bpi-diagram .d-fill-gold { fill: var(--gold-400); }
.bpi-diagram .d-fill-gold2 { fill: var(--gold-300); }
.bpi-diagram .d-fill-gold3 { fill: var(--gold-200); }
.bpi-diagram .d-fill-ink { fill: var(--ink-900); }
.bpi-diagram .d-fill-sand { fill: var(--sand-200); }
.bpi-diagram .d-cross { stroke: var(--loss-600); stroke-width: 2; stroke-linecap: round; }
.bpi-diagram .d-draw { stroke-dasharray: 900; stroke-dashoffset: 900; }
.bpi-diagram.is-in .d-draw { animation: bpiDash 1500ms var(--ease-out) forwards; animation-delay: var(--d, 0ms); }
.bpi-diagram .d-pop { opacity: 0; }
.bpi-diagram.is-in .d-pop { animation: bpiPopIn 700ms var(--ease-out) forwards; animation-delay: var(--d, 0ms); }
.bpi-diagram .d-rise { transform: scaleY(0); transform-box: fill-box; transform-origin: bottom; }
.bpi-diagram.is-in .d-rise { animation: bpiRiseY 900ms var(--ease-out) forwards; animation-delay: var(--d, 0ms); }
.bpi-diagram .d-flow { stroke-dasharray: 6 8; animation: bpiFlow 1400ms linear infinite; }
@keyframes bpiDash { to { stroke-dashoffset: 0; } }
@keyframes bpiPopIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes bpiRiseY { to { transform: scaleY(1); } }
@keyframes bpiFlow { to { stroke-dashoffset: -28; } }
@media (prefers-reduced-motion: reduce) { .bpi-diagram .d-draw, .bpi-diagram .d-pop, .bpi-diagram .d-rise, .bpi-diagram .d-flow { animation: none !important; opacity: 1; transform: none; stroke-dashoffset: 0; } }
.bpi-diagram__wrap { background: var(--paper-card); border: 1px solid var(--sand-300); border-radius: 4px; padding: clamp(20px, 3vw, 40px); box-shadow: var(--shadow-md); }
.bpi-dark .bpi-diagram__wrap { background: rgba(245,238,225,.04); border-color: rgba(245,238,225,.14); box-shadow: none; }
.bpi-diagram__note { font-size: 12.5px; color: var(--ink-500); margin: 14px 0 0; line-height: 1.5; }
.bpi-dark .bpi-diagram__note { color: rgba(245,238,225,.55); }
.bpi-modelos { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(20px, 3vw, 40px); }
@media (max-width: 900px) { .bpi-modelos { grid-template-columns: 1fr; } }

/* ---------- Proceso: línea que se dibuja al entrar ---------- */
.bpi-process::after { content: ""; position: absolute; top: 8px; left: 0; height: 1px; width: 0; background: var(--gold-400); transition: width 1800ms var(--ease-out); z-index: 1; }
.bpi-process.is-in::after { width: 100%; }
@media (max-width: 640px) { .bpi-process::after { display: none; } }

/* ---------- Hover y remates ---------- */
.bpi-plong__item, .bpi-detail__item, .bpi-step, .bpi-card { transition: transform 320ms var(--ease-out), box-shadow 320ms var(--ease-out), background 240ms var(--ease); }
.bpi-plong__item:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); z-index: 1; }
.bpi-bignum .elementor-heading-title { transition: color 240ms var(--ease); }
.bpi-step:hover .bpi-bignum .elementor-heading-title { color: var(--gold-400); }
.bpi-kicker .elementor-heading-title::before { content: ""; display: inline-block; width: 0; height: 1px; background: var(--gold-500); vertical-align: middle; margin-right: 0; transition: width 700ms var(--ease-out) 200ms, margin-right 700ms var(--ease-out) 200ms; }
.bpi-kicker.is-in .elementor-heading-title::before, .is-in .bpi-kicker .elementor-heading-title::before { width: 26px; margin-right: 10px; }
.bpi-hero .bpi-kicker .elementor-heading-title::before, .bpi-quote .bpi-kicker .elementor-heading-title::before { display: none; }
.bpi-hero__title .elementor-heading-title { text-shadow: 0 2px 30px rgba(0,0,0,.28); }

/* ---------- Iconografía animada propia (SVG en línea) ---------- */
.bpi-ico { width: 56px; height: 56px; }
.bpi-ico svg { width: 100%; height: 100%; display: block; overflow: visible; }
.bpi-ico [class*="i-draw"] { stroke: var(--ink-700); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; fill: none; }
.bpi-ico .i-accent { stroke: var(--gold-500); }
.bpi-ico .i-dot { stroke: var(--ink-700); stroke-width: 1.6; fill: var(--paper-card); }
.bpi-ico .i-fill { fill: var(--ink-700); stroke: none; }
.bpi-ico .i-accent-f { fill: var(--gold-500); }
.bpi-ico--dark [class*="i-draw"] { stroke: var(--sand-50); }
.bpi-ico--dark .i-accent { stroke: var(--gold-400); }
.bpi-ico--dark .i-dot { stroke: var(--sand-50); fill: var(--ink-900); }
.bpi-ico--dark .i-fill { fill: var(--sand-50); }
.bpi-ico--dark .i-accent-f { fill: var(--gold-400); }
.bpi-ico--lg { width: 68px; height: 68px; }
.bpi-ico--sm { width: 40px; height: 40px; }

/* trazo que se dibuja al entrar en pantalla */
.bpi-ico [class*="i-draw"] { stroke-dasharray: 260; stroke-dashoffset: 260; }
.bpi-ico.is-in [class*="i-draw"] { animation: bpiIcoDraw 900ms var(--ease-out) forwards; animation-delay: calc(var(--d, 0ms) + var(--i, 0) * 130ms); }
.bpi-ico .i-pop { opacity: 0; }
.bpi-ico.is-in .i-pop { animation: bpiIcoPop 500ms var(--ease-out) forwards; animation-delay: calc(var(--d, 0ms) + var(--i, 0) * 130ms + 250ms); }
@keyframes bpiIcoDraw { to { stroke-dashoffset: 0; } }
@keyframes bpiIcoPop { from { opacity: 0; transform: scale(.5); } to { opacity: 1; transform: none; } }
.bpi-ico .i-pop { transform-box: fill-box; transform-origin: center; }

/* micro-animaciones en reposo y al pasar el cursor */
.bpi-ico .i-spin { transform-box: fill-box; transform-origin: center; }
.bpi-ico.is-in .i-spin { animation: bpiIcoDraw 900ms var(--ease-out) forwards, bpiIcoSpin 14s linear 1.2s infinite; }
.bpi-ico.is-in .i-spin--rev { animation: bpiIcoDraw 900ms var(--ease-out) forwards, bpiIcoSpin 10s linear 1.2s infinite reverse; }
.bpi-ico .i-sway { transform-box: fill-box; transform-origin: top center; }
.bpi-ico.is-in .i-sway { animation: bpiIcoDraw 900ms var(--ease-out) forwards, bpiIcoSway 5.5s var(--ease) 1.2s infinite; }
.bpi-ico.is-in .i-sway--b { animation: bpiIcoDraw 900ms var(--ease-out) forwards, bpiIcoSway 5.5s var(--ease) 1.2s infinite reverse; }
.bpi-ico .i-blink { opacity: .85; }
.bpi-ico.is-in .i-blink { animation: bpiIcoDraw 900ms var(--ease-out) forwards, bpiIcoBlink 4s var(--ease) 1.4s infinite; }
.bpi-ico .i-sand { transform-box: fill-box; transform-origin: bottom center; }
.bpi-ico.is-in .i-sand { animation: bpiIcoPop 500ms var(--ease-out) forwards, bpiIcoSand 6s var(--ease) 1s infinite; }
@keyframes bpiIcoSpin { to { transform: rotate(360deg); } }
@keyframes bpiIcoSway { 0%,100% { transform: rotate(-3.5deg); } 50% { transform: rotate(3.5deg); } }
@keyframes bpiIcoBlink { 0%,100% { opacity: .9; } 45% { opacity: .35; } }
@keyframes bpiIcoSand { 0% { transform: scaleY(.35); } 70%,100% { transform: scaleY(1); } }
/* al pasar el cursor por la tarjeta, el ícono redibuja el acento */
.bpi-pillar:hover .bpi-ico .i-accent, .bpi-step:hover .bpi-ico .i-accent, .bpi-diff:hover .bpi-ico .i-accent, .bpi-seg:hover .bpi-ico .i-accent { animation: bpiIcoRedraw 900ms var(--ease-out); }
@keyframes bpiIcoRedraw { from { stroke-dashoffset: 260; } to { stroke-dashoffset: 0; } }
.bpi-ico .i-pulse { stroke-dasharray: 60; }
.bpi-ico.is-in .i-pulse { animation: bpiIcoPulseDraw 900ms var(--ease-out) forwards; animation-delay: calc(var(--d, 0ms) + var(--i, 0) * 130ms); }
@keyframes bpiIcoPulseDraw { from { stroke-dashoffset: 60; } to { stroke-dashoffset: 0; } }
.bpi-ico .i-arrow, .bpi-ico .i-sign { stroke-dasharray: 90; stroke-dashoffset: 90; }
.bpi-ico.is-in .i-arrow, .bpi-ico.is-in .i-sign { animation: bpiIcoArrow 1000ms var(--ease-out) forwards; animation-delay: calc(var(--d, 0ms) + var(--i, 0) * 130ms + 200ms); }
@keyframes bpiIcoArrow { to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) {
  .bpi-ico *, .bpi-ico.is-in * { animation: none !important; stroke-dashoffset: 0 !important; opacity: 1 !important; transform: none !important; }
}

/* colocación de los íconos dentro de cada bloque */
.bpi-pillar .bpi-ico { margin-bottom: 4px; }
.bpi-step .bpi-ico { margin-bottom: 2px; }
.bpi-diff .bpi-ico { flex: 0 0 40px; margin-top: 2px; }
.bpi-diff.e-con { align-items: flex-start; }
.bpi-seg__text .bpi-ico { margin-bottom: -4px; }

/* ---------- Flechas de los enlaces: máscara SVG (las fuentes cargadas no traen → ni ↗) ---------- */
.bpi-link .elementor-button .elementor-button-text::after,
.bpi-link--ext .elementor-button .elementor-button-text::after {
  content: ""; display: inline-block; vertical-align: middle; margin-left: 10px;
  width: 16px; height: 10px; background: currentColor;
  -webkit-mask: var(--bpi-arrow) no-repeat center / contain; mask: var(--bpi-arrow) no-repeat center / contain;
  transition: transform 220ms var(--ease-out);
}
:root {
  --bpi-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 12'%3E%3Cpath d='M0 6h17M12.5 1.5 17 6l-4.5 4.5' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --bpi-arrow-ext: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M3 11 11 3M4.5 3H11v6.5' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.bpi-link--ext .elementor-button .elementor-button-text::after { width: 12px; height: 12px; -webkit-mask-image: var(--bpi-arrow-ext); mask-image: var(--bpi-arrow-ext); }
.bpi-link .elementor-button:hover .elementor-button-text::after { transform: translateX(5px); }

/* ---------- Asistente en móvil: hoja anclada al borde inferior ---------- */
@media (max-width: 640px) {
  .bpi-asst.is-open { position: fixed; inset: 0; right: 0; bottom: 0; }
  .bpi-asst__panel {
    position: fixed; left: 0; right: 0; bottom: 0; top: auto;
    width: 100%; max-width: none; height: min(88dvh, 640px); max-height: 88dvh;
    border-radius: 8px 8px 0 0; border: 0; border-top: 1px solid var(--gold-400);
    transform: none; padding-bottom: env(safe-area-inset-bottom);
  }
  .bpi-asst.is-open .bpi-asst__panel { transform: none; }
  .bpi-asst__head { border-radius: 8px 8px 0 0; }
  .bpi-chips { padding: 4px 14px 12px; }
  .bpi-msg { max-width: 90%; }
}

/* Si el navegador bloquea la reproducción automática, el video no debe tapar la foto de respaldo */
.bpi-hero video, .bpi-quote video, .bpi-contact-hero video { background: transparent; }

/* ==========================================================================
   v1.2 — megamenú corporativo, cajón móvil, WhatsApp, entradas escalonadas,
   asistente redimensionable y página de términos.
   ========================================================================== */

:root { --bpi-hdr-b: 84px; }

/* ---------- Entradas: sistema propio (reemplaza a las de Elementor) ---------- */
.bpi-rv { opacity: 0; transform: translate3d(0, 22px, 0); will-change: opacity, transform;
  transition: opacity 720ms var(--ease-out) var(--rv-d, 0ms), transform 820ms var(--ease-out) var(--rv-d, 0ms); }
.bpi-rv.is-rv { opacity: 1; transform: none; }
.bpi-rv--m { transform: translate3d(0, 26px, 0) scale(.985); clip-path: inset(6% 0 0 0); transition: opacity 820ms var(--ease-out) var(--rv-d, 0ms), transform 1000ms var(--ease-out) var(--rv-d, 0ms), clip-path 1000ms var(--ease-out) var(--rv-d, 0ms); }
.bpi-rv--m.is-rv { clip-path: inset(0 0 0 0); }
.bpi-hero .bpi-rv { transition-duration: 900ms, 1100ms; }
html.bpi-no-motion .bpi-rv, html.bpi-no-motion .bpi-rv--m { opacity: 1; transform: none; clip-path: none; transition: none; }
@media (prefers-reduced-motion: reduce) {
  .bpi-rv, .bpi-rv--m { opacity: 1 !important; transform: none !important; clip-path: none !important; transition: none !important; }
}
/* Elementor ya no anima nada: si algo llegara marcado, no debe quedar invisible */
.elementor-invisible { visibility: visible !important; }
/* Al imprimir, nada puede estar en opacidad 0 */
@media print { .bpi-rv, .bpi-rv--m { opacity: 1 !important; transform: none !important; clip-path: none !important; } .bpi-asst, .bpi-wafab, .bpi-mm__panel, .bpi-drawer, .bpi-progress { display: none !important; } }

/* ---------- Header: espacio para el megamenú ---------- */
.bpi-hdr.has-mm { background: rgba(20,17,13,.985); border-color: rgba(245,238,225,.14); backdrop-filter: blur(8px); }
.bpi-hdr .elementor-widget-shortcode, .bpi-hdr .bpi-mmW { position: static; }
.bpi-mmW { flex: 1 1 auto; min-width: 0; }
.bpi-mmW .elementor-shortcode { display: flex; align-items: center; justify-content: flex-end; gap: 0; }

/* ---------- Megamenú: barra ---------- */
.bpi-mm { display: flex; justify-content: flex-end; }
.bpi-mm__bar { display: flex; align-items: center; gap: clamp(6px, 1.4vw, 22px); list-style: none; margin: 0; padding: 0; }
.bpi-mm__item { position: static; }
body .bpi-mm__top {
  display: inline-flex; align-items: center; gap: 7px; position: relative;
  background: none; border: 0; box-shadow: none; padding: 10px 10px 9px; margin: 0; cursor: pointer;
  font-family: var(--font-sans); font-size: 12px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase;
  color: rgba(245,238,225,.74); text-decoration: none; line-height: 1.2; width: auto; border-radius: 0;
  transition: color 180ms var(--ease);
}
body .bpi-mm__top::after { content: ""; position: absolute; left: 10px; right: 10px; bottom: 2px; height: 1px; background: var(--gold-400); transform: scaleX(0); transform-origin: left; transition: transform 320ms var(--ease-out); }
body .bpi-mm__top:hover, body .bpi-mm__top:focus-visible { color: var(--gold-300); background: none; }
body .bpi-mm__top:hover::after, .bpi-mm__item.is-open > .bpi-mm__top::after, body .bpi-mm__top.is-current::after { transform: scaleX(1); }
body .bpi-mm__top.is-current { color: var(--sand-50); }
.bpi-mm__caret { width: 7px; height: 7px; border-right: 1.4px solid currentColor; border-bottom: 1.4px solid currentColor; transform: rotate(45deg) translate(-2px, -2px); opacity: .55; transition: transform 300ms var(--ease-out), opacity 200ms var(--ease); }
.bpi-mm__item.is-open .bpi-mm__caret { transform: rotate(-135deg) translate(-2px, -2px); opacity: 1; }

/* ---------- Megamenú: panel ---------- */
.bpi-mm__panel {
  position: fixed; left: 0; right: 0; top: var(--bpi-hdr-b);
  background: linear-gradient(180deg, #16130F 0%, var(--ink-950) 100%);
  border-top: 1px solid rgba(198,162,90,.28); border-bottom: 1px solid rgba(245,238,225,.08);
  box-shadow: 0 26px 60px rgba(6,5,3,.5);
  opacity: 0; transform: translateY(-10px); pointer-events: none;
  transition: opacity 240ms var(--ease), transform 340ms var(--ease-out);
  z-index: 4;
}
.bpi-mm__item.is-shown .bpi-mm__panel { opacity: 1; transform: none; pointer-events: auto; }
.bpi-mm__panel-in {
  max-width: 1280px; margin: 0 auto; padding: clamp(28px, 3.4vw, 46px) var(--pad) clamp(30px, 3.4vw, 48px);
  display: grid; grid-template-columns: minmax(230px, 1fr) minmax(0, 1.5fr) minmax(230px, .95fr);
  gap: clamp(24px, 3vw, 56px); align-items: start;
}
.bpi-mm__item.is-shown .bpi-mm__panel-in > * { animation: bpiMmIn 520ms var(--ease-out) both; }
.bpi-mm__item.is-shown .bpi-mm__panel-in > *:nth-child(2) { animation-delay: 70ms; }
.bpi-mm__item.is-shown .bpi-mm__panel-in > *:nth-child(3) { animation-delay: 140ms; }
@keyframes bpiMmIn { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }

.bpi-mm__intro { border-right: 1px solid rgba(245,238,225,.1); padding-right: clamp(16px, 2vw, 34px); }
.bpi-mm__pkicker { font-family: var(--font-sans); font-size: 10.5px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--gold-400); margin: 0 0 12px; }
.bpi-mm__title { font-family: var(--font-serif); font-size: clamp(21px, 1.7vw, 26px); font-weight: 600; letter-spacing: -.02em; line-height: 1.16; color: var(--sand-50); margin: 0 0 12px; text-wrap: balance; }
.bpi-mm__lead { font-size: 13.5px; line-height: 1.6; color: rgba(245,238,225,.62); margin: 0 0 18px; max-width: 34ch; }
body .bpi-mm__more { display: inline-flex; align-items: center; gap: 9px; font-size: 11px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--gold-300); text-decoration: none; }
body .bpi-mm__more::after { content: ""; width: 15px; height: 9px; background: currentColor; -webkit-mask: var(--bpi-arrow) no-repeat center / contain; mask: var(--bpi-arrow) no-repeat center / contain; transition: transform 260ms var(--ease-out); }
body .bpi-mm__more:hover { color: var(--gold-200); }
body .bpi-mm__more:hover::after { transform: translateX(5px); }

.bpi-mm__cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: clamp(18px, 2.2vw, 40px); }
.bpi-mm__coltitle { font-size: 10.5px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: rgba(245,238,225,.42); margin: 0 0 14px; padding-bottom: 10px; border-bottom: 1px solid rgba(245,238,225,.1); }
.bpi-mm__links { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
body .bpi-mm__links a { display: block; padding: 9px 12px 9px 13px; margin-left: -13px; border-radius: 3px; text-decoration: none; border-left: 1px solid transparent; transition: background 200ms var(--ease), border-color 200ms var(--ease); }
body .bpi-mm__links a:hover, body .bpi-mm__links a:focus-visible { background: rgba(245,238,225,.045); border-left-color: var(--gold-400); }
.bpi-mm__links b { display: block; font-family: var(--font-sans); font-size: 13.5px; font-weight: 500; color: var(--sand-50); line-height: 1.35; letter-spacing: .005em; }
.bpi-mm__links span { display: block; font-size: 12px; line-height: 1.45; color: rgba(245,238,225,.5); margin-top: 3px; }
body .bpi-mm__links a:hover b { color: var(--gold-300); }

.bpi-mm__card { background: rgba(245,238,225,.045); border: 1px solid rgba(198,162,90,.24); border-radius: 4px; padding: clamp(18px, 1.8vw, 26px); }
.bpi-mm__cardkicker { font-size: 10px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--gold-400); margin: 0 0 10px; }
.bpi-mm__cardtitle { font-family: var(--font-serif); font-size: 18px; font-weight: 600; line-height: 1.24; color: var(--sand-50); margin: 0 0 9px; }
.bpi-mm__cardbody { font-size: 12.5px; line-height: 1.55; color: rgba(245,238,225,.58); margin: 0 0 18px; }
body .bpi-mm__cardcta { display: inline-block; background: var(--gold-400); color: var(--ink-900); text-decoration: none; padding: 11px 20px; border-radius: 2px; font-size: 10.5px; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; transition: background 180ms var(--ease); }
body .bpi-mm__cardcta:hover { background: var(--gold-300); color: var(--ink-900); }

.bpi-mm__scrim { position: fixed; inset: var(--bpi-hdr-b) 0 0 0; background: rgba(10,8,6,.5); backdrop-filter: blur(2px); opacity: 0; transition: opacity 260ms var(--ease); z-index: 72; }
.bpi-mm__scrim.is-on { opacity: 1; }

/* ---------- Botón hamburguesa ---------- */
.bpi-burger { display: none; width: 46px; height: 44px; flex-direction: column; align-items: center; justify-content: center; gap: 5px; background: transparent; border: 1px solid rgba(245,238,225,.24); border-radius: 2px; cursor: pointer; padding: 0; margin-left: 6px; transition: border-color 200ms var(--ease); }
body .bpi-burger:hover, body .bpi-burger.is-on { border-color: var(--gold-300); background: transparent; }
.bpi-burger i { display: block; width: 19px; height: 1.5px; background: var(--sand-50); transition: transform 300ms var(--ease-out), opacity 180ms var(--ease); }
.bpi-burger.is-on i:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.bpi-burger.is-on i:nth-child(2) { opacity: 0; }
.bpi-burger.is-on i:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

/* ---------- Cajón móvil ---------- */
.bpi-drawer { position: fixed; inset: var(--bpi-hdr-b) 0 0 0; background: var(--ink-950); z-index: 75; overflow-y: auto; overscroll-behavior: contain; opacity: 0; transform: translateY(-8px); transition: opacity 260ms var(--ease), transform 320ms var(--ease-out); }
.bpi-drawer.is-open { opacity: 1; transform: none; }
body.bpi-drawer-open { overflow: hidden; }
.bpi-drawer__in { display: flex; flex-direction: column; min-height: 100%; padding: 12px var(--pad) calc(28px + env(safe-area-inset-bottom)); }
.bpi-dw__list { list-style: none; margin: 0; padding: 0; flex: 1; }
.bpi-dw__item { border-bottom: 1px solid rgba(245,238,225,.1); }
body .bpi-dw__top { display: flex; align-items: center; justify-content: space-between; width: 100%; gap: 14px; background: none; border: 0; box-shadow: none; padding: 19px 0; margin: 0; text-align: left; cursor: pointer; border-radius: 0;
  font-family: var(--font-serif); font-size: clamp(24px, 5.6vw, 32px); font-weight: 600; letter-spacing: -.02em; text-transform: none; color: var(--sand-50); text-decoration: none; line-height: 1.15; }
body .bpi-dw__top.is-current { color: var(--gold-300); }
.bpi-dw__top i { flex: 0 0 auto; width: 10px; height: 10px; border-right: 1.6px solid var(--gold-400); border-bottom: 1.6px solid var(--gold-400); transform: rotate(45deg) translate(-3px, -3px); transition: transform 300ms var(--ease-out); }
.bpi-dw__item.is-open .bpi-dw__top i { transform: rotate(-135deg) translate(-3px, -3px); }
.bpi-dw__sub { max-height: 0; overflow: hidden; transition: max-height 300ms var(--ease-out); }
.bpi-dw__item.is-open .bpi-dw__sub { max-height: 640px; }
.bpi-dw__sub ul { list-style: none; margin: 0; padding: 0 0 18px; }
body .bpi-dw__sub a { display: block; padding: 11px 0 11px 16px; border-left: 1px solid rgba(198,162,90,.3); font-size: 15px; color: rgba(245,238,225,.72); text-decoration: none; }
body .bpi-dw__sub a:hover { color: var(--gold-300); }
body .bpi-dw__sub .bpi-dw__all { font-size: 10.5px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--gold-400); border-left-color: var(--gold-400); }
.bpi-drawer__foot { display: flex; flex-direction: column; gap: 10px; padding-top: 26px; }
body .bpi-drawer__cta { display: block; text-align: center; background: var(--gold-400); color: var(--ink-900); text-decoration: none; padding: 16px; border-radius: 2px; font-size: 11.5px; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
body .bpi-drawer__wa { display: flex; align-items: center; justify-content: center; gap: 10px; background: transparent; border: 1px solid rgba(245,238,225,.26); color: var(--sand-50); text-decoration: none; padding: 15px; border-radius: 2px; font-size: 11.5px; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
body .bpi-drawer__wa:hover { border-color: #4FCE5D; color: #7FE08A; }
.bpi-drawer__wa .bpi-wa__ico { width: 18px; height: 18px; }

/* ---------- Puntos de quiebre de la navegación ---------- */
@media (max-width: 1024px) {
  .bpi-mm { display: none; }
  .bpi-burger { display: inline-flex; }
  .bpi-hdr__cta { display: none !important; }
}
@media (min-width: 1025px) {
  .bpi-burger, .bpi-drawer { display: none !important; }
}

/* ---------- WhatsApp ---------- */
.bpi-wa__ico { width: 20px; height: 20px; flex: 0 0 auto; }
body a.bpi-wa { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; border-radius: 2px; transition: background 200ms var(--ease), border-color 200ms var(--ease), color 200ms var(--ease), transform 140ms var(--ease); }
body a.bpi-wa--btn { background: #1F8F3B; color: #fff; padding: 15px 24px; font-size: 11.5px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
body a.bpi-wa--btn:hover { background: #157A30; color: #fff; transform: translateY(-1px); }
body a.bpi-wa--tile { flex-direction: column; align-items: flex-start; gap: 8px; background: var(--paper-card); border: 1px solid var(--sand-300); padding: 20px 22px; width: 100%; color: var(--ink-800); }
body a.bpi-wa--tile:hover { border-color: #1F8F3B; }
body a.bpi-wa--tile .bpi-wa__ico { color: #1F8F3B; width: 24px; height: 24px; }
body a.bpi-wa--tile .bpi-wa__lbl { font-family: var(--font-serif); font-size: 18px; font-weight: 600; color: var(--ink-900); }
.bpi-wa__note { display: block; font-size: 13px; line-height: 1.5; color: var(--ink-500); }
body a.bpi-wa--inline { color: #1F8F3B; font-size: 11.5px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
body a.bpi-wa--inline:hover { color: #157A30; }
.bpi-dark a.bpi-wa--inline, .bpi-hero a.bpi-wa--inline { color: #7FE08A; }
.bpi-dark a.bpi-wa--tile { background: rgba(245,238,225,.05); border-color: rgba(245,238,225,.16); color: rgba(245,238,225,.72); }
.bpi-dark a.bpi-wa--tile .bpi-wa__lbl { color: var(--sand-50); }
.bpi-dark a.bpi-wa--tile .bpi-wa__ico { color: #7FE08A; }
.bpi-dark .bpi-wa__note { color: rgba(245,238,225,.6); }

/* Burbuja flotante: se apila sobre el asistente, nunca encima */
.bpi-wafab { position: fixed; right: 18px; bottom: 76px; z-index: 69; display: inline-flex; align-items: center; gap: 0; height: 46px; width: 46px; padding: 0; border-radius: 999px;
  background: #1F8F3B; color: #fff; border: 1px solid rgba(255,255,255,.22); box-shadow: var(--shadow-dark); text-decoration: none;
  justify-content: center; overflow: hidden; transition: width 320ms var(--ease-out), gap 320ms var(--ease-out), background 200ms var(--ease), transform 200ms var(--ease-out), opacity 200ms var(--ease); }
.bpi-wafab .bpi-wa__ico { width: 22px; height: 22px; }
.bpi-wafab__lbl { font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; max-width: 0; opacity: 0; transition: max-width 320ms var(--ease-out), opacity 200ms var(--ease); }
.bpi-wafab:hover, .bpi-wafab:focus-visible { width: 172px; gap: 9px; background: #157A30; color: #fff; transform: translateY(-1px); }
.bpi-wafab:hover .bpi-wafab__lbl, .bpi-wafab:focus-visible .bpi-wafab__lbl { max-width: 120px; opacity: 1; }
body.bpi-asst-open .bpi-wafab, body.bpi-drawer-open .bpi-wafab { opacity: 0; pointer-events: none; }
body.bpi-drawer-open .bpi-asst { opacity: 0; pointer-events: none; }
@media (max-width: 640px) { .bpi-wafab { bottom: 74px; right: 14px; } }

/* ---------- Asistente: agrandar / redimensionar ---------- */
.bpi-asst__grip { position: absolute; top: 0; left: 0; width: 22px; height: 22px; cursor: nwse-resize; z-index: 5; }
.bpi-asst__grip::before { content: ""; position: absolute; top: 6px; left: 6px; width: 9px; height: 9px; border-top: 1.5px solid rgba(245,238,225,.45); border-left: 1.5px solid rgba(245,238,225,.45); border-radius: 2px 0 0 0; transition: border-color 180ms var(--ease); }
.bpi-asst__grip:hover::before { border-color: var(--gold-300); }
body.bpi-asst-resizing { user-select: none; cursor: nwse-resize; }
body.bpi-asst-resizing .bpi-asst__panel { transition: none; }
/* En grande nunca debe tapar el encabezado del sitio: se topa contra su borde inferior */
.bpi-asst.is-xl .bpi-asst__panel { width: min(760px, calc(100vw - 36px)); height: min(860px, calc(100dvh - var(--bpi-hdr-b, 84px) - 34px)); max-height: calc(100dvh - var(--bpi-hdr-b, 84px) - 30px); }
.bpi-asst.is-xl .bpi-asst__log { padding: 22px 22px 10px; gap: 14px; }
.bpi-asst.is-xl .bpi-msg { max-width: 76%; font-size: 15px; }
.bpi-asst.is-xl .bpi-chips, .bpi-asst.is-xl .bpi-asst__cta { padding-left: 22px; padding-right: 22px; margin-left: 0; margin-right: 0; }
.bpi-asst.is-xl .bpi-asst__cta { margin: 0 22px 8px; }
.bpi-asst.is-xl .bpi-asst__form { padding-left: 22px; padding-right: 16px; }
.bpi-asst.is-xl .bpi-asst__form textarea { font-size: 15px; max-height: 180px; }
@media (max-width: 640px) {
  .bpi-asst__grip { display: none; }
  .bpi-asst.is-xl .bpi-asst__panel, .bpi-asst .bpi-asst__panel { width: 100%; height: min(92dvh, 900px); max-height: 92dvh; }
  .bpi-asst.is-xl .bpi-asst__log { padding: 18px 14px 8px; }
  .bpi-asst.is-xl .bpi-msg { max-width: 90%; }
}

/* ---------- Página de términos y condiciones ---------- */
.bpi-tc__hero { position: relative; min-height: 46svh; display: flex; align-items: flex-end; background: var(--ink-900); overflow: hidden; isolation: isolate; }
.bpi-tc__hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20,17,13,.62) 0%, rgba(20,17,13,.86) 100%); z-index: 2; }
.bpi-tc__hero .bpi-hero__in { position: relative; z-index: 3; padding-bottom: clamp(38px, 5vw, 68px); padding-top: calc(var(--hdr-h) + 40px); }
.bpi-tc__updated .elementor-heading-title, .bpi-tc__updated { font-family: var(--font-mono); font-size: 12px; letter-spacing: .04em; color: var(--gold-300); }
.bpi-tc { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
.bpi-tc__item { padding: clamp(26px, 3vw, 38px) 0; border-top: 1px solid var(--sand-300); display: grid; grid-template-columns: 78px minmax(0, 1fr); gap: clamp(16px, 2.4vw, 40px); align-items: start; }
.bpi-tc__item:first-child { border-top: 0; }
.bpi-tc__n { font-family: var(--font-mono); font-size: 13px; color: var(--gold-600); line-height: 1.6; padding-top: 4px; }
.bpi-tc__b h3 { font-family: var(--font-serif); font-size: clamp(19px, 1.7vw, 23px); font-weight: 600; margin: 0 0 12px; color: var(--ink-900); }
.bpi-tc__b p { font-size: 15.5px; line-height: 1.68; color: var(--ink-600); max-width: 74ch; margin: 0 0 12px; }
.bpi-tc__b p:last-child { margin-bottom: 0; }
.bpi-tc__b a { color: var(--gold-600); text-decoration: underline; text-underline-offset: 2px; }
@media (max-width: 720px) {
  .bpi-tc__item { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .bpi-tc__n { padding-top: 0; }
}

/* ---------- Bloque de video (reemplaza a las imágenes fijas) ---------- */
.bpi-media { position: relative; overflow: hidden; background: var(--ink-900); }
.bpi-media__vid, .bpi-media__vid video { display: block; width: 100%; height: 100%; }
.bpi-frame .elementor-widget-video, .bpi-frame .elementor-wrapper { padding: 0 !important; height: auto !important; }
.bpi-frame .elementor-wrapper { aspect-ratio: 4 / 5; }
.bpi-frame video { position: relative !important; width: 100% !important; height: 100% !important; object-fit: cover; display: block; }
.bpi-frame--wide .elementor-wrapper { aspect-ratio: 16 / 10; }
@media (max-width: 900px) { .bpi-frame .elementor-wrapper { aspect-ratio: 16 / 10; } }

/* Bandas de video de sección (proceso, límites, trayectoria) */
.bpi-band-video { position: relative; overflow: hidden; isolation: isolate; }
.bpi-band-video > .elementor-background-video-container { z-index: 1; }
.bpi-band-video::after { content: ""; position: absolute; inset: 0; z-index: 2; background: linear-gradient(180deg, rgba(20,17,13,.86) 0%, rgba(20,17,13,.94) 100%); }
.bpi-band-video > .e-con-inner { position: relative; z-index: 3; }
.bpi-band-video .elementor-background-video-container video { filter: saturate(.7) contrast(1.04); }

/* ---------- Pie: enlaces legales ---------- */
.bpi-foot__legalnav { display: flex; flex-wrap: wrap; gap: 18px; align-items: center; }
.bpi-foot__legalnav a { font-size: 11px; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; color: rgba(245,238,225,.55); text-decoration: none; }
.bpi-foot__legalnav a:hover { color: var(--gold-300); }

/* ==========================================================================
   Diagramas v1.2 — piezas HTML que se reordenan solas + apoyos SVG
   ========================================================================== */

/* Entradas comunes de las piezas HTML */
.bpi-diagram .dg-tl__i, .bpi-diagram .dg-doc__list li, .bpi-diagram .dg-fence__core, .bpi-diagram .dg-fence__list li {
  opacity: 0; transform: translateY(16px);
  transition: opacity 640ms var(--ease-out) var(--d, 0ms), transform 720ms var(--ease-out) var(--d, 0ms);
}
.bpi-diagram.is-in .dg-tl__i, .bpi-diagram.is-in .dg-doc__list li, .bpi-diagram.is-in .dg-fence__core, .bpi-diagram.is-in .dg-fence__list li {
  opacity: 1; transform: none;
}

/* ---------- Línea de tiempo (proceso y trayectoria) ---------- */
.dg-tl { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(168px, 1fr)); gap: clamp(16px, 2vw, 28px); position: relative; }
.dg-tl::before { content: ""; position: absolute; left: 8px; right: 8px; top: 7px; height: 1px; background: var(--sand-300); }
.bpi-dark .dg-tl::before { background: rgba(245,238,225,.18); }
.dg-tl::after { content: ""; position: absolute; left: 8px; top: 7px; height: 1px; width: 0; background: var(--gold-400); transition: width 1900ms var(--ease-out) 220ms; }
.bpi-diagram.is-in .dg-tl::after { width: calc(100% - 16px); }
.dg-tl__i { display: flex; flex-direction: column; gap: 7px; padding-top: 26px; position: relative; }
.dg-tl__dot { position: absolute; top: 2px; left: 4px; width: 11px; height: 11px; border-radius: 50%; background: var(--sand-100); border: 1.5px solid var(--gold-500); }
.bpi-dark .dg-tl__dot { background: var(--ink-900); }
.dg-tl__i.is-last .dg-tl__dot { background: var(--gold-400); border-color: var(--gold-300); box-shadow: 0 0 0 4px rgba(198,162,90,.18); }
.dg-tl__n { font-family: var(--font-mono); font-size: 12px; color: var(--gold-600); letter-spacing: .04em; }
.bpi-dark .dg-tl__n { color: var(--gold-300); }
.dg-tl__t { font-family: var(--font-serif); font-size: 19px; font-weight: 600; line-height: 1.2; color: var(--ink-900); }
.bpi-dark .dg-tl__t { color: var(--sand-50); }
.dg-tl__b { font-size: 13.5px; line-height: 1.5; color: var(--ink-500); }
.bpi-dark .dg-tl__b { color: rgba(245,238,225,.62); }
.dg-tl__o { margin-top: 4px; padding-top: 9px; border-top: 1px solid var(--sand-300); font-size: 12px; line-height: 1.45; color: var(--gold-600); }
.bpi-dark .dg-tl__o { border-top-color: rgba(245,238,225,.16); color: var(--gold-300); }
.dg-tl--path { grid-template-columns: repeat(auto-fit, minmax(136px, 1fr)); }
@media (max-width: 700px) {
  .dg-tl { grid-template-columns: 1fr; gap: 0; }
  .dg-tl::before { left: 5px; right: auto; top: 10px; bottom: 10px; width: 1px; height: auto; }
  .dg-tl::after { left: 5px; top: 10px; width: 1px; height: 0; transition: height 1900ms var(--ease-out) 220ms; }
  .bpi-diagram.is-in .dg-tl::after { width: 1px; height: calc(100% - 20px); }
  .dg-tl__i { padding: 14px 0 14px 26px; }
  .dg-tl__dot { top: 18px; left: 0; }
}

/* ---------- Documento: anatomía de la política ---------- */
.dg-doc { display: grid; grid-template-columns: 168px minmax(0, 1fr); gap: clamp(20px, 3vw, 44px); align-items: start; }
.dg-doc__sheet { position: relative; aspect-ratio: 3 / 4; background: var(--paper-card); border: 1px solid var(--sand-300); border-radius: 3px; box-shadow: var(--shadow-md); padding: 20px 16px; display: flex; flex-direction: column; gap: 9px; overflow: hidden; }
.dg-doc__sheet::before { content: ""; position: absolute; top: 0; left: 0; width: 3px; height: 100%; background: var(--gold-400); }
.dg-doc__sheet i { display: block; height: 5px; border-radius: 2px; background: var(--sand-200); transform: scaleX(0); transform-origin: left; transition: transform 620ms var(--ease-out); }
.dg-doc__sheet i:nth-child(1) { width: 62%; background: var(--ink-800); height: 7px; }
.dg-doc__sheet i:nth-child(2) { width: 100%; }
.dg-doc__sheet i:nth-child(3) { width: 88%; }
.dg-doc__sheet i:nth-child(4) { width: 96%; }
.dg-doc__sheet i:nth-child(5) { width: 74%; }
.dg-doc__sheet i:nth-child(6) { width: 44%; background: var(--gold-300); }
.bpi-diagram.is-in .dg-doc__sheet i { transform: scaleX(1); }
.bpi-diagram.is-in .dg-doc__sheet i:nth-child(2) { transition-delay: 120ms; }
.bpi-diagram.is-in .dg-doc__sheet i:nth-child(3) { transition-delay: 220ms; }
.bpi-diagram.is-in .dg-doc__sheet i:nth-child(4) { transition-delay: 320ms; }
.bpi-diagram.is-in .dg-doc__sheet i:nth-child(5) { transition-delay: 420ms; }
.bpi-diagram.is-in .dg-doc__sheet i:nth-child(6) { transition-delay: 540ms; }
.bpi-dark .dg-doc__sheet { background: rgba(245,238,225,.07); border-color: rgba(245,238,225,.18); box-shadow: none; }
.bpi-dark .dg-doc__sheet i { background: rgba(245,238,225,.18); }
.bpi-dark .dg-doc__sheet i:nth-child(1) { background: var(--sand-100); }
.dg-doc__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(228px, 1fr)); gap: 1px; background: var(--sand-300); border: 1px solid var(--sand-300); }
.bpi-dark .dg-doc__list { background: rgba(245,238,225,.14); border-color: rgba(245,238,225,.14); }
.dg-doc__list li { background: var(--paper-card); padding: 16px 18px; display: flex; flex-direction: column; gap: 5px; }
.bpi-dark .dg-doc__list li { background: var(--ink-900); }
.dg-doc__list b { font-family: var(--font-serif); font-size: 16px; font-weight: 600; color: var(--ink-900); line-height: 1.25; }
.bpi-dark .dg-doc__list b { color: var(--sand-50); }
.dg-doc__list span { font-size: 13px; line-height: 1.5; color: var(--ink-500); }
.bpi-dark .dg-doc__list span { color: rgba(245,238,225,.6); }
@media (max-width: 720px) { .dg-doc { grid-template-columns: 1fr; } .dg-doc__sheet { max-width: 168px; } }

/* ---------- Cerco: los límites del método ---------- */
.dg-fence { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.35fr); gap: clamp(20px, 3vw, 44px); align-items: center; position: relative; }
.dg-fence__core { border: 1px dashed var(--gold-400); border-radius: 4px; padding: clamp(22px, 3vw, 34px); text-align: center; background: rgba(198,162,90,.06); }
.dg-fence__core b { display: block; font-family: var(--font-serif); font-size: clamp(19px, 1.8vw, 24px); font-weight: 600; color: var(--ink-900); line-height: 1.2; margin-bottom: 9px; }
.bpi-dark .dg-fence__core b { color: var(--sand-50); }
.dg-fence__core span { font-size: 12.5px; letter-spacing: .04em; color: var(--ink-500); }
.bpi-dark .dg-fence__core span { color: rgba(245,238,225,.6); }
.dg-fence__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(212px, 1fr)); gap: 12px; }
.dg-fence__list li { position: relative; padding: 15px 16px 15px 40px; border: 1px solid var(--sand-300); border-radius: 3px; background: var(--paper-card); }
.bpi-dark .dg-fence__list li { background: rgba(245,238,225,.04); border-color: rgba(245,238,225,.14); }
.dg-fence__list i { position: absolute; left: 15px; top: 18px; width: 13px; height: 13px; }
.dg-fence__list i::before, .dg-fence__list i::after { content: ""; position: absolute; top: 6px; left: 0; width: 13px; height: 1.8px; background: var(--loss-600); border-radius: 2px; }
.dg-fence__list i::before { transform: rotate(45deg); }
.dg-fence__list i::after { transform: rotate(-45deg); }
.dg-fence__list b { display: block; font-family: var(--font-sans); font-size: 14px; font-weight: 600; color: var(--ink-900); margin-bottom: 4px; }
.bpi-dark .dg-fence__list b { color: var(--sand-50); }
.dg-fence__list span { font-size: 13px; line-height: 1.5; color: var(--ink-500); }
.bpi-dark .dg-fence__list span { color: rgba(245,238,225,.6); }
@media (max-width: 860px) { .dg-fence { grid-template-columns: 1fr; } }

/* ---------- Apoyos SVG nuevos ---------- */
.bpi-diagram .d-ring { fill: none; stroke: var(--sand-300); stroke-width: 1; stroke-dasharray: 3 6; }
.bpi-dark .bpi-diagram .d-ring { stroke: rgba(245,238,225,.2); }
.bpi-diagram .d-ring2 { fill: none; stroke: var(--gold-400); stroke-width: 1.5; }
.bpi-diagram .d-orbit { fill: none; stroke: var(--sand-300); stroke-width: 1; stroke-dasharray: 5 9; }
.bpi-dark .bpi-diagram .d-orbit { stroke: rgba(245,238,225,.2); }
.bpi-diagram.is-in .d-orbit { animation: bpiOrbit 22s linear infinite; transform-origin: center; transform-box: fill-box; }
@keyframes bpiOrbit { to { transform: rotate(360deg); } }
.bpi-diagram .d-draw-c { stroke-dasharray: 900; stroke-dashoffset: 900; }
.bpi-diagram.is-in .d-draw-c { animation: bpiDash 2200ms var(--ease-out) forwards; animation-delay: var(--d, 0ms); }
@media (prefers-reduced-motion: reduce) {
  .bpi-diagram .dg-tl__i, .bpi-diagram .dg-doc__list li, .bpi-diagram .dg-fence__core, .bpi-diagram .dg-fence__list li,
  .bpi-diagram .dg-doc__sheet i { opacity: 1 !important; transform: none !important; transition: none !important; }
  .bpi-diagram .d-orbit, .bpi-diagram .d-draw-c { animation: none !important; stroke-dashoffset: 0; }
  .dg-tl::after { transition: none !important; }
}

/* Los diagramas SVG geométricos no se achican hasta ser ilegibles: se desplazan */
@media (max-width: 640px) {
  .bpi-diagram--ejes .bpi-diagram__wrap, .bpi-diagram--ciclo .bpi-diagram__wrap,
  .bpi-diagram--horizonte .bpi-diagram__wrap, .bpi-diagram--piramide .bpi-diagram__wrap,
  .bpi-diagram--servicios .bpi-diagram__wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .bpi-diagram--ejes svg, .bpi-diagram--ciclo svg, .bpi-diagram--horizonte svg,
  .bpi-diagram--piramide svg, .bpi-diagram--servicios svg { min-width: 560px; }
}

/* ---------- Franjas nuevas: proceso, límites, trayectoria, política ---------- */
.bpi-tray .bpi-head, .bpi-politica .bpi-head { margin-bottom: clamp(28px, 4vw, 48px); }
.bpi-avoid .bpi-diagramW, .bpi-proc .bpi-diagramW { margin-top: clamp(34px, 4vw, 56px); }
.bpi-slongW + .bpi-slongW { margin-top: clamp(48px, 6vw, 88px); padding-top: clamp(48px, 6vw, 88px); border-top: 1px solid var(--sand-300); }
.bpi-slong__intro .bpi-frame { margin-bottom: 6px; }
.bpi-band__actions.e-con { flex-direction: row; flex-wrap: wrap; justify-content: center; width: auto; }
@media (max-width: 560px) { .bpi-band__actions.e-con { flex-direction: column; align-items: stretch; width: 100%; } }
.bpi-waW .elementor-shortcode { display: block; }
.bpi-hero .bpi-waW { margin-top: 6px; }

/* ==========================================================================
   v1.2.3 — neutralizar los estilos globales de <button> del kit de Elementor
   sobre la navegación. Sin esto, el kit le mete alto/relleno propios al botón
   del menú y a sus tres barras (quedan en 0 px de alto).
   ========================================================================== */
body .bpi-burger,
body .bpi-burger:hover,
body .bpi-burger:focus,
body .bpi-burger:active {
  width: 46px; min-width: 46px; max-width: 46px;
  height: 44px; min-height: 44px;
  padding: 0; margin-left: 6px; box-shadow: none;
  background: transparent; border: 1px solid rgba(245,238,225,.24); border-radius: 2px;
  flex-direction: column; align-items: center; justify-content: center; gap: 5px;
  font-size: 0; line-height: 0; letter-spacing: 0; text-transform: none;
  cursor: pointer; transition: border-color 200ms var(--ease);
}
body .bpi-burger:hover, body .bpi-burger.is-on { border-color: var(--gold-300); background: transparent; }
body .bpi-burger i {
  display: block; width: 19px; min-width: 19px;
  height: 2px; min-height: 2px; flex: 0 0 2px;
  padding: 0; margin: 0; border: 0; border-radius: 1px;
  background: var(--sand-50);
  transition: transform 300ms var(--ease-out), opacity 180ms var(--ease);
}
body .bpi-burger.is-on i:nth-child(1) { transform: translateY(7px) rotate(45deg); }
body .bpi-burger.is-on i:nth-child(2) { opacity: 0; }
body .bpi-burger.is-on i:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

body .bpi-dw__top i { min-width: 10px; min-height: 10px; flex: 0 0 10px; padding: 0; margin: 0; }
body .bpi-mm__caret { min-width: 7px; min-height: 7px; flex: 0 0 7px; padding: 0; margin: 0; }
body .bpi-mm__top, body .bpi-dw__top { min-height: 0; box-shadow: none; }

@media (max-width: 1024px) { body .bpi-burger { display: inline-flex; } }
@media (min-width: 1025px) { body .bpi-burger { display: none; } }

/* Ícono dentro de la línea de tiempo del proceso */
.dg-tl__ico { display: block; margin: 2px 0 2px; }
.dg-tl__ico .bpi-ico { width: 38px; height: 38px; }
.dg-tl--proc .dg-tl__b { min-height: 0; }
@media (max-width: 700px) { .dg-tl__ico .bpi-ico { width: 32px; height: 32px; } }

/* ---------- Wordmark de dos líneas: LOMBARD sobre CAPITAL PARTNERS ---------- */
.bpi-wordmark { gap: 3px; }
.bpi-wordmark b { font-size: 18px; letter-spacing: .17em; }
.bpi-wordmark em { display: block; font-family: var(--font-sans); font-style: normal; font-size: 8.5px; font-weight: 600; letter-spacing: .3em; line-height: 1; color: var(--gold-400); white-space: nowrap; }
.bpi-foot .bpi-wordmark em, .bpi-foot__brandW .bpi-wordmark em { color: var(--gold-300); }
@media (max-width: 420px) { .bpi-wordmark b { font-size: 16px; letter-spacing: .14em; } .bpi-wordmark em { font-size: 7.5px; letter-spacing: .24em; } }
