/* SSIM Process Section — scoped to .ssimps-root only */

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

.ssimps-root {
  --ssimps-blue: #e07020;
  --ssimps-blue-deep: #b85918;
  --ssimps-text: #111111;
  --ssimps-muted: #777777;
  --ssimps-hairline: #dadada;
  --ssimps-panel: #e8edf1;
  --ssimps-quote-blue: #e07020;
  --ssimps-radius-hero: 96px;
  --ssimps-radius-thumb: 9px;
  --ssimps-shadow-panel: 0 22px 56px rgba(55, 30, 12, 0.07);
  --ssimps-card-gap: 16px;
  --ssimps-rule-h: 1px;
  --ssimps-pad-x: 50px;

  font-family: Pretendard, -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-size: 16px;
  line-height: normal;
  color: var(--ssimps-text);
  -webkit-font-smoothing: antialiased;
  background: #ffffff;
  padding-top: clamp(2.5rem, 7vw, 5.5rem);
}

.ssimps-root img {
  display: block;
  max-width: 100%;
  height: auto;
}

.ssimps-root .ssimps-board {
  width: 100%;
  max-width: 1744px;
  min-height: 902px;
  margin: 0 auto;
  position: relative;
  overflow: hidden;
}

.ssimps-root .ssimps-cards-viewport {
  width: 100%;
}

.ssimps-root .ssimps-hero {
  position: relative;
  isolation: isolate;
  padding: 20px var(--ssimps-pad-x) 0;
  display: grid;
  grid-template-columns: minmax(0, 436px) minmax(0, 1fr);
  grid-column-gap: 32px;
  align-items: start;
}

.ssimps-root .ssimps-hero__shape {
  position: absolute;
  left: 118px;
  top: 38px;
  width: 420px;
  height: 420px;
  background: #f4f6f8;
  opacity: 0.72;
  transform: rotate(36deg);
  transform-origin: center;
  pointer-events: none;
  border-radius: 48px;
  z-index: -1;
}

.ssimps-root .ssimps-hero__text {
  grid-column: 1;
  position: relative;
  z-index: 1;
  padding-top: 32px;
  max-width: 436px;
}

.ssimps-root .ssimps-hero__eyebrow {
  margin: 0 0 9px;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  color: var(--ssimps-blue);
}

.ssimps-root .ssimps-hero__title {
  margin: 0 0 16px;
  font-size: 2.3rem;
  font-weight: 800;
  line-height: 1.045;
  letter-spacing: -0.038em;
}

.ssimps-root .ssimps-hero__lead {
  margin: 0 0 13px;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.54;
  letter-spacing: -0.022em;
  color: #141414;
}

.ssimps-root .ssimps-hero__body {
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.64;
  letter-spacing: -0.012em;
  color: var(--ssimps-muted);
}

.ssimps-root .ssimps-hero__media {
  grid-column: 2;
  position: relative;
  z-index: 1;
  min-width: 0;
  padding-top: 20px;
  padding-left: 2px;
}

.ssimps-root .ssimps-hero__panel {
  background: var(--ssimps-panel);
  border-radius: var(--ssimps-radius-hero) 0 var(--ssimps-radius-hero) 0;
  display: flex;
  min-height: 322px;
  overflow: hidden;
  align-items: stretch;
  box-shadow: var(--ssimps-shadow-panel);
}

.ssimps-root figure.ssimps-hero__quote {
  margin: 0;
  flex: 0 0 286px;
  padding: 32px 20px 28px 32px;
  position: relative;
}

.ssimps-root .ssimps-hero__quote-mark {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 54px;
  line-height: 1;
  color: var(--ssimps-quote-blue);
  opacity: 0.95;
}

.ssimps-root .ssimps-hero__quote-mark--open {
  margin-bottom: 8px;
}

.ssimps-root .ssimps-hero__quote-line {
  height: 2px;
  width: 138px;
  background: var(--ssimps-quote-blue);
  margin-bottom: 16px;
  border-radius: 2px;
}

.ssimps-root blockquote.ssimps-hero__quote-text {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.66;
  letter-spacing: -0.022em;
  color: #161616;
  padding: 0;
  border: none;
}

.ssimps-root .ssimps-hero__quote-mark--close {
  margin-top: 18px;
}

.ssimps-root .ssimps-hero__figure {
  flex: 1;
  position: relative;
  min-width: 0;
}

.ssimps-root .ssimps-hero__figure-mask {
  height: 100%;
  min-height: 322px;
  position: relative;
  border-radius: 0;
  overflow: hidden;
}

.ssimps-root .ssimps-hero__figure-mask::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(
    90deg,
    #e8edf1 0%,
    rgba(232, 237, 241, 0.9) 14%,
    rgba(232, 237, 241, 0) 46%
  );
}

.ssimps-root .ssimps-hero__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 44%;
}

.ssimps-root .ssimps-cards {
  position: relative;
  padding: 26px var(--ssimps-pad-x) 40px;
  display: flex;
  gap: var(--ssimps-card-gap);
  align-items: stretch;
}

.ssimps-root article.ssimps-card {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  padding-top: 2px;
  margin: 0;
}

.ssimps-root .ssimps-card__num {
  font-size: 24px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ssimps-blue);
  margin-bottom: 10px;
}

.ssimps-root h2.ssimps-card__title {
  margin: 0 0 8px;
  font-size: 16px;
  font-weight: 800;
  letter-spacing: -0.032em;
  line-height: 1.24;
  padding: 0;
}

.ssimps-root .ssimps-card__rule {
  height: var(--ssimps-rule-h);
  width: 100%;
  background: var(--ssimps-blue);
  border-radius: 1px;
  margin-bottom: 11px;
}

.ssimps-root .ssimps-card__desc {
  margin: 0 0 10px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.62;
  letter-spacing: -0.018em;
  color: var(--ssimps-muted);
  flex: 1 1 auto;
}

.ssimps-root .ssimps-card__thumb {
  border-radius: var(--ssimps-radius-thumb);
  overflow: hidden;
  aspect-ratio: 530 / 335;
  background: #dde2e6;
}

.ssimps-root .ssimps-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Scroll reveal (enabled via .ssimps-root--motion from JS when motion OK) */
.ssimps-root [data-ssimps-reveal],
.ssimps-root article.ssimps-card {
  transition:
    opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.7s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.35s ease;
}

.ssimps-root--motion .ssimps-hero__text[data-ssimps-reveal]:not(.ssimps-reveal--visible) {
  opacity: 0;
  transform: translate3d(-28px, 0, 0);
}

.ssimps-root--motion .ssimps-hero__media[data-ssimps-reveal]:not(.ssimps-reveal--visible) {
  opacity: 0;
  transform: translate3d(32px, 0, 0);
}

.ssimps-root--motion .ssimps-cards-viewport .ssimps-card:not(.ssimps-reveal--visible) {
  opacity: 0;
  transform: translate3d(0, 36px, 0);
}

.ssimps-root .ssimps-reveal--visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* Hover polish — precise pointers only, skip when user prefers reduced motion */
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .ssimps-root .ssimps-hero__panel {
    transition:
      transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),
      box-shadow 0.4s ease;
  }

  .ssimps-root .ssimps-hero__panel:hover {
    transform: translateY(-5px);
    box-shadow: 0 30px 70px rgba(55, 30, 12, 0.14);
  }

  .ssimps-root article.ssimps-card {
    transition:
      opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
      transform 0.7s cubic-bezier(0.22, 1, 0.36, 1),
      box-shadow 0.35s ease;
  }

  .ssimps-root article.ssimps-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 44px rgba(17, 17, 17, 0.08);
  }

  .ssimps-root article.ssimps-card:hover .ssimps-card__title {
    color: var(--ssimps-blue-deep);
  }

  .ssimps-root .ssimps-card__thumb img {
    transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
  }

  .ssimps-root article.ssimps-card:hover .ssimps-card__thumb img {
    transform: scale(1.045);
  }

  .ssimps-root .ssimps-card__title {
    transition: color 0.25s ease;
  }
}

@media (max-width: 768px) {
  .ssimps-root {
    --ssimps-pad-x: 18px;
    --ssimps-radius-hero: 28px;
  }

  .ssimps-root .ssimps-board {
    min-height: unset;
    overflow-x: clip;
  }

  .ssimps-root .ssimps-hero {
    grid-template-columns: 1fr;
    grid-column-gap: 0;
    row-gap: 8px;
    padding: 16px var(--ssimps-pad-x) 0;
  }

  .ssimps-root .ssimps-hero__shape {
    display: none;
  }

  .ssimps-root .ssimps-hero__text {
    grid-column: auto;
    max-width: none;
    padding-top: 8px;
  }

  .ssimps-root .ssimps-hero__title {
    font-size: clamp(1.55rem, 6.5vw, 2.3rem);
  }

  .ssimps-root .ssimps-hero__media {
    grid-column: auto;
    padding-top: 8px;
    padding-left: 0;
  }

  .ssimps-root .ssimps-hero__panel {
    flex-direction: column;
    min-height: unset;
    border-radius: var(--ssimps-radius-hero);
  }

  .ssimps-root figure.ssimps-hero__quote {
    flex: 1 1 auto;
    flex-basis: auto;
    max-width: none;
    padding: 24px 20px 20px;
  }

  .ssimps-root blockquote.ssimps-hero__quote-text {
    font-size: clamp(15px, 4vw, 18px);
  }

  .ssimps-root .ssimps-hero__figure-mask {
    min-height: 220px;
    aspect-ratio: 16 / 10;
  }

  .ssimps-root .ssimps-hero__figure-mask::after {
    background: linear-gradient(
      180deg,
      #e8edf1 0%,
      rgba(232, 237, 241, 0.35) 28%,
      rgba(232, 237, 241, 0) 55%
    );
  }

  .ssimps-root .ssimps-cards-viewport {
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: var(--ssimps-pad-x);
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    margin-inline: calc(-1 * var(--ssimps-pad-x));
    padding-inline: var(--ssimps-pad-x);
    width: auto;
  }

  .ssimps-root .ssimps-cards-viewport::-webkit-scrollbar {
    display: none;
  }

  .ssimps-root .ssimps-cards {
    padding: 20px 0 36px;
    flex-wrap: nowrap;
    gap: 12px;
    width: max-content;
    min-width: 100%;
    box-sizing: border-box;
  }

  .ssimps-root article.ssimps-card {
    flex: 0 0 calc(100vw - var(--ssimps-pad-x) * 2 - 48px);
    max-width: min(320px, calc(100vw - var(--ssimps-pad-x) * 2 - 48px));
    scroll-snap-align: center;
    scroll-snap-stop: always;
  }
}

@media (min-width: 769px) {
  .ssimps-root .ssimps-cards-viewport {
    overflow: visible;
  }

  .ssimps-root .ssimps-cards {
    width: auto;
    min-width: 0;
    flex-wrap: nowrap;
  }

  .ssimps-root article.ssimps-card {
    scroll-snap-align: unset;
  }
}
