/*
 * Elementor 호환 최소 스타일 — 이관된 페이지(wp-import)가 Elementor 플러그인 없이도
 * 같은 레이아웃으로 보이도록, 컨테이너 CSS 변수(--flex-direction, --gap …)를 해석한다.
 * Elementor 의 페이지별 CSS(post-{id}.css)·글로벌 키트 CSS 와 함께 쓰인다.
 */
.elementor { --container-max-width: 1240px; }
.elementor, .elementor * { box-sizing: border-box; }
.elementor img { max-width: 100%; height: auto; vertical-align: middle; }

/* 플렉스 컨테이너 */
.e-con {
  --display: flex; --flex-direction: column; --flex-wrap: nowrap; --justify-content: normal; --align-items: normal; --align-content: normal;
  --row-gap: var(--widgets-spacing-row, 20px); --column-gap: var(--widgets-spacing-column, 20px);
  --width: 100%; --min-height: initial; --content-width: min(100%, var(--container-max-width, 1240px));
  --padding-top: 10px; --padding-right: 10px; --padding-bottom: 10px; --padding-left: 10px;
  --margin-top: 0px; --margin-right: 0px; --margin-bottom: 0px; --margin-left: 0px;
  --flex-grow: 0; --flex-shrink: 1; --flex-basis: auto;
  --container-widget-width: 100%; --container-widget-flex-grow: 0;
  position: relative; display: var(--display); width: var(--width); max-width: 100%; min-width: 0; min-height: var(--min-height);
  flex: var(--flex-grow) var(--flex-shrink) var(--flex-basis);
  margin: var(--margin-top) var(--margin-right) var(--margin-bottom) var(--margin-left);
}
.e-con-full { flex-direction: var(--flex-direction); flex-wrap: var(--flex-wrap); justify-content: var(--justify-content); align-items: var(--align-items); align-content: var(--align-content);
  gap: var(--row-gap) var(--column-gap); padding: var(--padding-top) var(--padding-right) var(--padding-bottom) var(--padding-left); }
.e-con-boxed { flex-direction: column; padding: var(--padding-top) var(--padding-right) var(--padding-bottom) var(--padding-left); }
.e-con > .e-con-inner { display: var(--display); flex-direction: var(--flex-direction); flex-wrap: var(--flex-wrap); justify-content: var(--justify-content); align-items: var(--align-items); align-content: var(--align-content);
  gap: var(--row-gap) var(--column-gap); width: 100%; max-width: var(--content-width); margin: 0 auto; flex-grow: 1; }
[data-elementor-id] > .e-con { --margin-left: auto; --margin-right: auto; max-width: min(100%, var(--width)); }
.e-con > .elementor-widget, .e-con > .e-con-inner > .elementor-widget { max-width: 100%; }
.e-con-full > .elementor-widget, .e-con > .e-con-inner > .elementor-widget { width: var(--container-widget-width); flex-grow: var(--container-widget-flex-grow); }
.e-con .elementor-widget { margin-bottom: 0; }

/* 섹션/컬럼(구형 레이아웃) */
.elementor-section { position: relative; }
.elementor-section > .elementor-container { display: flex; margin: 0 auto; position: relative; flex-wrap: wrap; }
.elementor-column { position: relative; display: flex; min-height: 1px; }
.elementor-widget-wrap { position: relative; width: 100%; display: flex; flex-wrap: wrap; align-content: flex-start; }
.elementor-element-populated { padding: 10px; }
.elementor-widget-wrap > .elementor-element { width: 100%; }
.elementor-widget:not(:last-child) { margin-bottom: 20px; }
.e-con .elementor-widget:not(:last-child) { margin-bottom: 0; }

/* 위젯 기본 */
.elementor-widget-container { position: relative; }
.elementor-heading-title { margin: 0; padding: 0; line-height: 1.3; }
.elementor-heading-title a { color: inherit; text-decoration: none; }
.elementor-text-editor p:last-child { margin-bottom: 0; }
.elementor-button-wrapper { width: 100%; }
.elementor-button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 12px 24px; border-radius: 9999px; background-color: var(--e-global-color-accent, var(--c-accent, #F97316)); color: #fff; font-weight: 700; font-size: 15px; line-height: 1; text-decoration: none; transition: filter .15s; }
.elementor-button:hover { filter: brightness(1.06); }
.elementor-spacer-inner { height: var(--spacer-size, 50px); }
.elementor-icon { display: inline-flex; align-items: center; justify-content: center; font-size: 40px; line-height: 1; color: var(--e-global-color-primary, var(--c-accent, #F97316)); }
.elementor-icon i { display: block; }
.elementor-icon-box-wrapper { display: flex; flex-direction: column; gap: 12px; }
.elementor-icon-box-title { margin: 0; font-size: 18px; }
.elementor-icon-box-description { margin: 0; color: var(--c-muted, #9AA0AC); }
.elementor-icon-list-items { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.elementor-icon-list-item { display: flex; align-items: center; gap: 8px; }
.elementor-icon-list-item .elementor-icon { font-size: 14px; }
.elementor-image-box-wrapper { display: flex; flex-direction: column; gap: 12px; }
.en-tabs-legacy details { border: 1px solid var(--c-line, #e3e4ee); border-radius: 14px; margin-bottom: 10px; background: #fff; }
.en-tabs-legacy summary { padding: 14px 18px; cursor: pointer; font-weight: 700; }
.en-carousel-legacy { display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 6px; }
.en-carousel-legacy > * { flex: 0 0 min(320px, 85%); scroll-snap-align: start; }

/* 반응형 숨김 (Elementor 기준 폭) */
@media (min-width: 1025px) { .elementor .elementor-hidden-desktop { display: none !important; } }
@media (min-width: 768px) and (max-width: 1024px) { .elementor .elementor-hidden-tablet { display: none !important; } }
@media (max-width: 767px) {
  .elementor .elementor-hidden-mobile { display: none !important; }
  /* 옮겨 온 컨테이너는 PC 폭(--width:35% 등)을 style 속성에 갖고 있어 일반 규칙으로는 못 덮는다 — Elementor 기본처럼 휴대폰에서는 꽉 차게 */
  .e-con.e-flex { --width: 100% !important; --flex-wrap: wrap; }
  .e-con-full, .e-con > .e-con-inner { flex-wrap: wrap; }
  .elementor-column { width: 100% !important; }
}
