/* 상품 랜딩(/s/<slug>) 전용. 색·글꼴은 tokens.css 를 따른다. */
* { box-sizing: border-box; }
body {
  margin: 0; background: var(--bg); color: var(--fg);
  font-family: var(--font-body); font-weight: 300; line-height: 1.8;
  -webkit-font-smoothing: antialiased;
}
main { max-width: 560px; margin: 0 auto; padding: 0 22px 40px; }
.top {
  max-width: 560px; margin: 0 auto; padding: 18px 22px;
}
.top a {
  color: var(--fg); text-decoration: none;
  font-family: var(--font-display); font-size: 17px; letter-spacing: .02em;
}
.branch { color: var(--fg3); font-size: 13px; margin: 26px 0 10px; }
.branch .oh { font-family: var(--font-display); margin-right: 6px; }
.oh-geum { color: var(--o-geum); } .oh-hwa { color: var(--o-hwa); }
.oh-mok { color: var(--o-mok); } .oh-to { color: var(--o-to); } .oh-su { color: var(--o-su); }
h1 {
  font-family: var(--font-display); font-weight: 700;
  font-size: clamp(27px, 7.2vw, 34px); line-height: 1.42;
  margin: 0 0 14px; letter-spacing: -.01em;
}
.sub { color: var(--fg2); font-size: 15.5px; margin: 0 0 26px; }
.thumb { margin: 0 0 26px; }
.thumb img {
  width: 100%; height: auto; max-width: 100%; display: block;
  border-radius: 10px; border: 1px solid var(--rule);
}
.quote { margin: 0 0 30px; padding: 18px 20px; border-left: 2px solid var(--accent-dim); }
.quote p { font-family: var(--font-display); font-size: 16.5px; margin: 0 0 6px; }
.quote cite { color: var(--fg3); font-size: 13px; font-style: normal; }
.story p { margin: 0 0 16px; color: var(--fg); font-size: 15.5px; }
h2 {
  font-family: var(--font-display); font-weight: 700; font-size: 18px;
  margin: 38px 0 14px; color: var(--fg);
}
.who ul, .get ul { margin: 0; padding: 0; list-style: none; }
.who li, .get li {
  padding: 9px 0 9px 24px; position: relative;
  border-bottom: 1px solid var(--rule-soft); font-size: 15px;
}
.who li::before { content: '·'; position: absolute; left: 6px; color: var(--fg3); }
.get li::before { content: '—'; position: absolute; left: 0; color: var(--accent-dim); }
.trust {
  margin: 34px 0 0; color: var(--fg3); font-size: 13.5px;
  border-top: 1px solid var(--rule-soft); padding-top: 18px;
}
.offer { margin: 26px 0 0; text-align: center; }
.offer .price { margin: 0 0 14px; font-size: 15px; color: var(--fg2); }
.offer .price strong { color: var(--fg); font-size: 22px; font-weight: 500; margin-right: 8px; }
.cta {
  display: block; padding: 16px 20px; border-radius: 12px;
  background: var(--accent); color: var(--on-accent);
  font-size: 16.5px; font-weight: 500; text-decoration: none;
}
.cta:active { background: var(--accent-hi); }
.related ul { margin: 0; padding: 0; list-style: none; }
.related li { border-bottom: 1px solid var(--rule-soft); padding: 11px 0; }
.related a { color: var(--fg); text-decoration: none; font-size: 15px; display: block; }
.related span { color: var(--fg3); font-size: 13px; }
.foot {
  max-width: 560px; margin: 0 auto; padding: 26px 22px calc(30px + var(--safe-b));
  color: var(--fg3); font-size: 13px; border-top: 1px solid var(--rule-soft);
}
.foot a { color: var(--fg2); text-decoration: none; }
.foot p { margin: 10px 0 0; font-size: 12px; }
