/* =============================================
   KOREA NIGHTLIFE DIRECTORY — Global Design Tokens
   Applied to all static landing pages
   ============================================= */

:root {
  /* Typography */
  --font-body: 'Pretendard', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-display: 'Pretendard', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

  /* Colors — WCAG AA compliant */
  --text: #f0f0f5;
  --text-muted: #b8b8c8;
  --text-secondary: #9898ac;
  --bg-deep: #08081a;
  --bg-surface: #10102a;
  --navy: #0f0f2d;
  --accent-pink: #e91e8c;
  --accent-cyan: #00e5ff;

  /* Spacing */
  --space-xs: 0.5rem;
  --space-sm: 1rem;
  --space-md: 1.5rem;
  --space-lg: 2.5rem;
  --space-xl: 4rem;
  --space-2xl: 6rem;

  /* Layout */
  --container-max: 760px;
  --reading-max: 740px;
  --radius: 16px;
  --radius-sm: 8px;
  --radius-pill: 50px;

  /* Shadows */
  --shadow-sm: 0 2px 8px rgba(0,0,0,0.2);
  --shadow-md: 0 8px 30px rgba(0,0,0,0.25);
  --shadow-lg: 0 16px 48px rgba(0,0,0,0.3);
}

/* =============================================
   Base Typography Overrides (bigger, readable)
   ============================================= */

/* Ensure all landing page bodies get improved defaults */
[class$="-body"] {
  font-size: 18px;
  line-height: 1.85;
  color: var(--text);
  background: var(--bg-deep);
  font-family: var(--font-body);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* Paragraph — generous reading rhythm */
[class$="-body"] p {
  font-size: 1.08rem;
  line-height: 1.9;
  color: var(--text-muted);
  max-width: var(--reading-max);
}

/* Hero titles — larger, bolder */
[class$="-title"] {
  font-size: clamp(2.2rem, 7vw, 4rem) !important;
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: -0.02em;
}

/* Subtitles — bigger */
[class$="-subtitle"] {
  font-size: 1.2rem !important;
  color: var(--text-muted) !important;
  line-height: 1.6;
}

/* Section headings — larger scale */
[class$="-heading"] {
  font-size: clamp(1.9rem, 5vw, 2.8rem) !important;
  font-weight: 800;
  margin-bottom: var(--space-lg);
  letter-spacing: -0.015em;
  color: var(--text) !important;
}

[class$="-heading-sub"] {
  font-size: 1rem !important;
  color: var(--text-secondary) !important;
  font-weight: 400;
  letter-spacing: 0.04em;
  margin-top: 0.5rem;
}

/* Card text — bigger, higher contrast */
[class$="-card-title"] {
  font-size: 1.3rem !important;
  font-weight: 700;
  color: #fff !important;
  margin-bottom: 0.8rem;
  line-height: 1.4;
}

[class$="-card-text"] {
  font-size: 1.08rem !important;
  color: var(--text-muted) !important;
  line-height: 1.9;
}

[class$="-card-number"] {
  font-size: 2.2rem !important;
  font-weight: 900;
}

/* Cards — more padding, better spacing */
[class$="-card"] {
  padding: 2.2rem !important;
  border-radius: var(--radius) !important;
}

/* List items — bigger, higher contrast */
[class$="-list"] li {
  font-size: 1.08rem !important;
  color: var(--text-muted) !important;
  padding: 0.8rem 0 !important;
  line-height: 1.75;
}

/* FAQ — bigger, readable */
[class$="-faq-q"] {
  font-size: 1.2rem !important;
  font-weight: 600;
  padding: 1.5rem 0 !important;
  color: #fff !important;
  line-height: 1.5;
}

[class$="-faq-a"] p {
  font-size: 1.08rem !important;
  color: var(--text-muted) !important;
  line-height: 1.9 !important;
  padding-bottom: 1.5rem !important;
}

/* Final CTA text — bigger */
[class$="-final-text"] {
  font-size: 1.5rem !important;
  line-height: 1.9;
  color: var(--text) !important;
  max-width: var(--reading-max);
  margin-left: auto;
  margin-right: auto;
}

/* CTA buttons — bigger, bolder */
[class$="-hero-cta"],
[class$="-final-btn"] {
  font-size: 1.1rem !important;
  font-weight: 700;
  padding: 1.1rem 2.8rem !important;
  border-radius: var(--radius-pill) !important;
  letter-spacing: 0.02em;
}

/* Sticky bar button — bigger */
[class$="-sticky-btn"] {
  font-size: 1.05rem !important;
  font-weight: 700;
  padding: 1rem !important;
}

/* Badges — clearer */
[class$="-badge"] {
  font-size: 0.85rem !important;
  letter-spacing: 0.18em;
  padding: 0.5rem 1.4rem !important;
  font-weight: 600;
}

/* Footer — readable */
[class$="-footer"] {
  font-size: 0.85rem !important;
  color: var(--text-secondary) !important;
  padding-bottom: 7rem !important;
}

/* Sections — more breathing room */
[class$="-section"] {
  padding: 5.5rem 1.5rem !important;
}

/* Container — centered, max-width */
[class$="-container"] {
  max-width: var(--container-max) !important;
  margin: 0 auto !important;
}

/* =============================================
   Focus & Accessibility
   ============================================= */

/* Visible focus ring for keyboard users */
:focus-visible {
  outline: 2px solid var(--accent-cyan);
  outline-offset: 3px;
  border-radius: 4px;
}

/* Remove default focus for mouse users */
:focus:not(:focus-visible) {
  outline: none;
}

/* Skip to content (hidden, visible on focus) */
.skip-link {
  position: absolute;
  top: -100%;
  left: 50%;
  transform: translateX(-50%);
  background: var(--accent-pink);
  color: #fff;
  padding: 0.75rem 1.5rem;
  border-radius: 0 0 8px 8px;
  z-index: 10000;
  font-weight: 700;
  text-decoration: none;
}
.skip-link:focus {
  top: 0;
}

/* =============================================
   Responsive — Mobile readability boost
   ============================================= */
@media (max-width: 768px) {
  [class$="-body"] {
    font-size: 16.5px;
  }

  [class$="-section"] {
    padding: 3.5rem 1.2rem !important;
  }

  [class$="-card"] {
    padding: 1.8rem !important;
  }

  [class$="-card-text"],
  [class$="-faq-a"] p,
  [class$="-list"] li {
    font-size: 1rem !important;
  }
}

/* ── 가독성 기준선(2026): *{margin:0} 리셋 복구 — 본문 bare <p> 문단 여백·16px·줄간격.
   특이성 최저(요소 선택자)라 기존 스코프 규칙(.xxx p)·인라인이 그대로 우선한다. */
p { margin: 0 0 14px; font-size: 1rem; line-height: 1.7; }
li { line-height: 1.65; }
