@charset "utf-8";
/*═══════════════════════════════════════════════════════════════
  제휴사이트 게시판 스킨

  ※ 이 페이지는 그누보드 기본 레이아웃(theme/basic) 위에 얹히므로
     바깥 흰 배경을 메인페이지와 같은 색으로 덮어 줍니다.
═══════════════════════════════════════════════════════════════*/

/* ── 페이지 전체 배경 (메인페이지와 동일) ───────── */
html, body {
  background: #04080f !important;
  color: #fff;
}
body {
  background-image:
    radial-gradient(ellipse 80% 50% at 50% 0%, rgba(26,111,255,.10), transparent 65%),
    radial-gradient(ellipse 60% 40% at 15% 85%, rgba(0,207,255,.05), transparent 60%) !important;
  background-attachment: fixed !important;
}
#wrapper, #container_wr, #container, #wrapper_title,
.container_wr, #bo_list, #bo_v {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
/*  기본 테마의 #container 는 width:930px + float:left 고정이라
    화면 왼쪽으로 쏠리고 오른쪽에 흰 여백이 남습니다.
    폭 제한과 float 를 풀어 화면 전체를 쓰도록 합니다.            */
#container {
  float: none !important;
  width: auto !important;
  max-width: none !important;
  min-height: 0 !important;
  margin: 0 auto !important;
  padding: 0 !important;
}
#wrapper, #container_wr { width: auto !important; max-width: none !important; float: none !important; overflow: visible !important; }
/* 그누보드가 찍는 페이지 제목 — 스킨에 이미 제목이 있으므로 숨깁니다 */
#container_title, #wrapper_title { display: none !important; }
/* 기본 테마의 좌우 여백 제거 */
#container { margin: 0 auto !important; }

#pt_wrap {
  --pt-bg:    #04080f;   /* 메인페이지와 동일한 색 */
  --pt-panel: #070e1c;
  --pt-panel2:#0b1325;
  --pt-line:  rgba(255,255,255,.07);
  --pt-wh:    #ffffff;
  --pt-gr:    #7a96b8;
  --pt-gr2:   #3a5070;
  --pt-blue:  #4d9aff;
  --pt-cyan:  #00cfff;
  --pt-gold:  #f0b429;
  --pt-gold2: #ffe08a;
  --pt-red:   #ff3737;

  max-width: 1300px;
  margin: 0 auto;
  padding: 24px 3% 70px;
  color: var(--pt-wh);
  font-family: 'Noto Sans KR', sans-serif;
  line-height: 1.6;
}
#pt_wrap a { text-decoration: none; color: inherit; }
#pt_wrap p { margin: 0; }

/* ── ① 상단 소개 ───────────────────────────── */
.pt_intro {
  background:
    radial-gradient(ellipse 70% 100% at 15% 0%, rgba(26,111,255,.14), transparent 70%),
    radial-gradient(ellipse 60% 100% at 92% 100%, rgba(240,180,41,.07), transparent 70%),
    var(--pt-panel);
  border: 1px solid var(--pt-line);
  border-radius: 18px;
  padding: clamp(22px, 3vw, 40px);
  margin-bottom: 34px;
}
.pt_intro__t {
  font-family: 'Black Han Sans', 'Noto Sans KR', sans-serif;
  font-size: clamp(22px, 2.7vw, 34px);
  font-weight: 400; line-height: 1.3; letter-spacing: -.01em;
  margin: 0 0 10px; color: var(--pt-wh);
}
.pt_intro__t em { font-style: normal; color: var(--pt-cyan); }
.pt_intro__sub {
  font-size: clamp(14px, 1.5vw, 17px); font-weight: 700; font-style: italic;
  color: var(--pt-gold); margin-bottom: 22px;
}
.pt_intro__cols {
  display: grid; grid-template-columns: minmax(0, 46%) minmax(0, 1fr);
  gap: clamp(18px, 2.4vw, 34px); align-items: start;
}
.pt_intro__cols.is-noimg { grid-template-columns: 1fr; }
.pt_intro__img img {
  width: 100%; height: auto; display: block;
  border-radius: 8px; border: 1px solid var(--pt-line);
}
.pt_intro__txt p {
  font-size: clamp(14px, 1.45vw, 15.5px);
  color: var(--pt-gr); line-height: 1.85; margin-bottom: 15px;
  word-break: keep-all;
}
.pt_intro__txt p:last-child { margin-bottom: 0; }
.pt_intro__txt em { font-style: normal; color: var(--pt-gold2); font-weight: 700; }
.pt_intro__txt strong { color: var(--pt-wh); }

/* ── ② 섹션 헤더 ───────────────────────────── */
.pt_head {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 12px; border-bottom: 1px solid var(--pt-line);
  padding-bottom: 12px; margin-bottom: 26px;
}
.pt_head__t {
  position: relative; margin: 0; padding-bottom: 12px;
  font-family: 'Black Han Sans', 'Noto Sans KR', sans-serif;
  font-size: clamp(19px, 2.1vw, 25px); font-weight: 400; color: var(--pt-wh);
}
.pt_head__t::after {
  content: ""; position: absolute; left: 0; bottom: -13px;
  width: 100%; height: 3px; background: linear-gradient(90deg, var(--pt-gold), var(--pt-gold2));
}
.pt_head__right { display: flex; align-items: center; gap: 10px; }
.pt_bc { font-size: 13px; color: var(--pt-gr2); }
.pt_bc i { font-style: normal; margin-right: 3px; }
.pt_schbtn, .pt_manage {
  font-size: 12.5px; font-weight: 700; color: var(--pt-gr);
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1);
  border-radius: 5px; padding: 6px 13px; cursor: pointer;
}
.pt_schbtn:hover, .pt_manage:hover { color: var(--pt-wh); border-color: var(--pt-blue); }

/* ── ③ 카드 목록 ───────────────────────────── */
.pt_grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);   /* 한 줄에 3개 */
  gap: clamp(18px, 2vw, 26px);
}
.pt_card {
  position: relative; display: flex; flex-direction: column;
  background: linear-gradient(180deg, #121a33 0%, #0c1223 100%);
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 20px; overflow: hidden;
  box-shadow: 0 12px 34px rgba(0,0,0,.4);
  transition: transform .38s cubic-bezier(.22,1,.36,1), box-shadow .38s, border-color .38s;
}
.pt_card:hover {
  transform: translateY(-9px);
  border-color: rgba(240,180,41,.55);
  box-shadow: 0 28px 64px rgba(0,0,0,.55), 0 0 0 1px rgba(240,180,41,.25);
}
.pt_card::after {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; z-index: 3;
  background: linear-gradient(90deg, #a78bfa, #f472b6 45%, #ffb84d);
  transform: scaleX(0); transform-origin: left;
  transition: transform .45s cubic-bezier(.22,1,.36,1);
}
.pt_card:hover::after { transform: scaleX(1); }
.pt_card--notice::after { transform: scaleX(1); }

.pt_card__link { display: block; }

.pt_card__img { position: relative; display: block; padding: 0; }
.pt_card__frame {
  position: relative; display: flex; align-items: center; justify-content: center;
  aspect-ratio: 16 / 9; overflow: hidden;
  background: #070c18; border: 0; border-radius: 19px 19px 0 0;
}
.pt_card__frame img {
  width: 100%; height: 100%; object-fit: contain; display: block;
  transition: transform .5s cubic-bezier(.22,1,.36,1);
}
.pt_card:hover .pt_card__frame img { transform: scale(1.05); }
.pt_card__ph {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, #0b1325, #1b2748);
  font-family: 'Black Han Sans', sans-serif; font-size: 30px; color: rgba(122,150,184,.5);
}
.pt_card__hover {
  position: absolute; inset: 0; border-radius: 19px 19px 0 0;
  display: flex; align-items: center; justify-content: center;
  background: rgba(6,10,22,.55);
  -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
  opacity: 0; transition: opacity .3s;
}
.pt_card__hover b {
  font-size: 13px; font-weight: 700; color: #fff;
  border: 1px solid rgba(255,255,255,.6); border-radius: 999px; padding: 8px 18px;
}
.pt_card:hover .pt_card__hover { opacity: 1; }

.pt_card__body { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 9px; }
.pt_card__top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.pt_card__t {
  display: block; min-width: 0;
  font-family: 'Black Han Sans', 'Noto Sans KR', sans-serif;
  font-size: clamp(16px, 1.55vw, 19px); line-height: 1.35; letter-spacing: -.01em;
  color: var(--pt-wh);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  transition: color .25s;
}
.pt_card:hover .pt_card__t { color: var(--pt-gold2); }
.pt_card__code {
  flex-shrink: 0; font-size: 11px; font-weight: 700; letter-spacing: .06em;
  color: #0a0f1e; background: linear-gradient(90deg, var(--pt-gold2), var(--pt-gold));
  border-radius: 999px; padding: 5px 11px; white-space: nowrap;
}
.pt_card__code b { font-weight: 900; }
.pt_card__tags {
  display: flex; flex-wrap: wrap; gap: 6px;
}
.pt_card__tags em {
  font-style: normal; font-size: 11.5px; font-weight: 700; letter-spacing: -.01em;
  color: #dbe6f5;
  background: linear-gradient(180deg, rgba(167,139,250,.16), rgba(167,139,250,.07));
  border: 1px solid rgba(167,139,250,.32);
  border-radius: 7px; padding: 5px 10px; white-space: nowrap;
  transition: border-color .25s, color .25s;
}
.pt_card:hover .pt_card__tags em { border-color: rgba(240,180,41,.42); color: #fff; }

/*  카드 하단 버튼 — 상세 보기 / 바로가기 */
.pt_card__btns { display: flex; gap: 8px; padding: 0 16px 16px; margin-top: auto;
}
.pt_card__btn {
  flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 5px;
  padding: 11px 6px; border-radius: 10px;
  font-size: 13px; font-weight: 700; text-decoration: none; letter-spacing: -.01em;
  transition: transform .2s, background .2s, border-color .2s, color .2s;
}
.pt_card__btn i { font-style: normal; transition: transform .2s; }
.pt_card__btn.ghost {
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.15); color: #cbd9ea;
}
.pt_card__btn.ghost:hover {
  background: rgba(167,139,250,.18); border-color: rgba(167,139,250,.6);
  color: #fff; transform: translateY(-2px);
}
/* 바로가기 — 금색이 흐르고 광택이 스쳐 갑니다 */
.pt_card__btn.gold {
  position: relative; overflow: hidden; isolation: isolate; color: #0a0f1e;
  background: linear-gradient(90deg,#f0b429,#ffd76a 25%,#ff9f1c 50%,#ffd76a 75%,#f0b429);
  background-size: 220% auto;
  animation: ptShine 3s linear infinite, ptGlow 2.6s ease-in-out infinite;
}
.pt_card__btn.gold::before {
  content: ""; position: absolute; top: 0; left: -65%; width: 45%; height: 100%; z-index: -1;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.6), transparent);
  transform: skewX(-18deg);
  animation: ptSweep 3s ease-in-out infinite;
}
.pt_card__btn.gold:hover { transform: translateY(-2px); animation-duration: 1.4s, 1.4s; }
.pt_card__btn.gold:hover i { transform: translateX(3px); }

@keyframes ptShine { 0%{background-position:0% 50%} 100%{background-position:220% 50%} }
@keyframes ptSweep { 0%{left:-65%} 55%,100%{left:130%} }
@keyframes ptGlow {
  0%,100% { box-shadow: 0 4px 16px rgba(240,180,41,.30); }
  50%     { box-shadow: 0 6px 26px rgba(240,180,41,.62), 0 0 0 1px rgba(255,224,138,.35); }
}
@media (prefers-reduced-motion: reduce) {
  .pt_card__btn.gold { animation: none; }
  .pt_card__btn.gold::before { animation: none; opacity: 0; }
}
}

.pt_empty { grid-column: 1 / -1; text-align: center; padding: 70px 0; color: var(--pt-gr2); }

.pt_foot { display: flex; justify-content: center; margin-top: 30px; }
.pt_addbtn {
  background: linear-gradient(90deg, var(--pt-gold), #ff9f1c); color: #14141a;
  font-weight: 800; font-size: 14px; border-radius: 7px; padding: 13px 38px;
}
.pt_addbtn:hover { filter: brightness(1.08); }

/* ── 페이지 ───────────────────────────────── */
#pt_wrap .pg_wrap { display: block; text-align: center; margin: 34px 0 0; }
#pt_wrap .pg { display: inline-flex; flex-wrap: wrap; gap: 5px; }
#pt_wrap .pg_page, #pt_wrap .pg_current {
  display: inline-block; min-width: 36px; padding: 9px 11px;
  border-radius: 5px; font-size: 13px; font-weight: 700; line-height: 1;
}
#pt_wrap .pg_page { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1); color: var(--pt-gr); }
#pt_wrap .pg_page:hover { border-color: var(--pt-blue); color: var(--pt-wh); }
#pt_wrap .pg_current { background: linear-gradient(90deg, var(--pt-gold), #ff9f1c); color: #04080f; border: 1px solid transparent; }

/* ── 검색창 ───────────────────────────────── */
.bo_sch_wrap { display: none; position: fixed; inset: 0; z-index: 1000; }
.bo_sch_bg { position: absolute; inset: 0; background: rgba(0,0,0,.72); }
.bo_sch {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
  width: min(92%, 440px); background: var(--pt-panel2);
  border: 1px solid rgba(255,255,255,.12); border-radius: 14px; padding: 26px; z-index: 2;
}
.bo_sch h3 { font-size: 17px; margin: 0 0 16px; color: #fff; }
.bo_sch select, .bo_sch .sch_input {
  background: #0f0f14; border: 1px solid #2c2c34; border-radius: 6px;
  color: #fff; padding: 10px 12px; font-size: 14px;
}
.bo_sch select { width: 100%; margin-bottom: 10px; }
.bo_sch .sch_bar { display: flex; gap: 8px; }
.bo_sch .sch_input { flex: 1; }
.bo_sch .sch_btn {
  background: linear-gradient(90deg, var(--pt-gold), #ff9f1c); color: #04080f; border: 0; border-radius: 6px;
  padding: 0 20px; font-weight: 700; cursor: pointer;
}
.bo_sch_cls { position: absolute; top: 12px; right: 12px; background: none; border: 0; color: #7f8a99; font-size: 17px; cursor: pointer; }

/* ── 상세 화면 ───────────────────────────── */
#pt_view {
  --pt-wh:#fff; --pt-gr:#7a96b8; --pt-gr2:#3a5070;
  --pt-gold:#f0b429; --pt-gold2:#ffe08a; --pt-blue2:#4d9aff;
  max-width: 1000px; margin: 0 auto; padding: 26px 3% 70px;
  color: var(--pt-wh); font-family: 'Noto Sans KR', sans-serif;
}
#pt_view a { text-decoration: none; }

.ptv_head { border-bottom: 1px solid rgba(255,255,255,.08); padding-bottom: 16px; margin-bottom: 24px; }
.ptv_title {
  font-family: 'Black Han Sans', 'Noto Sans KR', sans-serif;
  font-size: clamp(22px, 3vw, 34px); font-weight: 400; line-height: 1.3;
  margin: 0 0 8px; color: var(--pt-wh);
}
.ptv_meta { display: flex; gap: 14px; font-size: 13px; color: var(--pt-gr2); }

.ptv_body {
  display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(240px, 1fr);
  gap: clamp(18px, 2.4vw, 30px); align-items: start; margin-bottom: 28px;
}
.ptv_img img {
  width: 100%; height: auto; display: block;
  border-radius: 14px; border: 1px solid rgba(255,255,255,.08);
}
.ptv_side { display: flex; flex-direction: column; gap: 10px; }

.ptv_code {
  display: flex; align-items: center; gap: 9px; flex-wrap: wrap;
  background: rgba(240,180,41,.08); border: 1px solid rgba(240,180,41,.26);
  border-radius: 10px; padding: 14px 16px;
}
.ptv_code span { font-size: 13px; color: var(--pt-gr); }
.ptv_code b { font-size: 19px; color: var(--pt-gold2); letter-spacing: .06em; }
.ptv_copy {
  margin-left: auto; font-size: 12px; font-weight: 700; color: var(--pt-gr);
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14);
  border-radius: 5px; padding: 6px 12px; cursor: pointer;
}
.ptv_copy:hover { color: var(--pt-wh); border-color: var(--pt-gold); }

.ptv_go, .ptv_back, .ptv_edit {
  display: block; text-align: center; padding: 14px 16px;
  border-radius: 10px; font-size: 15px; font-weight: 700;
}
.ptv_go { background: linear-gradient(90deg, var(--pt-gold), #ff9f1c); color: #04080f; box-shadow: 0 4px 18px rgba(240,180,41,.3); }
.ptv_go:hover { filter: brightness(1.06); }
.ptv_back { background: rgba(26,111,255,.12); border: 1px solid rgba(26,111,255,.3); color: var(--pt-blue2); }
.ptv_back:hover { background: rgba(26,111,255,.24); }
.ptv_back.wide { display: inline-block; padding: 13px 46px; }
.ptv_edit { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.12); color: var(--pt-gr); font-size: 13px; padding: 11px; }
.ptv_edit:hover { color: var(--pt-wh); border-color: var(--pt-gold); }

.ptv_con {
  font-size: 15px; line-height: 1.95; color: #cfe0f2;
  border-top: 1px solid rgba(255,255,255,.08); padding: 26px 0 10px;
  word-break: break-all;
}
.ptv_con img { max-width: 100%; height: auto; border-radius: 10px; }

.ptv_files { list-style: none; margin: 18px 0 0; padding: 0; }
.ptv_files li {
  background: rgba(26,111,255,.08); border: 1px solid rgba(26,111,255,.2);
  border-radius: 8px; padding: 11px 14px; margin-bottom: 8px; font-size: 14px;
}
.ptv_files a { color: var(--pt-blue2); }
.ptv_files span { color: var(--pt-gr2); font-size: 12px; margin-left: 6px; }

.ptv_foot { display: flex; justify-content: center; margin-top: 34px; }

@media (max-width: 760px) { .ptv_body { grid-template-columns: 1fr; } }

/* ── 반응형 ───────────────────────────────── */
@media (max-width: 900px) {
  .pt_grid { grid-template-columns: repeat(2, 1fr); }
  .pt_intro__cols { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .pt_grid { grid-template-columns: 1fr; }
  .pt_head { flex-direction: column; align-items: flex-start; }
}


/* ═══════════════════════════════════════════════
   움직이는 배경 — 카드가 도드라지도록 뒤에서 흐릅니다
   (메인페이지 제휴 섹션과 같은 연출)
═══════════════════════════════════════════════ */
.pt_bgfx { position: fixed; inset: 0; pointer-events: none; z-index: 0; overflow: hidden; }
.pt_bgfx ~ #pt_wrap, .pt_bgfx ~ #pt_view { position: relative; z-index: 1; }
.pt_orb {
  position: absolute; display: block; border-radius: 50%;
  filter: blur(60px); opacity: .45; will-change: transform;
}
.pt_orb1 {
  width: 46vw; height: 46vw; max-width: 620px; max-height: 620px; left: -10%; top: -14%;
  background: radial-gradient(circle, rgba(93,63,211,.5), transparent 70%);
  animation: ptFloatA 22s ease-in-out infinite;
}
.pt_orb2 {
  width: 40vw; height: 40vw; max-width: 540px; max-height: 540px; right: -8%; top: 18%;
  background: radial-gradient(circle, rgba(240,180,41,.24), transparent 70%);
  animation: ptFloatB 26s ease-in-out infinite;
}
.pt_orb3 {
  width: 38vw; height: 38vw; max-width: 500px; max-height: 500px; left: 30%; bottom: -20%;
  background: radial-gradient(circle, rgba(0,207,255,.26), transparent 70%);
  animation: ptFloatC 30s ease-in-out infinite;
}
.pt_beam {
  position: absolute; left: -30%; right: -30%; height: 180px; top: -200px;
  background: linear-gradient(180deg, transparent, rgba(120,160,255,.09), transparent);
  transform: rotate(-6deg);
  animation: ptBeamA 12s linear infinite;
}
.pt_mesh {
  position: absolute; inset: -2px;
  background-image:
    linear-gradient(rgba(255,255,255,.026) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.026) 1px, transparent 1px);
  background-size: 64px 64px;
  -webkit-mask-image: radial-gradient(ellipse 80% 70% at 50% 35%, #000 25%, transparent 100%);
  mask-image: radial-gradient(ellipse 80% 70% at 50% 35%, #000 25%, transparent 100%);
  animation: ptMeshA 40s linear infinite;
}
@keyframes ptFloatA { 0%,100%{transform:translate(0,0) scale(1)} 50%{transform:translate(9%,7%) scale(1.12)} }
@keyframes ptFloatB { 0%,100%{transform:translate(0,0) scale(1)} 50%{transform:translate(-8%,10%) scale(1.15)} }
@keyframes ptFloatC { 0%,100%{transform:translate(0,0) scale(1)} 50%{transform:translate(-10%,-8%) scale(1.1)} }
@keyframes ptBeamA  { 0%{top:-220px;opacity:0} 12%{opacity:1} 88%{opacity:1} 100%{top:120%;opacity:0} }
@keyframes ptMeshA  { to { background-position: 64px 64px, 64px 64px; } }

@media (prefers-reduced-motion: reduce) {
  .pt_orb, .pt_beam, .pt_mesh { animation: none !important; }
}


/* ═══════════════════════════════════════════════
   하단 푸터 — 메인페이지와 동일
═══════════════════════════════════════════════ */
.pt_footer {
  position: relative; z-index: 1;
  max-width: 1300px; margin: 0 auto;
  padding: clamp(30px, 4vw, 50px) 3%;
  border-top: 1px solid rgba(255,255,255,.05);
  display: flex; flex-direction: column; align-items: center; gap: 14px;
  text-align: center;
  font-family: 'Noto Sans KR', sans-serif;
}
.pt_footer img { width: clamp(108px, 15%, 144px); height: auto; opacity: .35; }
.pt_footer__txt {
  margin: 0;
  font-size: clamp(13px, 1.3vw, 16px);
  color: rgba(122,150,184,.28);
  line-height: 1.8;
}
.pt_footer__txt a.foot-adm,
.pt_footer__txt a.foot-adm:link,
.pt_footer__txt a.foot-adm:visited {
  color: inherit !important; text-decoration: none !important;
  border: 0 !important; transition: color .25s, text-shadow .25s;
}
.pt_footer__txt a.foot-adm:hover {
  color: #f0b429 !important; text-shadow: 0 0 12px rgba(240,180,41,.45);
}


/* ═══════════════════════════════════════════════
   상단 바 — 로고(홈) + 홈으로 버튼
═══════════════════════════════════════════════ */
.pt_topbar {
  position: relative; z-index: 2;
  max-width: 1300px; margin: 0 auto;
  padding: 18px 3% 0;
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
}
.pt_topbar__logo { display: inline-flex; align-items: center; }
.pt_topbar__logo img {
  width: auto; height: clamp(34px, 4vw, 46px); display: block;
  opacity: .92; transition: opacity .25s, transform .25s;
}
.pt_topbar__logo:hover img { opacity: 1; transform: translateY(-1px); }
.pt_homebtn {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 13px; font-weight: 700; color: #b9c9dd; text-decoration: none;
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.14);
  border-radius: 999px; padding: 9px 18px;
  transition: background .25s, border-color .25s, color .25s, transform .25s;
}
.pt_homebtn i { font-style: normal; transition: transform .25s; }
.pt_homebtn:hover {
  background: rgba(240,180,41,.14); border-color: rgba(240,180,41,.5);
  color: #ffe08a; transform: translateY(-2px);
}
.pt_homebtn:hover i { transform: translateX(-3px); }

/* 경로 표시의 홈 링크 */
.pt_bc a { color: inherit; text-decoration: none; transition: color .25s; }
.pt_bc a:hover { color: #ffe08a; }

/* 상세 — 홈으로 버튼 */
.ptv_home {
  display: block; text-align: center; padding: 14px 16px; border-radius: 10px;
  font-size: 15px; font-weight: 700; text-decoration: none;
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.14); color: #b9c9dd;
  transition: background .25s, border-color .25s, color .25s;
}
.ptv_home:hover { background: rgba(240,180,41,.14); border-color: rgba(240,180,41,.5); color: #ffe08a; }
.ptv_home.wide { display: inline-block; padding: 13px 46px; }
.ptv_foot { display: flex; justify-content: center; gap: 10px; flex-wrap: wrap; margin-top: 34px; }

@media (max-width: 520px) {
  .pt_topbar { padding-top: 14px; }
  .pt_topbar__logo img { height: 30px; }
}


/* ═══════════════════════════════════════════════
   상세 본문 — 에디터로 작성한 내용
═══════════════════════════════════════════════ */
.ptv_con { color: #cfe0f2; }
.ptv_con * { max-width: 100%; }
.ptv_con h1, .ptv_con h2, .ptv_con h3, .ptv_con h4 {
  color: #fff; font-weight: 800; line-height: 1.4;
  margin: 28px 0 12px;
}
.ptv_con h1 { font-size: 1.7em; }
.ptv_con h2 { font-size: 1.45em; }
.ptv_con h3 { font-size: 1.25em; }
.ptv_con p { margin: 0 0 14px; }
.ptv_con a { color: #4d9aff; text-decoration: underline; }
.ptv_con a:hover { color: #ffe08a; }
.ptv_con strong, .ptv_con b { color: #fff; }
.ptv_con ul, .ptv_con ol { margin: 0 0 16px; padding-left: 22px; }
.ptv_con li { margin-bottom: 7px; }
.ptv_con blockquote {
  margin: 0 0 16px; padding: 14px 18px;
  border-left: 3px solid #f0b429; background: rgba(255,255,255,.04); border-radius: 0 10px 10px 0;
}
.ptv_con hr { border: 0; border-top: 1px solid rgba(255,255,255,.1); margin: 24px 0; }
.ptv_con img { height: auto; border-radius: 10px; margin: 6px 0; }
.ptv_con table {
  width: 100%; border-collapse: collapse; margin: 0 0 18px;
  background: rgba(255,255,255,.02); border-radius: 10px; overflow: hidden;
}
.ptv_con th, .ptv_con td {
  border: 1px solid rgba(255,255,255,.1); padding: 10px 12px; text-align: left;
}
.ptv_con th { background: rgba(255,255,255,.06); color: #fff; font-weight: 700; }
.ptv_con iframe, .ptv_con video { max-width: 100%; border-radius: 10px; }
