/* templates/blocks/workflow-process/style.css — v1.1.4
   Fix: map General settings + responsive inside half-width Row/Inner Row. */

.pf-workflow-process {
  --pf-wf-bg: transparent;
  --pf-wf-color: #262626;
  --pf-wf-pad: 0px;
  --pf-wf-margin: 0px;
  --pf-wf-gap: 28px;
  --pf-wf-align: center;
  --pf-wf-mobile-layout: stack;
  --pf-wf-cols-desktop: 5;
  --pf-wf-cols-tablet: 3;
  --pf-wf-cols-mobile: 1;
  --pf-wf-half-cols: 2;

  --pf-wf-line-color: #d7e2e4;
  --pf-wf-line-width: 1px;
  --pf-wf-line-style: dashed;
  --pf-wf-line-top: 44px;
  --pf-wf-line-offset: 50%;

  --pf-wf-item-bg: transparent;
  --pf-wf-item-pad: 0px;
  --pf-wf-item-margin: 0px;
  --pf-wf-item-border-width: 0px;
  --pf-wf-item-border-style: solid;
  --pf-wf-item-border-color: transparent;
  --pf-wf-item-radius: 0px;
  --pf-wf-item-shadow: none;

  --pf-wf-circle-size: 86px;
  --pf-wf-circle-thick: 5px;
  --pf-wf-circle-active: #091a3a;
  --pf-wf-circle-track: #dbe3e4;
  --pf-wf-circle-inner-bg: #ffffff;
  --pf-wf-circle-bg: conic-gradient(var(--pf-wf-circle-active) 0deg 53deg, transparent 53deg 60deg, var(--pf-wf-circle-track) 60deg 113deg, transparent 113deg 120deg, var(--pf-wf-circle-track) 120deg 173deg, transparent 173deg 180deg, var(--pf-wf-circle-track) 180deg 233deg, transparent 233deg 240deg, var(--pf-wf-circle-track) 240deg 293deg, transparent 293deg 300deg, var(--pf-wf-circle-track) 300deg 353deg, transparent 353deg 360deg);
  --pf-wf-circle-shadow: none;

  --pf-wf-icon-color: #004142;
  --pf-wf-icon-bg: #ffffff;
  --pf-wf-icon-size: 26px;
  --pf-wf-icon-box-size: 58px;

  --pf-wf-step-color: var(--pf-wf-color, #262626);
  --pf-wf-step-bg: transparent;
  --pf-wf-step-fs: 14px;
  --pf-wf-step-lh: 1.2;
  --pf-wf-step-fw: 700;
  --pf-wf-step-ls: 0px;
  --pf-wf-step-transform: none;
  --pf-wf-step-border-color: transparent;
  --pf-wf-step-border-width: 0px;
  --pf-wf-step-border-style: solid;
  --pf-wf-step-shadow: none;
  --pf-wf-step-mt: 10px;
  --pf-wf-step-mb: 4px;
  --pf-wf-step-pad: 0px;
  --pf-wf-step-radius: 0px;

  --pf-wf-title-color: var(--pf-wf-color, #262626);
  --pf-wf-title-bg: transparent;
  --pf-wf-title-ff: inherit;
  --pf-wf-title-fs: 16px;
  --pf-wf-title-lh: 1.3;
  --pf-wf-title-fw: 700;
  --pf-wf-title-ls: 0px;
  --pf-wf-title-transform: none;
  --pf-wf-title-pad: 0px;
  --pf-wf-title-margin: 0 0 6px 0;
  --pf-wf-title-radius: 0px;

  --pf-wf-desc-color: var(--pf-wf-color, #262626);
  --pf-wf-desc-bg: transparent;
  --pf-wf-desc-ff: inherit;
  --pf-wf-desc-fs: 13px;
  --pf-wf-desc-lh: 1.55;
  --pf-wf-desc-fw: 400;
  --pf-wf-desc-ls: 0px;
  --pf-wf-desc-transform: none;
  --pf-wf-desc-pad: 0px;
  --pf-wf-desc-margin: 0px;
  --pf-wf-desc-radius: 0px;

  display: block;
  position: relative;
  container-type: inline-size;
  box-sizing: border-box;
  color: var(--pf-wf-color) !important;
  background: var(--pf-wf-bg, transparent) !important;
  padding: var(--pf-wf-pad) !important;
  margin: var(--pf-wf-margin) !important;
}

.pf-workflow-process,
.pf-workflow-process * { box-sizing: border-box; }

.pf-workflow-process .pf-wf__items {
  position: relative;
  display: grid;
  grid-template-columns: repeat(var(--pf-wf-cols-desktop), minmax(0, 1fr));
  gap: var(--pf-wf-gap);
  align-items: stretch;
  width: 100%;
}

.pf-workflow-process.is-flex .pf-wf__items {
  display: flex;
  flex-wrap: nowrap;
  gap: var(--pf-wf-gap);
}

.pf-workflow-process.is-flex .pf-wf__item { flex: 1 1 0; }

.pf-wf__item {
  position: relative;
  z-index: 1;
  min-width: 0;
  text-align: var(--pf-wf-align);
  display: flex;
  flex-direction: column;
  align-items: center;
  background: var(--pf-wf-item-bg);
  padding: var(--pf-wf-item-pad);
  margin: var(--pf-wf-item-margin);
  border-width: var(--pf-wf-item-border-width);
  border-style: var(--pf-wf-item-border-style);
  border-color: var(--pf-wf-item-border-color);
  border-radius: var(--pf-wf-item-radius);
  box-shadow: var(--pf-wf-item-shadow);
}

.pf-workflow-process[style*="--pf-wf-align:left"] .pf-wf__item { align-items: flex-start; }
.pf-workflow-process[style*="--pf-wf-align:right"] .pf-wf__item { align-items: flex-end; }
.pf-workflow-process[style*="--pf-wf-align:center"] .pf-wf__item { align-items: center; }

.pf-wf__content { order: 2; width: 100%; }
.pf-wf__circle-wrap { order: 1; }
.pf-wf__step { order: 2; }
.pf-wf__title { order: 3; }
.pf-wf__desc { order: 4; }
.pf-workflow-process.pf-wf--step-above-icon .pf-wf__step { order: 0; }
.pf-workflow-process.pf-wf--step-below-icon .pf-wf__step,
.pf-workflow-process.pf-wf--step-above-title .pf-wf__step { order: 2; }
.pf-workflow-process.pf-wf--step-below-title .pf-wf__step { order: 4; }
.pf-workflow-process.pf-wf--step-below-title .pf-wf__desc { order: 5; }
.pf-workflow-process.pf-wf--step-below-desc .pf-wf__step { order: 5; }
.pf-workflow-process.pf-wf--step-hidden .pf-wf__step { display: none !important; }

.pf-workflow-process.is-line .pf-wf__item:not(:last-child)::after {
  content: "";
  position: absolute;
  z-index: 0;
  top: var(--pf-wf-line-top);
  left: var(--pf-wf-line-offset);
  width: calc(100% + var(--pf-wf-gap));
  border-top: var(--pf-wf-line-width) var(--pf-wf-line-style) var(--pf-wf-line-color);
  pointer-events: none;
}

.pf-wf__circle-wrap {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--pf-wf-circle-size);
  height: var(--pf-wf-circle-size);
}

.pf-wf__circle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--pf-wf-circle-size);
  height: var(--pf-wf-circle-size);
  border-radius: 999px;
  padding: var(--pf-wf-circle-thick);
  background: var(--pf-wf-circle-bg);
  box-shadow: var(--pf-wf-circle-shadow);
}

.pf-wf__circle-inner {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%; height: 100%;
  border-radius: inherit;
  background: var(--pf-wf-circle-inner-bg);
}

.pf-wf__iconbox {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--pf-wf-icon-box-size);
  height: var(--pf-wf-icon-box-size);
  border-radius: 999px;
  background: var(--pf-wf-icon-bg);
  color: var(--pf-wf-icon-color);
}

.pf-wf__iconbox i,
.pf-wf__iconbox svg {
  color: currentColor;
  fill: currentColor;
  width: var(--pf-wf-icon-size);
  height: var(--pf-wf-icon-size);
  font-size: var(--pf-wf-icon-size);
  line-height: 1;
  display: block;
}

.pf-wf__step {
  display: inline-block;
  color: var(--pf-wf-step-color) !important;
  background: var(--pf-wf-step-bg);
  font-size: var(--pf-wf-step-fs) !important;
  line-height: var(--pf-wf-step-lh) !important;
  font-weight: var(--pf-wf-step-fw) !important;
  letter-spacing: var(--pf-wf-step-ls) !important;
  text-transform: var(--pf-wf-step-transform) !important;
  margin: var(--pf-wf-step-mt) 0 var(--pf-wf-step-mb) 0;
  padding: var(--pf-wf-step-pad);
  border: var(--pf-wf-step-border-width) var(--pf-wf-step-border-style) var(--pf-wf-step-border-color);
  border-radius: var(--pf-wf-step-radius);
  box-shadow: var(--pf-wf-step-shadow);
}

.pf-wf__title {
  display: block;
  width: 100%;
  color: var(--pf-wf-title-color) !important;
  background: var(--pf-wf-title-bg);
  font-family: var(--pf-wf-title-ff) !important;
  font-size: var(--pf-wf-title-fs) !important;
  line-height: var(--pf-wf-title-lh) !important;
  font-weight: var(--pf-wf-title-fw) !important;
  letter-spacing: var(--pf-wf-title-ls) !important;
  text-transform: var(--pf-wf-title-transform) !important;
  padding: var(--pf-wf-title-pad);
  margin: var(--pf-wf-title-margin);
  border-radius: var(--pf-wf-title-radius);
}

.pf-wf__desc {
  display: block;
  width: 100%;
  color: var(--pf-wf-desc-color) !important;
  background: var(--pf-wf-desc-bg);
  font-family: var(--pf-wf-desc-ff) !important;
  font-size: var(--pf-wf-desc-fs) !important;
  line-height: var(--pf-wf-desc-lh) !important;
  font-weight: var(--pf-wf-desc-fw) !important;
  letter-spacing: var(--pf-wf-desc-ls) !important;
  text-transform: var(--pf-wf-desc-transform) !important;
  padding: var(--pf-wf-desc-pad);
  margin: var(--pf-wf-desc-margin);
  border-radius: var(--pf-wf-desc-radius);
}


/* Auto adapt when block is placed in 1/2 column / narrow inner row */
@container (max-width: 760px) {
  .pf-workflow-process.is-fit-auto .pf-wf__items {
    grid-template-columns: repeat(var(--pf-wf-half-cols), minmax(0, 1fr));
  }
  .pf-workflow-process.is-fit-auto.is-flex .pf-wf__items {
    display: grid;
    grid-template-columns: repeat(var(--pf-wf-half-cols), minmax(0, 1fr));
  }
}

@container (max-width: 460px) {
  .pf-workflow-process.is-fit-auto .pf-wf__items,
  .pf-workflow-process.is-fit-auto.is-flex .pf-wf__items {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 1024px) {
  .pf-workflow-process .pf-wf__items {
    grid-template-columns: repeat(var(--pf-wf-cols-tablet), minmax(0, 1fr));
  }
  .pf-workflow-process.is-flex .pf-wf__items { flex-wrap: wrap; }
}

@media (max-width: 767px) {
  .pf-workflow-process .pf-wf__items {
    grid-template-columns: repeat(var(--pf-wf-cols-mobile), minmax(0, 1fr));
  }
  .pf-workflow-process.is-mobile-vertical .pf-wf__items {
    display: flex;
    flex-direction: column;
  }
  .pf-workflow-process.is-mobile-vertical.is-line .pf-wf__item:not(:last-child)::after {
    top: var(--pf-wf-circle-size);
    left: 50%;
    width: 0;
    height: calc(var(--pf-wf-gap) + 10px);
    border-top: 0;
    border-left: var(--pf-wf-line-width) var(--pf-wf-line-style) var(--pf-wf-line-color);
  }
}


/* v1.0.7 — full icon libraries */
.pf-wf__iconbox .material-symbols-rounded {
  font-family: 'Material Symbols Rounded';
  font-weight: normal;
  font-style: normal;
  font-size: var(--pf-wf-icon-size);
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-feature-settings: 'liga';
  -webkit-font-smoothing: antialiased;
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}
.pf-wf__iconbox ion-icon {
  font-size: var(--pf-wf-icon-size);
  width: var(--pf-wf-icon-size);
  height: var(--pf-wf-icon-size);
}
.pf-wf__iconbox i.bi {
  font-size: var(--pf-wf-icon-size);
  width: var(--pf-wf-icon-size);
  height: var(--pf-wf-icon-size);
  line-height: 1;
}


/* v1.1.4 background remove fix */
.pf-workflow-process {
  background: var(--pf-wf-bg, transparent) !important;
}


/* v1.1.4 text color fallback fix */
.pf-workflow-process .pf-wf__step {
  color: var(--pf-wf-step-color, var(--pf-wf-color, #262626)) !important;
}
.pf-workflow-process .pf-wf__title {
  color: var(--pf-wf-title-color, var(--pf-wf-color, #262626)) !important;
}
.pf-workflow-process .pf-wf__desc {
  color: var(--pf-wf-desc-color, var(--pf-wf-color, #262626)) !important;
}


/* v1.1.4 — mobile layout + connection line fix */
@media (max-width: 767px) {
  /* Mobile icon-left: icon bên trái, số bước/title/desc bên phải */
  .pf-workflow-process.is-mobile-icon-left.is-mobile-vertical .pf-wf__items {
    display: flex;
    flex-direction: column;
    gap: var(--pf-wf-gap);
  }

  .pf-workflow-process.is-mobile-icon-left .pf-wf__item {
    display: grid;
    grid-template-columns: var(--pf-wf-circle-size) minmax(0, 1fr);
    column-gap: 16px;
    align-items: center;
    text-align: left !important;
  }

  .pf-workflow-process.is-mobile-icon-left .pf-wf__circle-wrap {
    grid-column: 1;
    grid-row: 1;
    justify-self: center;
    align-self: flex-start;
    order: initial;
  }

  .pf-workflow-process.is-mobile-icon-left .pf-wf__content {
    grid-column: 2;
    grid-row: 1;
    width: 100%;
    align-self: center;
    text-align: left !important;
    order: initial;
  }

  .pf-workflow-process.is-mobile-icon-left .pf-wf__step,
  .pf-workflow-process.is-mobile-icon-left .pf-wf__title,
  .pf-workflow-process.is-mobile-icon-left .pf-wf__desc {
    text-align: left !important;
  }

  .pf-workflow-process.is-mobile-icon-left.is-line .pf-wf__item:not(:last-child)::after {
    top: var(--pf-wf-circle-size);
    left: calc(var(--pf-wf-circle-size) / 2);
    width: 0;
    height: calc(100% + var(--pf-wf-gap) - var(--pf-wf-circle-size));
    border-top: 0;
    border-left: var(--pf-wf-line-width) var(--pf-wf-line-style) var(--pf-wf-line-color);
  }

  /* Mobile stack 1 cột: line nối dọc giữa các icon */
  .pf-workflow-process.is-mobile-vertical:not(.is-mobile-icon-left).is-line .pf-wf__item:not(:last-child)::after {
    top: var(--pf-wf-circle-size);
    left: 50%;
    width: 0;
    height: calc(100% + var(--pf-wf-gap) - var(--pf-wf-circle-size));
    border-top: 0;
    border-left: var(--pf-wf-line-width) var(--pf-wf-line-style) var(--pf-wf-line-color);
  }

  /* Mobile 2 cột: không vẽ line ngang tràn sai giữa hàng 1 và hàng 2 */
  .pf-workflow-process:not(.is-mobile-vertical).is-line .pf-wf__item::after {
    content: none !important;
  }
}


/* v1.1.4 — tablet/mobile timeline fix
   Ở responsive khoảng 768-1024px, block vẫn đang chạy layout tablet 2 cột nên line ngang bị sai.
   Nếu bật Mobile vertical = Yes, áp dụng timeline dọc từ tablet trở xuống. */
@media (max-width: 1024px) {
  .pf-workflow-process.is-mobile-vertical .pf-wf__items {
    display: flex !important;
    flex-direction: column !important;
    gap: var(--pf-wf-gap) !important;
  }

  .pf-workflow-process.is-mobile-vertical.is-line .pf-wf__item:not(:last-child)::after {
    content: "" !important;
    position: absolute;
    z-index: 0;
    top: var(--pf-wf-circle-size);
    left: 50%;
    width: 0 !important;
    height: calc(100% + var(--pf-wf-gap) - var(--pf-wf-circle-size));
    border-top: 0 !important;
    border-left: var(--pf-wf-line-width) var(--pf-wf-line-style) var(--pf-wf-line-color) !important;
    pointer-events: none;
  }

  .pf-workflow-process.is-mobile-vertical.is-mobile-icon-left .pf-wf__item {
    display: grid !important;
    grid-template-columns: var(--pf-wf-circle-size) minmax(0, 1fr);
    column-gap: 16px;
    align-items: center;
    text-align: left !important;
  }

  .pf-workflow-process.is-mobile-vertical.is-mobile-icon-left .pf-wf__circle-wrap {
    grid-column: 1;
    grid-row: 1;
    justify-self: center;
    align-self: flex-start;
    order: initial;
  }

  .pf-workflow-process.is-mobile-vertical.is-mobile-icon-left .pf-wf__content {
    grid-column: 2;
    grid-row: 1;
    width: 100%;
    align-self: center;
    text-align: left !important;
    order: initial;
  }

  .pf-workflow-process.is-mobile-vertical.is-mobile-icon-left .pf-wf__step,
  .pf-workflow-process.is-mobile-vertical.is-mobile-icon-left .pf-wf__title,
  .pf-workflow-process.is-mobile-vertical.is-mobile-icon-left .pf-wf__desc {
    text-align: left !important;
  }

  .pf-workflow-process.is-mobile-vertical.is-mobile-icon-left.is-line .pf-wf__item:not(:last-child)::after {
    left: calc(var(--pf-wf-circle-size) / 2);
  }
}


/* v1.1.4 — auto responsive 1-column line fix
   Khi Fit row / inner row = Auto responsive và Cột khi 1/2 row = 1,
   block có thể thành 1 cột theo container width dù Mobile vertical = No.
   Khi đó line desktop ngang phải đổi thành line dọc giữa các icon. */
@container (max-width: 760px) {
  .pf-workflow-process.is-fit-auto.is-line .pf-wf__item:not(:last-child)::after {
    content: "" !important;
    position: absolute !important;
    z-index: 0 !important;
    top: var(--pf-wf-circle-size) !important;
    left: 50% !important;
    width: 0 !important;
    height: calc(100% + var(--pf-wf-gap) - var(--pf-wf-circle-size)) !important;
    border-top: 0 !important;
    border-left: var(--pf-wf-line-width) var(--pf-wf-line-style) var(--pf-wf-line-color) !important;
    pointer-events: none !important;
  }

  .pf-workflow-process.is-fit-auto.is-mobile-icon-left.is-line .pf-wf__item:not(:last-child)::after {
    left: calc(var(--pf-wf-circle-size) / 2) !important;
  }
}

@media (max-width: 1024px) {
  .pf-workflow-process.is-fit-auto.is-line .pf-wf__items[style],
  .pf-workflow-process.is-fit-auto.is-line .pf-wf__items {
    position: relative;
  }
}


/* v1.1.4 — stable 800-900px behavior
   Không dùng @container 760px để ép 1 cột ở vùng 800-900px nữa.
   768px trở lên dùng Tablet/Desktop columns. Dưới 767px mới dùng Mobile columns/timeline. */
@media (min-width: 768px) {
  .pf-workflow-process.is-fit-auto .pf-wf__items,
  .pf-workflow-process.is-fit-auto.is-flex .pf-wf__items {
    display: grid !important;
    grid-template-columns: repeat(var(--pf-wf-cols-tablet), minmax(0, 1fr)) !important;
  }

  .pf-workflow-process.is-fit-auto.is-line .pf-wf__item:not(:last-child)::after {
    content: "" !important;
    position: absolute !important;
    z-index: 0 !important;
    top: var(--pf-wf-line-top) !important;
    left: var(--pf-wf-line-offset) !important;
    width: calc(100% + var(--pf-wf-gap)) !important;
    height: 0 !important;
    border-left: 0 !important;
    border-top: var(--pf-wf-line-width) var(--pf-wf-line-style) var(--pf-wf-line-color) !important;
  }
}

@media (min-width: 1025px) {
  .pf-workflow-process.is-fit-auto .pf-wf__items,
  .pf-workflow-process.is-fit-auto.is-flex .pf-wf__items {
    grid-template-columns: repeat(var(--pf-wf-cols-desktop), minmax(0, 1fr)) !important;
  }
}

/* Chỉ dưới mobile thật mới cho Auto responsive dùng Cột khi 1/2 row */
@media (max-width: 767px) {
  .pf-workflow-process.is-fit-auto .pf-wf__items,
  .pf-workflow-process.is-fit-auto.is-flex .pf-wf__items {
    grid-template-columns: repeat(var(--pf-wf-cols-mobile), minmax(0, 1fr)) !important;
  }

  .pf-workflow-process.is-fit-auto[style*="--pf-wf-half-cols:1"] .pf-wf__items,
  .pf-workflow-process.is-fit-auto.is-flex[style*="--pf-wf-half-cols:1"] .pf-wf__items {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}
