/* ═══════════════════════════════════════════════════════
   정육본가 Design System v5 FINAL
   DARK 페이지: 홈/카테고리/상품상세
   LIGHT 페이지: 나머지 14페이지 (헤더=검정, 본문=흰색)
═══════════════════════════════════════════════════════ */
:root {
  --gold:    #C9A84C;
  --gold-lt: #E8C97A;
  --gold-dk: #A8862A;
  --gold-dim:rgba(201,168,76,.15);
  --gold-bdr:rgba(201,168,76,.4);
  --black:   #0F0F0F;
  --black2:  #1A1A1A;
  --black3:  #242424;
  --white:   #FFFFFF;
  --offwhite:#F8F5F0;
  --dark-txt:#111111;
  --mid-txt: #555555;
  --gray-txt:#888888;
  --line-lt: rgba(201,168,76,.35);
  --r-sm:6px; --r-md:12px; --r-lg:18px;
  --font:'Noto Sans KR',sans-serif;
  --serif:'Noto Serif KR',serif;
  --max-w:430px; --hh:56px; --nh:64px;
  --shadow-gold:0 2px 16px rgba(201,168,76,.2);
  /* ── 텍스트 테마 변수 ── */
  --text-primary: #FFFFFF;
  --text-high: #F0F2F5;
  --text-medium: #D1D5DB;
  --text-low: #9CA3AF;
  --light-bg: #FAF6F0;
  --light-text-main: #1A1A1A;
  --light-text-body: #333333;
  --light-text-sub: #887365;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;-webkit-text-size-adjust:100%}
body{font-family:var(--font);background:#0a0a0a;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button{cursor:pointer;border:none;background:none;font-family:inherit}
input,select,textarea{font-family:inherit;outline:none}
img{max-width:100%;display:block}

/* APP WRAP */
.app-wrap{
  width:100%;max-width:var(--max-w);min-height:100vh;
  margin:0 auto;overflow-x:hidden;
  display:flex;flex-direction:column;
  box-shadow:0 0 0 1px var(--gold-bdr),0 0 40px rgba(0,0,0,.7);
}
@media(min-width:431px){body{background:#050505}}

/* ── 공통 헤더 (검정+골드) ── */
.hdr{
  position:sticky;top:0;z-index:200;width:100%;height:var(--hh);
  background:var(--black);border-bottom:2px solid var(--gold);
  display:flex;align-items:center;justify-content:space-between;
  padding:0 14px;box-sizing:border-box;
  box-shadow:0 2px 12px rgba(201,168,76,.15);
}
.hdr-logo{
  font-family:var(--serif);font-size:1.05rem;font-weight:700;
  color:var(--gold);letter-spacing:.06em;cursor:pointer;line-height:1.2;
}
.hdr-logo small{font-size:.58rem;color:rgba(201,168,76,.55);letter-spacing:.14em;display:block;font-family:var(--font);font-weight:400}
.hdr-title{
  font-family:var(--serif);font-size:.95rem;font-weight:700;color:var(--white);
  position:absolute;left:50%;transform:translateX(-50%);letter-spacing:.04em;white-space:nowrap;
}
.hdr-btn{
  width:38px;height:38px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:1rem;color:var(--white);cursor:pointer;background:transparent;
  transition:all .15s;position:relative;z-index:1;border:none;
}
.hdr-btn:hover{background:var(--gold-dim);color:var(--gold)}
.hdr-badge{
  position:absolute;top:4px;right:4px;width:16px;height:16px;
  border-radius:50%;background:var(--gold);color:var(--black);
  font-size:.6rem;font-weight:900;display:flex;align-items:center;justify-content:center;
}

/* ── 공통 하단 네비 ── */
.nav{
  position:fixed;bottom:0;left:50%;transform:translateX(-50%);
  z-index:200;width:100%;max-width:var(--max-w);height:var(--nh);
  background:var(--black);border-top:.5px solid #9C7A2E;
  display:flex;box-sizing:border-box;
  padding:8px 0 calc(8px + env(safe-area-inset-bottom,0px));
  box-shadow:0 -4px 16px rgba(201,168,76,.12);
}
.nav-lt{
  position:fixed;bottom:0;left:50%;transform:translateX(-50%);
  z-index:200;width:100%;max-width:var(--max-w);height:var(--nh);
  background:#0F0F0F;border-top:.5px solid #9C7A2E;
  display:flex;box-sizing:border-box;
  padding:8px 0 calc(8px + env(safe-area-inset-bottom,0px));
  box-shadow:0 -4px 16px rgba(201,168,76,.12);
}
.nav-i{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;cursor:pointer;transition:opacity .15s,transform .15s}
.nav-i:active{opacity:.9;transform:scale(.98)}
.nav-ico{font-size:22px;line-height:1}
.nav .nav-i .nav-lbl{font-size:11px;font-weight:600;color:#8D8D8D;letter-spacing:0}
.nav .nav-i.on .nav-lbl{color:#D4AF37;font-weight:800}
.nav .nav-i.on .nav-ico{filter:drop-shadow(0 0 5px rgba(212,175,55,.55))}
.nav-lt .nav-i .nav-lbl{font-size:11px;font-weight:600;color:#8D8D8D;letter-spacing:0}
.nav-lt .nav-i.on .nav-lbl{color:#D4AF37;font-weight:800}
.nav-lt .nav-i.on .nav-ico{filter:drop-shadow(0 0 5px rgba(212,175,55,.55))}

/* ── DARK 콘텐츠 ── */
.dk-bg{background:var(--black)!important}
.dk-card{background:var(--black2);border:1.5px solid var(--gold-bdr);border-radius:var(--r-md);overflow:hidden}
.dk-card:hover{border-color:var(--gold);box-shadow:var(--shadow-gold)}
.dk-sec{padding:14px}
.dk-title{font-family:var(--serif);font-size:1rem;font-weight:700;color:var(--white);border-left:3px solid var(--gold);padding-left:10px;margin-bottom:12px}
.dk-more{font-size:.76rem;color:var(--gold);cursor:pointer;font-weight:600}
.dk-input{
  width:100%;height:50px;box-sizing:border-box;background:var(--black3);
  color:var(--white);border:1.5px solid rgba(201,168,76,.3);border-radius:var(--r-md);
  padding:0 14px;font-size:.9rem;transition:border-color .2s;
}
.dk-input:focus{border-color:var(--gold);background:rgba(201,168,76,.04)}
.dk-input::placeholder{color:rgba(255,255,255,.3)}
.dk-label{display:block;font-size:.72rem;font-weight:700;color:var(--gold);letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px}

/* ── LIGHT 콘텐츠 ── */
.lt-bg{background:var(--offwhite)!important}
.lt-card{background:var(--white);border:1.5px solid var(--line-lt);border-radius:var(--r-md);overflow:hidden;box-shadow:var(--shadow-gold)}
.lt-card-head{background:linear-gradient(135deg,#FFFBF2,#FFF6E0);border-bottom:1px solid rgba(201,168,76,.25);padding:12px 14px;display:flex;align-items:center;justify-content:space-between}
.lt-card-title{font-size:.9rem;font-weight:700;color:var(--dark-txt)}
.lt-sec{padding:14px}
.lt-label{display:block;font-size:.78rem;font-weight:700;color:var(--gold);letter-spacing:.08em;margin-bottom:5px}
.lt-divider{height:1px;background:rgba(201,168,76,.2)}
.lt-gap{height:8px;background:rgba(201,168,76,.06)}
.lt-input{
  width:100%;height:50px;box-sizing:border-box;background:var(--white);
  color:var(--dark-txt);border:1.5px solid rgba(201,168,76,.4);
  border-radius:var(--r-md);padding:0 14px;font-size:.9rem;
}
.lt-input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,168,76,.1)}
.lt-input::placeholder{color:var(--gray-txt)}
.lt-select{
  width:100%;height:50px;box-sizing:border-box;background:var(--white);
  color:var(--dark-txt);border:1.5px solid rgba(201,168,76,.4);
  border-radius:var(--r-md);padding:0 14px;font-size:.9rem;cursor:pointer;
}
.lt-textarea{
  width:100%;box-sizing:border-box;background:var(--white);color:var(--dark-txt);
  border:1.5px solid rgba(201,168,76,.4);border-radius:var(--r-md);
  padding:12px 14px;font-size:.9rem;resize:vertical;min-height:80px;font-family:inherit;
}
.lt-select:focus,.lt-textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,168,76,.1)}
.lt-menu{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--white);border-bottom:1px solid rgba(201,168,76,.15);cursor:pointer;transition:background .12s}
.lt-menu:hover{background:#FFFBF5}
.lt-menu-ico{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#FFF7ED,#FEF3C7);border:1px solid var(--gold);display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0}
.lt-menu-name{font-size:.9rem;font-weight:600;color:var(--dark-txt)}
.lt-menu-sub{font-size:.74rem;color:var(--gray-txt);margin-top:2px}
.lt-menu-arr{color:var(--gold);margin-left:auto;font-size:.9rem}

/* ── 버튼 ── */
.btn-gold{
  display:flex;align-items:center;justify-content:center;height:52px;width:100%;
  background:linear-gradient(135deg,var(--gold-dk),var(--gold),var(--gold-lt));
  color:var(--black);border:none;border-radius:16px;
  font-size:.9375rem;font-weight:900;cursor:pointer;letter-spacing:.05em;
  box-shadow:0 4px 20px rgba(201,168,76,.35);transition:opacity .15s;
}
.btn-gold:active{opacity:.9;transform:scale(.98)}
.btn-gold-sm{height:40px;padding:0 16px;border-radius:16px;background:linear-gradient(135deg,var(--gold-dk),var(--gold-lt));color:var(--black);border:none;font-size:.9375rem;font-weight:900;cursor:pointer}
.btn-outline{display:flex;align-items:center;justify-content:center;height:50px;padding:0 16px;background:transparent;color:var(--gold);border:1.5px solid var(--gold);border-radius:16px;font-size:.9375rem;font-weight:700;cursor:pointer;transition:all .15s}
.btn-outline:hover{background:var(--gold-dim)}
.btn-outline-dark{display:flex;align-items:center;justify-content:center;height:50px;padding:0 16px;background:transparent;color:var(--dark-txt);border:1.5px solid rgba(201,168,76,.5);border-radius:16px;font-size:.9375rem;font-weight:700;cursor:pointer}
.btn-danger{background:transparent;color:#DC2626;border:1.5px solid rgba(220,38,38,.4);border-radius:16px;height:50px;font-size:.9375rem;font-weight:700;cursor:pointer;width:100%;display:flex;align-items:center;justify-content:center;transition:opacity .15s,transform .15s}

/* ── 상태 칩 ── */
.chip,.status-chip{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:.7rem;font-weight:700}
.chip-gold,.status-preparing{background:var(--gold-dim);color:var(--gold);border:1px solid var(--gold-bdr)}
.chip-green,.status-done{background:rgba(22,163,74,.1);color:#15803D;border:1px solid rgba(22,163,74,.3)}
.chip-blue,.status-shipping{background:rgba(29,78,216,.1);color:#1D4ED8;border:1px solid rgba(29,78,216,.3)}
.chip-red,.status-cancel{background:rgba(220,38,38,.1);color:#DC2626;border:1px solid rgba(220,38,38,.3)}
.chip-gray,.status-pending{background:#F3F4F6;color:#6B7280;border:1px solid #E5E7EB}

/* ── 바텀시트 ── */
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:300;opacity:0;pointer-events:none;transition:opacity .25s}
.overlay.open{opacity:1;pointer-events:all}
.sheet{position:fixed;bottom:-100%;left:50%;transform:translateX(-50%);width:100%;max-width:var(--max-w);box-sizing:border-box;background:var(--white);border-radius:20px 20px 0 0;border-top:2px solid var(--gold);z-index:301;transition:bottom .32s cubic-bezier(.25,.46,.45,.94);box-shadow:0 -8px 40px rgba(201,168,76,.15)}
.sheet.open{bottom:0}
.sheet-handle{width:40px;height:4px;border-radius:2px;background:rgba(201,168,76,.3);margin:10px auto 0}
.sheet-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px;border-bottom:1px solid rgba(201,168,76,.2)}
.sheet-title{font-family:var(--serif);font-size:.95rem;font-weight:700;color:var(--dark-txt)}
.sheet-close{color:var(--gray-txt);cursor:pointer;font-size:1.1rem}

/* ── 상품 카드 ── */
.pcard{background:var(--black2);border:1.5px solid var(--gold-bdr);border-radius:var(--r-md);overflow:hidden;cursor:pointer;transition:all .2s}
.pcard:hover{border-color:var(--gold);box-shadow:var(--shadow-gold)}
.pcard-thumb{aspect-ratio:1/1;background:var(--black3);display:flex;align-items:center;justify-content:center;font-size:2.8rem;position:relative;overflow:hidden}
.pcard-thumb img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.pcard-info{padding:9px 11px 12px}
.pcard-cat{font-size:.62rem;color:var(--gold);letter-spacing:.08em;margin-bottom:3px;font-weight:700}
.pcard-name{font-size:.86rem;font-weight:700;color:var(--white);line-height:1.3;margin-bottom:4px}
.pcard-weight{font-size:.72rem;color:rgba(255,255,255,.35);margin-bottom:6px}
.disc-badge{position:absolute;top:7px;left:7px;background:var(--gold);color:var(--black);font-size:.62rem;font-weight:900;padding:3px 7px;border-radius:4px}
.sold-dim{position:absolute;inset:0;background:rgba(0,0,0,.72);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:.9rem;color:rgba(255,255,255,.6);letter-spacing:.12em}

/* ── 토스트 ── */
.toast{position:fixed;bottom:76px;left:50%;transform:translateX(-50%);background:linear-gradient(135deg,var(--gold-dk),var(--gold-lt));color:var(--black);font-weight:800;padding:11px 22px;border-radius:999px;font-size:.88rem;white-space:nowrap;z-index:9999;opacity:0;pointer-events:none;transition:opacity .3s;box-shadow:0 4px 24px rgba(201,168,76,.4)}
.toast.show{opacity:1}

/* ── 스켈레톤 (골드 shimmer) ── */
.skel{background:linear-gradient(90deg,#1A1A1A 25%,rgba(201,168,76,.07) 50%,#1A1A1A 75%);background-size:200% 100%;animation:sk 1.5s infinite;border-radius:6px}
@keyframes sk{to{background-position:-200% 0}}
.skel-thumb{aspect-ratio:1/1;border-radius:var(--radius-md) var(--radius-md) 0 0}
.skel-line{height:12px;border-radius:4px;margin-bottom:7px}
.skel-line:last-child{margin-bottom:0}

/* ── 호환 클래스 ── */
.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:16px;font-size:.9375rem;font-weight:700;cursor:pointer;transition:opacity .15s,transform .15s,background .15s,border-color .15s,color .15s;border:none;padding:0 16px;height:48px}
.btn-primary{background:linear-gradient(135deg,var(--gold-dk),var(--gold-lt));color:var(--black)}
.btn-secondary{background:var(--offwhite);color:var(--dark-txt);border:1.5px solid rgba(201,168,76,.4)}
.btn-full{width:100%}.btn-lg{height:52px;font-size:.9375rem}.btn-sm{height:36px;font-size:.8125rem;padding:0 12px}
.btn:active,.btn-outline:active,.btn-outline-dark:active,.btn-danger:active,.btn-gold-sm:active{opacity:.9;transform:scale(.98)}
.btn:disabled{opacity:.4;cursor:not-allowed}
.spinner{width:20px;height:20px;border:2px solid rgba(201,168,76,.2);border-top-color:var(--gold);border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.form-input,.lf-input,.dk-input-compat{width:100%;height:50px;box-sizing:border-box;border-radius:var(--r-md);padding:0 14px;font-size:.9375rem}
.form-input,.lf-input{background:var(--white);color:var(--dark-txt);border:1.5px solid rgba(201,168,76,.4)}
.form-input:focus,.lf-input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,168,76,.1)}
.form-input::placeholder,.lf-input::placeholder{color:var(--gray-txt)}
.form-label,.lf-label{display:block;font-size:.78rem;font-weight:700;color:var(--gold);margin-bottom:5px}
.form-group,.lf-group{margin-bottom:14px}
.form-error{font-size:.76rem;color:#DC2626;margin-top:4px;display:none}
.form-error.show{display:block}
.section-header{display:flex;align-items:center;justify-content:space-between;padding:16px 14px 10px}
.section-title{font-family:var(--serif);font-size:1rem;font-weight:700;color:var(--white);border-left:3px solid var(--gold);padding-left:10px}
.section-more{font-size:.76rem;color:var(--gold);cursor:pointer;font-weight:600}
.dark-card,.dk-card-compat{background:var(--black2);border:1.5px solid var(--gold-bdr);border-radius:var(--r-md);overflow:hidden}
.light-card,.lt-card-compat{background:var(--white);border:1.5px solid var(--line-lt);border-radius:var(--r-md);overflow:hidden;box-shadow:var(--shadow-gold)}

/* ── 이용약관/개인정보처리방침 본문 ── */
.legal-meta{font-size:.76rem;color:var(--gray-txt);padding:14px 16px 0}
.legal-sec{padding:0 16px 4px;font-size:.86rem;color:var(--mid-txt);line-height:1.85}
.legal-chapter{font-family:var(--serif);font-size:1.05rem;font-weight:800;color:var(--gold-dk);margin:28px 0 10px;padding-bottom:8px;border-bottom:2px solid var(--gold)}
.legal-chapter:first-child{margin-top:16px}
.legal-sec h3{font-size:.92rem;font-weight:700;color:var(--dark-txt);margin:20px 0 8px;padding-top:16px;border-top:1px dashed rgba(0,0,0,.12)}
.legal-sec h3:first-child,.legal-chapter+h3{margin-top:0;padding-top:0;border-top:none}
.legal-sec p{margin-bottom:8px}
.legal-sec ul,.legal-sec ol{margin:6px 0 10px 20px}
.legal-sec li{margin-bottom:4px}
.legal-tbl{width:100%;border-collapse:collapse;margin:8px 0 14px;font-size:.82rem}
.legal-tbl th,.legal-tbl td{border:1px solid rgba(201,168,76,.25);padding:8px 10px;text-align:left;vertical-align:top}
.legal-tbl th{background:var(--offwhite);color:var(--dark-txt);font-weight:700;white-space:nowrap}

/* ── 사업자정보 푸터 (공통, js/footer.js 로 주입) — 로그인/메인/마이페이지 전용 ── */
/* 기본값 = 라이트 테마 (로그인, 마이페이지) */
.biz-footer{padding:16px 16px 14px;border-top:1px solid #e5e0d8;text-align:left;font-size:.82rem;line-height:1.7;color:#555555;word-break:keep-all;overflow-wrap:normal}
.biz-footer-links{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:18px}
.biz-footer-links a{color:#7a7a7a;text-decoration:underline}
.biz-footer-links span{color:#999}
.biz-footer-info{line-height:1.8}
.biz-footer-info a{color:#7a7a7a;text-decoration:underline}
.biz-footer-contact{display:block;white-space:nowrap;font-size:.78rem;letter-spacing:-.01em}
.biz-footer-disclaimer{margin-top:18px}
.biz-footer-copy{margin-top:18px}

/* 다크 테마 (메인) — mount div에 class="dark" 추가 */
.biz-footer.dark{border-top-color:rgba(255,255,255,.15);color:#C0C0C0}
.biz-footer.dark .biz-footer-links a{color:#E0E0E0}
.biz-footer.dark .biz-footer-links span{color:#888}
.biz-footer.dark .biz-footer-info a{color:#E0E0E0}
