/* fb-sub-t12 — 공지·이벤트·FAQ·약관·1:1문의·검색·트래블패스·플래너 (피그마 05-01 최종 디자인) */

/* ---------- 공통: 페이지 루트 ---------- */
.t12-page {
  --t12-green: #1d783b;
  --t12-deep: #0b473a;
  --t12-ink: #111;
  --t12-ink2: #222;
  --t12-line: #e5e5e5;
  background: #fff;
  color: var(--t12-ink);
  font-family: 'Pretendard', 'Pretendard Variable', -apple-system, sans-serif;
  letter-spacing: -0.03em;
  box-sizing: border-box;
}
.t12-page *, .t12-page *::before, .t12-page *::after { box-sizing: border-box; }

/* ---------- 공통: 제목 + 검색 ---------- */
.t12-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  width: 566px;
  max-width: 100%;
  margin: 0 auto;
}
.t12-head-text { display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center; }
.t12-title {
  margin: 0;
  font-size: 26px;
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.78px;
  color: #000;
}
.t12-lead {
  margin: 0;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: -0.48px;
  color: rgba(0, 0, 0, 0.6);
}
.t12-search {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: 66.68px;
  padding: 11.29px 11.29px 11.29px 22.58px;
  background: #fff;
  border: 1.129px solid rgba(0, 0, 0, 0.2);
  border-radius: 11px;
  margin: 0;
}
.t12-search input {
  flex: 1;
  min-width: 0;
  height: 100%;
  border: 0;
  outline: 0;
  background: transparent;
  font: inherit;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: -0.48px;
  color: #111;
  padding: 0 12px 0 0;
}
.t12-search input::placeholder { color: rgba(0, 0, 0, 0.3); }
.t12-search-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 11.3px;
  height: 44.1px;
  padding: 0 18.06px;
  border: 0;
  border-radius: 6.774px;
  background: var(--t12-deep);
  color: #fff;
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: -0.42px;
  cursor: pointer;
  flex-shrink: 0;
}
.t12-search-btn svg { width: 13.55px; height: 13.55px; display: block; }
.t12-search-btn:hover { background: #10604e; }

/* ---------- 공지/이벤트 목록 ---------- */
.t12-board { padding: 100px 0 100px; }
.t12-board-body {
  width: 1440px;
  max-width: calc(100% - 32px);
  margin: 80px auto 0;
  border-top: 1px solid var(--t12-line);
  border-bottom: 1px solid var(--t12-line);
  padding: 25px 0;
}
.t12-grid {
  display: grid;
  grid-template-columns: repeat(2, 708px);
  justify-content: space-between;
  row-gap: 8px;
}
.t12-card {
  display: flex;
  align-items: center;
  gap: 25px;
  height: 202px;
  padding: 20px 30px 20px 20px;
  background: #fff;
  border-radius: 8px;
  text-decoration: none;
  color: inherit;
  transition: background-color .2s;
}
.t12-card:hover { background: #fafafa; }
.t12-card-thumb {
  position: relative;
  width: 284.31px;
  height: 162px;
  flex-shrink: 0;
  border-radius: 9.252px;
  overflow: hidden;
  background: #f2f2f2;
}
.t12-card-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.t12-card-thumb.is-ended img { filter: grayscale(0.6); }
.t12-card-body { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; min-width: 0; flex: 1; }
.t12-card-info { display: flex; flex-direction: column; gap: 12px; width: 100%; }
.t12-card-txt { display: flex; flex-direction: column; gap: 5px; width: 100%; }
.t12-card-date {
  margin: 0;
  font-size: 13px;
  line-height: 1.6;
  letter-spacing: -0.39px;
  color: rgba(0, 0, 0, 0.4);
}
.t12-card-title {
  margin: 0;
  max-width: 340px;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.6px;
  color: var(--t12-ink2);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  word-break: keep-all;
}
.t12-card-more {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 8px 0;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -0.42px;
  color: rgba(0, 0, 0, 0.8);
}
.t12-card-more svg { width: 5.84px; height: 10.43px; display: block; }

.t12-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 25px;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: -0.39px;
  background: var(--t12-green);
  color: #fff;
  white-space: nowrap;
}
.t12-badge.is-ended { background: rgba(0, 0, 0, 0.1); color: #555; }
.t12-badge.is-upcoming { background: rgba(29, 120, 59, 0.1); color: var(--t12-green); }

/* 빈 상태 */
.t12-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 20px;
  min-height: 300px;
  padding: 40px 16px;
  background: #fafafa;
  text-align: center;
}
.t12-empty-icon {
  width: 64px;
  height: 64px;
  border-radius: 32px;
  background: rgba(11, 71, 58, 0.05);
  display: flex;
  align-items: center;
  justify-content: center;
}
.t12-empty-icon svg { width: 24px; height: 24px; display: block; }
.t12-empty-text { display: flex; flex-direction: column; gap: 8px; align-items: center; }
.t12-empty-title { margin: 0; font-size: 22px; font-weight: 600; letter-spacing: -0.66px; color: #111; line-height: normal; }
.t12-empty-desc { margin: 0; font-size: 14px; color: #6b7280; line-height: normal; letter-spacing: 0; }
.t12-board-body.is-empty { border: 0; padding: 0; width: 1440px; }

/* 페이지네이션 */
.t12-pager {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 40px;
  margin-top: 80px;
}
.t12-pager-nums { display: flex; align-items: center; gap: 25px; }
.t12-pager a, .t12-pager span {
  font-size: 16px;
  letter-spacing: -0.32px;
  line-height: normal;
  text-decoration: none;
  color: #9e9e9e;
  font-weight: 400;
}
.t12-pager .is-current { color: #000; font-weight: 600; }
.t12-pager a:hover { color: #000; }
.t12-pager-arrow { display: inline-flex; width: 8px; height: 14.53px; }
.t12-pager-arrow svg { width: 8px; height: 14.53px; display: block; }
.t12-pager-arrow.is-prev svg { transform: rotate(180deg); }
.t12-pager-arrow.is-disabled { opacity: .4; pointer-events: none; }

/* ---------- 공지/이벤트 상세 ---------- */
.t12-detail { padding: 100px 16px 100px; }
.t12-detail-inner { width: 960px; max-width: 100%; margin: 0 auto; }
.t12-detail-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--t12-line);
  text-align: center;
}
.t12-detail-titles { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.t12-detail-kicker { font-size: 12px; font-weight: 500; letter-spacing: -0.36px; color: var(--t12-green); line-height: normal; }
.t12-detail-title { margin: 0; font-size: 24px; font-weight: 600; letter-spacing: -0.72px; color: #111; line-height: normal; word-break: keep-all; }
.t12-detail-meta { display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap; }
.t12-detail-meta-item { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; line-height: 1.6; letter-spacing: -0.36px; color: rgba(0, 0, 0, 0.3); }
.t12-detail-meta-item svg { display: block; flex-shrink: 0; }
.t12-detail-head.is-event .t12-detail-meta { flex-direction: column; gap: 12px; }
.t12-detail-head.is-event .t12-detail-meta-item { color: rgba(0, 0, 0, 0.3); }
.t12-detail-image { margin-top: 33px; width: 100%; aspect-ratio: 960 / 540; overflow: hidden; background: rgba(127, 127, 127, 0.08); }
.t12-detail-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.t12-detail-content {
  margin-top: 33px;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: -0.48px;
  color: #111;
  word-break: break-word;
}
.t12-detail-content p { margin: 0; }
/* 피그마 3451:78055 본문 목록: 불릿은 본문 안쪽(텍스트 x+24, 불릿 x+11) — 기본 outside 불릿이 본문 밖으로 삐져나가던 것 보정 */
.t12-detail-content ul,
.t12-detail-content ol { margin: 0; padding-left: 24px; }
.t12-detail-content img { max-width: 100%; height: auto; }
.t12-detail-content a { color: var(--t12-green); }
/* 에디터 제목(h1~h6): 전역 app.css의 에메랄드 색·여백이 본문 색(#111)을 덮지 않도록 본문 스타일을 상속, 크기 차이는 유지 */
.t12-detail-content :is(h1, h2, h3, h4, h5, h6) {
  color: inherit;
  font-family: inherit;
  line-height: 1.4;
  margin: 24px 0 12px;
  font-weight: 600;
  letter-spacing: inherit;
}
.t12-detail-content h1 { font-size: 28px; }
.t12-detail-content h2 { font-size: 24px; }
.t12-detail-content h3 { font-size: 20px; }
.t12-detail-content h4 { font-size: 18px; }
.t12-detail-content h5,
.t12-detail-content h6 { font-size: 16px; }
.t12-detail-content > :is(h1, h2, h3, h4, h5, h6):first-child { margin-top: 0; }
.t12-detail-foot { display: flex; justify-content: center; margin-top: 60px; }
.t12-btn-list {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 188.67px;
  height: 52px;
  background: var(--t12-green);
  color: #fff;
  font-size: 16px;
  font-weight: 600;
  line-height: 24px;
  text-decoration: none;
  letter-spacing: -0.48px;
}
.t12-btn-list:hover { background: #166030; color: #fff; }
.t12-detail-error { text-align: center; padding: 60px 0; }
.t12-detail-error p { color: #6b7280; margin: 12px 0 40px; }

/* 이벤트 연결 상품 */
.t12-ev-products { margin-top: 48px; padding-top: 32px; border-top: 1px solid var(--t12-line); }
.t12-ev-products h2 { margin: 0 0 16px; font-size: 18px; font-weight: 600; color: #111; }
.t12-ev-product-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.t12-ev-product { display: flex; gap: 14px; align-items: center; padding: 12px; border: 1px solid var(--t12-line); border-radius: 8px; text-decoration: none; color: inherit; }
.t12-ev-product:hover { border-color: var(--t12-green); }
.t12-ev-product img { width: 72px; height: 72px; object-fit: cover; border-radius: 6px; flex-shrink: 0; background: #f2f2f2; }
.t12-ev-product-name { margin: 0 0 6px; font-size: 15px; font-weight: 600; color: #222; }
.t12-ev-product-kind { font-size: 12px; color: var(--t12-green); }

/* ---------- 반응형 ---------- */
@media (max-width: 1500px) {
  .t12-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; }
  .t12-card-thumb { width: 40%; max-width: 284px; }
}
@media (max-width: 900px) {
  .t12-board { padding: 56px 0 72px; }
  .t12-head { gap: 28px; padding: 0 16px; }
  .t12-title { font-size: 22px; }
  .t12-lead { font-size: 14px; }
  .t12-search { height: 56px; padding: 8px 8px 8px 16px; }
  .t12-search-btn { height: 40px; padding: 0 14px; }
  .t12-board-body { margin-top: 40px; padding: 12px 0; }
  .t12-grid { grid-template-columns: 1fr; row-gap: 4px; }
  .t12-card { height: auto; padding: 12px 0; gap: 16px; }
  .t12-card-thumb { width: 132px; height: 88px; }
  .t12-card-title { font-size: 16px; }
  .t12-card-more { padding: 0; font-size: 13px; }
  .t12-card-body { gap: 8px; }
  .t12-card-info { gap: 6px; }
  .t12-badge { height: 22px; font-size: 12px; padding: 1px 6px; }
  .t12-pager { margin-top: 40px; gap: 24px; }
  .t12-pager-nums { gap: 18px; }
  .t12-detail { padding: 48px 16px 72px; }
  .t12-detail-title { font-size: 20px; }
  .t12-detail-image, .t12-detail-content { margin-top: 24px; }
  .t12-detail-foot { margin-top: 40px; }
  .t12-ev-product-list { grid-template-columns: 1fr; }
  .t12-empty { min-height: 240px; }
  .t12-empty-title { font-size: 18px; }
}

/* ---------- FAQ ---------- */
.t12-card-thumb img { color: transparent; }
.t12-faq { padding: 75px 16px; }
.t12-faq-inner { width: 960px; max-width: 100%; margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: 40px; }
.t12-faq-search {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 500px;
  max-width: 100%;
  padding: 12px 12px 12px 16px;
  background: #fafafa;
  border-radius: 4px;
  margin: 0;
}
.t12-faq-search input {
  flex: 1; min-width: 0; border: 0; outline: 0; background: transparent;
  font: inherit; font-size: 15px; letter-spacing: -0.45px; color: #111; padding: 0 12px 0 0;
}
.t12-faq-search input::placeholder { color: rgba(0, 0, 0, 0.4); }
.t12-faq-search .t12-search-btn { height: 45.1px; font-size: 15px; font-weight: 500; letter-spacing: -0.45px; }
.t12-faq-body { width: 100%; display: flex; flex-direction: column; gap: 24px; }
.t12-faq-tabs { display: flex; width: 100%; }
.t12-faq-tab {
  flex: 1 1 0;
  padding-bottom: 8px;
  border-bottom: 1px solid #d4d4d4;
  text-align: center;
  font-size: 15px;
  line-height: 29px;
  letter-spacing: -0.45px;
  color: #888;
  text-decoration: none;
  white-space: nowrap;
}
.t12-faq-tab:hover { color: #111; }
.t12-faq-tab.is-active { border-bottom-color: #000; color: #000; font-weight: 500; }
.t12-faq-list { display: flex; flex-direction: column; gap: 12px; }
.t12-faq-item { background: #fff; border: 1px solid #d9d9d9; border-radius: 8px; }
.t12-faq-item summary {
  display: flex; align-items: center; gap: 20px; padding: 16px 24px; cursor: pointer; list-style: none;
}
.t12-faq-item summary::-webkit-details-marker { display: none; }
.t12-faq-q, .t12-faq-a { width: 20px; flex-shrink: 0; font-size: 20px; font-weight: 500; line-height: 27px; letter-spacing: -0.6px; color: #1d783b; }
.t12-faq-a { color: #888; }
.t12-faq-qtext { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; font-weight: 500; }
.t12-faq-cat { font-size: 12px; line-height: 16px; letter-spacing: -0.36px; color: #555; }
.t12-faq-question { font-size: 18px; line-height: 24px; letter-spacing: -0.54px; color: #000; }
.t12-faq-chev { flex-shrink: 0; transition: transform .2s; }
.t12-faq-item[open] .t12-faq-chev { transform: rotate(180deg); }
.t12-faq-item[open] { border-color: #1d783b; }
.t12-faq-answer { display: flex; gap: 20px; padding: 20px 24px 24px; margin: 0 24px; border-top: 1px solid #eee; padding-left: 0; padding-right: 0; }
.t12-faq-atext { flex: 1; font-size: 15px; line-height: 1.7; letter-spacing: -0.45px; color: #333; padding-top: 2px; }
@media (max-width: 900px) {
  .t12-faq { padding: 48px 16px 64px; }
  .t12-faq-inner { gap: 28px; }
  .t12-faq-tabs { overflow-x: auto; scrollbar-width: none; }
  .t12-faq-tabs::-webkit-scrollbar { display: none; }
  .t12-faq-tab { flex: 0 0 auto; padding: 0 14px 8px; font-size: 14px; }
  .t12-faq-item summary { padding: 14px 16px; gap: 12px; }
  .t12-faq-question { font-size: 15px; line-height: 22px; }
  .t12-faq-answer { margin: 0 16px; gap: 12px; }
  .t12-faq-atext { font-size: 14px; }
}

/* ---------- 약관 ---------- */
.t12-terms { padding: 75px 16px; }
.t12-terms-inner { width: 960px; max-width: 100%; margin: 0 auto; display: flex; flex-direction: column; gap: 40px; }
.t12-terms-head { display: flex; flex-direction: column; gap: 40px; text-align: center; }
.t12-terms-tabs .t12-faq-tab { padding-left: 16px; padding-right: 16px; }
.t12-terms-doc { background: #fff; border-radius: 8px; padding: 24px 30px; display: flex; flex-direction: column; gap: 24px; }
.t12-terms-doc-head { display: flex; flex-direction: column; gap: 4px; }
.t12-terms-doc-head h2 { margin: 0; font-size: 20px; font-weight: 600; line-height: 24px; letter-spacing: -0.6px; color: #000; }
.t12-terms-meta { display: flex; gap: 8px; font-size: 12px; line-height: 16px; letter-spacing: -0.36px; color: #838383; }
.t12-terms-ver { color: #555; font-weight: 500; }
.t12-terms-body { font-size: 12px; line-height: 1.6; letter-spacing: -0.36px; color: #555; word-break: keep-all; overflow-wrap: anywhere; }
.t12-terms-body > :first-child { margin-top: 0; }
.t12-terms-body h2, .t12-terms-body h3, .t12-terms-body h4 { margin: 20px 0 4px; font-size: 16px; font-weight: 600; line-height: 24px; letter-spacing: -0.48px; color: #111; }
.t12-terms-body p { margin: 0 0 4px; }
.t12-terms-body p + h2, .t12-terms-body p + h3, .t12-terms-body p + h4 { margin-top: 20px; }
.t12-terms-body strong, .t12-terms-body b { color: #111; font-weight: 600; }
.t12-terms-body ul, .t12-terms-body ol { margin: 0 0 4px; padding-left: 18px; }
.t12-terms-body li { margin: 0 0 4px; }
.t12-terms-body a { color: #1d783b; }
.t12-terms-body table { width: 100%; border-collapse: collapse; margin: 8px 0 12px; }
.t12-terms-body th, .t12-terms-body td { border: 1px solid #e5e5e5; padding: 8px 10px; text-align: left; vertical-align: top; }
.t12-terms-body th { background: #fafafa; color: #111; font-weight: 600; }
.t12-terms-body hr { border: 0; border-top: 1px solid #e5e5e5; margin: 16px 0; }
@media (max-width: 900px) {
  .t12-terms { padding: 48px 16px 64px; }
  .t12-terms-inner, .t12-terms-head { gap: 28px; }
  .t12-terms-doc { padding: 20px 0; }
  .t12-terms-body table { display: block; overflow-x: auto; }
}

/* ---------- 1:1 문의 ---------- */
.t12-inq { padding: 75px 16px; }
.t12-inq-head { display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center; margin: 0 auto 60px; }
.t12-inq .qr-root { width: 960px; max-width: 100%; margin: 0 auto; display: flex; flex-direction: column; gap: 24px; }
.t12-inq .qr-root > form { display: flex; flex-direction: column; gap: 24px; margin: 0; }
.t12-inq .qr-faq-banner {
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  min-height: 100px; padding: 24px; background: #eef6f0; border-radius: 8px;
}
.t12-inq .qr-faq-text { margin: 0 0 8px; font-size: 16px; font-weight: 500; line-height: 22px; letter-spacing: -0.48px; color: #1d783b; }
.t12-inq .qr-faq-sub { margin: 0; font-size: 14px; line-height: 20px; letter-spacing: -0.42px; color: #555; }
.t12-inq .qr-faq-btn, .t12-inq .qr-submit {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  height: 52px; padding: 0 24px; background: #1d783b; color: #fff; border: 0; border-radius: 4px;
  font: inherit; font-size: 15px; font-weight: 500; line-height: 22px; letter-spacing: -0.45px;
  text-decoration: none; cursor: pointer; flex-shrink: 0;
}
.t12-inq .qr-faq-btn { width: 180px; }
.t12-inq .qr-submit { width: 100%; font-weight: 600; }
.t12-inq .qr-faq-btn:hover, .t12-inq .qr-submit:hover { background: #166030; color: #fff; }
.t12-inq .qr-card {
  background: #fff; border: 1px solid #d9d9d9; border-radius: 8px; padding: 32px;
  display: flex; flex-direction: column; gap: 20px;
}
.t12-inq .qr-card-title {
  margin: 0 0 4px; padding-bottom: 16px; border-bottom: 1px solid #d9d9d9;
  font-size: 20px; font-weight: 500; line-height: 24px; letter-spacing: -0.6px; color: #000;
}
.t12-inq .qr-field { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.t12-inq .qr-label { font-size: 14px; font-weight: 500; line-height: 20px; letter-spacing: -0.42px; color: #000; }
.t12-inq .qr-label .req { color: #d14343; }
.t12-inq .qr-input, .t12-inq .qr-select, .t12-inq .qr-textarea {
  width: 100%; background: #fff; border: 1px solid #d9d9d9; border-radius: 4px;
  font: inherit; font-size: 14px; line-height: 20px; letter-spacing: -0.42px; color: #111;
  outline: none; box-shadow: none; margin: 0;
}
.t12-inq .qr-input, .t12-inq .qr-select { height: 46px; padding: 12px; }
.t12-inq .qr-select {
  appearance: none; -webkit-appearance: none; padding-right: 44px; cursor: pointer;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M5 7.5L10 12.5L15 7.5' stroke='%23555' stroke-width='1.25' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 12px center;
}
.t12-inq .qr-select:invalid { color: #888; }
.t12-inq .qr-select option { color: #111; }
.t12-inq .qr-textarea { height: 180px; padding: 16px; resize: vertical; display: block; }
.t12-inq .qr-input::placeholder, .t12-inq .qr-textarea::placeholder { color: #888; }
.t12-inq .qr-input:focus, .t12-inq .qr-select:focus, .t12-inq .qr-textarea:focus { border-color: #1d783b; }
.t12-inq .qr-help { margin: 0; font-size: 12px; line-height: 18px; letter-spacing: -0.36px; color: #888; }
.t12-inq .qr-help-top { margin-top: -8px; }
.t12-inq .qr-row { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.t12-inq .qr-row .qr-input, .t12-inq #guest_phone { height: 52px; padding: 14px 16px; }
.t12-inq #guest_phone { width: 436px; max-width: 100%; }
.t12-inq .qr-submit-wrap { display: flex; flex-direction: column; gap: 12px; margin-top: 4px; }
/* 오류·성공 알림 */
.t12-inq .qr-alert { padding: 16px 20px; border-radius: 8px; font-size: 14px; line-height: 1.6; letter-spacing: -0.42px; }
.t12-inq .qr-alert ul { margin: 6px 0 0; padding-left: 18px; }
.t12-inq .qr-alert-error { background: #fdf0f0; color: #b42318; border: 1px solid #f5c2c2; }
.t12-inq .qr-alert-success { background: #eef6f0; color: #1d783b; border: 1px solid #cfe5d6; }
.t12-inq .qr-token-box { display: flex; gap: 8px; margin-top: 12px; }
.t12-inq .qr-token-input { flex: 1; min-width: 0; height: 44px; padding: 0 12px; border: 1px solid #d9d9d9; border-radius: 4px; background: #fff; font: inherit; font-size: 13px; color: #333; }
.t12-inq .qr-copy-btn { height: 44px; padding: 0 16px; border: 1px solid #1d783b; border-radius: 4px; background: #fff; color: #1d783b; font: inherit; font-size: 14px; font-weight: 500; cursor: pointer; }
/* 조회·목록 */
.t12-inq .qr-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.t12-inq .qr-badge { display: inline-flex; align-items: center; height: 25px; padding: 2px 8px; border-radius: 4px; font-size: 13px; font-weight: 500; letter-spacing: -0.39px; }
.t12-inq .qr-badge-pending { background: rgba(0, 0, 0, 0.1); color: #555; }
.t12-inq .qr-badge-answered { background: #1d783b; color: #fff; }
.t12-inq .qr-badge-closed { background: #f2f2f2; color: #888; }
.t12-inq .qr-badge-cat { background: #eef6f0; color: #1d783b; }
.t12-inq .qr-meta-date { font-size: 13px; color: rgba(0, 0, 0, 0.4); letter-spacing: -0.39px; }
.t12-inq .qr-view-title { margin: 0; font-size: 20px; font-weight: 600; letter-spacing: -0.6px; color: #111; }
.t12-inq .qr-body { font-size: 15px; line-height: 1.7; color: #333; letter-spacing: -0.45px; word-break: break-word; }
.t12-inq .qr-answer-box { padding: 20px; background: #fafafa; border-radius: 8px; font-size: 15px; line-height: 1.7; color: #333; }
.t12-inq .qr-answer-meta { margin: 0; font-size: 12px; color: #888; }
.t12-inq .qr-waiting { padding: 24px; background: #fafafa; border-radius: 8px; font-size: 14px; color: #6b7280; text-align: center; }
.t12-inq .qr-list { display: flex; flex-direction: column; }
.t12-inq .qr-list-item { display: flex; flex-direction: column; gap: 8px; padding: 16px 0; border-bottom: 1px solid #eee; text-decoration: none; color: inherit; }
.t12-inq .qr-list-item:hover .qr-list-title { color: #1d783b; }
.t12-inq .qr-list-title { margin: 0; font-size: 16px; font-weight: 500; color: #111; }
.t12-inq .qr-empty { align-items: center; text-align: center; }
.t12-inq .qr-empty h2 { margin: 0; font-size: 22px; font-weight: 600; color: #111; }
.t12-inq .qr-empty p { margin: 0; color: #6b7280; font-size: 14px; }
.t12-inq .qr-links { display: flex; justify-content: center; gap: 8px; flex-wrap: wrap; }
.t12-inq .qr-link-btn { display: inline-flex; align-items: center; justify-content: center; height: 52px; min-width: 188px; padding: 0 24px; border: 1px solid #1d783b; border-radius: 4px; color: #1d783b; background: #fff; font-size: 15px; font-weight: 500; text-decoration: none; }
.t12-inq .qr-link-btn:hover { background: #eef6f0; }
@media (max-width: 900px) {
  .t12-inq { padding: 48px 16px 64px; }
  .t12-inq-head { margin-bottom: 32px; }
  .t12-inq .qr-faq-banner { flex-direction: column; align-items: stretch; gap: 16px; padding: 20px; }
  .t12-inq .qr-faq-btn { width: 100%; }
  .t12-inq .qr-card { padding: 24px 20px; }
  .t12-inq .qr-row { grid-template-columns: 1fr; gap: 20px; }
  .t12-inq #guest_phone { width: 100%; }
  .t12-inq .qr-token-box { flex-direction: column; }
}

/* ---------- 검색 결과 ---------- */
.search-page-wrapper.t12-page { padding: 80px 16px 130px; }
.search-page-wrapper .search-container { width: 1440px; max-width: 100%; margin: 0 auto; }
.search-page-wrapper .search-page-header { margin: 0 0 30px; }
.search-page-wrapper .search-title {
  display: flex; align-items: flex-end; flex-wrap: wrap; gap: 7px; margin: 0;
  font-size: 20px; font-weight: 600; line-height: normal; letter-spacing: -0.6px; color: #000;
}
.search-page-wrapper .query-highlight { color: #000; }
.search-page-wrapper .count-badge { font-size: 15px; font-weight: 600; letter-spacing: -0.45px; color: #1d783b; padding-bottom: 1px; }
.search-page-wrapper .search-tabs-container { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 60px; }
.search-page-wrapper .search-tab-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 36px; padding: 6px 14px;
  border: 1px solid rgba(0, 0, 0, 0.15); border-radius: 999px; background: #fff; color: #555;
  font: inherit; font-size: 14px; font-weight: 400; line-height: 1.6; letter-spacing: -0.42px; cursor: pointer;
}
.search-page-wrapper .search-tab-btn .tab-count { font: inherit; color: inherit; background: none; padding: 0; }
.search-page-wrapper .search-tab-btn.active { background: #000; border-color: #000; color: #fff; font-weight: 600; padding: 6px 13px; }
/* 피그마 3395:63194 활성 탭은 테두리 없이 px14 — 1px 테두리를 패딩에서 빼서 폭 일치 */
.search-page-wrapper .search-tab-btn:disabled { cursor: default; opacity: 1; }
.search-page-wrapper .search-tab-btn:not(.active):not(:disabled):hover { border-color: #000; color: #000; }
.search-page-wrapper .search-products-grid { display: grid; grid-template-columns: repeat(4, 330px); justify-content: space-between; row-gap: 60px; }
.search-page-wrapper .search-product-card { display: flex; flex-direction: column; gap: 20px; text-decoration: none; color: inherit; min-width: 0; }
.search-page-wrapper .card-thumb { width: 100%; aspect-ratio: 330 / 232; border-radius: 8px; overflow: hidden; background: #f2f2f2; }
.search-page-wrapper .card-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.search-page-wrapper .search-product-card:hover .card-thumb img { transform: scale(1.03); }
.search-page-wrapper .card-body { display: flex; flex-direction: column; gap: 6px; padding: 0; }
.search-page-wrapper .card-meta { display: flex; align-items: center; gap: 6px; margin: 0; }
.search-page-wrapper .kind-badge {
  display: inline-flex; align-items: center; padding: 5px 6px; border-radius: 4px;
  font-size: 11px; font-weight: 600; line-height: 1.3; letter-spacing: -0.33px;
  background: #ecf8f0; color: #1d783b;
}
.search-page-wrapper .kind-badge.kind-flight { background: #e9f5ff; color: #0075d5; }
.search-page-wrapper .kind-badge.kind-hotel { background: #fff4e8; color: #e06a00; }
.search-page-wrapper .category-text { font-size: 11px; font-weight: 600; line-height: 1.3; letter-spacing: -0.33px; color: rgba(0, 0, 0, 0.5); }
.search-page-wrapper .card-title {
  margin: 0; font-size: 18px; font-weight: 600; line-height: 1.35; letter-spacing: -0.54px; color: #000;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.search-page-wrapper .card-desc {
  margin: 0; font-size: 14px; line-height: 1.35; letter-spacing: -0.42px; color: rgba(0, 0, 0, 0.6);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.search-page-wrapper .card-desc:empty { display: none; }
.search-page-wrapper .card-price-row { margin-top: 10px; display: flex; align-items: center; gap: 16px; }
.search-page-wrapper .price-label { display: none; }
.search-page-wrapper .price-value { font-size: 20px; font-weight: 600; line-height: 1.35; letter-spacing: -0.6px; color: #000; }
/* 빈 상태 */
.search-page-wrapper .search-empty-state { display: flex; flex-direction: column; align-items: center; gap: 40px; padding: 40px 0 0; text-align: center; }
.search-page-wrapper .empty-icon { width: 64px; height: 64px; border-radius: 32px; background: rgba(11, 71, 58, 0.05); display: flex; align-items: center; justify-content: center; margin: 0 0 -30px; }
.search-page-wrapper .empty-title { margin: 0 0 -40px; font-size: 20px; font-weight: 600; line-height: 1.6; letter-spacing: -0.6px; color: #111; }
.search-page-wrapper .empty-desc { margin: 0; font-size: 14px; line-height: 1.6; letter-spacing: -0.42px; color: #555; }
.search-page-wrapper .empty-desc strong { color: #111; }
.search-page-wrapper .empty-actions { display: flex; gap: 10px; width: 600px; max-width: 100%; }
.search-page-wrapper .action-btn {
  flex: 1 1 0; display: inline-flex; align-items: center; justify-content: center; gap: 12px; height: 52px; padding: 0 8px;
  background: #fff; border: 1px solid rgba(0, 0, 0, 0.15); color: #000; font-size: 16px; line-height: 24px;
  text-decoration: none; white-space: nowrap; border-radius: 0; letter-spacing: 0;
}
.search-page-wrapper .action-btn.tours-btn { flex: 0 0 202.67px; background: #1d783b; border-color: #1d783b; color: #fff; border-radius: 4px; gap: 4.7px; font-size: 15px; font-weight: 600; letter-spacing: -0.45px; }
.search-page-wrapper .action-btn:hover { border-color: #000; }
.search-page-wrapper .action-btn.tours-btn:hover { background: #166030; }
/* V7: 빈 상태 카드(3395:61575)는 py40, 본문(3395:61574)은 pb120 → 카드 254~554, 본문 끝 674 */
@media (min-width: 901px) {
  .search-page-wrapper .search-empty-state { padding: 40px 0; }
  .search-page-wrapper.t12-page:has(.search-empty-state) { padding-bottom: 120px; }
  /* 공용 main min-height(60vh)가 빈 상태에서 푸터를 밀어내므로 검색 페이지에서만 해제.
     피그마 3395:61564 는 본문(674) 뒤 9px 띄우고 푸터(683) → 같은 위치로 맞춤 */
  main.client-body-content:has(> .search-page-wrapper) { min-height: 0; }
  .search-page-wrapper.t12-page:has(.search-empty-state) { margin-bottom: 9px; }
}
/* 안내 배너(항공·허니문 검색어) */
.search-page-wrapper .info-banner { display: flex; align-items: center; gap: 16px; padding: 20px 24px; margin: 0 0 30px; background: #eef6f0; border-radius: 8px; }
.search-page-wrapper .info-banner.flight-banner { background: #e9f5ff; }
.search-page-wrapper .banner-icon { width: 44px; height: 44px; border-radius: 22px; background: #fff; display: flex; align-items: center; justify-content: center; color: #1d783b; flex-shrink: 0; }
.search-page-wrapper .flight-banner .banner-icon { color: #0075d5; }
.search-page-wrapper .banner-icon svg, .search-page-wrapper .banner-icon i { width: 20px; height: 20px; }
.search-page-wrapper .banner-content { flex: 1; min-width: 0; }
.search-page-wrapper .banner-title { margin: 0 0 4px; font-size: 16px; font-weight: 600; color: #111; letter-spacing: -0.48px; }
.search-page-wrapper .banner-desc { margin: 0; font-size: 14px; color: #555; letter-spacing: -0.42px; }
.search-page-wrapper .banner-link { display: inline-flex; align-items: center; gap: 4px; height: 44px; padding: 0 18px; background: #1d783b; color: #fff; border-radius: 4px; font-size: 14px; font-weight: 500; text-decoration: none; white-space: nowrap; }
.search-page-wrapper .flight-banner .banner-link { background: #0075d5; }
.search-page-wrapper .banner-link svg, .search-page-wrapper .banner-link i { width: 16px; height: 16px; }
@media (max-width: 1500px) {
  .search-page-wrapper .search-products-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 24px; }
}
@media (max-width: 1024px) {
  .search-page-wrapper .search-products-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; row-gap: 40px; }
}
@media (max-width: 900px) {
  .search-page-wrapper.t12-page { padding: 40px 16px 72px; }
  .search-page-wrapper .search-tabs-container { margin-bottom: 32px; }
  .search-page-wrapper .card-title { font-size: 15px; }
  .search-page-wrapper .price-value { font-size: 16px; }
  .search-page-wrapper .card-desc { font-size: 12px; }
  .search-page-wrapper .empty-actions { flex-direction: column; }
  .search-page-wrapper .action-btn, .search-page-wrapper .action-btn.tours-btn { flex: 0 0 52px; }
  .search-page-wrapper .info-banner { flex-wrap: wrap; }
  .search-page-wrapper .banner-link { width: 100%; justify-content: center; }
}

/* ---------- 트래블패스 ---------- */
.t12-tp { background: #fff; }
.t12-tp-dark { position: relative; background: #100700; color: #fff; overflow: hidden; padding-bottom: 118px; }
.t12-tp-hero { position: relative; width: 1920px; max-width: 100%; height: 840px; margin: 0 auto; }
.t12-tp-hero-bg {
  position: absolute; left: 50%; top: 0; width: 1920px; height: 800px; transform: translateX(-50%);
  background: url('/assets/img/tp-t12/hero.webp') center top / cover no-repeat;
}
.t12-tp-hero-bg::after {
  content: ''; position: absolute; left: 0; right: 0; top: 301px; height: 499px;
  background: linear-gradient(to bottom, rgba(16, 7, 0, 0), #100700 98.6%);
}
.t12-tp-sparkle { position: absolute; width: 555px; height: 300px; opacity: .3; pointer-events: none; }
.t12-tp-sparkle.is-a { right: 0; top: 517px; transform: rotate(180deg) scaleY(-1); }
.t12-tp-sparkle.is-b { right: 538px; top: 556px; transform: scaleY(-1) rotate(-172.96deg); }
.t12-tp-hero-title { position: absolute; left: 50%; top: 153px; transform: translateX(-50%); width: 644px; text-align: center; }
.t12-tp-logo {
  margin: 0; display: flex; flex-direction: column; align-items: flex-start;
  font-family: 'Didot LT Pro', 'Didot', 'Bodoni 72', 'Playfair Display', 'Times New Roman', serif;
  font-style: italic; font-weight: 700; font-size: 60px; line-height: 1.2; letter-spacing: 0.6px; color: #fff; white-space: nowrap;
}
.t12-tp-logo span:last-child { align-self: flex-end; }
.t12-tp-hero-sub { margin: 11px 0 0; font-size: 24px; font-weight: 300; line-height: 1.4; letter-spacing: -0.72px; color: #fff; }
.t12-tp-def { position: absolute; left: calc(50% - 639.5px); top: 536px; display: flex; flex-direction: column; gap: 28px; }
.t12-tp-def h2 { margin: 0; font-size: 36px; font-weight: 600; letter-spacing: -1.08px; color: #fff; line-height: normal; }
.t12-tp-def p { margin: 0; font-size: 22px; font-weight: 300; line-height: 1.5; letter-spacing: -0.66px; color: rgba(255, 255, 255, 0.8); }
.t12-tp-ticket { position: absolute; left: calc(50% + 113px); top: 403px; width: 366px; height: auto; }
.t12-tp-how { position: relative; width: 1440px; max-width: calc(100% - 32px); margin: 53px auto 0; display: flex; flex-direction: column; align-items: center; gap: 40px; }
.t12-tp-how-title { margin: 0; font-size: 36px; font-weight: 600; letter-spacing: -1.08px; color: #fff; line-height: normal; }
.t12-tp-steps {
  position: relative; width: 100%; min-height: 309px; overflow: hidden;
  background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.15); border-radius: 8px;
  backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
}
.t12-tp-notch { position: absolute; width: 60px; height: 60px; border-radius: 50%; background: #100700; z-index: 1; }
.t12-tp-notch.is-tl { left: -31px; top: -32px; }
.t12-tp-notch.is-bl { left: -31px; bottom: -32px; }
.t12-tp-notch.is-tr { right: -31px; top: -32px; }
.t12-tp-notch.is-br { right: -31px; bottom: -32px; }
.t12-tp-step-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); min-height: 309px; }
.t12-tp-step { position: relative; display: flex; flex-direction: column; align-items: center; gap: 0; padding: 50px 10px 40px; text-align: center; }
.t12-tp-step + .t12-tp-step::before {
  content: ''; position: absolute; left: 0; top: 30px; bottom: 30px; width: 1px;
  background: repeating-linear-gradient(to bottom, rgba(255, 255, 255, 0.1) 0 4px, transparent 4px 10px);
  -webkit-mask: linear-gradient(#000 0 0) top / 1px 88px no-repeat, linear-gradient(#000 0 0) bottom / 1px 88px no-repeat;
          mask: linear-gradient(#000 0 0) top / 1px 88px no-repeat, linear-gradient(#000 0 0) bottom / 1px 88px no-repeat;
}
.t12-tp-step + .t12-tp-step::after {
  content: ''; position: absolute; left: -18px; top: 50%; width: 36.4px; height: 36.4px; margin-top: -18.2px;
  border: 1.4px solid rgba(255, 255, 255, 0.15); border-radius: 50%; box-sizing: border-box;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='7' height='13' viewBox='0 0 7 12.6' fill='none'%3E%3Cpath d='M.7.7 6.3 6.3.7 11.9' stroke='white' stroke-opacity='.5' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 54% 50% / 7px 12.6px no-repeat;
}
.t12-tp-step-no { font-size: 18px; font-weight: 500; letter-spacing: -0.54px; color: rgba(255, 255, 255, 0.8); line-height: normal; }
.t12-tp-step-icon {
  display: block; width: 120px; height: 80px; margin: 14.4px 0 20px; background: #d49837;
  -webkit-mask: var(--icon) center / 129px 77px no-repeat; mask: var(--icon) center / 129px 77px no-repeat;
}
.t12-tp-step-text { margin: 0; font-size: 20px; font-weight: 400; line-height: 1.3; letter-spacing: -0.6px; color: #fff; }
.t12-tp-step-note { margin: 10px 0 0; font-size: 16px; line-height: 1.3; letter-spacing: -0.48px; color: rgba(255, 255, 255, 0.4); }
/* 피그마 3801:81044 — 박스 h309(테두리 포함), 구분선 x336/714.2/1092, STEP 중심 156.5/510.5/888.5/1239.5, STEP1만 top54 */
.t12-tp-steps { min-height: 309px; box-sizing: border-box; }
.t12-tp-step-list { grid-template-columns: 336fr 378.2fr 377.8fr 346fr; min-height: 307px; }
.t12-tp-step { padding: 50px 0 0; }
.t12-tp-step:nth-child(1) { padding: 54px 23px 0 0; }
.t12-tp-step:nth-child(2), .t12-tp-step:nth-child(3) { padding-right: 29.2px; }
.t12-tp-step:nth-child(4) { padding-right: 51px; }
.t12-tp-step + .t12-tp-step::before { top: 31px; bottom: 24px; }
.t12-tp-step + .t12-tp-step::after { top: 155px; }
/* M: 피그마 3801:81078~81081 노치 원은 선(1.36 white .15)이 박스 안쪽 호로 보임 → 박스 테두리가 노치를 따라 휨 */
.t12-tp-notch { border: 1.36px solid rgba(255, 255, 255, 0.15); box-sizing: border-box; }
/* M: 피그마 3801:81045/81046 박스 안 야자잎 장식(image 386) — 좌상 415x277 rot45, 우하 288x192 rot172.61 flipY */
.t12-tp-steps::before, .t12-tp-steps::after {
  content: ''; position: absolute; pointer-events: none; opacity: .05;
  background: url('/assets/img/tp-t12/palm.webp') center / 100% 100% no-repeat;
}
.t12-tp-steps::before { left: -40.9px; top: -96.9px; width: 415.351px; height: 276.9px; transform: rotate(45deg); }
.t12-tp-steps::after { right: -45.95px; top: 161.7px; width: 287.904px; height: 191.936px; transform: rotate(172.61deg) scaleY(-1); }
.t12-tp-step-list { position: relative; z-index: 1; }
.t12-tp-notch { z-index: 2; }
/* 노치가 박스 테두리까지 덮도록 클립 기준을 border-box로(외곽선이 노치 밖으로 둘러지지 않게) */
.t12-tp-steps { overflow: clip; overflow-clip-margin: border-box; }
/* R3: 모서리는 노치가 전부 덮으므로 radius 0 — radius 8 클립의 안티앨리어싱이 노치 밖에 희미한 1px 호로 남던 문제 제거 */
.t12-tp-steps { border-radius: 0; }
.t12-tp-notch.is-tl { border-top-color: transparent; border-left-color: transparent; }
.t12-tp-notch.is-tr { border-top-color: transparent; border-right-color: transparent; }
.t12-tp-notch.is-bl { border-bottom-color: transparent; border-left-color: transparent; }
.t12-tp-notch.is-br { border-bottom-color: transparent; border-right-color: transparent; }
/* 아이콘 마스크 위치: 피그마 image 382 left-6.5 + mask-position 6px → x-0.5, STEP2만 y+2.5 */
.t12-tp-step-icon { -webkit-mask-position: -0.5px 0.1px; mask-position: -0.5px 0.1px; }
.t12-tp-step:nth-child(2) .t12-tp-step-icon { -webkit-mask-position: -0.5px 2.6px; mask-position: -0.5px 2.6px; }

.t12-tp-partners { width: 1440px; max-width: calc(100% - 32px); margin: 0 auto; padding: 100px 0 0; }
.t12-tp-partners-head { margin-bottom: 50px; }
.t12-tp .tp-region-tabs { display: flex; border-bottom: 1px solid #d4d4d4; overflow-x: auto; scrollbar-width: none; margin-bottom: 50px; }
.t12-tp .tp-region-tabs::-webkit-scrollbar { display: none; }
.t12-tp .tp-region-tab {
  flex: 0 0 auto; padding: 6px 20px; margin-bottom: -1px; background: #fff; border: 0; border-bottom: 1px solid transparent; border-radius: 0;
  font: inherit; font-size: 18px; font-weight: 400; line-height: 1.6; letter-spacing: -0.54px; color: #888; cursor: pointer; white-space: nowrap;
}
.t12-tp .tp-region-tab:hover { color: #000; }
.t12-tp .tp-region-tab.is-active { border-bottom-color: #000; color: #000; font-weight: 600; }
/* R3: overflow-x:auto 가 margin-bottom:-1 로 테두리에 겹친 활성 탭 밑줄을 잘라내던 문제 — 회색 선을 inset 그림자로 옮겨 탭 영역 안에서 겹치게 */
.t12-tp .tp-region-tabs { border-bottom: 0; box-shadow: inset 0 -1px 0 #d4d4d4; }
.t12-tp .tp-region-tab { margin-bottom: 0; background: transparent; }
.t12-tp-sections { display: flex; flex-direction: column; gap: 80px; }
.t12-tp .tp-place-section { display: flex; flex-direction: column; gap: 24px; margin: 0; }
.t12-tp .tp-place-section.is-hidden { display: none; }
.t12-tp .tp-place-section-title { display: flex; align-items: flex-end; gap: 12px; margin: 0; font-size: 22px; font-weight: 700; letter-spacing: -0.66px; color: #000; line-height: normal; }
.t12-tp .tp-place-section-title svg, .t12-tp .tp-place-section-title img { width: 30px; height: 30px; flex-shrink: 0; display: block; }
.t12-tp .tp-place-grid { display: grid; grid-template-columns: repeat(4, 330px); gap: 24px; }
.t12-tp .tp-place-card { display: flex; flex-direction: column; gap: 12px; min-width: 0; background: none; border: 0; box-shadow: none; border-radius: 0; overflow: visible; }
.t12-tp .tp-place-thumb { position: relative; width: 100%; aspect-ratio: 330 / 232; border-radius: 8px; overflow: hidden; background: #f2f2f2; }
.t12-tp .tp-place-gallery { position: relative; width: 100%; height: 100%; overflow: hidden; }
.t12-tp .tp-place-gallery-track { display: flex; width: 100%; height: 100%; transition: transform .35s ease; }
.t12-tp .tp-place-gallery-track img { flex: 0 0 100%; width: 100%; height: 100%; object-fit: cover; display: block; user-select: none; }
.t12-tp .tp-place-gallery-btn {
  position: absolute; top: 50%; transform: translateY(-50%); width: 20px; height: 20px; border-radius: 50%; border: 1px solid #fff; box-sizing: border-box;
  background: rgba(85, 85, 85, 0.5); -webkit-backdrop-filter: blur(12.8px); backdrop-filter: blur(12.8px); color: #fff; font-size: 14px; line-height: 1; cursor: pointer; opacity: 1; transition: opacity .2s;
  display: flex; align-items: center; justify-content: center; padding: 0 0 2px; /* 피그마: 20px 원형 반투명 */
}
.t12-tp .tp-place-gallery-prev { left: 12px; }
.t12-tp .tp-place-gallery-next { right: 12px; }
.t12-tp .tp-place-gallery-dots { position: absolute; left: 50%; bottom: 16px; transform: translateX(-50%); display: flex; gap: 10px; }
.t12-tp .tp-place-gallery-dot { width: 8px; height: 8px; padding: 0; border-radius: 50%; border: 0; background: rgba(255, 255, 255, 0.5); cursor: pointer; }
.t12-tp .tp-place-gallery-dot.is-active { background: rgba(0, 0, 0, 0.5); box-shadow: inset 0 0 0 0.889px #fff; }
.t12-tp .tp-place-body { display: flex; flex-direction: column; gap: 16px; padding: 0; }
.t12-tp .tp-place-info { display: flex; flex-direction: column; gap: 12px; }
.t12-tp .tp-place-badges { display: flex; flex-wrap: wrap; gap: 4px; margin: 0; }
.t12-tp .tp-place-badge {
  display: inline-flex; align-items: center; padding: 5px 10px; border-radius: 27px; border: 0;
  background: #ecf8f0; color: #1d783b; font-size: 13px; font-weight: 500; line-height: normal; letter-spacing: -0.39px;
}
/* V7: 피그마 3801:81094 배지 Medium 13 lh normal 텍스트 h16 + py5 = 26 (크롬 normal=15 → 25), 카드 364·섹션 간격 498 */
.t12-tp .tp-place-badge { line-height: 16px; }
/* 피그마 4824:36187 — 첫 번째 태그만 진초록 채움, 나머지는 연초록 */
.t12-tp .tp-place-badge:first-child { background: #1d783b; color: #fff; }
.t12-tp .tp-place-names { display: flex; flex-direction: column; gap: 4px; }
.t12-tp .tp-place-name { margin: 0; font-size: 18px; font-weight: 600; line-height: 1.35; letter-spacing: -0.54px; color: #000; }
.t12-tp .tp-place-desc { margin: 0; font-size: 13px; line-height: 1.35; letter-spacing: -0.39px; color: rgba(0, 0, 0, 0.5); }
.t12-tp .tp-place-benefit-line { margin: 0; display: flex; flex-direction: column; align-items: flex-start; row-gap: 5px; line-height: 1.35; } /* 피그마: 예약방법 / 혜택 2줄 스택 */
.t12-tp .tp-place-booking, .t12-tp .tp-place-booking a { font-size: 14px; font-weight: 500; letter-spacing: -0.42px; color: rgba(0, 0, 0, 0.6); text-decoration: none; background: none; padding: 0; border: 0; }
.t12-tp .tp-place-booking a:hover { text-decoration: underline; }
.t12-tp .tp-place-benefit { font-size: 15px; font-weight: 600; letter-spacing: -0.45px; color: #1d783b; background: none; padding: 0; border: 0; }

.t12-tp-bottom { width: 1440px; max-width: calc(100% - 32px); margin: 100px auto 0; padding-bottom: 100px; display: flex; flex-direction: column; gap: 40px; }
.t12-tp .tp-promotion-footer {
  position: relative; display: flex; flex-direction: column; align-items: center; gap: 15px; padding: 50px 60px; border-radius: 8px; overflow: hidden; margin: 0;
  background: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6)), url('/assets/img/tp-t12/cta.webp') 0 -86.4px / 100% 144.58% no-repeat, #100700; /* 피그마 81166: h144.58% top-25.26% */
  text-align: center; border: 0;
}
.t12-tp .tp-promotion-note { margin: 0 0 15px; font-size: 22px; font-weight: 600; line-height: 1.5; letter-spacing: -0.66px; color: #fff; }
.t12-tp .tp-cta-row { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.t12-tp .tp-cta-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 12px; width: 240px; height: 52px; padding: 0 12px;
  background: #1d783b; color: #fff; font-size: 16px; font-weight: 600; line-height: 24px; letter-spacing: 0; text-decoration: none; border-radius: 0; border: 0;
}
.t12-tp .tp-cta-btn:hover { background: #166030; color: #fff; }
.t12-tp .tp-promotion-secondary { font-size: 16px; font-weight: 400; line-height: 1.5; letter-spacing: -0.48px; color: #fff; text-decoration: none; }
.t12-tp .tp-promotion-secondary strong { font-weight: 700; }
.t12-tp .tp-promotion-secondary:hover { text-decoration: underline; }
.t12-tp .tp-promotion-guest { margin-top: 15px; font-size: 14px; font-weight: 500; line-height: 1.5; letter-spacing: -0.42px; color: #fff; opacity: .7; text-decoration: none; border-bottom: 1px solid #fff; padding-bottom: 3px; }
.t12-tp .tp-promotion-guest:hover { opacity: 1; }
.t12-tp .tp-guide-box { background: #fafafa; padding: 40px; margin: 0; border: 0; border-radius: 0; filter: drop-shadow(0 4px 3px rgba(0, 0, 0, 0.01)); }
.t12-tp .tp-guide-header { display: flex; align-items: center; gap: 8px; margin: 0; height: 39.5px; box-sizing: border-box; padding-bottom: 16px; border-bottom: 1px solid #eae2d5; font-size: 18px; font-weight: 600; letter-spacing: -0.54px; color: #000; line-height: normal; }
.t12-tp .tp-guide-list { list-style: none; margin: 0; padding: 24px 0 0; display: flex; flex-direction: column; gap: 16px; }
.t12-tp .tp-guide-item { display: flex; gap: 12px; align-items: flex-start; font-size: 15px; line-height: 1.35; letter-spacing: 0; color: #6b7280; margin: 0; }
.t12-tp .tp-guide-checkmark { flex-shrink: 0; margin: 2.9px 2px 0; }
.t12-tp .tp-guide-sub { display: block; margin-top: 4px; font-size: 13px; line-height: 18px; color: rgba(0, 0, 0, 0.5); }

@media (max-width: 1500px) {
  .t12-tp .tp-place-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .t12-tp-def { left: 80px; }
  .t12-tp-ticket { left: auto; right: 6%; }
}
@media (max-width: 1100px) {
  .t12-tp-hero { height: auto; padding: 90px 24px 40px; display: flex; flex-direction: column; align-items: center; gap: 40px; }
  .t12-tp-hero-bg { width: 100%; height: 640px; }
  .t12-tp-hero-bg::after { top: 240px; height: 400px; }
  .t12-tp-hero-title, .t12-tp-def, .t12-tp-ticket { position: relative; left: auto; right: auto; top: auto; transform: none; }
  .t12-tp-hero-title { width: auto; max-width: 100%; }
  .t12-tp-def { margin-top: 140px; text-align: center; align-items: center; }
  .t12-tp-ticket { width: 240px; }
  .t12-tp-sparkle { display: none; }
  .t12-tp .tp-place-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; }
  .t12-tp-step-list { grid-template-columns: repeat(2, 1fr); }
  .t12-tp-step, .t12-tp-step:nth-child(n) { padding: 50px 10px 40px; }
  .t12-tp-step + .t12-tp-step::before { top: 30px; bottom: 30px; }
  .t12-tp-step + .t12-tp-step::after { top: 50%; }
  .t12-tp-step:nth-child(3)::before, .t12-tp-step:nth-child(3)::after { display: none; }
}
@media (max-width: 700px) {
  .t12-tp-dark { padding-bottom: 64px; }
  .t12-tp-hero { padding: 64px 16px 24px; gap: 28px; }
  .t12-tp-hero-bg { height: 520px; }
  .t12-tp-logo { font-size: 34px; }
  .t12-tp-hero-title { width: 300px; }
  .t12-tp-hero-sub { font-size: 16px; }
  .t12-tp-def { margin-top: 120px; gap: 16px; }
  .t12-tp-def h2, .t12-tp-how-title { font-size: 26px; }
  .t12-tp-def p { font-size: 15px; }
  .t12-tp-def p br { display: none; }
  .t12-tp-ticket { width: 180px; }
  .t12-tp-how { margin-top: 24px; gap: 24px; }
  .t12-tp-step-list { grid-template-columns: 1fr; }
  .t12-tp-step, .t12-tp-step:nth-child(n) { padding: 28px 10px; }
  .t12-tp-step + .t12-tp-step::before { left: 30px; right: 30px; top: 0; bottom: auto; width: auto; height: 1px; background: repeating-linear-gradient(to right, rgba(255, 255, 255, 0.1) 0 4px, transparent 4px 10px); -webkit-mask: none; mask: none; }
  .t12-tp-step + .t12-tp-step::after { display: none; }
  .t12-tp-step-text { font-size: 17px; }
  .t12-tp-partners { padding-top: 56px; }
  .t12-tp-partners-head { margin-bottom: 28px; }
  .t12-tp .tp-region-tabs { margin-bottom: 32px; }
  .t12-tp .tp-region-tab { font-size: 15px; padding: 6px 14px; }
  .t12-tp-sections { gap: 48px; }
  .t12-tp .tp-place-grid { grid-template-columns: 1fr; }
  .t12-tp-bottom { margin-top: 56px; padding-bottom: 64px; gap: 24px; }
  .t12-tp .tp-promotion-footer { padding: 32px 20px; background-size: cover; background-position: center; }
  .t12-tp .tp-promotion-note { font-size: 16px; }
  .t12-tp .tp-promotion-note br { display: none; }
  .t12-tp .tp-cta-btn { width: 100%; }
  .t12-tp .tp-cta-row { width: 100%; flex-direction: column; }
  .t12-tp .tp-guide-box { padding: 24px 20px; }
}

/* ---------- 플래너: 예약요청 모달 ---------- */
#booking-request-modal.booking-modal { background: rgba(0, 0, 0, 0.5); }
#booking-request-modal .booking-modal-card {
  width: 440px; max-width: 100%; max-height: calc(100vh - 32px); padding: 39px 50px; gap: 20px; /* 피그마 px51은 선 미포함 → 50 + 테두리1, 상하도 40(선 포함) → 39 + 1 = 카드 h831 */
  border: 1px solid rgba(0, 0, 0, 0.15); border-radius: 8px; box-shadow: none;
  font-family: 'Pretendard', 'Pretendard Variable', -apple-system, sans-serif; letter-spacing: -0.03em; overflow-y: auto;
}
#booking-request-modal .booking-modal-header { padding: 0; border: 0; background: none; gap: 6px; }
#booking-request-modal .booking-modal-header h2 { margin: 0; font-size: 20px; font-weight: 600; line-height: 1.6; letter-spacing: -0.6px; color: #111; }
#booking-request-modal .booking-modal-close {
  width: 13.72px; height: 13.72px; flex-shrink: 0; padding: 0; border: 0; background: none; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; margin: 0;
}
#booking-request-modal .booking-modal-close:hover { background: none; opacity: .6; }
#booking-request-modal .booking-modal-form { display: flex; flex-direction: column; gap: 26px; overflow: visible; min-height: 0; }
#booking-request-modal .booking-modal-body { padding: 0; overflow: visible; display: flex; flex-direction: column; gap: 22px; }
#booking-request-modal .booking-modal-summary {
  display: flex; flex-direction: column; gap: 18px; padding: 12px; margin: 0;
  border: 1px solid rgba(0, 0, 0, 0.15); border-radius: 8px; background: #fff;
}
#booking-request-modal .bm-sum-item { display: flex; flex-direction: column; gap: 6px; }
#booking-request-modal .bm-sum-label { font-size: 15px; line-height: normal; letter-spacing: -0.45px; color: #333; }
#booking-request-modal .bm-sum-val { font-size: 12px; line-height: 1.4; letter-spacing: -0.36px; color: #777; }
#booking-request-modal .booking-modal-summary-total {
  display: flex; align-items: center; justify-content: space-between; margin: 0; padding: 18px 0 0;
  border-top: 1px solid rgba(0, 0, 0, 0.15); font-size: 15px; font-weight: 400; color: #333; letter-spacing: -0.45px; background: none;
}
#booking-request-modal .booking-modal-summary-total #modal-summary-price { font-size: 18px; font-weight: 600; line-height: 1.4; letter-spacing: -0.54px; color: #1d783b; }
#booking-request-modal .booking-modal-fields { display: flex; flex-direction: column; gap: 22px; }
#booking-request-modal .booking-modal-field { display: flex; flex-direction: column; gap: 8px; margin: 0; }
#booking-request-modal .booking-modal-field label { display: flex; align-items: center; gap: 2px; margin: 0; font-size: 15px; font-weight: 400; line-height: normal; letter-spacing: -0.45px; color: #333; }
#booking-request-modal .booking-modal-field label .req { color: red; font-size: 16px; font-weight: 500; }
#booking-request-modal .booking-modal-field input, #booking-request-modal .booking-modal-field textarea {
  width: 100%; padding: 12px; border: 1px solid rgba(0, 0, 0, 0.15); border-radius: 8px; background: #fff;
  font: inherit; font-size: 13px; line-height: 1.4; letter-spacing: -0.39px; color: #000; box-shadow: none; outline: none; box-sizing: border-box;
}
/* 피그마 82211/82232: 입력 h42.2(p12, 선 미포함) · 요청사항 2줄 h60.4 */
#booking-request-modal .booking-modal-field input { height: 42.2px; padding: 11px 12px; }
#booking-request-modal .booking-modal-field textarea { min-height: 60.4px; height: 60.4px; padding: 11px 12px; resize: vertical; }
/* V7: 피그마 메타데이터(4482:82185) 기준 정수 높이 — 입력 42, 요청사항 60, 요약 항목 41(값 줄 17), 합계 행 25 → 요약 박스 187, 필드 행 y 209/300/391/481 */
#booking-request-modal .booking-modal-field input { height: 42px; }
#booking-request-modal .booking-modal-field textarea { min-height: 60px; height: 60px; line-height: 18px; resize: none; } /* R3: 피그마 4482:82232 리사이즈 핸들 없음 */
#booking-request-modal .bm-sum-val { line-height: 17px; }
#booking-request-modal .booking-modal-summary-total #modal-summary-price { line-height: 25px; }
#booking-request-modal .booking-modal-summary-total { padding-top: 17px; } /* 구분선 1px 포함 18 */
#booking-request-modal .booking-modal-field input:focus, #booking-request-modal .booking-modal-field textarea:focus { border-color: #1d783b; box-shadow: none; }
#booking-request-modal .booking-modal-field input::placeholder, #booking-request-modal .booking-modal-field textarea::placeholder { color: #999; }
#booking-request-modal .booking-modal-footer { padding: 0; border: 0; background: none; display: flex; flex-direction: column; gap: 20px; }
#booking-request-modal .booking-modal-note { margin: 0; font-size: 12px; line-height: 1.4; letter-spacing: -0.36px; color: #777; text-align: center; }
#booking-request-modal .booking-modal-note { line-height: 17px; } /* V7: 2줄 h34(피그마 4482:82236) */
#booking-request-modal .booking-modal-submit {
  width: 100%; height: 52px; border: 0; border-radius: 4px; background: #1d783b; color: #fff;
  font: inherit; font-size: 15px; font-weight: 600; letter-spacing: -0.45px; cursor: pointer;
}
#booking-request-modal .booking-modal-submit:hover { background: #166030; }
@media (max-width: 600px) {
  #booking-request-modal .booking-modal-card { padding: 28px 20px; }
}

/* ---------- 플래너: 일정짜기 화면 (상단 바 + 좌우 패널) ---------- */
@media (max-width: 991px) { .planner-settings-bar .settings-sep, .planner-settings-bar .dep-value { display: none; } }
/* R3: 모바일 설정 바 — 라벨이 한 글자씩 줄바꿈되던 문제, 한 줄 유지 + 가로 스크롤 */
@media (max-width: 991px) {
  .planner-page-container .planner-settings-bar { justify-content: flex-start; gap: 16px; overflow-x: auto; scrollbar-width: none; }
  .planner-page-container .planner-settings-bar::-webkit-scrollbar { display: none; }
  .planner-page-container .planner-settings-bar * { white-space: nowrap; }
  .planner-page-container .planner-settings-bar .settings-group, .planner-page-container .planner-settings-bar .settings-item { flex-shrink: 0; }
}
@media (min-width: 992px) {
  /* 지도는 풀페이지: 공통 헤더·푸터는 숨기고(planner.php) 상단 바(56px) 아래를 뷰포트 높이로 채움. (피그마 목업의 815px 고정값 → 퍼블 이후 풀화면)
     하한 600px, 패널은 화면이 낮으면 줄어듦(아래 float 규칙: 최대 554px, 위 147px·아래 24px 여백) → 노트북 화면에서도 첫 화면에 잘리지 않음 */
  .planner-page-container { height: max(600px, calc(100vh - 56px)); font-family: 'Pretendard', 'Pretendard Variable', -apple-system, sans-serif; }
  .planner-page-container #full-screen-map { height: 100% !important; }
  .planner-page-container .planner-settings-bar {
    top: 25px; left: 50%; right: auto; transform: translateX(-50%);
    width: 1440px; max-width: calc(100% - 48px); height: 82px; padding: 15px 40px;
    background: #fff; border: 0; border-radius: 8px; box-shadow: 0 4px 2px rgba(0, 0, 0, 0.05);
    backdrop-filter: none; -webkit-backdrop-filter: none;
  }
  /* 피그마 4482:82482 — 출발일 | 인원 | 총 예상 금액 버튼행, 구분선 포함 6항목 justify-between(간격 45.2) — 날짜가 길어지면 간격만 줄어듦 */
  .planner-page-container .planner-settings-bar { justify-content: space-between; }
  .planner-page-container .settings-sep { display: block; flex-shrink: 0; width: 1px; height: 21px; background: rgba(0, 0, 0, 0.15); }
  .planner-page-container .settings-group { gap: 0; white-space: nowrap; flex-shrink: 0; }
  .planner-page-container .settings-group * { white-space: nowrap; }
  .planner-page-container .planner-settings-bar > .settings-group:first-child { display: contents; }
  .planner-page-container .settings-group:last-child { gap: 12px !important; }
  .planner-page-container .settings-item { gap: 12px; position: relative; flex-shrink: 0; }
  .planner-page-container .settings-sep + .settings-item { gap: 20px; }
  .planner-page-container .settings-label { font-size: 18px; font-weight: 500; line-height: normal; letter-spacing: -0.54px; color: #000; text-transform: none; }
  .planner-page-container .settings-label i, .planner-page-container .settings-label svg { display: none; }
  /* 출발일: 피그마는 "출발일 ▾" 트리거 — 날짜 입력은 투명하게 덮어 클릭 시 달력(showPicker) */
  .planner-page-container .settings-item:first-child { cursor: pointer; }
  .planner-page-container .settings-label .dep-value:empty { display: none; }
  .planner-page-container .settings-label:has(.dep-value:not(:empty)) .dep-text { display: none; }
  .planner-page-container .settings-item:first-child .settings-label::after {
    content: ''; width: 14px; height: 8px; margin: -1px -1px -1px 7px; flex-shrink: 0; /* R3: 피그마 12x6 벡터 + 선 2 오버플로(inset -16.67%/-8.33%) — 잘림 방지 */
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8' fill='none'%3E%3Cpath d='M1 1l6 6 6-6' stroke='%23000' stroke-opacity='.5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 14px 8px no-repeat;
  }
  .planner-page-container .settings-input-date { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; border: 0; padding: 0; }
  .planner-page-container .people-counter-wrapper { gap: 20px; padding: 0; background: none; border: 0; }
  .planner-page-container .people-counter-wrapper > div[style] { display: none; }
  .planner-page-container .counter-sub { gap: 6.571px; font-size: 16px; font-weight: 400; line-height: normal; letter-spacing: -0.48px; color: #000; }
  .planner-page-container .counter-sub > span:first-child { margin-right: -0.571px; }
  .planner-page-container .counter-btn {
    width: 23px; height: 23px; padding: 0; border-radius: 50%; border: 0.821px solid rgba(0, 0, 0, 0.5); background: #fff center / 5.78px 5.78px no-repeat;
    font-size: 0; color: transparent; flex-shrink: 0;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 5.78 5.78'%3E%3Cpath d='M0 2.16h5.78v1.46H0z'/%3E%3C/svg%3E");
  }
  .planner-page-container .counter-btn[id$='-inc'] { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 5.78 5.78'%3E%3Cpath d='M0 2.16h5.78v1.46H0z'/%3E%3Cpath d='M2.16 0h1.46v5.78H2.16z'/%3E%3C/svg%3E"); }
  .planner-page-container .counter-btn.is-min { border-color: rgba(0, 0, 0, 0.15); cursor: default;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 5.78 5.78'%3E%3Cpath d='M0 2.16h5.78v1.46H0z' fill-opacity='.15'/%3E%3C/svg%3E"); }
  .planner-page-container .counter-btn:not(.is-min):hover { border-color: #1d783b; background-color: #fff; }
  .planner-page-container .counter-val { min-width: 9px; font-size: 15px; font-weight: 400; line-height: normal; letter-spacing: -0.45px; text-align: center; }
  .planner-page-container .settings-total-price { position: relative; margin-left: 0; padding-left: 0; border-left: 0; gap: 12px; font-size: 18px; font-weight: 500; line-height: normal; letter-spacing: -0.54px; color: #000; }
  .planner-page-container #planner-total-price-val { font-size: 20px; font-weight: 600; line-height: 1.35; letter-spacing: -0.6px; color: #000; }
  .planner-page-container .btn-settings-action {
    height: 52px; width: 120px; justify-content: center; gap: 4.7px; padding: 0 8px; border-radius: 4px;
    font-size: 15px; font-weight: 400; letter-spacing: -0.45px; transform: none;
  }
  .planner-page-container .btn-settings-action svg, .planner-page-container .btn-settings-action i { width: 24px !important; height: 24px !important; flex-shrink: 0; }
  /* 피그마 아이콘 24 박스, 보조 버튼 아이콘 #777 선 1.64 */
  .planner-page-container .btn-settings-action.secondary svg { color: #777; stroke-width: 1.64; }
  .planner-page-container .btn-settings-action.secondary { background: #fff; border: 1px solid rgba(0, 0, 0, 0.15); color: rgba(0, 0, 0, 0.7) !important; }
  .planner-page-container .btn-settings-action.secondary:hover { background: #fafafa; border-color: rgba(0, 0, 0, 0.4); }
  .planner-page-container .btn-settings-action.accent { width: 202.67px; background: #1d783b; color: #fff !important; font-weight: 600; }
  .planner-page-container .btn-settings-action.accent:hover { background: #166030; }

  .planner-page-container .planner-float-left, .planner-page-container .planner-float-right {
    top: 147px; bottom: auto; width: 412px; padding: 19px; background: #fff; border: 1px solid rgba(0, 0, 0, 0.1) !important; /* 피그마 선은 레이아웃 미포함 → 패딩 20-1 */
    border-radius: 8px !important; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; box-sizing: border-box;
  }
  .planner-page-container .planner-float-left { left: max(24px, calc(50% - 720px)); height: min(554px, calc(100% - 171px)); }
  /* 피그마 4482:82544(최신) — 우측 패널 x1268 426x554 (컨테이너 우측보다 14px 바깥) */
  .planner-page-container .planner-float-right { right: max(10px, calc(50% - 734px)); width: 426px; height: min(554px, calc(100% - 171px)); }
  .planner-page-container .planner-float-right .tour-products-list { grid-template-columns: repeat(2, 180px); }
  .planner-page-container .planner-float-left.collapsed { transform: translateX(calc(-100% - max(24px, calc(50vw - 720px)))); }
  .planner-page-container .planner-float-right.collapsed { transform: translateX(calc(100% + max(10px, calc(50vw - 734px)))); }
  .planner-page-container .btn-panel-toggle {
    width: 46px; height: 46px; border: 0 !important; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05) !important; color: #555 !important; background: #fff !important;
  }
  .planner-page-container .btn-panel-toggle svg { width: 20px !important; height: 20px !important; stroke-width: 1.8; }
  .planner-page-container #btn-toggle-left { left: calc(max(24px, calc(50% - 720px)) + 391px); top: 355px; transform: none; }
  /* 피그마 4482:82718은 180° 회전 프레임 — 실제 위치 x1239 y475 (패널 왼쪽 경계에 걸침) */
  .planner-page-container #btn-toggle-right { right: calc(max(24px, calc(50% - 720px)) + 395px); top: 355px; transform: none; }
  .planner-page-container #btn-toggle-left.collapsed { left: 16px; }
  .planner-page-container #btn-toggle-right.collapsed { right: 16px; }
}
.t12-pl-panel-head { margin: 0 0 16px; padding-bottom: 14px; border-bottom: 1px solid rgba(0, 0, 0, 0.1); }
.t12-pl-panel-head.is-right { border-bottom: 0; padding-bottom: 0; }
.t12-pl-panel-title { display: flex; align-items: center; gap: 5px; margin: 0; font-size: 18px; font-weight: 600; letter-spacing: -0.54px; color: #000; line-height: normal; }
.t12-pl-panel-desc { margin: 8px 0 0; font-size: 12px; line-height: normal; letter-spacing: -0.36px; color: rgba(0, 0, 0, 0.4); }
.planner-page-container .float-card { background: none; border: 0; box-shadow: none; padding: 0; border-radius: 0; }
.planner-page-container .right-card-label { font-size: 15px !important; font-weight: 500; color: #111; letter-spacing: -0.45px; text-transform: none; }
.planner-page-container .right-card-label i, .planner-page-container .right-card-label svg { display: none; }
.planner-page-container .trip-title-input { padding: 10px 36px 10px 12px; font-size: 14px; border: 1px solid rgba(0, 0, 0, 0.15); border-radius: 4px; background: #fff; }
.planner-page-container .trip-title-input:focus { border-color: #1d783b; }
.planner-page-container .tour-search-input { padding: 10px 12px 10px 38px; font-size: 14px; border: 1px solid rgba(0, 0, 0, 0.15); border-radius: 4px; background: #fff; }
.planner-page-container .tour-search-input:focus { border-color: #1d783b; }
.planner-page-container .day-tab { border-radius: 999px !important; border: 1px solid rgba(0, 0, 0, 0.15) !important; background: #fff !important; color: #333 !important; font-weight: 500 !important; padding: 6px 14px !important; font-size: 13px !important; }
.planner-page-container .day-tab.active { background: #222 !important; border-color: #222 !important; color: #fff !important; }
.planner-page-container .filter-chip { border-radius: 999px !important; border: 1px solid rgba(0, 0, 0, 0.15) !important; background: #fff !important; color: #333 !important; font-weight: 500 !important; }
.planner-page-container .filter-chip.active { background: #222 !important; border-color: #222 !important; color: #fff !important; }

/* ---------- 플래너: 좌측 패널 내부 (피그마 4482:82477) ---------- */
.planner-page-container .planner-float-left { display: flex; flex-direction: column; gap: 18px; overflow: hidden; }
.planner-page-container .planner-float-left > * { flex-shrink: 0; margin: 0 !important; }
.planner-page-container .planner-float-left .t12-pl-panel-head { padding-bottom: 17px; margin: 0 !important; border-bottom-color: rgba(0, 0, 0, 0.1); }
.t12-pl-field { display: flex; flex-direction: column; gap: 4px; }
.t12-pl-field + .t12-pl-field { gap: 10px; }
.t12-pl-label { font-size: 16px; font-weight: 500; line-height: 1.5; letter-spacing: -0.48px; color: #000; }
.planner-page-container .title-input-wrapper { position: relative; }
.planner-page-container .trip-title-input {
  width: 100%; height: 42.8px; box-sizing: border-box; padding: 10px 40px 10px 14px; border: 1px solid rgba(0, 0, 0, 0.15); border-radius: 5px;
  font-size: 13px; font-weight: 500; line-height: 20.8px; letter-spacing: -0.39px; color: rgba(0, 0, 0, 0.7); background: #fff; box-shadow: none;
}
.planner-page-container .title-edit-icon { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); pointer-events: none; }
.t12-pl-days-row { display: flex; align-items: center; gap: 10px; min-width: 0; }
.planner-page-container .t12-pl-days-row .day-tabs-wrapper { display: flex; min-width: 0; flex: 0 1 auto; overflow-x: auto; margin: 0 !important; padding: 0 !important; border: 0; scrollbar-width: none; }
.planner-page-container .t12-pl-days-row .day-tabs-wrapper::-webkit-scrollbar { display: none; }
.planner-page-container .day-tabs-container { display: flex; gap: 6px; border: 0; padding: 0; }
.planner-page-container .day-tab {
  flex-shrink: 0; height: auto; padding: 8px 12px !important; border-radius: 999px !important; border: 1px solid rgba(0, 0, 0, 0.15) !important;
  background: #fff !important; color: rgba(0, 0, 0, 0.7) !important; font-size: 12px !important; font-weight: 600 !important; line-height: 1.3; letter-spacing: -0.36px; box-shadow: none !important;
}
.planner-page-container .day-tab.active { background: rgba(0, 0, 0, 0.8) !important; border-color: rgba(0, 0, 0, 0.15) !important; color: #fff !important; }
.planner-page-container .day-tab::after { display: none !important; }
.planner-page-container .t12-pl-days-row .duration-counter-box {
  flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; gap: 10px; width: 90px; height: 32px; padding: 0;
  border: 1px solid rgba(0, 0, 0, 0.15); border-radius: 20px; background: #fff; box-shadow: none;
}
.planner-page-container .t12-pl-days-row .btn-counter {
  width: 14px; height: 18px; padding: 0; border: 0 !important; background: none !important; box-shadow: none !important;
  font-size: 15px; font-weight: 600; line-height: 15px; color: #888; cursor: pointer;
}
.planner-page-container .t12-pl-days-row .btn-counter:hover { color: #1d783b; }
.planner-page-container .t12-pl-days-row .duration-display-val { font-size: 15px; font-weight: 500; letter-spacing: -0.45px; color: rgba(0, 0, 0, 0.7); line-height: 19.2px; }

/* 타임라인 */
.planner-page-container .timeline-container {
  position: relative; flex: 1 1 auto !important; min-height: 0; overflow-y: auto; padding: 0 10px 0 14px; margin: 0 8px !important; /* 피그마 래퍼 px8, 레일7+gap7, 스크롤바 gap10 */
}
/* R3: 피그마 상시 노출 4px 스크롤바 — scrollbar-width 가 있으면 Chrome 이 ::-webkit-scrollbar 를 무시(오버레이)하므로 비웹킷에만 */
@supports not selector(::-webkit-scrollbar) { .planner-page-container .timeline-container, .planner-page-container .tour-products-list { scrollbar-width: thin; scrollbar-color: #1d783b #f8f8f8; } }
.planner-page-container .timeline-container::-webkit-scrollbar { width: 4px; }
.planner-page-container .timeline-container::-webkit-scrollbar-track { background: #f8f8f8; border-radius: 52px; }
.planner-page-container .timeline-container::-webkit-scrollbar-thumb { background: #1d783b; border-radius: 100px; }
.planner-page-container .timeline-line { left: 3px; top: 0; width: 1px; background: #ddd; }
.planner-page-container .timeline-item { padding-left: 0; margin-bottom: 14px; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.planner-page-container .timeline-marker {
  left: -14px; top: 9px; width: 7px; height: 7px; border: 0; box-shadow: none; background: #1d783b;
}
.planner-page-container .timeline-item:hover .timeline-marker { transform: none; background: #1d783b; }
.tl-time-wrap { display: block; }
.planner-page-container .timeline-time-select {
  width: 100px; height: 28px; padding: 6px 28px 6px 12px; border: 1px solid rgba(0, 0, 0, 0.15); border-radius: 4px; text-align: left; text-align-last: left;
  font-size: 12px; font-weight: 500; line-height: 1.2; letter-spacing: -0.36px; color: rgba(0, 0, 0, 0.7); box-shadow: none;
  appearance: none; -webkit-appearance: none;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10' fill='none'%3E%3Cpath d='M2 3.5 5 6.5l3-3' stroke='%23555' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 12px center;
}
.planner-page-container .timeline-content-card {
  width: 100%; box-sizing: border-box; padding: 12px; border: 1px solid rgba(0, 0, 0, 0.1); border-radius: 8px; background: #fff; display: block;
}
.planner-page-container .timeline-details { display: flex; flex-direction: column; gap: 10px; }
.planner-page-container .js-opt-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.planner-page-container .js-opt-head-main { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; flex: 1; min-width: 0; }
.planner-page-container .js-opt-head-main.is-toggle { cursor: pointer; }
.planner-page-container .timeline-title { margin: 0; font-size: 14px; font-weight: 600; line-height: 1.2; letter-spacing: -0.42px; color: #000; }
.tl-badges { display: flex; flex-wrap: wrap; gap: 6px; }
.planner-page-container .tl-badges > span {
  margin: 0 !important; display: inline-flex; align-items: center; padding: 6px 8px; border: 0 !important; border-radius: 4px;
  background: rgba(0, 0, 0, 0.04) !important; color: #555 !important; font-size: 12px !important; font-weight: 500 !important; line-height: 1.2; letter-spacing: -0.36px;
}
.planner-page-container .tl-badges > .badge-opt-done { background: #ecf8f0 !important; color: #1d783b !important; }
.planner-page-container .tl-badges > .badge-opt-pending { background: #fff2e6 !important; color: #ff7904 !important; }
.planner-page-container .btn-delete-event {
  flex-shrink: 0; width: 17px; height: 17px; padding: 0; border: 0; background: none; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; opacity: 1;
}
.planner-page-container .btn-delete-event:hover svg path { stroke: #e53935; }
.tl-price { margin: 0; font-size: 18px; font-weight: 600; line-height: 1.4; letter-spacing: -0.54px; color: #1d783b; }
.planner-page-container .opt-summary-line { margin: 0; font-size: 12px; font-weight: 400; line-height: 1.35; letter-spacing: -0.36px; color: rgba(0, 0, 0, 0.5); }
.planner-page-container .timeline-card-memo-input {
  width: 100%; min-height: 48px; margin: 0; padding: 8px 10px; border: 1px solid rgba(0, 0, 0, 0.15); border-radius: 4px; background: #fff;
  font: inherit; font-size: 12px; line-height: 1.4; color: #333; resize: vertical; box-sizing: border-box; outline: none;
}
.planner-page-container .timeline-card-memo-input:focus { border-color: #1d783b; }
.planner-page-container .timeline-map-badge { display: inline-flex; align-items: center; width: fit-content; padding: 4px 8px; border-radius: 4px; background: #f8f8f8; color: rgba(0, 0, 0, 0.6); font-size: 11px; font-weight: 500; }
.planner-page-container .timeline-route-info {
  margin: -4px 0 14px; padding: 6px 12px; border: 0; border-left: 1px solid #1d783b; border-radius: 0 !important; background: #f8f8f8;
  font-size: 12px; font-weight: 500; line-height: 1.2; letter-spacing: -0.36px; color: rgba(0, 0, 0, 0.7);
}
.planner-page-container .timeline-details > .timeline-route-info { margin: 0; align-self: flex-start; }
/* 옵션 패널 */
.planner-page-container .opt-panel { margin: 0; padding: 12px; border: 1px solid rgba(0, 0, 0, 0.1); border-radius: 8px; background: #fff; gap: 10px; }
.planner-page-container .opt-field { gap: 6px; font-size: 14px; font-weight: 500; letter-spacing: -0.42px; color: #000; }
.planner-page-container .opt-field select { appearance: none; -webkit-appearance: none; padding-right: 28px !important; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10' fill='none'%3E%3Cpath d='M2 3.5 5 6.5l3-3' stroke='%23555' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 12px center !important; }
.planner-page-container .opt-field select, .planner-page-container .opt-field input[type="number"] {
  height: 28px; padding: 0 12px; border: 1px solid rgba(0, 0, 0, 0.15); border-radius: 4px; background: #fff; font-size: 12px; font-weight: 500; color: rgba(0, 0, 0, 0.7);
}
.planner-page-container .opt-field-row { gap: 6px; }
.planner-page-container .opt-check { font-size: 12px; color: #333; }
.planner-page-container .opt-hint { font-size: 12px; color: rgba(0, 0, 0, 0.5); }
.planner-page-container .opt-preview-row { display: flex; justify-content: space-between; align-items: center; font-size: 12px; color: #555; }
.planner-page-container .opt-preview-row strong { color: #1d783b; font-size: 14px; }
.planner-page-container .btn-opt-confirm {
  width: 100%; padding: 10px 8px; border: 0; border-radius: 4px; background: #1d783b; color: #fff; font-size: 14px; font-weight: 600; letter-spacing: -0.42px; cursor: pointer;
}
.planner-page-container .btn-opt-confirm:hover { background: #166030; }
.planner-page-container .timeline-empty-state { padding: 24px 8px !important; text-align: center; font-size: 13px; color: rgba(0, 0, 0, 0.5); }

/* 오늘의 일정 비용 */
.planner-page-container .timeline-total-cost {
  display: flex; align-items: center; justify-content: space-between; margin: 0 !important; padding: 16px 14px; border: 0; border-radius: 5px; background: #ecf8f0;
}
.tl-total-label { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 500; line-height: 20.8px; letter-spacing: -0.39px; color: #000; }
.tl-total-value { font-size: 20px; font-weight: 600; line-height: 1.4; letter-spacing: -0.6px; color: #1d783b; }

/* ---------- 플래너: 우측 상품 카드 (피그마 4482:82575) ---------- */
.planner-page-container .planner-float-right { display: flex; flex-direction: column; gap: 0; overflow: hidden; }
.planner-page-container .planner-float-right .t12-pl-panel-head { margin-bottom: 22px; }
.planner-page-container .planner-float-right .tour-search-wrapper { position: relative; margin: 0 0 22px !important; }
.planner-page-container .tour-search-input {
  height: 42.8px; box-sizing: border-box; padding: 10px 14px 10px 35px; border: 1px solid rgba(0, 0, 0, 0.15); border-radius: 5px;
  font-size: 14px; font-weight: 500; line-height: 20.8px; letter-spacing: -0.42px; color: #000;
}
.planner-page-container .tour-search-input::placeholder { color: rgba(0, 0, 0, 0.7); opacity: 1; }
/* 피그마 4482:82556 — 돋보기 16 박스(#777, 선 1.6) */
.planner-page-container .tour-search-icon { left: 14px !important; width: 16px !important; height: 16px !important; color: #777; stroke-width: 2.4; }
.planner-page-container .filter-chips-container { gap: 6px !important; margin: 0 0 16px !important; }
.planner-page-container .filter-chip {
  padding: 8px 12px !important; font-size: 12px !important; font-weight: 600 !important; line-height: 1.3; letter-spacing: -0.36px;
  background: #fff !important; color: rgba(0, 0, 0, 0.7) !important; border: 1px solid rgba(0, 0, 0, 0.15) !important; border-radius: 999px !important;
}
.planner-page-container .filter-chip i, .planner-page-container .filter-chip svg { display: none !important; }
.planner-page-container .filter-chip.active { background: rgba(0, 0, 0, 0.8) !important; border-color: rgba(0, 0, 0, 0.15) !important; color: #fff !important; }
/* M: 피그마 4482:82564 칩 h32(선은 안쪽) = 텍스트 16 + py8 → 선 1 포함 패딩 7/11 */
.planner-page-container .filter-chip { padding: 7px 11px !important; line-height: 16px; }
/* M: 피그마 4482:82544 우측 패널 콘텐츠 x21·폭 384 → 선 1 + 패딩 20 */
@media (min-width: 992px) { .planner-page-container .planner-float-right { padding: 20px; } }
.planner-page-container .tour-products-list {
  flex: 1 1 auto; min-height: 0; overflow-y: auto; padding-right: 10px;
  display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; align-content: start;
}
.planner-page-container .tour-products-list::-webkit-scrollbar { width: 4px; }
.planner-page-container .tour-products-list::-webkit-scrollbar-track { background: #f8f8f8; border-radius: 52px; }
.planner-page-container .tour-products-list::-webkit-scrollbar-thumb { background: #1d783b; border-radius: 100px; }
.planner-page-container .tour-card {
  position: relative; display: flex; flex-direction: column; gap: 12px; padding: 0; margin: 0; background: none !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; transform: none !important;
}
/* 찜 버튼(피그마 4482:82579): 34x34 left146 top0, 아이콘 22 회색 반투명 채움 + 흰 선 */
.planner-page-container .tour-card .fb-wish-card-btn {
  top: 0; right: 0; width: 34px; height: 34px; border: 0; border-radius: 0; background: transparent; box-shadow: none; color: #fff;
  filter: drop-shadow(0 1px 1.5px rgba(0, 0, 0, 0.12));
}
.planner-page-container .tour-card .fb-wish-card-btn svg { width: 22px; height: 22px; fill: rgba(85, 85, 85, 0.5) !important; stroke: #fff; stroke-width: 1.64px; }
.planner-page-container .tour-card .fb-wish-card-btn:hover { background: transparent; color: #fff; transform: none; }
.planner-page-container .tour-card .fb-wish-card-btn[data-wished="1"] svg { fill: #1d783b !important; stroke: #fff !important; }
.planner-page-container .tour-image-link { display: block; text-decoration: none; color: inherit; }
.planner-page-container .tour-image-container { position: relative; height: 115px; border-radius: 8px; overflow: hidden; background: #f2f2f2; }
.planner-page-container .tour-image { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s; }
.planner-page-container .tour-card:hover .tour-image { transform: scale(1.04); }
.planner-page-container .tour-badge { top: 8px; left: 8px; padding: 3px 6px; border-radius: 4px; font-size: 10px; font-weight: 600; background: #1d783b; color: #fff; box-shadow: none; }
.planner-page-container .tour-content { display: flex; flex-direction: column; gap: 5px; padding: 0; }
.planner-page-container .tour-meta { display: flex; align-items: center; justify-content: space-between; gap: 6px; margin: 0; }
.planner-page-container .tour-category-tag {
  display: inline-flex; align-items: center; padding: 5px 8px; border: 1px solid rgba(0, 0, 0, 0.1); border-radius: 4px; background: #fff !important;
  font-size: 11px; font-weight: 400; line-height: 1.3; letter-spacing: -0.33px; color: rgba(0, 0, 0, 0.7) !important; white-space: nowrap;
}
.planner-page-container .tour-rating { display: inline-flex; align-items: center; gap: 4px; font-size: 10px; font-weight: 500; letter-spacing: -0.3px; color: #1d783b; }
.planner-page-container .tour-name-link { text-decoration: none; color: inherit; }
.planner-page-container .tour-name {
  margin: 0; font-size: 14px; font-weight: 400; line-height: 1.35; letter-spacing: -0.42px; color: #000;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
/* M: planner.php 인라인 .tour-name{font-size:.8rem!important}가 이겨 12.8px로 표시되던 것 → 피그마 4482:82603 14px(h19) */
.planner-page-container .tour-name { font-size: 14px !important; }
/* M: 피그마 4482:82587 태그 h24(선 안쪽) = 텍스트 14 + py5 → 선 1 포함 패딩 4/7 */
.planner-page-container .tour-category-tag { padding: 4px 7px; }
.planner-page-container .tour-footer { display: flex; align-items: flex-end; justify-content: space-between; gap: 6px; margin-top: 5px; padding: 0; border: 0; }
.planner-page-container .tour-price { display: flex; flex-direction: column; gap: 4px; line-height: 1.35; min-width: 0; }
.planner-page-container .tour-price-label { font-size: 13px; font-weight: 400; letter-spacing: -0.39px; color: rgba(0, 0, 0, 0.5); }
.planner-page-container .tour-price-value { font-size: 14px; font-weight: 600; letter-spacing: -0.42px; color: #000; white-space: nowrap; }
.planner-page-container .btn-add-tour, #full-screen-map .btn-map-popup-add {
  flex-shrink: 0; width: auto; height: auto; padding: 5px 8px; border: 0 !important; border-radius: 4px !important;
  background: #ecf8f0; color: #1d783b; font-size: 11px; font-weight: 400; line-height: 1.3; letter-spacing: -0.33px; cursor: pointer; box-shadow: none; transform: none;
}
.planner-page-container .btn-add-tour:hover, #full-screen-map .btn-map-popup-add:hover { background: #1d783b; color: #fff; }
.planner-page-container .btn-add-tour.added-toggle, #full-screen-map .btn-map-popup-add.added-toggle { background: rgba(255, 0, 0, 0.1) !important; color: red !important; }
.planner-page-container .btn-add-tour.added-toggle:hover, #full-screen-map .btn-map-popup-add.added-toggle:hover { background: red !important; color: #fff !important; }

/* ---------- 플래너: 지도 마커 팝업 (피그마 4482:82240) ---------- */
.map-popup-card { display: flex; flex-direction: column; gap: 8px; width: 291px; padding: 12px; box-sizing: border-box; background: #fff; font-family: 'Pretendard', 'Pretendard Variable', sans-serif; }
.map-popup-card-top { display: flex; align-items: center; min-height: 23px; padding-right: 24px; }
.map-popup-tag { display: inline-flex; align-items: center; padding: 5px 10px; border-radius: 27px; background: #e8f2eb; color: #1d783b; font-size: 10px; font-weight: 500; letter-spacing: -0.3px; line-height: normal; }
.map-popup-card-img-container { height: 140px; border-radius: 8px; overflow: hidden; background: #f2f2f2; }
.map-popup-card-img-container img { width: 100%; height: 100%; object-fit: cover; display: block; }
.map-popup-card-body { display: flex; flex-direction: column; gap: 4px; padding-top: 4px; }
.map-popup-card-meta { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.map-popup-region { font-size: 10px; font-weight: 500; letter-spacing: -0.3px; color: #1d783b; }
.map-popup-rating { display: inline-flex; align-items: center; gap: 4px; font-size: 10px; font-weight: 500; color: #1d783b; }
.map-popup-card-title { margin: 0; font-size: 15px; font-weight: 600; line-height: 1.35; letter-spacing: -0.45px; color: #000; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.map-popup-card-desc { margin: 0; font-size: 10px; line-height: 1.35; letter-spacing: -0.3px; color: rgba(0, 0, 0, 0.5); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.map-popup-card-desc:empty { display: none; }
.map-popup-card-footer { display: flex; align-items: flex-end; justify-content: space-between; gap: 8px; margin-top: 8px; }
.map-popup-price { display: flex; flex-direction: column; gap: 2px; line-height: 1.35; }
.map-popup-price-label { font-size: 11px; color: rgba(0, 0, 0, 0.5); }
.map-popup-card-price { font-size: 14px; font-weight: 600; color: #000; }
.map-popup-actions { display: flex; align-items: center; gap: 8px; }
.map-popup-detail { font-size: 11px; color: rgba(0, 0, 0, 0.6) !important; text-decoration: underline; }
.planner-page-container #btn-add-day-tab[hidden] { display: none !important; }
/* 피그마 4482:82240 보정 — 팝업 p12, 상단(태그행+이미지) gap8, 이미지→본문 12, 지역행→제목 12, 제목→설명 4, 그림자·꼬리 없음, 닫기 X 12(#808080) */
.custom-leaflet-popup .map-popup-card { gap: 8px; padding: 12px; }
.custom-leaflet-popup .map-popup-card-top { min-height: 0; }
.custom-leaflet-popup .map-popup-card-body { padding: 0; margin-top: 4px; gap: 0; }
.custom-leaflet-popup .map-popup-card-meta { margin: 0 0 12px; line-height: normal; }
.custom-leaflet-popup .map-popup-region, .custom-leaflet-popup .map-popup-rating { line-height: normal; }
.custom-leaflet-popup .map-popup-card-title { font-weight: 600; }
.custom-leaflet-popup .map-popup-card-desc { margin: 4px 0 0; }
/* 비피그마(기능 유지): 가격·상세보기·추가 — 같은 토큰 */
.custom-leaflet-popup .map-popup-card-footer { margin-top: 12px; padding-top: 12px; border-top: 1px solid rgba(0, 0, 0, 0.1); align-items: flex-end; }
.custom-leaflet-popup .map-popup-price-label { font-size: 13px; letter-spacing: -0.39px; }
.custom-leaflet-popup .map-popup-card-price { font-size: 14px; letter-spacing: -0.42px; }
#full-screen-map .btn-map-popup-add:not(.added-toggle) { color: #1d783b !important; }
#full-screen-map .btn-map-popup-add:not(.added-toggle):hover { color: #fff !important; }

/* ===== A13 검수 보정 (공지·이벤트·FAQ·약관·1:1문의, 피그마 get_design_context 기준) — 페이지 루트 스코프 ===== */
@media (min-width: 901px) {
/* 목록 상하 라인: Line 41/42 stroke #000 op .15, 라인은 프레임 위쪽 1px에 그려짐 → 헤드와 80 / 카드와 25 / 하단 24+1 */
.notice-root .t12-board-body:not(.is-empty),
.event-root .t12-board-body:not(.is-empty) {
  margin-top: 79px;
  padding: 25px 0 24px;
  border-top-color: rgba(0, 0, 0, 0.15);
  border-bottom-color: rgba(0, 0, 0, 0.15);
}
/* 공지 카드(4482:91278 등): items-start + 텍스트열 pt 32.5 — 이벤트 카드는 items-center 유지 */
.notice-root .t12-card { align-items: flex-start; }
.notice-root .t12-card-body { padding-top: 32.5px; }
/* 제목: 피그마는 수동 줄바꿈(nowrap) — 한 줄 제목 중 가장 긴 것(349px)이 한 줄로 유지되도록 */
.notice-root .t12-card-title,
.event-root .t12-card-title { max-width: 350px; }
/* 이벤트 배지 박스 h 25 */
.event-root .t12-card-info > div:first-child { height: 25px; }
}
/* 자세히 보기: py 8 + Medium 14 lh normal = 33 */
.notice-root .t12-card-more,
.event-root .t12-card-more { line-height: 17px; } /* V7: 피그마 Medium 14 lh normal 텍스트 박스 h17 → 버튼 33 (크롬 normal=16) */
/* 이벤트 배지 박스 */
.event-root .t12-card-info > div:first-child { display: flex; }
/* 페이지네이션: 끝 페이지에서도 꺾쇠는 #9e9e9e 그대로 */
.notice-root .t12-pager-arrow.is-disabled,
.event-root .t12-pager-arrow.is-disabled { opacity: 1; }
/* 빈 상태 설명: Noto Sans KR Regular 14 #6b7280 */
.notice-root .t12-empty-desc,
.event-root .t12-empty-desc { font-family: 'Noto Sans KR', 'Pretendard', 'Pretendard Variable', sans-serif; font-weight: 400; line-height: 17px; }

/* 상세: 목록으로 버튼 letter-spacing 지정 없음(0) */
.notice-detail-root .t12-btn-list,
.event-detail-root .t12-btn-list { letter-spacing: 0; }
/* 이벤트 상세 헤드(3451:78092): kicker Medium 14 / ls -0.42, 기간 rgba(0,0,0,.5) */
.event-detail-root .t12-detail-kicker { font-size: 14px; letter-spacing: -0.42px; line-height: 17px; } /* V7: 피그마 텍스트 h17(크롬 normal=16) → 제목 y243·헤드 145 */
.event-detail-root .t12-detail-head.is-event .t12-detail-meta-item { color: rgba(0, 0, 0, 0.5); }

/* 약관 본문: 목록 항목은 "- " 접두 텍스트(불릿·들여쓰기 없음), 강조도 본문과 같은 Regular #555, 서론 → 첫 조항 24 */
.ft-terms-root .t12-terms-body ul,
.ft-terms-root .t12-terms-body ol { list-style: none; padding-left: 0; }
.ft-terms-root .t12-terms-body ul > li::before,
.ft-terms-root .t12-terms-body ol > li::before { content: "- "; }
.ft-terms-root .t12-terms-body strong,
.ft-terms-root .t12-terms-body b { color: inherit; font-weight: inherit; }
.ft-terms-root .t12-terms-body > p:first-child + h2,
.ft-terms-root .t12-terms-body > p:first-child + h3 { margin-top: 24px; }
/* V7: 약관 본문 줄 — 피그마는 12px lh 1.6 줄을 19px 단위로 배치(3457:80752 블록 h93 = 24+4+19x3+4x2). 19.2면 조항마다 0.2~0.6px 누적돼 문서 끝이 +10px 밀림 */
.ft-terms-root .t12-terms-body { line-height: 19px; }
/* V7: 마지막 줄 아래 여백 없음(문서 카드 하단 패딩 24만) */
.ft-terms-root .t12-terms-body > :last-child,
.ft-terms-root .t12-terms-body > :last-child > li:last-child,
.ft-terms-root .t12-terms-body > :last-child > :last-child { margin-bottom: 0; }
/* R2: 번호 제목(3457:80825) — ol 마커처럼 "1."을 24px 여백 안 오른쪽 정렬(글자와 간격 ≈7), 제목 글자는 x24 */
.ft-terms-root .t12-terms-body .t12-terms-numh { position: relative; padding-left: 24px; }
.ft-terms-root .t12-terms-body .t12-terms-num { position: absolute; right: calc(100% - 16px); top: 0; white-space: nowrap; }
/* FAQ 검색(3457:80665): px 16 py 12 — 버튼 우측 여백 16 */
.faq-root .t12-faq-search { padding: 12px 16px; }
/* ===== /A13 ===== */
