@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;700&display=swap');

:root {
  --orange: #eb711b;
  --blue:   #1376ba;
  --black:  #111111;
  --white:  #ffffff;
  --g50:    #fafafa;
  --g100:   #f4f4f4;
  --g200:   #e8e8e8;
  --g300:   #d0d0d0;
  --g500:   #999999;
  --g700:   #555555;
  --font:   'Noto Sans KR', -apple-system, sans-serif;
  --tr:     0.18s ease;
  --max:    1200px;
}

*  { margin:0; padding:0; box-sizing:border-box; }
a  { color:inherit; text-decoration:none; }
button { font-family:var(--font); cursor:pointer; }

body {
  font-family: var(--font);
  color: var(--black);
  background: var(--white);
  line-height: 1.7;
  font-size: 14px;
}

/* ── HEADER ─────────────────────────────────── */
.header {
  position: sticky; top:0; z-index:200;
  background: var(--white);
  border-bottom: 1px solid var(--g200);
}
.header-inner {
  max-width: var(--max); margin:0 auto;
  padding: 0 40px; height:64px;
  display:flex; align-items:center; justify-content:space-between;
}
.logo {
  display:flex; align-items:center; gap:10px;
  font-weight:700; font-size:18px; letter-spacing:-0.5px;
}
.logo img { height:36px; width:auto; }

.nav { display:flex; gap:28px; }
.nav-link {
  font-size:14px; color:var(--g700);
  position:relative; padding-bottom:2px;
  transition: color var(--tr);
}
.nav-link::after {
  content:''; position:absolute;
  bottom:-2px; left:0; width:0; height:1px;
  background:var(--orange); transition:width var(--tr);
}
.nav-link:hover, .nav-link.active { color:var(--black); }
.nav-link:hover::after, .nav-link.active::after { width:100%; }

.cart-btn {
  display:flex; align-items:center; gap:8px;
  border:1px solid var(--g300); background:none;
  padding:8px 18px; font-size:13px; color:var(--black);
  transition: border-color var(--tr), color var(--tr);
}
.cart-btn:hover { border-color:var(--orange); color:var(--orange); }
.cart-count {
  background:var(--orange); color:var(--white);
  font-size:11px; font-weight:700;
  width:18px; height:18px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
}

/* ── LAYOUT ──────────────────────────────────── */
.container { max-width:var(--max); margin:0 auto; padding:0 40px; }

.section {
  padding:80px 0;
  border-bottom:1px solid var(--g200);
}
.section-header {
  display:flex; align-items:flex-end;
  justify-content:space-between; margin-bottom:40px;
}
.section-title {
  font-size:22px; font-weight:700; letter-spacing:-0.5px;
  position:relative; padding-bottom:12px;
}
.section-title::after {
  content:''; position:absolute;
  bottom:0; left:0; width:28px; height:2px;
  background:var(--orange);
}
.section-link {
  font-size:13px; color:var(--blue);
  border-bottom:1px solid var(--blue);
  transition: color var(--tr), border-color var(--tr);
}
.section-link:hover { color:var(--orange); border-color:var(--orange); }
.section-desc {
  color:var(--g700); font-size:15px; font-weight:300;
  margin-top:8px; margin-bottom:32px;
}

/* ── BUTTONS ─────────────────────────────────── */
.btn {
  display:inline-flex; align-items:center; justify-content:center;
  padding:12px 28px; font-family:var(--font);
  font-size:14px; font-weight:500;
  border:1px solid transparent; transition:all var(--tr);
  cursor:pointer;
}
.btn-primary  { background:var(--black);  color:var(--white); border-color:var(--black);  }
.btn-primary:hover  { background:var(--orange); border-color:var(--orange); }
.btn-outline  { background:transparent; color:var(--black); border-color:var(--black); }
.btn-outline:hover  { background:var(--black); color:var(--white); }
.btn-orange   { background:var(--orange); color:var(--white); border-color:var(--orange); }
.btn-orange:hover   { background:#d4640f; border-color:#d4640f; }
.btn-blue     { background:var(--blue);   color:var(--white); border-color:var(--blue); }
.btn-blue:hover     { background:#0f63a0; border-color:#0f63a0; }
.btn-full { width:100%; }
.btn-sm   { padding:6px 14px; font-size:12px; }
.btn:disabled { opacity:0.5; cursor:not-allowed; }

/* ── PRODUCT GRID ────────────────────────────── */
.goods-grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:1px; background:var(--g200);
  border:1px solid var(--g200);
}
.product-card {
  background:var(--white); cursor:pointer;
  transition:box-shadow var(--tr); position:relative;
  display:flex; flex-direction:column;
}
.product-card:hover { box-shadow:0 0 0 1px var(--orange); z-index:1; }
.product-image-wrap {
  aspect-ratio:1; overflow:hidden;
  background:var(--g100);
}
.product-image {
  width:100%; height:100%; object-fit:cover;
  transition:transform 0.35s ease;
}
.product-card:hover .product-image { transform:scale(1.04); }
.product-info {
  padding:16px 16px 8px;
  border-top:1px solid var(--g200);
  flex:1;
}
.product-name {
  font-size:14px; font-weight:500;
  margin-bottom:8px; line-height:1.4;
}
.product-price-row { display:flex; align-items:baseline; gap:6px; }
.product-price { font-size:16px; font-weight:700; }
.product-price-note { font-size:12px; color:var(--g500); }
.product-price-pack {
  font-size:12px; color:var(--blue); margin-top:4px;
}
.product-options-preview {
  font-size:11px; color:var(--g500); margin-top:6px;
}
.product-add-btn {
  display:block; width:calc(100% - 32px);
  margin:0 16px 16px; padding:10px;
  background:transparent; border:1px solid var(--g200);
  font-size:13px; color:var(--black);
  transition:all var(--tr);
}
.product-add-btn:hover {
  background:var(--orange); border-color:var(--orange); color:var(--white);
}

/* ── CATEGORY FILTER ─────────────────────────── */
.category-filter {
  display:flex; margin-bottom:32px;
  border:1px solid var(--g200); width:fit-content;
}
.category-btn {
  padding:10px 20px; background:transparent;
  border:none; border-right:1px solid var(--g200);
  font-size:13px; color:var(--g700);
  transition:all var(--tr);
}
.category-btn:last-child { border-right:none; }
.category-btn.active, .category-btn:hover {
  background:var(--black); color:var(--white);
}

/* ── MODAL ───────────────────────────────────── */
.modal-overlay {
  display:none; position:fixed; inset:0;
  background:rgba(0,0,0,.55); z-index:500;
  align-items:center; justify-content:center;
  padding:20px;
}
.modal-overlay.active { display:flex; }
.modal {
  background:var(--white); width:100%; max-width:800px;
  max-height:90vh; overflow-y:auto;
  display:grid; grid-template-columns:1fr 1fr;
  position:relative;
}
.modal-close {
  position:absolute; top:12px; right:12px;
  background:var(--g100); border:none;
  width:32px; height:32px; font-size:18px; line-height:1;
  display:flex; align-items:center; justify-content:center;
  color:var(--g700); z-index:10; transition:all var(--tr);
}
.modal-close:hover { background:var(--black); color:var(--white); }
.modal-image-wrap {
  aspect-ratio:1; background:var(--g100);
  overflow:hidden;
}
.modal-image { width:100%; height:100%; object-fit:cover; }
.modal-content {
  padding:36px; display:flex;
  flex-direction:column; overflow-y:auto;
}
.modal-name { font-size:20px; font-weight:700; margin-bottom:8px; }
.modal-desc {
  font-size:13px; color:var(--g700); font-weight:300;
  line-height:1.8; margin-bottom:24px;
  padding-bottom:20px; border-bottom:1px solid var(--g200);
}

.option-group { margin-bottom:18px; }
.option-label {
  display:block; font-size:11px; font-weight:600;
  color:var(--g500); text-transform:uppercase;
  letter-spacing:1px; margin-bottom:8px;
}
.option-buttons { display:flex; flex-wrap:wrap; gap:6px; }
.option-btn {
  padding:7px 14px; border:1px solid var(--g300);
  background:transparent; font-size:13px; color:var(--black);
  transition:all var(--tr);
}
.option-btn:hover { border-color:var(--black); }
.option-btn.selected {
  background:var(--black); border-color:var(--black); color:var(--white);
}

.qty-control { display:flex; align-items:center; border:1px solid var(--g300); width:fit-content; }
.qty-btn {
  width:36px; height:36px; background:none; border:none;
  font-size:18px; display:flex; align-items:center; justify-content:center;
  color:var(--black); transition:background var(--tr);
}
.qty-btn:hover { background:var(--g100); }
.qty-input {
  width:48px; height:36px; text-align:center;
  border:none; border-left:1px solid var(--g300); border-right:1px solid var(--g300);
  font-family:var(--font); font-size:14px; font-weight:600; outline:none;
}

.modal-footer {
  margin-top:auto; padding-top:20px;
  border-top:1px solid var(--g200);
}
.modal-total {
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:14px;
}
.modal-total-label { font-size:13px; color:var(--g700); }
.modal-total-price { font-size:22px; font-weight:700; }

/* 밑독 키링 3개 세트 UI */
.keyring-pack-row {
  padding:12px 0; border-bottom:1px solid var(--g100);
}
.keyring-pack-row:last-child { border-bottom:none; }
.keyring-pack-num {
  font-size:12px; font-weight:600; color:var(--g700);
  margin-bottom:8px;
}

/* ── PACKAGE CARDS ───────────────────────────── */
.package-grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  border:1px solid var(--g200);
}
.package-value {
  font-size:12px; color:var(--blue);
  font-weight:600; margin-top:8px;
}
.package-card {
  padding:28px 24px;
  border-right:1px solid var(--g200);
  position:relative; overflow:hidden;
  transition:background var(--tr);
}
.package-card:last-child { border-right:none; }
.package-card::before {
  content:''; position:absolute;
  top:0; left:0; width:3px; height:100%;
  background:var(--g300); transition:background var(--tr);
}
.package-card:hover::before, .package-card.top::before { background:var(--orange); }
.package-badge {
  display:inline-block; background:var(--orange); color:var(--white);
  font-size:10px; font-weight:700; letter-spacing:1px;
  padding:2px 8px; margin-bottom:10px;
}
.package-amount { font-size:22px; font-weight:700; margin-bottom:8px; }
.package-amount span { color:var(--orange); }
.package-gift { font-size:13px; color:var(--g700); font-weight:400; line-height:1.6; }

/* ── PROCESS STEPS ───────────────────────────── */
.process-steps { display:flex; }
.process-step {
  flex:1; padding:28px;
  border:1px solid var(--g200);
  border-right:none;
}
.process-step:last-child { border-right:1px solid var(--g200); }
.step-number {
  font-size:36px; font-weight:700; color:var(--g200);
  margin-bottom:16px; font-variant-numeric:tabular-nums;
}
.step-title { font-size:15px; font-weight:700; margin-bottom:8px; }
.step-desc { font-size:13px; color:var(--g700); font-weight:300; line-height:1.7; }

/* ── ORDER PAGE ──────────────────────────────── */
.page-header {
  padding:48px 0 32px;
  border-bottom:1px solid var(--g200);
  margin-bottom:48px;
}
.page-title { font-size:28px; font-weight:700; letter-spacing:-0.5px; margin-bottom:6px; }
.page-subtitle { font-size:14px; color:var(--g700); font-weight:300; }

.order-layout {
  display:grid; grid-template-columns:1fr 380px;
  gap:60px; align-items:flex-start;
}

.order-block { margin-bottom:40px; }
.order-block-title {
  font-size:15px; font-weight:700;
  padding-bottom:12px; margin-bottom:20px;
  border-bottom:1px solid var(--g200);
}

/* Cart table */
.cart-table { width:100%; border-collapse:collapse; margin-bottom:16px; }
.cart-table th {
  padding:10px 12px; text-align:left;
  font-size:11px; font-weight:600; color:var(--g700);
  background:var(--g50); border-bottom:1px solid var(--g200);
  letter-spacing:0.5px; text-transform:uppercase;
}
.cart-table td { padding:16px 12px; border-bottom:1px solid var(--g100); vertical-align:middle; }
.cart-item-info { display:flex; align-items:center; gap:12px; }
.cart-item-img { width:52px; height:52px; object-fit:cover; background:var(--g100); flex-shrink:0; }
.cart-item-name { font-weight:500; font-size:13px; }
.cart-item-options { font-size:12px; color:var(--g500); margin-top:2px; }
.cart-remove {
  background:none; border:none; color:var(--g300);
  font-size:20px; line-height:1; padding:4px;
  transition:color var(--tr);
}
.cart-remove:hover { color:var(--black); }

/* Order Summary Sidebar */
.order-summary {
  border:1px solid var(--g200); padding:28px;
  position:sticky; top:80px;
}
.summary-title {
  font-size:15px; font-weight:700;
  padding-bottom:14px; margin-bottom:16px;
  border-bottom:1px solid var(--g200);
}
.summary-row {
  display:flex; justify-content:space-between;
  padding:9px 0; font-size:14px;
  border-bottom:1px solid var(--g100);
}
.summary-row:last-of-type { border-bottom:none; }
.summary-total {
  display:flex; justify-content:space-between; align-items:center;
  padding:16px 0 0; margin-top:8px;
  border-top:2px solid var(--black);
  font-size:18px; font-weight:700;
}
.gift-box {
  background:var(--orange); color:var(--white);
  padding:12px 14px; margin:12px 0;
  font-size:13px; font-weight:500;
}
.next-tier-info {
  border:1px solid var(--blue); background:#f0f7ff;
  padding:10px 12px; margin:12px 0;
  font-size:12px; color:var(--blue); line-height:1.6;
}
.payment-info {
  background:var(--g50); border:1px solid var(--g200);
  padding:18px; margin:20px 0; font-size:13px; line-height:1.9;
}
.payment-account {
  font-size:15px; font-weight:700;
  color:var(--blue); margin-top:6px;
}

/* Form */
.form-group { margin-bottom:18px; }
.form-group label {
  display:block; font-size:12px; font-weight:600;
  color:var(--g700); text-transform:uppercase;
  letter-spacing:0.5px; margin-bottom:7px;
}
.required { color:var(--orange); }
.form-control {
  width:100%; padding:12px 14px;
  border:1px solid var(--g300); background:var(--white);
  font-family:var(--font); font-size:14px; color:var(--black);
  outline:none; transition:border-color var(--tr); border-radius:0;
}
.form-control:focus { border-color:var(--black); }
textarea.form-control { resize:vertical; min-height:80px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.form-help { font-size:11px; color:var(--g500); margin-top:5px; }
.radio-group { display:flex; gap:20px; padding:4px 0; }
.radio-label { display:flex; align-items:center; gap:8px; font-size:14px; cursor:pointer; }
.radio-label input { accent-color:var(--orange); width:16px; height:16px; }
.address-row { display:flex; gap:8px; }
.address-row .form-control { flex:1; }
.address-row .btn { flex-shrink:0; white-space:nowrap; }

/* Order Success */
.order-success {
  text-align:center; padding:80px 40px;
  border:1px solid var(--g200); max-width:600px;
  margin:0 auto;
}
.success-icon { font-size:48px; margin-bottom:24px; }
.success-title { font-size:24px; font-weight:700; margin-bottom:12px; }
.success-desc { color:var(--g700); font-size:14px; line-height:1.8; margin-bottom:32px; }
.success-info {
  background:var(--g50); border:1px solid var(--g200);
  padding:20px; margin:24px 0; text-align:left; font-size:14px; line-height:2;
}

/* Empty state */
.empty-state {
  text-align:center; padding:80px 40px; color:var(--g500);
}
.empty-state-icon { font-size:48px; margin-bottom:16px; }
.empty-state-text { font-size:16px; margin-bottom:24px; }

/* ── ADMIN ───────────────────────────────────── */
.admin-login {
  min-height:100vh; display:flex;
  align-items:center; justify-content:center;
}
.login-box {
  border:1px solid var(--g200); padding:48px;
  width:100%; max-width:400px; text-align:center;
}
.login-title { font-size:20px; font-weight:700; margin-bottom:8px; }
.login-desc { font-size:13px; color:var(--g700); margin-bottom:28px; }

.admin-stats {
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:1px; background:var(--g200);
  border:1px solid var(--g200); margin-bottom:32px;
}
.stat-card { background:var(--white); padding:24px; }
.stat-label { font-size:11px; color:var(--g500); text-transform:uppercase; letter-spacing:1px; margin-bottom:8px; }
.stat-value { font-size:28px; font-weight:700; }
.stat-value.orange { color:var(--orange); }

.admin-toolbar {
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:20px;
}
.admin-title { font-size:16px; font-weight:700; }

.orders-table { width:100%; border-collapse:collapse; border:1px solid var(--g200); }
.orders-table th {
  padding:12px 14px; background:var(--g50);
  font-size:11px; font-weight:600; color:var(--g700);
  text-align:left; border-bottom:1px solid var(--g200);
  white-space:nowrap;
}
.orders-table td { padding:14px; border-bottom:1px solid var(--g100); font-size:13px; vertical-align:top; }
.order-summary-row:hover td { background:#fff8f5; }
.order-summary-row td { transition:background 0.15s; }

.badge { display:inline-block; padding:3px 10px; font-size:11px; font-weight:600; }
.badge-pending   { background:#FFF3E0; color:#e65100; }
.badge-confirmed { background:#E8F5E9; color:#2e7d32; }

/* ── NOTIFICATION ────────────────────────────── */
.notification {
  position:fixed; bottom:-70px; left:50%;
  transform:translateX(-50%);
  background:var(--black); color:var(--white);
  padding:14px 28px; font-size:13px; z-index:9999;
  white-space:nowrap; transition:bottom 0.28s ease;
  pointer-events:none;
}
.notification.show { bottom:28px; }

/* ── FOOTER ──────────────────────────────────── */
.footer { background:#1a1f2e; color:#fff; padding:56px 0 0; }
.footer-inner {
  max-width:var(--max); margin:0 auto; padding:0 40px;
  display:grid; grid-template-columns:1fr auto;
  gap:40px; align-items:start;
}
.footer-brand { font-size:22px; font-weight:700; margin-bottom:8px; color:#fff; }
.footer-desc { font-size:13px; color:#888; font-weight:300; margin-bottom:24px; }
.footer-sns { display:flex; gap:10px; flex-wrap:wrap; }
.footer-sns-btn {
  display:inline-flex; align-items:center; gap:6px;
  padding:8px 16px; border-radius:4px;
  font-size:13px; font-weight:600; text-decoration:none; transition:opacity 0.18s;
}
.footer-sns-btn:hover { opacity:0.8; }
.footer-sns-btn.instagram { background:linear-gradient(135deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888); color:#fff; }
.footer-sns-btn.youtube { background:#FF0000; color:#fff; }
.footer-sns-btn.kakao { background:#FEE500; color:#3C1E1E; }
.footer-links { display:flex; gap:20px; }
.footer-link { font-size:13px; color:#888; transition:color var(--tr); }
.footer-link:hover { color:#fff; }
.footer-info { text-align:right; font-size:13px; line-height:1.9; color:#aaa; }
.footer-info strong { color:#fff; }
.footer-bottom {
  max-width:var(--max); margin:40px auto 0;
  padding:20px 40px; border-top:1px solid #2b3147;
}
.footer-bottom p { font-size:12px; color:#6b7394; }

/* ── PRODUCT DETAIL PANEL ───────────────────────── */
.product-detail-panel { background:var(--white); }
.detail-layout {
  display:grid; grid-template-columns:1fr 1fr;
  border:1px solid var(--g200); border-top:none;
}
.detail-image-wrap {
  overflow:hidden; border-right:1px solid var(--g200);
  background:var(--g100);
  display:flex; flex-direction:column;
}
.detail-image { width:100%; height:100%; object-fit:cover; display:block; }
.detail-content {
  padding:40px; display:flex;
  flex-direction:column; max-height:640px; overflow-y:auto;
}
.detail-name {
  font-size:22px; font-weight:700;
  margin-bottom:12px; letter-spacing:-0.5px;
}
.detail-desc {
  font-size:13px; color:var(--g700); font-weight:300;
  line-height:1.9; margin-bottom:24px;
  padding-bottom:20px; border-bottom:1px solid var(--g200);
}
.detail-footer {
  margin-top:auto; padding-top:20px;
  border-top:1px solid var(--g200);
}

/* ── GALLERY ─────────────────────────────────────── */
.gallery-slider { display:flex; flex-direction:column; flex:1; }
.gallery-main-wrap {
  flex:1; position:relative; overflow:hidden;
  background:var(--g100); aspect-ratio:1;
}
.gallery-main-img { width:100%; height:100%; object-fit:cover; display:block; }
.gallery-nav {
  position:absolute; top:50%; transform:translateY(-50%);
  background:rgba(0,0,0,0.4); color:#fff;
  border:none; width:36px; height:56px;
  font-size:26px; line-height:1; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:background 0.18s; z-index:2;
}
.gallery-nav:hover { background:rgba(0,0,0,0.7); }
.gallery-prev { left:0; }
.gallery-next { right:0; }
.gallery-counter {
  position:absolute; bottom:8px; right:10px;
  background:rgba(0,0,0,0.38); color:#fff;
  font-size:11px; padding:2px 8px; border-radius:10px;
  pointer-events:none;
}
.gallery-thumbs {
  display:flex; gap:4px; padding:8px;
  background:var(--g100); overflow-x:auto;
  border-top:1px solid var(--g200);
}
.gallery-thumb {
  flex-shrink:0; width:58px; height:58px;
  cursor:pointer; border:2px solid transparent;
  overflow:hidden; background:var(--g200);
  transition:border-color 0.18s;
}
.gallery-thumb.active { border-color:var(--orange); }
.gallery-thumb img { width:100%; height:100%; object-fit:cover; display:block; }

/* ── DETAIL DESC IMAGES ─────────────────────────── */
.detail-desc-section {
  border:1px solid var(--g200); border-top:none;
}
.detail-desc-header {
  padding:14px 20px; font-size:13px; font-weight:600;
  color:#333; border-bottom:1px solid var(--g200);
  background:var(--g50);
}
.detail-desc-slot { width:100%; }
.detail-desc-slot img { width:100%; display:block; }
.detail-desc-empty {
  padding:56px 0; text-align:center;
  color:var(--g300); font-size:13px;
  background:var(--g50);
}

/* ── RESPONSIVE ──────────────────────────────── */
@media (max-width:1024px) {
  .goods-grid { grid-template-columns:repeat(2,1fr); }
  .package-grid { grid-template-columns:repeat(2,1fr); }
  .package-card { border-bottom:1px solid var(--g200); }
  .order-layout { grid-template-columns:1fr; gap:40px; }
  .order-summary { position:static; }
  .admin-stats { grid-template-columns:repeat(2,1fr); }
  .modal { grid-template-columns:1fr; }
  .modal-image-wrap { aspect-ratio:16/9; }
}
/* ── 결제 수단 선택 ─────────────────────────────────── */
.payment-method-group {
  display: flex; gap: 10px; margin-top: 6px;
}
.payment-method-btn {
  flex: 1; padding: 14px;
  border: 2px solid var(--g200); border-radius: 8px;
  text-align: center; cursor: pointer;
  font-size: 14px; font-weight: 500; color: var(--g700);
  transition: all var(--tr);
}
.payment-method-btn.active {
  border-color: var(--orange); color: var(--orange);
  background: #fff8f5;
}

/* ── 토스페이먼츠 박스 ──────────────────────────────── */
.toss-pay-box {
  border: 1px solid var(--g200); border-radius: 12px;
  padding: 32px; text-align: center;
  background: #f8f9ff; margin-bottom: 8px;
}
.toss-pay-logo {
  font-size: 28px; font-weight: 900;
  color: #0064ff; letter-spacing: -1px;
  margin-bottom: 12px;
}
.btn-toss {
  display: inline-block; width: 100%; max-width: 320px;
  padding: 16px; border: none; border-radius: 8px;
  background: #0064ff; color: #fff;
  font-size: 16px; font-weight: 700;
  cursor: not-allowed; opacity: 0.5;
}

/* ── 동의 체크박스 ──────────────────────────────── */
.checkbox-label {
  display:flex; align-items:flex-start; gap:10px;
  font-size:14px; cursor:pointer; line-height:1.6;
  font-weight:400; text-transform:none; letter-spacing:0; color:var(--black);
}
.checkbox-label input[type="checkbox"] {
  width:18px; height:18px; flex-shrink:0;
  margin-top:2px; accent-color:var(--orange); cursor:pointer;
}
.agree-link { color:var(--blue); text-decoration:underline; }

/* ── FAQ / 정책 페이지 ─────────────────────────── */
.faq-list { border-top:1px solid var(--g200); }
.faq-item { border-bottom:1px solid var(--g200); }
.faq-item summary {
  padding:18px 4px; font-size:15px; font-weight:500;
  cursor:pointer; list-style:none;
  display:flex; justify-content:space-between; align-items:center; gap:16px;
}
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::after { content:'＋'; color:var(--g500); font-size:18px; flex-shrink:0; }
.faq-item[open] summary::after { content:'－'; color:var(--orange); }
.faq-item[open] summary { color:var(--orange); }
.faq-answer {
  padding:0 4px 20px; font-size:14px; color:var(--g700);
  line-height:1.9; white-space:pre-line;
}
.policy-section {
  background:var(--g50); border:1px solid var(--g200);
  padding:32px; margin-bottom:20px;
}
.policy-section h3 {
  font-size:14px; font-weight:700; margin-bottom:12px;
  padding-bottom:8px; border-bottom:1px solid var(--g200);
}
.policy-section p, .policy-section li {
  font-size:13px; color:var(--g700); line-height:1.9;
}
.policy-section ul { padding-left:18px; margin-top:6px; }
.policy-section li { margin-bottom:4px; }

@media (max-width:768px) {
  .header-inner { padding:0 20px; }
  .nav { display:none; }
  .container { padding:0 20px; }
  .section { padding:48px 0; }
  .goods-grid { grid-template-columns:repeat(2,1fr); }
  .package-grid { grid-template-columns:1fr; }
  .process-steps { flex-direction:column; }
  .process-step { border-right:1px solid var(--g200); }
  .form-row { grid-template-columns:1fr; }
  .footer-inner { grid-template-columns:1fr; padding:0 20px; }
  .footer-links { flex-wrap:wrap; gap:12px; }
  .footer-info { text-align:left; }
  .footer-bottom { padding:16px 20px 0; }
  .admin-stats { grid-template-columns:1fr 1fr; }
  .modal-content { padding:24px; }
  .hero-title-big { font-size:36px !important; }
}
