/* CFL DS2 · opt-in scope only · docs/design-system-v2.md */
.cfl-ds2 {
  --ds-bg:#f7f3ec; --ds-surface:#fffdf9; --ds-ink:#24352d; --ds-muted:#59675e;
  --ds-line:#ebe4d9; --ds-control:#7b887d; --ds-primary:#3e634a; --ds-soft:#e8f0df;
  --ds-danger:#9a3434; --ds-warning:#88511f;
  --ds-s1:4px; --ds-s2:8px; --ds-s3:12px; --ds-s4:16px; --ds-s6:24px;
  --ds-s8:32px; --ds-s12:48px; --ds-gutter:16px; --ds-radius:20px;
  --ds-font: "Pretendard","Noto Sans KR",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  margin:0; background:var(--ds-bg); color:var(--ds-ink); font:400 1rem/1.6 var(--ds-font);
  word-break:keep-all; overflow-wrap:anywhere;
}
.cfl-ds2 *, .cfl-ds2 *::before, .cfl-ds2 *::after {box-sizing:border-box}
.cfl-ds2 :is(button,input,select,textarea) {font:inherit}
.cfl-ds2 :is(a,button,input,select,textarea,summary):focus-visible {outline:3px solid var(--ds-primary);outline-offset:3px}
.cfl-ds2 a {color:var(--ds-primary);text-underline-offset:4px}
.cfl-ds2 h1,.cfl-ds2 h2,.cfl-ds2 h3,.cfl-ds2 p {margin:0}
.cfl-ds2 h1 {font-size:1.75rem;line-height:1.3;letter-spacing:-.02em}
.cfl-ds2 h2 {font-size:1.375rem;line-height:1.35}
.cfl-ds2 h3 {font-size:1.125rem;line-height:1.4}
.cfl-ds2 h1,.cfl-ds2 h2,.cfl-ds2 h3 {font-weight:700}
.cfl-ds2 .ds-shell {max-width:1040px;margin-inline:auto;padding:var(--ds-s6) var(--ds-gutter) var(--ds-s12)}
.cfl-ds2 .ds-stack {display:grid;gap:var(--ds-s4)}
.cfl-ds2 .ds-section {margin-top:var(--ds-s8);scroll-margin-top:var(--ds-s6)}
.cfl-ds2 .ds-section>h2 {margin-bottom:var(--ds-s4)}
.cfl-ds2 .ds-card {padding:var(--ds-s4);border:1px solid var(--ds-line);border-radius:var(--ds-radius);background:var(--ds-surface)}
.cfl-ds2 .ds-edge {padding:var(--ds-s4) var(--ds-gutter);border-block:1px solid var(--ds-line);border-radius:0;background:var(--ds-surface)}
.cfl-ds2 .ds-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ds-s3)}
.cfl-ds2 .ds-row {display:flex;align-items:center;gap:var(--ds-s2);flex-wrap:wrap}
.cfl-ds2 .ds-between {justify-content:space-between}
.cfl-ds2 .ds-muted {color:var(--ds-muted);font-size:.875rem}
.cfl-ds2 .ds-badge {display:inline-flex;align-items:center;gap:var(--ds-s1);padding:var(--ds-s1) var(--ds-s2);border-radius:999px;background:var(--ds-soft);color:var(--ds-primary);font-size:.75rem;font-weight:500}
.cfl-ds2 .ds-number {font-size:2rem;line-height:1.2;font-weight:700;font-variant-numeric:tabular-nums}
.cfl-ds2 .ds-btn {display:inline-flex;align-items:center;justify-content:center;gap:var(--ds-s2);min-height:48px;min-width:44px;padding:var(--ds-s2) var(--ds-s4);border:1px solid var(--ds-primary);border-radius:12px;background:var(--ds-primary);color:white;font-weight:600;text-decoration:none;cursor:pointer}
.cfl-ds2 .ds-btn:hover {filter:brightness(.93)}
.cfl-ds2 .ds-btn:active {transform:translateY(1px)}
.cfl-ds2 .ds-btn--secondary {background:var(--ds-surface);color:var(--ds-primary)}
.cfl-ds2 .ds-btn:disabled {opacity:.55;cursor:not-allowed;transform:none}
.cfl-ds2 .ds-field {display:grid;gap:var(--ds-s2)}
.cfl-ds2 .ds-field input {min-width:0;width:100%;min-height:48px;border:1px solid var(--ds-control);border-radius:12px;padding:var(--ds-s3);background:var(--ds-surface);color:var(--ds-ink);font-size:1rem}
.cfl-ds2 .ds-field [aria-invalid=true] {border-color:var(--ds-danger)}
.cfl-ds2 .ds-error {color:var(--ds-danger);font-size:.875rem}
.cfl-ds2 details {border-top:1px solid var(--ds-line)}
.cfl-ds2 summary {min-height:44px;padding-block:var(--ds-s3);cursor:pointer;font-weight:600}
.cfl-ds2 details>div {padding-bottom:var(--ds-s4)}
.cfl-ds2 .ds-cherry {width:72px;height:72px;object-fit:contain;flex:none}
.cfl-ds2 .ds-cherry-card {display:flex;gap:var(--ds-s4);align-items:center}
.cfl-ds2 .ds-cherry-card>div {min-width:0}
.cfl-ds2 .ds-gallery img {width:100%;height:112px;object-fit:contain}
.cfl-ds2 figure {margin:0}
.cfl-ds2 .ds-swatches {display:flex;flex-wrap:wrap;gap:var(--ds-s3)}
.cfl-ds2 .ds-swatch {width:44px;height:44px;border-radius:12px;border:1px solid var(--ds-control)}
.cfl-ds2 .ds-table-wrap {overflow-x:auto}
.cfl-ds2 table {width:100%;border-collapse:collapse;font-size:.875rem}
.cfl-ds2 th,.cfl-ds2 td {text-align:left;padding:var(--ds-s3);border-bottom:1px solid var(--ds-line);vertical-align:top}
.cfl-ds2 .ds-phone {max-width:430px;background:var(--ds-bg);border:1px solid var(--ds-line)}
.cfl-ds2 .ds-phone-head {min-height:56px;display:flex;align-items:center;justify-content:space-between;padding-inline:16px;background:var(--ds-surface)}
.cfl-ds2 .ds-phone-body {padding:16px}
.cfl-ds2 .ds-phone .ds-edge {padding-inline:16px}
.cfl-ds2 .ds-dialog {color:var(--ds-ink);background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:20px;padding:24px;width:calc(100% - 32px);max-width:560px;max-height:85dvh;overflow-y:auto}
.cfl-ds2 .ds-dialog::backdrop {background:rgb(25 35 29 / .45)}
.cfl-ds2 .ds-dialog p {margin-block:16px}
@media(min-width:768px){.cfl-ds2{--ds-gutter:24px}.cfl-ds2 .ds-gallery{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(min-width:1200px){.cfl-ds2{--ds-gutter:32px}}
@media(max-width:767px){.cfl-ds2 .ds-dialog{position:fixed;inset:auto 0 0;margin:0;width:100%;max-width:none;border-radius:20px 20px 0 0;padding:24px 16px calc(24px + env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){.cfl-ds2 *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
