/* ================================
   TrendKultur Explore Korea — 관광정보 섹션 스타일
   색상/폰트를 변경하려면 :root 안의 값만 수정하면 됩니다.
   ================================ */
:root{
  --tk-paper:#EFF1EE;
  --tk-card:#FFFFFF;
  --tk-ink:#1B2224;
  --tk-ink-soft:#5B6461;
  --tk-hairline:#D8DCD6;
  --tk-blue:#2B5F86;
  --tk-red:#A93226;
  --tk-ochre:#B9861E;
  --tk-black:#1B2224;
}

.tk-explore-wrap{ font-family:'Inter',sans-serif; color:var(--tk-ink); background:var(--tk-paper); }
.tk-display{ font-family:'Space Grotesk',sans-serif; }

/* 화면에는 안 보이지만 검색엔진/스크린리더에는 h1으로 인식되게 */
.tk-sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* Breadcrumb */
.tk-breadcrumb{ max-width:1200px; margin:0 auto; padding:16px 28px 0; font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--tk-ink-soft); }
.tk-breadcrumb a{ color:var(--tk-ink-soft); text-decoration:none; }
.tk-breadcrumb a:hover{ color:var(--tk-ink); text-decoration:underline; }
.tk-breadcrumb .tk-crumb-sep{ margin:0 6px; }
.tk-breadcrumb .tk-crumb-current{ color:var(--tk-ink); font-weight:600; display:inline-block; max-width:320px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; vertical-align:bottom; }

@media(max-width:860px){
  .tk-breadcrumb .tk-crumb-current{ max-width:160px; }
}

/* Hero */
.tk-hero{ max-width:1200px; margin:0 auto; padding:56px 28px 32px; }
.tk-hero-eyebrow{ font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--tk-ink-soft); margin-bottom:14px; }
.tk-hero h1{ font-weight:600; font-size:36px; line-height:1.15; letter-spacing:-0.02em; max-width:640px; margin-bottom:28px; }

.tk-search{ display:flex; border:1px solid var(--tk-ink); background:var(--tk-card); max-width:640px; }
.tk-search input{ flex:1; border:none; outline:none; padding:14px 16px; font-size:15px; background:transparent; }
.tk-search button{ background:var(--tk-ink); color:var(--tk-paper); border:none; padding:0 22px; font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:14px; cursor:pointer; }

.tk-stat-strip{ display:flex; gap:0; margin-top:32px; border-top:1px solid var(--tk-hairline); max-width:640px; }
.tk-stat{ flex:1; padding:14px 18px 0; border-right:1px solid var(--tk-hairline); }
.tk-stat:last-child{ border-right:none; }
.tk-num{ font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:20px; }
.tk-label{ font-family:'IBM Plex Mono',monospace; font-size:10px; color:var(--tk-ink-soft); text-transform:uppercase; letter-spacing:0.06em; margin-top:2px; }

/* Category chips */
.tk-cat-bar{ max-width:1200px; margin:0 auto; padding:0 28px 20px; display:flex; gap:10px; flex-wrap:wrap; }
.tk-chip{ display:flex; align-items:center; gap:7px; border:1px solid var(--tk-hairline); background:var(--tk-card); padding:8px 14px; font-size:13px; font-weight:500; text-decoration:none; color:var(--tk-ink); }
.tk-chip .tk-dot{ width:8px; height:8px; border-radius:50%; }
.tk-chip.on{ border-color:var(--tk-ink); background:var(--tk-ink); color:var(--tk-paper); }
.tk-chip.on .tk-dot{ background:var(--tk-paper) !important; }

.tk-dot-blue{ background:var(--tk-blue); }
.tk-dot-red{ background:var(--tk-red); }
.tk-dot-ochre{ background:var(--tk-ochre); }
.tk-dot-black{ background:var(--tk-black); }
.tk-dot-white{ background:#fff; border:1.5px solid var(--tk-ink); }

/* Area chips (지역 필터, 카테고리 바 바로 아래에 위치) */
.tk-area-bar{ max-width:1200px; margin:0 auto; padding:0 28px 24px; display:flex; gap:8px; flex-wrap:wrap; }
.tk-area-bar .tk-chip{ padding:6px 12px; font-size:12.5px; color:var(--tk-ink-soft); border-color:var(--tk-hairline); }
.tk-area-bar .tk-chip.on{ border-color:var(--tk-ink); background:var(--tk-ink); color:var(--tk-paper); }

/* Region group cards (2차 필터 — 충청/경상/전라 등 도 단위 그룹) */
.tk-region-filter{ margin-bottom:4px; }
.tk-region-grid{ max-width:1200px; margin:0 auto; padding:0 28px 24px; display:flex; flex-wrap:wrap; gap:8px; }
.tk-region-card{ display:block; flex:0 1 220px; max-width:220px; border:1px solid var(--tk-hairline); background:var(--tk-card); padding:10px 14px; text-decoration:none; transition:border-color .15s ease, background .15s ease; }
.tk-region-card:hover{ border-color:var(--tk-ink-soft); }
.tk-region-card.on{ border-color:var(--tk-ink); background:var(--tk-ink); }
.tk-region-card.on .tk-region-card-title,
.tk-region-card.on .tk-region-card-sub{ color:var(--tk-paper); }
.tk-region-card-title{ display:block; font-family:'Space Grotesk',sans-serif; font-size:13px; font-weight:600; color:var(--tk-ink); }
.tk-region-card-sub{ display:block; font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--tk-ink-soft); margin-top:3px; letter-spacing:0.02em; }
.tk-toggle-regions-checkbox{ display:none; }
.tk-toggle-regions-label{ display:none; }

/* Grid */
.tk-grid-wrap{ max-width:1200px; margin:0 auto; padding:12px 28px 60px; }
.tk-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; background:transparent; border:none; }
.tk-card{ background:var(--tk-card); text-decoration:none; color:var(--tk-ink); display:flex; flex-direction:column; border:1px solid var(--tk-hairline); border-radius:14px; overflow:hidden; box-shadow:0 1px 4px rgba(27,34,36,0.06); transition:box-shadow .15s ease, transform .15s ease; }
.tk-card:hover{ box-shadow:0 6px 18px rgba(27,34,36,0.12); transform:translateY(-2px); }
.tk-card-photo{ height:170px; background-color:#DDE3DE; background-size:cover; background-position:center; position:relative; display:flex; align-items:flex-end; padding:10px; border-radius:14px 14px 0 0; }
.tk-card-tag{ font-family:'IBM Plex Mono',monospace; font-size:10px; color:#fff; background:rgba(27,34,36,0.72); padding:3px 7px; letter-spacing:0.04em; }
.tk-card-body{ padding:18px 20px 22px; }
.tk-cat-row{ display:flex; align-items:center; gap:6px; margin-bottom:8px; }
.tk-cat-row span:last-child{ font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--tk-ink-soft); text-transform:uppercase; letter-spacing:0.05em; }
.tk-card h3{ font-family:'Space Grotesk',sans-serif; font-size:16.5px; font-weight:600; margin:0 0 6px; letter-spacing:-0.01em; }
.tk-card p{ font-size:12.5px; color:var(--tk-ink-soft); line-height:1.5; margin:0; }

.tk-empty{ padding:60px 0; text-align:center; color:var(--tk-ink-soft); }
.tk-pagination{ margin-top:32px; display:flex; gap:8px; justify-content:center; }
.tk-pagination a, .tk-pagination span{ font-family:'IBM Plex Mono',monospace; font-size:13px; padding:6px 12px; border:1px solid var(--tk-hairline); text-decoration:none; color:var(--tk-ink); }
.tk-pagination .current{ background:var(--tk-ink); color:var(--tk-paper); }

/* Detail page */
.tk-detail-wrap{ max-width:1200px; margin:0 auto; padding:32px 28px 80px; }
.tk-detail-hero{ height:320px; background-color:#9FB0A6; background-size:cover; background-position:center; display:flex; flex-direction:column; justify-content:flex-end; padding:24px; position:relative; }
.tk-detail-hero::before{ content:''; position:absolute; inset:0; background:linear-gradient(0deg, rgba(27,34,36,0.65), transparent 60%); }
.tk-badge{ font-family:'IBM Plex Mono',monospace; font-size:11px; color:#fff; background:rgba(27,34,36,0.75); padding:5px 10px; letter-spacing:0.05em; position:absolute; top:24px; left:24px; z-index:1; width:fit-content; }
.tk-detail-hero h1{ color:#fff; font-size:32px; font-weight:600; letter-spacing:-0.02em; text-shadow:0 2px 12px rgba(0,0,0,0.3); position:relative; z-index:1; margin:0; }

.tk-detail-grid{ display:grid; grid-template-columns:1.6fr 1fr; border:1px solid var(--tk-hairline); border-top:none; }
.tk-detail-main{ padding:32px; border-right:1px solid var(--tk-hairline); }
.tk-eyebrow{ font-family:'IBM Plex Mono',monospace; font-size:14px; font-weight:600; color:var(--tk-ink-soft); text-transform:uppercase; letter-spacing:0.08em; margin:0 0 12px; }
.tk-detail-main p{ font-size:16px; line-height:1.8; color:#3A4240; margin:0 0 24px; max-width:580px; }
.tk-gallery{ display:flex; gap:6px; margin-top:8px; margin-bottom:16px; }
.tk-gallery div{ flex:1; height:100px; background-size:cover; background-position:center; background-color:#DDE3DE; }
.tk-copyright-note{ font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--tk-ink-soft) !important; }

.tk-spec-sheet{ background:var(--tk-card); padding:28px; }
.tk-spec-row{ display:flex; justify-content:space-between; padding:10px 0; border-bottom:1px dashed var(--tk-hairline); font-size:13px; gap:12px; }
.tk-spec-row .tk-k{ font-family:'IBM Plex Mono',monospace; color:var(--tk-ink-soft); font-size:11px; text-transform:uppercase; letter-spacing:0.04em; flex-shrink:0; white-space:nowrap; }
.tk-spec-row .tk-v{ font-family:'IBM Plex Mono',monospace; text-align:right; word-break:break-word; line-height:1.6; }
.tk-spec-row .tk-v-tbd{ color:var(--tk-ink-soft); font-style:italic; opacity:0.75; }
.tk-spec-row .tk-v a{ color:var(--tk-blue); }
.tk-map-embed{ margin-top:20px; border:1px solid var(--tk-hairline); }

/* Course route (여행코스 스팟 순서 표시) */
.tk-course-route{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:8px 0 20px; }
.tk-route-stop{ display:inline-flex; align-items:center; gap:6px; padding:6px 12px; border:1px solid var(--tk-hairline); border-radius:999px; font-size:0.9rem; background:var(--tk-card); }
.tk-route-num{ display:inline-flex; align-items:center; justify-content:center; width:18px; height:18px; border-radius:50%; background:var(--tk-ink); color:#fff; font-size:0.7rem; flex-shrink:0; }
.tk-route-arrow{ color:var(--tk-ink-soft); font-size:0.9rem; }

@media(max-width:860px){
  .tk-course-route{ gap:6px; }
  .tk-route-stop{ font-size:0.82rem; padding:5px 10px; }
}

@media(max-width:860px){
  .tk-grid{ grid-template-columns:repeat(2,1fr); gap:16px; }

  /* By city — 줄바꿈 대신 가로 스크롤 한 줄로 */
  .tk-area-bar{
    flex-wrap:nowrap;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    padding-bottom:4px;
  }
  .tk-area-bar::-webkit-scrollbar{ display:none; }
  .tk-area-bar .tk-chip{ flex:0 0 auto; white-space:nowrap; }

  /* More regions — 기본 접힘, 탭하면 펼쳐지는 아코디언 */
  .tk-toggle-regions-checkbox{ display:none; }
  .tk-toggle-regions-label{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    padding:10px 28px;
    font-family:'IBM Plex Mono',monospace;
    font-size:12px;
    color:var(--tk-ink-soft);
    cursor:pointer;
    border-top:1px dashed var(--tk-hairline);
    border-bottom:1px dashed var(--tk-hairline);
  }
  .tk-toggle-regions-close{ display:none; }
  .tk-toggle-regions-checkbox:checked ~ .tk-toggle-regions-label .tk-toggle-regions-open{ display:none; }
  .tk-toggle-regions-checkbox:checked ~ .tk-toggle-regions-label .tk-toggle-regions-close{ display:inline; }

  .tk-region-grid{
    display:none;
    flex-direction:column;
    max-width:none;
  }
  .tk-toggle-regions-checkbox:checked ~ .tk-region-grid{
    display:flex;
  }
  .tk-region-grid .tk-region-card{
    flex:1 1 auto;
    max-width:none;
    width:100%;
    box-sizing:border-box;
  }
  .tk-detail-grid{ grid-template-columns:1fr; }
  .tk-detail-main{ border-right:none; border-bottom:1px solid var(--tk-hairline); }
  .tk-hero h1{ font-size:26px; }
  .tk-detail-hero h1{ font-size:24px; }
  .tk-detail-hero{ height:240px; padding:18px; }
  .tk-detail-main{ padding:22px; }
  .tk-detail-main p{ max-width:none; }
  .tk-spec-sheet{ padding:22px; }
}
/* ↑ 모바일 전용 media query, 여기서 완전히 닫힘 */


/* ================================
   마리트(마이리얼트립) 숙소 카드 스타일
   — media query 밖에 위치 → 모든 화면 크기에서 항상 적용됨
   ================================ */

.mrt-stay-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 20px;
    margin: 30px 0;
}

.mrt-stay-card {
    border: 1px solid #e0e0e0;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
    transition: box-shadow 0.2s ease;
}

.mrt-stay-card:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,0.1);
}

.mrt-stay-image {
    position: relative;
    aspect-ratio: 4/3;
    overflow: hidden;
}

.mrt-stay-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.mrt-discount-badge {
    position: absolute;
    top: 10px;
    left: 10px;
    background: #ff4757;
    color: #fff;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 600;
}

.mrt-stay-info {
    padding: 16px;
}

.mrt-stay-name {
    font-size: 16px;
    font-weight: 600;
    margin: 0 0 8px;
    line-height: 1.4;
}

.mrt-stay-rating {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    color: #555;
    margin-bottom: 10px;
}

.mrt-star {
    color: #f5a623;
    font-weight: 600;
}

.mrt-score {
    font-weight: 600;
}

.mrt-review-count {
    color: #999;
}

.mrt-stay-price {
    margin-bottom: 12px;
}

.mrt-original-price {
    text-decoration: line-through;
    color: #999;
    font-size: 13px;
    margin-right: 6px;
}

.mrt-sale-price {
    font-size: 18px;
    color: #222;
}

.mrt-book-btn {
    display: block;
    text-align: center;
    background: #1a73e8;
    color: #fff !important;
    padding: 10px;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 600;
    transition: background 0.2s ease;
}

.mrt-book-btn:hover {
    background: #1557b0;
}

/* 검색창 + 정렬 드롭다운 */
.mrt-filter-bar {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
    margin-bottom: 20px;
}

.mrt-search-input {
    flex: 1;
    min-width: 220px;
    padding: 10px 14px;
    border: 1px solid var(--tk-hairline, #D8DCD6);
    border-radius: 8px;
    font-size: 14px;
    font-family: 'Inter', sans-serif;
}

.mrt-sort-select,
.mrt-city-select {
    padding: 10px 14px;
    border: 1px solid var(--tk-hairline, #D8DCD6);
    border-radius: 8px;
    font-size: 14px;
    background: #fff;
    cursor: pointer;
}

.mrt-city-select {
    font-weight: 600;
    min-width: 100px;
}

.tk-pagination-dots {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 13px;
    padding: 6px 4px;
    color: var(--tk-ink-soft, #5B6461);
}

/* 항공권 카드 */
.mrt-flight-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 20px;
    margin: 30px 0;
}

.mrt-flight-card {
    position: relative;
    display: block;
    border: 1px solid #e0e0e0;
    border-radius: 12px;
    padding: 20px 18px 18px;
    background: #fff;
    text-decoration: none;
    color: inherit;
    transition: box-shadow 0.2s ease, transform 0.15s ease, border-color 0.2s ease;
    overflow: hidden;
}

.mrt-flight-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--tk-blue, #2B5F86), var(--tk-ochre, #B9861E));
}

.mrt-flight-card:hover {
    box-shadow: 0 8px 24px rgba(27,34,36,0.12);
    transform: translateY(-3px);
    border-color: var(--tk-blue, #2B5F86);
}

.mrt-flight-badge {
    position: absolute;
    top: 14px;
    right: -30px;
    background: var(--tk-red, #A93226);
    color: #fff;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.05em;
    padding: 4px 34px;
    transform: rotate(35deg);
    box-shadow: 0 2px 6px rgba(0,0,0,0.15);
}

.mrt-flight-country {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 12px;
    color: var(--tk-ink-soft, #5B6461);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 8px;
}

.mrt-flight-route {
    font-size: 16px;
    font-weight: 700;
    color: var(--tk-ink, #1B2224);
    margin-bottom: 12px;
    letter-spacing: -0.01em;
}

.mrt-flight-code {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 11px;
    color: var(--tk-ink-soft, #5B6461);
    font-weight: 400;
    margin-left: 4px;
    background: #EFF1EE;
    padding: 2px 6px;
    border-radius: 4px;
}

.mrt-flight-price {
    font-family: 'Space Grotesk', sans-serif;
    font-size: 26px;
    font-weight: 700;
    color: var(--tk-blue, #2B5F86);
    margin-bottom: 10px;
    letter-spacing: -0.02em;
}

.mrt-flight-won {
    font-size: 15px;
    font-weight: 500;
    color: var(--tk-ink-soft, #5B6461);
    margin-left: 2px;
}

.mrt-flight-dates {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 12px;
    color: var(--tk-ink-soft, #5B6461);
    padding-top: 10px;
    border-top: 1px dashed var(--tk-hairline, #D8DCD6);
}

.mrt-flight-period {
    display: inline-block;
    margin-left: 6px;
    padding: 2px 8px;
    background: var(--tk-ink, #1B2224);
    color: #fff;
    border-radius: 20px;
    font-size: 10px;
}

/* 투어·티켓 카테고리 태그 (이미지 위 좌측 상단) */
.mrt-ticket-category {
    position: absolute;
    top: 10px;
    left: 10px;
    background: rgba(27,34,36,0.75);
    color: #fff;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 12px;
    font-family: 'IBM Plex Mono', monospace;
}

.mrt-search-btn {
    padding: 10px 20px;
    background: var(--tk-ink, #1B2224);
    color: #fff;
    border: none;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}

.mrt-search-btn:hover {
    opacity: 0.85;
}

.mrt-result-count {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 12px;
    color: var(--tk-ink-soft, #5B6461);
    margin-bottom: 14px;
}

@media(max-width:860px){
  .mrt-filter-bar {
    flex-direction: column;
    align-items: stretch;
  }
  .mrt-search-btn {
    width: 100%;
  }
}

/* 모바일 화면에서 카드 폭 살짝 줄이기 (선택사항) */
@media(max-width:860px){
  .mrt-stay-grid {
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 14px;
  }
  /* 상세페이지 하단 관련 콘텐츠(관광지/호텔/축제 등) 영역이
     좌우 여백 없이 꽉 차게 보이도록 조정 */
  .tk-related-section .tk-grid-wrap{
    padding-left:0 !important;
    padding-right:0 !important;
  }
}

/* ================================
   상세 페이지 — 히어로+스펙시트 카드 래퍼 (부드러운 인상)
   ================================ */
.tk-detail-card{
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 4px 24px rgba(27,34,36,0.08);
  border:1px solid var(--tk-hairline);
}
.tk-detail-card .tk-detail-hero{
  border-radius:0; /* 부모가 overflow:hidden이라 자연히 둥글게 잘림 */
}
.tk-detail-card .tk-detail-grid{
  border:none; /* 래퍼 자체에 이미 테두리가 있으므로 내부 중복 테두리 제거 */
}
.tk-badge{
  border-radius:6px;
}

/* 관련 콘텐츠 섹션 (다른 장소 / 인기호텔) 공통 */
.tk-related-section{
  padding-top:12px;
}
.tk-section-title{
  font-family:'Space Grotesk',sans-serif;
  font-size:22px;
  font-weight:600;
  letter-spacing:-0.01em;
  margin:0 0 20px;
  color:var(--tk-ink);
}
.tk-more-link{
  display:inline-block;
  margin-top:20px;
  font-family:'IBM Plex Mono',monospace;
  font-size:13px;
  color:var(--tk-blue);
  text-decoration:none;
  border-bottom:1px solid var(--tk-blue);
  padding-bottom:2px;
}
.tk-more-link:hover{
  opacity:0.7;
}

/* 섹션 헤더 (제목만, 더보기 버튼은 카드 아래로 이동) */
.tk-section-title{
  margin:0 0 20px;
}
.tk-count{
  font-family:'IBM Plex Mono',monospace;
  font-size:13px;
  font-weight:400;
  color:var(--tk-ink-soft);
  margin-left:6px;
}

/* 더보기 버튼 — 카드 그리드 바로 아래, 우측 정렬 */
.tk-section-more{
  text-align:right;
  margin-top:28px;
}
.tk-more-btn{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:11px 28px;
  background:var(--tk-ink);
  color:#fff;
  border-radius:8px;
  font-family:'IBM Plex Mono',monospace;
  font-size:13px;
  font-weight:600;
  text-decoration:none;
  white-space:nowrap;
  transition:opacity .15s ease;
}
.tk-more-btn:hover{
  opacity:0.8;
}

/* 숙소 상세페이지 — 객실 카드 */
.mrt-room-list{
  display:flex;
  flex-direction:column;
  gap:14px;
  margin-bottom:28px;
}
.mrt-room-card{
  display:flex;
  gap:14px;
  border:1px solid var(--tk-hairline);
  border-radius:10px;
  padding:12px;
  background:#fff;
}
.mrt-room-image{
  width:120px;
  height:90px;
  flex-shrink:0;
  background-size:cover;
  background-position:center;
  border-radius:6px;
}
.mrt-room-info{
  flex:1;
}
.mrt-room-info h4{
  margin:0 0 6px;
  font-size:15px;
  font-weight:600;
}
.mrt-room-attrs{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-bottom:6px;
}
.mrt-room-attr{
  font-size:11px;
  color:var(--tk-ink-soft);
  background:var(--tk-paper);
  padding:2px 8px;
  border-radius:20px;
}
.mrt-free-cancel{
  display:inline-block;
  font-size:11px;
  color:#13612e;
  background:#e6f4ea;
  padding:2px 8px;
  border-radius:20px;
  margin-bottom:6px;
}
.mrt-room-price{
  font-size:14px;
}
.mrt-room-price .mrt-original-price{
  text-decoration:line-through;
  color:var(--tk-ink-soft);
  font-size:12px;
  margin-right:6px;
}

/* 모바일에서는 객실 카드를 세로로 배치하고,
   뱃지(체크인/체크아웃, 무료취소, 조식 등)가 알약 모양으로 여러 줄 꺾이면서
   뭉개져 보이는 걸 막기 위해 한 줄씩 쌓고 모서리를 완화 */
@media(max-width:860px){
  .mrt-room-card{
    flex-direction:column;
  }
  .mrt-room-image{
    width:100%;
    height:160px;
  }
  .mrt-room-attrs{
    flex-direction:column;
    align-items:flex-start;
    gap:4px;
  }
  .mrt-room-attr{
    border-radius:6px;
    white-space:normal;
    line-height:1.4;
    width:100%;
    box-sizing:border-box;
  }
}

/* 숙소 상세페이지 — 리뷰 카드 */
.mrt-review-list{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.mrt-review-card{
  border-bottom:1px dashed var(--tk-hairline);
  padding-bottom:14px;
}
.mrt-review-head{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:4px;
  font-size:13px;
}
.mrt-review-score{
  color:var(--tk-ochre);
  font-weight:600;
}
.mrt-review-when{
  color:var(--tk-ink-soft);
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;
}
.mrt-review-room{
  font-size:12px;
  color:var(--tk-ink-soft);
  margin-bottom:4px;
}
.mrt-review-card p{
  font-size:14px;
  line-height:1.6;
  margin:0;
}

/* 갤러리 라이트박스 (전체화면 확대 보기) */
.mrt-lightbox-overlay{
  display:none;
  position:fixed;
  top:0; left:0; right:0; bottom:0;
  background:rgba(0,0,0,0.9);
  z-index:9999;
  align-items:center;
  justify-content:center;
}
.mrt-lightbox-overlay.open{
  display:flex;
}
.mrt-lightbox-img{
  max-width:88vw;
  max-height:85vh;
  object-fit:contain;
  border-radius:4px;
}
.mrt-lightbox-close{
  position:absolute;
  top:20px;
  right:24px;
  background:none;
  border:none;
  color:#fff;
  font-size:36px;
  line-height:1;
  cursor:pointer;
  padding:8px;
}
.mrt-lightbox-prev,
.mrt-lightbox-next{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  background:rgba(255,255,255,0.12);
  border:none;
  color:#fff;
  font-size:32px;
  width:48px;
  height:48px;
  border-radius:50%;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
}
.mrt-lightbox-prev{ left:16px; }
.mrt-lightbox-next{ right:16px; }
.mrt-lightbox-prev:hover,
.mrt-lightbox-next:hover,
.mrt-lightbox-close:hover{
  background:rgba(255,255,255,0.22);
}
.mrt-lightbox-counter{
  position:absolute;
  bottom:24px;
  left:50%;
  transform:translateX(-50%);
  color:#fff;
  font-family:'IBM Plex Mono',monospace;
  font-size:13px;
  background:rgba(0,0,0,0.4);
  padding:4px 12px;
  border-radius:20px;
}

@media(max-width:860px){
  .mrt-lightbox-prev, .mrt-lightbox-next{
    width:40px;
    height:40px;
    font-size:26px;
  }
  .mrt-lightbox-close{
    font-size:30px;
    top:12px;
    right:12px;
  }
}

/* 투어·티켓 상세페이지 — 포함/불포함 목록, 일정 */
.mrt-tna-list{
  list-style:none;
  padding:0;
  margin:0 0 24px;
}
.mrt-tna-list li{
  position:relative;
  padding-left:18px;
  font-size:14px;
  line-height:1.7;
  color:#3A4240;
}
.mrt-tna-list li::before{
  content:'·';
  position:absolute;
  left:4px;
  color:var(--tk-ink-soft);
}
.mrt-tna-itinerary{
  display:flex;
  flex-direction:column;
  gap:14px;
  margin-bottom:24px;
}
.mrt-tna-itinerary-item{
  border-left:2px solid var(--tk-hairline);
  padding-left:14px;
}
.mrt-tna-itinerary-item strong{
  display:block;
  font-size:14px;
  margin-bottom:4px;
}
.mrt-tna-itinerary-item p{
  font-size:13px;
  color:var(--tk-ink-soft);
  margin:0;
  line-height:1.6;
}

/* 제휴 링크 고지 문구 */
.mrt-disclosure{
  background:var(--tk-paper);
  border:1px solid var(--tk-hairline);
  border-radius:8px;
  padding:10px 16px;
  font-size:12px;
  line-height:1.5;
  color:var(--tk-ink-soft);
  margin-bottom:20px;
}

/* 페이지 전체 폭에 걸쳐 쓰이는 경우(항공권 목록 등), 다른 요소들과 동일한 정렬 규칙 적용 */
.mrt-disclosure-wrap{
  max-width:1200px;
  margin:0 auto 20px;
  padding:0 28px;
  box-sizing:border-box;
}
.mrt-disclosure-wrap .mrt-disclosure{
  margin-bottom:0; /* 래퍼가 이미 아래 여백을 담당하므로 중복 방지 */
}

@media(max-width:860px){
  .tk-section-more{
    padding:0 4px;
  }
  .tk-more-btn{
    width:100%;
    justify-content:center;
  }
}


/* 메인페이지 - 관광지 카드 그리드 */
.tk-featured-tours-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin: 20px 0;
}

.tk-featured-tour-card {
    display: block;
    text-decoration: none;
    color: inherit;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.tk-featured-tour-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 6px 16px rgba(0,0,0,0.12);
}

.tk-featured-tour-thumb {
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
}

.tk-featured-tour-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.tk-featured-tour-info {
    padding: 14px 16px;
}

.tk-featured-tour-area {
    display: inline-block;
    font-size: 12px;
    color: #888;
    margin-bottom: 4px;
}

.tk-featured-tour-title {
    font-size: 16px;
    font-weight: 600;
    margin: 0;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* 모바일 */
@media (max-width: 768px) {
    .tk-featured-tours-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 14px;
    }
    .tk-featured-tour-title {
        font-size: 14px;
    }
}

/* 메인페이지 - 여행코스 카드 뱃지 (구간/스팟 수 표시) */
.tk-featured-tour-thumb {
    position: relative;
}

.tk-course-badge {
    position: absolute;
    bottom: 8px;
    right: 8px;
    background: rgba(0,0,0,0.65);
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    padding: 3px 10px;
    border-radius: 20px;
}

