/* SeoulSaver v41 — shared design system (CEO 승인 방향안, 2026-10-23)
   기준: v41-design-direction-2026-10-23/prototype/style.css (정본) + 하위 표면용 확장 컴포넌트
   UI: 무채색・흰 카드 / 색은 사진 + 강조색 1개(CTA・배지)만 / LINE 버튼만 플랫폼 그린 예외 */
:root{
  --bg:#F6F6F4; --card:#FFFFFF; --ink:#1B1B18; --sub:#6E6E66; --line:#E7E7E1;
  --accent:#E4572E; --accent-ink:#FFFFFF;
  --line-green:#06C755;
  --radius:18px;
  --shadow:0 2px 14px rgba(27,27,24,.07);
}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  background:var(--bg); color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP",sans-serif;
  font-size:16px; line-height:1.75;
  padding-bottom:env(safe-area-inset-bottom);
}
a{color:inherit}
img{display:block;max-width:100%}

/* header */
header.site{
  background:var(--card); border-bottom:1px solid var(--line);
  padding:calc(10px + env(safe-area-inset-top)) 20px 0;
  position:sticky; top:0; z-index:10;
}
header.site .bar{display:flex;align-items:baseline;justify-content:space-between;max-width:640px;margin:0 auto}
.logo{font-family:Georgia,"Hiragino Mincho ProN",serif;font-size:22px;letter-spacing:.02em;text-decoration:none}
.logo b{font-weight:700}.logo span{font-weight:400;color:var(--sub)}
.langs{font-size:13px;color:var(--sub)}
.langs a{text-decoration:none;padding:10px 4px;display:inline-block;min-height:48px;line-height:28px}
.langs a[aria-current]{color:var(--ink);font-weight:700}
nav.main{display:flex;gap:4px;max-width:640px;margin:2px auto 0;justify-content:space-between}
nav.main a{
  flex:0 1 auto;text-align:center;text-decoration:none;font-size:13.5px;font-weight:600;white-space:nowrap;
  padding:12px 6px;min-height:48px;color:var(--sub);border-bottom:2px solid transparent;
}
nav.main a[aria-current]{color:var(--ink);border-bottom-color:var(--accent)}
/* EN/ES는 라벨이 길어 5탭에서 넘침 — 해당 로케일만 축소 (2026-10-23 어학당 탭 추가에 수반) */
html[lang="en"] nav.main a,html[lang="es"] nav.main a{font-size:12.5px;padding:12px 4px;letter-spacing:-.02em}

/* layout */
.wrap{max-width:640px;margin:0 auto;padding:0 16px 40px}
section{margin-top:34px}
h2.sec{font-size:21px;line-height:1.45;font-weight:800;letter-spacing:.01em;margin-bottom:6px}
p.sec-lead{color:var(--sub);font-size:14.5px;margin-bottom:14px}

/* hero */
.hero{position:relative;margin:0 -16px}
.hero img.ph{width:100%;height:340px;object-fit:cover}
.hero .scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,16,10,0) 34%,rgba(20,16,10,.62) 100%)}
.hero .cap{position:absolute;left:20px;right:20px;bottom:18px;color:#fff}
.hero .cap .kick{font-size:12.5px;font-weight:700;letter-spacing:.14em;opacity:.92}
.hero .cap h1{font-size:29px;line-height:1.38;font-weight:800;margin-top:6px;text-shadow:0 1px 10px rgba(0,0,0,.25)}
.hero-sub{font-size:15px;color:var(--ink);margin-top:16px}
.next-line{font-size:13.5px;color:var(--sub);margin-top:10px}
.next-line b{color:var(--ink)}

/* primary CTA — 화면당 1개, 전체폭 알약 */
.cta-main{
  display:flex;align-items:center;justify-content:center;gap:8px;
  width:100%;min-height:56px;margin-top:16px;
  background:var(--accent);color:var(--accent-ink);
  font-size:17px;font-weight:800;text-decoration:none;border-radius:999px;
  box-shadow:0 6px 18px rgba(228,87,46,.32);
}
.cta-line{
  display:flex;align-items:center;justify-content:center;gap:8px;
  width:100%;min-height:56px;margin-top:14px;
  background:var(--line-green);color:#fff;
  font-size:17px;font-weight:800;text-decoration:none;border-radius:999px;
  box-shadow:0 6px 18px rgba(6,199,85,.28);
}
.microcopy{font-size:12.5px;color:var(--sub);text-align:center;margin-top:8px}

/* number strip — 신뢰는 숫자로 */
.nums{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:20px}
.num{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 12px 12px;text-align:center}
.num .v{font-size:21px;font-weight:800;line-height:1.25;color:var(--ink);white-space:nowrap}
.num .v em{font-style:normal;color:var(--accent)}
.num .k{font-size:12px;color:var(--sub);margin-top:4px;line-height:1.5}
.src{font-size:11.5px;color:var(--sub);margin-top:8px}

/* step / link cards */
.card{
  display:block;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);
  text-decoration:none;overflow:hidden;margin-top:12px;
}
.card .ph{width:100%;height:168px;object-fit:cover}
.card .bd{padding:16px 18px 18px}
.card .step-tag{display:inline-block;font-size:11.5px;font-weight:800;letter-spacing:.12em;color:var(--accent)}
.card h3{font-size:18.5px;line-height:1.5;font-weight:800;margin-top:4px}
.card p{font-size:14.5px;color:var(--sub);margin-top:4px}
.card .go{font-size:14px;font-weight:700;color:var(--accent);margin-top:10px;display:inline-block;min-height:24px}

/* compact rows inside a step */
.rows{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);margin-top:12px;overflow:hidden}
.row{
  display:flex;align-items:center;gap:12px;text-decoration:none;
  padding:14px 16px;min-height:56px;border-top:1px solid var(--line);
}
.row:first-child{border-top:none}
.row .tx{flex:1}
.row .tx .t{font-size:15.5px;font-weight:700;line-height:1.45}
.row .tx .d{font-size:13px;color:var(--sub);line-height:1.5}
.row .fig{font-size:16px;font-weight:800;color:var(--accent);white-space:nowrap}
.row .tx .fig{display:inline-block;margin-top:3px;font-size:15.5px}
.row .arr{color:var(--sub);font-size:15px}
.badge{
  display:inline-block;font-size:11.5px;font-weight:700;line-height:1;
  padding:5px 8px;border-radius:999px;background:#FFF1E9;color:var(--accent);white-space:nowrap;
}
.badge.gray{background:#F0F0EC;color:var(--sub)}

/* article cards (magazine grammar) */
.art{display:flex;gap:14px;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px;text-decoration:none;margin-top:12px;align-items:center}
.art img{width:92px;height:92px;border-radius:12px;object-fit:cover;flex:none}
.art .t{font-size:15.5px;font-weight:700;line-height:1.55}
.art .d{font-size:13px;color:var(--sub);margin-top:3px;line-height:1.5}

/* product card (numbers first) */
.prod{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 18px;margin-top:12px}
.prod .price{font-size:27px;font-weight:800;line-height:1.3}
.prod .price small{font-size:13px;font-weight:700;color:var(--sub)}
.prod .date{font-size:16px;font-weight:800;margin-top:6px}
.prod p{font-size:14.5px;color:var(--sub);margin-top:6px}
.text-link{display:inline-block;font-weight:700;color:var(--accent);text-decoration:none;padding:10px 0;min-height:48px;line-height:28px}

/* footer */
footer.site{border-top:1px solid var(--line);margin-top:44px;padding:22px 20px calc(26px + env(safe-area-inset-bottom));background:var(--card)}
footer.site .in{max-width:640px;margin:0 auto;font-size:13.5px;color:var(--sub)}
footer.site .links a{display:inline-block;padding:8px 10px 8px 0;min-height:40px;color:var(--ink);text-decoration:none;font-weight:600}

/* ===== v41 확장 컴포넌트 (하위 표면용) ===== */

/* 사진 없는 표면의 제목 블록 */
.page-head{margin-top:26px}
.page-head .kick{font-size:12.5px;font-weight:700;letter-spacing:.14em;color:var(--accent)}
.page-head h1{font-size:26px;line-height:1.42;font-weight:800;margin-top:6px}
.page-head .lead{font-size:15px;color:var(--sub);margin-top:10px}

/* 사진 히어로 (소형 — 하위 표면용) */
.hero.sm img.ph{height:220px}
.hero.sm .cap h1{font-size:24px}

/* 본문 블록 (긴 안내 페이지) */
.body-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 18px;margin-top:12px}
.body-card h3{font-size:17.5px;line-height:1.5;font-weight:800;margin:20px 0 6px}
.body-card h3:first-child{margin-top:0}
.body-card p{font-size:15px;margin-top:8px}
.body-card p.dim{color:var(--sub);font-size:14px}
.body-card ul,.body-card ol{margin:8px 0 4px;padding-left:22px;font-size:15px}
.body-card li{margin:5px 0}
.body-card a{color:var(--accent);font-weight:700;text-decoration:none}
.body-card .fig{font-weight:800;color:var(--accent)}

/* 각주・출처 (본문에서 분리한 근거 층) */
.foot-notes{margin-top:22px;border-top:1px solid var(--line);padding-top:12px}
.foot-notes .fn{font-size:12px;color:var(--sub);line-height:1.65;margin-top:5px}
.foot-notes .fn b{color:var(--ink)}

/* 안내 배너 (준비중・확인중 상태 표면) */
.notice{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 18px;margin-top:12px;text-align:left}
.notice .badge{margin-bottom:8px}
.notice h2,.notice h3{font-size:18px;line-height:1.5;font-weight:800}
.notice p{font-size:14.5px;color:var(--sub);margin-top:6px}

/* 비활성 슬롯 (제휴・미연결 표면 — 상태 유지용) */
.slot-box{border:1.5px dashed var(--line);border-radius:var(--radius);padding:18px;margin-top:12px;background:transparent}
.slot-box h3{font-size:16.5px;font-weight:800;margin-top:8px}
.slot-box p{font-size:14px;color:var(--sub);margin-top:4px}
button[disabled],.btn-off{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:48px;padding:12px 20px;margin-top:12px;border-radius:999px;
  border:1px solid var(--line);background:var(--card);color:var(--sub);
  font-size:15px;font-weight:700;font-family:inherit;
}

/* 폼 (login / waitlist / pilot) */
.field{margin-top:14px}
.field label{display:block;font-size:14px;font-weight:700;margin-bottom:6px}
.field .hint{font-size:12.5px;color:var(--sub);font-weight:400;margin-top:2px}
input[type="text"],input[type="email"],input[type="password"],input[type="date"],select,textarea{
  width:100%;min-height:48px;padding:12px 14px;font-size:17px;font-family:inherit;
  border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);
}
button.cta-main{border:none;cursor:pointer;font-family:inherit}
.form-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 18px;margin-top:12px}
.radio-list{display:grid;gap:8px;margin-top:6px}
.radio-list label{
  display:flex;align-items:center;gap:10px;min-height:48px;padding:10px 14px;
  border:1px solid var(--line);border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;
}
.radio-list input{width:20px;height:20px;flex:none;accent-color:var(--accent)}
.local-saved{background:#FFF1E9;color:var(--accent);border-radius:12px;padding:12px 14px;font-size:14px;font-weight:700;margin-top:12px}

/* 체크 행 (서류・준비 체크리스트) */
.checks{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);margin-top:12px;overflow:hidden}
.check{display:flex;gap:12px;padding:14px 16px;border-top:1px solid var(--line);min-height:56px;align-items:flex-start}
.check:first-child{border-top:none}
.check .dot{flex:none;width:22px;height:22px;border-radius:50%;border:2px solid var(--accent);margin-top:2px}
.check .tx{flex:1}
.check .tx .t{font-size:15.5px;font-weight:700;line-height:1.45}
.check .tx .d{font-size:13px;color:var(--sub);line-height:1.55}
.check .fig{font-size:15.5px;font-weight:800;color:var(--accent);white-space:nowrap}

/* 가로 스크롤 없는 미니 비교 (표 대체 — 2열 고정) */
.kv{display:grid;grid-template-columns:auto 1fr;gap:0;margin-top:12px;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.kv dt{padding:12px 14px;font-size:13.5px;font-weight:700;color:var(--sub);border-top:1px solid var(--line)}
.kv dd{padding:12px 14px 12px 4px;font-size:14.5px;font-weight:600;border-top:1px solid var(--line)}
.kv dt:first-of-type,.kv dd:first-of-type{border-top:none}

/* details 펼침 (근거・상세의 기본값 접힘) */
details.more{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);margin-top:12px;overflow:hidden}
details.more summary{
  padding:14px 16px;min-height:56px;font-size:15px;font-weight:700;cursor:pointer;list-style:none;
  display:flex;align-items:center;justify-content:space-between;
}
details.more summary::-webkit-details-marker{display:none}
details.more summary::after{content:"＋";color:var(--sub);font-weight:400}
details.more[open ] summary::after{content:"－"}
details.more .in{padding:0 16px 16px;font-size:14px;color:var(--sub)}
details.more .in p{margin-top:6px}
details.more .in a{color:var(--accent);font-weight:700;text-decoration:none}

/* 텍스트 위주 페이지의 본문 폭 (privacy 등) */
.prose{margin-top:20px}
.prose h2{font-size:19px;font-weight:800;line-height:1.5;margin:28px 0 8px}
.prose h2:first-child{margin-top:0}
.prose h3{font-size:16px;font-weight:800;margin:20px 0 6px}
.prose p{font-size:14.5px;margin-top:8px}
.prose ul,.prose ol{margin:8px 0;padding-left:22px;font-size:14.5px}
.prose li{margin:4px 0}
.prose a{color:var(--accent);font-weight:700;text-decoration:none}
.prose .dim{color:var(--sub);font-size:13px}
