.elementor-1338 .elementor-element.elementor-element-b4b17fb{--display:flex;--min-height:100vh;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-1338 .elementor-element.elementor-element-06a1a37{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--overlay-opacity:0.5;}.elementor-1338 .elementor-element.elementor-element-06a1a37::before, .elementor-1338 .elementor-element.elementor-element-06a1a37 > .elementor-background-video-container::before, .elementor-1338 .elementor-element.elementor-element-06a1a37 > .e-con-inner > .elementor-background-video-container::before, .elementor-1338 .elementor-element.elementor-element-06a1a37 > .elementor-background-slideshow::before, .elementor-1338 .elementor-element.elementor-element-06a1a37 > .e-con-inner > .elementor-background-slideshow::before, .elementor-1338 .elementor-element.elementor-element-06a1a37 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{--background-overlay:'';}.elementor-1338 .elementor-element.elementor-element-9218bca{--display:flex;--min-height:100vh;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:stretch;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-1338 .elementor-element.elementor-element-fcab26e{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-1338 .elementor-element.elementor-element-9462c7b{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--overflow:hidden;}.elementor-1338 .elementor-element.elementor-element-6ca0f7a{--display:flex;--min-height:100vh;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}@media(min-width:768px){.elementor-1338 .elementor-element.elementor-element-fcab26e{--width:50%;}.elementor-1338 .elementor-element.elementor-element-9462c7b{--width:50%;}}/* Start custom CSS */#pin-outer {
  position: relative;
}

#pin-inner {
  position: sticky !important;
  top: 0 !important;
  height: 100vh !important;
  overflow: hidden;
  /* ยกเลิก Elementor default min-height เพราะเราใช้ height แทน */
  min-height: unset !important;
}

.left-panel {
  width: 45% !important;
  flex-shrink: 0 !important;
  display: flex;
  flex-direction: column;
  padding: 4rem 3rem 4rem 4rem;
  border-right: 1px solid rgba(255, 255, 255, 0.08);
  overflow-y: auto;
  overflow-x: hidden;
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.left-panel::-webkit-scrollbar { display: none; }

.right-panel {
  width: 55% !important;
  flex: 1 !important;
  position: relative;
  overflow: hidden;
  padding: 4rem 3rem 4rem 4rem;
}

.sty-steps-wrapper {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: 2rem;
}

/* แต่ละ step item (div block ที่มี data-step) */
[data-step] {
  position: relative;
  padding: 1.25rem 0 1.25rem 2rem;
  border-top: 1px solid rgba(255,255,255,0.07);
  cursor: default;
  transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

[data-step]:last-child {
  border-bottom: 1px solid rgba(255,255,255,0.07);
}

/* เส้นแนวตั้งซ้าย (indicator) */
[data-step]::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 2px;
  background: rgba(255,255,255,0.1);
  transition: background 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Heading ภายใน step (e-heading tag h3) */
[data-step] .e-heading,
[data-step] h3 {
  font-size: 1rem !important;
  font-weight: 700 !important;
  color: rgba(0,0,0,0.3) !important;
  margin-bottom: 0 !important;
  transition: color 0.5s cubic-bezier(0.4, 0, 0.2, 1) !important;
  line-height: 1.3 !important;
}

/* Paragraph ภายใน step — ซ่อนไว้ก่อน */
[data-step] p,
[data-step] .e-paragraph {
  font-size: 0.85rem !important;
  color: rgba(0,0,0,0.25) !important;
  line-height: 1.6 !important;
  margin-top: 0.4rem !important;
  margin-bottom: 0 !important;
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition:
    max-height 0.5s cubic-bezier(0.4, 0, 0.2, 1),
    opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1),
    color 0.5s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

/* ── Active Step ─────────────────────────────────────────── */
[data-step].sty-active::before {
  background: var(--color-primary); /* accent color — เปลี่ยนได้ */
}

[data-step].sty-active h3,
[data-step].sty-active .e-heading {
  color: #000000 !important;
}

[data-step].sty-active p,
[data-step].sty-active .e-paragraph {
  max-height: 16rem;
  opacity: 1 !important;
  color: rgba(0,0,0,0.6) !important;
}

/* ── Past Step ───────────────────────────────────────────── */
[data-step].sty-past::before {
  background: var(--color-primary-soft);
}

[data-step].sty-past h3,
[data-step].sty-past .e-heading {
  color: rgba(0,0,0,0.4) !important;
}

/* ──────────────────────────────────────────────────────────
   6. RIGHT PANEL — Slides (e-image หรือ container ที่ซ้อนใน right-panel)
   JS จะ toggle class sty-active บน slide ที่ตรงกับ step
   ────────────────────────────────────────────────────────── */

/* Slide wrapper ใน right panel */
.sty-slide {
  position: absolute !important;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  opacity: 0;
  transform: translateY(20px) scale(0.98);
  transition:
    opacity 0.6s cubic-bezier(0.4, 0, 0.2, 1),
    transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
  pointer-events: none;
  /* will-change เพื่อ GPU compositing — CWV friendly */
  will-change: opacity, transform;
}

.sty-slide.sty-active {
  opacity: 1 !important;
  transform: translateY(0) scale(1) !important;
  pointer-events: auto;
}

/* ── Progress Counter (optional) ── */
.sty-counter {
  position: absolute;
  top: 1.5rem;
  left: 1.5rem;
  z-index: 10;
  font-size: 0.7rem;
  letter-spacing: 0.15em;
  color: rgba(255,255,255,0.3);
  pointer-events: none;
}

/* ── Progress Dots (optional) ── */
.sty-dots {
  position: absolute;
  bottom: 1.5rem;
  right: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  z-index: 10;
  pointer-events: none;
}

.sty-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: rgba(255,255,255,0.2);
  transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.sty-dot.sty-active {
  background: var(--color-primary);
  transform: scale(1.6);
}

.sty-dot.sty-past {
  background: var(--color-primary-soft);
}

/* ──────────────────────────────────────────────────────────
   7. RESPONSIVE — Mobile < 900px
   ปลด sticky + เรียง Single Column
   Elementor จัดการ breakpoint ผ่าน UI ได้ด้วย
   ────────────────────────────────────────────────────────── */
@media (max-width: 900px) {
  #pin-outer {
    height: auto !important;
  }

  #pin-inner {
    position: relative !important;
    height: auto !important;
    flex-direction: column !important;
  }

  .left-panel,
  .right-panel {
    width: 100% !important;
  }

  .left-panel {
    padding: 2.5rem 1.5rem !important;
    border-right: none !important;
    border-bottom: 1px solid rgba(255,255,255,0.08) !important;
  }

  /* mobile: แสดงทุก step โดยไม่ต้องมี active class */
  [data-step] p,
  [data-step] .e-paragraph {
    max-height: 200px !important;
    opacity: 1 !important;
  }

  .sty-slide {
    position: relative !important;
    opacity: 1 !important;
    transform: none !important;
    pointer-events: auto !important;
    margin-bottom: 1rem;
    min-height: 50vh;
  }

  .right-panel {
    overflow: visible !important;
    display: flex;
    flex-direction: column;
  }

  .sty-dots,
  .sty-counter { display: none; }
}

/* ──────────────────────────────────────────────────────────
   8. PREFERS REDUCED MOTION
   ────────────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  [data-step],
  [data-step]::before,
  [data-step] h3,
  [data-step] .e-heading,
  [data-step] p,
  [data-step] .e-paragraph,
  .sty-slide,
  .sty-dot {
    transition: none !important;
    animation: none !important;
  }
}

/* ──────────────────────────────────────────────────────────
   9. Hello Theme — Override ค่า default ที่รบกวน
   ────────────────────────────────────────────────────────── */

/* ยกเลิก max-width ของ .site-content ที่ครอบ section */
#pin-outer .elementor-container,
#pin-inner.elementor-container {
  max-width: 100% !important;
  padding: 0 !important;
}

/* ป้องกัน Elementor เพิ่ม margin/padding ให้ inner containers */
#pin-inner > .elementor-container {
  flex: 1;
  height: 100%;
}/* End custom CSS */