/* ═══ EAB · widgets Elementor: Flor de pilares · Anillos de seguridad · Acordeón de pilares · Recorrido en zigzag ═══ */
.eab-fl-wrap, .eab-rg-wrap, .eab-ac, .eab-zz-wrap { font-family: inherit; box-sizing: border-box; }
.eab-fl-wrap *, .eab-rg-wrap *, .eab-ac *, .eab-zz-wrap * { box-sizing: border-box; }
.elementor-widget-eab_pillar_flower, .elementor-widget-eab_safety_rings,
.elementor-widget-eab_pillars_accordion, .elementor-widget-eab_journey_zigzag { width: 100%; min-width: 0; }

/* ───────── 1 · FLOR DE PILARES ───────── */
.eab-fl-wrap { --eab-fl-size: 470px; width: min(var(--eab-fl-size), 100%); margin: 0 auto; container: eabfl / inline-size; }
.eab-fl { position: relative; width: 92%; margin: 0 auto; aspect-ratio: 1; isolation: isolate; }

.eab-fl .orbit { position: absolute; inset: -4%; border-radius: 50%; border: 2px dashed rgba(47,63,30,.22); pointer-events: none; z-index: 0; }
.eab-fl .orbit::before, .eab-fl .orbit::after { content: ''; position: absolute; width: 12px; height: 12px; border-radius: 50%; }
.eab-fl .orbit::before { top: 8%; left: 11%; background: #E0A32E; box-shadow: 0 0 0 5px rgba(224,163,46,.25); }
.eab-fl .orbit::after { bottom: 9%; right: 10%; background: #117B7A; box-shadow: 0 0 0 5px rgba(17,123,122,.22); }
.eab-orbit-yes .eab-fl .orbit { animation: eabSpin 90s linear infinite; }
.elementor-widget-eab_pillar_flower:not(.eab-orbit-yes) .eab-fl .orbit { display: none; }

.eab-fl .petal { position: absolute; z-index: 1; width: 46%; aspect-ratio: 1; border-radius: 50%; mix-blend-mode: multiply;
  background-image: radial-gradient(circle at 32% 26%, rgba(255,255,255,.4), rgba(255,255,255,0) 58%);
  box-shadow: 0 24px 40px -12px rgba(47,63,30,.3); transition: transform .5s cubic-bezier(.22,.61,.36,1); }
.eab-zoom-yes .eab-fl .petal:hover { transform: scale(1.07); }
.elementor-widget-eab_pillar_flower:not(.eab-blend-yes) .eab-fl .petal { mix-blend-mode: normal; opacity: .95; }
.eab-float-yes .eab-fl .petal { animation: eabFloat 7s ease-in-out infinite; }
.eab-float-yes .eab-fl .p2 { animation-delay: -1.4s; } .eab-float-yes .eab-fl .p3 { animation-delay: -2.8s; }
.eab-float-yes .eab-fl .p4 { animation-delay: -4.2s; } .eab-float-yes .eab-fl .p5 { animation-delay: -5.6s; }
.eab-fl .petal > span { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; color: var(--tc, #fff); transform: translate(var(--dx), var(--dy)); text-shadow: 0 1px 2px rgba(0,0,0,.12); }
.eab-fl .petal b { font-size: clamp(1rem, 6.4cqw, 2.1rem); font-weight: 700; line-height: 1; letter-spacing: -.01em; }
.eab-fl .petal small { margin-top: 6px; font-size: clamp(.5rem, 2cqw, .74rem); font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.eab-fl .p1 { left: 27%; top: 0; --dx: 0; --dy: -26%; }
.eab-fl .p2 { left: 52.7%; top: 18.7%; --dx: 26%; --dy: -6%; }
.eab-fl .p3 { left: 42.9%; top: 48.8%; --dx: 14%; --dy: 24%; }
.eab-fl .p4 { left: 11.1%; top: 48.8%; --dx: -14%; --dy: 24%; }
.eab-fl .p5 { left: 1.3%; top: 18.7%; --dx: -26%; --dy: -6%; }

.eab-fl .hub { --ring: rgba(255,255,255,.65); position: absolute; z-index: 3; inset: 35%; border-radius: 50%; background: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;
  box-shadow: 0 0 0 clamp(5px, 2.2cqw, 11px) var(--ring), 0 18px 40px rgba(47,63,30,.24); }
.eab-fl .hub b { font-size: clamp(.78rem, 4.6cqw, 1.35rem); font-weight: 700; letter-spacing: .1em; color: #2F3F1E; }
.eab-fl .hub span { margin-top: 4px; font-size: clamp(.5rem, 2.1cqw, .78rem); font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: #117B7A; }

.eab-fl-legend { display: none; flex-wrap: wrap; justify-content: center; gap: 8px; list-style: none; margin: 26px 0 0; padding: 0; }
.eab-fl-legend li { display: inline-flex; align-items: center; gap: 8px; background: #fff; border: 1px solid rgba(47,63,30,.12); border-radius: 100px; padding: 6px 14px 6px 8px; font-size: .78rem; font-weight: 600; line-height: 1; color: #2F3F1E; }
.eab-fl-legend li i { width: 16px; height: 16px; border-radius: 50%; background: var(--c); flex: none; }
.eab-fl-wrap[data-legend="always"] .eab-fl-legend { display: flex; }
@container eabfl (max-width: 360px) {
  .eab-fl .petal small { display: none; }
  .eab-fl-wrap[data-legend="auto"] .eab-fl-legend { display: flex; }
}

/* ───────── 2 · ANILLOS DE SEGURIDAD ───────── */
.eab-rg-wrap { --eab-rg-size: 470px; width: min(var(--eab-rg-size), 100%); margin: 0 auto; padding: 30px clamp(30px, 15%, 84px); container: eabrg / inline-size; }
.eab-rg { position: relative; width: 100%; aspect-ratio: 1; }
.eab-rg .rg { position: absolute; border-radius: 50%; }
.eab-rg .rg1 { inset: 0; border: 1.5px dashed rgba(17,123,122,.4); }
.eab-rg .rg2 { inset: 14%; background: rgba(17,123,122,.07); }
.eab-rg .rg3 { inset: 28%; background: rgba(17,123,122,.13); }
.eab-pulse-yes .eab-rg .rg3 { animation: eabPulse 4s ease-in-out infinite; }
.eab-rg .core { --a: #117B7A; --b: #0C4F50; position: absolute; inset: 36%; border-radius: 50%; background: linear-gradient(145deg, var(--a), var(--b)); color: #fff; display: flex; align-items: center; justify-content: center; text-align: center; font-weight: 600; font-size: clamp(.66rem, 4.2cqw, 1.15rem); line-height: 1.15; box-shadow: 0 14px 30px rgba(12,79,80,.35); padding: 6%; }
.eab-rg .chip { position: absolute; transform: translate(-50%, -50%); display: inline-flex; align-items: center; gap: 9px; background: #fff; color: #2F3F1E; border-radius: 100px; padding: 8px 18px 8px 8px; box-shadow: 0 12px 28px rgba(47,63,30,.16); font-size: clamp(.68rem, 3.2cqw, .9rem); font-weight: 600; white-space: nowrap; line-height: 1.2; }
.eab-rg .chip .ic { width: 30px; height: 30px; border-radius: 50%; background: var(--c); color: #fff; display: inline-flex; align-items: center; justify-content: center; flex: none; font-size: 13px; }
.eab-rg .chip .ic svg { width: 14px; height: 14px; fill: currentColor; }
.eab-rg .c1 { left: 50%; top: 0; } .eab-rg .c2 { left: 100%; top: 50%; } .eab-rg .c3 { left: 50%; top: 100%; } .eab-rg .c4 { left: 0; top: 50%; }

.eab-rg-legend { display: none; flex-wrap: wrap; justify-content: center; gap: 8px; list-style: none; margin: 22px 0 0; padding: 0; }
.eab-rg-legend li { display: inline-flex; align-items: center; gap: 8px; background: #fff; border: 1px solid rgba(47,63,30,.12); border-radius: 100px; padding: 6px 14px 6px 6px; font-size: .78rem; font-weight: 600; line-height: 1; color: #2F3F1E; }
.eab-rg-legend li .ic { width: 22px; height: 22px; border-radius: 50%; background: var(--c); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 10px; flex: none; }
.eab-rg-legend li .ic svg { width: 11px; height: 11px; fill: currentColor; }
.eab-rg-wrap[data-legend="always"] .eab-rg-legend { display: flex; }
@container eabrg (max-width: 260px) {
  .eab-rg .chip { padding: 5px; gap: 0; }
  .eab-rg .chip .t { display: none; }
  .eab-rg .chip .ic { width: 28px; height: 28px; }
  .eab-rg-wrap[data-legend="auto"] .eab-rg-legend { display: flex; }
}
@container eabrg (max-width: 190px) {
  .eab-rg .chip .ic { width: 22px; height: 22px; font-size: 10px; }
  .eab-rg .core { font-size: .6rem; }
}
@keyframes eabPulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.07); } }
@keyframes eabSpin { to { transform: rotate(360deg); } }
@keyframes eabFloat { 0%, 100% { translate: 0 0; } 50% { translate: 0 -2.4%; } }

/* ───────── 3 · ACORDEÓN DE PILARES ───────── */
.eab-ac { --eab-ac-h: 460px; --eab-ac-gap: 12px; display: flex; gap: var(--eab-ac-gap); height: var(--eab-ac-h); }
.eab-ac .eab-pn { --c: #117B7A; --tc: #fff; position: relative; flex: 1 1 0; min-width: 0; overflow: hidden; border-radius: 28px; background: var(--c); color: var(--tc); padding: 28px; cursor: pointer; transition: flex .55s cubic-bezier(.22,.61,.36,1); outline: none; }
.eab-ac .eab-pn.is-on { flex: 7; cursor: default; }
.eab-ac .eab-pn:focus-visible { box-shadow: 0 0 0 4px rgba(17,123,122,.4); }
.eab-ac .eab-pn::after { content: ''; position: absolute; right: -70px; top: -70px; width: 220px; height: 220px; border-radius: 50%; background: rgba(255,255,255,.12); pointer-events: none; }
.eab-ac .pn-l { display: block; font-size: clamp(2rem, 3.4vw, 3.2rem); font-weight: 600; line-height: 1; letter-spacing: -.02em; }
.eab-ac .pn-rot { position: absolute; left: 28px; bottom: 28px; writing-mode: vertical-rl; transform: rotate(180deg); font-size: 1rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; opacity: .9; transition: opacity .25s; white-space: nowrap; }
.eab-ac .eab-pn.is-on .pn-rot { opacity: 0; }
.eab-ac .pn-b { position: absolute; left: 28px; bottom: 30px; width: min(360px, calc(100% - 56px)); opacity: 0; transform: translateY(14px); transition: opacity .35s .15s, transform .35s .15s; pointer-events: none; }
.eab-ac .eab-pn.is-on .pn-b { opacity: 1; transform: none; pointer-events: auto; }
.eab-ac .pn-b h3 { margin: 0 0 12px; font-size: 1.5rem; font-weight: 500; line-height: 1.15; color: inherit; }
.eab-ac .pn-b h3 b { font-weight: 700; }
.eab-ac .pn-b p { margin: 0; font-size: 1rem; line-height: 1.75; color: inherit; opacity: .95; }

/* ───────── 4 · RECORRIDO EN ZIGZAG ───────── */
.eab-zz-wrap { --eab-line: rgba(47,63,30,.28); }
.eab-zz { position: relative; max-width: 1000px; margin: 0 auto; }
.eab-zz::before { content: ''; position: absolute; left: 50%; top: 10px; bottom: 30px; width: 2px; background: repeating-linear-gradient(to bottom, var(--eab-line) 0 8px, transparent 8px 16px); transform: translateX(-1px); }
.eab-zz .zi { --c: #117B7A; position: relative; width: 50%; padding: 0 58px 44px 0; }
.eab-zz .zi:nth-child(even) { margin-left: 50%; padding: 0 0 44px 58px; }
.eab-zz .zi .dot { position: absolute; right: -25px; top: 6px; width: 50px; height: 50px; border-radius: 50%; background: var(--c); color: #fff; font-style: italic; font-weight: 600; font-size: 1.3rem; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 8px var(--eab-dot-ring, #fff); z-index: 1; }
.eab-zz .zi:nth-child(even) .dot { right: auto; left: -25px; }
.eab-zz .zi .card { background: #FBF8F0; border: 1px solid rgba(47,63,30,.08); border-radius: 24px; padding: 26px 30px 30px; box-shadow: 0 14px 36px rgba(47,63,30,.08); }
.eab-zz .zi h3 { margin: 0 0 10px; font-size: 1.2rem; font-weight: 600; color: #2F3F1E; line-height: 1.3; }
.eab-zz .zi p { margin: 0; font-size: .98rem; line-height: 1.8; color: #46513A; }
.eab-zz-goal { position: relative; overflow: hidden; margin-top: 26px; border-radius: 34px; padding: clamp(34px, 5vw, 66px); background: linear-gradient(135deg, var(--g1, #E0A32E), var(--g2, #F0C467)); }
.eab-zz-goal::before { content: '\201C'; position: absolute; left: 26px; top: -30px; font-family: Georgia, 'Times New Roman', serif; font-size: 13rem; line-height: 1; color: rgba(47,63,30,.14); }
.eab-zz-goal .goal-t { position: relative; max-width: 880px; font-size: clamp(1.3rem, 2.6vw, 2rem); line-height: 1.45; color: #2F3F1E; letter-spacing: -.01em; }
.eab-zz-goal .goal-t p { margin: 0; color: inherit; font-size: inherit; line-height: inherit; }
.eab-zz-goal .goal-t strong { font-weight: 600; border-bottom: 3px solid rgba(47,63,30,.4); color: inherit; }

/* ───────── responsive ───────── */
@media (max-width: 960px) {
  .eab-ac { flex-direction: column; height: auto; }
  .eab-ac .eab-pn, .eab-ac .eab-pn.is-on { flex: none; padding: 22px 24px; min-height: 84px; }
  .eab-ac .pn-rot { writing-mode: horizontal-tb; transform: none; left: auto; right: 24px; bottom: auto; top: 30px; }
  .eab-ac .pn-b { position: static; width: auto; opacity: 1; transform: none; max-height: 0; overflow: hidden; transition: max-height .45s; }
  .eab-ac .eab-pn.is-on .pn-b { max-height: 320px; margin-top: 14px; }
  .eab-ac .pn-l { font-size: 2rem; }
}
@media (max-width: 760px) {
  .eab-zz::before { left: 25px; }
  .eab-zz .zi, .eab-zz .zi:nth-child(even) { width: 100%; margin-left: 0; padding: 0 0 32px 70px; }
  .eab-zz .zi .dot, .eab-zz .zi:nth-child(even) .dot { left: 0; right: auto; }
}
@media (prefers-reduced-motion: reduce) { .eab-pulse-yes .eab-rg .rg3, .eab-orbit-yes .eab-fl .orbit, .eab-float-yes .eab-fl .petal { animation: none; } .eab-ac .eab-pn { transition: none; } }
