/*
 * 캠핑엔카 테마 — 메인 스타일시트
 * 원본: 클라이언트 시안 campingncar-main.html / campingncar-detail.html 의 <style> (값·클래스명 그대로).
 * 시안과 달라진 곳은 아래 주석에 "[WP]" 로 표시했다.
 *  - [WP] 리셋·기본 요소 규칙은 전역이 아니라 테마가 그리는 영역(헤더·드로어·푸터·퀵·홈)에만 적용한다
 *    (본문 페이지와 플러그인 화면의 목록 점·링크·버튼이 깨지지 않게).
 *  - [WP] .reveal 은 JS 가 켜진 경우(.js)에만 숨김 → JS 꺼져도 내용이 보인다.
 */
/* ===================
   1. CSS Variables
   =================== */
:root {
  --ink: #15191C;
  --ink-2: #3E464C;
  --muted: #687177;
  --line: #E4E7E8;
  --line-2: #EEF0F1;
  --bg: #FFFFFF;
  --bg-2: #F5F6F6;
  --brand: #0F5C6B;          /* 캠핑엔카 로고 딥 틸 */
  --brand-deep: #0A4552;
  --brand-soft: #E6F0F2;
  --brand-line: #BFD6DB;
  --sale: #D2432D;           /* 할인가 전용 */
  --sale-soft: #FCEBE7;
  --kakao: #FEE500;

  --r-sm: 8px;
  --r: 12px;
  --r-lg: 16px;
  --r-xl: 24px;

  --shadow-1: 0 1px 2px rgba(21, 25, 28, .06);
  --shadow-2: 0 8px 24px rgba(21, 25, 28, .10);
  --shadow-3: 0 18px 44px rgba(21, 25, 28, .16);

  --ease: cubic-bezier(.2, .8, .2, 1);
  --dur: .22s;

  --container: 1200px;
  --gutter: 24px;
  --header-h: 72px;
  --section-gap: 96px;

  /* [WP] 관리 바 보정 + 렌탈 애드온이 받는 고정 헤더 높이(숫자 px 로 둔다: 애드온 JS 가 parseFloat 로 읽는다) */
  --cnc-adminbar: 0px;
  --fxrent-header-h: var(--header-h);
  --cnc-narrow: 800px;
}

/* ===================
   2. Reset & Base   ([WP] 영역 한정)
   =================== */
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 16px); -webkit-text-size-adjust: 100%; }
html:has(body.admin-bar) { scroll-padding-top: calc(var(--header-h) + 32px + 16px); }
body {
  font-family: 'Pretendard Variable', Pretendard, -apple-system, BlinkMacSystemFont, 'Noto Sans KR', sans-serif;
  font-size: 16px;
  line-height: 1.65;
  color: var(--ink);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  word-break: keep-all;
}
:where(.header, .drawer, .footer, .quick, .m-bar, .cnc-home, .cnc-notfound, .skip-link),
:where(.header, .drawer, .footer, .quick, .m-bar, .cnc-home, .cnc-notfound) *,
:where(.header, .drawer, .footer, .quick, .m-bar, .cnc-home, .cnc-notfound) *::before,
:where(.header, .drawer, .footer, .quick, .m-bar, .cnc-home, .cnc-notfound) *::after { margin: 0; padding: 0; }
:where(.header, .drawer, .footer, .quick, .m-bar, .cnc-home, .cnc-notfound) img { max-width: 100%; display: block; }
:where(.header, .drawer, .footer, .quick, .m-bar, .cnc-home, .cnc-notfound) a { color: inherit; text-decoration: none; }
:where(.header, .drawer, .footer, .quick, .m-bar, .cnc-home, .cnc-notfound) :is(button, input, select) { font: inherit; color: inherit; }
:where(.header, .drawer, .footer, .quick, .m-bar, .cnc-home, .cnc-notfound) button { cursor: pointer; background: none; border: 0; }
:where(.header, .drawer, .footer, .quick, .m-bar, .cnc-home, .cnc-notfound) :is(ul, ol) { list-style: none; }
:where(.header, .drawer, .footer, .quick, .m-bar, .cnc-home, .cnc-notfound) :is(h1, h2, h3, h4) { line-height: 1.3; letter-spacing: -0.02em; text-wrap: balance; }
:where(.header, .drawer, .footer, .quick, .m-bar, .cnc-home, .cnc-notfound) p { text-wrap: pretty; }
.num { font-variant-numeric: tabular-nums; letter-spacing: -0.01em; }
[hidden] { display: none !important; }
.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; }
:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; border-radius: 4px; }
.icon { width: 18px; height: 18px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

/* ===================
   3. Layout
   =================== */
.container { width: 100%; max-width: calc(var(--container) + var(--gutter) * 2); margin: 0 auto; padding-inline: var(--gutter); }
.section { padding-block: var(--section-gap) 0; }
.section--tint { background: var(--bg-2); padding-block: var(--section-gap); margin-top: var(--section-gap); }
.section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 32px; }
.section-head__eyebrow { display: block; font-size: 14px; font-weight: 600; color: var(--brand); margin-bottom: 8px; }
.section-head__title { font-size: 32px; font-weight: 700; }
.section-head__note { margin-top: 4px; font-size: 17px; font-weight: 500; color: var(--muted); }
.block-title { font-size: 28px; font-weight: 700; margin-bottom: 20px; }
.list-head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin: 56px 0 24px; }
.list-head .block-title { margin: 0; }
.list-head__side { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.section-head__desc { margin-top: 8px; color: var(--muted); font-size: 16px; }
.section-head__side { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }

/* ===================
   4. Components
   =================== */
/* Buttons */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 22px; border-radius: var(--r); font-size: 16px; font-weight: 600; white-space: nowrap; transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease), transform .12s var(--ease); }
.btn:active { transform: scale(.98); }
.btn:disabled, .btn:disabled:hover { background: var(--line); border-color: var(--line); color: var(--muted); cursor: default; transform: none; }
.btn--primary { background: var(--brand); color: #fff; }
.btn--primary:hover { background: var(--brand-deep); }
.btn--line { border: 1px solid var(--line); background: #fff; color: var(--ink); }
.btn--line:hover { border-color: var(--ink); }
.btn--ghost { color: var(--brand); padding: 0 12px; }
.btn--ghost:hover { background: var(--brand-soft); }
.btn--sm { min-height: 44px; padding: 0 16px; font-size: 14px; border-radius: 10px; }

.icon-btn { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; border: 1px solid var(--line); background: #fff; transition: border-color var(--dur) var(--ease), background-color var(--dur) var(--ease); }
.icon-btn:hover { border-color: var(--ink); }
.icon-btn:disabled { opacity: .35; cursor: default; border-color: var(--line); }

/* Tags */
.tag { display: inline-flex; align-items: center; gap: 4px; height: 26px; padding: 0 10px; border-radius: 999px; font-size: 13px; font-weight: 600; background: var(--bg-2); color: var(--ink-2); white-space: nowrap; }
.tag--brand { background: var(--brand-soft); color: var(--brand-deep); }
.tag--sale { background: var(--sale-soft); color: var(--sale); }
.tag--dark { background: rgba(21, 25, 28, .78); color: #fff; backdrop-filter: blur(6px); }

/* Spec line (차량 사양) */
.specs { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 14px; color: var(--ink-2); }
.specs li { display: inline-flex; align-items: center; gap: 5px; }
.specs .icon { width: 16px; height: 16px; color: var(--muted); }

/* Price */
.price { display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.price__now { font-size: 18px; font-weight: 700; }
.price__unit { font-size: 14px; color: var(--muted); }
.price__was { font-size: 14px; color: var(--muted); text-decoration: line-through; }
.price__sale { color: var(--sale); }

/* Select pill (필터) */
.select { position: relative; display: inline-flex; }
.select select { appearance: none; -webkit-appearance: none; height: 44px; padding: 0 38px 0 16px; border: 1px solid var(--line); border-radius: 999px; background: #fff; font-size: 15px; font-weight: 500; cursor: pointer; transition: border-color var(--dur) var(--ease), background-color var(--dur) var(--ease); }
.select select:hover { border-color: var(--ink-2); }
.select.is-active select { border-color: var(--brand); background: var(--brand-soft); color: var(--brand-deep); font-weight: 600; }
.select::after { content: ''; position: absolute; right: 16px; top: 50%; width: 7px; height: 7px; border-right: 1.8px solid currentColor; border-bottom: 1.8px solid currentColor; transform: translateY(-70%) rotate(45deg); pointer-events: none; }

/* -------- Header -------- */
.header { position: sticky; top: 0; z-index: 100; background: rgba(255, 255, 255, .96); backdrop-filter: saturate(1.4) blur(10px); border-bottom: 1px solid transparent; transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease); }
.header.is-scrolled { border-bottom-color: var(--line); }
.header__inner { height: var(--header-h); display: flex; align-items: center; gap: 40px; }
.header__logo { display: flex; align-items: center; flex-shrink: 0; }
.header__logo img { height: 40px; width: auto; }
.gnb { flex: 1; }
.gnb__list { display: flex; align-items: center; gap: 4px; }
.gnb__item { position: relative; }
.gnb__link { display: flex; align-items: center; height: var(--header-h); padding: 0 14px; font-size: 16px; font-weight: 600; color: var(--ink-2); transition: color var(--dur) var(--ease); }
.gnb__item:hover .gnb__link, .gnb__item:focus-within .gnb__link, .gnb__link[aria-current="page"] { color: var(--ink); }
.gnb__link[aria-current="page"] { box-shadow: inset 0 -2px 0 var(--brand); }
.gnb__sub { position: absolute; top: calc(var(--header-h) - 8px); left: 0; min-width: 188px; padding: 8px; background: #fff; border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--shadow-2); opacity: 0; visibility: hidden; transform: translateY(-4px); transition: opacity .18s var(--ease), transform .18s var(--ease), visibility .18s; }
.gnb__item:hover .gnb__sub, .gnb__item:focus-within .gnb__sub { opacity: 1; visibility: visible; transform: none; }
.gnb__sub a { display: flex; align-items: center; min-height: 40px; padding: 0 12px; border-radius: var(--r-sm); font-size: 15px; color: var(--ink-2); }
.gnb__sub a:hover, .gnb__sub a:focus-visible { background: var(--bg-2); color: var(--ink); }
.header__util { display: flex; align-items: center; gap: 4px; margin-left: auto; }
.header__util-link { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 12px; border-radius: 999px; font-size: 15px; font-weight: 500; color: var(--ink-2); transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease); }
.header__util-link:hover { background: var(--bg-2); color: var(--ink); }
.header__join { position: relative; display: inline-flex; align-items: center; min-height: 44px; margin-left: 4px; padding: 0 18px; border: 1px solid var(--line); border-radius: 999px; font-size: 15px; font-weight: 600; transition: border-color var(--dur) var(--ease); }
.header__join:hover { border-color: var(--ink); }
.header__join .point { position: absolute; top: -11px; right: -6px; display: inline-flex; align-items: center; height: 20px; padding: 0 7px; border-radius: 999px; background: var(--brand); color: #fff; font-size: 11px; font-weight: 700; box-shadow: 0 0 0 2px #fff; }
.header__menu-btn { display: none; }

/* Mobile drawer */
.drawer { position: fixed; inset: 0; z-index: 200; visibility: hidden; }
.drawer.is-open { visibility: visible; }
.drawer__dim { position: absolute; inset: 0; background: rgba(21, 25, 28, .45); opacity: 0; transition: opacity .25s var(--ease); }
.drawer.is-open .drawer__dim { opacity: 1; }
.drawer__panel { position: absolute; top: 0; right: 0; bottom: 0; width: min(360px, 88vw); background: #fff; display: flex; flex-direction: column; transform: translateX(100%); transition: transform .3s var(--ease); }
.drawer.is-open .drawer__panel { transform: none; }
.drawer__head { display: flex; align-items: center; justify-content: space-between; height: 64px; padding: 0 12px 0 20px; border-bottom: 1px solid var(--line); }
.drawer__head img { height: 32px; width: auto; }
.drawer__body { flex: 1; overflow-y: auto; padding: 8px 20px 24px; }
.drawer__auth { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.drawer__group { border-bottom: 1px solid var(--line-2); }
.drawer__group summary { display: flex; align-items: center; justify-content: space-between; min-height: 56px; font-size: 17px; font-weight: 600; cursor: pointer; list-style: none; }
.drawer__group summary::-webkit-details-marker { display: none; }
.drawer__group summary .icon { transition: transform var(--dur) var(--ease); }
.drawer__group[open] summary .icon { transform: rotate(180deg); }
.drawer__group ul { padding-bottom: 12px; }
.drawer__group li a { display: flex; align-items: center; min-height: 44px; padding-left: 12px; color: var(--ink-2); font-size: 15px; }
.drawer__call { margin-top: 20px; display: flex; align-items: center; justify-content: space-between; padding: 16px; border-radius: var(--r); background: var(--bg-2); }
.drawer__call strong { display: block; font-size: 20px; }
.drawer__call span { font-size: 14px; color: var(--muted); }

/* ===================
   5. Sections
   =================== */
/* -------- Hero -------- */
.hero { padding-top: 12px; }
.hero__panel { position: relative; height: clamp(460px, 44vw, 560px); border-radius: var(--r-xl); overflow: hidden; background: #3b4a4f; }
.hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 62%; }
.hero__panel::after { content: ''; position: absolute; inset: 0; background:
  linear-gradient(90deg, rgba(8, 22, 26, .74) 0%, rgba(8, 22, 26, .52) 40%, rgba(8, 22, 26, 0) 72%),
  linear-gradient(0deg, rgba(8, 22, 26, .40) 0%, rgba(8, 22, 26, 0) 38%); }
.hero__copy { position: relative; z-index: 1; max-width: 780px; padding: 60px 64px 0; color: #fff; text-shadow: 0 1px 14px rgba(0, 0, 0, .35); }
.hero__panel { container-type: size; }
.hero__video { position: absolute; inset: 0; overflow: hidden; opacity: 0; transition: opacity .8s var(--ease); }
.hero__video.is-playing { opacity: 1; }
.hero__video iframe { position: absolute; top: 50%; left: 50%; width: max(100cqw, 177.78cqh); height: max(100cqh, 56.25cqw); transform: translate(-50%, -50%) scale(1.18); border: 0; pointer-events: none; }
.hero__title { font-size: clamp(28px, 3.6vw, 46px); font-weight: 700; line-height: 1.3; letter-spacing: -0.03em; }
.hero__sub { margin-top: 16px; font-size: 18px; line-height: 1.6; opacity: .9; }
.hero__private { margin-top: 20px; font-size: 17px; opacity: .9; }
.hero__lead { margin-top: 2px; font-size: 21px; font-weight: 700; letter-spacing: -0.02em; }
.hero__sign { margin-top: 18px; font-size: 14px; font-weight: 700; opacity: .8; }
.hero__pause { position: absolute; top: 16px; right: 16px; z-index: 2; width: 44px; height: 44px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: #fff; background: rgba(8, 22, 26, .35); backdrop-filter: blur(6px); transition: background-color var(--dur) var(--ease); }
.hero__pause:hover { background: rgba(8, 22, 26, .55); }
.hero__pause .icon { width: 18px; height: 18px; stroke-width: 2.4; }

/* Search bar */
form.search { position: relative; z-index: 2; max-width: 1080px; margin: -56px auto 0; display: grid; grid-template-columns: 1.05fr 1.25fr 1.25fr 1fr auto; align-items: stretch; padding: 8px; background: #fff; border-radius: 20px; box-shadow: var(--shadow-3); }
.search__field { position: relative; display: flex; flex-direction: column; justify-content: center; min-height: 72px; padding: 10px 20px; border-radius: 14px; transition: background-color var(--dur) var(--ease); }
.f-start::before, .f-end::before, .f-people::before { content: ''; position: absolute; left: 0; top: 18px; bottom: 18px; width: 1px; background: var(--line); }
.search__field:hover, .search__field:focus-within { background: var(--bg-2); }
.search__label { display: flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: var(--muted); }
.search__nights { display: inline-flex; align-items: center; height: 20px; padding: 0 8px; border-radius: 999px; background: var(--brand-soft); color: var(--brand-deep); font-size: 12px; font-weight: 700; }
.search__nights[hidden] { display: none; }
.search__input { width: 100%; border: 0; background: transparent; font-size: 17px; font-weight: 600; color: var(--ink); padding: 2px 0 0; cursor: pointer; outline: none; appearance: none; -webkit-appearance: none; min-height: 30px; }
.search__value { display: flex; align-items: center; gap: 8px; min-height: 30px; padding-top: 2px; font-size: 17px; font-weight: 600; }
.search__value::after { content: ''; width: 18px; height: 18px; margin-left: auto; opacity: .45; background: no-repeat center / 18px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2315191C' stroke-width='1.8' stroke-linecap='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M8 3v4M16 3v4M3 10h18'/%3E%3C/svg%3E"); }
.search__date { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; border: 0; }
.search__date::-webkit-calendar-picker-indicator { position: absolute; inset: 0; width: 100%; height: 100%; cursor: pointer; }
.f-start:focus-within, .f-end:focus-within { box-shadow: inset 0 0 0 2px var(--brand); }
.search__stepper { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 2px; }
.search__stepper output { font-size: 17px; font-weight: 600; min-width: 40px; }
.stepper-btn { position: relative; width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--line); display: inline-flex; align-items: center; justify-content: center; background: #fff; transition: border-color var(--dur) var(--ease); }
.stepper-btn::before { content: ''; position: absolute; inset: -4px; }
.stepper-btn:hover { border-color: var(--ink); }
.stepper-btn:disabled { opacity: .35; cursor: default; border-color: var(--line); }
.search__submit { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-width: 150px; margin-left: 4px; padding: 0 24px; border-radius: 14px; background: var(--brand); color: #fff; font-size: 17px; font-weight: 700; transition: background-color var(--dur) var(--ease), transform .12s var(--ease); }
.search__submit:hover { background: var(--brand-deep); }
.search__submit:active { transform: scale(.98); }
.search__submit .icon { width: 20px; height: 20px; stroke-width: 2.2; }

/* Booking flow */
.flow { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px 4px; margin-top: 24px; }
.flow__step { display: inline-flex; align-items: center; gap: 8px; font-size: 15px; color: var(--muted); font-weight: 500; }
.flow__step b { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%; border: 1px solid var(--line); font-size: 13px; font-weight: 700; color: var(--muted); font-variant-numeric: tabular-nums; }
.flow__step.is-current { color: var(--ink); font-weight: 600; }
.flow__step.is-current b { background: var(--brand); border-color: var(--brand); color: #fff; }
.flow__sep { display: inline-flex; align-items: center; color: var(--line); padding: 0 6px; }
.flow__sep .icon { width: 16px; height: 16px; color: #B7BDC0; }

/* -------- Events (이달의 이벤트) -------- */
.deals { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.deal { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease); }
.deal:hover { border-color: #CBD1D3; box-shadow: var(--shadow-2); }
.deal__media { position: relative; aspect-ratio: 23 / 10; background: var(--bg-2); overflow: hidden; }
.deal__media img { width: 100%; height: 100%; object-fit: cover; }
.deal__media .tag { position: absolute; left: 12px; top: 12px; }
.deal__body { flex: 1; display: flex; flex-direction: column; gap: 4px; padding: 16px 18px 18px; }
.deal__kicker { font-size: 13px; font-weight: 600; color: var(--muted); }
.deal__title { font-size: 17px; font-weight: 700; }
.deal__foot { padding-top: 12px; margin-bottom: 16px; }
.deal__unit { display: flex; align-items: flex-start; gap: 6px; margin-top: 4px; font-size: 14px; color: var(--muted); line-height: 1.5; }
.deal__unit .icon { width: 15px; height: 15px; margin-top: 3px; }
.deal__note { margin-top: auto; padding-top: 12px; border-top: 1px solid var(--line-2); font-size: 13px; line-height: 1.55; color: var(--muted); }
.deal__note strong { color: var(--ink-2); font-weight: 700; }
.deal__price-now { font-size: 22px; font-weight: 800; letter-spacing: -0.02em; }
.deal__split { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--line-2); border-radius: 10px; overflow: hidden; }
.deal__split div { padding: 8px 12px; }
.deal__split div + div { border-left: 1px solid var(--line-2); }
.deal__split span { display: block; font-size: 13px; color: var(--muted); }
.deal__split strong { font-size: 17px; font-weight: 700; }


.promos { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; margin-top: 24px; }
.promo { position: relative; display: grid; grid-template-columns: 1fr; background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; transition: box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease); }
.promo:hover { box-shadow: var(--shadow-2); border-color: #CBD1D3; }
.promo__media { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--bg-2); }
.promo__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.promo:hover .promo__media img { transform: scale(1.03); }
.promo__off { position: absolute; left: 16px; top: 16px; display: inline-flex; align-items: center; gap: 6px; }
.promo__off .tag--sale { background: var(--sale); color: #fff; }
.promo__body { padding: 22px 24px 24px; }
.promo__kicker { font-size: 14px; font-weight: 600; color: var(--sale); }
.promo__name { margin-top: 4px; font-size: 22px; font-weight: 700; }
.promo__name span { display: block; margin-top: 2px; font-size: 15px; font-weight: 500; color: var(--muted); }
.promo__specs { margin-top: 8px; }
.promo__deal { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 16px; margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--line-2); }
.promo__avg span { display: block; font-size: 14px; color: var(--muted); }
.promo__avg strong { font-size: 28px; font-weight: 800; letter-spacing: -0.02em; white-space: nowrap; }
.promo__total del, .promo__total strong { white-space: nowrap; }
.header__logo { min-height: 44px; }
.f-region .search__input { min-height: 44px; margin: -8px 0 -6px; }
.promo__avg strong small { font-size: 16px; font-weight: 600; }
.promo__total { text-align: right; }
.promo__total span { display: block; font-size: 14px; color: var(--muted); }
.promo__total del { color: var(--muted); font-size: 15px; margin-right: 6px; }
.promo__total strong { font-size: 20px; font-weight: 700; color: var(--sale); }
.promo__cta { margin-top: 20px; width: 100%; }

/* -------- Partner campgrounds -------- */
.camp-track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 16px * 3) / 4); gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; padding-bottom: 4px; }
.camp-track::-webkit-scrollbar { display: none; }
.camp { scroll-snap-align: start; display: flex; flex-direction: column; background: #fff; border-radius: var(--r-lg); overflow: hidden; }
.camp__media { position: relative; aspect-ratio: 4 / 3.4; overflow: hidden; background: var(--line); }
.camp__media img { width: 100%; height: 100%; object-fit: cover; }
.camp__media .tag { position: absolute; left: 12px; top: 12px; }
.camp__body { flex: 1; display: flex; flex-direction: column; gap: 6px; padding: 16px 18px 18px; }
.camp__name { font-size: 17px; font-weight: 700; }
.camp__desc { font-size: 14px; color: var(--muted); line-height: 1.55; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.camp__perk { display: flex; flex-direction: column; gap: 2px; margin-top: 6px; padding: 10px 12px; border-radius: 10px; background: var(--brand-soft); color: var(--brand-deep); }
.camp__perk span { font-size: 12px; font-weight: 600; opacity: .8; }
.camp__perk strong { display: flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 700; }
.camp__perk .icon { width: 17px; height: 17px; }
.camp__tel { margin-top: auto; display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding-top: 4px; font-size: 15px; font-weight: 600; color: var(--ink-2); }
.camp__tel:hover { color: var(--brand); }
.camp__tel .icon { width: 16px; height: 16px; }

/* -------- Rent search + list -------- */
.filterbar__count { font-size: 15px; color: var(--muted); }
.filterbar__count strong { color: var(--ink); font-weight: 700; }
.date-chip { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 8px 0 14px; border-radius: 999px; background: var(--ink); color: #fff; font-size: 15px; font-weight: 600; }
.date-chip[hidden] { display: none; }
.date-chip .icon { width: 16px; height: 16px; }
.date-chip button { width: 30px; height: 30px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: #fff; }
.date-chip button:hover { background: rgba(255, 255, 255, .16); }

.grid-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 36px 20px; }
.grid-cards--3 { grid-template-columns: repeat(3, 1fr); gap: 40px 24px; }
.car { position: relative; display: flex; flex-direction: column; gap: 12px; }
.car[hidden] { display: none; }
.car__media { position: relative; aspect-ratio: 4 / 3; border-radius: var(--r-lg); overflow: hidden; background: var(--bg-2); }
.car__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.car:hover .car__media img { transform: scale(1.04); }
.car__badges { position: absolute; left: 12px; top: 12px; display: flex; gap: 6px; }
.car__like { position: absolute; top: 6px; right: 6px; z-index: 2; width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; color: #fff; transition: transform .15s var(--ease); }
.car__like:active { transform: scale(.9); }
.car__like svg { width: 24px; height: 24px; fill: rgba(21, 25, 28, .28); stroke: #fff; stroke-width: 1.8; filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .25)); transition: fill var(--dur) var(--ease); }
.car__like[aria-pressed="true"] svg { fill: var(--sale); }
.car__body { display: flex; flex-direction: column; gap: 4px; }
.car__region { display: flex; align-items: center; gap: 4px; font-size: 14px; color: var(--muted); }
.car__region .icon { width: 14px; height: 14px; }
.car__name { font-size: 17px; font-weight: 700; }
.car__link::after { content: ''; position: absolute; inset: 0; z-index: 1; border-radius: var(--r-lg); }
.car__link:focus-visible { outline: none; }
.car__link:focus-visible::after { outline: 2px solid var(--brand); outline-offset: 4px; }
.car__price { margin-top: 6px; }
.car__class { display: block; margin-top: 2px; font-size: 14px; font-weight: 500; color: var(--muted); }
.used__price { margin-top: 6px; font-size: 18px; font-weight: 700; }

.car__avail { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; font-weight: 600; color: var(--brand); }
.car__avail[hidden] { display: none; }
.car__avail .icon { width: 14px; height: 14px; stroke-width: 2.4; }

.empty { grid-column: 1 / -1; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px; padding: 56px 24px; border: 1px dashed #CBD1D3; border-radius: var(--r-lg); }
.empty[hidden] { display: none; }
.empty__icon { width: 56px; height: 56px; border-radius: 50%; background: var(--bg-2); display: flex; align-items: center; justify-content: center; margin-bottom: 8px; color: var(--muted); }
.empty__icon .icon { width: 26px; height: 26px; }
.empty h3 { font-size: 19px; font-weight: 700; }
.empty p { color: var(--muted); font-size: 15px; }
.empty__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 12px; }

/* -------- Realtime schedule -------- */
.schedule { display: grid; grid-template-columns: 420px 1fr; gap: 24px; align-items: start; }
.schedule .cal { position: sticky; top: calc(var(--header-h) + 16px); }
.panel { background: #fff; border-radius: var(--r-lg); padding: 24px; }
.cal__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.cal__title { font-size: 20px; font-weight: 700; }
.cal__nav { display: flex; gap: 8px; }
.cal__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.cal__dow { padding: 6px 0; text-align: center; font-size: 13px; font-weight: 600; color: var(--muted); }
.cal__dow.is-sun { color: var(--sale); }
.cal__day { position: relative; min-height: 52px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; border-radius: 10px; font-size: 15px; font-weight: 600; font-variant-numeric: tabular-nums; transition: background-color .15s var(--ease), color .15s var(--ease); }
.cal__day small { font-size: 11px; font-weight: 600; color: var(--brand); line-height: 1.2; }
.cal__day:not(:disabled):hover { background: var(--bg-2); }
.cal__day.is-sun { color: var(--sale); }
.cal__day.is-today::after { content: ''; position: absolute; inset: 3px; border: 1.5px solid var(--ink); border-radius: 8px; pointer-events: none; }
.cal__day.is-full small { color: var(--muted); }
.cal__day.is-selected { background: var(--brand); color: #fff; }
.cal__day.is-selected:not(:disabled):hover { background: var(--brand-deep); }
.cal__day.is-selected small { color: rgba(255, 255, 255, .88); }
.cal__day:disabled { color: #BCC2C5; cursor: default; }
.cal__day:disabled small { color: #BCC2C5; }
.cal__legend { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line-2); font-size: 13px; color: var(--muted); }
.cal__legend span { display: inline-flex; align-items: center; gap: 6px; }
.cal__legend i { display: inline-block; width: 12px; height: 12px; border-radius: 3px; }

.slots__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.slots__date { font-size: 20px; font-weight: 700; }
.slots__meta { font-size: 15px; color: var(--muted); }
.slots__meta strong { color: var(--brand); }
.slot { display: grid; grid-template-columns: 96px 1fr auto; align-items: center; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--line-2); }
.slot__thumb { aspect-ratio: 1 / 1; border-radius: 10px; overflow: hidden; background: var(--bg-2); }
.slot__thumb img { width: 100%; height: 100%; object-fit: cover; }
.slot__name { font-size: 16px; font-weight: 700; }
.slot__name span { font-size: 14px; font-weight: 500; color: var(--muted); margin-left: 6px; }
.slot__tagline { margin-top: 2px; font-size: 14px; color: var(--ink-2); }
.slot__cap { margin-top: 2px; font-size: 13px; color: var(--muted); }
.slots__prompt { display: flex; align-items: center; gap: 8px; min-height: 30px; font-size: 16px; font-weight: 600; color: var(--ink-2); }
.slots__prompt[hidden], .slots__date[hidden], .slots__meta[hidden] { display: none; }
.slots__prompt .icon { color: var(--brand); }
.slot .specs { font-size: 13px; margin-top: 2px; }
.slot__side { display: flex; align-items: center; gap: 16px; }
.slot__price { text-align: right; font-size: 16px; font-weight: 700; white-space: nowrap; }
.slot__price span { display: block; font-size: 13px; font-weight: 500; color: var(--muted); }
.slot.is-full { opacity: .6; }
.slot.is-full[hidden] { display: none; }
.slots__toggle { display: flex; align-items: center; justify-content: center; gap: 6px; width: 100%; min-height: 48px; margin-top: 4px; border-bottom: 1px solid var(--line-2); font-size: 15px; font-weight: 600; color: var(--ink-2); }
.slots__toggle:hover { color: var(--ink); background: var(--bg-2); }
.slots__toggle .icon { width: 16px; height: 16px; transition: transform var(--dur) var(--ease); }
.slots__toggle[aria-expanded="true"] .icon { transform: rotate(180deg); }
.slots__foot { display: flex; align-items: center; gap: 8px; margin-top: 16px; font-size: 14px; color: var(--muted); }
.slots__foot .icon { width: 16px; height: 16px; }

/* -------- Partner recruit -------- */
.recruit { position: relative; display: flex; align-items: center; min-height: 300px; border-radius: var(--r-xl); overflow: hidden; background: var(--brand-deep); color: #fff; }
.recruit__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 65% 60%; }
.recruit::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10, 69, 82, .94) 0%, rgba(10, 69, 82, .72) 38%, rgba(10, 69, 82, 0) 72%); }
.recruit__body { position: relative; z-index: 1; padding: 56px; }
.recruit__title { font-size: 32px; font-weight: 700; }
.recruit__desc { margin-top: 8px; font-size: 17px; color: rgba(255, 255, 255, .85); }
.recruit__tel { display: inline-flex; align-items: center; gap: 10px; min-height: 56px; margin-top: 24px; padding: 0 24px; border-radius: var(--r); background: #fff; color: var(--brand-deep); font-size: 24px; font-weight: 800; transition: background-color var(--dur) var(--ease); }
.recruit__tel:hover { background: #E6F0F2; }
.recruit__tel .icon { width: 22px; height: 22px; stroke-width: 2.2; }

/* -------- Used listings -------- */
.search-panel { display: grid; grid-template-columns: repeat(5, 1fr) auto; gap: 12px; align-items: end; padding: 20px; border-radius: var(--r-lg); background: var(--bg-2); }
.search-panel label { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 600; color: var(--muted); }
.search-panel .select, .search-panel .select select { width: 100%; }
.search-panel .select select { border-radius: 10px; }
.search-panel .btn { min-height: 44px; }
.used__meta { font-size: 14px; color: var(--ink-2); }

/* -------- Footer -------- */
.footer { margin-top: var(--section-gap); padding-block: 40px; background: var(--bg-2); color: var(--ink-2); }
.footer__top { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.footer__logo { display: inline-flex; min-height: 44px; align-items: center; }
.footer__logo img { height: 36px; width: auto; }
.footer__policy { display: flex; gap: 4px; }
.footer__policy a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 10px; font-size: 14px; font-weight: 600; color: var(--ink-2); }
.footer__policy a + a { font-weight: 700; color: var(--ink); }
.footer__policy a:hover { text-decoration: underline; text-underline-offset: 3px; }
.footer__biz { display: flex; flex-wrap: wrap; gap: 4px 16px; margin-top: 20px; font-size: 14px; line-height: 1.7; color: var(--muted); }

/* -------- Quick buttons & mobile bar -------- */
.quick { position: fixed; right: 20px; bottom: 24px; z-index: 90; display: flex; flex-direction: column; gap: 8px; transition: bottom .3s var(--ease); }
.quick a { width: 60px; height: 60px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; border-radius: 18px; background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow-2); font-size: 12px; font-weight: 600; color: var(--ink-2); transition: transform var(--dur) var(--ease), border-color var(--dur) var(--ease); }
.quick a:hover { transform: translateY(-2px); border-color: #CBD1D3; }
.quick a .icon { width: 20px; height: 20px; }
.quick .quick__kakao { background: var(--kakao); border-color: var(--kakao); color: #191600; }
.m-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 95; display: none; align-items: center; gap: 12px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--line); box-shadow: 0 -6px 20px rgba(21, 25, 28, .06); transform: translateY(110%); transition: transform .3s var(--ease); }
.m-bar.is-visible { transform: none; }
.m-bar__text { flex: 1; min-width: 0; font-size: 14px; color: var(--muted); line-height: 1.4; }
.m-bar__text strong { display: block; font-size: 15px; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* Scroll reveal */
.js .reveal { opacity: 0; transform: translateY(16px); transition: opacity .6s var(--ease), transform .6s var(--ease); }
.js .reveal.is-in { opacity: 1; transform: none; }

/* ===================
   6. Responsive
   =================== */
@media (max-width: 1280px) {
  .header__inner { gap: 24px; }
  .gnb__link { padding: 0 10px; font-size: 15px; }
}
@media (max-width: 1180px) {
  .gnb__list { gap: 0; }
  .gnb__link { padding: 0 8px; }
}
@media (max-width: 1024px) {
  :root { --section-gap: 72px; --header-h: 64px; }
  .gnb, .header__util-link, .header__join { display: none; }
  .header__menu-btn { display: inline-flex; margin-right: -8px; }
  .header__util .header__util-link--login { display: inline-flex; }
  .header__logo img { height: 34px; }
  .footer .container { padding-right: calc(var(--gutter) + 64px); }
  .quick { opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .25s var(--ease), transform .25s var(--ease), visibility .25s; }
  .is-past-search .quick { opacity: 1; visibility: visible; transform: none; }
  .section-head__title { font-size: 28px; }
  .hero__copy { padding: 56px 40px 0; }
  form.search { grid-template-columns: 1fr 1fr; margin-top: -48px; max-width: none; margin-inline: 16px; gap: 0; }
  .f-end::before { display: none; }
  .f-end, .f-people { border-top: 1px solid var(--line-2); border-radius: 0; }
  .search__submit { grid-column: 1 / -1; min-height: 56px; margin: 8px 0 0; }
  .deals { grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 42%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); scroll-padding-inline: var(--gutter); }
  .deals::-webkit-scrollbar { display: none; }
  .deal { scroll-snap-align: start; }
  .camp-track { grid-auto-columns: calc((100% - 16px * 2) / 2.6); }
  .grid-cards { grid-template-columns: repeat(3, 1fr); }
  .schedule { grid-template-columns: 1fr; }
  .schedule .cal { position: static; }
  .cal { max-width: 560px; }
  .search-panel { grid-template-columns: repeat(3, 1fr); }
  .search-panel .btn { grid-column: span 3; }
  .recruit__body { padding: 44px 40px; }
}
@media (max-width: 768px) {
  :root { --section-gap: 64px; --gutter: 16px; }
  .section-head { flex-direction: column; align-items: flex-start; gap: 12px; margin-bottom: 24px; }
  .section-head__title { font-size: 24px; }
  .section-head__desc { font-size: 15px; }
  .hero { padding-top: 8px; }
  .hero__panel { height: 520px; border-radius: var(--r-lg); }
  .hero__img { object-position: 58% 60%; }
  .hero__panel::after { background: linear-gradient(180deg, rgba(8, 22, 26, .74) 0%, rgba(8, 22, 26, .45) 55%, rgba(8, 22, 26, .4) 100%); }
  .hero__copy { padding: 32px 22px 0; }
  .hero__sub { font-size: 15px; margin-top: 12px; }
  .hero__private { margin-top: 14px; font-size: 15px; }
  .hero__lead { font-size: 18px; }
  .hero__sign { margin-top: 12px; font-size: 13px; }
  form.search { margin: -64px 8px 0; padding: 8px; border-radius: 18px; }
  .search__field { min-height: 64px; padding: 8px 14px; }
  .f-region, .f-people { grid-column: 1 / -1; }
  .f-start::before, .f-people::before { display: none; }
  .f-end::before { display: block; }
  .f-start, .f-end, .f-people { border-top: 1px solid var(--line-2); border-radius: 0; }
  .search__input { font-size: 16px; }
  .flow { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; margin-top: 20px; padding-inline: 8px; }
  .flow__sep { display: none; }
  .flow__step { flex-direction: column; gap: 6px; font-size: 13px; text-align: center; line-height: 1.35; }
  .section-head__side.btn--ghost { margin-left: -12px; }
  .promo__deal { grid-template-columns: 1fr; gap: 10px; }
  .promo__total { text-align: left; }
  .promo__total span { display: inline; margin-right: 8px; }
  .deals { grid-auto-columns: 80%; }
  .promos { grid-template-columns: 1fr; gap: 16px; }
  .promo__body { padding: 18px 18px 20px; }
  .promo__avg strong { font-size: 24px; }
  .camp-track { grid-auto-columns: 72%; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); scroll-padding-inline: var(--gutter); }
  .camp-nav { display: none; }
  .grid-cards { grid-template-columns: repeat(2, 1fr); gap: 28px 12px; }
  .panel { padding: 18px; }
  .slot { grid-template-columns: 72px 1fr auto; gap: 12px; }
  .slot__tagline { font-size: 13px; }
  .slot__name span { display: block; margin-left: 0; }
  .slot__price { text-align: left; }
  .recruit { min-height: 280px; align-items: flex-end; border-radius: var(--r-lg); }
  .recruit::after { background: linear-gradient(0deg, rgba(10, 69, 82, .95) 0%, rgba(10, 69, 82, .7) 45%, rgba(10, 69, 82, .1) 100%); }
  .recruit__body { padding: 28px 22px 32px; }
  .recruit__title { font-size: 24px; }
  .recruit__desc { font-size: 15px; }
  .recruit__tel { font-size: 20px; min-height: 52px; margin-top: 18px; }
  .search-panel { grid-template-columns: 1fr 1fr; padding: 16px; }
  .search-panel .btn { grid-column: span 2; }
  .quick { right: 12px; bottom: calc(84px + env(safe-area-inset-bottom)); }
  .quick { gap: 6px; }
  body:not(.home) .quick { display: none; }
  .quick a { width: 50px; height: 50px; border-radius: 14px; font-size: 11px; gap: 1px; }
  .quick a .icon { width: 18px; height: 18px; }
  .m-bar { display: flex; }
  .footer { padding-bottom: calc(40px + 76px); }
}
@media (max-width: 480px) {
  .grid-cards { grid-template-columns: 1fr; gap: 28px; }
  .grid-cards--used { grid-template-columns: 1fr 1fr; gap: 24px 12px; }
  .grid-cards--used .car__name { font-size: 15px; }
  .grid-cards--used .used__meta { font-size: 13px; }
  .grid-cards--used .used__price { font-size: 16px; }
  .grid-cards--used .car__media { border-radius: var(--r); }
  .grid-cards--used .tag { height: 22px; font-size: 12px; padding: 0 8px; }
  .hero__title { font-size: 28px; }
  .search-panel { gap: 10px; }
  .deal__price-now { font-size: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
  .js .reveal { opacity: 1; transform: none; }
}

/* ===================
   7. [WP] 워드프레스용 보정 (시안에 없는 부분 — 최소한만)
   =================== */
/* 스킵 링크 */
.skip-link { position: absolute; left: 16px; top: -120px; z-index: 1000; display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border-radius: var(--r-sm); background: var(--ink); color: #fff; font-size: 15px; font-weight: 600; text-decoration: none; }
.skip-link:focus { top: calc(var(--cnc-adminbar) + 8px); outline-color: #fff; }

/* 관리 바(로그인한 관리자에게만 보인다)가 고정 헤더·드로어를 가리지 않게 */
body.admin-bar { --cnc-adminbar: 32px; --fxrent-header-h: 104px; }
.header { top: var(--cnc-adminbar); }
.drawer { top: var(--cnc-adminbar); }
@media (max-width: 1024px) {
  body.admin-bar { --fxrent-header-h: 96px; }
}
@media (max-width: 782px) {
  body.admin-bar { --cnc-adminbar: 46px; --fxrent-header-h: 110px; }
}
@media (max-width: 600px) {
  /* 이 폭에서는 관리 바가 화면에 고정되지 않고 같이 스크롤된다 */
  body.admin-bar { --cnc-adminbar: 0px; --fxrent-header-h: 64px; }
  html:has(body.admin-bar) { scroll-padding-top: calc(var(--header-h) + 16px); }
}

/* 어두운 배경 위 포커스 링 */
.hero__pause:focus-visible, .recruit :focus-visible, .drawer__dim:focus-visible { outline-color: #fff; }
.f-region:focus-within { box-shadow: inset 0 0 0 2px var(--brand); }

/* 홈: 이벤트 카드 줄이 없을 때 프로모션 카드가 윗줄 역할 */
.promos:first-child { margin-top: 0; }
.section-more { display: flex; justify-content: center; margin-top: 32px; }
.cnc-noscript { font-size: 15px; color: var(--muted); }

/* 차량 등록 모집: 전화 버튼 + 파트너 신청 버튼 */
.recruit__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 0; }
.recruit__apply, .recruit__actions .recruit__tel { margin-top: 24px; }
@media (max-width: 768px) { .recruit__apply, .recruit__actions .recruit__tel { margin-top: 18px; } }
.recruit__apply { display: inline-flex; align-items: center; justify-content: center; min-height: 56px; padding: 0 24px; border: 1.5px solid rgba(255, 255, 255, .85); border-radius: var(--r); color: #fff; font-size: 17px; font-weight: 700; transition: background-color var(--dur) var(--ease); }
.recruit__apply:hover { background: rgba(255, 255, 255, .14); }

/* 일반 페이지 · 목록 · 404 */
.cnc-main { display: block; min-height: 50vh; }
.cnc-page { padding-top: 56px; }
.cnc-page__inner { max-width: calc(var(--cnc-narrow) + var(--gutter) * 2); }
.cnc-page__inner--wide { max-width: calc(var(--container) + var(--gutter) * 2); }
.cnc-page__title { margin-bottom: 32px; font-size: 32px; font-weight: 700; line-height: 1.3; letter-spacing: -0.02em; text-wrap: balance; }
.cnc-page__meta { margin: -20px 0 32px; font-size: 14px; color: var(--muted); }
.cnc-entry--text { font-size: 16px; line-height: 1.75; color: var(--ink-2); overflow-wrap: anywhere; }
.cnc-entry--text > * + * { margin-top: 1em; }
.cnc-entry--text :is(h2, h3, h4) { margin-top: 2em; color: var(--ink); font-weight: 700; line-height: 1.35; letter-spacing: -0.02em; }
.cnc-entry--text h2 { font-size: 24px; }
.cnc-entry--text h3 { font-size: 20px; }
.cnc-entry--text h4 { font-size: 17px; }
.cnc-entry--text :is(ul, ol) { padding-left: 1.4em; }
.cnc-entry--text ul { list-style: disc; }
.cnc-entry--text ol { list-style: decimal; }
.cnc-entry--text li + li { margin-top: .35em; }
.cnc-entry--text a { color: var(--brand); text-decoration: underline; text-underline-offset: 3px; }
.cnc-entry--text a:hover { color: var(--brand-deep); }
.cnc-entry--text img { max-width: 100%; height: auto; border-radius: var(--r); }
.cnc-entry--text table { width: 100%; border-collapse: collapse; font-size: 15px; }
.cnc-entry--text :is(th, td) { padding: 10px 12px; border: 1px solid var(--line); text-align: left; }
.cnc-entry--text th { background: var(--bg-2); color: var(--ink); }
.cnc-entry--text blockquote { padding: 4px 0 4px 16px; border-left: 3px solid var(--brand-line); color: var(--ink-2); }
.cnc-entry--wide { min-width: 0; }
.cnc-entry--wide img { max-width: 100%; height: auto; }
.cnc-rental { min-width: 0; }

.cnc-list__item { padding: 28px 0; border-bottom: 1px solid var(--line); }
.cnc-list__item:first-child { border-top: 1px solid var(--line); }
.cnc-list__title { font-size: 20px; font-weight: 700; line-height: 1.4; letter-spacing: -0.02em; }
.cnc-list__title a { color: var(--ink); text-decoration: none; }
.cnc-list__title a:hover { color: var(--brand); }
.cnc-list__meta { margin-top: 4px; font-size: 14px; color: var(--muted); }
.cnc-list__excerpt { margin-top: 8px; color: var(--ink-2); }
.cnc-pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 40px; }
.cnc-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 14px; border: 1px solid var(--line); border-radius: 999px; font-size: 15px; font-weight: 600; color: var(--ink-2); text-decoration: none; transition: border-color var(--dur) var(--ease); }
.cnc-pagination a.page-numbers:hover { border-color: var(--ink); }
.cnc-pagination .page-numbers.current { background: var(--brand); border-color: var(--brand); color: #fff; }

.cnc-search { display: flex; gap: 8px; max-width: 480px; }
.cnc-search__input { flex: 1; min-width: 0; min-height: 48px; padding: 0 16px; border: 1px solid var(--line); border-radius: var(--r); background: #fff; font-size: 16px; color: var(--ink); }
.cnc-search__input:hover { border-color: var(--ink-2); }
.cnc-notfound { padding-top: 96px; text-align: center; }
.cnc-notfound .cnc-search { margin: 32px auto 0; }
.cnc-notfound__code { font-size: 64px; font-weight: 800; line-height: 1; letter-spacing: -0.03em; color: var(--brand); font-variant-numeric: tabular-nums; }
.cnc-notfound__title { margin-top: 16px; font-size: 28px; font-weight: 700; }
.cnc-notfound__text { margin-top: 8px; color: var(--muted); }
.cnc-notfound__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 24px; }

/* 퀵 버튼·푸터 여백: 홈이 아닌 화면은 하단 예약 바가 없다(상세는 애드온의 .m-book 이 있다) */
body.cnc-route-detail .footer { padding-bottom: 40px; }
@media (min-width: 1025px) and (max-width: 1399px) {
  body.cnc-route-detail .quick { right: auto; left: 16px; }
}
@media (max-width: 1024px) {
  body:not(.cnc-is-home):not(.cnc-route-detail) .quick { opacity: 1; visibility: visible; transform: none; }
  body.cnc-route-detail .quick { bottom: calc(84px + env(safe-area-inset-bottom)); }
  body.cnc-route-detail.is-past-head .quick { opacity: 1; visibility: visible; transform: none; }
  body.cnc-route-detail .footer { padding-bottom: calc(40px + 76px); }
}
@media (max-width: 768px) {
  body:not(.cnc-is-home):not(.cnc-route-detail) .quick { bottom: calc(24px + env(safe-area-inset-bottom)); }
  body:not(.cnc-is-home):not(.cnc-route-detail) .footer { padding-bottom: 40px; }
  .cnc-page { padding-top: 32px; }
  .cnc-page__title { font-size: 26px; margin-bottom: 24px; }
  .cnc-notfound { padding-top: 64px; }
  .cnc-notfound__code { font-size: 48px; }
}
@media (max-width: 480px) {
  .cnc-search { flex-direction: column; }
  .cnc-search .btn { width: 100%; }
}

/* 검색 패널 열이 날짜 입력의 최소 폭 때문에 좁은 화면에서 넘치지 않게 */
.search-panel > *, .search-panel label, .search-panel .select { min-width: 0; }
.search-panel input[type="date"] { min-width: 0; max-width: 100%; box-sizing: border-box; }
form.search .search__field { min-width: 0; }
form.search input[type="date"] { min-width: 0; max-width: 100%; }

/* 주문서·완료 화면 제목(뷰가 자체 제목을 그리지 않는다) — 뷰 폭(720px)에 맞춘다 */
.cnc-rental__title { max-width: 720px; margin: 40px auto 0; padding-inline: 16px; font-size: 28px; font-weight: 700; line-height: 1.3; letter-spacing: -0.02em; color: var(--ink); }
@media (max-width: 480px) { .cnc-rental__title { margin-top: 24px; font-size: 24px; } }

/* 마이페이지(FluxMember) — 모바일에서 1fr 트랙이 메뉴의 min-content(가로 나열)만큼 늘어나 화면이 옆으로 밀린다.
   코어 CSS 는 건드리지 않고 트랙 하한만 0 으로 낮춘다(메뉴는 자체 overflow:auto 로 가로 스크롤). */
@media (max-width: 768px) {
	.fluxmember-mypage { grid-template-columns: minmax(0, 1fr); }
	.fluxmember-mypage > * { min-width: 0; }
}

/* 게시판(FluxBoard) 글 상세 — 코어 CSS 가 .fluxboard-board-view 자체에 960px 상한을 걸어
   같은 페이지의 목록(폭 제한 없음, 컨테이너 그대로)보다 좁아 보인다. 목록과 같은 폭으로 맞춘다. */
.cnc-page__inner--wide .fluxboard-board-view.fluxboard-board-view {
	max-width: none;
	margin: 0;
	padding: 24px 0 0;
}
