/* =========================================================
   수익화 강의 플랫폼 — 디자인 시스템
   레이아웃 레퍼런스: fastcampus.co.kr
   ========================================================= */
@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.css");

:root {
  --ink: #14151a;
  --ink-2: #3d4150;
  --ink-3: #6b7080;
  --line: #e7e9ef;
  --line-2: #f0f1f5;
  --bg: #ffffff;
  --bg-soft: #f6f7fb;
  --bg-dark: #14151a;
  --primary: #ff4800;        /* fastcampus 시그니처 코럴 */
  --primary-dark: #e03f00;
  --primary-soft: #fff1ea;
  --free: #1f6feb;           /* 무료 뱃지 블루 */
  --free-soft: #eaf2ff;
  --radius: 16px;
  --radius-sm: 10px;
  --shadow: 0 8px 28px rgba(20, 21, 26, .08);
  --shadow-hover: 0 14px 40px rgba(20, 21, 26, .14);
  --maxw: 1180px;
  --gnb-h: 64px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: "Pretendard", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  color: var(--ink);
  background: var(--bg);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button { font-family: inherit; cursor: pointer; }
.container { width: 100%; max-width: var(--maxw); margin: 0 auto; padding: 0 20px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* ---------- GNB ---------- */
.gnb {
  position: sticky; top: 0; z-index: 100;
  height: var(--gnb-h);
  background: rgba(255,255,255,.92);
  backdrop-filter: saturate(180%) blur(12px);
  border-bottom: 1px solid var(--line);
}
.gnb__inner { display: flex; align-items: center; gap: 28px; height: 100%; }
.gnb__logo { font-weight: 800; font-size: 20px; letter-spacing: -.4px; }
.gnb__logo b { color: var(--primary); }
.gnb__menu { display: flex; gap: 24px; margin-left: 8px; }
.gnb__menu a { font-size: 15px; font-weight: 600; color: var(--ink-2); padding: 6px 0; }
.gnb__menu a:hover, .gnb__menu a.is-active { color: var(--ink); }
.gnb__menu a.is-active { box-shadow: inset 0 -2px 0 var(--primary); }
.gnb__right { margin-left: auto; display: flex; align-items: center; gap: 12px; }
.btn-login {
  border: 1px solid var(--line); background: #fff; color: var(--ink);
  font-weight: 700; font-size: 14px; padding: 9px 16px; border-radius: 999px;
}
.btn-login:hover { border-color: var(--ink-3); }

/* 유저 아이콘 (로그인 후) */
.user-menu { position: relative; }
.user-icon {
  width: 38px; height: 38px; border-radius: 50%;
  background: var(--ink); color: #fff; border: none;
  font-weight: 800; font-size: 14px; display: grid; place-items: center;
}
.user-dd {
  position: absolute; right: 0; top: 46px; width: 180px;
  background: #fff; border: 1px solid var(--line); border-radius: 12px;
  box-shadow: var(--shadow); padding: 6px; display: none;
}
.user-dd.open { display: block; }
.user-dd a, .user-dd button {
  display: block; width: 100%; text-align: left; background: none; border: none;
  padding: 10px 12px; border-radius: 8px; font-size: 14px; font-weight: 600; color: var(--ink-2);
}
.user-dd a:hover, .user-dd button:hover { background: var(--bg-soft); color: var(--ink); }
.user-dd hr { border: none; border-top: 1px solid var(--line-2); margin: 6px 0; }

/* ---------- 롤링 배너 ---------- */
.banner { padding: 24px 0 8px; }
.banner__viewport { position: relative; overflow: hidden; border-radius: var(--radius); }
.banner__track { display: flex; transition: transform .5s cubic-bezier(.22,.61,.36,1); }
.banner__slide {
  position: relative; overflow: hidden;
  min-width: 100%;
  height: 320px;
  display: flex; align-items: center;
  padding: 0 56px; color: #fff;
  background-size: cover; background-position: center;
}
/* 텍스트: 좌측 고정폭 (이미지 위, 긴 제목도 우측 침범 방지) */
.banner__text { position: relative; z-index: 2; max-width: 560px; }
/* 우측 이미지 레이어 (대표이미지) — contain으로 안전하게 우하단 정렬 */
.banner__img { position: absolute; right: 0; top: 0; bottom: 0; width: 46%; z-index: 1; pointer-events: none; }
.banner__img img { width: 100%; height: 100%; object-fit: contain; object-position: bottom right; }
.banner__slide .eyebrow { font-size: 14px; font-weight: 700; opacity: .9; letter-spacing: .2px; }
.banner__slide h2 { font-size: 34px; font-weight: 800; margin: 10px 0 6px; letter-spacing: -.6px; line-height: 1.25; }
.banner__slide p { font-size: 16px; opacity: .92; margin: 0; }
.banner__dots { display: flex; gap: 8px; justify-content: center; margin-top: 14px; }
.banner__dots button { width: 8px; height: 8px; border-radius: 999px; border: none; background: var(--line); padding: 0; }
.banner__dots button.is-active { width: 22px; background: var(--primary); }
.banner__arrow {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 44px; height: 44px; border-radius: 50%; border: none;
  background: rgba(255,255,255,.9); color: var(--ink); font-size: 18px;
  display: grid; place-items: center; box-shadow: var(--shadow);
}
.banner__arrow.prev { left: 16px; } .banner__arrow.next { right: 16px; }

/* ---------- 섹션 / 카드 그리드 ---------- */
.section { padding: 40px 0; }
.section__head { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 20px; }
.section__title { font-size: 24px; font-weight: 800; letter-spacing: -.5px; }
.section__title .count { color: var(--ink-3); font-size: 16px; font-weight: 700; margin-left: 8px; }
.section__more { font-size: 14px; font-weight: 700; color: var(--ink-3); }
.section__more:hover { color: var(--primary); }

.grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }

.card { display: block; border-radius: var(--radius); overflow: hidden; background: #fff; box-shadow: 0 3px 14px rgba(20,21,26,.07); transition: transform .18s, box-shadow .18s; }
.card:hover { transform: translateY(-4px); box-shadow: var(--shadow-hover); }
.card__thumb { position: relative; aspect-ratio: 317/178; background: var(--bg-soft); overflow: hidden; }
.card__thumb img { width: 100%; height: 100%; object-fit: cover; }
.card__badge {
  position: absolute; top: 12px; right: 12px; z-index: 2;
  font-size: 12px; font-weight: 800; padding: 5px 10px; border-radius: 999px;
}
.badge-free { background: var(--free); color: #fff; }
.badge-live { background: rgba(255,72,0,.95); color: #fff; }
/* 라이브 일시 칩 (썸네일 좌상단 오버레이) */
.card__date {
  position: absolute; top: 12px; left: 12px; z-index: 2;
  display: inline-flex; align-items: center;
  background: rgba(20,21,26,.72); color: #fff;
  font-size: 13px; font-weight: 700; letter-spacing: -.2px;
  padding: 6px 12px; border-radius: 999px;
  -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
}
.card__body { padding: 14px 14px 16px; }
.card__cat { font-size: 12px; font-weight: 700; color: var(--primary); }
.card__title { font-size: 16px; font-weight: 700; letter-spacing: -.3px; margin: 6px 0 8px; line-height: 1.35;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.card__instructor { font-size: 13px; color: var(--ink-3); }
.card__meta { display: flex; align-items: center; justify-content: space-between; margin-top: 10px; }
.card__price { font-size: 17px; font-weight: 800; }
.card__price.free { color: var(--free); }
.card__price del { color: var(--ink-3); font-weight: 600; font-size: 13px; margin-right: 6px; }

/* ---------- 빈 상태 ---------- */
.empty {
  text-align: center; padding: 64px 20px; background: var(--bg-soft);
  border: 1px dashed var(--line); border-radius: var(--radius);
}
.empty__emoji { font-size: 40px; }
.empty__title { font-size: 20px; font-weight: 800; margin: 14px 0 6px; }
.empty__desc { color: var(--ink-3); font-size: 15px; margin: 0 0 22px; }

/* ---------- 버튼 ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  border: none; border-radius: 12px; font-weight: 800; font-size: 16px;
  padding: 14px 22px; transition: transform .12s, background .15s;
}
.btn:active { transform: scale(.98); }
.btn-primary { background: var(--primary); color: #fff; }
.btn-primary:hover { background: var(--primary-dark); }
.btn-dark { background: var(--ink); color: #fff; }
.btn-dark:hover { background: #000; }
.btn-outline { background: #fff; border: 1.5px solid var(--line); color: var(--ink); }
.btn-outline:hover { border-color: var(--ink); }
.btn-block { width: 100%; }
.btn-kakao { background: #fee500; color: #191600; }
.btn-kakao:hover { background: #f5dc00; }

/* ---------- 랜딩페이지 (2단) ---------- */
.landing { padding: 28px 0 80px; }
.landing__grid {
  display: grid;
  grid-template-columns: 1fr 380px;
  grid-template-areas:
    "thumb   cta"
    "content cta";
  column-gap: 40px;
  row-gap: 28px;            /* 썸네일 하단 여백 */
  align-items: start;
}
.landing__thumb   { grid-area: thumb; }
.landing__content { grid-area: content; }
.cta-col          { grid-area: cta; }
.landing__hero-thumb { width: 100%; aspect-ratio: 16/9; border-radius: var(--radius); object-fit: cover; background: var(--bg-soft); }

/* 모바일 상단 후크 (라이브 일정 + 온보딩 툴팁) — PC 숨김 */
.m-hook { display: none; }
.m-hook__date { font-size: 14px; font-weight: 700; color: var(--ink-2); margin: 12px 0 14px; }
/* 강의 상세 본문 타이포 — 모바일 우선, 크게(1.5x), 가운데 정렬 */
.landing__content { font-size: 27px; color: var(--ink-2); text-align: center; }
.landing__content h2 { font-size: 42px; font-weight: 800; color: var(--ink); letter-spacing: -.5px; line-height: 1.3; margin: 195px 0 28px; }
.landing__content h3 { font-size: 35px; font-weight: 800; color: var(--ink); letter-spacing: -.4px; line-height: 1.34; margin: 150px 0 24px; }
.landing__content h4 { font-size: 30px; font-weight: 700; color: var(--ink); margin: 114px 0 18px; }
.landing__content p { font-size: 27px; line-height: 1.8; color: var(--ink-2); margin: 0 0 60px; }
.landing__content ul, .landing__content ol { font-size: 27px; line-height: 1.8; color: var(--ink-2); list-style-position: inside; padding-left: 0; margin: 0 0 60px; }
.landing__content li { margin-bottom: 36px; }
.landing__content strong { font-weight: 800; color: var(--ink); }
.landing__content img { max-width: 100%; height: auto; border-radius: var(--radius); margin: 0; }
/* 이미지 여백은 블록(figure)에 적용 → 에디터에서 블록별 조정 가능 */
.landing__content figure { margin: 84px 0; text-align: center; }
/* 가운데 정렬 figure(크기 지정 이미지 포함) — 좌우 auto로 박스 자체를 중앙에 */
.landing__content figure.aligncenter { margin-left: auto; margin-right: auto; }
/* 이미지 중앙 정렬 (블록 정렬값 존중) */
.landing__content figure img { display: block; margin-left: auto; margin-right: auto; }
.landing__content .alignleft img { margin-left: 0; }
.landing__content .alignright img { margin-right: 0; }
.landing__content .alignfull img, .landing__content .alignwide img { width: 100%; }
.landing__content > :first-child { margin-top: 0; }
.landing__content a { color: var(--primary); text-decoration: underline; text-underline-offset: 3px; }
@media (min-width: 768px) {
  .landing__content { font-size: 29px; }
  .landing__content h2 { font-size: 51px; }
  .landing__content h3 { font-size: 41px; }
  .landing__content h4 { font-size: 33px; }
  .landing__content p, .landing__content ul, .landing__content ol { font-size: 29px; }
}
.curriculum { border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.curriculum__item { display: flex; gap: 14px; padding: 18px 20px; border-bottom: 1px solid var(--line-2); }
.curriculum__item:last-child { border-bottom: none; }
.curriculum__no { font-weight: 800; color: var(--primary); min-width: 28px; }
.curriculum__txt b { display: block; font-size: 15px; }
.curriculum__txt span { font-size: 13px; color: var(--ink-3); }

/* CTA sticky */
.cta-col { position: sticky; top: calc(var(--gnb-h) + 20px); }
.cta {
  background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
  box-shadow: var(--shadow); padding: 22px; position: relative;
  display: flex; flex-direction: column;
  max-height: calc(100vh - var(--gnb-h) - 32px); /* 뷰포트 안에 맞춤 */
}
/* 버튼은 항상 보이도록 하단 고정, 나머지만 내부 스크롤 */
.cta__scroll {
  flex: 1 1 auto; min-height: 0; overflow-y: auto;
  margin: -4px -8px 0; padding: 4px 8px 0;
}
.cta > .btn { flex: 0 0 auto; margin-top: 16px; }
.cta__tip {
  position: relative; margin: 0 0 16px; background: var(--ink); color: #fff;
  font-size: 13.5px; font-weight: 700; padding: 11px 14px; border-radius: 12px; text-align: center;
  animation: bob 1.6s ease-in-out infinite;
}
.cta__tip::after {
  content: ""; position: absolute; left: 50%; bottom: -7px; transform: translateX(-50%);
  border: 7px solid transparent; border-top-color: var(--ink); border-bottom: 0;
}
@keyframes bob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
.cta__method { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 800;
  color: var(--primary); background: var(--primary-soft); padding: 6px 12px; border-radius: 999px; }
.cta__title { font-size: 21px; font-weight: 800; letter-spacing: -.4px; margin: 14px 0 8px; line-height: 1.35; }
.cta__summary { font-size: 14px; color: var(--ink-3); margin: 0 0 18px; }
.cta__price { display: flex; align-items: baseline; gap: 8px; margin-bottom: 18px; }
.cta__price .amount { font-size: 28px; font-weight: 800; }
.cta__price .amount.free { color: var(--free); }
.cta__price del { color: var(--ink-3); font-size: 16px; }
.cta__row { display: flex; justify-content: space-between; font-size: 14px; padding: 8px 0; border-top: 1px solid var(--line-2); }
.cta__row .k { color: var(--ink-3); }
.cta__row .v { font-weight: 700; }

/* 구매 옵션 선택 */
.uc-opts { display: flex; flex-direction: column; gap: 10px; margin: 0 0 18px; }
.uc-opt { display: flex; align-items: center; gap: 12px; padding: 14px; border: 1.5px solid var(--line); border-radius: var(--radius-sm); cursor: pointer; transition: border-color .15s, background .15s; }
.uc-opt:hover { border-color: var(--ink-3); }
.uc-opt.is-sel { border-color: var(--primary); background: var(--primary-soft); }
.uc-opt input { appearance: none; -webkit-appearance: none; flex: 0 0 auto; width: 20px; height: 20px; border: 2px solid var(--line); border-radius: 999px; margin: 0; position: relative; transition: border-color .15s; }
.uc-opt.is-sel input { border-color: var(--primary); }
.uc-opt.is-sel input::after { content: ""; position: absolute; inset: 3px; border-radius: 999px; background: var(--primary); }
.uc-opt__main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.uc-opt__main b { font-size: 15px; font-weight: 800; letter-spacing: -.3px; }
.uc-opt__desc { font-size: 12.5px; color: var(--ink-3); line-height: 1.4; }
.uc-opt__price { flex: 0 0 auto; font-size: 15px; font-weight: 800; text-align: right; white-space: nowrap; }
.uc-opt__price del { display: block; font-size: 12px; font-weight: 600; color: var(--ink-3); }

/* 카운트다운 */
.countdown { background: var(--bg-soft); border-radius: 12px; padding: 12px; margin: 12px 0; text-align: center; }
.countdown__label { font-size: 12px; font-weight: 700; color: var(--ink-3); margin-bottom: 8px; }
.countdown__clock { display: flex; justify-content: center; gap: 8px; }
.countdown__unit { background: var(--ink); color: #fff; border-radius: 8px; padding: 8px 0; min-width: 52px; }
.countdown__unit b { display: block; font-size: 20px; font-weight: 800; font-variant-numeric: tabular-nums; }
.countdown__unit span { font-size: 11px; opacity: .7; }
.countdown.is-urgent .countdown__unit { background: var(--primary); }

/* 혜택 */
.benefits { list-style: none; padding: 0; margin: 12px 0 4px; }
.benefits li { display: flex; gap: 10px; font-size: 14px; color: var(--ink-2); padding: 4px 0; }
.benefits li::before { content: "✓"; color: var(--primary); font-weight: 900; }

/* 모바일 하단 고정 CTA */
.mobile-cta {
  display: none; position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
  background: #fff; border-top: 1px solid var(--line); padding: 12px 16px;
  box-shadow: 0 -6px 20px rgba(0,0,0,.06);
  align-items: center; gap: 12px;
}
.mobile-cta .price { font-size: 18px; font-weight: 800; white-space: nowrap; }
.mobile-cta .btn { flex: 1; }

/* ---------- 마이페이지 ---------- */
.page-head { background: var(--bg-dark); color: #fff; padding: 40px 0; }
.page-head h1 { font-size: 26px; font-weight: 800; margin: 0; }
.page-head p { opacity: .7; margin: 8px 0 0; font-size: 14px; }
.tabs { display: flex; gap: 8px; margin: 28px 0 24px; border-bottom: 1px solid var(--line); }
.tabs button {
  background: none; border: none; padding: 12px 4px; margin-right: 20px;
  font-size: 16px; font-weight: 700; color: var(--ink-3); position: relative;
}
.tabs button.is-active { color: var(--ink); }
.tabs button.is-active::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--primary); }
.tabpanel { display: none; } .tabpanel.is-active { display: block; }

.my-card {
  display: grid; grid-template-columns: 200px 1fr auto; gap: 20px; align-items: center;
  border: 1px solid var(--line); border-radius: var(--radius); padding: 16px; margin-bottom: 16px;
}
.my-card__thumb { width: 200px; aspect-ratio: 16/9; border-radius: var(--radius-sm); object-fit: cover; background: var(--bg-soft); }
.my-card__title { font-size: 17px; font-weight: 700; margin: 0 0 6px; }
.my-card__meta { font-size: 13px; color: var(--ink-3); }
.my-card__status { display: inline-block; font-size: 12px; font-weight: 800; padding: 4px 10px; border-radius: 999px; margin-bottom: 8px; }
.status-applied { background: var(--free-soft); color: var(--free); }
.status-paid { background: var(--primary-soft); color: var(--primary); }
.my-card__actions { display: flex; flex-direction: column; gap: 8px; min-width: 170px; }

/* ---------- 모달 (신청 완료) ---------- */
.modal-bg {
  position: fixed; inset: 0; background: rgba(20,21,26,.5); z-index: 200;
  display: none; align-items: center; justify-content: center; padding: 20px;
}
.modal-bg.open { display: flex; }
.modal {
  background: #fff; border-radius: 20px; max-width: 420px; width: 100%;
  padding: 32px 28px; text-align: center; box-shadow: var(--shadow-hover);
}
.modal__check { width: 64px; height: 64px; border-radius: 50%; background: var(--primary-soft);
  color: var(--primary); display: grid; place-items: center; font-size: 32px; margin: 0 auto 16px; }
.modal h3 { font-size: 22px; font-weight: 800; margin: 0 0 8px; }
.modal p { color: var(--ink-3); font-size: 15px; margin: 0 0 22px; }
.modal__link {
  background: var(--bg-soft); border-radius: 12px; padding: 14px; margin-bottom: 16px;
  font-size: 13px; color: var(--ink-2); text-align: left;
}
.modal__link b { display: block; margin-bottom: 6px; }
.modal__actions { display: flex; flex-direction: column; gap: 10px; }
.modal__close { position: absolute; }

/* ---------- 로그인 모달 ---------- */
.auth { max-width: 360px; }
.auth h3 { margin-top: 0; }
.auth p { margin-bottom: 24px; }

/* ---------- 푸터 ---------- */
.footer { background: var(--bg-soft); border-top: 1px solid var(--line); padding: 40px 0; margin-top: 40px; }
.footer__inner { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 16px; color: var(--ink-3); font-size: 13px; }
.footer b { color: var(--ink); }

/* ---------- 블로그 ---------- */
.blog-head { padding: 48px 0 4px; }
.blog-head h1 { font-size: 32px; font-weight: 800; letter-spacing: -.6px; margin: 0; }
.blog-head p { color: var(--ink-3); font-size: 16px; margin: 10px 0 0; }
.chips { display: flex; gap: 8px; flex-wrap: wrap; margin: 24px 0 8px; }
.chips button {
  background: #fff; border: 1px solid var(--line); border-radius: 999px;
  padding: 8px 16px; font-size: 14px; font-weight: 600; color: var(--ink-2);
}
.chips button:hover { border-color: var(--ink-3); }
.chips button.is-active { background: var(--ink); color: #fff; border-color: var(--ink); }

.blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px 24px; }
.blog-card { display: block; }
.blog-card__thumb { aspect-ratio: 16/9; border-radius: var(--radius); overflow: hidden; background: var(--bg-soft); }
.blog-card__thumb > div { width: 100%; height: 100%; transition: transform .25s; }
.blog-card:hover .blog-card__thumb > div { transform: scale(1.04); }
.blog-card__cat { font-size: 12px; font-weight: 800; color: var(--primary); margin: 14px 0 6px; }
.blog-card__title { font-size: 18px; font-weight: 700; letter-spacing: -.3px; line-height: 1.4; margin: 0 0 8px;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.blog-card:hover .blog-card__title { color: var(--primary); }
.blog-card__excerpt { font-size: 14px; color: var(--ink-3); line-height: 1.6; margin: 0 0 12px;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.blog-card__meta { font-size: 13px; color: var(--ink-3); }

.pagination { display: flex; justify-content: center; gap: 6px; margin: 48px 0; }
.pagination a, .pagination span {
  min-width: 38px; height: 38px; display: grid; place-items: center;
  border-radius: 8px; font-size: 14px; font-weight: 700; color: var(--ink-2);
}
.pagination a:hover { background: var(--bg-soft); }
.pagination .is-active { background: var(--ink); color: #fff; }

/* 블로그 글 상세 */
.post { max-width: 720px; margin: 0 auto; padding: 40px 0 80px; }
.post__breadcrumb { font-size: 13px; color: var(--ink-3); margin-bottom: 16px; }
.post__breadcrumb a:hover { color: var(--primary); }
.post__cat { font-size: 13px; font-weight: 800; color: var(--primary); }
.post__title { font-size: 32px; font-weight: 800; line-height: 1.3; letter-spacing: -.5px; margin: 10px 0 14px; }
.post__meta { font-size: 14px; color: var(--ink-3); padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.post__hero { aspect-ratio: 16/9; border-radius: var(--radius); margin: 28px 0; overflow: hidden; }
.post__body { font-size: 17px; line-height: 1.85; color: var(--ink-2); }
/* 본문 텍스트 링크 — 주황 텍스트, hover 시 좌→우 주황 채움 + 흰 글자 (아웃 시 역방향) */
.post__body a {
  color: var(--primary);
  font-weight: 600;
  text-decoration: none;
  padding: 1px 3px;
  margin: 0 -1px;
  background-image: linear-gradient(var(--primary), var(--primary));
  background-repeat: no-repeat;
  background-size: 0% 100%;
  background-position: 0 0;
  transition: background-size .28s ease, color .28s ease;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  border-radius: 3px;
}
.post__body a:hover { background-size: 100% 100%; color: #fff; }
/* 북마크 카드·CTA 버튼은 링크 효과 제외 */
.post__body a.uc-bookmark, .post__body .uc-post-cta a { background-image: none !important; padding: 0; margin: 0; }
.post__body h2 { font-size: 22px; font-weight: 800; color: var(--ink); margin: 36px 0 12px; letter-spacing: -.3px; }
.post__body p { margin: 0 0 18px; }

/* ---------- 반응형 ---------- */
@media (max-width: 1024px) {
  .grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 860px) {
  /* 모바일: 썸네일 → 온보딩 툴팁(후크) → 카드내용 → 본문 순으로 재배치 */
  .landing__grid {
    grid-template-columns: 1fr;
    grid-template-areas:
      "thumb"
      "hook"
      "cta"
      "content";
    row-gap: 18px;
  }
  .m-hook { display: block; grid-area: hook; }
  .m-hook .cta__tip { margin-bottom: 0; }
  .cta-col { position: static; }
  .cta { display: flex; max-height: none; }   /* 모바일에선 펼쳐서 노출 */
  .cta__scroll { overflow: visible; }
  .cta .cta__tip { display: none; }            /* 카드 안 툴팁 → 상단 후크로 이동 */
  .cta .cta__method { display: none; }         /* 방식 칩 중복 제거(후크에 표시) */
  .mobile-cta { display: flex; }
  .grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
  .banner__slide { height: 220px; padding: 0 28px; }
  .banner__slide h2 { font-size: 24px; }
  .banner__text { max-width: none; }
  .banner__img { display: none; } /* 모바일: 우측 이미지 숨김 → 배경색+텍스트만 (깨짐 방지) */
  .my-card { grid-template-columns: 1fr; }
  .my-card__thumb { width: 100%; }
  .my-card__actions { flex-direction: row; }
  .blog-grid { grid-template-columns: repeat(2, 1fr); gap: 24px 18px; }
  .blog-head h1 { font-size: 26px; }
  .post__title { font-size: 26px; }
}
@media (max-width: 520px) {
  .gnb__menu { gap: 14px; }
  .gnb__logo { font-size: 18px; }
  .grid { grid-template-columns: 1fr 1fr; gap: 12px; }
  .section__title { font-size: 20px; }
  .blog-grid { grid-template-columns: 1fr; }
}

/* ---------- WordPress 관리바 보정 ---------- */
body.admin-bar .gnb { top: 32px; }
@media (max-width: 782px) { body.admin-bar .gnb { top: 46px; } }
.cta-col { top: calc(var(--gnb-h) + 20px); }
body.admin-bar .cta-col { top: calc(var(--gnb-h) + 52px); }

/* ---------- 푸터 사업자정보/메뉴 ---------- */
.footer__menu { list-style: none; display: flex; flex-wrap: wrap; gap: 18px; margin: 0; padding: 0; }
.footer__menu a { color: var(--ink-2); font-size: 13px; font-weight: 600; }
.footer__menu a:hover { color: var(--primary); }
.footer__biz { color: var(--ink-3); font-size: 12px; line-height: 1.8; margin-top: 18px; }
.footer__copy { color: var(--ink-3); font-size: 12px; margin-top: 10px; }
@media (max-width: 640px){ .footer__inner{ flex-direction:column; gap:12px; align-items:flex-start; } }

/* ---------- 컴팩트 신청 모달 (설자리 브랜드) ---------- */
.uc-auth { max-width: 340px; text-align: center; position: relative; padding: 30px 26px 26px; }
.uc-auth__x { position: absolute; top: 12px; right: 16px; background: none; border: none; font-size: 24px; line-height: 1; color: var(--ink-3); cursor: pointer; }
.uc-auth__x:hover { color: var(--ink); }
.uc-auth__logo { font-size: 26px; font-weight: 800; letter-spacing: -.5px; }
.uc-auth__logo b { color: var(--primary); }
.uc-auth__sub { margin: 8px 0 22px; color: var(--ink-3); font-size: 14px; }
.uc-auth__kakao { background: #fee500; color: #191600; font-weight: 800; }
.uc-auth__kakao:hover { background: #f5dc00; }
.uc-auth__login { margin-top: 16px; font-size: 13px; color: var(--ink-3); }
.uc-auth__login a { color: var(--primary); font-weight: 700; }

/* ---------- 회원가입 페이지 (컴팩트/브랜드) ---------- */
.uc-reg-wrap { display: flex; justify-content: center; padding: 24px 16px 64px; }
.uc-reg-card { width: 100%; max-width: 380px; text-align: center; }
.uc-reg-logo { font-size: 28px; font-weight: 800; letter-spacing: -.5px; display: inline-block; margin-bottom: 6px; }
.uc-reg-logo b { color: var(--primary); }
.uc-reg-sub { color: var(--ink-3); font-size: 14px; margin: 0 0 22px; }
.uc-reg-or { display: flex; align-items: center; gap: 12px; margin: 18px 0; color: var(--ink-3); font-size: 13px; }
.uc-reg-or::before, .uc-reg-or::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.uc-reg-form input:not([type=checkbox]):not([type=hidden]):not([type=submit]) {
  width: 100%; padding: 13px 14px; border: 1px solid var(--line); border-radius: 10px; margin-bottom: 10px; font-size: 15px; box-sizing: border-box; background: #fff; color: var(--ink); font-family: inherit;
}
.uc-reg-form input:focus { outline: none; border-color: var(--primary); }
.uc-reg-cap { display: block; text-align: left; font-size: 12.5px; color: var(--ink-3); margin: 2px 2px 4px; }
.uc-reg-cap span { color: var(--ink-3); opacity: .8; }
.uc-reg-row2 { display: flex; gap: 10px; }
.uc-reg-terms { display: flex; gap: 8px; text-align: left; font-size: 13px; color: var(--ink-3); margin: 6px 0 16px; line-height: 1.5; }
.uc-reg-terms a { color: var(--primary); font-weight: 600; }
.uc-reg-login { margin-top: 16px; font-size: 13px; color: var(--ink-3); }
.uc-reg-login a { color: var(--primary); font-weight: 700; }
.uc-reg-err { background: var(--primary-soft); color: #c0392b; border-radius: 10px; padding: 10px 14px; font-size: 13px; margin-bottom: 12px; text-align: left; }

/* ---------- 결제(WooCommerce 체크아웃) 브랜드 ---------- */
.woocommerce-checkout #customer_details, .woocommerce-checkout #order_review { float: none; width: 100%; max-width: 560px; margin: 0 auto; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce-checkout input.input-text {
  width: 100%; padding: 13px 14px; border: 1px solid var(--line); border-radius: 10px; font-size: 15px; box-sizing: border-box; font-family: inherit; line-height: 1.4;
}
.woocommerce form .form-row input.input-text:focus { outline: none; border-color: var(--primary); }
.woocommerce form .form-row label { font-weight: 600; font-size: 13px; color: var(--ink-2); margin-bottom: 6px; }
.woocommerce-checkout h3 { font-size: 18px; font-weight: 800; letter-spacing: -.3px; }
.woocommerce-checkout #payment { background: var(--bg-soft); border-radius: 14px; }
.woocommerce-checkout #payment ul.payment_methods { padding: 16px; }
.woocommerce #place_order, .woocommerce-checkout #place_order {
  background: var(--primary); border: none; border-radius: 12px; font-weight: 800; font-size: 16px; padding: 15px 22px; width: 100%; color: #fff; text-shadow: none;
}
.woocommerce #place_order:hover { background: var(--primary-dark); }
.woocommerce table.shop_table { border-radius: 12px; }
.uc-minor-notice { font-size: 12px; color: var(--ink-3); margin: 10px 0; line-height: 1.5; }

/* ---------- 커스텀 체크아웃 2단 (설자리) ---------- */
.uc-co-grid { display: grid; grid-template-columns: 1fr 320px; gap: 28px; align-items: start; max-width: 920px; margin: 0 auto; }
.uc-co-main { min-width: 0; }
.uc-co-card { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 22px; margin-bottom: 18px; }
.uc-co-h { font-size: 16px; font-weight: 800; margin: 0 0 16px; letter-spacing: -.3px; }
.uc-co-item { display: flex; align-items: center; gap: 14px; padding-bottom: 14px; border-bottom: 1px solid var(--line-2); margin-bottom: 14px; }
.uc-co-item img { width: 64px; height: 48px; object-fit: cover; border-radius: 8px; }
.uc-co-name { font-weight: 700; font-size: 15px; }
.uc-co-price { margin-left: auto; font-weight: 700; white-space: nowrap; }
.uc-co-line { display: flex; justify-content: space-between; font-size: 14px; color: var(--ink-2); padding: 5px 0; }
.uc-co-line--total { border-top: 1px solid var(--line); margin-top: 6px; padding-top: 12px; font-weight: 800; font-size: 16px; color: var(--ink); }
/* 주문자 정보 필드: 이름|성 2열, 전화·이메일 전폭 */
.uc-checkout .woocommerce-billing-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.uc-checkout .form-row-wide, .uc-checkout #billing_email_field, .uc-checkout #billing_phone_field { grid-column: 1 / -1; }
.uc-checkout .form-row { margin: 0; }
.uc-checkout .woocommerce-billing-fields h3 { display: none; }
/* 결제수단 */
.uc-checkout #payment { background: transparent; border: 0; }
.uc-checkout #payment ul.payment_methods { border: 0; padding: 0; margin: 0; }
.uc-checkout #payment ul.payment_methods li { border: 1px solid var(--line); border-radius: 10px; margin-bottom: 8px; padding: 12px 14px; list-style: none; }
.uc-checkout #payment div.payment_box { background: var(--bg-soft); border-radius: 10px; }
.uc-checkout #payment .place-order #place_order { display: none !important; }
.uc-checkout #payment .place-order { padding: 0; }
/* 우측 sticky 구매 카드 */
.uc-co-side-card { position: sticky; top: 84px; background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 20px; box-shadow: var(--shadow); }
.uc-co-side-total { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 14px; font-size: 14px; color: var(--ink-3); }
.uc-co-side-total strong { font-size: 22px; color: var(--ink); font-weight: 800; }
.uc-co-hidden { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
body.admin-bar .uc-co-side-card { top: 116px; }
@media (max-width: 860px) { .uc-co-grid { grid-template-columns: 1fr; } .uc-co-side-card { position: static; } }

/* ---------- 체크아웃 cyclehackers형 보정 ---------- */
.uc-co-item { align-items: center; }
.uc-co-item img { width: 110px; height: 72px; }
.uc-co-instructor { font-size: 13px; color: var(--ink-3); margin-top: 4px; }
.uc-checkout #payment ul.payment_methods { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.uc-checkout #payment ul.payment_methods li { margin: 0; display: flex; align-items: center; }
.uc-checkout #payment ul.payment_methods li label { margin: 0; font-weight: 700; font-size: 14px; cursor: pointer; }
.uc-checkout #payment ul.payment_methods li input[type=radio] { margin-right: 8px; }
.uc-checkout #payment ul.payment_methods li:has(input:checked) { border-color: var(--primary); box-shadow: inset 0 0 0 1px var(--primary); }
.uc-co-buy { font-size: 16px; margin-top: 4px; }
.uc-co-side-card .uc-co-line { padding: 6px 0; }

/* ---------- 결제수단 영역 최종 정리 (찌그러짐/빈칸 수정) ---------- */
.uc-checkout #payment { background: transparent; border: 0; }
.uc-checkout #payment ul.payment_methods { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; list-style: none; margin: 0; padding: 0; border: 0; }
.uc-checkout #payment ul.payment_methods li { margin: 0; padding: 14px 16px; border: 1px solid var(--line); border-radius: 10px; display: flex; align-items: center; gap: 8px; min-width: 0; background: #fff; }
.uc-checkout #payment ul.payment_methods li input[type=radio] { flex: 0 0 auto; width: 18px; height: 18px; margin: 0; }
.uc-checkout #payment ul.payment_methods li label { flex: 1 1 auto; margin: 0; padding: 0; font-weight: 700; font-size: 14px; color: var(--ink); cursor: pointer; white-space: normal; line-height: 1.3; }
.uc-checkout #payment ul.payment_methods li label img { display: none !important; }
.uc-checkout #payment ul.payment_methods li .payment_box { display: none !important; }
.uc-checkout #payment ul.payment_methods li:has(input:checked) { border-color: var(--primary); box-shadow: inset 0 0 0 1px var(--primary); }
.uc-checkout #payment .place-order #place_order { display: none !important; }
.uc-checkout #payment .woocommerce-privacy-policy-text { font-size: 12px; color: var(--ink-3); margin-top: 14px; line-height: 1.6; }
@media (max-width: 520px) { .uc-checkout #payment ul.payment_methods { grid-template-columns: 1fr; } }

/* ---------- 체크아웃 비율/입력폭/결제수단 강제 보정 (WC 우선순위 대응) ---------- */
.uc-co-grid { grid-template-columns: 1fr 210px !important; max-width: 980px !important; }
/* 주문자 정보: 이름|성 2열 + 입력 100% (WC 47% float 무력화) */
.uc-checkout .woocommerce-billing-fields__field-wrapper { display: grid !important; grid-template-columns: 1fr 1fr; gap: 12px; }
.uc-checkout .woocommerce-billing-fields__field-wrapper .form-row { width: 100% !important; float: none !important; margin: 0 !important; padding: 0 !important; }
.uc-checkout .form-row-wide, .uc-checkout #billing_email_field, .uc-checkout #billing_phone_field { grid-column: 1 / -1 !important; }
.uc-checkout .woocommerce-billing-fields__field-wrapper input.input-text { width: 100% !important; }
/* 결제수단 2×2 */
.uc-checkout #payment ul.payment_methods { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 10px !important; padding: 0 !important; margin: 0 !important; border: 0 !important; }
.uc-checkout #payment ul.payment_methods li { display: flex !important; align-items: center !important; gap: 8px !important; padding: 14px 16px !important; border: 1px solid var(--line) !important; border-radius: 10px !important; margin: 0 !important; background: #fff !important; }
.uc-checkout #payment ul.payment_methods li label { flex: 1 1 auto !important; margin: 0 !important; padding: 0 !important; font-weight: 700 !important; font-size: 14px !important; white-space: normal !important; line-height: 1.3 !important; }
.uc-checkout #payment ul.payment_methods li label img { display: none !important; }
.uc-checkout #payment ul.payment_methods li .payment_box { display: none !important; }
.uc-checkout #payment ul.payment_methods li input[type=radio] { flex: 0 0 auto !important; width: 18px !important; height: 18px !important; margin: 0 !important; }
@media (max-width: 860px) { .uc-co-grid { grid-template-columns: 1fr !important; } }
@media (max-width: 520px) { .uc-checkout #payment ul.payment_methods { grid-template-columns: 1fr !important; } }

/* ---------- 체크아웃 폭 확대 + 우측 260px + 라벨 정렬 ---------- */
.uc-co-grid { grid-template-columns: 1fr 260px !important; max-width: 1080px !important; }
.uc-checkout #payment ul.payment_methods li { justify-content: flex-start !important; }
.uc-checkout #payment ul.payment_methods li label { text-align: left !important; }
@media (max-width: 860px) { .uc-co-grid { grid-template-columns: 1fr !important; } }

/* ---------- 마이페이지(Tutor 대시보드) 브랜드 ---------- */
/* Tutor 기본 보라색 → 브랜드 코랄 (스코프 내 CSS 변수 교체) */
.tutor-dashboard {
  --tutor-color-primary: var(--primary);
  --tutor-color-primary-hover: var(--primary-dark);
  --tutor-design-brand: var(--primary);
}

/* 헤더: 인사말 + 아바타 */
.tutor-frontend-dashboard-header { margin-bottom: 28px; }
.tutor-dashboard-header-greetings { color: var(--ink-3); font-size: 14px; }
.tutor-dashboard-header-username { font-weight: 800; color: var(--ink); }
.tutor-dashboard-header-avatar img,
.tutor-dashboard-header-avatar .tutor-avatar { border-radius: 50%; border: 2px solid var(--primary-soft); }
.tutor-dashboard-student .tutor-header-right-side { display: none; } /* '강사 되기' 버튼 숨김 */

/* 사이드 메뉴 */
ul.tutor-dashboard-permalinks { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 10px; }
ul.tutor-dashboard-permalinks li a { border-radius: 10px; color: var(--ink-2); font-weight: 600; transition: background .15s, color .15s; }
ul.tutor-dashboard-permalinks li a:hover { background: var(--bg-soft); color: var(--ink); }
ul.tutor-dashboard-permalinks li.active > a { background: var(--primary-soft); color: var(--primary); }
ul.tutor-dashboard-permalinks li.active > a i { color: var(--primary); }
.tutor-dashboard-menu-divider { border-color: var(--line-2); }

/* 공통 카드/버튼/탭/진행바 */
.tutor-dashboard .tutor-card { border: 1px solid var(--line); border-radius: 14px; box-shadow: none; }
.tutor-dashboard .tutor-btn-primary { background: var(--primary); border-color: var(--primary); }
.tutor-dashboard .tutor-btn-primary:hover { background: var(--primary-dark); border-color: var(--primary-dark); }
.tutor-dashboard .tutor-btn-outline-primary { color: var(--primary); border-color: var(--primary); }
.tutor-dashboard .tutor-btn-outline-primary:hover { background: var(--primary); color: #fff; }
.tutor-dashboard .tutor-nav-link.is-active { color: var(--primary); box-shadow: inset 0 -2px 0 var(--primary); }
.tutor-dashboard .tutor-progress-bar .tutor-progress-value,
.tutor-dashboard .tutor-progress-bar > span { background: var(--primary); }

/* 대시보드 통계 카드 */
.uc-dash-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 4px 0 28px; }
.uc-dash-stat { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 20px 16px; text-align: center; }
.uc-dash-stat b { display: block; font-size: 28px; font-weight: 800; color: var(--primary); line-height: 1.2; }
.uc-dash-stat span { font-size: 13px; color: var(--ink-3); }

/* 섹션 타이틀 */
.uc-dash-h { font-size: 18px; font-weight: 800; color: var(--ink); margin: 0 0 14px; }

/* 수강 중인 강의 카드 */
.uc-dash-course { display: flex; gap: 16px; align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 14px; margin-bottom: 12px; }
.uc-dash-course__thumb { flex: 0 0 auto; }
.uc-dash-course__thumb img { width: 150px; height: 96px; object-fit: cover; border-radius: 10px; display: block; }
.uc-dash-course__body { flex: 1 1 auto; min-width: 0; }
.uc-dash-course__title { display: block; font-size: 15px; font-weight: 700; color: var(--ink); margin-bottom: 8px; text-decoration: none; }
.uc-dash-course__title:hover { color: var(--primary); }
.uc-dash-course__meta { font-size: 12px; color: var(--ink-3); margin-bottom: 10px; }
.uc-dash-course__cta { display: inline-flex; align-items: center; gap: 6px; }
.uc-dash-muted { font-size: 13px; color: var(--ink-3); }

/* 진행률 */
.uc-dash-progress { margin-bottom: 12px; }
.uc-dash-progress__bar { height: 8px; background: var(--line-2); border-radius: 99px; overflow: hidden; }
.uc-dash-progress__bar span { display: block; height: 100%; background: var(--primary); border-radius: 99px; }
.uc-dash-progress__txt { display: inline-block; font-size: 12px; color: var(--ink-3); margin-top: 6px; }

/* 빈 상태 */
.uc-dash-empty { text-align: center; padding: 56px 0; background: #fff; border: 1px dashed var(--line); border-radius: 14px; }
.uc-dash-empty__emoji { font-size: 40px; margin: 0 0 10px; }
.uc-dash-empty__txt { color: var(--ink-3); font-size: 14px; line-height: 1.7; margin: 0 0 18px; }

@media (max-width: 768px) {
  .uc-dash-stats { grid-template-columns: 1fr 1fr 1fr; gap: 8px; }
  .uc-dash-stat b { font-size: 22px; }
  .uc-dash-course { flex-direction: column; align-items: stretch; }
  .uc-dash-course__thumb img { width: 100%; height: auto; aspect-ratio: 3/2; }
}

/* ---------- 법무 페이지 표 ---------- */
.post__body table { width: 100%; border-collapse: collapse; margin: 14px 0 18px; font-size: 14px; }
.post__body th, .post__body td { border: 1px solid var(--line); padding: 10px 12px; text-align: left; vertical-align: top; line-height: 1.6; }
.post__body th { background: var(--bg-soft); font-weight: 700; }

/* ---------- 홈: 혜택 스트립 ---------- */
.uc-feats { padding: 32px 0; border-bottom: 1px solid var(--line-2); }
.uc-feats__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.uc-feat { display: flex; align-items: center; gap: 14px; }
.uc-feat__ic { flex: 0 0 auto; width: 48px; height: 48px; border-radius: 14px; background: var(--primary-soft); color: var(--primary); display: grid; place-items: center; }
.uc-feat__ic svg { width: 24px; height: 24px; }
.uc-feat b { display: block; font-size: 15px; font-weight: 800; letter-spacing: -.3px; }
.uc-feat p { margin: 3px 0 0; font-size: 13px; color: var(--ink-3); line-height: 1.4; }

/* ---------- 홈: 풀폭 CTA 밴드 ---------- */
.uc-cta { background: var(--bg-dark); color: #fff; padding: 56px 0; margin-top: 8px; }
.uc-cta__inner { display: flex; align-items: center; justify-content: space-between; gap: 32px; flex-wrap: wrap; }
.uc-cta .eyebrow { color: var(--primary); font-size: 14px; font-weight: 800; letter-spacing: .3px; margin-bottom: 10px; }
.uc-cta__copy h2 { margin: 0; font-size: 30px; font-weight: 800; letter-spacing: -.6px; line-height: 1.3; }
.uc-cta__copy p { margin: 12px 0 0; font-size: 15px; color: rgba(255,255,255,.7); }
.uc-cta__btns { display: flex; gap: 12px; flex: 0 0 auto; }
.btn-lg { padding: 16px 28px; font-size: 16px; }
.btn-outline-light { background: transparent; border: 1.5px solid rgba(255,255,255,.4); color: #fff; }
.btn-outline-light:hover { border-color: #fff; background: rgba(255,255,255,.08); }

@media (max-width: 768px) {
  /* GNB 2단: [로고 | 로그인 | 회원가입] / [무료·유료·블로그] */
  .gnb { height: auto; }
  .gnb__inner { flex-wrap: wrap; gap: 0; align-items: center; padding: 8px 0; }
  .gnb__logo { order: 1; font-size: 18px; }
  .gnb__right { order: 2; margin-left: auto; gap: 8px; }
  .gnb__menu { order: 3; flex: 0 0 100%; width: 100%; justify-content: space-around; gap: 0; margin: 6px 0 0; padding-top: 8px; border-top: 1px solid var(--line-2); }
  .gnb__menu a { font-size: 14px; padding: 4px 2px; }
  .btn-login { padding: 7px 12px; font-size: 13px; }

  .uc-feats__grid { grid-template-columns: 1fr 1fr; gap: 16px; }
  .uc-cta { padding: 40px 0; }
  .uc-cta__copy h2 { font-size: 24px; }
  .uc-cta__inner { flex-direction: column; align-items: flex-start; gap: 22px; }
  .uc-cta__btns { width: 100%; }
  .uc-cta__btns .btn { flex: 1; }
}

/* 마이페이지 회원 탈퇴 (하단 · 절제된 스타일) */
.uc-dash-withdraw { margin-top: 36px; padding-top: 18px; border-top: 1px solid var(--line-2); text-align: right; }
.uc-dash-withdraw__btn { background: none; border: none; padding: 4px 6px; font-size: 13px; color: var(--ink-3); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.uc-dash-withdraw__btn:hover { color: #d4351c; }

/* 로그인 페이지 에러 */
.uc-login-error { background: #fff1ea; color: #d4351c; border: 1px solid #f6c9b8; border-radius: 10px; font-size: 13px; font-weight: 700; padding: 10px 12px; margin: 0 0 12px; text-align: center; }

/* 강의 본문 내 코어 블록(커버/그룹/구분선) 안전 렌더 — 인라인 색/여백은 에디터 설정 우선 */
.landing__content .wp-block-cover { position: relative; display: flex; align-items: center; justify-content: center; min-height: 280px; padding: 32px; border-radius: var(--radius); overflow: hidden; background-size: cover; background-position: center; }
.landing__content .wp-block-cover img.wp-block-cover__image-background { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.landing__content .wp-block-cover__background { position: absolute; inset: 0; z-index: 0; }
.landing__content .wp-block-cover__inner-container { position: relative; z-index: 1; width: 100%; }
.landing__content .wp-block-cover * { color: inherit; }
.landing__content .wp-block-group { border-radius: var(--radius); }
.landing__content .wp-block-group.has-background { padding: 28px; }
.landing__content .wp-block-separator { border: 0; border-top: 2px solid var(--line); width: 80px; margin: 90px auto; }
.landing__content .wp-block-image img { border-radius: var(--radius); }

/* 타겟 정의 박스 (좌 이모지 | 우 텍스트, 둥근 박스, 배경색 지정) */
.uc-target { display: flex; align-items: center; gap: 14px; text-align: left; border-radius: 14px; padding: 18px 22px; margin: 8px 0; }
/* 타겟 박스가 든 단락은 본문 큰 여백 제거 (박스끼리 좁게 붙이기) */
.landing__content p:has(.uc-target) { margin: 0 0 8px; }
.uc-target__emoji { font-size: 32px; line-height: 1; flex: 0 0 auto; }
.uc-target__txt { font-size: 20px; font-weight: 700; color: var(--ink); line-height: 1.45; }
@media (min-width: 768px) { .uc-target__emoji { font-size: 36px; } .uc-target__txt { font-size: 22px; } }

/* 인라인 텍스트 색상(구텐베르크 강조표시 = <mark>) — 기본 노란 형광 배경 제거, 지정 색만 적용 */
.landing__content mark, .post__body mark { background-color: transparent; }

/* 신청 완료 팝업 체크 아이콘 */
.uc-enrolled-check { width: 56px; height: 56px; margin: 4px auto 0; border-radius: 50%; background: #16a34a; color: #fff; font-size: 30px; font-weight: 800; display: grid; place-items: center; }

/* 랜딩 하단 면책 문구 */
.uc-disclaimer { max-width: var(--maxw); margin: 0 auto; padding: 8px 20px 48px; font-size: 13px; line-height: 1.6; color: var(--ink-3); text-align: center; }

/* 주문 완료(thankyou) — 설자리 브랜드 */
.uc-thankyou { max-width: 480px; margin: 0 auto; padding: 48px 20px 80px; text-align: center; }
.uc-ty-check { width: 72px; height: 72px; margin: 0 auto 20px; border-radius: 50%; background: #16a34a; color: #fff; font-size: 40px; font-weight: 800; display: grid; place-items: center; }
.uc-ty-check--wait { background: var(--ink-3); }
.uc-ty-title { font-size: 26px; font-weight: 800; letter-spacing: -.5px; margin: 0 0 8px; }
.uc-ty-sub { font-size: 15px; color: var(--ink-3); margin: 0 0 28px; line-height: 1.6; }
.uc-ty-card { background: var(--bg-soft); border: 1px solid var(--line); border-radius: 14px; padding: 18px 20px; margin: 0 0 24px; text-align: left; }
.uc-ty-row { display: flex; justify-content: space-between; align-items: center; padding: 9px 0; font-size: 15px; }
.uc-ty-row + .uc-ty-row { border-top: 1px solid var(--line-2); }
.uc-ty-row span { color: var(--ink-3); }
.uc-ty-row b { font-weight: 800; }
.uc-ty-actions { display: flex; flex-direction: column; gap: 10px; }
.uc-ty-btn { justify-content: center; }

/* 관리자 수강 취소 버튼 */
.uc-dash-cancel { background: none; border: 1px solid var(--line); color: var(--ink-3); font-size: 12px; font-weight: 700; padding: 5px 10px; border-radius: 8px; cursor: pointer; }
.uc-dash-cancel:hover { border-color: #d4351c; color: #d4351c; }

/* ──────────────────────────────────────────────
   강의실(Tutor 스포트라이트: 레슨/퀴즈/과제) — LMS 화면 최대 폭을 GNB 컨테이너(--maxw)로 제한
   ────────────────────────────────────────────── */
body.single-lesson .tutor-course-single-content-wrapper,
body.single-tutor_quiz .tutor-course-single-content-wrapper,
body.single-tutor_assignments .tutor-course-single-content-wrapper {
  max-width: var(--maxw);
  margin: 0 auto;
  border-left: 1px solid var(--line);
  border-right: 1px solid var(--line);
}

/* 강의실 본문 중앙 몰림 완화 — Tutor의 960px 컨테이너 + 66% 컬럼 이중 제한을 해제하고 패딩만 유지 */
body.single-lesson .tutor-course-spotlight-wrapper .tutor-container,
body.single-tutor_quiz .tutor-course-spotlight-wrapper .tutor-container,
body.single-tutor_assignments .tutor-course-spotlight-wrapper .tutor-container {
  max-width: 100%;
  margin-left: 0;
  margin-right: 0;
  padding-left: 40px;
  padding-right: 40px;
}
body.single-lesson .tutor-course-spotlight-wrapper .tutor-row.tutor-justify-center > [class*="tutor-col-"],
body.single-tutor_quiz .tutor-course-spotlight-wrapper .tutor-row.tutor-justify-center > [class*="tutor-col-"],
body.single-tutor_assignments .tutor-course-spotlight-wrapper .tutor-row.tutor-justify-center > [class*="tutor-col-"] {
  flex: 0 0 100%;
  max-width: 100%;
}

/* 하단 고정바 월 환산 표기 — 월 금액을 크게, 총액은 아래 작게 */
.mobile-cta .price--monthly { display: flex; flex-direction: column; line-height: 1.15; }
.mobile-cta .price--monthly b { font-size: 18px; font-weight: 900; color: var(--ink); }
.mobile-cta .price--monthly small { font-size: 11.5px; font-weight: 700; color: var(--ink-3); margin-top: 2px; }

/* ---------- 월 분할가 표기 (신청 카드 / 옵션) ---------- */
.cta__price--monthly .amount { display: flex; flex-direction: column; line-height: 1.15; }
.cta__price--monthly .amount b { font-size: 30px; font-weight: 900; color: var(--ink); letter-spacing: -.5px; }
.cta__price--monthly .amount small { font-size: 13px; font-weight: 700; color: var(--ink-3); margin-top: 4px; }

.uc-opt__price--monthly { display: flex; flex-direction: column; align-items: flex-end; line-height: 1.15; }
.uc-opt__price--monthly b { font-size: 16px; font-weight: 900; color: var(--ink); white-space: nowrap; }
.uc-opt__price--monthly small { font-size: 11.5px; font-weight: 700; color: var(--ink-3); margin-top: 2px; white-space: nowrap; }

/* 무이자 할부 뱃지 */
.uc-freebadge {
  display: inline-flex; align-items: center; gap: 6px; margin-top: 10px;
  padding: 7px 12px; border-radius: 999px; background: var(--primary-soft);
  color: var(--primary-dark); font-size: 13px; font-weight: 800; letter-spacing: -.2px;
}

/* 강의 카드 월 분할가 — 월 금액을 크게, 총액은 아래 작게 */
.card__price.monthly { display: flex; flex-direction: column; line-height: 1.2; }
.card__price.monthly b { font-size: 17px; font-weight: 900; color: var(--ink); }
.card__price.monthly small { font-size: 11.5px; font-weight: 700; color: var(--ink-3); margin-top: 2px; }

/* CTA 카드 보조 줄: 정가 취소선 → 할인가 */
.cta__price--monthly .amount small del { color: var(--ink-3); font-weight: 700; margin-right: 5px; }
