/* D안 카핑컷 교육 페이지 (/d/copyingcut/) 전용 — b-detail.css 다음에 읽는다.
   (보관해 둔 C안 c-copy.css 를 바탕으로, 회차 카드를 가로형으로 바꾸고 꿈현시 연계 구역을 더했다)
   공통 상세 페이지 틀(d-*)은 그대로 쓰고, 사진 갤러리·회차 카드·후기처럼 이 페이지에만 있는 것만 여기에 둔다 */

/* ---------- 첫 화면 ---------- */
.cc-proof {
  margin-top: 18px;
  color: var(--ink-3);
  font-size: var(--text-small);
  font-weight: 600;
}

.cc-proof b {
  color: var(--brand);
  font-weight: 800;
}

/* 첫 화면 카드: 회차별 길이 (사진 없이 글자 칩) */
.cc-hero-rounds {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 18px;
}

.cc-hero-rounds li {
  display: grid;
  gap: 4px;
  padding: 14px 8px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.86);
  box-shadow: inset 0 0 0 1px var(--line);
  color: var(--ink);
  font-size: var(--text-small);
  font-weight: 800;
  letter-spacing: -0.02em;
  text-align: center;
  white-space: nowrap;
}

.cc-hero-rounds b {
  color: var(--brand);
  font-size: var(--text-xs);
  font-weight: 800;
}

@media (max-width: 360px) {
  .cc-hero-rounds li {
    padding: 12px 4px;
    font-size: var(--text-xs);
  }
}

/* ---------- 문장 강조 ---------- */
.cc-mark {
  background: linear-gradient(transparent 58%, rgba(42, 73, 184, 0.18) 58%);
}

.cc-subhead {
  max-width: 760px;
  margin-top: 40px;
  color: var(--ink);
  font-size: clamp(1.25rem, 1.05rem + 0.9vw, 1.625rem);
  font-weight: 800;
  letter-spacing: -0.04em;
}

.cc-link {
  color: var(--brand);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* ---------- 01 추천 대상: 눌러서 체크하는 카드 ---------- */
.cc-pick {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
  padding: 0;
  border: 0;
}

.cc-pick-item {
  position: relative;
  display: block;
  cursor: pointer;
}

.cc-pick-item input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.cc-pick-item span {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 64px;
  height: 100%;
  padding: 16px 20px 16px 58px;
  border-radius: 18px;
  background: #f3f5f9;
  box-shadow: inset 0 0 0 1.5px transparent;
  color: var(--ink);
  font-weight: 600;
  line-height: 1.5;
  word-break: keep-all;
  text-wrap: pretty;
  transition: background var(--duration-fast) ease, box-shadow var(--duration-fast) ease, transform var(--duration-fast) ease;
}

/* 동그라미 + 체크 표시 — 고르면 인디고로 채워진다 */
.cc-pick-item span::before {
  content: '';
  position: absolute;
  left: 18px;
  top: 50%;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--white);
  box-shadow: inset 0 0 0 1.5px #c7cee6;
  transform: translateY(-50%);
  transition: background var(--duration-fast) ease, box-shadow var(--duration-fast) ease;
}

.cc-pick-item span::after {
  content: '';
  position: absolute;
  left: 27px;
  top: 50%;
  width: 7px;
  height: 12px;
  border: solid #c7cee6;
  border-width: 0 2.4px 2.4px 0;
  transform: translateY(-62%) rotate(45deg);
  transition: border-color var(--duration-fast) ease;
}

.cc-pick-item:hover span {
  background: #edf0f7;
}

.cc-pick-item:active span {
  transform: scale(0.98);
}

.cc-pick-item input:checked + span {
  background: var(--brand-tint);
  box-shadow: inset 0 0 0 1.5px var(--brand);
  color: var(--brand-deep);
  font-weight: 700;
}

.cc-pick-item input:checked + span::before {
  background: linear-gradient(140deg, #3a5bc7, #1f3484);
  box-shadow: 0 6px 14px rgba(42, 73, 184, 0.3);
}

.cc-pick-item input:checked + span::after {
  border-color: var(--white);
}

.cc-pick-item input:focus-visible + span {
  outline: 3px solid #8c9cd6;
  outline-offset: 2px;
}

.cc-pick-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 20px;
  margin-top: 18px;
  padding: 18px 22px;
  border-radius: 18px;
  background: var(--navy);
  color: rgba(255, 255, 255, 0.82);
}

.cc-pick-result {
  font-weight: 600;
}

.cc-pick-result b {
  color: #f1d48b;
  font-weight: 800;
}

.cc-pick-go {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 48px;
  padding: 0 22px;
  border-radius: var(--radius-pill);
  background: var(--white);
  color: var(--brand-deep);
  font-weight: 800;
  white-space: nowrap;
  transition: transform var(--duration-fast) ease;
}

.cc-pick-go:hover {
  transform: translateY(-1px);
}

.cc-pick-go span {
  transition: transform var(--duration-normal) var(--ease-out-expo);
}

.cc-pick-go:hover span {
  transform: translateX(4px);
}

/* 접는 폰을 편 화면(약 750px)에서도 두 칸이면 "분"만 아랫줄로 떨어져서, 900px 아래는 한 줄에 하나씩 */
@media (max-width: 900px) {
  .cc-pick {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
  }
}

@media (max-width: 720px) {
  .cc-pick-foot .cc-pick-go {
    width: 100%;
    justify-content: center;
  }
}

/* ---------- 번호 목록 (그래서 생기는 문제) ---------- */
.cc-numlist {
  display: grid;
  gap: 10px;
  max-width: 760px;
  margin-top: 18px;
}

.cc-numlist li {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  padding: 16px 20px;
  border: 1px solid var(--line);
  border-radius: var(--radius-pill);
  background: var(--white);
  color: var(--ink-2);
  line-height: 1.5;
}

.cc-numlist span {
  display: grid;
  flex: none;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: linear-gradient(150deg, #3a5bc7 0%, #2a49b8 45%, #162257 100%);
  color: var(--white);
  font-size: 0.875rem;
  font-weight: 800;
}

.cc-numlist b {
  color: var(--ink);
}

@media (max-width: 560px) {
  .cc-numlist li {
    padding: 14px 16px;
    border-radius: 20px;
  }
}

/* ---------- 디자인 갤러리 (탭) ---------- */
.cc-gallery {
  margin-top: 36px;
}

.cc-tabs {
  display: inline-flex;
  gap: 4px;
  padding: 5px;
  border-radius: var(--radius-pill);
  background: #eef0f6;
}

.cc-tab {
  min-height: 44px;
  padding: 0 20px;
  border: 0;
  border-radius: var(--radius-pill);
  background: transparent;
  color: var(--ink-3);
  font: inherit;
  font-size: var(--text-small);
  font-weight: 700;
  cursor: pointer;
  transition: background var(--duration-fast) ease, color var(--duration-fast) ease, box-shadow var(--duration-fast) ease;
}

.cc-tab:hover {
  color: var(--ink);
}

.cc-tab[aria-selected='true'] {
  background: var(--white);
  color: var(--brand);
  box-shadow: 0 2px 10px rgba(28, 40, 96, 0.12);
}

.cc-tab:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 2px;
}

.cc-panel-wrap {
  margin-top: 18px;
}

/* 궁서채몰 원본 사진이 작아서(작은 칸 약 170px) 화면에서 너무 키우면 흐려진다 — 폭을 720px 로 묶는다.
   PC 5칸: 큰 사진(2×2) 하나 + 작은 사진 6장이 한 덩어리 — 큰 사진은 왼쪽·오른쪽 번갈아 */
.cc-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  grid-auto-flow: row dense;
  gap: 6px;
  max-width: 720px;
}

/* 스크립트가 없으면 두 묶음을 모두 보여주고, 있으면 고른 탭만 */
.cc-panel + .cc-panel {
  margin-top: 10px;
}

.cc-panel[hidden] {
  display: none;
}

.cc-panel:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 4px;
  border-radius: 18px;
}

.cc-panel.is-entering li {
  animation: cc-pop var(--duration-slow) var(--ease-out-expo) both;
}

.cc-panel.is-entering li:nth-child(n + 4) {
  animation-delay: 60ms;
}

.cc-panel.is-entering li:nth-child(n + 9) {
  animation-delay: 120ms;
}

@keyframes cc-pop {
  from {
    opacity: 0;
    transform: translateY(12px) scale(0.98);
  }
}

.cc-grid li {
  overflow: hidden;
  border-radius: 12px;
  aspect-ratio: 1;
  background: #e9ecf3;
}

.cc-grid li.is-big {
  grid-column: span 2;
  grid-row: span 2;
}

.cc-grid li.is-big.is-right {
  grid-column: 4 / span 2;
}

.cc-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--duration-slow) var(--ease-out-expo);
}

.cc-grid li:hover img {
  transform: scale(1.05);
}

@media (max-width: 720px) {
  .cc-tabs {
    display: flex;
  }

  .cc-tab {
    flex: 1;
    padding: 0 12px;
  }

  .cc-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 4px;
  }

  .cc-grid li {
    border-radius: 10px;
  }

  /* 폰 4칸: 첫 사진만 크게(2×2), 나머지는 같은 크기로. 줄이 딱 맞게 남는 사진은 숨긴다 */
  .cc-grid li.is-big.is-right,
  .cc-grid li.is-big ~ li.is-big {
    grid-column: auto;
    grid-row: auto;
  }

  .cc-grid li.is-desk {
    display: none;
  }
}

/* ---------- 3일: 어두운 패널 ---------- */
.cc-dark {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(2rem, 4vw, 4rem);
  padding: clamp(2rem, 1.4rem + 3vw, 4rem);
  border-radius: clamp(28px, 1.2rem + 1.6vw, 40px);
  background:
    radial-gradient(circle at 0% 0%, rgba(140, 156, 214, 0.32) 0%, rgba(140, 156, 214, 0) 42%),
    linear-gradient(140deg, #22357f 0%, #162257 55%, #0b1233 100%);
  color: var(--white);
  overflow: hidden;
}

.cc-dark .label-en {
  color: rgba(255, 255, 255, 0.6);
  font-size: 0.75rem;
}

.cc-dark h2 {
  margin-top: 14px;
  font-size: clamp(1.75rem, 1.2rem + 2.4vw, 2.875rem);
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: -0.05em;
}

.cc-dark h2 em {
  font-style: normal;
  color: #b8c5ff;
}

.cc-day {
  display: inline-block;
  padding: 0 14px;
  border-radius: 16px;
  background: linear-gradient(150deg, #5d7cf0 0%, #3a5bc7 60%);
  box-shadow: 0 12px 28px rgba(8, 14, 50, 0.45);
}

.cc-dark-copy > p:not(.label-en) {
  margin-top: 16px;
  color: rgba(255, 255, 255, 0.8);
  line-height: 1.75;
}

.cc-dark-copy strong {
  color: var(--white);
}

.cc-dark-side {
  padding: clamp(1.25rem, 1rem + 1.4vw, 2rem);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.06);
}

.cc-dark-q {
  color: rgba(255, 255, 255, 0.82);
  line-height: 1.75;
}

.cc-dark-q b {
  color: #b8c5ff;
  font-size: 1.125em;
}

.cc-shift {
  display: grid;
  gap: 10px;
  margin-top: 22px;
}

.cc-shift li {
  display: grid;
  grid-template-columns: 1fr 48px 1fr;
  align-items: center;
  gap: 10px;
}

.cc-shift span,
.cc-shift b {
  padding: 12px 10px;
  border-radius: var(--radius-pill);
  font-weight: 700;
  text-align: center;
}

.cc-shift span {
  border: 1px dashed rgba(255, 255, 255, 0.3);
  color: rgba(255, 255, 255, 0.62);
}

.cc-shift b {
  background: var(--white);
  color: var(--brand-deep);
  font-weight: 800;
}

.cc-shift i {
  position: relative;
  height: 2px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0.8));
  transform-origin: left center;
}

.cc-shift i::after {
  content: '';
  position: absolute;
  right: 0;
  top: -4px;
  width: 8px;
  height: 8px;
  border: solid rgba(255, 255, 255, 0.85);
  border-width: 2px 2px 0 0;
  transform: rotate(45deg);
}

/* 패널이 보이면 화살표가 차례로 그어진다 */
.reveal .cc-shift i {
  transform: scaleX(0);
  transition: transform 600ms var(--ease-out-expo);
}

.reveal.is-in .cc-shift i {
  transform: scaleX(1);
}

.reveal.is-in .cc-shift li:nth-child(2) i {
  transition-delay: 150ms;
}

.reveal.is-in .cc-shift li:nth-child(3) i {
  transition-delay: 300ms;
}

@media (max-width: 900px) {
  .cc-dark {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* ---------- 두 마음 (판단) ---------- */
.cc-duo {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  max-width: 900px;
}

.cc-duo p {
  padding: 24px 24px 26px;
  border-radius: 24px;
  background: linear-gradient(140deg, #3a5bc7 0%, #2a49b8 60%, #1f3484 100%);
  color: rgba(255, 255, 255, 0.82);
  font-size: var(--text-small);
  box-shadow: var(--shadow-blue);
}

.cc-duo p + p {
  background: linear-gradient(140deg, #2a3a8f 0%, #1f2a6e 60%, #162257 100%);
}

.cc-duo b {
  display: block;
  margin-top: 6px;
  color: var(--white);
  font-size: clamp(1.125rem, 1rem + 0.6vw, 1.375rem);
  font-weight: 800;
  letter-spacing: -0.04em;
}

.cc-understand {
  max-width: 900px;
  margin-top: 28px;
  color: var(--ink);
  font-size: clamp(1.375rem, 1.1rem + 1.2vw, 1.875rem);
  font-weight: 800;
  letter-spacing: -0.04em;
}

@media (max-width: 720px) {
  .cc-duo {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* ---------- 경력자 / 비경력자 ---------- */
.cc-vs-who {
  color: var(--ink-3);
  font-size: var(--text-small);
  font-weight: 600;
}

.cc-vs h3 {
  margin-top: 8px;
}

/* ---------- 회차 카드 ---------- */
.cc-rounds {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 8px;
}

.cc-round {
  display: flex;
  flex-direction: column;
  padding: 22px 20px 22px;
  border: 1px solid #e6e9f1;
  border-radius: 28px;
  background: linear-gradient(170deg, #f3f5f9 0%, #fbfbfd 100%);
}

.cc-round-no {
  align-self: flex-start;
  padding: 6px 14px;
  border-radius: var(--radius-pill);
  background: linear-gradient(150deg, #3a5bc7 0%, #2a49b8 45%, #162257 100%);
  color: var(--white);
  font-size: var(--text-small);
  font-weight: 800;
  box-shadow: var(--shadow-blue);
}

.cc-round h3 {
  margin-top: 14px;
  color: var(--ink);
  font-size: clamp(1.25rem, 1.1rem + 0.6vw, 1.5rem);
  font-weight: 800;
  letter-spacing: -0.04em;
}

.cc-round-photos {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  margin-top: 16px;
}

.cc-round-photos img {
  width: 100%;
  aspect-ratio: 1;
  border-radius: 14px;
  object-fit: cover;
  background: #e9ecf3;
}

.cc-round-steps {
  display: grid;
  gap: 6px;
  margin-top: 16px;
}

.cc-round-steps li {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  gap: 10px;
  padding: 10px 12px;
  border-radius: 12px;
  background: var(--white);
  border: 1px solid var(--line);
  color: var(--ink);
  font-size: var(--text-small);
  font-weight: 600;
  line-height: 1.45;
}

.cc-round-steps span {
  color: var(--brand);
  font-size: var(--text-xs);
  font-weight: 800;
  line-height: 1.8;
}

.cc-round-desc {
  margin-top: 16px;
  color: var(--ink-2);
  font-size: var(--text-small);
  line-height: 1.7;
}

.cc-round-desc b {
  color: var(--ink);
}

/* 강사 한마디 — 세 카드 높이가 달라도 맨 아래에 나란히 붙는다 (앞 칸이 아래 여백을 맡는다) */
.cc-round-steps,
.cc-round-desc {
  margin-bottom: 16px;
}

.cc-round-note {
  margin-top: auto;
  padding: 16px 16px 16px 18px;
  border-radius: 16px;
  background: var(--navy);
  color: rgba(255, 255, 255, 0.8);
  font-size: var(--text-small);
  line-height: 1.7;
}

.cc-round-note b {
  color: var(--white);
}

.cc-together {
  margin-top: 40px;
}

@media (max-width: 1080px) {
  .cc-rounds {
    grid-template-columns: minmax(0, 1fr);
    max-width: 640px;
  }

  .cc-round-photos {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .cc-round-photos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ---------- 결과와 후기 ---------- */
.cc-stat {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(1.5rem, 3vw, 3rem);
  padding: clamp(1.75rem, 1.2rem + 2.4vw, 3rem);
  border-radius: 32px;
  background: var(--white);
  border: 1px solid var(--line);
  box-shadow: 0 24px 60px rgba(28, 40, 96, 0.06);
}

.cc-stat-num {
  color: var(--ink-2);
  font-size: var(--text-lead);
  font-weight: 600;
  line-height: 1.5;
}

.cc-stat-num b {
  display: block;
  margin: 4px 0 2px;
  color: var(--brand);
  font-size: clamp(3rem, 2rem + 4.4vw, 5.25rem);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.05em;
  font-variant-numeric: tabular-nums;
}

.cc-stat-list {
  display: grid;
  gap: 8px;
}

.cc-stat-list li {
  padding: 14px 18px;
  border-radius: 14px;
  background: linear-gradient(90deg, #eef1fa 0%, #f6f7fb 100%);
  color: var(--ink);
  font-weight: 700;
  line-height: 1.45;
}

.cc-stat-list li:last-child {
  background: linear-gradient(140deg, #22357f 0%, #162257 100%);
  color: var(--white);
}

.cc-reviews {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 16px;
}

.cc-review {
  display: flex;
  flex-direction: column;
  padding: 26px 24px 22px;
  border: 1px solid var(--line);
  border-radius: 24px 24px 24px 8px;
  background: var(--white);
}

.cc-review::before {
  content: '“';
  color: var(--periwinkle);
  font-size: 3rem;
  font-weight: 800;
  line-height: 0.6;
}

.cc-review blockquote {
  margin-top: 10px;
  color: var(--ink-2);
  font-size: var(--text-small);
  line-height: 1.75;
}

.cc-review blockquote b {
  color: var(--ink);
  background: linear-gradient(transparent 60%, rgba(42, 73, 184, 0.14) 60%);
}

.cc-review figcaption {
  margin-top: auto;
  padding-top: 16px;
  color: var(--ink-3);
  font-size: var(--text-xs);
  font-weight: 700;
}

.cc-bubbles {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
}

.cc-bubbles li {
  padding: 12px 16px;
  border: 1px solid var(--line);
  border-radius: 18px 18px 18px 4px;
  background: var(--white);
  color: var(--ink);
  font-size: var(--text-small);
  font-weight: 600;
  line-height: 1.45;
}

.cc-bubbles li::before {
  content: '💬';
  content: '💬' / '';
  margin-right: 6px;
}

@media (max-width: 900px) {
  .cc-stat,
  .cc-reviews {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* ---------- 권하지 않습니다 ---------- */
.cc-honest {
  max-width: 720px;
  margin-inline: auto;
  padding: clamp(2rem, 1.4rem + 3vw, 3.5rem) clamp(1.5rem, 1rem + 3vw, 3.5rem);
  border: 1px solid #e6e9f1;
  border-radius: 32px;
  background: linear-gradient(170deg, #f3f5f9 0%, #fbfbfd 100%);
  text-align: center;
}

.cc-honest .d-h2 {
  margin-top: 10px;
}

.cc-honest > p:not(.label-en) {
  margin-top: 22px;
  color: var(--ink-2);
  line-height: 1.75;
}

.cc-honest b {
  color: var(--ink);
  background: linear-gradient(transparent 58%, rgba(42, 73, 184, 0.16) 58%);
}

.cc-honest strong {
  color: var(--brand-deep);
  font-size: 1.0625em;
}

.cc-honest ul {
  display: grid;
  justify-items: center;
  gap: 6px;
  margin-top: 14px;
}

.cc-honest li {
  padding: 8px 16px;
  border-radius: var(--radius-pill);
  background: var(--white);
  border: 1px solid var(--line);
  color: var(--ink);
  font-weight: 700;
}

/* ---------- 교육 안내 표 ---------- */
.cc-info {
  max-width: 860px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 28px;
  background: var(--white);
}

.cc-info > div {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  gap: 16px;
  padding: 22px 26px;
}

.cc-info > div + div {
  border-top: 1px solid var(--line);
}

.cc-info dt {
  align-self: start;
  justify-self: start;
  padding: 5px 12px;
  border-radius: var(--radius-pill);
  background: var(--navy);
  color: var(--white);
  font-size: var(--text-xs);
  font-weight: 700;
}

.cc-info dd {
  color: var(--ink-2);
  line-height: 1.6;
}

.cc-info dd > b {
  color: var(--ink);
  font-size: 1.0625rem;
  font-weight: 800;
}

.cc-info dd small {
  display: block;
  margin-top: 2px;
  color: var(--ink-3);
  font-size: var(--text-small);
}

.cc-places {
  display: grid;
  gap: 12px;
}

.cc-places b {
  display: block;
  color: var(--ink);
  font-weight: 800;
}

.cc-bring {
  display: inline-block;
  padding: 10px 14px;
  border-radius: 12px;
  background: var(--brand-tint);
  color: var(--brand-deep);
  font-weight: 700;
}

@media (max-width: 560px) {
  .cc-info > div {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    padding: 20px;
  }
}

/* 성함·연락처가 한 줄에 있을 때 위 끝을 맞춘다 */
.d-apply-form .field-row .field {
  margin-top: 0;
}

/* ---------- 바로 문의하기 ---------- */
.cc-contact {
  margin-top: 28px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: #f6f7fa;
}

.cc-contact-title {
  color: var(--ink);
  font-weight: 800;
}

.cc-contact ul {
  display: grid;
  gap: 6px;
  margin-top: 12px;
}

.cc-contact a,
.cc-contact button {
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 52px;
  padding: 0 16px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--white);
  color: var(--ink);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color var(--duration-fast) ease, transform var(--duration-fast) ease, box-shadow var(--duration-fast) ease;
}

.cc-contact a:hover,
.cc-contact button:hover {
  border-color: var(--periwinkle);
  box-shadow: 0 8px 20px rgba(28, 40, 96, 0.08);
}

.cc-contact a:active,
.cc-contact button:active {
  transform: scale(0.985);
}

.cc-contact a:focus-visible,
.cc-contact button:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 2px;
}

.cc-contact span {
  color: var(--ink-3);
  font-size: var(--text-xs);
  font-weight: 700;
}

.cc-contact b {
  overflow: hidden;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cc-contact i {
  color: var(--brand);
  font-size: var(--text-xs);
  font-style: normal;
  font-weight: 700;
}

.cc-contact button.is-copied i {
  color: #12805c;
}

.cc-copy-status {
  min-height: 1.2em;
  margin-top: 8px;
  color: #12805c;
  font-size: var(--text-xs);
  font-weight: 700;
}

.cc-copy-status.is-error {
  color: var(--ink-2);
}

/* 아주 좁은 폰(320~360px)에서 전화번호·아이디가 잘리지 않도록 이름 칸을 줄인다 */
@media (max-width: 360px) {
  .cc-contact {
    padding: 14px;
  }

  .cc-contact a,
  .cc-contact button {
    grid-template-columns: 58px minmax(0, 1fr) auto;
    gap: 6px;
    padding: 0 12px;
  }

  .cc-contact b {
    font-size: var(--text-small);
  }
}

@media (prefers-reduced-motion: reduce) {
  .cc-panel.is-entering li {
    animation: none;
  }

  .reveal .cc-shift i {
    transform: none;
    transition: none;
  }
}

/* ---------- 첫 화면: 배너 문장 바로 아래 한 줄 주장 ---------- */
.cc-hero-claim {
  margin-top: 18px;
  color: var(--brand-deep);
  font-size: clamp(1.1875rem, 1rem + 0.9vw, 1.625rem);
  font-weight: 800;
  letter-spacing: -0.04em;
}

/* ---------- 회차 카드 (가로형): 왼쪽 사진, 오른쪽 글 ---------- */
.cc-rounds.is-wide {
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
  max-width: none;
}

.cc-rounds.is-wide .cc-round {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
  align-items: start;
  gap: clamp(1.25rem, 0.8rem + 2vw, 2.75rem);
  padding: clamp(1.25rem, 0.9rem + 1.6vw, 2.25rem);
  border-radius: clamp(24px, 1rem + 1.2vw, 34px);
}

.cc-round-media {
  position: sticky;
  top: 96px;
}

.cc-round-media .cc-round-no {
  display: inline-block;
}

.cc-rounds.is-wide .cc-round-photos {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.cc-rounds.is-wide .cc-round h3 {
  margin-top: 0;
  font-size: clamp(1.5rem, 1.15rem + 1.4vw, 2.125rem);
  line-height: 1.25;
}

.cc-round h3 em {
  font-style: normal;
  background: linear-gradient(100deg, #3a5bc7 10%, #2a49b8 55%, #1f3484 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.cc-round-tag {
  margin-top: 10px;
  color: var(--brand-deep);
  font-weight: 700;
  line-height: 1.55;
}

.cc-rounds.is-wide .cc-round-desc {
  margin: 14px 0 0;
  font-size: var(--text-body);
}

.cc-rounds.is-wide .cc-round-note {
  margin-top: 20px;
  padding: 18px 20px;
  font-size: var(--text-body);
}

.cc-round-note > span {
  display: block;
  margin-bottom: 6px;
  color: var(--periwinkle);
  font-size: var(--text-xs);
  font-weight: 800;
  letter-spacing: 0.04em;
}

.cc-round-close {
  margin-top: 14px;
  color: var(--ink);
  font-weight: 800;
  letter-spacing: -0.02em;
}

.cc-round-close::before {
  content: '— ';
  color: var(--brand);
}

@media (max-width: 1080px) {
  .cc-rounds.is-wide {
    max-width: none;
  }

  .cc-rounds.is-wide .cc-round-photos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 820px) {
  .cc-rounds.is-wide .cc-round {
    grid-template-columns: minmax(0, 1fr);
  }

  .cc-round-media {
    position: static;
  }

  .cc-rounds.is-wide .cc-round-photos {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 14px;
  }
}

@media (max-width: 480px) {
  .cc-rounds.is-wide .cc-round-photos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ---------- 교육 안내: 일정 보기 링크 ---------- */
.cc-sched-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  border-radius: var(--radius-pill);
  background: var(--brand-tint);
  color: var(--brand-deep);
  font-weight: 800;
}

.cc-sched-link:hover {
  background: #e0e5f4;
}

/* ---------- 07 꿈현시 연계 ---------- */
.d-sec.cc-after-sec {
  background: linear-gradient(180deg, #eef1f8 0%, var(--page) 100%);
}

.cc-after {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr);
  align-items: center;
  gap: clamp(2rem, 4vw, 4rem);
  padding: clamp(2rem, 1.4rem + 3vw, 4rem);
  border-radius: clamp(28px, 1.2rem + 1.6vw, 40px);
  background:
    radial-gradient(circle at 92% 18%, rgba(226, 182, 91, 0.32) 0%, rgba(226, 182, 91, 0) 34%),
    radial-gradient(circle at 0% 100%, rgba(140, 156, 214, 0.3) 0%, rgba(140, 156, 214, 0) 42%),
    linear-gradient(140deg, #22357f 0%, #162257 55%, #0b1233 100%);
  color: var(--white);
  overflow: hidden;
}

.cc-after .label-en {
  color: rgba(255, 255, 255, 0.6);
  font-size: 0.75rem;
}

.cc-after .d-num {
  margin: 4px 0 0;
  color: #f1d48b;
}

.cc-after h2 {
  margin-top: 6px;
  font-size: clamp(1.875rem, 1.25rem + 2.6vw, 3rem);
  font-weight: 800;
  line-height: 1.22;
  letter-spacing: -0.05em;
}

.cc-after h2 em {
  font-style: normal;
  color: #f1d48b;
}

.cc-after-copy > p:not(.label-en) {
  max-width: 34em;
  margin-top: 14px;
  color: rgba(255, 255, 255, 0.8);
  line-height: 1.75;
}

.cc-after-copy > .cc-after-answer {
  margin-top: 22px;
  padding-top: 20px;
  border-top: 1px solid rgba(255, 255, 255, 0.16);
  color: var(--white);
  font-size: var(--text-lead);
  font-weight: 700;
}

.cc-after-answer b {
  color: #f1d48b;
}

.cc-after-brand {
  display: grid;
  justify-items: center;
  padding: clamp(1.5rem, 1rem + 2vw, 2.25rem) 20px;
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.07);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.14);
  text-align: center;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.cc-after-brand img {
  width: clamp(64px, 50px + 3vw, 92px);
  height: auto;
}

.cc-after-sign {
  margin-top: 14px;
  color: #f1d48b;
  font-size: var(--text-small);
  font-weight: 800;
}

.cc-after-sign i {
  margin: 0 4px;
  font-style: normal;
  opacity: 0.5;
}

.cc-after-motto {
  margin-top: 10px;
  font-size: clamp(1.25rem, 1.05rem + 0.8vw, 1.625rem);
  font-weight: 800;
  line-height: 1.35;
  letter-spacing: -0.04em;
}

.cc-after-intro {
  max-width: 760px;
  margin: clamp(2rem, 1.5rem + 2vw, 3rem) auto 0;
  text-align: center;
}

.cc-after-perks {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 24px;
}

.cc-after-perks li {
  padding: 22px 20px 24px;
  border-radius: 26px;
  background: var(--white);
  box-shadow: inset 0 0 0 1px var(--line), 0 10px 30px rgba(28, 40, 96, 0.05);
}

.cc-after-perks img {
  width: 64px;
  height: 64px;
  object-fit: contain;
}

.cc-after-perks h3 {
  margin-top: 14px;
  color: var(--ink);
  font-size: var(--text-h3);
  font-weight: 800;
  letter-spacing: -0.04em;
}

.cc-after-perks p {
  margin-top: 8px;
  color: var(--ink-2);
  font-size: var(--text-small);
  line-height: 1.65;
}

@media (max-width: 960px) {
  .cc-after {
    grid-template-columns: minmax(0, 1fr);
  }

  .cc-after-brand {
    grid-template-columns: auto minmax(0, 1fr);
    justify-items: start;
    align-items: center;
    gap: 4px 18px;
    text-align: left;
  }

  .cc-after-brand img {
    grid-row: span 2;
  }

  .cc-after-sign,
  .cc-after-motto {
    margin-top: 0;
  }

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

@media (max-width: 480px) {
  .cc-after-perks {
    grid-template-columns: minmax(0, 1fr);
  }

  .cc-after-perks li {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 2px 14px;
    padding: 18px;
  }

  .cc-after-perks img {
    grid-row: span 2;
    width: 52px;
    height: 52px;
  }

  .cc-after-perks h3 {
    margin-top: 0;
  }

  .cc-after-perks p {
    margin-top: 2px;
  }
}

/* 3회로 배우고 1년 동안 내 것으로 */
.cc-after-flow {
  margin-top: clamp(2.5rem, 2rem + 2vw, 4rem);
  text-align: center;
}

.cc-after-big {
  color: var(--ink);
  font-size: clamp(1.625rem, 1.15rem + 2vw, 2.5rem);
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: -0.05em;
}

.cc-after-big em {
  font-style: normal;
  background: linear-gradient(100deg, #3a5bc7 10%, #2a49b8 55%, #1f3484 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.cc-after-pair {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 44px minmax(0, 1fr);
  align-items: stretch;
  max-width: 820px;
  margin: 28px auto 0;
}

.cc-after-pair > div {
  display: grid;
  align-content: center;
  gap: 6px;
  padding: 22px 20px;
  border-radius: 24px;
  background: var(--white);
  box-shadow: inset 0 0 0 1px var(--line);
}

.cc-after-pair > div.is-dream {
  background: linear-gradient(140deg, #22357f 0%, #162257 60%, #0b1233 100%);
  box-shadow: 0 18px 40px rgba(22, 34, 87, 0.25);
  color: var(--white);
}

.cc-after-pair span {
  color: var(--brand);
  font-size: var(--text-small);
  font-weight: 800;
}

.cc-after-pair .is-dream span {
  color: #f1d48b;
}

.cc-after-pair b {
  font-size: clamp(1.0625rem, 0.95rem + 0.5vw, 1.25rem);
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: -0.03em;
}

.cc-after-pair i {
  position: relative;
  align-self: center;
  justify-self: center;
  width: 28px;
  height: 2px;
  background: #8c9cd6;
}

.cc-after-pair i::after {
  content: '';
  position: absolute;
  right: -1px;
  top: 50%;
  width: 9px;
  height: 9px;
  border: solid #8c9cd6;
  border-width: 2px 2px 0 0;
  transform: translateY(-50%) rotate(45deg);
}

.cc-after-checks {
  display: grid;
  gap: 8px;
  max-width: 680px;
  margin: 26px auto 0;
  text-align: left;
}

.cc-after-checks li {
  position: relative;
  padding: 14px 18px 14px 50px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.7);
  box-shadow: inset 0 0 0 1px var(--line);
  color: var(--ink);
  font-weight: 600;
  line-height: 1.55;
}

.cc-after-checks li::before {
  content: '';
  position: absolute;
  left: 18px;
  top: 15px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--brand-tint);
}

.cc-after-checks li::after {
  content: '';
  position: absolute;
  left: 25px;
  top: 19px;
  width: 5px;
  height: 9px;
  border: solid var(--brand);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

@media (max-width: 640px) {
  .cc-after-pair {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto 36px auto;
  }

  .cc-after-pair i {
    transform: rotate(90deg);
  }
}

/* 꿈현시 상담 버튼 묶음 — 카핑컷 신청(인디고)과 구분되도록 꿈현시의 남색·금색 */
.cc-after-cta {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
  align-items: center;
  gap: 24px clamp(2rem, 4vw, 4rem);
  margin-top: clamp(2.5rem, 2rem + 2vw, 4rem);
  padding: clamp(1.75rem, 1.2rem + 2.4vw, 3rem);
  border-radius: clamp(28px, 1.2rem + 1.6vw, 40px);
  background: var(--white);
  box-shadow: inset 0 0 0 2px #f1d48b, 0 24px 60px rgba(22, 34, 87, 0.1);
}

.cc-after-kicker {
  display: inline-block;
  padding: 6px 12px;
  border-radius: var(--radius-pill);
  background: #fbf3e2;
  color: #8a6416;
  font-size: var(--text-small);
  font-weight: 800;
}

.cc-after-cta h3 {
  margin-top: 14px;
  color: var(--ink);
  font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.125rem);
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: -0.05em;
}

.cc-after-cta h3 em {
  font-style: normal;
  color: #162257;
  box-shadow: inset 0 -0.38em 0 rgba(241, 212, 139, 0.6);
}

.cc-after-cta-copy > p:not(.cc-after-kicker) {
  margin-top: 12px;
  color: var(--ink-2);
  line-height: 1.7;
}

.cc-after-cta-copy > .cc-after-note {
  margin-top: 14px;
  padding-left: 12px;
  border-left: 3px solid #f1d48b;
  color: var(--ink-3);
  font-size: var(--text-small);
}

.cc-after-cta-actions {
  display: grid;
  gap: 10px;
  text-align: center;
}

.cc-after-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 66px;
  padding: 0 26px;
  border-radius: var(--radius-pill);
  background: linear-gradient(140deg, #22357f 0%, #162257 60%, #0b1233 100%);
  box-shadow: 0 16px 34px rgba(22, 34, 87, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.18);
  color: var(--white);
  font-size: 1.125rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  transition: transform var(--duration-fast) ease, box-shadow var(--duration-normal) ease;
}

.cc-after-btn span {
  color: #f1d48b;
  transition: transform var(--duration-normal) var(--ease-out-expo);
}

.cc-after-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 22px 44px rgba(22, 34, 87, 0.38), inset 0 1px 0 rgba(255, 255, 255, 0.18);
}

.cc-after-btn:hover span {
  transform: translateX(4px);
}

.cc-after-btn:focus-visible {
  outline: 3px solid #f1d48b;
  outline-offset: 3px;
}

.cc-after-more {
  justify-self: center;
  color: #162257;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.cc-after-cta-actions p {
  color: var(--ink-3);
  font-size: var(--text-xs);
}

@media (max-width: 900px) {
  .cc-after-cta {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 420px) {
  .cc-after-btn {
    font-size: 1.0625rem;
    padding: 0 18px;
  }
}

/* ---------- 09 교육 일정 (11월 · 12월) — '교육 일정 보기' 시트에도 같은 표가 복사된다 ---------- */
.cc-sched {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  max-width: 900px;
}

.cc-month {
  padding: 22px 22px 20px;
  border-radius: 26px;
  background: var(--white);
  box-shadow: inset 0 0 0 1px var(--line), var(--shadow-card);
}

.cc-month-no {
  display: inline-block;
  padding: 5px 14px;
  border-radius: var(--radius-pill);
  background: linear-gradient(150deg, #3a5bc7 0%, #2a49b8 45%, #162257 100%);
  box-shadow: var(--shadow-blue);
  color: var(--white);
  font-size: var(--text-small);
  font-weight: 800;
}

.cc-month h3 {
  margin-top: 10px;
  color: var(--ink);
  font-size: var(--text-h3);
  font-weight: 800;
  letter-spacing: -0.04em;
}

.cc-city {
  display: grid;
  grid-template-columns: 3.2em minmax(0, 1fr);
  gap: 12px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}

.cc-city-name {
  padding-top: 6px;
  color: var(--brand-deep);
  font-weight: 800;
}

.cc-city ul {
  display: grid;
  gap: 6px;
}

.cc-city li {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 12px 6px 6px;
  border-radius: 12px;
  background: #f3f5f9;
  color: var(--ink);
  font-weight: 700;
  letter-spacing: -0.02em;
  white-space: nowrap;
}

.cc-city li b {
  display: grid;
  place-items: center;
  flex: none;
  width: 30px;
  height: 30px;
  border-radius: 9px;
  background: var(--white);
  box-shadow: inset 0 0 0 1px var(--line);
  color: var(--brand);
  font-size: var(--text-small);
  font-weight: 800;
}

.cc-sched + .cc-subhead {
  margin-top: clamp(2rem, 1.6rem + 1.4vw, 3rem);
}

.cc-subhead + .cc-info {
  margin-top: 14px;
}

.cc-places + small {
  display: block;
  margin-top: 8px;
}

/* 시트 안: 두 달을 위아래로, 조금 촘촘하게 */
.cc-sched.is-sheet {
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
  margin-top: 14px;
}

.cc-sched.is-sheet .cc-month {
  padding: 16px;
  border-radius: 18px;
  background: #f7f8fb;
  box-shadow: none;
}

.cc-sched.is-sheet .cc-month h3 {
  font-size: 1.0625rem;
}

.cc-sched.is-sheet .cc-city li {
  background: var(--white);
}

@media (max-width: 720px) {
  .cc-sched {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 360px) {
  .cc-city {
    grid-template-columns: minmax(0, 1fr);
    gap: 6px;
  }

  .cc-city-name {
    padding-top: 0;
  }
}

/* ---------- 07 후기: 카톡 후기 모아보기로 가는 묶음 ---------- */
.cc-rv-teaser {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  align-items: center;
  gap: 20px clamp(1.5rem, 3vw, 3rem);
  margin-top: 22px;
  padding: clamp(12px, 0.6rem + 1vw, 20px);
  border-radius: clamp(24px, 1rem + 1.2vw, 34px);
  background: #1d92d8;
  color: var(--white);
  transition: transform var(--duration-normal) var(--ease-out-expo), box-shadow var(--duration-normal) ease;
}

.cc-rv-teaser:hover {
  transform: translateY(-3px);
  box-shadow: 0 22px 48px rgba(29, 146, 216, 0.32);
}

.cc-rv-teaser:focus-visible {
  outline: 3px solid var(--brand);
  outline-offset: 4px;
}

/* 캡처 윗부분만 잘라 여섯 장 — 아래로 갈수록 흐려져 '더 있다'는 느낌 */
.cc-rv-thumbs {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  max-height: 300px;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(180deg, #000 70%, transparent 100%);
  mask-image: linear-gradient(180deg, #000 70%, transparent 100%);
}

.cc-rv-thumbs img {
  width: 100%;
  aspect-ratio: 3 / 4;
  border-radius: 12px;
  object-fit: cover;
  object-position: top;
  background: var(--white);
  box-shadow: 0 6px 14px rgba(6, 40, 80, 0.2);
}

.cc-rv-copy {
  display: grid;
  justify-items: start;
  gap: 10px;
  padding: 8px 8px 8px 0;
}

.cc-rv-kicker {
  padding: 5px 12px;
  border-radius: var(--radius-pill);
  background: rgba(255, 255, 255, 0.2);
  font-size: var(--text-small);
  font-weight: 800;
}

.cc-rv-copy b {
  font-size: clamp(1.25rem, 1rem + 1vw, 1.75rem);
  font-weight: 800;
  line-height: 1.35;
  letter-spacing: -0.04em;
  word-break: keep-all;
}

.cc-rv-copy em {
  font-style: normal;
  color: #fff3c4;
}

.cc-rv-go {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 52px;
  margin-top: 6px;
  padding: 0 24px;
  border-radius: var(--radius-pill);
  background: var(--white);
  color: #0f5f99;
  font-weight: 800;
}

.cc-rv-go span {
  transition: transform var(--duration-normal) var(--ease-out-expo);
}

.cc-rv-teaser:hover .cc-rv-go span {
  transform: translateX(4px);
}

@media (max-width: 760px) {
  .cc-rv-teaser {
    grid-template-columns: minmax(0, 1fr);
  }

  .cc-rv-thumbs {
    max-height: 220px;
  }

  .cc-rv-copy {
    padding: 0 6px 6px;
  }

  .cc-rv-go {
    justify-self: stretch;
    justify-content: center;
  }
}

/* ---------- 권하지 않습니다 아래: 다른 교육 두 가지 ---------- */
.cc-alt {
  max-width: 860px;
  margin: clamp(2rem, 1.5rem + 2vw, 3rem) auto 0;
}

.cc-alt-title {
  color: var(--ink-2);
  font-size: var(--text-lead);
  text-align: center;
}

.cc-alt-title b {
  color: var(--ink);
}

.cc-alt-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 18px;
}

.cc-alt-list a {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  height: 100%;
  padding: 18px;
  border-radius: 22px;
  background: #f3f5f9;
  box-shadow: inset 0 0 0 1px var(--line);
  color: var(--ink);
  transition: transform var(--duration-normal) var(--ease-out-expo), background var(--duration-fast) ease;
}

.cc-alt-list a:hover {
  transform: translateY(-2px);
  background: var(--brand-tint);
}

.cc-alt-list img {
  width: 64px;
  height: 64px;
  object-fit: contain;
}

.cc-alt-copy {
  display: grid;
  justify-items: start;
  gap: 4px;
}

.cc-alt-tag {
  padding: 3px 9px;
  border-radius: var(--radius-pill);
  background: var(--white);
  color: var(--brand-deep);
  font-size: var(--text-xs);
  font-weight: 700;
}

.cc-alt-tag.is-free {
  background: #fbf3e2;
  color: #8a6416;
}

.cc-alt-copy b {
  font-size: 1.1875rem;
  font-weight: 800;
  letter-spacing: -0.03em;
}

.cc-alt-copy small {
  color: var(--ink-2);
  font-size: var(--text-small);
  line-height: 1.6;
}

.cc-alt-go {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--white);
  color: var(--brand);
  font-weight: 800;
}

@media (max-width: 760px) {
  .cc-alt-list {
    grid-template-columns: minmax(0, 1fr);
  }

  .cc-alt-list a {
    grid-template-columns: 52px minmax(0, 1fr) auto;
    padding: 16px;
  }

  .cc-alt-list img {
    width: 52px;
    height: 52px;
  }
}

/* ---------- 원본형 상세 (/d/copyingcut2/): 궁서채몰 상세 이미지를 그대로 세로로 잇는다 ---------- */
.cc2-detail {
  background: var(--page);
}

.cc2-col {
  max-width: 860px;
  margin-inline: auto;
}

/* 상세 이미지만 (꿈현시 구역 안 아이콘·로고는 제 크기 그대로) */
.cc2-col > img {
  display: block;
  width: 100%;
  height: auto;
}

/* 이미지 사이·아래에 끼운 구역은 이미지 폭에 맞춘다 */
.cc2-narrow .container {
  max-width: calc(860px + 2 * var(--gutter));
}

.cc2-narrow .cc-after {
  grid-template-columns: minmax(0, 1fr);
}

.cc2-narrow .cc-after-brand {
  grid-template-columns: auto minmax(0, 1fr);
  justify-items: start;
  align-items: center;
  gap: 4px 18px;
  text-align: left;
}

.cc2-narrow .cc-after-brand img {
  grid-row: span 2;
}

.cc2-narrow .cc-after-sign,
.cc2-narrow .cc-after-motto {
  margin-top: 0;
}

.cc2-narrow .cc-after-perks {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cc2-narrow .cc-after-cta {
  grid-template-columns: minmax(0, 1fr);
}

@media (max-width: 480px) {
  .cc2-narrow .cc-after-perks {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* 원본형: 상세 이미지 사이에 끼운 꿈현시 구역 — 위(8번 앞)·아래(8번 뒤) 이미지 가장자리와 같은 파랑이라 이어 보인다 */
.cc2-bridge {
  background: var(--page);
}

.cc2-blue {
  padding: 8px clamp(16px, 5%, 44px) clamp(40px, 6vw, 64px);
  background: #138dd6;
}

.cc2-blue .cc-after {
  box-shadow: 0 24px 50px rgba(6, 40, 80, 0.3);
}

.cc2-blue .cc-after-intro {
  color: rgba(255, 255, 255, 0.88);
}

.cc2-blue .cc-after-intro strong {
  color: var(--white);
}

.cc2-blue .cc-after-perks li {
  box-shadow: 0 10px 24px rgba(6, 40, 80, 0.16);
}

.cc2-blue .cc-after-big {
  color: var(--white);
}

.cc2-blue .cc-after-big em {
  background: none;
  -webkit-background-clip: border-box;
  background-clip: border-box;
  color: #fff3c4;
}

.cc2-blue .cc-after-pair > div:not(.is-dream) {
  box-shadow: none;
}

.cc2-blue .cc-after-pair i {
  background: var(--white);
}

.cc2-blue .cc-after-pair i::after {
  border-color: var(--white);
}

.cc2-blue .cc-after-checks li {
  background: var(--white);
  box-shadow: none;
}

.cc2-blue .cc-after-cta {
  box-shadow: inset 0 0 0 2px #f1d48b, 0 24px 50px rgba(6, 40, 80, 0.22);
}

