/* ==========================================================================
 * Steps Flow – Pași cu conectori
 * Version: 1.0.1
 * - Punctul stă peste border (cu inel alb 2px)
 * - Săgeata se oprește aproape de următorul card
 * - Conectorii apar doar pe desktop (≥1024px)
 * ========================================================================== */

.et-steps-flow-block {
  --et-sf-gap: clamp(18px,3vw,36px);
  --et-sf-card-radius: 20px;
  --et-sf-badge-size: clamp(78px,7vw,110px);
  --et-sf-badge-radius: 14px;

  --et-sf-blue: var(--et-primary-blue, #154ADC);
  --et-sf-blue-strong: #2F53DB;
  --et-sf-text: var(--et-text-mid, #525252);
  --et-sf-border: #D7DFFE;

  /* Conectori: aceleași valori sunt folosite pentru coloana-gap și calc-uri */
  --et-sf-gap-x: clamp(70px, 7vw, 130px); /* spațiul orizontal dintre carduri (grid column-gap) */
  --et-sf-dot-size: 14px;                 /* diametrul punctului albastru */
  --et-sf-dot-ring: 2px;                  /* inelul alb */
  --et-sf-dot-overhang: 9px;              /* cât iese punctul în afara cardului (jumătate din total ~ 18px) */
  --et-sf-line-offset: 11px;              /* distanța de la muchia cardului până la startul liniei */
  --et-sf-arrow-gap: 20px;                 /* “aproape” de bordura următorului card */
  --et-sf-arrow-h: 6px;                   /* înălțimea săgeții (triunghi) */
  --et-sf-arrow-w: 10px;                  /* lățimea săgeții (triunghi) */

  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  box-sizing: border-box;
  font-family: var(--et-font-onest, 'Onest', Arial, sans-serif);
}

.et-steps-flow-block .et-sf-header {
  margin: 0 0 clamp(14px,2.4vw,22px);
}

.et-steps-flow-block .et-sf-title {
  margin: 6px 0 0;
}

/* Decorative Shape (ca la Opportunities) */
.et-steps-flow-block .et-sf-shape {
  position:absolute;
  top:-120px;
  right:-10px;
  width:220px;
  aspect-ratio:1/1;
  background:url('../img/line_square.png') no-repeat center / contain;
  transform:scaleX(-1) rotate(6deg);
  pointer-events:none;
  z-index:5;
}
@media (max-width:1100px){
  .et-steps-flow-block .et-sf-shape { 
    top: -110px;
    right: -56px;
    width:170px;
    transform:scaleX(-1) rotate(5deg); }
}

/* Grid */
.et-steps-flow-block .et-sf-grid {
  display: grid;
  align-items: stretch;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: var(--et-sf-gap-x); /* important: aceeași valoare folosită și în calc-urile conectorilor */
  row-gap: var(--et-sf-gap);
  position: relative;
}

/* Card */
.et-steps-flow-block .et-sf-step {
  position: relative;
}

.et-steps-flow-block .et-sf-card {
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: clamp(10px,1.6vw,14px);
  padding: clamp(18px,2.6vw,30px);
  border: 2px solid var(--et-sf-blue-strong);
  border-radius: clamp(16px,1.8vw,22px);
  box-sizing: border-box;
  background:#fff;
  position: relative; /* necesar pentru pseudo-urile conectorilor */
  overflow: visible;
}

/* Număr (badge) */
.et-steps-flow-block .et-sf-num {
  width: var(--et-sf-badge-size);
  height: var(--et-sf-badge-size);
  border-radius: var(--et-sf-badge-radius);
  background: #EEF2FF;
  display: grid;
  place-items: center;
  line-height: 1;
}
.et-steps-flow-block .et-sf-num > span{
  font-size: clamp(36px,4.2vw,54px);
  font-weight: 700;
  color: var(--et-sf-blue-strong);
}

/* Text */
.et-steps-flow-block .et-sf-text {
  color: var(--et-sf-text);
  font-size: 16px;
  line-height: 1.55;
}
.et-steps-flow-block .et-sf-text p { margin: 0 0 10px; }
.et-steps-flow-block .et-sf-text p:last-child { margin-bottom:0; }

/* Conectori – doar desktop */
@media (min-width: 1024px){

  /* Punctul: pe card, ca să fie peste border (taie vizual bordura) */
  .et-steps-flow-block .et-sf-step.has-connector .et-sf-card::before{
    content:"";
    position:absolute;
    top:50%;
    right: calc(-1 * var(--et-sf-dot-overhang));
    transform: translateY(-50%);
    width: var(--et-sf-dot-size);
    height: var(--et-sf-dot-size);
    background: var(--et-sf-blue-strong);
    border: var(--et-sf-dot-ring) solid #fff; /* inel alb ca să pară că “taie” bordura */
    border-radius: 50%;
    z-index: 3; /* peste bordura cardului */
  }

  /* Linia: pleacă de la dreapta cardului, după punct, până aproape de următorul card */
  .et-steps-flow-block .et-sf-step.has-connector .et-sf-card::after{
    content:"";
    position:absolute;
    top:50%;
    left: calc(100% + var(--et-sf-line-offset));
    transform: translateY(-50%);
    width: calc(var(--et-sf-gap-x) - var(--et-sf-line-offset) - var(--et-sf-arrow-gap));
    height: 2px;
    background: var(--et-sf-blue-strong);
    z-index: 1;
  }

  /* Vârful săgeții: aproape de următorul card */
  .et-steps-flow-block .et-sf-step.has-connector::after{
    content:"";
    position:absolute;
    top:50%;
    left: calc(100% + var(--et-sf-gap-x) - var(--et-sf-arrow-gap));
    transform: translateY(-50%);
    width: 0; height: 0;
    border-top: var(--et-sf-arrow-h) solid transparent;
    border-bottom: var(--et-sf-arrow-h) solid transparent;
    border-left: var(--et-sf-arrow-w) solid var(--et-sf-blue-strong);
    pointer-events:none;
    z-index: 1;
  }
}

/* Responsive: 1 col, fără conectori */
@media (max-width: 1023.98px){
  .et-steps-flow-block .et-sf-grid {
    grid-template-columns: 1fr;
    column-gap: 0;
  }
  .et-steps-flow-block .et-sf-step.has-connector .et-sf-card::before,
  .et-steps-flow-block .et-sf-step.has-connector .et-sf-card::after,
  .et-steps-flow-block .et-sf-step.has-connector::after{
    content:none !important;
  }
}

/* Spacing între două blocuri la rând */
.et-steps-flow-block + .et-steps-flow-block {
  margin-top: clamp(42px,5.2vw,88px);
}

/* Empty state */
.et-steps-flow-block .et-sf-empty{
  color:#667085;
  font-size:15px;
  margin: 6px 0 0;
}