/* ============================================================
   RAVELER — 공통 스타일
   5개 페이지(index / 02 / 03 / 04 / 05)가 모두 이 파일을 씁니다.

   페이지 고유 스타일은 각 HTML의 <style>에 두십시오.
   컬러 토큰은 변경하지 마십시오.
   ============================================================ */

/* ── 토큰 ────────────────────────────────────────────────── */
:root{
  --ink:#16161d;
  --ink2:#45454f;
  --muted:#74747f;
  --purple:#6459d9;
  --purple-dk:#4a41ad;
  --soft:#eeedfe;
  --pline:#d5d2f7;
  --bg:#f4f5fb;
  --line:#e5e6f0;

  --font-body:"Pretendard Variable",Pretendard,-apple-system,system-ui,sans-serif;
  --font-display:"Paperlogy","Pretendard Variable",Pretendard,sans-serif;

  /* 고정 헤더 높이. 앵커 이동 시 scroll-margin-top 기준값 */
  --nav-h:64px;
}

/* ── 기본 ────────────────────────────────────────────────── */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--bg);
  background-image:radial-gradient(circle at 84% 5%,#e7e5fb 0%,rgba(231,229,251,0) 42%);
  line-height:1.65;
  padding:var(--nav-h) 24px 0;  /* 상단은 고정 헤더 자리 */
  -webkit-font-smoothing:antialiased;
  word-break:keep-all;      /* 한글을 어절 단위로만 줄바꿈 (음절 중간 끊김 방지) */
  overflow-wrap:break-word; /* 긴 URL 등 예외는 넘치지 않게 */
}

/* 앵커 이동 시 고정 헤더에 가려지지 않도록 */
[id]{scroll-margin-top:calc(var(--nav-h) + 24px)}

/* ── 스킵 링크 (키보드 사용자용 본문 바로가기) ──────────────── */
.skip{position:absolute;left:8px;top:-60px;z-index:200;
  background:var(--purple);color:#fff;text-decoration:none;font-size:14px;font-weight:600;
  padding:10px 18px;border-radius:10px;transition:top .15s}
.skip:focus{top:8px;outline:3px solid var(--pline);outline-offset:2px}

/* ── GNB (고정 헤더) ─────────────────────────────────────── */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--nav-h);
  background:rgba(244,245,251,.82);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line)}
.navin{max-width:1040px;margin:0 auto;height:100%;padding:0 24px;display:flex;align-items:center}
.logo{font-family:var(--font-display);font-size:19px;font-weight:800;letter-spacing:.02em;
  color:var(--ink);text-decoration:none;flex-shrink:0}
.logo:focus-visible{outline:3px solid var(--pline);outline-offset:3px;border-radius:4px}

.gnb{display:flex;align-items:center;gap:22px;margin-left:auto}
.gnb a{position:relative;font-size:14px;font-weight:500;color:var(--ink2);text-decoration:none;
  padding:6px 0;white-space:nowrap;transition:color .15s}
.gnb a:hover{color:var(--ink)}
.gnb a:focus-visible{outline:3px solid var(--pline);outline-offset:3px;border-radius:4px}
.gnb a[aria-current="page"]{color:var(--purple-dk);font-weight:700}
.gnb a[aria-current="page"]::after{content:"";position:absolute;left:0;right:0;bottom:-1px;
  height:2px;background:var(--purple);border-radius:2px}

/* 상단 문의 버튼 — GNB 맨 끝의 채워진 버튼 */
.gnb .nav-cta{background:var(--purple);color:#fff;font-weight:700;
  padding:9px 18px;border-radius:10px;margin-left:4px}
.gnb .nav-cta:hover{background:var(--purple-dk);color:#fff}
.gnb .nav-cta::after{display:none!important}

/* 햄버거 */
.burger{display:none;margin-left:auto;width:40px;height:40px;padding:0;
  align-items:center;justify-content:center;flex-direction:column;gap:5px;
  background:none;border:none;cursor:pointer;border-radius:8px}
.burger span{display:block;width:20px;height:2px;background:var(--ink);border-radius:2px;transition:transform .2s,opacity .2s}
.burger:focus-visible{outline:3px solid var(--pline);outline-offset:2px}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

@media(max-width:920px){
  .burger{display:flex}
  .gnb{display:none;position:fixed;top:var(--nav-h);left:0;right:0;
    flex-direction:column;align-items:stretch;gap:0;margin-left:0;
    background:#fff;border-bottom:1px solid var(--line);padding:4px 24px 14px;
    box-shadow:0 12px 24px -12px rgba(22,22,29,.14)}
  .gnb.open{display:flex}
  .gnb a{padding:15px 0;font-size:15px;border-bottom:1px solid var(--line)}
  .gnb a:last-child{border-bottom:none}
  .gnb a[aria-current="page"]::after{display:none}
  /* 모바일 메뉴에서는 문의 버튼을 가로 꽉 찬 버튼으로 */
  .gnb .nav-cta{margin:14px 0 4px;padding:14px 0;text-align:center;border-bottom:none}
  .gnb .nav-cta:hover{color:#fff}
}

/* ── 레이아웃 ────────────────────────────────────────────── */
.wrap{max-width:1040px;margin:0 auto}
.narrow{max-width:940px;margin:0 auto}
.sec{padding-bottom:88px}
.hero{padding:92px 0 76px;position:relative}

/* 히어로 우측 여백의 추상 그래픽 (페이지별 SVG는 각 HTML에) */
.hero .inner{position:relative;z-index:1}
.hero-art{position:absolute;top:50%;right:0;transform:translateY(-50%);
  width:360px;height:360px;pointer-events:none;z-index:0}
@media(max-width:1080px){ .hero-art{right:-30px;width:300px;height:300px;opacity:.85} }
@media(max-width:900px){ .hero-art{display:none} }
@media(prefers-reduced-motion:no-preference){
  .hero-art .fl{animation:floaty 6s ease-in-out infinite}
  .hero-art .fl2{animation:floaty 7s ease-in-out infinite .8s}
}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}

/* ── 타이포 ──────────────────────────────────────────────── */
.eyebrow{display:inline-flex;align-items:center;gap:11px;
  font-size:12px;font-weight:600;letter-spacing:.2em;color:var(--purple);text-transform:uppercase;margin:0 0 16px}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--purple);border-radius:2px;flex-shrink:0}
h1,h2{font-family:var(--font-display);font-size:clamp(28px,4.2vw,44px);font-weight:800;letter-spacing:-.025em;line-height:1.34;margin:0 0 18px}
h3{font-family:var(--font-display);font-size:clamp(22px,3.1vw,31px);font-weight:700;letter-spacing:-.02em;line-height:1.4;margin:0 0 12px}
h4{font-family:var(--font-body)}
.card h4,.flowrow h4{font-family:var(--font-display);font-weight:700;letter-spacing:-.015em}
p{margin:0 0 14px;color:var(--ink2);font-size:16px}
.sub{font-size:clamp(15px,1.8vw,18px);color:var(--muted);max-width:660px;margin:0}
.sub b{color:var(--ink);font-weight:600}
.lead{font-size:clamp(16px,2vw,19px);color:var(--ink2);max-width:680px}
.lead b{color:var(--ink);font-weight:600}
.note{font-size:14px;color:var(--muted);margin-top:16px}
.hero h1 .ac,.hero h2 .ac{color:var(--purple)}

/* 출처 표기 — 수치를 쓸 때는 반드시 함께 */
.src{font-size:12px;color:var(--muted);margin:10px 0 0;line-height:1.6}

/* ── 버튼 ────────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;gap:8px;padding:16px 30px;border-radius:12px;
  background:var(--purple);color:#fff;text-decoration:none;font-size:16px;font-weight:600;
  border:none;cursor:pointer;font-family:inherit;transition:background .18s,transform .18s}
.btn:hover{background:var(--purple-dk);transform:translateY(-1px)}
.btn:focus-visible{outline:3px solid var(--pline);outline-offset:3px}
.btn .arw{transition:transform .18s}
.btn:hover .arw{transform:translateX(3px)}
.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}
.btn.ghost:hover{background:var(--soft);border-color:var(--pline)}
.btns{display:flex;gap:10px;flex-wrap:wrap;margin-top:34px}

/* ── 그리드 · 카드 ───────────────────────────────────────── */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:32px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:32px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:32px}
.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:28px 24px}
.card .k{font-size:12px;font-weight:700;color:var(--purple);letter-spacing:.1em;margin-bottom:14px}
.card h4{font-size:18px;font-weight:700;margin:0 0 8px;letter-spacing:-.02em}
.card p{font-size:15px;margin:0;color:var(--muted);line-height:1.65}
.card .badge{display:inline-block;margin-top:14px;font-size:12px;font-weight:600;
  background:var(--soft);color:var(--purple-dk);padding:4px 10px;border-radius:6px}

/* 링크가 되는 카드 */
a.card{display:block;text-decoration:none;color:inherit;transition:border-color .15s,transform .15s}
a.card:hover{border-color:var(--pline);transform:translateY(-2px)}
a.card:focus-visible{outline:3px solid var(--pline);outline-offset:2px}

/* 이동 링크 — 카드 전체가 링크일 때(span)도, 카드 안 링크일 때(a)도 씁니다 */
.go{display:inline-flex;align-items:center;gap:5px;margin-top:16px;
  font-size:13px;font-weight:600;color:var(--purple-dk);text-decoration:none}
.go .arw{transition:transform .18s}
a.card:hover .go .arw,a.go:hover .arw{transform:translateX(3px)}
a.go:hover{color:var(--purple)}
a.go:focus-visible{outline:3px solid var(--pline);outline-offset:3px;border-radius:4px}
.gos{display:flex;flex-wrap:wrap;gap:18px}

/* ── 표 ──────────────────────────────────────────────────── */
.tbl{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;margin-top:32px}
.tbl table{width:100%;border-collapse:collapse}
.tbl th,.tbl td{padding:15px 20px;text-align:left;font-size:15px;border-bottom:1px solid var(--line);vertical-align:top}
.tbl thead th{font-size:13px;font-weight:700;color:var(--muted);background:#fafaff}
.tbl thead th.hi{color:var(--purple-dk);background:var(--soft)}
.tbl td.hi{background:#fbfbff;color:var(--ink);font-weight:600}
.tbl td:first-child{color:var(--muted);font-size:14px;width:142px;font-weight:500}
.tbl tbody tr:last-child td{border-bottom:none}

/* ── 콜아웃 ──────────────────────────────────────────────── */
.callout{background:var(--soft);border-radius:12px;padding:20px 22px;margin-top:24px;
  font-size:15px;color:var(--purple-dk);line-height:1.75}
.callout strong{font-weight:700}

/* ── 체인 (단계 연결) ────────────────────────────────────── */
.chain{display:flex;align-items:stretch;margin-top:32px;flex-wrap:wrap}
.cstep{flex:1;min-width:150px;background:#fff;border:1px solid var(--line);padding:20px 18px}
.cstep:first-child{border-radius:16px 0 0 16px}
.cstep:last-child{border-radius:0 16px 16px 0}
.cstep+.cstep{border-left:none}
.cstep.on{background:var(--purple);border-color:var(--purple)}
.cstep .cn{font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.08em;margin-bottom:7px}
.cstep h4{font-size:14px;font-weight:700;margin:0 0 5px;letter-spacing:-.02em}
.cstep p{font-size:12px;margin:0;color:var(--muted);line-height:1.5}
.cstep.on .cn{color:#c9c5f5}
.cstep.on h4{color:#fff}
.cstep.on p{color:#c9c5f5}

/* 링크가 되는 체인 단계 */
a.cstep{text-decoration:none;color:inherit;transition:border-color .15s,background .15s}
a.cstep:hover{background:#fbfbff;border-color:var(--pline)}
a.cstep:focus-visible{outline:3px solid var(--pline);outline-offset:-1px}

/* ── 진행 순서 ───────────────────────────────────────────── */
.flow{margin-top:32px}
.flowrow{display:flex;gap:16px;padding:20px 0;border-bottom:1px solid var(--line)}
.flowrow:last-child{border-bottom:none}
.fi{width:28px;height:28px;border-radius:8px;background:var(--soft);color:var(--purple-dk);
  display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0;margin-top:2px}
.flowrow h4{font-size:16px;font-weight:700;margin:0 0 4px;letter-spacing:-.02em}
.flowrow p{font-size:14px;margin:0;color:var(--muted);line-height:1.65}

/* ── 가격 박스 ───────────────────────────────────────────── */
.pricebox{background:#fff;border:1px solid var(--line);border-radius:16px;padding:36px;margin-top:32px;
  display:flex;align-items:center;gap:36px;flex-wrap:wrap}
.pricebox .big{font-family:var(--font-display);font-size:46px;font-weight:700;letter-spacing:-.035em;line-height:1.1;white-space:nowrap}
.pricebox .big small{font-size:18px;font-weight:500;color:var(--muted);margin-left:4px}
.pricebox .pd{flex:1;min-width:260px}
.pricebox .pd p{margin:0;font-size:15px;color:var(--muted);line-height:1.75}
.pricebox .pd b{color:var(--ink);font-weight:600}

/* ── 필 (필터 버튼) ──────────────────────────────────────── */
.pill{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 14px;
  font-size:13px;font-weight:500;color:var(--ink2);cursor:pointer;font-family:inherit;transition:all .15s}
.pill:hover{border-color:var(--pline)}
.pill[aria-pressed="true"]{background:var(--purple);border-color:var(--purple);color:#fff;font-weight:600}
.pill:focus-visible{outline:3px solid var(--pline);outline-offset:2px}

/* ── 칩 (선택 항목) ──────────────────────────────────────── */
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{border:1px solid var(--line);background:#fbfbfe;border-radius:10px;padding:11px 16px;
  font-size:14px;font-weight:500;color:var(--ink2);cursor:pointer;font-family:inherit;transition:all .15s}
.chip:hover{border-color:var(--pline)}
.chip[aria-pressed="true"]{background:var(--soft);border-color:var(--purple);color:var(--purple-dk);font-weight:600}
.chip:focus-visible{outline:3px solid var(--pline);outline-offset:2px}

/* ── 다음 단계 ───────────────────────────────────────────── */
.next{border-top:1px solid var(--line);padding:48px 0 0;margin-bottom:88px}
.nextrow{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:24px}
.step{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 16px;font-size:14px;font-weight:600;color:var(--muted)}
.step.on{background:var(--purple);border-color:var(--purple);color:#fff}
.step.nx{background:#fff;border-color:var(--pline);color:var(--purple-dk)}
.sep{color:var(--muted);font-size:14px}

/* ── 문의 · 폼 ───────────────────────────────────────────── */
.req{background:#fff;border:1px solid var(--line);border-radius:20px;padding:46px;margin-bottom:36px}
.req .lead{margin-bottom:32px}
.form{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.f-full{grid-column:1/-1}
label{display:block;font-size:13px;font-weight:600;color:var(--ink2);margin-bottom:7px}
label .rq{color:var(--purple);margin-left:2px}
input[type=text],textarea,select{
  width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:10px;
  font-size:15px;font-family:inherit;color:var(--ink);background:#fbfbfe;line-height:1.5}
textarea{resize:vertical;min-height:100px}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--purple);background:#fff}
.hint{font-size:13px;color:var(--muted);margin:8px 0 0}
.send{margin-top:28px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.sendnote{font-size:13px;color:var(--muted)}

/* ── 푸터 ────────────────────────────────────────────────── */
.foot{text-align:center;font-size:14px;color:var(--muted);padding-bottom:80px}

/* ── 모바일 ──────────────────────────────────────────────── */
@media(max-width:760px){
  body{padding:var(--nav-h) 20px 0}
  .lead br{display:none}
  .hero{padding:62px 0 52px}
  .sec{padding-bottom:58px}
  .grid2,.grid3,.grid4{grid-template-columns:1fr}
  .tbl th,.tbl td{padding:13px 12px;font-size:14px}
  .tbl td:first-child{width:100px;font-size:13px}
  .chain{gap:10px}
  .cstep,.cstep:first-child,.cstep:last-child{border-radius:12px;border-left:1px solid var(--line)}
  .cstep.on{border-color:var(--purple)}
  .pricebox{padding:26px;gap:20px}
  .pricebox .big{font-size:38px}
  .next{margin-bottom:48px}
  .req{padding:26px 22px}
  .form{grid-template-columns:1fr}
}

/* ── 모션 최소화 ─────────────────────────────────────────── */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition:none!important;animation:none!important}
}
