:root {
  --pink: #ff8fb1;
  --pink-deep: #ff5c86;
  --ink: #2e2a33;
  --muted: #8a6e78;
  --bg: #fff1f6;
  --card: #ffffff;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: "Pretendard", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo",
    "Noto Sans KR", system-ui, sans-serif;
  color: var(--ink);
  background: var(--bg);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
.wrap { max-width: 880px; margin: 0 auto; padding: 0 24px; }
a { color: var(--pink-deep); }

/* hero */
header.hero {
  background: linear-gradient(180deg, #ffe0ec 0%, #ffb3c8 100%);
  text-align: center;
  padding: 72px 24px 80px;
}
.hero img.logo {
  width: 104px; height: 104px; border-radius: 28px;
  box-shadow: 0 12px 40px rgba(181, 48, 90, 0.28);
}
.hero h1 { font-size: 34px; font-weight: 800; margin: 24px 0 10px; }
.hero p.sub { font-size: 17px; color: #6b4452; margin: 0 auto; max-width: 520px; }
.badge {
  display: inline-block; background: #fff; color: var(--pink-deep);
  font-weight: 700; font-size: 14px; padding: 8px 16px; border-radius: 100px;
  margin-bottom: 8px;
}
.cta {
  display: inline-block; margin-top: 28px; background: var(--pink-deep); color: #fff;
  font-weight: 800; font-size: 16px; text-decoration: none;
  padding: 15px 32px; border-radius: 16px; box-shadow: 0 8px 24px rgba(255, 92, 134, 0.4);
}

/* sections */
section { padding: 56px 0; }
section h2 { font-size: 24px; font-weight: 800; text-align: center; margin: 0 0 8px; }
section .lead { text-align: center; color: var(--muted); margin: 0 0 32px; }
.grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 600px) { .grid { grid-template-columns: 1fr; } }
.card {
  background: var(--card); border-radius: 20px; padding: 24px;
  border: 1px solid #ffe3ec;
}
.card .emoji { font-size: 30px; }
.card h3 { margin: 10px 0 6px; font-size: 17px; }
.card p { margin: 0; color: var(--muted); font-size: 14px; }

/* safety */
.safety { background: #fff; }
.safety ul { max-width: 560px; margin: 0 auto; padding: 0; list-style: none; }
.safety li {
  padding: 14px 18px; margin-bottom: 10px; background: var(--bg);
  border-radius: 14px; font-size: 15px;
}
.safety li b { color: var(--pink-deep); }

/* footer */
footer { background: #2e2a33; color: #cbbfc6; padding: 40px 24px; text-align: center; font-size: 14px; }
footer a { color: #ffb3c8; text-decoration: none; margin: 0 10px; }
footer .small { color: #8a7d85; font-size: 12px; margin-top: 16px; }

/* legal pages */
.legal { background: #fff; min-height: 100vh; padding: 56px 0; }
.legal h1 { font-size: 26px; }
.legal h2 { font-size: 18px; margin-top: 32px; }
.legal p, .legal li { color: #4a3640; font-size: 15px; }
.legal .back { display: inline-block; margin-bottom: 24px; font-weight: 700; }
.legal .updated { color: var(--muted); font-size: 13px; }
