/* AoT 공개 사이트(루트 도메인) 전용 스타일.
   앱 UI(aot-*)와 의도적으로 분리한다 — 두 사이트는 다른 디자인 시스템이고,
   여기 규칙이 앱 화면에 새면 안 된다. 모든 선택자는 .site- 로 시작한다. */

.site-root {
  margin: 0;
  background: var(--site-bg);
  color: var(--site-ink);
  font-family: var(--site-font);
  font-size: var(--site-text-base);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

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

.site-root img {
  max-width: 100%;
  display: block;
}

/* 스크롤바는 보이지 않게 하되 스크롤은 살린다 */
.site-root ::-webkit-scrollbar {
  width: 0;
  height: 0;
}

.site-root {
  scrollbar-width: none;
}

/* ── 타이포 ────────────────────────────────────────────────────────────── */
/* clamp 는 실측값에서 나왔다: 390px 에서 45/34/24/20, 1440px 에서 80/44/32/24
   태그 기본값은 :where() 로 감싸 명시도를 0 으로 둔다. 그래야 .site-eyebrow 처럼
   클래스로 준 값이 이긴다(예전에는 `.site-root p` 가 이겨 eyebrow 가 24px 로 나왔다). */

.site-h1,
:where(.site-root) h1 {
  margin: 0;
  font-weight: var(--site-weight-regular);
  font-size: var(--site-text-h1);
  line-height: 1;
  letter-spacing: -0.05em;
  color: var(--site-ink);
}

.site-h2,
:where(.site-root) h2 {
  margin: 0;
  font-weight: var(--site-weight-regular);
  font-size: var(--site-text-h2);
  line-height: 1.1;
  letter-spacing: -0.04em;
  color: var(--site-ink);
}

.site-h3,
:where(.site-root) h3 {
  margin: 0;
  font-weight: var(--site-weight-regular);
  font-size: var(--site-text-h3);
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: var(--site-ink);
}

.site-h4 {
  margin: 0;
  font-weight: var(--site-weight-regular);
  font-size: var(--site-text-h4);
  line-height: 1.3;
  letter-spacing: -0.02em;
  color: var(--site-ink);
}

.site-lead,
:where(.site-root) p {
  margin: 0;
  font-size: var(--site-text-body);
  line-height: 1.6;
  color: var(--site-muted);
}

@media (min-width: 768px) {
  .site-lead,
  :where(.site-root) p {
    line-height: 1.4;
  }
}

.site-eyebrow {
  font-size: var(--site-text-xs);
  line-height: 1.5;
  letter-spacing: 0;
  color: var(--site-muted);
  text-transform: none;
}

/* 원본의 단락 머리표는 옅은 회색 알약이다: 14px/21, 패딩 6·16, 모서리 32. */
.site-section-head > .site-eyebrow,
.site-hero .site-eyebrow,
.site-eyebrow--pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: fit-content;
  padding: 6px 16px;
  border-radius: var(--site-radius-2xl);
  background: var(--site-bg-soft);
}

/* 홈 첫 화면의 머리표에는 앞에 점이 있다. */
.site-eyebrow--dot {
  padding-left: 10px;
}

.site-eyebrow--dot::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--site-ink);
  box-shadow: 0 0 0 3px var(--site-line);
}

/* 글 분류 — 먹색 반투명 알약에 흰 글자 */
.site-tag {
  display: inline-block;
  padding: 4px 8px;
  border-radius: 69px;
  background: var(--site-tag-bg);
  color: var(--site-bg);
  font-size: var(--site-text-xs);
  line-height: 1.5;
}

.site-muted {
  color: var(--site-muted);
}

.site-root a {
  color: inherit;
  text-decoration: none;
}

/* ── 레이아웃 ──────────────────────────────────────────────────────────── */

.site-wrap {
  width: 100%;
  /* 원본: 단락은 좌우 48 을 띄우고, 그 안의 내용은 1280 을 넘지 않는다. */
  max-width: calc(var(--site-max) + 2 * var(--site-pad-x));
  margin-inline: auto;
  padding-inline: var(--site-pad-x);
}

.site-main {
  display: flex;
  flex-direction: column;
  gap: var(--site-section-gap);
  /* 머리말이 떠 있으므로(fixed) 그 높이만큼 내려서 시작한다. */
  padding-top: var(--site-header-h);
  padding-bottom: var(--site-section-gap);
}

.site-section {
  display: flex;
  flex-direction: column;
  gap: var(--site-space-6);
}

.site-section-head {
  display: flex;
  flex-direction: column;
  gap: var(--site-space-4);
  max-width: 900px;
}

.site-section-head--center {
  align-items: center;
  text-align: center;
  margin-inline: auto;
}

/* 원본의 단락 설명은 20px/32, 폭 600 안쪽이다. */
.site-section-head > p:not(.site-eyebrow, .site-tag) {
  max-width: 600px;
  font-size: var(--site-text-card);
  line-height: 1.6;
}

/* 원본은 제목 전체를 <strong> 으로 감싼 곳이 있다(홈 첫 제목·단락 제목, 서비스 제목).
   글에 태그를 넣지 않고 모양으로 준다. */
.site-strong {
  font-weight: var(--site-weight-bold);
}

/* 홈·AoT·서비스·상담 상자의 h2 는 원본에서 회색이다(회사 소개·상담·약관은 먹색). */
.site-main--muted h2,
.site-section-head--muted h2,
.site-h2--muted {
  color: var(--site-muted);
}

.site-section-head--row {
  max-width: none;
  flex-direction: row;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--site-space-5);
}

@media (max-width: 767px) {
  .site-section-head--row {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* ── 버튼 ──────────────────────────────────────────────────────────────── */

/* `.site-root a { color: inherit }` 보다 명시도가 높아야 한다 — 낮으면
   어두운 배경의 버튼 글자가 같은 어두운 색으로 상속돼 안 보인다.
   원본 값: 163×51, 패딩 16·24, 16px/600, 자간 -0.16, 겹그림자, 오른쪽 화살표.
   마우스를 올리면 바탕이 갈색(--site-accent)으로 바뀐다. */
.site-root .site-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--site-space-1);
  padding: var(--site-space-3) var(--site-space-4);
  border: 0;
  border-radius: var(--site-radius-pill);
  background: var(--site-ink);
  box-shadow: var(--site-shadow-btn);
  color: var(--site-bg);
  font-family: var(--site-font);
  font-size: var(--site-text-base);
  font-weight: var(--site-weight-semibold);
  letter-spacing: -0.01em;
  line-height: 1.2;
  cursor: pointer;
  transition: background 200ms ease, box-shadow 200ms ease, color 200ms ease;
}

/* 화살표는 글자가 아니라 그림이다 — 버튼 문구(데이터)에 섞이지 않는다. */
.site-root .site-btn::after,
.site-link-arrow::after {
  content: "";
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  background: currentColor;
  -webkit-mask: var(--site-icon-arrow) center / contain no-repeat;
  mask: var(--site-icon-arrow) center / contain no-repeat;
}

.site-root {
  --site-icon-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
}

.site-root .site-btn:hover {
  background: var(--site-accent);
  box-shadow: var(--site-shadow-btn-hover);
}

/* 원본에 없는 두 번째 버튼(GitHub 등)은 테두리 버튼으로 둔다. */
.site-root .site-btn--ghost {
  background: transparent;
  box-shadow: inset 0 0 0 1px var(--site-ink);
  color: var(--site-ink);
}

.site-root .site-btn--ghost:hover {
  background: var(--site-ink);
  box-shadow: inset 0 0 0 1px var(--site-ink);
  color: var(--site-bg);
}

/* "View all →" 같은 글자 링크 */
.site-link-arrow {
  display: inline-flex;
  align-items: center;
  gap: var(--site-space-1);
  font-size: var(--site-text-base);
  font-weight: var(--site-weight-semibold);
  letter-spacing: -0.01em;
  color: var(--site-ink);
  white-space: nowrap;
}

.site-link-arrow::after {
  transition: transform 200ms ease;
}

.site-link-arrow:hover::after {
  transform: translateX(3px);
}

/* ── 헤더 / 내비게이션 ─────────────────────────────────────────────────── */
/* 원본: 화면 위에 떠 있고(fixed) 흰 불투명 바탕, 높이 72(휴대폰 64).
   내리면 숨고 올리면 나온다 — .is-hidden 은 motion.js 가 붙인다. */

.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 40;
  background: var(--site-bg);
  transition: transform var(--site-dur-fast) var(--site-ease-out);
}

.site-header.is-hidden {
  transform: translateY(-100%);
}

.site-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--site-space-6);
  height: var(--site-header-h);
  max-width: calc(var(--site-max) + 2 * var(--site-pad-x));
  margin-inline: auto;
  padding-inline: var(--site-pad-x);
}

/* 원본 로고는 48×36 그림(굵은 "AoT")이다. 그림 파일이 없어(PLAN 9-9) 글자로 크기·굵기를 맞춘다. */
.site-logo {
  font-size: var(--site-text-h4);
  font-weight: var(--site-weight-heavy);
  letter-spacing: -0.04em;
  line-height: 1;
  color: var(--site-ink);
}

.site-nav-links {
  display: flex;
  align-items: center;
  gap: var(--site-space-4);
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-nav-links a {
  display: inline-block;
  font-size: var(--site-text-nav);
  line-height: 1.6;
  color: var(--site-muted);
  transition: color 160ms ease;
}

.site-nav-links a:hover,
.site-nav-links a[aria-current="page"] {
  color: var(--site-ink);
}

/* 모바일 메뉴 — JS 없이 체크박스로 연다 */
.site-nav-toggle,
.site-nav-toggle-label {
  display: none;
}

/* 원본: 옅은 회색 40px 원 안에 선 두 개 */
.site-nav-toggle-label {
  width: 40px;
  height: 40px;
  position: relative;
  border-radius: 50%;
  background: var(--site-bg-soft);
  cursor: pointer;
}

.site-nav-toggle-label span,
.site-nav-toggle-label span::before {
  position: absolute;
  left: 12px;
  width: 16px;
  height: 1.5px;
  background: var(--site-ink);
  content: "";
  transition: transform 220ms ease, top 220ms ease;
}

.site-nav-toggle-label span {
  top: 16px;
}

.site-nav-toggle-label span::before {
  left: 0;
  top: 6px;
}

.site-nav-toggle:checked + .site-nav-toggle-label span {
  top: 19px;
  transform: rotate(45deg);
}

.site-nav-toggle:checked + .site-nav-toggle-label span::before {
  top: 0;
  transform: rotate(-90deg);
}

@media (max-width: 767px) {
  .site-nav-toggle-label {
    display: block;
  }

  .site-nav-links {
    position: absolute;
    top: var(--site-header-h);
    left: 0;
    right: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    background: var(--site-bg);
    max-height: 0;
    overflow: hidden;
    transition: max-height 220ms ease;
  }

  /* 원본: 메뉴를 열면 머리말 아래 화면 전체를 흰 판이 덮고, 글자는 24px 먹색·53 간격 */
  .site-nav-links a {
    display: block;
    padding: 12px var(--site-pad-x);
    font-size: var(--site-text-h3);
    line-height: 1.2;
    color: var(--site-ink);
  }

  .site-nav-links li {
    width: 100%;
  }

  .site-nav-lang {
    border-left: 0;
  }

  /* 메뉴가 열려 있는 동안 뒤의 페이지가 함께 굴러가지 않게 */
  html:has(.site-nav-toggle:checked) {
    overflow: hidden;
  }

  /* 닫혀 있을 때는 선도 판도 없다(예전에는 헤더 아래 1px 줄로 보였다). */
  .site-nav-toggle:checked ~ .site-nav-links {
    max-height: calc(100dvh - var(--site-header-h));
    height: calc(100dvh - var(--site-header-h));
    padding-top: var(--site-space-3);
    overflow-y: auto;
  }
}

/* ── 히어로 ────────────────────────────────────────────────────────────── */
/* 원본: 머리말 아래 56 을 띄우고 시작(휴대폰 40). 블록 사이 간격은 24. */

.site-hero {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--site-space-5);
  padding-top: 56px;
  text-align: center;
}

.site-hero-copy {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--site-space-4);
  max-width: 1000px;
}

.site-hero-media {
  width: 100%;
  border-radius: var(--site-radius);
  overflow: hidden;
}

.site-hero-media img {
  width: 100%;
  height: auto;
  object-fit: cover;
}

/* 홈: 영상이 머리말 바로 아래(1280×603, 모서리 32), 글은 그 아래 96 을 띄운다.
   리드는 폭 620, 버튼 위 24. */
/* 영상이 맨 위에 오는 첫 화면(홈·AoT): 머리말 바로 아래, 모서리 32, 글은 그 아래 96 */
.site-hero--media {
  padding-top: 0;
  gap: var(--site-space-8);
}

.site-hero--media > .site-video,
.site-hero--media > .site-embed {
  width: 100%;
  margin-top: 0;
  border-radius: var(--site-radius-2xl);
}

.site-hero--home .site-video video {
  aspect-ratio: 1280 / 603;
}

/* 원본 홈 리드는 24px 로 약 510 폭에서 줄을 바꾼다. */
.site-hero--home .site-hero-copy > p:not(.site-eyebrow) {
  max-width: 520px;
}

/* 원본의 첫 화면 리드는 폭 620 안에서 줄을 바꾼다. */
.site-hero-copy > p:not(.site-eyebrow, .site-note) {
  max-width: 620px;
}

@media (max-width: 767px) {
  .site-hero {
    padding-top: 40px;
  }

  .site-hero--media {
    padding-top: 0;
    gap: var(--site-space-6);
  }

  .site-hero--cover {
    padding-top: 0;
  }

  .site-hero--home .site-video video {
    aspect-ratio: 358 / 250;
  }
}

/* ── 카드 그리드 ───────────────────────────────────────────────────────── */

.site-grid {
  display: grid;
  gap: var(--site-space-6);
}

.site-grid--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.site-grid--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 1199px) {
  .site-grid--3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .site-grid--2,
  .site-grid--3 {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--site-space-5);
  }
}

.site-card {
  display: flex;
  flex-direction: column;
  gap: var(--site-space-4);
}

.site-card-media {
  border-radius: var(--site-radius);
  overflow: hidden;
  aspect-ratio: 3 / 2;
  background: var(--site-bg-soft);
}

/* 큰 카드(블로그 목록·홈 위 두 편)는 모서리 20 */
.site-card--lg .site-card-media {
  border-radius: var(--site-radius-lg);
}

.site-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 400ms ease;
}

.site-card:hover .site-card-media img {
  transform: scale(1.03);
}

/* 작은 카드(관련 글·홈 아래 세 편): 제목 24/800, 요약문 없음.
   요약문은 지우지 않고 가린다 — 화면에서 고치는 연결(data-field)이 그대로 남는다. */
.site-card--sm h3 {
  font-size: var(--site-text-h4);
  font-weight: var(--site-weight-heavy);
  line-height: 1.4;
  letter-spacing: -0.02em;
}

.site-card--sm .site-card-body > p {
  display: none;
}

.site-card-body {
  display: flex;
  flex-direction: column;
  gap: var(--site-space-2);
}

.site-card-meta {
  display: flex;
  align-items: center;
  gap: var(--site-space-2);
  font-size: var(--site-text-xs);
  color: var(--site-muted);
}

.site-card p {
  font-size: var(--site-text-card);
  line-height: 1.6;
}

/* ── 2열: 왼쪽 글 칸이 따라 내려오고 오른쪽에 카드가 쌓인다(홈 서비스) ── */
/* 원본: 칸 584 + 584, 사이 64, 글 칸은 위에서 100 에 붙는다. 카드 사이 64. */

.site-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: var(--site-space-7);
  padding-block: var(--site-space-4);
  padding-inline: calc(var(--site-pad-x) + var(--site-space-4));
}

.site-split-aside {
  position: sticky;
  top: 100px;
  align-self: start;
}

.site-split-aside > p:not(.site-eyebrow) {
  max-width: none;
  font-size: 24px;
  line-height: 1.4;
  color: var(--site-ink);
}

.site-split-list {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.site-card--service {
  gap: var(--site-space-3);
}

.site-card--service .site-card-media {
  aspect-ratio: 584 / 449;
}

/* 원본은 휴대폰에서도 24px/33.6 을 그대로 쓴다 */
.site-card--service p {
  font-size: 24px;
  line-height: 1.4;
}

@media (max-width: 767px) {
  .site-split {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--site-space-6);
    padding-inline: var(--site-space-4);
  }

  .site-split-aside {
    position: static;
  }
}

/* ── 블로그 다섯 편: 위 두 편 크게, 아래 세 편 작게(홈) ─────────────────── */
/* 원본: 큰 카드 616(사진 3:2, 모서리 20), 첫 카드는 글이 위·사진이 아래.
   작은 카드 395(모서리 12). 칸 사이·줄 사이 48. */

.site-section--roomy {
  gap: var(--site-space-8);
}

@media (max-width: 767px) {
  .site-section--roomy {
    gap: var(--site-space-6);
  }
}

.site-blog-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: var(--site-space-6);
}

.site-blog-grid .site-card--lg {
  grid-column: span 3;
}

.site-blog-grid .site-card--sm {
  grid-column: span 2;
}

.site-blog-grid .site-card--lg:first-child .site-card-media {
  order: 2;
}

.site-card-body h3 {
  letter-spacing: -0.02em;
}

@media (max-width: 1199px) {
  .site-blog-grid .site-card--sm {
    grid-column: span 3;
  }
}

@media (max-width: 767px) {
  .site-blog-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--site-space-5);
  }

  .site-blog-grid .site-card--lg,
  .site-blog-grid .site-card--sm {
    grid-column: auto;
  }

  .site-blog-grid .site-card--lg:first-child .site-card-media {
    order: 0;
  }
}

/* ── 장점: 넓은 칸과 좁은 칸이 엇갈리는 회색 카드(원본의 벤토) ─────────── */
/* 원본: 폭 1184 안에서 781 + 379, 사이 24. 제목 24/800, 본문 20/32.
   데이터 순서(자산화·데이터·팀·확장성)대로 흘리면 원본처럼 왼쪽이 넓은 칸, 오른쪽이 좁은 칸이 된다. */

.site-bento {
  display: grid;
  grid-template-columns: minmax(0, 2.06fr) minmax(0, 1fr);
  gap: var(--site-space-4);
  width: 100%;
  max-width: 1184px;
  margin-inline: auto;
}

/* 원본 배치: 왼쪽 두 칸 폭에 자산화·팀·(목표|숫자), 오른쪽 한 칸에 데이터·확장성 */
@media (min-width: 768px) {
  .site-bento {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 0.94fr);
    grid-template-areas:
      "a a b"
      "a a b"
      "c c b"
      "c c d"
      "g s d"
      "g s d";
  }

  .site-bento-item:nth-child(1) { grid-area: a; }
  .site-bento-item:nth-child(2) { grid-area: b; }
  .site-bento-item:nth-child(3) { grid-area: c; }
  .site-bento-item:nth-child(4) { grid-area: d; }
  .site-bento-goal { grid-area: g; }
  .site-bento-stat { grid-area: s; }
}

/* 팀 칸: 원본처럼 사진 없이 제목·얼굴 겹침·설명을 가운데로(사진 데이터는 그대로 둔다) */
@media (min-width: 768px) {
  .site-bento-item:nth-child(3) {
    align-items: center;
    justify-content: center;
    text-align: center;
  }

  .site-bento-item:nth-child(3) .site-feature-media {
    display: none;
  }
}

/* 얼굴 사진 겹치기(팀 칸) */
.site-avatars {
  display: flex;
}

.site-avatars img {
  width: 40px;
  height: 40px;
  border: 2px solid var(--site-bg-soft);
  border-radius: 50%;
  object-fit: cover;
}

.site-avatars img + img {
  margin-left: -12px;
}

/* 목표 칸: 가운데 제목 + 트로피 */
.site-bento-goal {
  align-items: center;
  text-align: center;
  overflow: hidden;
}

.site-bento-goal img {
  width: auto;
  height: 190px;
  margin-bottom: -64px;
  object-fit: contain;
}

/* 숫자 칸: 별 다섯 · 큰 숫자 · 설명 */
.site-bento-stat {
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: var(--site-space-1);
}

.site-stars {
  font-size: 16px;
  letter-spacing: 3px;
  color: var(--site-star);
}

.site-stat-num,
.site-feature .site-stat-num {
  font-size: 58px;
  line-height: 1.1;
  letter-spacing: -0.05em;
  color: var(--site-ink);
  font-variant-numeric: tabular-nums;
}

.site-stat-label,
.site-feature .site-stat-label {
  font-size: var(--site-text-h4);
  line-height: 1.3;
  color: var(--site-muted);
}

/* 회사 소개 숫자 줄: 네 칸(휴대폰 두 칸) */
.site-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--site-space-4);
  text-align: center;
}

.site-stats .site-stat-label {
  font-size: var(--site-text-base);
}

@media (max-width: 767px) {
  .site-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: var(--site-space-6);
  }
}

/* 회사 소개 가치 카드의 아이콘: 흰 원(48) 안의 선 아이콘. 순서대로 로켓·렌치·번개·사람들 */
.site-values .site-feature {
  position: relative;
}

.site-values .site-feature::before {
  content: "";
  width: 48px;
  height: 48px;
  margin-bottom: var(--site-space-2);
  border-radius: 50%;
  background: var(--site-bg);
  box-shadow: var(--site-shadow-btn);
}

.site-values .site-feature::after {
  content: "";
  position: absolute;
  top: calc(var(--site-space-4) + 13px);
  left: calc(var(--site-space-4) + 13px);
  width: 22px;
  height: 22px;
  background: var(--site-ink);
  -webkit-mask: var(--site-icon) center / contain no-repeat;
  mask: var(--site-icon) center / contain no-repeat;
}

.site-values .site-feature:nth-child(4n + 1) { --site-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z'/%3E%3Cpath d='M12 15l-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z'/%3E%3Cpath d='M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0'/%3E%3Cpath d='M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5'/%3E%3C/svg%3E"); }
.site-values .site-feature:nth-child(4n + 2) { --site-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z'/%3E%3C/svg%3E"); }
.site-values .site-feature:nth-child(4n + 3) { --site-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2L3 14h9l-1 8 10-12h-9l1-8z'/%3E%3C/svg%3E"); }
.site-values .site-feature:nth-child(4n + 4) { --site-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M23 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E"); }

/* 회사 소개 사진 위 유리 알약 */
.site-about-photo {
  position: relative;
}

.site-glass-pill {
  position: absolute;
  z-index: 1;
  padding: 6px 14px;
  border-radius: var(--site-radius-2xl);
  background: var(--site-glass);
  color: var(--site-bg);
  font-size: var(--site-text-xs);
  line-height: 1.5;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}

.site-glass-pill--1 {
  top: 24px;
  right: 24px;
}

.site-glass-pill--2 {
  left: 24px;
  bottom: 24px;
}

.site-bento-item h3 {
  font-size: var(--site-text-h4);
  font-weight: var(--site-weight-bold);
  line-height: 1.4;
}

.site-bento-item .site-feature-media {
  height: 200px;
  margin-top: auto;
  border-radius: var(--site-radius);
}

.site-bento-item .site-feature-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 767px) {
  .site-bento {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* ── 이점(Benefits) 블록 ───────────────────────────────────────────────── */

.site-feature {
  display: flex;
  flex-direction: column;
  gap: var(--site-space-3);
  padding: var(--site-space-4);
  border-radius: var(--site-radius-lg);
  background: var(--site-bg-soft);
}

.site-feature p {
  font-size: var(--site-text-card);
  line-height: 1.6;
}

.site-feature-media {
  border-radius: var(--site-radius);
  overflow: hidden;
  margin-top: 8px;
}

/* ── 갤러리 스트립 — 예전 사이트의 캐러셀 자리, 가로 스크롤로 대체 ────── */

.site-gallery {
  display: flex;
  gap: var(--site-space-4);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
}

.site-gallery-item {
  flex: 0 0 min(420px, 78%);
  scroll-snap-align: start;
  border-radius: var(--site-radius);
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: var(--site-bg-soft);
}

.site-gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ── 서비스 첫 화면: 사진 위에 흰 제목 ─────────────────────────────────── */
/* 원본: 1280×450 cover, 모서리 32, 제목 80 흰색 가운데(휴대폰 358×350, 제목 60). */

.site-hero--cover {
  position: relative;
  display: grid;
  gap: 0;
  padding-top: 0;
}

.site-hero--cover > * {
  grid-area: 1 / 1;
}

.site-hero--cover .site-hero-media {
  height: 450px;
  border-radius: var(--site-radius-2xl);
}

.site-hero--cover .site-hero-media img {
  height: 100%;
}

.site-hero--cover .site-hero-copy {
  align-self: center;
  justify-self: center;
  padding: var(--site-space-4);
}

.site-hero--cover h1 {
  color: var(--site-bg);
}

@media (max-width: 767px) {
  .site-hero--cover .site-hero-media {
    height: 350px;
  }

  .site-hero--cover h1 {
    font-size: 60px;
  }

  /* 원본은 한국어뿐이다. 영어 제목은 길어 60px 이면 네 줄이 되므로 줄인다. */
  :lang(en) .site-hero--cover h1 {
    font-size: 44px;
  }
}

/* ── 서비스 요점과 자세한 설명 — 960 한 칸 ────────────────────────────── */

.site-service {
  gap: 128px;
}

.site-service-intro,
.site-service-details {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 960px;
  margin-inline: auto;
}

.site-service-intro {
  gap: var(--site-space-4);
}

.site-service-intro h2 {
  color: var(--site-ink);
}

.site-service-intro h3 {
  color: var(--site-muted);
}

.site-service-intro p {
  font-size: var(--site-text-h4);
  font-weight: var(--site-weight-heavy);
  line-height: 1.4;
  letter-spacing: -0.02em;
  color: var(--site-ink);
}

.site-service-details {
  gap: 72px;
}

/* 원본은 기능 카드와 설명 단락이 한 흐름이라 그 사이도 카드 사이와 같은 128 이다. */
.site-service + .site-section {
  margin-top: calc(128px - var(--site-section-gap));
}

.site-service-details .site-section-head {
  max-width: none;
  gap: var(--site-space-4);
}

.site-service-details h3 {
  color: var(--site-muted);
}

.site-service-details p,
.site-service-details li {
  max-width: none;
  font-size: var(--site-text-card);
  line-height: 1.6;
  color: var(--site-ink);
}

/* 서비스 첫 화면과 요점 사이는 원본에서 53 이다. */
.site-hero--cover + .site-service {
  margin-top: calc(53px - var(--site-section-gap));
}

@media (max-width: 767px) {
  .site-service {
    gap: var(--site-space-8);
  }

  .site-service-details {
    gap: 128px;
  }
}

/* ── 기능 카드 — 960폭 가로 카드(AoT·서비스) ───────────────────────────── */
/* 원본: 회색 카드, 모서리 32, 안쪽 여백 없음. 영상 565×460 + 글 395(세로 가운데).
   영상은 1·3번째 카드에서 왼쪽, 짝수 번째에서 오른쪽. 카드 사이 128.
   글: 제목 32 회색, 본문 24/800 먹색. */

.site-feature-rows {
  display: flex;
  flex-direction: column;
  gap: 128px;
  width: 100%;
  max-width: 960px;
  margin-inline: auto;
}

.site-feature-row {
  display: grid;
  grid-template-columns: 565fr 395fr;
  align-items: center;
  overflow: hidden;
  border-radius: var(--site-radius-2xl);
  background: var(--site-bg-soft);
}

.site-feature-row:nth-child(even) {
  grid-template-columns: 395fr 565fr;
}

.site-feature-row:nth-child(even) .site-feature-row-media {
  order: 2;
}

.site-feature-row-media {
  align-self: stretch;
  min-height: 460px;
  overflow: hidden;
  border-radius: var(--site-radius-2xl);
}

.site-feature-row-media .site-video {
  height: 100%;
  margin: 0;
  border-radius: 0;
}

.site-feature-row-media .site-video video {
  height: 100%;
  aspect-ratio: auto;
}

.site-feature-row-text {
  display: flex;
  flex-direction: column;
  gap: var(--site-space-3);
  padding: var(--site-space-5) var(--site-space-5);
}

.site-feature-row-text h3 {
  color: var(--site-muted);
}

.site-feature-row-text p {
  font-size: var(--site-text-h4);
  font-weight: var(--site-weight-heavy);
  line-height: 1.4;
  letter-spacing: -0.02em;
  color: var(--site-ink);
}

/* 영상 대신 글만 있는 카드 */
.site-feature-row--none {
  grid-template-columns: minmax(0, 1fr) !important;
}

/* 사진 넘기기가 든 카드: 사진이 위(960×429), 아래 한 줄에 제목(왼쪽)·본문(오른쪽) */
.site-feature-row--gallery {
  grid-template-columns: minmax(0, 1fr) !important;
}

.site-feature-row--gallery .site-feature-row-media {
  order: 0 !important;
  min-height: 0;
  border-radius: var(--site-radius-2xl) var(--site-radius-2xl) 0 0;
}

.site-feature-row--gallery .site-feature-row-text {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: var(--site-space-5);
  min-height: 171px;
}

@media (max-width: 767px) {
  .site-feature-rows {
    gap: 112px;
  }

  .site-feature-row,
  .site-feature-row:nth-child(even) {
    grid-template-columns: minmax(0, 1fr);
  }

  .site-feature-row:nth-child(even) .site-feature-row-media {
    order: 0;
  }

  .site-feature-row-media {
    min-height: 353px;
  }

  .site-feature-row--gallery .site-feature-row-media {
    min-height: 0;
  }

  .site-feature-row-text,
  .site-feature-row--gallery .site-feature-row-text {
    display: flex;
    padding: var(--site-space-4);
  }
}

/* ── 사진 넘기기 — 한 장씩 가로로 넘긴다(화살표·저절로 넘김은 motion.js) ─── */

.site-carousel {
  position: relative;
}

.site-carousel-track {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}

.site-carousel-item {
  flex: 0 0 100%;
  scroll-snap-align: start;
  aspect-ratio: 960 / 429;
}

.site-carousel-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.site-carousel-item .site-video,
.site-carousel-item .site-embed {
  width: 100%;
  height: 100%;
  margin: 0;
  border-radius: 0;
  aspect-ratio: auto;
}

.site-carousel-item .site-video video {
  height: 100%;
  aspect-ratio: auto;
}

@media (max-width: 767px) {
  .site-carousel-item {
    aspect-ratio: 4 / 3;
  }
}

/* ── 작은 주석(AoT 첫 화면 "데비안 환경에서는…") ───────────────────────── */

.site-note {
  font-size: var(--site-text-xs);
  line-height: 1.2;
  color: var(--site-muted);
}

/* ── 단계 목록 ─────────────────────────────────────────────────────────── */

.site-steps {
  margin: 0;
  padding-left: 25px;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.site-steps li {
  font-size: var(--site-text-card);
  line-height: 1.6;
  color: var(--site-ink);
}

/* 추가 옵션: 굵은 점 목록 */
.site-steps--bullets {
  list-style: disc;
}

.site-steps--bullets li {
  font-weight: var(--site-weight-bold);
}

/* ── 후기 캐러셀 — scroll-snap. 저절로 넘기기는 motion.js 가 더한다 ─────── */
/* 원본: 회색 카드 411×300, 모서리 12, 패딩 24, 양 끝이 흐려지는 띠 */

.site-quotes {
  display: flex;
  gap: var(--site-space-4);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-bottom: 8px;
  -webkit-mask-image: linear-gradient(to right, rgb(0 0 0 / 0.3), #000 5%, #000 95%, rgb(0 0 0 / 0.3));
  mask-image: linear-gradient(to right, rgb(0 0 0 / 0.3), #000 5%, #000 95%, rgb(0 0 0 / 0.3));
}

.site-quote {
  flex: 0 0 min(411px, 88%);
  scroll-snap-align: center;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: var(--site-space-4);
  margin: 0;
  padding: var(--site-space-4);
  border-radius: var(--site-radius);
  background: var(--site-bg-soft);
}

/* 별 다섯 — 글이 아니라 장식이다 */
.site-quote::before {
  content: "★★★★★";
  font-size: 18px;
  letter-spacing: 2px;
  color: var(--site-ink);
}

.site-quote blockquote {
  margin: 0;
  font-size: var(--site-text-card);
  line-height: 1.6;
  color: var(--site-muted);
}

.site-quote-author {
  display: flex;
  align-items: center;
  gap: var(--site-space-2);
}

.site-quote-author img {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  object-fit: cover;
  background: var(--site-bg);
}

.site-quote-author .site-h4 {
  font-size: var(--site-text-h4);
  font-weight: var(--site-weight-heavy);
  line-height: 1.4;
}

.site-quote-author p {
  font-size: var(--site-text-xs);
  line-height: 1.5;
}

/* ── FAQ — details/summary, JS 없음 ───────────────────────────────────── */
/* 원본: 폭 800 가운데, 줄 사이 선 없음, 질문 18/500, 오른쪽 40px 원 안의 + */

.site-faq {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 800px;
  margin-inline: auto;
}

.site-faq summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--site-space-4);
  padding: 12px 0;
  cursor: pointer;
  list-style: none;
  font-size: var(--site-text-md);
  font-weight: var(--site-weight-medium);
  line-height: 1.2;
  color: var(--site-ink);
}

.site-faq summary::-webkit-details-marker {
  display: none;
}

.site-faq summary::after {
  content: "";
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background:
    linear-gradient(var(--site-ink), var(--site-ink)) center / 14px 1.5px no-repeat,
    linear-gradient(var(--site-ink), var(--site-ink)) center / 1.5px 14px no-repeat,
    var(--site-bg-soft);
}

/* 열리면 + 가 − 로 바뀐다(세로 막대를 걷는다) */
.site-faq details[open] summary::after {
  background:
    linear-gradient(var(--site-ink), var(--site-ink)) center / 14px 1.5px no-repeat,
    var(--site-bg-soft);
}

.site-faq details p {
  padding: 4px 0 20px;
  font-size: var(--site-text-card);
  line-height: 1.6;
}

/* ── 본문(블로그·약관) ─────────────────────────────────────────────────── */

.site-article {
  max-width: 760px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--site-space-4);
}

.site-article h2 {
  margin-top: 24px;
  font-size: var(--site-text-article-h2);
}

.site-article h3 {
  margin-top: 16px;
  font-size: var(--site-text-article-h3);
}

.site-article p,
.site-article li {
  font-size: var(--site-text-md);
  line-height: 1.7;
  color: var(--site-muted);
}

.site-article ul,
.site-article ol {
  margin: 0;
  padding-left: 20px;
  display: flex;
  flex-direction: column;
  gap: var(--site-space-1);
}

.site-article-hero {
  border-radius: var(--site-radius);
  overflow: hidden;
}

.site-article-hero img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ── 블로그 글 ──────────────────────────────────────────────────────────── */
/* 원본: 분류 알약 → 제목 44 가운데(폭 800) → 날짜 20/32. 커버 800×400(모서리 24).
   본문 폭 600, 문단 20/32 사이 20, 소제목 32. 블록 사이 96. */

.site-post {
  padding-top: 56px;
  gap: var(--site-space-8);
}

.site-post .site-section-head {
  max-width: 800px;
  gap: var(--site-space-3);
}

/* 원본의 글 제목은 44px 로 약 540 폭에서 줄을 바꾼다. */
.site-post .site-section-head h1 {
  max-width: 540px;
}

.site-post-date {
  font-size: var(--site-text-card);
  line-height: 1.6;
}

.site-post .site-article-hero {
  width: 100%;
  max-width: 800px;
  margin-inline: auto;
  aspect-ratio: 2 / 1;
  border-radius: var(--site-radius-xl);
}

.site-post .site-article {
  max-width: 600px;
  gap: 20px;
}

.site-post .site-article p,
.site-post .site-article li {
  font-size: var(--site-text-card);
  line-height: 1.6;
}

.site-post .site-article h2,
.site-post .site-article h3 {
  margin-top: 72px;
  font-size: var(--site-text-article-h3);
  line-height: 1.2;
}

.site-post .site-article ul,
.site-post .site-article ol {
  margin-block: 12px;
  padding-left: 25px;
  gap: 0;
}

.site-post + .site-section {
  margin-top: var(--site-space-6);
}

/* 본문 사진: 원본은 폭 600 안에서 원래 비율, 모서리 없음, 위 32. 세로 사진은 450×600. */
.site-post .site-article img {
  display: block;
  width: auto;
  max-width: 100%;
  max-height: 600px;
  height: auto;
  margin-top: 12px;
}

.site-grid--tight {
  gap: 20px;
}

@media (max-width: 767px) {
  .site-post {
    padding-top: 40px;
    gap: var(--site-space-6);
  }

  .site-post .site-article-hero {
    aspect-ratio: auto;
    height: 400px;
  }

  /* 원본은 휴대폰에서 글 제목을 소제목 크기(24)로 줄인다. */
  .site-post .site-section-head h1 {
    font-size: var(--site-text-h3);
    letter-spacing: -0.02em;
  }
}

/* ── 블로그 목록 ────────────────────────────────────────────────────────── */
/* 원본: 2열(616), 리드 끝에서 카드까지 약 180 */

.site-hero--list .site-hero-copy > p:not(.site-eyebrow) {
  max-width: 620px;
  font-size: var(--site-text-card);
  line-height: 1.6;
}

.site-hero--list + .site-section {
  margin-top: 56px;
}

/* ── 회사 소개 ──────────────────────────────────────────────────────────── */
/* 원본: 첫 제목 칸 900, 리드 500. 소개 글은 사진(608, 모서리 20) 높이의 가운데.
   가치 카드 900폭 2열(438×250, 사이 24). 창업자는 한 줄에 한 사람, 좌우를 번갈아. */

.site-hero--about h1 {
  max-width: 900px;
}

.site-hero--about .site-hero-copy > p:not(.site-eyebrow) {
  max-width: 500px;
  font-size: var(--site-text-card);
  line-height: 1.6;
}

.site-about-intro {
  align-items: center;
}

.site-about-intro .site-section-head > p:not(.site-eyebrow) {
  max-width: none;
}

.site-about-intro .site-article-hero {
  aspect-ratio: 1;
  border-radius: var(--site-radius-lg);
}

.site-values {
  width: 100%;
  max-width: 900px;
  margin-inline: auto;
  gap: var(--site-space-4);
}

.site-values .site-feature {
  min-height: 250px;
}

.site-values .site-feature h3 {
  line-height: 1.3;
}

.site-team {
  display: flex;
  flex-direction: column;
  gap: var(--site-space-6);
}

.site-team-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: var(--site-space-6);
}

.site-team-row:nth-child(even) .site-card-media {
  order: 2;
}

.site-team-row .site-card-media {
  aspect-ratio: 1;
  border-radius: var(--site-radius-lg);
}

.site-team-role {
  font-size: var(--site-text-h4);
  font-weight: var(--site-weight-heavy);
  line-height: 1.4;
  letter-spacing: -0.02em;
  color: var(--site-ink);
}

@media (max-width: 767px) {
  .site-hero--about h1 {
    text-align: center;
  }

  .site-about-intro .site-section-head {
    align-items: center;
    text-align: center;
  }

  .site-values .site-feature {
    min-height: 0;
  }

  .site-team-row {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--site-space-4);
  }

  .site-team-row:nth-child(even) .site-card-media {
    order: 0;
  }
}

/* ── 상담 ──────────────────────────────────────────────────────────────── */
/* 원본: 머리말 아래 56 에서 시작, 글 칸 584 + 사진 632×511(모서리 20). 휴대폰은 글 가운데. */

.site-contact {
  padding-top: 56px;
}

.site-contact-grid {
  grid-template-columns: 584fr 632fr;
  align-items: start;
  gap: var(--site-space-7);
}

.site-contact .site-section-head > p:not(.site-eyebrow) {
  max-width: none;
}

.site-contact .site-article-hero {
  height: 511px;
  border-radius: var(--site-radius-lg);
}

@media (max-width: 767px) {
  .site-contact {
    padding-top: 40px;
  }

  .site-contact-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .site-contact .site-section-head {
    align-items: center;
    text-align: center;
  }

  .site-contact .site-article-hero {
    height: auto;
    aspect-ratio: 4 / 3;
  }
}

/* ── 약관 ──────────────────────────────────────────────────────────────── */
/* 원본: 제목 가운데, 부제 32/700(휴대폰 24), 제목에서 본문까지 160, 본문 폭 704.
   본문은 원본과 같이 14px/21, 소제목은 굵은 14px(2026-09-24 원본대로 정함). */

.site-policy {
  padding-top: 56px;
  gap: var(--site-section-gap);
}

.site-policy .site-section-head > .site-policy-sub {
  font-size: var(--site-text-h3);
  font-weight: var(--site-weight-bold);
  line-height: 1.2;
  color: var(--site-ink);
}

.site-policy .site-article {
  width: 100%;
  max-width: 704px;
  gap: var(--site-space-2);
}

.site-policy .site-article p,
.site-policy .site-article li {
  font-size: var(--site-text-xs);
  line-height: 1.5;
}

.site-policy .site-article ul,
.site-policy .site-article ol {
  padding-left: 17.6px;
  gap: 2px;
}

.site-policy .site-article h2,
.site-policy .site-article h3 {
  margin-top: 20px;
  font-size: var(--site-text-xs);
  font-weight: var(--site-weight-bold);
  line-height: 1.5;
  letter-spacing: 0;
}

@media (max-width: 767px) {
  .site-policy {
    padding-top: 40px;
    gap: var(--site-space-8);
  }
}

/* ── 표 · 임베드 ───────────────────────────────────────────────────────── */

.site-table-scroll {
  overflow-x: auto;
}

.site-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--site-text-base);
  line-height: 1.5;
  color: var(--site-muted);
}

.site-table th,
.site-table td {
  padding: var(--site-space-2) var(--site-space-3);
  border-bottom: 1px solid var(--site-line);
  text-align: left;
  vertical-align: top;
}

.site-table th {
  font-weight: var(--site-weight-medium);
  color: var(--site-ink);
  white-space: nowrap;
}

.site-embed {
  position: relative;
  aspect-ratio: 16 / 9;
  border-radius: var(--site-radius);
  overflow: hidden;
  background: var(--site-bg-soft);
}

.site-embed iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* ── CTA 밴드 ──────────────────────────────────────────────────────────── */
/* 원본: 1280×500 회색 상자, 모서리 24, 왼쪽 글 칸 700(위아래 128), 제목 회색·본문 먹색.
   오른쪽의 흐르는 사진 두 줄은 사진 목록이 정해지면 더한다(PLAN 9-2). */

.site-cta {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--site-space-4);
  min-height: 500px;
  justify-content: center;
  padding: var(--site-space-7) var(--site-space-6);
  overflow: hidden;
  border-radius: var(--site-radius-xl);
  background: var(--site-bg-soft);
  text-align: left;
}

/* 오른쪽 사진 두 줄: 202 폭, 사이 16, 상자 오른쪽 48 안쪽. 왼쪽 줄은 위로 144, 오른쪽 줄은 62
   삐져나가 시작한다. 위아래 48 은 흐려진다(원본의 Top/Bottom Blur). */
.site-cta-photos {
  position: absolute;
  top: 0;
  bottom: 0;
  right: var(--site-space-6);
  display: flex;
  gap: var(--site-space-3);
  width: 420px;
  pointer-events: none;
}

.site-cta-photos-col {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: var(--site-space-3);
  margin-top: -144px;
}

.site-cta-photos-col + .site-cta-photos-col {
  margin-top: -62px;
}

.site-cta-photos img {
  flex: none;
  width: 100%;
  aspect-ratio: 202 / 269;
  object-fit: cover;
  border-radius: var(--site-radius-lg);
}

.site-cta-photos::before,
.site-cta-photos::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  z-index: 1;
  height: 48px;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}

.site-cta-photos::before {
  top: 0;
  -webkit-mask-image: linear-gradient(#000, transparent);
  mask-image: linear-gradient(#000, transparent);
}

.site-cta-photos::after {
  bottom: 0;
  -webkit-mask-image: linear-gradient(transparent, #000);
  mask-image: linear-gradient(transparent, #000);
}

@media (min-width: 1024px) {
  .site-cta {
    padding-right: calc(420px + var(--site-space-6) + var(--site-space-7));
  }
}

/* 좁은 화면: 원본처럼 사진 두 줄이 글 아래로 온다(155 폭, 높이 약 420 에서 잘림) */
@media (max-width: 1023px) {
  .site-cta-photos {
    position: relative;
    right: auto;
    align-self: center;
    width: min(100%, 326px);
    height: 420px;
    margin: var(--site-space-3) 0 -20px;
    overflow: hidden;
  }

  .site-cta-photos-col {
    margin-top: -60px;
  }

  .site-cta-photos-col + .site-cta-photos-col {
    margin-top: 0;
  }
}

/* 홈 회사 소개 아래 사진 네 장: 원본은 1280 칸보다 넓게(화면 폭 − 96) 318×424, 모서리 20, 사이 24 */
.site-photo-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--site-space-4);
  align-self: center;
  width: calc(100vw - 2 * var(--site-pad-x));
  max-width: calc(var(--site-max) + 64px);
}

.site-photo {
  overflow: hidden;
  aspect-ratio: 318 / 424;
  border-radius: var(--site-radius-lg);
  background: var(--site-bg-soft);
}

.site-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 767px) {
  .site-photo-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--site-space-2);
  }
}

.site-cta h2 {
  max-width: 700px;
  color: var(--site-muted);
}

.site-cta p {
  max-width: 700px;
  font-size: var(--site-text-card);
  line-height: 1.6;
  color: var(--site-ink);
}

@media (max-width: 767px) {
  .site-cta {
    min-height: 0;
    align-items: center;
    padding: var(--site-space-6) 20px 20px;
    text-align: center;
  }
}

/* ── 푸터 ──────────────────────────────────────────────────────────────── */
/* 원본: 짙은 녹색, 위 모서리 20, 패딩 96·48, 흰 글자 20px, 열 제목 24/800.
   원본은 2열(Pages·Information)이지만 Platform 열과 사업자 표기는 일부러 더했다. */

.site-footer {
  max-width: none;
  border-radius: var(--site-radius-lg) var(--site-radius-lg) 0 0;
  background: var(--site-ink);
  color: var(--site-bg);
  padding-block: var(--site-space-8) var(--site-space-6);
}

.site-footer > * {
  max-width: var(--site-max);
  margin-inline: auto;
}

.site-footer-top {
  display: flex;
  justify-content: space-between;
  gap: var(--site-space-7);
  flex-wrap: wrap;
}

.site-footer-brand {
  display: flex;
  flex-direction: column;
  gap: var(--site-space-3);
  max-width: 460px;
}

.site-footer .site-logo {
  color: var(--site-bg);
}

.site-footer-brand p {
  font-size: var(--site-text-card);
  line-height: 1.6;
  color: var(--site-bg);
}

.site-footer-brand .site-muted {
  font-size: var(--site-text-base);
  color: var(--site-bg);
  opacity: 0.7;
}

.site-footer-cols {
  display: flex;
  gap: var(--site-space-8);
  flex-wrap: wrap;
}

.site-footer-col {
  display: flex;
  flex-direction: column;
  gap: var(--site-space-3);
  min-width: 120px;
}

.site-footer-col h4 {
  margin: 0 0 var(--site-space-1);
  font-size: var(--site-text-h4);
  font-weight: var(--site-weight-heavy);
  line-height: 1.4;
  color: var(--site-bg);
}

.site-footer-col a {
  font-size: var(--site-text-card);
  line-height: 1.5;
  color: var(--site-bg);
  transition: opacity 160ms ease;
}

.site-footer-col a:hover {
  opacity: 0.7;
}

.site-footer-bottom {
  margin-top: var(--site-space-6);
  padding-top: var(--site-space-6);
  border-top: 1px solid rgb(from var(--site-bg) r g b / 0.2);
  font-size: var(--site-text-xs);
  text-align: right;
  color: var(--site-bg);
}

@media (max-width: 767px) {
  .site-footer {
    padding-block: var(--site-space-7) var(--site-space-6);
  }

  .site-footer-cols {
    flex-direction: column;
    gap: var(--site-space-6);
  }

  .site-footer-bottom {
    text-align: left;
  }
}

/* ── 꼬리말 소셜 아이콘(원본: 20px 흰 아이콘, 사이 16) ─────────────────── */

.site-social {
  display: flex;
  gap: var(--site-space-3);
  margin-top: var(--site-space-1);
}

.site-social:empty {
  display: none;
}

.site-social-link {
  width: 20px;
  height: 20px;
  background: var(--site-bg);
  -webkit-mask: var(--site-icon) center / contain no-repeat;
  mask: var(--site-icon) center / contain no-repeat;
  transition: opacity 160ms ease;
}

.site-social-link:hover {
  opacity: 0.7;
}

.site-social-link--x { --site-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 4l16 16M20 4L4 20'/%3E%3C/svg%3E"); }
.site-social-link--instagram { --site-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='5'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M17.5 6.5h.01'/%3E%3C/svg%3E"); }
.site-social-link--linkedin { --site-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='3'/%3E%3Cpath d='M8 11v5M8 8v.01M12 16v-5M12 13a2.5 2.5 0 0 1 5 0v3'/%3E%3C/svg%3E"); }
.site-social-link--youtube { --site-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'%3E%3Crect x='2' y='5' width='20' height='14' rx='4'/%3E%3Cpath d='M10 9l5 3-5 3z'/%3E%3C/svg%3E"); }
.site-social-link--github { --site-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.4 5.4 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4'/%3E%3Cpath d='M9 18c-4.51 2-5-2-7-2'/%3E%3C/svg%3E"); }

/* ── 검색(원본: 머리말 돋보기 → 가운데 창) ────────────────────────────── */

.site-nav-search {
  display: block;
  width: 20px;
  height: 20px;
  padding: 0;
  border: 0;
  background: var(--site-muted);
  cursor: pointer;
  -webkit-mask: var(--site-icon-search) center / contain no-repeat;
  mask: var(--site-icon-search) center / contain no-repeat;
  transition: background 160ms ease;
}

.site-nav-search:hover {
  background: var(--site-ink);
}

.site-root {
  --site-icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E");
  --site-icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E");
}

@media (max-width: 767px) {
  .site-nav-search-item {
    padding: 12px var(--site-pad-x);
  }

  .site-nav-search {
    width: 24px;
    height: 24px;
    background: var(--site-ink);
  }
}

.site-search {
  width: min(640px, calc(100vw - 2 * var(--site-pad-x)));
  max-height: min(70vh, 640px);
  margin: 12vh auto auto;
  padding: 0;
  border: 0;
  border-radius: var(--site-radius-lg);
  background: var(--site-bg);
  box-shadow: var(--site-shadow-btn);
  color: var(--site-ink);
}

.site-search::backdrop {
  background: rgb(from var(--site-ink) r g b / 0.35);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}

.site-search-box {
  display: flex;
  align-items: center;
  gap: var(--site-space-2);
  padding: var(--site-space-3) var(--site-space-4);
  border-bottom: 1px solid var(--site-line);
}

.site-search-box input {
  flex: 1;
  min-width: 0;
  padding: 8px 0 8px 32px;
  border: 0;
  outline: 0;
  background: var(--site-icon-search) left center / 20px no-repeat;
  color: var(--site-ink);
  font: inherit;
  font-size: var(--site-text-lg);
}

/* 브라우저가 검색 칸에 덧붙이는 지우기 단추는 닫기 단추와 겹친다 */
.site-search-box input::-webkit-search-cancel-button {
  display: none;
}

.site-search-close {
  flex: none;
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 50%;
  background: var(--site-bg-soft);
  cursor: pointer;
  position: relative;
}

.site-search-close::before {
  content: "";
  position: absolute;
  inset: 9px;
  background: var(--site-ink);
  -webkit-mask: var(--site-icon-close) center / contain no-repeat;
  mask: var(--site-icon-close) center / contain no-repeat;
}

.site-search-results {
  margin: 0;
  padding: var(--site-space-1);
  list-style: none;
  overflow-y: auto;
  max-height: calc(min(70vh, 640px) - 70px);
}

.site-search-results a {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: var(--site-space-2) var(--site-space-3);
  border-radius: var(--site-radius);
}

.site-search-results a:hover,
.site-search-results a:focus-visible {
  background: var(--site-bg-soft);
  outline: 0;
}

.site-search-kind {
  font-size: var(--site-text-2xs);
  color: var(--site-muted);
}

.site-search-results strong {
  font-size: var(--site-text-base);
  font-weight: var(--site-weight-semibold);
}

.site-search-desc {
  overflow: hidden;
  font-size: var(--site-text-xs);
  color: var(--site-muted);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.site-search-empty {
  padding: var(--site-space-3);
  font-size: var(--site-text-sm);
  color: var(--site-muted);
}

/* ── 상담 사진 위 문의 양식(원본: 유리 판, 어두운 입력 칸) ─────────────── */

.site-contact-photo {
  position: relative;
}

.site-contact-form {
  position: absolute;
  inset: var(--site-space-4);
  display: flex;
  flex-direction: column;
  gap: var(--site-space-3);
  padding: 20px;
  overflow: auto;
  border-radius: var(--site-radius);
  background: var(--site-glass);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}

.site-contact-form label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: var(--site-text-xs);
  color: var(--site-bg);
}

.site-contact-form input,
.site-contact-form textarea {
  width: 100%;
  padding: 10px 12px;
  border: 0;
  border-radius: 10px;
  background: rgb(from var(--site-ink) r g b / 0.45);
  color: var(--site-bg);
  font: inherit;
  font-size: var(--site-text-xs);
  resize: vertical;
}

.site-contact-form ::placeholder {
  color: rgb(from var(--site-bg) r g b / 0.7);
}

.site-contact-form textarea {
  flex: 1;
  min-height: 110px;
}

.site-contact-send {
  height: 40px;
  border: 0;
  border-radius: 40px;
  background: var(--site-ink);
  color: var(--site-bg);
  font: inherit;
  font-size: var(--site-text-xs);
  font-weight: var(--site-weight-semibold);
  cursor: pointer;
  transition: background 200ms ease;
}

.site-contact-send:hover {
  background: var(--site-accent);
}

@media (max-width: 767px) {
  .site-contact .site-contact-photo {
    height: 511px;
    aspect-ratio: auto;
  }
}

/* ── 화면 아래 흐림 띠 — 원본처럼 화면 맨 아래 80px(휴대폰 40)이 흐려진다 ── */

.site-blur-bottom {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 30;
  height: var(--site-blur-h);
  pointer-events: none;
  -webkit-backdrop-filter: blur(var(--site-blur));
  backdrop-filter: blur(var(--site-blur));
  -webkit-mask-image: linear-gradient(transparent, #000);
  mask-image: linear-gradient(transparent, #000);
}

/* ── 움직임 ─────────────────────────────────────────────────────────────────
   무엇이 어떻게 움직이는지는 여기(선택자)가 정한다. motion.js 는 화면에 들어온 것에
   .is-in 을 붙일 뿐이다. 숨겨 두는 처음 상태는 html.js-motion 일 때만 걸리고(머리의 한 줄),
   그 클래스는 첫 그림 전에 붙으므로 첫 화면도 숨김 → 도착으로 제대로 움직인다.
   JS 가 없거나 움직임 줄이기를 켠 사람에게는 처음부터 다 보인다.
   목록을 바꾸면 motion.js 의 TARGETS 도 같이 바꾼다. */

:root {
  --site-ease: var(--site-ease-out);
}

@supports (transition-timing-function: linear(0, 1)) {
  :root {
    --site-ease: var(--site-ease-spring);
  }
}

.js-motion :is(
  .site-hero:not(.site-hero--cover) .site-hero-copy > :not(h1),
  [data-reveal="zoom"] .site-card-media,
  [data-reveal="fade"],
  [data-reveal="slide"],
  .site-nav-links > li,
  .site-faq details,
  .site-footer,
  .site-photo,
  .site-reveal:not(.site-section-head, [data-reveal]),
  [data-reveal="words"],
  .site-word
) {
  transition:
    opacity var(--site-dur-spring) var(--site-ease),
    transform var(--site-dur-spring) var(--site-ease),
    filter var(--site-dur-spring) var(--site-ease);
  transition-delay: var(--motion-delay, 0s);
}

.js-motion :is(
  .site-hero:not(.site-hero--cover) .site-hero-copy > :not(h1),
  [data-reveal="zoom"] .site-card-media,
  [data-reveal="fade"],
  [data-reveal="slide"],
  .site-nav-links > li,
  .site-faq details,
  .site-footer,
  .site-photo,
  .site-reveal:not(.site-section-head, [data-reveal]),
  .site-word
):not(.is-in) {
  opacity: 0;
}

/* 첫 화면: 위에서 50 떨어진다 */
.js-motion .site-hero:not(.site-hero--cover) .site-hero-copy > :not(h1):not(.is-in) {
  transform: translateY(-50px);
}

/* 홈 서비스 사진: 1.1 배에서 줄어든다 */
.js-motion [data-reveal="zoom"] .site-card-media:not(.is-in) {
  transform: scale(1.1);
}

/* 기능 카드 글: 왼쪽 75 에서 밀려온다 */
.js-motion [data-reveal="slide"]:not(.is-in) {
  transform: translateX(-75px);
}

/* FAQ 줄: 아래에서 20 */
.js-motion .site-faq details:not(.is-in) {
  transform: translateY(20px);
}

/* 회사 소개 사진 줄: 아래에서 50 */
.js-motion .site-photo:not(.is-in) {
  transform: translateY(50px);
}

/* 꼬리말: 아래에서 50, 0.95 배 */
.js-motion .site-footer:not(.is-in) {
  transform: translateY(50px) scale(0.95);
}

/* 그 밖의 카드·상자: 아래에서 24 */
.js-motion .site-reveal:not(.site-section-head, [data-reveal]):not(.is-in) {
  transform: translateY(24px);
}

/* 단어별 흐림 → 선명. 단어로 쪼개기 전(.is-split 전)에는 제목을 가려 깜빡임을 막는다. */
.site-word {
  display: inline-block;
}

.js-motion [data-reveal="words"]:not(.is-split) {
  opacity: 0;
}

.js-motion .site-word:not(.is-in) {
  filter: blur(10px);
  transform: translateY(10px);
}

/* 화면에서 고치는 동안에는 모든 것이 제자리에 보여야 한다 */
.aot-editing :is([data-reveal], .site-reveal, .site-word, .site-faq details, .site-card-media, .site-photo, .site-hero-copy > *) {
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
}

/* 머리말 메뉴 글자 hover: 글자가 위로 굴러 올라가고 같은 글자가 아래에서 올라온다.
   원본은 글자를 세 번 복제하지만, 여기서는 그림자로 사본을 만들어 글자를 늘리지 않는다. */
/* 링크(a)는 제자리에 두고 안쪽 글자(span)만 움직인다 — 링크 자체를 옮기면 마우스 밑에서
   빠져나가 hover 가 풀렸다 걸렸다 하며 떨리고, 누른 자리가 링크가 아니게 되어 이동하지 않았다. */
@media (hover: hover) and (min-width: 768px) {
  .site-nav-links a {
    overflow: hidden;
    vertical-align: top;
  }

  .site-nav-label {
    display: inline-block;
    text-shadow: 0 1.6em 0 currentColor;
    transition: transform var(--site-dur-fast) var(--site-ease-out);
  }

  .site-nav-links a:hover .site-nav-label,
  .site-nav-links a:focus-visible .site-nav-label {
    transform: translateY(-1.6em);
  }
}

/* ── 넘기기 화살표·점 (motion.js 가 만든다) ─────────────────────────────── */
/* 원본: 양 끝 40px 원, 반투명 검정 바탕에 흰 화살표. 사진 넘기기 아래 점 알약. */

.site-slider,
.site-carousel {
  position: relative;
}

.site-slider-arrow {
  position: absolute;
  top: 50%;
  z-index: 2;
  width: 40px;
  height: 40px;
  margin-top: -20px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgb(from var(--site-ink) r g b / 0.2);
  color: var(--site-bg);
  cursor: pointer;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  transition: background 200ms ease;
}

.site-slider-arrow::before {
  content: "";
  position: absolute;
  inset: 11px;
  background: currentColor;
  -webkit-mask: var(--site-icon-arrow) center / contain no-repeat;
  mask: var(--site-icon-arrow) center / contain no-repeat;
}

.site-slider-arrow--prev {
  left: 16px;
}

.site-slider-arrow--prev::before {
  transform: scaleX(-1);
}

.site-slider-arrow--next {
  right: 16px;
}

.site-slider-arrow:hover {
  background: rgb(from var(--site-ink) r g b / 0.45);
}

/* 후기 띠의 화살표는 원본처럼 먹색 글자만 */
.site-slider .site-slider-arrow {
  background: transparent;
  color: var(--site-ink);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

.site-slider .site-slider-arrow:hover {
  background: var(--site-bg-soft);
}

.site-slider-dots {
  position: absolute;
  left: 50%;
  bottom: 16px;
  z-index: 2;
  display: flex;
  gap: 6px;
  padding: 8px 12px;
  border-radius: 50px;
  background: rgb(from var(--site-ink) r g b / 0.2);
  transform: translateX(-50%);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}

.site-slider-dots span {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--site-bg);
  opacity: 0.5;
  transition: opacity 200ms ease;
}

.site-slider-dots span.is-on {
  opacity: 1;
}

/* ── 두 갈래 CTA와 언어 전환 ────────────────────────────────────────────────
   Framer 원본에는 없던 요소들이다. 원본은 CTA 가 "무료상담 신청하기" 하나뿐이라
   직접 설치하려는 방문자가 갈 곳이 없었다. 여기서 두 갈래로 나눈다. */

.site-cta-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: flex-start;
  gap: var(--site-space-5);
  margin-top: var(--site-space-3);
}

.site-cta-action {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--site-space-2);
  max-width: 320px;
}

/* .site-cta p 의 max-width 를 물려받지 않도록 각주는 따로 좁힌다. */
.site-cta .site-cta-note {
  max-width: 320px;
  margin: 0;
  font-size: var(--site-text-xs);
  line-height: 1.5;
  color: var(--site-muted);
}

.site-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--site-space-2);
}


/* 자매 사이트(강좌·데모·쇼핑)로 나가는 링크 — 새 창으로 열린다는 표시 */
.site-nav-ext::after {
  content: " ↗";
  font-size: 0.85em;
}

/* 켜진 사이트 수(1~3)에 따라 카드가 가운데로 모이게 grid 대신 flex 로 둔다. */
.site-platform {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--site-space-5);
}

.site-platform-card {
  flex: 1 1 300px;
  max-width: 420px;
  padding: var(--site-space-5);
  border: 1px solid var(--site-bg-soft);
  border-radius: var(--site-radius-lg);
  background: var(--site-bg-soft);
  transition: border-color 160ms ease;
}

.site-platform-card:hover {
  border-color: var(--site-ink);
}

.site-platform-card .site-card-body {
  height: 100%;
}

.site-platform-link {
  margin-top: auto;
  font-size: var(--site-text-sm);
  font-weight: var(--site-weight-medium);
  color: var(--site-ink);
}

.site-platform-link::after {
  content: " ↗";
}

.site-platform-link--internal::after {
  content: " →";
}

.site-nav-lang {
  padding-left: 4px;
  border-left: 1px solid var(--site-line);
}

@media (max-width: 720px) {
  .site-cta-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .site-cta-action {
    max-width: none;
    align-items: center;
  }

  .site-nav-lang {
    padding-left: 0;
    border-left: 0;
  }
}

/* ── 영상 ──────────────────────────────────────────────────────────────────
   MP4 는 무음 루프이고 화면에 들어올 때만 내려받는다(video-script.njk).
   유튜브는 그 자리에서 바로 재생한다(partials/youtube.njk, 설정은 _data/youtube.json). */

.site-video {
  /* .site-hero 가 align-items:center 인 flex 라, width 를 주지 않으면 영상이
     내재 크기(300px)로 쪼그라든다. .site-hero-media 와 같은 규칙을 쓴다. */
  width: 100%;
  margin-top: 24px;
  overflow: hidden;
  border-radius: var(--site-radius);
  background: var(--site-bg-soft);
}

.site-video video {
  display: block;
  width: 100%;
  height: auto;
  /* src 가 붙기 전에도 자리를 차지해 레이아웃이 튀지 않게 한다. */
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.site-article .site-embed {
  margin-top: 12px;
}

/* ── 데모 안내(/demo) ─────────────────────────────────────────────────── */

.site-demo-account {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--site-space-1) var(--site-space-3);
  margin: 8px 0 16px;
  font-size: var(--site-text-base);
}

.site-demo-account dt {
  color: var(--site-muted);
}

.site-demo-account dd {
  margin: 0;
}

.site-demo-account code {
  font-size: var(--site-text-base);
  padding: 2px 8px;
  border-radius: var(--site-radius-sm);
  background: var(--site-bg);
  border: 1px solid var(--site-line);
}

.site-platform-card .site-btn {
  align-self: flex-start;
  margin-top: auto;
}

.site-demo-notes {
  margin: 0;
  padding-left: 20px;
  display: flex;
  flex-direction: column;
  gap: var(--site-space-2);
  font-size: var(--site-text-md);
  line-height: 1.6;
  color: var(--site-muted);
}

.site-demo-notes a {
  text-decoration: underline;
}

.site-shop-price {
  margin: 0;
  font-size: var(--site-text-lg);
  color: var(--site-ink);
}
