@charset "utf-8";
/* ============================================================
   품티켓 골든 R3 — 레퍼런스3(북-인물 시안) 디자인 언어 계승본
   토큰·타이포·컨테이너·컴포넌트 수치는 원본 시안(templatehouse.css /
   style.css)의 실측값을 그대로 옮긴 것이다. 임의로 바꾸지 말 것.
   ============================================================ */

/* ---------- 1. 토큰 ---------- */
:root {
  /* ★★★ 사이트 색 — 2단계에서 여기 '한 줄'만 바꾼다. 파생색은 전부 계산된다. ★★★ */
  --pt-primary: #3b8071;
  /* 기본값은 원본 시안의 메인 색(#F59542) 그대로다. 흰 글자 대비비 2.26 으로 공통규칙(2.2)을
     통과한다(_색상진단 실측). 2단계에서는 배정표 primary_color 로 이 한 줄만 바꾼다.
     #065f46 / #991b1b 두 배정 색도 전 페이지 저대비 0건으로 확인했다. */

  /* 파생색 — 전부 --pt-primary 에서 계산된다. 직접 색을 적지 말 것. */
  --pt-primary-strong: color-mix(in srgb, var(--pt-primary) 82%, #000);
  --pt-primary-deep:   color-mix(in srgb, var(--pt-primary) 60%, #000);
  --pt-primary-soft:   color-mix(in srgb, var(--pt-primary)  7%, #fff);
  --pt-primary-tint:   color-mix(in srgb, var(--pt-primary) 14%, #fff);
  --pt-primary-line:   color-mix(in srgb, var(--pt-primary) 26%, #fff);
  --pt-primary-hover:  color-mix(in srgb, var(--pt-primary) 80%, #fff);
  --pt-on-primary: #fff;

  /* 중립 팔레트 — 원본 시안 값 그대로 */
  --white: #fff;
  --black: #000;
  --body-bg: #fff;
  --bg-color: #f7f7fb;
  --text-color1: #111;
  --text-color2: #666;
  --text-color3: #d2d2d2;
  --text-color4: #999;
  --line-color1: #e5e5e5;
  --line-color2: #d4d4d8;
  --border-color: var(--line-color1);

  --ff-ko1: "Pretendard Variable", "Pretendard", -apple-system, BlinkMacSystemFont,
    system-ui, "Malgun Gothic", sans-serif;
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-bold: 700;

  /* PC 타입 스케일 (원본 시안 값) */
  --fs-h1: 5.2rem;  --lh-h1: 6.8rem;
  --fs-h2: 4.6rem;  --lh-h2: 6rem;
  --fs-h3: 3.2rem;  --lh-h3: 4.6rem;
  --fs-h4: 2.8rem;  --lh-h4: 4rem;
  --fs-h5: 2.4rem;  --lh-h5: 3.4rem;
  --fs-h6: 2rem;    --lh-h6: 3rem;
  --fs-p1: 1.6rem;  --lh-p1: 2.6rem;
  --fs-p2: 1.4rem;  --lh-p2: 2.4rem;
  --fs-p3: 1.2rem;  --lh-p3: 2rem;
  --ls: -0.025rem;

  /* 버튼 높이 (원본 시안 값) */
  --ht-xl: 6.4rem; --ht-lg: 5.6rem; --ht-md: 4.8rem; --ht-sm: 4rem;

  --radius: 0.8rem;
  --radius-sm: 0.4rem;
}

@media (max-width: 992px) {
  :root {
    --fs-h1: 3.2rem;  --lh-h1: 4.6rem;
    --fs-h2: 2.6rem;  --lh-h2: 3.6rem;
    --fs-h3: 2.4rem;  --lh-h3: 3.4rem;
    --fs-h4: 2rem;    --lh-h4: 3rem;
    --fs-h5: 1.8rem;  --lh-h5: 2.8rem;
    --fs-h6: 1.6rem;  --lh-h6: 2.6rem;
    --fs-p1: 1.4rem;  --lh-p1: 2.4rem;
    --fs-p2: 1.2rem;  --lh-p2: 2.2rem;
    --fs-p3: 1.2rem;  --lh-p3: 2.2rem;
    --ht-xl: 5.6rem; --ht-lg: 4.8rem; --ht-md: 4rem; --ht-sm: 3.2rem;
  }
}

/* ---------- 2. 리셋 (원본 시안 리셋 축약) ---------- */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { font-size: 62.5%; scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--ff-ko1);
  font-weight: var(--fw-regular);
  font-size: var(--fs-p1);
  line-height: var(--lh-p1);
  letter-spacing: var(--ls);
  color: var(--text-color1);
  background: var(--body-bg);
  word-break: keep-all;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
ul, ol { list-style: none; }
a { color: inherit; text-decoration: none; }
img { vertical-align: top; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
table { border-collapse: collapse; width: 100%; }
:focus-visible { outline: 2px solid var(--pt-primary); outline-offset: 2px; }

/* ---------- 3. 타이포 유틸 (원본 시안 .h1~.p3 그대로) ---------- */
.h1 { font-size: var(--fs-h1); line-height: var(--lh-h1); font-weight: var(--fw-bold); letter-spacing: var(--ls); }
.h2 { font-size: var(--fs-h2); line-height: var(--lh-h2); font-weight: var(--fw-bold); letter-spacing: var(--ls); }
.h3 { font-size: var(--fs-h3); line-height: var(--lh-h3); font-weight: var(--fw-bold); letter-spacing: var(--ls); }
.h4 { font-size: var(--fs-h4); line-height: var(--lh-h4); font-weight: var(--fw-medium); letter-spacing: var(--ls); }
.h5 { font-size: var(--fs-h5); line-height: var(--lh-h5); font-weight: var(--fw-regular); letter-spacing: var(--ls); }
.h6 { font-size: var(--fs-h6); line-height: var(--lh-h6); font-weight: var(--fw-regular); letter-spacing: var(--ls); }
.p1 { font-size: var(--fs-p1); line-height: var(--lh-p1); letter-spacing: var(--ls); }
.p2 { font-size: var(--fs-p2); line-height: var(--lh-p2); letter-spacing: var(--ls); }
.p3 { font-size: var(--fs-p3); line-height: var(--lh-p3); letter-spacing: var(--ls); color: var(--text-color2); }
.blind { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important;
  margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; }

/* ---------- 4. 컨테이너 (원본 시안 container-md / lg) ---------- */
.pt-wrap { position: relative; max-width: calc(1280px + 8rem); margin: 0 auto; padding: 0 4rem; }
.pt-wrap-lg { position: relative; max-width: calc(1440px + 8rem); margin: 0 auto; padding: 0 4rem; }
.pt-read { max-width: 820px; margin-inline: auto; }
@media (max-width: 992px) {
  .pt-wrap, .pt-wrap-lg { padding: 0 1.6rem; }
}

/* ---------- 5. 버튼 (원본 시안 .btnset) ---------- */
.btnset {
  display: inline-flex; justify-content: center; align-items: center; gap: 0.6rem;
  min-width: 9.4rem; padding: 0 2rem; height: var(--ht-md);
  border-radius: var(--radius-sm); font-weight: var(--fw-medium);
  transition: 0.3s; cursor: pointer; white-space: nowrap;
}
.btnset-lg { min-width: 9.8rem; padding: 0 2.8rem; height: var(--ht-lg); }
.btnset-sm { min-width: 9rem; padding: 0 2rem; height: var(--ht-sm); font-size: var(--fs-p2); }
.btnset-block { width: 100%; }
.btnset-primary { color: var(--pt-on-primary); background: var(--pt-primary); }
.btnset-primary:hover { background: var(--pt-primary-hover); }
.btnset-dark { color: var(--white); background: #111; }
.btnset-dark:hover { background: #333; }
.btnset-line-white { color: var(--white); border: 2px solid var(--white); }
.btnset-line-white:hover { color: #111; background: var(--white); }
.btnset-line-light { color: #111; border: 2px solid var(--line-color1); background: var(--white); }
.btnset-line-light:hover { background: var(--line-color1); }

/* ---------- 6. 배지 (원본 시안 .badge) ---------- */
.badge {
  display: inline-block; padding: 0.3rem 0.9rem; border-radius: var(--radius-sm);
  font-size: var(--fs-p2); line-height: var(--lh-p2); color: var(--white); background: #111;
}
.badge-primary { background: var(--pt-primary); }
.badge-line { background: transparent; border: 1px solid var(--pt-primary-line); color: var(--pt-primary-strong); }

/* ---------- 7. 헤더 (원본 시안 book-N1) ---------- */
.pt-header { position: sticky; top: 0; z-index: 99; width: 100%; background: var(--white);
  border-bottom: 1px solid var(--line-color1); }
.pt-header .pt-hd-inner { display: flex; align-items: center; gap: 1.6rem; min-height: 8.6rem; }
.pt-hd-left { display: flex; align-items: center; gap: 3rem; margin-right: auto; }
.pt-brand { display: inline-flex; align-items: baseline; white-space: nowrap; }
.pt-lg-ko { margin-left: 0.6rem; }   /* 킷 pt-logo-cta 규칙과 같은 값 — gap 을 쓰면 12px 로 벌어진다 */
.pt-brand .pt-lg-en { font-size: 2.4rem; font-weight: var(--fw-bold); letter-spacing: 0.02em; color: var(--pt-primary); font-style: normal; }
.pt-brand .pt-lg-ko { font-size: 1.5rem; font-weight: var(--fw-medium); color: var(--text-color2); }
.pt-gnblist { display: flex; align-items: center; height: 100%; }
.pt-gnbitem { position: relative; }
.pt-gnblink { display: inline-flex; align-items: center; padding: 2.8rem 2.4rem; font-weight: var(--fw-medium); white-space: nowrap; }
.pt-gnblink span { position: relative; }
.pt-gnblink span::after { content: ""; position: absolute; left: 0; top: 100%; display: block;
  width: 100%; height: 0.2rem; background: #111; transform: scaleX(0); transition: transform 0.3s; }
.pt-gnbitem:hover .pt-gnblink span::after { transform: scaleX(1); }
.pt-sublist { position: absolute; top: 100%; left: 0; min-width: 18rem; background: var(--white);
  border: 1px solid var(--line-color1); border-radius: var(--radius-sm); overflow: hidden;
  opacity: 0; pointer-events: none; transition: opacity 0.3s; }
.pt-gnbitem:hover .pt-sublist { opacity: 1; pointer-events: auto; }
.pt-sublink { display: block; width: 100%; padding: 1rem 2rem; font-size: var(--fs-p2);
  font-weight: var(--fw-medium); transition: color 0.2s, background 0.2s; }
.pt-sublink:hover { background: #111; color: var(--white); }
.pt-hd-hours { font-size: var(--fs-p2); color: var(--text-color2); white-space: nowrap; }
.pt-momenu { display: none; flex-direction: column; justify-content: center; gap: 0.5rem; width: 4rem; height: 4rem; }
.pt-momenu i { display: block; width: 2.2rem; height: 0.2rem; margin: 0 auto; background: #111; }

/* 모바일 서랍 (헤더 밖에 둔다 — 킷의 header 규칙에 걸리지 않게) */
.pt-drawer { position: fixed; inset: 0; z-index: 9998; display: none; background: rgba(0, 0, 0, 0.4); }
.pt-drawer.pt-on { display: block; }
.pt-drawer-box { position: absolute; top: 0; right: 0; width: min(32rem, 84vw); height: 100%;
  background: var(--white); overflow-y: auto; padding: 2rem 2rem 4rem; }
.pt-drawer-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.6rem; }
.pt-drawer-x { width: 3.6rem; height: 3.6rem; font-size: 2.4rem; line-height: 1; }
.pt-drawer h3 { font-size: var(--fs-p1); font-weight: var(--fw-bold); margin: 2rem 0 0.6rem; color: var(--pt-primary-strong); }
.pt-drawer a { display: block; padding: 1.1rem 0.4rem; border-bottom: 1px solid var(--line-color1); font-size: var(--fs-p1); }

@media (max-width: 992px) {
  .pt-header .pt-hd-inner { min-height: 6.4rem; }
  .pt-gnb { display: none; }
  .pt-hd-hours { display: none; }
  .pt-hd-tel { display: none; }
  .pt-momenu { display: flex; }
  .pt-brand .pt-lg-en { font-size: 2rem; }
  .pt-brand .pt-lg-ko { font-size: 1.3rem; }
}

/* ---------- 8. 히어로 (원본 시안 book-N3: 풀블리드 사진 + 어두운 오버레이 + 흰 글자) ---------- */
.pt-hero { position: relative; overflow: hidden; background: #111 center/cover no-repeat; }
.pt-hero::before { content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.72) 0%, rgba(0, 0, 0, 0.52) 46%, rgba(0, 0, 0, 0.26) 100%); }
.pt-hero .pt-wrap { position: relative; z-index: 1; }
.pt-hero-main { background-image: url(../images/hero-main.webp); padding: 14rem 0 9rem; }
.pt-hero-sub { background-image: url(../images/hero-sub.webp); padding: 9rem 0 8rem; }  /* 하단 80px — 공통규칙 섹션 패딩 72px 이상 */
.pt-hero-box { max-width: 72rem; }
.pt-hero-eyebrow { display: inline-block; margin-bottom: 1.6rem; padding: 0.5rem 1.4rem;
  border: 1px solid rgba(255, 255, 255, 0.5); border-radius: 2rem; color: #fff; font-size: var(--fs-p2); }
.pt-hero h1 { color: #fff; font-size: var(--fs-h1); line-height: var(--lh-h1); font-weight: var(--fw-bold); letter-spacing: var(--ls); }
.pt-hero-lead { margin-top: 2rem; color: rgba(255, 255, 255, 0.88); font-size: var(--fs-h6); line-height: var(--lh-h6); }
.pt-hero-cta { display: flex; flex-wrap: wrap; gap: 1.2rem; margin-top: 4rem; }
.pt-hero-sub h1 { font-size: var(--fs-h2); line-height: var(--lh-h2); }
.pt-crumb { display: flex; flex-wrap: wrap; gap: 0.8rem; margin-bottom: 1.6rem; color: rgba(255, 255, 255, 0.78); font-size: var(--fs-p2); }
.pt-crumb span::after { content: "/"; margin-left: 0.8rem; opacity: 0.6; }
.pt-crumb span:last-child::after { content: ""; }
@media (max-width: 992px) {
  .pt-hero-main { background-image: url(../images/hero-mobile.webp); background-position: 50% 18%; }
  .pt-hero::before { background: linear-gradient(180deg, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.72) 100%); }
  .pt-hero-main { padding: 8rem 0 5.2rem; }
  .pt-hero-sub { padding: 6rem 0 5.2rem; }
  .pt-hero-box { max-width: none; }
  .pt-hero-cta { margin-top: 2.4rem; }
}

/* ---------- 9. 마퀴 띠 (원본 시안 book-N3 loop-area) ---------- */
.pt-loop { overflow: hidden; padding: 2.4rem 0; background: #111; }
.pt-loop-inner { display: flex; width: max-content; animation: pt-loop 26s linear infinite; }
.pt-loop-inner span { display: block; padding-right: 4rem; font-size: 6.4rem; line-height: 1;
  font-weight: var(--fw-bold); letter-spacing: 0.02em; white-space: nowrap; color: rgba(255, 255, 255, 0.5); }
.pt-loop-inner span:nth-child(even) { color: var(--pt-primary-hover); }
@keyframes pt-loop { 0% { transform: translate3d(0, 0, 0); } 100% { transform: translate3d(-50%, 0, 0); } }
@media (max-width: 992px) { .pt-loop-inner span { font-size: 3.2rem; padding-right: 2rem; } }
@media (prefers-reduced-motion: reduce) { .pt-loop-inner { animation: none; } }

/* ---------- 10. 섹션 리듬 (원본 시안 book-N4~N9) ---------- */
.pt-sec { position: relative; padding: 16rem 0; }
.pt-sec-sm { padding: 12rem 0; }
.pt-sec-bg { background: var(--bg-color); }
.pt-sec-tint { background: var(--pt-primary-soft); }
.pt-sec-head { margin-bottom: 6rem; text-align: center; }
.pt-sec-head h2 { font-size: var(--fs-h2); line-height: var(--lh-h2); font-weight: var(--fw-bold); letter-spacing: var(--ls); }
.pt-sec-head p { margin-top: 1.6rem; color: var(--text-color2); font-size: var(--fs-h6); line-height: var(--lh-h6); }
@media (max-width: 992px) {
  .pt-sec { padding: 8rem 0; }
  .pt-sec-sm { padding: 6.4rem 0; }
  .pt-sec-head { margin-bottom: 3rem; }
}

/* ---------- 11. 탭 스트립 (원본 시안 tabset-text) ---------- */
.pt-tabset { display: flex; justify-content: center; flex-wrap: wrap; margin-bottom: 6rem; }
.pt-tabset a { position: relative; display: inline-flex; align-items: center; height: var(--ht-xl);
  padding: 0 2.4rem; color: var(--text-color4); font-weight: var(--fw-medium); }
.pt-tabset a + a::before { content: ""; position: absolute; top: 50%; left: 0; transform: translateY(-50%);
  width: 1px; height: 2rem; background: var(--border-color); }
.pt-tabset a:hover, .pt-tabset a.active { color: var(--text-color1); font-weight: var(--fw-bold); }
@media (max-width: 992px) { .pt-tabset { margin-bottom: 3rem; } .pt-tabset a { padding: 0 1.2rem; font-size: var(--fs-p2); } }

/* ---------- 12. 사진 스택 카드 (원본 시안 book-N4) ---------- */
.pt-stack { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }
.pt-stack .item { position: relative; overflow: hidden; height: 46rem; border-radius: var(--radius); }
.pt-stack .item::before { content: ""; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.06) 30%, rgba(0, 0, 0, 0.32) 100%); }
.pt-stack .item img { width: 100%; height: 100%; object-fit: cover; }
.pt-stack .desc { position: absolute; left: 0; bottom: 0; z-index: 2; width: 100%; padding: 6rem 2.8rem 3.2rem;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.62) 34%, rgba(0, 0, 0, 0.86) 100%); }
.pt-stack .desc span { display: inline-block; color: var(--pt-primary-hover); font-size: var(--fs-h6); font-weight: var(--fw-bold); }
.pt-stack .desc strong { display: block; margin: 1.6rem 0 1.2rem; color: #fff; font-size: var(--fs-h3);
  line-height: var(--lh-h3); font-weight: var(--fw-bold); }
.pt-stack .desc p { color: rgba(255, 255, 255, 0.86); font-size: var(--fs-p1); line-height: var(--lh-p1); }
@media (max-width: 992px) {
  .pt-stack { grid-template-columns: 1fr; gap: 1.2rem; }
  .pt-stack .item { height: 32rem; }
  .pt-stack .desc { padding: 2.4rem 2rem; }
}

/* ---------- 13. 아이콘 카드 (원본 시안 book-N7) ---------- */
.pt-iconlist { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2rem; }
.pt-iconlist li { display: flex; align-items: center; gap: 4rem; padding: 4.8rem;
  background: var(--white); border: 1px solid var(--line-color1); border-radius: var(--radius); }
.pt-iconlist .thumb { flex-shrink: 0; display: flex; align-items: center; justify-content: center;
  width: 10.8rem; height: 10.8rem; background: var(--pt-primary); border-radius: var(--radius); }
.pt-iconlist .thumb svg { width: 5.6rem; height: 5.6rem; stroke: var(--pt-on-primary); fill: none; stroke-width: 1.6; }
.pt-iconlist .desc strong { display: block; font-size: var(--fs-h5); line-height: var(--lh-h5); font-weight: var(--fw-bold); }
.pt-iconlist .desc p { margin-top: 1.6rem; color: var(--text-color2); }
@media (max-width: 992px) {
  .pt-iconlist { grid-template-columns: 1fr; gap: 1.2rem; }
  .pt-iconlist li { flex-direction: column; align-items: flex-start; gap: 1.6rem; padding: 2.4rem 2rem; }
  .pt-iconlist .thumb { width: 6rem; height: 6rem; }
  .pt-iconlist .thumb svg { width: 3.2rem; height: 3.2rem; }
  .pt-iconlist .desc p { margin-top: 0.8rem; }
}

/* ---------- 14. 요약 카드 2단 (원본 시안 book-N8) ---------- */
.pt-plan { display: flex; gap: 2rem; }
.pt-plan .item { flex: 1; padding: 4.8rem; background: var(--white); border-radius: var(--radius);
  border: 1px solid var(--line-color1); }
.pt-plan .badge-wrap { display: flex; align-items: center; gap: 0.6rem; }
.pt-plan .desc { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin: 1.6rem 0 3.2rem; }
.pt-plan .desc p { font-size: var(--fs-h4); line-height: var(--lh-h4); font-weight: var(--fw-bold); }
.pt-plan .figure { display: flex; align-items: baseline; justify-content: flex-end; gap: 0.4rem; }
.pt-plan .figure strong { font-size: var(--fs-h2); line-height: var(--lh-h2); font-weight: var(--fw-bold); color: var(--pt-primary-strong); }
.pt-plan .figure span { font-weight: var(--fw-medium); }
.pt-plan ul { margin-bottom: 3.2rem; }
.pt-plan ul li { position: relative; padding-left: 1.8rem; color: var(--text-color2); }
.pt-plan ul li + li { margin-top: 0.8rem; }
.pt-plan ul li::before { content: ""; position: absolute; left: 0; top: 1.1rem; width: 0.6rem; height: 0.6rem;
  border-radius: 50%; background: var(--pt-primary); }
@media (max-width: 992px) {
  .pt-plan { flex-direction: column; gap: 1.2rem; }
  .pt-plan .item { padding: 2.4rem 2rem; }
  .pt-plan .desc { margin: 1.2rem 0 2.4rem; }
}

/* ---------- 15. 후기 카드 (원본 시안 book-N6) ---------- */
.pt-review { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }
.pt-review .item { padding: 2.4rem; background: var(--white); border-radius: var(--radius); border: 1px solid var(--line-color1); }
.pt-review .desc { min-height: 12rem; color: var(--text-color1); }
.pt-review .info { display: flex; align-items: center; gap: 1.2rem; margin-top: 3.2rem; }
.pt-review .info img { width: 5.2rem; height: 5.2rem; border-radius: 50%; object-fit: cover; }
.pt-review .name span { display: block; font-weight: var(--fw-medium); }
.pt-review .star { display: flex; gap: 0.2rem; color: var(--pt-primary); font-size: 1.2rem; }
@media (max-width: 992px) {
  .pt-review { grid-template-columns: 1fr; gap: 1.2rem; }
  .pt-review .item { padding: 2rem; }
  .pt-review .desc { min-height: 0; }
  .pt-review .info { margin-top: 2.4rem; }
}

/* ---------- 16. 링크 카드 그리드 (원본 시안 thumb 라운드 계승) ---------- */
.pt-cards { display: flex; flex-wrap: wrap; gap: 2rem; }
.pt-cards .item { flex: 0 0 calc((100% - 4rem) / 3); overflow: hidden; display: flex; flex-direction: column; background: var(--white);
  border: 1px solid var(--line-color1); border-radius: var(--radius); transition: 0.3s; }
.pt-cards .item:hover { border-color: var(--pt-primary-line); transform: translateY(-0.4rem); }
.pt-cards .item img { width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; }
.pt-cards .desc { padding: 2.4rem; }
.pt-cards .desc strong { display: block; font-size: var(--fs-h6); line-height: var(--lh-h6); font-weight: var(--fw-bold); }
.pt-cards .desc p { margin-top: 0.8rem; color: var(--text-color2); font-size: var(--fs-p2); line-height: var(--lh-p2); }
.pt-cards .more { margin-top: 1.6rem; color: var(--pt-primary-strong); font-weight: var(--fw-medium); font-size: var(--fs-p2); }
@media (max-width: 992px) { .pt-cards { gap: 1.2rem; } .pt-cards .item { flex: 0 0 100%; } .pt-cards .desc { padding: 2rem; } }

/* ---------- 17. 본문 (하위페이지 읽기 블록) ---------- */
.pt-prose h2 { margin-bottom: 2rem; font-size: var(--fs-h3); line-height: var(--lh-h3); font-weight: var(--fw-bold); }
.pt-prose h3 { margin: 4rem 0 1.2rem; font-size: var(--fs-h5); line-height: var(--lh-h5); font-weight: var(--fw-bold); }
.pt-prose p { margin-bottom: 1.6rem; color: var(--text-color2); }
.pt-prose ul { margin: 0 0 2rem; }
.pt-prose ul li { position: relative; padding-left: 1.8rem; color: var(--text-color2); }
.pt-prose ul li + li { margin-top: 0.8rem; }
.pt-prose ul li::before { content: ""; position: absolute; left: 0; top: 1.1rem; width: 0.6rem; height: 0.6rem;
  border-radius: 50%; background: var(--pt-primary); }
.pt-prose + .pt-prose { margin-top: 6rem; }
.pt-note { margin-top: 2.4rem; padding: 2.4rem; border-left: 0.4rem solid var(--pt-primary);
  background: var(--pt-primary-soft); border-radius: 0 var(--radius) var(--radius) 0; }
.pt-note strong { display: block; margin-bottom: 0.8rem; color: var(--pt-primary-strong); }
.pt-note p { margin: 0; color: var(--text-color2); font-size: var(--fs-p2); line-height: var(--lh-p2); }

/* ---------- 18. 표 ---------- */
.pt-table-wrap { overflow-x: auto; border: 1px solid var(--line-color1); border-radius: var(--radius); background: var(--white); }
.pt-table { min-width: 56rem; font-size: var(--fs-p1); }
.pt-table th, .pt-table td { padding: 1.6rem 2rem; text-align: left; border-bottom: 1px solid var(--line-color1); }
.pt-table thead th { background: var(--pt-primary-soft); color: var(--pt-primary-strong); font-weight: var(--fw-bold); }
.pt-table tbody tr:last-child th, .pt-table tbody tr:last-child td { border-bottom: 0; }
.pt-table td { color: var(--text-color2); }

/* ---------- 19. 아코디언 FAQ (원본 시안 accordset-plus / accent-header) ---------- */
.pt-accord { border-top: 1px solid var(--border-color); border-bottom: 1px solid var(--border-color); background: var(--white); }
.pt-accord details + details { border-top: 1px solid var(--border-color); }
.pt-accord summary { position: relative; display: flex; align-items: flex-start; gap: 1.2rem;
  padding: 2rem 6rem 2rem 2.4rem; cursor: pointer; list-style: none; font-weight: var(--fw-medium); }
.pt-accord summary::-webkit-details-marker { display: none; }
.pt-accord summary::after { content: "+"; position: absolute; top: 50%; right: 2.4rem; transform: translateY(-50%);
  width: 2.8rem; height: 2.8rem; line-height: 2.8rem; text-align: center; font-size: 2.4rem; color: var(--text-color2); }
.pt-accord details[open] summary { background: var(--pt-primary-tint); color: var(--pt-primary-strong); }
.pt-accord details[open] summary::after { content: "\2212"; color: var(--pt-primary-strong); }
.pt-accord .q { flex-shrink: 0; font-weight: var(--fw-bold); color: var(--pt-primary); line-height: inherit; }
.pt-accord .a { display: flex; align-items: flex-start; gap: 1.2rem; padding: 2.4rem;
  border-top: 1px solid var(--border-color); background: #f8f8fa; }
.pt-accord .a > span { flex-shrink: 0; font-weight: var(--fw-bold); }
.pt-accord .a p { color: var(--text-color2); }
@media (max-width: 992px) {
  .pt-accord summary { padding: 1.6rem 5.6rem 1.6rem 1.6rem; }
  .pt-accord summary::after { right: 1.6rem; }
  .pt-accord .a { padding: 1.6rem; }
}

/* ---------- 20. 하단 CTA 밴드 (원본 시안 book-N10) ---------- */
.pt-band { position: relative; overflow: hidden; padding: 14rem 0; text-align: center;
  background: #111 url(../images/band-cta.webp) no-repeat center/cover; }
.pt-band::before { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, 0.62); }
.pt-band .pt-wrap { position: relative; z-index: 1; }
.pt-band h2 { color: #fff; font-size: var(--fs-h2); line-height: var(--lh-h2); font-weight: var(--fw-bold); }
.pt-band p { margin-top: 2rem; color: rgba(255, 255, 255, 0.85); font-size: var(--fs-h6); line-height: var(--lh-h6); }
.pt-band-tel { display: block; margin-top: 4rem; color: #fff; font-size: var(--fs-h3); line-height: var(--lh-h3); font-weight: var(--fw-bold); }
.pt-band-btns { display: flex; justify-content: center; flex-wrap: wrap; gap: 1.2rem; margin-top: 3.2rem; }
@media (max-width: 992px) { .pt-band { padding: 7rem 0; } .pt-band-tel { margin-top: 2.4rem; } .pt-band-btns { margin-top: 2.4rem; } }

/* ---------- 21. 푸터 (원본 시안 book-N2) ---------- */
.pt-footer { padding: 5rem 0 2rem; background: var(--white); border-top: 1px solid var(--line-color1); }
.pt-footer-top { margin-bottom: 4rem; text-align: center; }
.pt-flogo { display: inline-flex; align-items: baseline; }
.pt-flogo .pt-lg-en { font-size: 2.8rem; font-weight: var(--fw-bold); letter-spacing: 0.02em; color: var(--pt-primary); font-style: normal; }
.pt-flogo .pt-lg-ko { font-size: 1.5rem; color: var(--text-color2); }
.pt-footer-top p { margin-top: 1.6rem; color: var(--text-color2); font-size: var(--fs-p2); }
.pt-footer-menulist { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; font-size: var(--fs-p2); }
.pt-footer-menulist li { position: relative; }
.pt-footer-menulist li + li::after { content: ""; position: absolute; top: 50%; left: 0; transform: translateY(-50%);
  width: 1px; height: 1.4rem; background: rgba(0, 0, 0, 0.1); }
.pt-footer-menulist a { display: block; padding: 0.4rem 1.2rem; }
.pt-footer-bottom { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1.2rem;
  padding-top: 2rem; border-top: 1px solid var(--border-color); }
.pt-footer-info { color: var(--text-color2); font-size: var(--fs-p2); line-height: var(--lh-p2); }
.pt-footer-info span + span::before { content: "\00b7"; margin: 0 0.6rem; opacity: 0.5; }
@media (max-width: 992px) { .pt-footer-bottom { flex-direction: column; align-items: flex-start; } }

/* ---------- 22. 약관·개인정보 모달 (킷 TERMS_MODAL 의 .dgm-* 스킨 — 이 시안 톤에 맞춰 작성) ---------- */
.dgm-links { display: flex; gap: 0.8rem 1.4rem; flex-wrap: wrap; align-items: center; justify-content: center; margin: 1.4rem 0 0; }
.dgm-links button { font-size: var(--fs-p2); color: var(--text-color2); text-decoration: underline; }
.dgm-links button:hover { color: var(--pt-primary-strong); }
.dgm-sep { color: var(--text-color4); font-size: var(--fs-p3); }
.dgm-overlay { position: fixed; inset: 0; z-index: 10000; display: none; align-items: center; justify-content: center;
  padding: 2rem; background: rgba(0, 0, 0, 0.55); }
.dgm-on { display: flex; }
.dgm-box { width: min(680px, 100%); max-height: 86vh; display: flex; flex-direction: column; background: #fff;
  border-radius: var(--radius); overflow: hidden; box-shadow: 0 3rem 8rem rgba(0, 0, 0, 0.3); }
.dgm-head { flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 1.2rem;
  padding: 1.8rem 2.2rem; background: var(--pt-primary); color: #fff; }
.dgm-head h3 { font-size: var(--fs-h6); font-weight: var(--fw-bold); color: #fff; }
.dgm-x { width: 3.4rem; height: 3.4rem; border-radius: var(--radius-sm); background: rgba(255, 255, 255, 0.18);
  color: #fff; font-size: 2rem; line-height: 1; flex-shrink: 0; }
.dgm-body { flex: 1; overflow-y: auto; padding: 2.2rem 2.4rem; color: var(--text-color2);
  font-size: var(--fs-p2); line-height: 1.8; }
.dgm-body h4 { margin: 1.8rem 0 0.6rem; color: var(--text-color1); font-size: var(--fs-p1); font-weight: var(--fw-bold); }
.dgm-body h4:first-child { margin-top: 0; }
.dgm-body p { margin-bottom: 0.6rem; }
.dgm-body strong { color: var(--text-color1); }
.dgm-date { margin-top: 1.8rem; padding-top: 1.2rem; border-top: 1px solid var(--line-color1);
  color: var(--text-color4); font-size: var(--fs-p3); }
