/* All Curri — scoped under .allcurri-root */



.allcurri-root {
  --allcurri-color-accent: #e60012;
  --allcurri-color-text: #111111;
  --allcurri-color-muted: #666666;
  --allcurri-color-white: #ffffff;
  --allcurri-color-border: #eeeeee;
  --allcurri-font-family: "Pretendard", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif;

  --allcurri-box-padding: 24px;
  --allcurri-radius: 12px;
  --allcurri-max-width: 1770px;
  --allcurri-section-gap: 20px;
  --allcurri-icon-size: 50px;
  --allcurri-icon-inner: 26px;
  --allcurri-prep-icon-size: 46px;
  --allcurri-prep-icon-inner: 22px;
  --allcurri-connector-width: 24px;
  --allcurri-step-card-min-height: 198px;

  --allcurri-text-section: 1.2rem;
  --allcurri-text-step-title: 1rem;
  --allcurri-text-step-desc: 0.9rem;
  --allcurri-text-body: 0.9rem;
  --allcurri-text-fee: 0.9rem;
  --allcurri-text-badge: 0.75rem;

  font-family: var(--allcurri-font-family);
  color: var(--allcurri-color-text);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
}

.allcurri-root *,
.allcurri-root *::before,
.allcurri-root *::after {
  box-sizing: border-box;
}

.allcurri-root h2,
.allcurri-root h3,
.allcurri-root p,
.allcurri-root ul {
  margin: 0;
  padding: 0;
}

.allcurri-root ul {
  list-style: none;
}

.allcurri-root img {
  display: block;
  max-width: 100%;
  border: 0;
}

.allcurri-root .allcurri-icon-img {
  display: block;
  object-fit: contain;
}

/* ── WordPress embed (no preview wrapper) ── */
.allcurri-root:not(.allcurri-preview) {
  width: 100%;
  background: transparent;
}

/* ── Compare mode (fixed viewport for screenshot) ── */
body.allcurri-compare-mode {
  width: 1844px;
  height: 853px;
  overflow: hidden;
}

body.allcurri-compare-mode .allcurri-root.allcurri-preview {
  padding: 37px 37px 0;
  min-height: 853px;
}

/* ── Preview wrapper ── */
.allcurri-root.allcurri-preview {
  display: flex;
  justify-content: center;
  width: 100%;
  padding: 37px 37px 40px;
  background: var(--allcurri-color-white);
}

.allcurri-root .allcurri-inner {
  display: flex;
  flex-direction: column;
  gap: var(--allcurri-section-gap);
  width: 100%;
  max-width: var(--allcurri-max-width);
}

/* ── Section title ── */
.allcurri-root .allcurri-section-title {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 11px;
  font-size: var(--allcurri-text-section);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--allcurri-color-text);
}

.allcurri-root .allcurri-section-title::before {
  content: "";
  flex-shrink: 0;
  width: 16px;
  height: 3px;
  background: var(--allcurri-color-accent);
  border-radius: 2px;
}

/* ── Process section ── */
.allcurri-root .allcurri-process__track {
  display: grid;
  grid-template-columns: 1fr var(--allcurri-connector-width) 1fr var(--allcurri-connector-width) 1fr var(--allcurri-connector-width) 1fr var(--allcurri-connector-width) 1fr var(--allcurri-connector-width) 1fr;
  align-items: stretch;
}

.allcurri-root .allcurri-step-card {
  min-width: 0;
  min-height: var(--allcurri-step-card-min-height);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: var(--allcurri-box-padding);
  background: var(--allcurri-color-white);
  border: 1px solid var(--allcurri-color-border);
  border-radius: var(--allcurri-radius);
  gap: 6px;
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.allcurri-root .allcurri-step-card.allcurri-is-visible {
  opacity: 1;
  transform: translateY(0);
}

.allcurri-root .allcurri-step-card__icon {
  flex-shrink: 0;
  width: var(--allcurri-icon-size);
  height: var(--allcurri-icon-size);
  border-radius: 50%;
  border: 1px solid var(--allcurri-color-border);
  display: flex;
  align-items: center;
  justify-content: center;
}

.allcurri-root .allcurri-step-card__icon .allcurri-icon-img {
  width: var(--allcurri-icon-inner);
  height: var(--allcurri-icon-inner);
}

.allcurri-root .allcurri-step-card__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  padding: 1px 8px;
  font-size: var(--allcurri-text-badge);
  font-weight: 600;
  color: var(--allcurri-color-white);
  background: var(--allcurri-color-accent);
  border-radius: 999px;
  letter-spacing: 0.02em;
  line-height: 1.5;
}

.allcurri-root .allcurri-step-card__title {
  font-size: var(--allcurri-text-step-title);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -0.02em;
  color: var(--allcurri-color-text);
  word-break: keep-all;
}

.allcurri-root .allcurri-step-card__desc {
  font-size: var(--allcurri-text-step-desc);
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: -0.01em;
  color: var(--allcurri-color-muted);
  word-break: keep-all;
  margin-top: auto;
}

/* ── Dashed connector between cards ── */
.allcurri-root .allcurri-step-connector {
  align-self: start;
  position: relative;
  width: 100%;
  margin-top: calc(var(--allcurri-box-padding) + var(--allcurri-icon-size) / 2 - 1px);
  border-top: 2px dashed var(--allcurri-color-accent);
}

.allcurri-root .allcurri-step-connector::after {
  content: "";
  position: absolute;
  right: -1px;
  top: -5px;
  width: 0;
  height: 0;
  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
  border-left: 7px solid var(--allcurri-color-accent);
}

/* ── Bottom info box ── */
.allcurri-root .allcurri-info {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  padding: var(--allcurri-box-padding);
  background: var(--allcurri-color-white);
  border: 1px solid var(--allcurri-color-border);
  border-radius: var(--allcurri-radius);
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.allcurri-root .allcurri-info.allcurri-is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* ── Preparation list ── */
.allcurri-root .allcurri-prep-list {
  display: flex;
  justify-content: space-between;
  gap: 4px;
}

.allcurri-root .allcurri-prep-item {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 7px;
  text-align: center;
}

.allcurri-root .allcurri-prep-item__icon {
  flex-shrink: 0;
  width: var(--allcurri-prep-icon-size);
  height: var(--allcurri-prep-icon-size);
  border-radius: 50%;
  border: 1px solid var(--allcurri-color-border);
  display: flex;
  align-items: center;
  justify-content: center;
}

.allcurri-root .allcurri-prep-item__icon .allcurri-icon-img {
  width: var(--allcurri-prep-icon-inner);
  height: var(--allcurri-prep-icon-inner);
}

.allcurri-root .allcurri-prep-item__label {
  font-size: var(--allcurri-text-body);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: -0.01em;
  color: var(--allcurri-color-text);
  word-break: keep-all;
}

/* ── Fee section ── */
.allcurri-root .allcurri-fee-notes {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-bottom: 11px;
}

.allcurri-root .allcurri-fee-notes li {
  position: relative;
  padding-left: 10px;
  font-size: var(--allcurri-text-body);
  font-weight: 400;
  line-height: 1.48;
  color: var(--allcurri-color-muted);
  word-break: keep-all;
}

.allcurri-root .allcurri-fee-notes li::before {
  content: "•";
  position: absolute;
  left: 0;
  color: var(--allcurri-color-muted);
}

.allcurri-root .allcurri-fee-tables {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.allcurri-root .allcurri-fee-table {
  padding: var(--allcurri-box-padding);
  background: var(--allcurri-color-white);
  border: 1px solid var(--allcurri-color-border);
  border-radius: var(--allcurri-radius);
}

.allcurri-root .allcurri-fee-row {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 6px;
  padding: 8px 0;
  border-bottom: 1px solid var(--allcurri-color-border);
}

.allcurri-root .allcurri-fee-row--last {
  border-bottom: none;
  padding-bottom: 0;
}

.allcurri-root .allcurri-fee-row:first-child {
  padding-top: 0;
}

.allcurri-root .allcurri-fee-row__course {
  font-size: var(--allcurri-text-fee);
  font-weight: 600;
  color: var(--allcurri-color-accent);
  word-break: keep-all;
}

.allcurri-root .allcurri-fee-row__chevron {
  font-size: var(--allcurri-text-fee);
  font-weight: 600;
  color: var(--allcurri-color-accent);
  text-align: center;
}

.allcurri-root .allcurri-fee-row__price {
  font-size: var(--allcurri-text-fee);
  font-weight: 500;
  color: var(--allcurri-color-text);
  text-align: right;
  word-break: keep-all;
}

/* ── Compare mode: skip entrance animation ── */
body.allcurri-compare-mode .allcurri-root .allcurri-step-card,
body.allcurri-compare-mode .allcurri-root .allcurri-info {
  opacity: 1;
  transform: none;
  transition: none;
}

/* ── Responsive ── */
@media (max-width: 1200px) {
  .allcurri-root .allcurri-process__track {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
  }

  .allcurri-root .allcurri-step-connector {
    display: none;
  }

  .allcurri-root .allcurri-step-card {
    flex: 1 1 calc(33.333% - 12px);
  }

  .allcurri-root .allcurri-info {
    grid-template-columns: 1fr;
  }

  .allcurri-root .allcurri-prep-list {
    flex-wrap: wrap;
    justify-content: center;
  }

  .allcurri-root .allcurri-prep-item {
    flex: 0 1 calc(33.333% - 12px);
  }
}

@media (max-width: 768px) {
  .allcurri-root {
    --allcurri-text-section: 1rem;
    --allcurri-text-step-title: 0.8rem;
    --allcurri-text-step-desc: 0.75rem;
    --allcurri-text-body: 0.75rem;
    --allcurri-text-fee: 0.75rem;
    --allcurri-text-badge: 0.65rem;
  }

  .allcurri-root .allcurri-step-card {
    flex: 1 1 100%;
  }

  .allcurri-root .allcurri-fee-tables {
    grid-template-columns: 1fr;
  }

  .allcurri-root .allcurri-prep-item {
    flex: 0 1 calc(50% - 8px);
  }
}
