/* ═══════════════════════════════════════════════════════
   인프 쇼핑몰 — style.css(디자인 토큰) 위에 얹는 쇼핑몰 전용 스타일
   ═══════════════════════════════════════════════════════ */

.shop-nav{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line)}
.shop-nav .inner{max-width:var(--maxw);margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:20px;height:66px}
.shop-nav .menu{display:flex;gap:22px;margin-left:8px}
.shop-nav .menu a{font-size:14.5px;font-weight:700;color:var(--ink-700)}
.shop-nav .menu a:hover{color:var(--orange)}
.shop-nav .right{margin-left:auto;display:flex;align-items:center;gap:10px}
.cart-btn{position:relative;display:inline-flex;align-items:center;gap:7px;font-size:14.5px;font-weight:800;
  color:var(--ink-900);border:1px solid var(--line);border-radius:var(--r-pill);padding:9px 17px}
.cart-btn:hover{border-color:var(--orange);color:var(--orange)}
.cart-btn .n{min-width:20px;height:20px;padding:0 6px;border-radius:var(--r-pill);background:var(--orange);
  color:#fff;font-size:11.5px;display:inline-grid;place-items:center}
@media(max-width:760px){.shop-nav .menu{display:none}.shop-nav .inner{height:60px;gap:12px}}

.shop-wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.shop-hero{background:var(--beige);padding:54px 0 48px;border-bottom:1px solid var(--line-soft)}
.shop-hero h1{font-size:clamp(27px,4vw,40px);font-weight:900;color:var(--ink-900);letter-spacing:-1px;line-height:1.28}
.shop-hero p{margin-top:15px;font-size:16px;color:var(--ink-600);line-height:1.7;max-width:620px}
.hero-pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.hero-pills span{background:#fff;border:1px solid var(--line);border-radius:var(--r-pill);
  padding:8px 15px;font-size:13.5px;font-weight:700;color:var(--ink-700)}

.cat-sec{padding:52px 0}
.cat-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:22px}
.cat-head h2{font-size:23px;font-weight:900;color:var(--ink-900);letter-spacing:-.5px}
.cat-head p{margin-top:7px;font-size:14.5px;color:var(--ink-500)}

.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media(max-width:900px){.pgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.pgrid{grid-template-columns:1fr}}
.pcard{display:block;background:#fff;border:1px solid var(--line);border-radius:var(--r-card);
  overflow:hidden;transition:.18s}
.pcard:hover{border-color:var(--orange);box-shadow:var(--shadow-lg);transform:translateY(-3px)}
.pcard .thumb{height:132px;background:var(--beige);display:grid;place-items:center;font-size:44px;
  border-bottom:1px solid var(--line-soft)}
.pcard .body{padding:19px 20px 21px}
.pcard .nm{font-size:16.5px;font-weight:800;color:var(--ink-900);letter-spacing:-.3px}
.pcard .sm{margin-top:7px;font-size:13.5px;color:var(--ink-500);line-height:1.6;min-height:43px}
.pcard .pr{margin-top:13px;font-size:13px;color:var(--ink-400)}
.pcard .pr b{font-size:21px;font-weight:900;color:var(--orange);letter-spacing:-.6px}

/* ── 상품 상세 ── */
.item-grid{display:grid;grid-template-columns:1fr 400px;gap:44px;padding:40px 0 70px;align-items:start}
@media(max-width:940px){.item-grid{grid-template-columns:1fr;gap:30px}}
.item-visual{background:var(--beige);border:1px solid var(--line);border-radius:var(--r-card);
  height:290px;display:grid;place-items:center;font-size:88px}
.item-tit{font-size:27px;font-weight:900;color:var(--ink-900);letter-spacing:-.8px;margin-top:24px}
.item-sum{margin-top:10px;font-size:15px;color:var(--ink-600);line-height:1.7}
.dtable{width:100%;border-collapse:collapse;margin-top:26px;border-top:2px solid var(--ink-900)}
.dtable th,.dtable td{border-bottom:1px solid var(--line);padding:13px 14px;font-size:14px;
  text-align:left;vertical-align:top;line-height:1.65}
.dtable th{width:120px;background:var(--gray-50);font-weight:700;color:var(--ink-700);white-space:nowrap}
.dtable td{color:var(--ink-600)}

.buybox{background:#fff;border:1px solid var(--line);border-radius:var(--r-card);padding:24px;
  position:sticky;top:86px}
.buybox h3{font-size:15px;font-weight:800;color:var(--ink-900);margin-bottom:13px}
.buybox .opt-row{display:flex;align-items:center;gap:10px;margin-top:9px}
.qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:9px;overflow:hidden}
.qty button{width:34px;height:36px;background:#fff;font-size:17px;font-weight:800;color:var(--ink-600)}
.qty button:hover{background:var(--gray-50);color:var(--orange)}
.qty input{width:44px;height:36px;border:0;text-align:center;font-size:14.5px;font-weight:800;
  color:var(--ink-900);border-left:1px solid var(--line);border-right:1px solid var(--line)}
.sumline{display:flex;justify-content:space-between;align-items:baseline;margin-top:20px;
  padding-top:17px;border-top:1px solid var(--line)}
.sumline span{font-size:14.5px;font-weight:700;color:var(--ink-600)}
.sumline b{font-size:27px;font-weight:900;color:var(--orange);letter-spacing:-.9px}
.buybox .acts{display:flex;gap:9px;margin-top:17px}
.buybox .acts .btn{flex:1}
.ship-note{margin-top:14px;font-size:12.5px;color:var(--ink-400);line-height:1.65}

/* ── 장바구니 · 주문 ── */
.steps{display:flex;gap:7px;justify-content:center;margin:30px 0 34px}
.steps div{display:flex;align-items:center;gap:7px;font-size:13.5px;font-weight:800;color:var(--ink-400)}
.steps div.on{color:var(--orange)}
.steps div::after{content:'›';margin-left:7px;color:var(--line);font-size:16px}
.steps div:last-child::after{content:''}

.ctable{width:100%;border-collapse:collapse;border-top:2px solid var(--ink-900)}
.ctable th{background:var(--gray-50);font-size:13px;font-weight:700;color:var(--ink-600);
  padding:12px 14px;text-align:left;border-bottom:1px solid var(--line)}
.ctable td{padding:16px 14px;border-bottom:1px solid var(--line);font-size:14.5px;color:var(--ink-700)}
.ctable .nm{font-weight:800;color:var(--ink-900)}
.ctable .op{font-size:13px;color:var(--ink-500);margin-top:4px}
.ctable .amt{font-weight:900;color:var(--ink-900);text-align:right;white-space:nowrap}
@media(max-width:700px){
  .ctable thead{display:none}
  .ctable tr{display:block;border-bottom:1px solid var(--line);padding:14px 0}
  .ctable td{display:flex;justify-content:space-between;border:0;padding:5px 2px}
  .ctable .amt{text-align:right}
}

.order-grid{display:grid;grid-template-columns:1fr 360px;gap:36px;align-items:start;padding-bottom:70px}
@media(max-width:940px){.order-grid{grid-template-columns:1fr}}
.fset{background:#fff;border:1px solid var(--line);border-radius:var(--r-card);padding:26px;margin-bottom:20px}
.fset h3{font-size:16.5px;font-weight:900;color:var(--ink-900);margin-bottom:17px;letter-spacing:-.3px}
.frow{margin-bottom:14px}
.frow label{display:block;font-size:13.5px;font-weight:700;color:var(--ink-700);margin-bottom:6px}
.frow label .req{color:var(--orange);margin-left:3px}
.frow .hint{margin-top:6px;font-size:12.5px;color:var(--ink-400);line-height:1.6}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:560px){.f2{grid-template-columns:1fr}}

.paylist{display:flex;flex-direction:column;gap:9px}
.payopt{display:flex;align-items:center;gap:11px;border:1px solid var(--line);border-radius:11px;
  padding:14px 16px;cursor:pointer;transition:.15s}
.payopt:hover{border-color:var(--orange-15)}
.payopt.sel{border-color:var(--orange);background:var(--orange-tint)}
.payopt.off{opacity:.5;cursor:not-allowed;background:var(--gray-50)}
.payopt .ic{font-size:19px}
.payopt .t{font-size:14.5px;font-weight:800;color:var(--ink-900)}
.payopt .d{font-size:12.5px;color:var(--ink-500);margin-top:3px}
.payopt .tag{margin-left:auto;font-size:11.5px;font-weight:800;color:var(--ink-400)}

.summary{background:#fff;border:1px solid var(--line);border-radius:var(--r-card);padding:24px;position:sticky;top:86px}
.summary h3{font-size:16px;font-weight:900;color:var(--ink-900);margin-bottom:16px}
.srow{display:flex;justify-content:space-between;font-size:14px;color:var(--ink-600);margin-bottom:10px}
.srow b{color:var(--ink-900);font-weight:700}
.stotal{display:flex;justify-content:space-between;align-items:baseline;
  margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.stotal span{font-size:15px;font-weight:800;color:var(--ink-900)}
.stotal b{font-size:26px;font-weight:900;color:var(--orange);letter-spacing:-.9px}

.agree{display:flex;gap:10px;align-items:flex-start;margin-top:18px;font-size:13px;
  color:var(--ink-600);line-height:1.65}
.agree input{margin-top:2px;width:17px;height:17px;accent-color:var(--orange);flex:none}
.agree a{color:var(--orange);font-weight:700;text-decoration:underline}

.empty-box{text-align:center;padding:70px 20px;color:var(--ink-400)}
.empty-box .ei{font-size:46px;margin-bottom:16px}

/* ── 주문 완료 ── */
.done-card{max-width:620px;margin:0 auto;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-card);padding:40px 34px;text-align:center}
.done-card .ic{font-size:52px}
.done-card h1{font-size:25px;font-weight:900;color:var(--ink-900);margin-top:14px;letter-spacing:-.6px}
.done-card .ono{display:inline-block;margin-top:16px;background:var(--orange-tint);color:var(--orange);
  font-size:19px;font-weight:900;letter-spacing:.5px;padding:11px 22px;border-radius:11px}
.bankbox{margin-top:24px;text-align:left;background:var(--gray-50);border:1px solid var(--line);
  border-radius:12px;padding:20px}
.bankbox .k{font-size:13px;font-weight:800;color:var(--ink-500);margin-bottom:9px}
.bankbox .v{font-size:17px;font-weight:900;color:var(--ink-900);letter-spacing:-.3px}
.bankbox .n{margin-top:11px;font-size:12.5px;color:var(--ink-500);line-height:1.7}

/* ── 약관 ── */
.policy-tabs{display:flex;gap:5px;background:var(--beige);padding:5px;border-radius:var(--r-pill);
  margin:28px 0 30px;overflow-x:auto}
.policy-tabs button{flex:none;padding:10px 20px;border-radius:var(--r-pill);font-size:14px;
  font-weight:800;color:var(--ink-500);white-space:nowrap}
.policy-tabs button.on{background:#fff;color:var(--ink-900);box-shadow:var(--shadow)}
.ptext{font-size:14.5px;color:var(--ink-700);line-height:1.85;padding-bottom:70px}
.ptext h2{font-size:19px;font-weight:900;color:var(--ink-900);margin:30px 0 12px;letter-spacing:-.4px}
.ptext h3{font-size:15.5px;font-weight:800;color:var(--ink-900);margin:22px 0 8px}
.ptext p{margin-bottom:11px}
.ptext ul{margin:0 0 13px 19px}
.ptext li{margin-bottom:6px;list-style:disc}
.ptext table{width:100%;border-collapse:collapse;margin:14px 0 18px;border-top:2px solid var(--ink-900)}
.ptext th,.ptext td{border-bottom:1px solid var(--line);padding:11px 13px;font-size:13.5px;text-align:left;vertical-align:top}
.ptext th{background:var(--gray-50);font-weight:700;color:var(--ink-700);white-space:nowrap}

/* ── 푸터 ── */
.shop-ft{background:var(--gray-50);border-top:1px solid var(--line);padding:40px 0 48px;margin-top:40px}
.shop-ft .links{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:20px}
.shop-ft .links a{font-size:13.5px;font-weight:700;color:var(--ink-700)}
.shop-ft .links a:hover{color:var(--orange)}
.shop-ft .cs{display:flex;flex-wrap:wrap;gap:28px;align-items:flex-start;
  padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:20px}
.shop-ft .cs .tel{font-size:25px;font-weight:900;color:var(--ink-900);letter-spacing:-.7px}
.shop-ft .cs .lbl{font-size:12.5px;font-weight:800;color:var(--ink-400);margin-bottom:5px}
.shop-ft .cs .hr{font-size:13px;color:var(--ink-500);line-height:1.7}
.shop-ft .biz{font-size:12.5px;color:var(--ink-500);line-height:1.9}
.shop-ft .biz b{color:var(--ink-700);font-weight:700}
.shop-ft .cop{margin-top:14px;font-size:12px;color:var(--ink-400)}
.shop-ft .todo{color:var(--red);font-weight:800}
