/* =========================================================
   더 다혜원 — Storefront 리디자인 / Candidate A
   Art direction: "Editorial Minimal" (29CM · MATTER · SSG luxury tone)
   거의 흑백(잉크/화이트) 기반, 레드는 포인트로만, 넓은 여백,
   1px 헤어라인, 보더리스 대형 이미지, 타이트한 헤드라인 위계,
   각진 미니멀 버튼, 절제된 페이드/언더라인 호버.
   ── 클래스명/구조 변경 금지: 기존 selector 전부 포함 + 토큰화만.
   ========================================================= */

:root{
  /* ── Brand (accent only) ── */
  --brand:#1f6d43;            /* 정관장 deep red — 포인트 전용 */
  --brand-dark:#134e2f;
  --brand-light:#43976a;
  --brand-tint:#fbf2f4;       /* 아주 옅은 레드 틴트 (선택 상태 배경) */
  --gold:#a8884f;             /* 차분한 골드 (채도 낮춤) */

  /* ── Ink / Neutral scale (editorial 흑백) ── */
  --ink:#111111;             /* 본문 잉크 */
  --ink-soft:#3a3a3a;        /* 보조 텍스트 */
  --gray:#737373;            /* 캡션/뮤트 */
  --gray-light:#a6a6a6;      /* 비활성/취소선 */
  --line:#ececec;            /* 헤어라인 1px */
  --line-dark:#d6d6d6;       /* 강한 헤어라인 */
  --line-ink:#111111;        /* 잉크 헤어라인(섹션 언더라인) */
  --bg:#ffffff;
  --bg-soft:#f6f5f3;         /* 따뜻한 오프화이트 (갤러리 톤) */
  --bg-canvas:#faf9f7;
  --ink-900:#1b1b1b;         /* footer / dark surface */

  /* ── Radius (각진 미니멀) ── */
  --r-xs:2px;
  --r-sm:3px;
  --radius:4px;              /* 기본 라운드 — 절제 */
  --r-lg:6px;
  --r-pill:999px;

  /* ── Shadow (절제된 소프트) ── */
  --sh-1:0 1px 2px rgba(17,17,17,.04);
  --sh-2:0 8px 24px rgba(17,17,17,.07);
  --sh-3:0 18px 48px rgba(17,17,17,.12);

  /* ── Type scale / tracking ── */
  --ff:'Noto Sans KR',-apple-system,'Malgun Gothic',sans-serif;
  --max:1240px;
  --tr:.28s cubic-bezier(.2,.7,.2,1);   /* transition */
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:var(--ff);
  color:var(--ink);background:var(--bg);
  font-size:15px;line-height:1.6;letter-spacing:-.01em;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
a{color:inherit;text-decoration:none;transition:color var(--tr),opacity var(--tr);}
a:hover{color:var(--brand);}
img{max-width:100%;display:block;}
button{font-family:inherit;cursor:pointer;}
::selection{background:var(--brand);color:#fff;}

.container{max-width:var(--max);margin:0 auto;padding:0 28px;}
.txt-brand{color:var(--brand);}
.muted{color:var(--gray);}
.right{text-align:right;}
.center{text-align:center;}

/* =========================================================
   buttons — 각진 미니멀, 호버는 채움/반전 절제
   ========================================================= */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;
  padding:13px 24px;border:1px solid var(--ink);background:#fff;color:var(--ink);
  border-radius:var(--radius);font-size:13.5px;font-weight:600;letter-spacing:.01em;
  line-height:1;transition:background var(--tr),color var(--tr),border-color var(--tr),box-shadow var(--tr);}
.btn:hover{background:var(--ink);color:#fff;border-color:var(--ink);}
.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff;}
.btn-primary:hover{background:var(--brand-dark);border-color:var(--brand-dark);color:#fff;}
.btn-gold{background:var(--gold);border-color:var(--gold);color:#fff;}
.btn-gold:hover{background:#fff;color:var(--gold);border-color:var(--gold);}
.btn-line{background:#fff;border-color:var(--line-dark);color:var(--ink);}
.btn-line:hover{background:#fff;border-color:var(--ink);color:var(--ink);}
.btn-dark{background:var(--ink);border-color:var(--ink);color:#fff;}
.btn-dark:hover{background:#000;border-color:#000;color:#fff;}
.btn-lg{padding:17px 32px;font-size:15px;}
.btn-sm{padding:8px 14px;font-size:12.5px;}
.btn-block{width:100%;}
.btn[disabled]{opacity:.4;cursor:not-allowed;background:#fff;color:var(--gray);border-color:var(--line-dark);}
.btn[disabled]:hover{background:#fff;color:var(--gray);border-color:var(--line-dark);}

/* =========================================================
   header — 헤어라인 기반 갤러리 헤더
   ========================================================= */
.site-header{border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:100;}
.util-bar{background:#fff;border-bottom:1px solid var(--line);font-size:12.5px;color:var(--gray);letter-spacing:.01em;}
.util-bar .container{display:flex;justify-content:flex-end;align-items:center;height:38px;gap:18px;}
.util-bar a{color:var(--gray);}
.util-bar a:hover{color:var(--ink);}
.util-bar b{color:var(--ink);font-weight:700;}
.util-bar .sep{color:var(--line-dark);}

.header-main{display:flex;align-items:center;gap:40px;padding:22px 28px;max-width:var(--max);margin:0 auto;}
.logo{font-size:30px;font-weight:900;color:var(--ink);letter-spacing:-.04em;white-space:nowrap;}
.logo small{font-size:26px;color:var(--brand);font-weight:900;margin-left:2px;letter-spacing:-.04em;vertical-align:baseline;}
.brand-logo{display:inline-flex;align-items:center;white-space:nowrap;text-decoration:none;}
.brand-logo .logo-img{height:110px;width:auto;display:block;transition:transform var(--tr);}
.brand-logo:hover .logo-img{transform:scale(1.03);}
.search-box{flex:1;max-width:560px;margin:0 auto;}
.search-box form{display:flex;align-items:center;border:1px solid var(--ink);border-radius:var(--radius);overflow:hidden;
  transition:border-color var(--tr),box-shadow var(--tr);}
.search-box form:focus-within{box-shadow:var(--sh-1);}
.search-box input{flex:1;border:0;padding:13px 18px;font-size:14px;outline:none;color:var(--ink);background:transparent;letter-spacing:-.01em;}
.search-box input::placeholder{color:var(--gray-light);}
.search-box button{border:0;background:var(--ink);color:#fff;width:54px;align-self:stretch;display:flex;align-items:center;justify-content:center;transition:background var(--tr);}
.search-box button:hover{background:var(--brand);}
.header-icons{display:flex;gap:26px;align-items:center;}
.header-icons a{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11.5px;color:var(--ink-soft);letter-spacing:-.01em;}
.header-icons a:hover{color:var(--brand);}
.header-icons .ico{font-size:23px;line-height:1;}
.badge-count{display:inline-block;min-width:18px;height:18px;line-height:18px;background:var(--brand);
  color:#fff;border-radius:var(--r-pill);font-size:10.5px;font-weight:700;text-align:center;padding:0 5px;}

/* =========================================================
   gnb — 메가패널 + 큐레이션
   ========================================================= */
.gnb{border-top:1px solid var(--line);border-bottom:1px solid var(--ink);background:#fff;}
.gnb-inner{display:flex;max-width:var(--max);margin:0 auto;padding:0 28px;gap:2px;align-items:center;position:relative;}
.gnb-item>a{display:block;padding:17px 18px;font-size:15px;font-weight:700;white-space:nowrap;letter-spacing:-.02em;color:var(--ink);
  position:relative;}
.gnb-item>a::after{content:"";position:absolute;left:18px;right:18px;bottom:11px;height:1px;background:var(--ink);
  transform:scaleX(0);transform-origin:left;transition:transform var(--tr);}
.gnb-item:hover>a{color:var(--ink);}
.gnb-item:hover>a::after{transform:scaleX(1);}
.gnb-item.gnb-all>a{display:flex;align-items:center;gap:8px;}
.gnb-item.gnb-all>a::after{display:none;}
.gnb-all .ham{font-size:16px;}
.gnb-promo>a{color:var(--brand);}
.gnb-promo:hover>a{color:var(--brand-dark);}
.gnb-promo>a::after{background:var(--brand);}
.gnb-pickup>a{color:var(--brand);position:relative;}
.gnb-pickup>a::after{content:"";position:absolute;left:18px;right:18px;bottom:11px;height:1px;background:var(--brand);transform:scaleX(1);}

/* 전체메뉴 메가패널 (전체 폭) */
.has-mega{position:static;}
.mega-panel{position:absolute;top:100%;left:0;right:0;width:100%;background:#fff;
  border-top:1px solid var(--ink);border-bottom:1px solid var(--line);
  box-shadow:var(--sh-2);padding:34px 28px 38px;display:none;z-index:60;
  grid-template-columns:repeat(5,1fr);gap:14px 32px;}
.has-mega:hover .mega-panel{display:grid;}
.mega-col{display:flex;flex-direction:column;gap:3px;}
.mega-col .mega-top{font-size:14px;font-weight:800;color:var(--ink);padding:6px 0 10px;letter-spacing:-.02em;
  border-bottom:1px solid var(--line);margin-bottom:8px;}
.mega-col .mega-top:hover{color:var(--brand);}
.mega-col a{font-size:13px;color:var(--gray);padding:5px 0;letter-spacing:-.01em;}
.mega-col a:hover{color:var(--ink);}

/* =========================================================
   오른쪽 플로팅 퀵바 — 미니멀 화이트 카드
   ========================================================= */
.quickbar{position:fixed;right:20px;top:50%;transform:translateY(-50%);z-index:90;
  width:72px;background:#fff;border:1px solid var(--line-dark);border-radius:var(--r-lg);
  box-shadow:var(--sh-2);display:flex;flex-direction:column;overflow:visible;}
.qb-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  padding:14px 4px;border:0;background:none;cursor:pointer;color:var(--ink-soft);font-size:11px;line-height:1.25;
  border-bottom:1px solid var(--line);position:relative;text-align:center;transition:color var(--tr);}
.qb-item:last-child{border-bottom:0;}
.qb-item:hover{color:var(--brand);}
.qb-label{font-weight:600;letter-spacing:-.02em;}
.qb-recent .qb-label{font-weight:800;color:var(--ink);}
.qb-count{font-weight:800;color:var(--brand);font-size:12px;}
.qb-ico{font-size:20px;position:relative;}
.qb-badge{position:absolute;top:-6px;right:-12px;min-width:17px;height:17px;line-height:17px;
  background:var(--brand);color:#fff;border-radius:var(--r-pill);font-size:10px;font-weight:700;text-align:center;padding:0 4px;}
.qb-talk .qb-ico{background:#FEE500;color:#191600;font-size:11px;font-weight:900;border-radius:50%;
  width:36px;height:36px;display:flex;align-items:center;justify-content:center;}
.qb-top .qb-ico{font-size:15px;font-weight:900;}
/* 최근본 상품 hover 패널 */
.qb-recent-panel{position:absolute;right:90px;top:-6px;width:186px;background:#fff;border:1px solid var(--line-dark);
  border-radius:var(--r-lg);box-shadow:var(--sh-3);padding:14px;display:none;}
.qb-recent-panel::after{content:"";position:absolute;top:0;right:-34px;width:34px;height:100%;}
.qb-recent:hover .qb-recent-panel,
.qb-recent-panel:hover{display:block;}
.qb-recent-panel .qb-recent-item{cursor:pointer;}
.qb-recent-empty{color:var(--gray);font-size:12px;text-align:center;padding:16px 0;line-height:1.6;}
.qb-recent-item{display:flex;gap:9px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line);}
.qb-recent-item:last-child{border-bottom:0;}
.qb-recent-item img{width:42px;height:42px;object-fit:cover;border:1px solid var(--line);border-radius:var(--r-sm);}
.qb-recent-item .rp-name{font-size:11px;color:var(--ink-soft);display:-webkit-box;-webkit-line-clamp:2;
  -webkit-box-orient:vertical;overflow:hidden;text-align:left;line-height:1.45;}
@media (max-width:768px){ .quickbar{display:none;} }

/* =========================================================
   product card — 보더리스 대형 이미지, 우아한 호버
   ========================================================= */
.prod-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:56px 32px;}
.prod-grid.cols-5{grid-template-columns:repeat(5,1fr);}
.prod-card{position:relative;transition:transform var(--tr);}
.prod-card:hover{transform:translateY(-3px);}
.prod-card .thumb{position:relative;border:0;border-radius:var(--r-sm);overflow:hidden;
  aspect-ratio:1/1;background:var(--bg-soft);transition:box-shadow var(--tr);}
.prod-card:hover .thumb{box-shadow:var(--sh-2);}
.prod-card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1);}
.prod-card:hover .thumb img{transform:scale(1.045);}
.prod-card .badges{position:absolute;top:14px;left:14px;display:flex;gap:5px;z-index:2;}
.badge{display:inline-block;padding:4px 9px;border-radius:var(--r-xs);font-size:10px;font-weight:800;
  letter-spacing:.06em;color:#fff;text-transform:uppercase;}
.badge-best{background:var(--ink);}
.badge-new{background:#1d6b3a;}
.badge-premium{background:var(--gold);}
.badge-sale{background:var(--brand);}
.wish-btn{position:absolute;top:12px;right:12px;z-index:2;width:34px;height:34px;border-radius:50%;
  border:0;background:rgba(255,255,255,.92);font-size:16px;color:#bbb;box-shadow:var(--sh-1);
  display:flex;align-items:center;justify-content:center;transition:color var(--tr),transform var(--tr),background var(--tr);}
.wish-btn:hover{transform:scale(1.08);background:#fff;}
.wish-btn.on{color:var(--brand);}
.prod-info{padding:18px 2px 0;}
.prod-info .brand{font-size:11px;color:var(--gray);text-transform:uppercase;letter-spacing:.08em;font-weight:700;}
.prod-info .name{font-size:14.5px;color:var(--ink);margin:7px 0 11px;display:-webkit-box;-webkit-line-clamp:2;
  -webkit-box-orient:vertical;overflow:hidden;min-height:42px;line-height:1.45;font-weight:500;letter-spacing:-.01em;}
.prod-card:hover .prod-info .name{color:var(--ink);}
.prod-info .price-row{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;}
.prod-info .discount{color:var(--brand);font-weight:800;font-size:17px;letter-spacing:-.02em;}
.prod-info .price{font-weight:800;font-size:17px;letter-spacing:-.02em;color:var(--ink);}
.prod-info .origin{color:var(--gray-light);text-decoration:line-through;font-size:13px;}
.prod-info .rating{margin-top:10px;font-size:12px;color:var(--gray);}
.prod-info .rating .star{color:var(--ink);}
.soldout-cover{position:absolute;inset:0;background:rgba(255,255,255,.78);display:flex;align-items:center;
  justify-content:center;font-weight:700;color:var(--ink);letter-spacing:.04em;z-index:3;backdrop-filter:blur(1px);}

/* =========================================================
   section title — 큰 타이트 헤드라인 + 헤어라인 더보기
   ========================================================= */
.section{margin:92px 0;}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:36px;
  padding-bottom:18px;border-bottom:1px solid var(--ink);}
.section-head h2{font-size:30px;font-weight:900;margin:0;letter-spacing:-.04em;line-height:1.1;color:var(--ink);}
.section-head .sub{color:var(--gray);font-size:13.5px;margin-top:10px;font-weight:400;letter-spacing:-.01em;}
.section-head a.more{font-size:12.5px;color:var(--ink);font-weight:600;letter-spacing:.02em;position:relative;padding-bottom:2px;}
.section-head a.more::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--ink);
  transform:scaleX(0);transform-origin:right;transition:transform var(--tr);}
.section-head a.more:hover{color:var(--ink);}
.section-head a.more:hover::after{transform:scaleX(1);transform-origin:left;}

/* =========================================================
   main visual slider — 시네마틱 풀폭 히어로
   ========================================================= */
.hero{position:relative;margin-top:14px;}
.hero-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:0;border-radius:var(--r-sm);scrollbar-width:none;}
.hero-track::-webkit-scrollbar{display:none;}
.hero-slide{min-width:100%;scroll-snap-align:start;height:520px;border-radius:var(--r-sm);overflow:hidden;
  display:flex;align-items:flex-end;padding:0 0 64px 72px;color:#fff;
  background:linear-gradient(120deg,var(--ink-900),#000);}
.hero-slide .cap{max-width:620px;}
.hero-slide .cap h3{font-size:52px;font-weight:900;margin:0 0 18px;line-height:1.1;letter-spacing:-.045em;
  text-shadow:0 2px 18px rgba(0,0,0,.4);}
.hero-slide .cap p{font-size:17px;opacity:.92;margin:0 0 30px;font-weight:400;letter-spacing:-.01em;text-shadow:0 1px 10px rgba(0,0,0,.5);}
.hero-dots{display:flex;justify-content:center;gap:9px;margin-top:22px;}
.hero-dots span{width:7px;height:7px;border-radius:50%;background:var(--line-dark);cursor:pointer;transition:all var(--tr);}
.hero-dots span.on{background:var(--ink);width:28px;border-radius:var(--r-pill);}

/* promo strip */
.promo-strip{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:20px;}
.promo-card{border:1px solid var(--line);border-radius:var(--r-sm);padding:32px 36px;display:flex;
  justify-content:space-between;align-items:center;background:#fff;transition:border-color var(--tr),box-shadow var(--tr),transform var(--tr);}
.promo-card:hover{border-color:var(--ink);box-shadow:var(--sh-2);transform:translateY(-2px);}
.promo-card h4{margin:0 0 7px;font-size:18px;font-weight:800;letter-spacing:-.03em;color:var(--ink);}
.promo-card p{margin:0;color:var(--gray);font-size:13px;letter-spacing:-.01em;}

/* =========================================================
   breadcrumb
   ========================================================= */
.breadcrumb{font-size:12px;color:var(--gray);margin:28px 0;letter-spacing:.01em;}
.breadcrumb a{color:var(--gray);}
.breadcrumb a:hover{color:var(--ink);}

/* =========================================================
   product list page
   ========================================================= */
.list-head{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:1px solid var(--ink);
  padding-bottom:18px;margin-bottom:30px;}
.list-head h1{font-size:30px;margin:0;font-weight:900;letter-spacing:-.04em;line-height:1.1;}
.list-head .total{color:var(--gray);font-size:13px;margin-top:10px;letter-spacing:-.01em;}
.list-head .total b{color:var(--ink);font-weight:700;}
.sort-tabs{display:flex;gap:20px;}
.sort-tabs a{font-size:13px;color:var(--gray);letter-spacing:-.01em;position:relative;padding-bottom:3px;}
.sort-tabs a:hover{color:var(--ink);}
.sort-tabs a.on{color:var(--ink);font-weight:700;}
.sort-tabs a.on::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--ink);}
.cate-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:30px;}
.cate-chips a{padding:8px 18px;border:1px solid var(--line-dark);border-radius:var(--r-pill);font-size:13px;color:var(--ink-soft);
  letter-spacing:-.01em;transition:background var(--tr),color var(--tr),border-color var(--tr);}
.cate-chips a:hover{border-color:var(--ink);color:var(--ink);}
.cate-chips a.on{background:var(--ink);border-color:var(--ink);color:#fff;}

/* =========================================================
   pagination
   ========================================================= */
.pagination{display:flex;justify-content:center;gap:6px;margin:60px 0;}
.pagination a,.pagination span{min-width:40px;height:40px;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--line);border-radius:var(--radius);font-size:13px;color:var(--ink-soft);
  transition:border-color var(--tr),color var(--tr),background var(--tr);}
.pagination a:hover{border-color:var(--ink);color:var(--ink);}
.pagination .on{background:var(--ink);border-color:var(--ink);color:#fff;}
.pagination .disabled{opacity:.35;pointer-events:none;}

/* =========================================================
   product detail
   ========================================================= */
.detail-top{display:grid;grid-template-columns:1fr 1fr;gap:64px;margin:36px 0 80px;}
.detail-gallery .main-img{border:0;border-radius:var(--r-sm);overflow:hidden;aspect-ratio:1/1;background:var(--bg-soft);}
.detail-gallery .main-img img{width:100%;height:100%;object-fit:cover;}
.detail-thumbs{display:flex;gap:10px;margin-top:14px;}
.detail-thumbs img{width:74px;height:74px;object-fit:cover;border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;
  transition:border-color var(--tr);}
.detail-thumbs img:hover{border-color:var(--ink);}
.detail-info{padding-top:6px;}
.detail-info .brand{color:var(--gray);font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;}
.detail-info h1{font-size:32px;margin:12px 0 16px;line-height:1.25;font-weight:900;letter-spacing:-.04em;}
.detail-info .rating{color:var(--gray);font-size:13px;margin-bottom:24px;}
.detail-info .rating .star{color:var(--ink);}
.detail-info .rating b{color:var(--ink);font-weight:700;}
.price-area{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:26px 0;margin-bottom:26px;}
.price-area .discount{color:var(--brand);font-weight:800;font-size:20px;margin-right:12px;letter-spacing:-.02em;}
.price-area .final{font-size:34px;font-weight:900;letter-spacing:-.04em;color:var(--ink);}
.price-area .origin{color:var(--gray-light);text-decoration:line-through;margin-left:14px;font-size:16px;}
.opt-row{display:flex;align-items:center;gap:16px;margin-bottom:18px;}
.opt-row label{width:84px;color:var(--gray);font-size:13px;font-weight:600;letter-spacing:-.01em;}
.opt-row select{flex:1;padding:13px 14px;border:1px solid var(--line-dark);border-radius:var(--radius);font-size:14px;
  background:#fff;color:var(--ink);outline:none;cursor:pointer;transition:border-color var(--tr);}
.opt-row select:focus{border-color:var(--ink);}
.qty-box{display:inline-flex;border:1px solid var(--line-dark);border-radius:var(--radius);overflow:hidden;}
.qty-box button,.qty-box .qty-btn{width:42px;height:44px;border:0;background:#fff;font-size:17px;color:var(--ink);
  transition:background var(--tr);}
.qty-box button:hover,.qty-box .qty-btn:hover{background:var(--bg-soft);}
.qty-box button[disabled],.qty-box .qty-btn[disabled]{opacity:.35;cursor:not-allowed;background:#fff;}
.qty-box input,.qty-box .qty-input{width:54px;text-align:center;border:0;border-left:1px solid var(--line);
  border-right:1px solid var(--line);font-size:14px;color:var(--ink);background:#fff;}
.total-area{display:flex;justify-content:space-between;align-items:center;padding:22px 0;border-top:1px solid var(--line);margin-top:10px;}
.total-area>span:first-child{font-size:14px;color:var(--gray);font-weight:600;}
.total-area .total-price{font-size:28px;font-weight:900;color:var(--brand);letter-spacing:-.03em;}
.buy-btns{display:flex;gap:10px;margin-top:22px;}
.buy-btns .btn{flex:1;}
.detail-desc{margin:80px 0;}
.detail-desc h3{font-size:20px;border-bottom:1px solid var(--ink);padding-bottom:14px;font-weight:800;letter-spacing:-.03em;}
.detail-desc .desc-body{padding:36px 0;font-size:15px;line-height:1.95;color:var(--ink-soft);}

/* =========================================================
   login / auth
   ========================================================= */
.auth-wrap{max-width:400px;margin:90px auto;text-align:center;}
.auth-wrap .logo{font-size:32px;margin-bottom:12px;letter-spacing:-.05em;}
.auth-wrap p.lead{color:var(--gray);margin-bottom:44px;font-size:14px;letter-spacing:-.01em;}
.kakao-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:16px;
  background:#FEE500;color:#191600;border:0;border-radius:var(--radius);font-size:15px;font-weight:700;
  transition:filter var(--tr);}
.kakao-btn:hover{filter:brightness(.96);color:#191600;}
.naver-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:16px;
  background:#03C75A;color:#fff;border:0;border-radius:var(--radius);font-size:15px;font-weight:700;margin-top:10px;
  transition:filter var(--tr);}
.naver-btn:hover{filter:brightness(.95);color:#fff;}
.naver-btn .naver-n{font-weight:900;font-size:17px;background:#fff;color:#03C75A;width:24px;height:24px;
  border-radius:var(--r-sm);display:inline-flex;align-items:center;justify-content:center;}
.auth-note{margin-top:24px;font-size:12px;color:var(--gray);line-height:1.75;}
.auth-form{display:flex;flex-direction:column;gap:10px;margin-bottom:16px;text-align:left;}
.auth-input{padding:15px 16px;border:1px solid var(--line-dark);border-radius:var(--radius);font-size:14px;font-family:inherit;
  color:var(--ink);outline:none;transition:border-color var(--tr);}
.auth-input::placeholder{color:var(--gray-light);}
.auth-input:focus{outline:none;border-color:var(--ink);}
.auth-links{margin:16px 0;font-size:13px;color:var(--gray);}
.auth-links a{color:var(--ink-soft);}
.auth-links a:hover{color:var(--brand);}
.auth-links .sep{margin:0 10px;color:var(--line-dark);}
.auth-divider{display:flex;align-items:center;gap:14px;margin:28px 0;color:var(--gray-light);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;}
.auth-divider::before,.auth-divider::after{content:"";flex:1;height:1px;background:var(--line);}

/* =========================================================
   결제수단 선택 (checkout)
   ========================================================= */
.pay-methods{margin:20px 0;}
.pay-method-title{font-weight:700;font-size:14px;margin-bottom:12px;letter-spacing:-.02em;}
.pay-opt{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--line-dark);
  border-radius:var(--radius);margin-bottom:8px;cursor:pointer;transition:border-color var(--tr),background var(--tr);position:relative;}
.pay-opt:hover{border-color:var(--ink);}
.pay-opt input{display:none;}
.pay-opt.on{border-color:var(--brand);background:var(--brand-tint);}
.pay-opt .pm-name{font-weight:600;font-size:14px;letter-spacing:-.01em;}
.pay-opt .pm-check{margin-left:auto;color:var(--brand);font-weight:900;opacity:0;transition:opacity var(--tr);}
.pay-opt.on .pm-check{opacity:1;}
.pm-ico{width:54px;height:30px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:800;}
.pm-kakao{background:#FEE500;color:#3c1e1e;} .pm-kakao b{color:#000;margin-left:1px;}
.pm-card{background:#eef1f6;font-size:18px;color:var(--ink);}
.pm-toss{background:#0064ff;color:#fff;font-size:13px;letter-spacing:-.04em;}

/* =========================================================
   상품문의 작성폼
   ========================================================= */
.qna-form{padding:20px;margin:18px 0;}
.qna-form .textarea{width:100%;padding:14px 16px;border:1px solid var(--line-dark);border-radius:var(--radius);
  font-size:14.5px;font-family:inherit;line-height:1.6;resize:vertical;color:var(--ink);outline:none;transition:border-color var(--tr);}
.qna-form .textarea:focus{outline:none;border-color:var(--ink);}
.qna-form-bottom{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:14px;flex-wrap:wrap;}
.qna-secret{display:inline-flex;align-items:center;gap:8px;color:var(--gray);font-size:13px;cursor:pointer;white-space:nowrap;}
.qna-secret input{width:16px;height:16px;accent-color:var(--brand);}

/* =========================================================
   모의 결제창
   ========================================================= */
.paymock-wrap{max-width:460px;margin:60px auto;border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:var(--sh-3);overflow:hidden;}
.paymock-head{padding:24px 28px;color:#fff;font-weight:800;font-size:18px;letter-spacing:-.02em;}
.paymock-head.m-card{background:linear-gradient(135deg,#2c323d,#15181f);}
.paymock-head.m-toss{background:#0064ff;}
.paymock-body{padding:32px 28px;}
.paymock-row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px;}
.paymock-row.total b{font-size:20px;color:var(--brand);letter-spacing:-.02em;}
.paymock-note{text-align:center;color:var(--gray);font-size:12px;margin:20px 0;}

/* =========================================================
   empty / message
   ========================================================= */
.empty{text-align:center;padding:110px 0;color:var(--gray);}
.empty .ico{font-size:46px;margin-bottom:18px;opacity:.5;}
.empty p{font-size:15px;letter-spacing:-.01em;margin-bottom:20px;}
.alert{padding:15px 18px;border-radius:var(--radius);background:var(--brand-tint);color:var(--brand-dark);
  border:1px solid #f0cdd4;margin:16px 0;font-size:14px;}

/* =========================================================
   footer — 다크 잉크 서피스
   ========================================================= */
.site-footer{background:var(--ink-900);color:#b3b3b3;margin-top:110px;padding:60px 0 48px;font-size:13px;letter-spacing:-.01em;}
.footer-top{display:flex;gap:28px;flex-wrap:wrap;border-bottom:1px solid #353535;padding-bottom:22px;margin-bottom:28px;}
.footer-top a{color:#e2e2e2;font-weight:500;}
.footer-top a:hover{color:#fff;}
.footer-cols{display:flex;justify-content:space-between;flex-wrap:wrap;gap:28px;}
.footer-cols h5{color:#fff;margin:0 0 14px;font-size:14px;letter-spacing:-.01em;}
.footer-info{line-height:1.95;color:#8c8c8c;font-size:12px;}
.footer-cs .tel{font-size:26px;font-weight:900;color:#fff;letter-spacing:-.03em;}

/* =========================================================
   responsive
   ========================================================= */
@media (max-width:1024px){
  .container{padding:0 22px;}
  .prod-grid{grid-template-columns:repeat(3,1fr);gap:44px 24px;}
  .prod-grid.cols-5{grid-template-columns:repeat(3,1fr);}
  .header-main{gap:24px;padding:24px 22px;}
  .section{margin:72px 0;}
  .hero-slide{height:420px;}
  .hero-slide .cap h3{font-size:40px;}
  .detail-top{gap:40px;}
}
@media (max-width:768px){
  .container{padding:0 16px;}
  .header-main{flex-wrap:wrap;gap:16px;padding:18px 16px;}
  .search-box{order:3;flex-basis:100%;max-width:none;}
  .prod-grid,.prod-grid.cols-5{grid-template-columns:repeat(2,1fr);gap:36px 16px;}
  .detail-top{grid-template-columns:1fr;gap:28px;margin-bottom:56px;}
  .promo-strip{grid-template-columns:1fr;}
  .gnb-inner{overflow-x:auto;}
  .hero-slide{padding:0 0 40px 28px;height:340px;}
  .hero-slide .cap h3{font-size:28px;}
  .hero-slide .cap p{font-size:14px;}
  .section{margin:60px 0;}
  .section-head h2{font-size:23px;}
  .list-head h1,.detail-info h1{font-size:24px;}
  .price-area .final{font-size:28px;}
}

/* =========================================================
   공용 패널/테이블/폼 (장바구니·주문·마이페이지 공통)
   ========================================================= */
.panel{border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;margin-bottom:20px;overflow:hidden;}
.panel-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line);}
.panel-head h3{margin:0;font-size:15px;font-weight:700;letter-spacing:-.02em;}
.panel-body{padding:20px;}

.tbl{width:100%;border-collapse:collapse;font-size:14px;}
.tbl th,.tbl td{padding:14px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;}
.tbl thead th{background:transparent;font-weight:700;color:var(--gray);border-bottom:1px solid var(--ink);
  font-size:12px;text-transform:uppercase;letter-spacing:.04em;}
.tbl.cart-tbl th:first-child{padding-left:18px;}
.tbl td.center,.tbl th.center{text-align:center;}
.tbl td.right,.tbl th.right{text-align:right;}

.cart-prod{display:flex;gap:16px;align-items:center;}
.cart-thumb{flex:0 0 auto;width:84px;height:84px;border:0;border-radius:var(--r-sm);overflow:hidden;display:block;background:var(--bg-soft);}
.cart-thumb img{width:100%;height:100%;object-fit:cover;}
.cart-prod-info .name{font-weight:600;line-height:1.45;letter-spacing:-.01em;color:var(--ink);}
.cart-prod-info .opt,.cart-prod-info .unit{font-size:12px;margin-top:4px;}

/* 폼 */
.form-row{display:flex;align-items:flex-start;gap:16px;padding:10px 0;}
.form-row>label{flex:0 0 120px;padding-top:11px;font-weight:600;font-size:14px;color:var(--ink-soft);letter-spacing:-.01em;}
.form-row .field{flex:1;}
.input,input.input{width:100%;padding:12px 14px;border:1px solid var(--line-dark);border-radius:var(--radius);font-size:14px;
  outline:none;box-sizing:border-box;color:var(--ink);transition:border-color var(--tr);}
.input:focus{border-color:var(--ink);}

/* 결제/합계 요약 */
.cart-wrap{display:grid;grid-template-columns:1fr 340px;gap:32px;align-items:start;}
.cart-main{min-width:0;}
.cart-side{min-width:0;}
.order-summary{padding:24px;position:sticky;top:24px;}
.order-summary h3{margin:0 0 18px;font-size:15px;font-weight:800;letter-spacing:-.02em;}
.sum-row{display:flex;justify-content:space-between;align-items:center;padding:9px 0;font-size:14px;color:var(--ink-soft);}
.sum-row b{color:var(--ink);font-weight:700;}
.sum-row.sum-total{border-top:1px solid var(--ink);margin-top:10px;padding-top:16px;font-size:15px;color:var(--ink);}
.sum-row.sum-total b{color:var(--brand);font-size:21px;letter-spacing:-.02em;}
.order-summary .btn{margin-top:18px;}
.order-summary .btn+.btn{margin-top:8px;}
.sum-note{font-size:12px;margin-top:4px;color:var(--gray);}

/* 상태 칩 */
.chip{display:inline-block;padding:4px 11px;border-radius:var(--r-pill);font-size:11.5px;font-weight:700;line-height:1.6;letter-spacing:-.01em;}
.chip-gray{background:#eef0f1;color:#5a5a5a;}
.chip-green{background:#e6f1ea;color:#1d6b3a;}
.chip-orange{background:#fbeede;color:#b05a18;}
.chip-red{background:var(--brand-tint);color:var(--brand);}

/* 마이페이지 2단 레이아웃 */
.mypage-wrap{display:grid;grid-template-columns:210px 1fr;gap:32px;align-items:start;}
.mypage-nav{position:sticky;top:24px;}
.mypage-menu{display:flex;flex-direction:column;border-top:1px solid var(--ink);}
.mypage-menu a{display:block;padding:14px 16px;border-bottom:1px solid var(--line);font-size:14px;color:var(--ink-soft);letter-spacing:-.01em;
  transition:background var(--tr),color var(--tr);}
.mypage-menu a:last-child{border-bottom:1px solid var(--line);}
.mypage-menu a:hover{background:var(--bg-soft);color:var(--ink);}
.mypage-menu a.on{color:var(--ink);font-weight:700;border-left:2px solid var(--brand);padding-left:14px;background:#fff;}

/* 대시보드 위젯 */
.dash-hello{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.dash-hello .pt{font-size:14px;color:var(--ink-soft);}
.dash-hello .pt b{color:var(--brand);font-size:20px;font-weight:900;}
.status-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;}
.status-cell{text-align:center;padding:20px 8px;border:1px solid var(--line);border-radius:var(--r-sm);transition:border-color var(--tr);}
.status-cell:hover{border-color:var(--ink);}
.status-cell .num{display:block;font-size:26px;font-weight:900;color:var(--ink);letter-spacing:-.03em;}
.status-cell .lbl{display:block;font-size:12px;color:var(--gray);margin-top:7px;}

@media (max-width:768px){
  .cart-wrap{grid-template-columns:1fr;gap:20px;}
  .order-summary{position:static;}
  .mypage-wrap{grid-template-columns:1fr;}
  .mypage-nav{position:static;}
  .mypage-menu{flex-direction:row;flex-wrap:wrap;border-top:0;}
  .mypage-menu a{flex:1 1 auto;border-bottom:1px solid var(--line);}
  .form-row{flex-direction:column;gap:6px;}
  .form-row>label{flex-basis:auto;padding-top:0;}
  .status-grid{grid-template-columns:repeat(3,1fr);}
}

/* =========================================================
   사용자 컴포넌트 폴리시 (cart / order / mypage / review)
   ========================================================= */
.select,select.select{width:100%;padding:12px 14px;border:1px solid var(--line-dark);border-radius:var(--radius);
  font-size:14px;font-family:inherit;background:#fff;color:var(--ink);outline:none;cursor:pointer;transition:border-color var(--tr);}
.select:focus{border-color:var(--ink);}
.textarea,textarea.textarea{width:100%;padding:12px 14px;border:1px solid var(--line-dark);border-radius:var(--radius);
  font-size:14px;font-family:inherit;line-height:1.6;min-height:96px;resize:vertical;outline:none;box-sizing:border-box;
  color:var(--ink);transition:border-color var(--tr);}
.textarea:focus{border-color:var(--ink);}

/* 필터/툴바 (cart 상단) */
.filter-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;
  background:transparent;border:0;border-bottom:1px solid var(--ink);border-radius:0;
  padding:0 0 14px;margin-bottom:18px;}
.filter-bar .chip{display:inline-flex;align-items:center;gap:8px;background:transparent;color:var(--ink);
  font-weight:600;font-size:14px;cursor:pointer;padding:0;line-height:1.4;border-radius:0;letter-spacing:-.01em;}
.filter-bar input[type="checkbox"]{width:17px;height:17px;accent-color:var(--brand);cursor:pointer;}

/* 칩 보강 */
.chip-blue{background:#e8eef7;color:#23508f;}

/* 작은 X 삭제 버튼 (cart) */
.btn-x{width:30px;height:30px;border:1px solid var(--line-dark);border-radius:50%;background:#fff;
  color:var(--gray);font-size:16px;line-height:1;display:inline-flex;align-items:center;justify-content:center;
  padding:0;transition:border-color var(--tr),color var(--tr),background var(--tr);}
.btn-x:hover{border-color:var(--ink);color:var(--ink);background:#fff;}

/* cart 표 보강 */
.cart-check{width:17px;height:17px;accent-color:var(--brand);cursor:pointer;}
.cart-tbl thead th{font-weight:700;}
.cart-tbl td{vertical-align:middle;}
.line-total{font-size:15px;font-weight:800;color:var(--ink);white-space:nowrap;letter-spacing:-.02em;}
.cart-prod-info .brand{font-size:11px;color:var(--gray);text-transform:uppercase;letter-spacing:.06em;font-weight:700;}
.cart-prod-info .opt,.cart-prod-info .unit{color:var(--gray);}
/* 품절 표시 */
.soldout-tag{display:inline-block;margin-top:7px;padding:2px 9px;border-radius:var(--r-xs);
  background:#eef0f1;color:var(--gray);font-size:11px;font-weight:700;letter-spacing:.02em;}
tr.is-soldout{opacity:.5;}
tr.is-soldout .cart-prod-info .name{color:var(--gray);}

/* =========================================================
   상품 상세 - 리뷰 섹션
   ========================================================= */
.detail-review{margin:80px 0;}
.detail-review>h3{font-size:20px;border-bottom:1px solid var(--ink);padding-bottom:14px;margin-bottom:26px;
  font-weight:800;letter-spacing:-.03em;}
.detail-review>h3 .muted{font-size:15px;font-weight:500;}

/* 별점 색 — 잉크 톤 통일 */
.detail-review .star{color:var(--ink);}

/* 평점 요약 박스 */
.review-summary{display:flex;align-items:center;gap:7px;padding:22px 24px;margin-bottom:20px;background:var(--bg-soft);border:0;}
.review-summary .star{font-size:22px;color:var(--ink);}
.review-summary b{font-size:26px;font-weight:900;letter-spacing:-.03em;}

/* 작성 폼 */
.review-form{padding:22px 24px;margin-bottom:28px;}
.review-form .form-row{padding:9px 0;}
.review-form .form-row>label{flex:0 0 70px;padding-top:12px;}
.review-form .select{max-width:220px;}

/* 리뷰 목록 */
.review-list{list-style:none;margin:0;padding:0;}
.review-item{padding:22px 4px;border-bottom:1px solid var(--line);}
.review-item:first-child{border-top:1px solid var(--line);}
.review-item.muted{color:var(--gray);text-align:center;padding:36px 4px;}
.review-head{display:flex;align-items:center;gap:11px;flex-wrap:wrap;margin-bottom:10px;}
.review-nick{font-weight:700;font-size:14px;color:var(--ink);letter-spacing:-.01em;}
.review-head .star{font-size:14px;letter-spacing:1px;color:var(--ink);}
.review-date{font-size:12px;margin-left:auto;color:var(--gray);}
.review-body{font-size:14px;line-height:1.75;color:var(--ink-soft);white-space:pre-line;}

/* 리뷰 페이지네이션 */
#reviewPaging{display:flex;justify-content:center;gap:6px;margin:28px 0 0;}
#reviewPaging a{min-width:36px;height:36px;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--line);border-radius:var(--radius);font-size:13px;color:var(--ink-soft);cursor:pointer;
  transition:border-color var(--tr),color var(--tr),background var(--tr);}
#reviewPaging a:hover{border-color:var(--ink);color:var(--ink);}
#reviewPaging a.on{background:var(--ink);border-color:var(--ink);color:#fff;}

/* 반응형 */
@media (max-width:768px){
  .filter-bar{padding:0 0 12px;}
  .review-summary{flex-wrap:wrap;padding:18px 16px;}
  .review-form .form-row>label{flex-basis:auto;padding-top:0;}
  .cart-thumb{width:66px;height:66px;}
  .cart-prod{gap:12px;}
  .detail-review{margin:60px 0;}
}

/* ========== 심사 보완 (judge tweaks) ========== */
/* 가격 위계 강화: 할인가/판매가 더 또렷하게 */
.prod-info .price,.prod-info .discount{font-weight:900;font-size:18px;}
/* 별점 신뢰 신호: 잉크 → 앰버 복원 */
.prod-info .rating .star,
.detail-info .rating .star,
.detail-review .star,
.review-summary .star,
.review-head .star{color:#f5a623;}
/* sticky 오프셋: 고정 헤더(util+로고+gnb ≈ 200px) 아래로 */
.order-summary,.mypage-nav{top:210px;}
@media (max-width:768px){ .order-summary,.mypage-nav{position:static;top:auto;} }

/* ========== 전체 텍스트 확대 (가독성) ========== */
body{font-size:16.5px;}
.util-bar{font-size:13.5px;}
.util-bar .container{height:40px;}
.header-icons a{font-size:13px;}
.header-icons .ico{font-size:25px;}
.search-box input{font-size:15.5px;padding:15px 20px;}
.gnb-item>a{font-size:16.5px;padding:18px 19px;}
.prod-info .brand{font-size:12.5px;}
.prod-info .name{font-size:16.5px;line-height:1.5;min-height:48px;}
.prod-info .price,.prod-info .discount{font-size:19px;}
.prod-info .origin{font-size:14px;}
.prod-info .rating{font-size:13px;}
.section-head h2{font-size:30px;}
.section-head .sub{font-size:15px;}
.breadcrumb{font-size:13.5px;}
.list-head h1{font-size:29px;}
.list-head .total,.sort-tabs a{font-size:14.5px;}
.cate-chips a{font-size:14.5px;}
.btn{font-size:15px;} .btn-lg{font-size:16.5px;} .btn-sm{font-size:13.5px;}
.detail-info h1{font-size:34px;}
.detail-info .brand{font-size:13px;}
.price-area .final{font-size:36px;}
.price-area .discount{font-size:22px;}
.panel-head h3{font-size:17px;}
.auth-input{font-size:16px;padding:15px 16px;}

/* ========== 우측 바로가기(퀵바) 확대 ========== */
.quickbar{width:94px;right:20px;border-radius:16px;}
.qb-item{padding:18px 6px;gap:7px;font-size:13px;}
.qb-label{font-weight:700;}
.qb-recent .qb-label{font-size:13px;}
.qb-count{font-size:15px;}
.qb-ico{font-size:28px;}
.qb-badge{min-width:20px;height:20px;line-height:20px;font-size:11px;top:-7px;right:-13px;}
.qb-talk .qb-ico{width:46px;height:46px;font-size:14px;}
.qb-top .qb-ico{font-size:20px;}
.qb-recent-panel{right:104px;width:200px;}
@media (max-width:768px){ .quickbar{display:none;} }

/* ========== 전체 텍스트/아이콘 추가 확대 v2 ========== */
body{font-size:17px;}
.util-bar{font-size:15px;}
.util-bar .container{height:44px;gap:20px;}
.header-icons{gap:30px;}
.header-icons a{font-size:14.5px;gap:6px;}
.header-icons .ico{font-size:31px;}
.header-icons .badge-count{min-width:21px;height:21px;line-height:21px;font-size:12px;}
.search-box input{font-size:17px;padding:17px 22px;}
.search-box button{width:62px;}
.gnb-item>a{font-size:18px;padding:19px 20px;}
.logo{font-size:25px;}
  .brand-logo .logo-img{height:64px;}
.prod-info .brand{font-size:13px;}
.prod-info .name{font-size:17px;min-height:50px;}
.prod-info .price,.prod-info .discount{font-size:21px;}
.prod-info .origin{font-size:15px;}
.section-head h2{font-size:33px;}
.section-head .sub{font-size:16px;}
.list-head h1{font-size:32px;}
.cate-chips a,.sort-tabs a,.list-head .total{font-size:15.5px;}
.btn{font-size:16px;} .btn-lg{font-size:18px;}
.breadcrumb{font-size:14.5px;}
.detail-info h1{font-size:36px;}
.price-area .final{font-size:38px;}
.panel-head h3{font-size:18px;}

/* ========== 페이지별 텍스트 추가 확대 v3 (로그인/폼/표/마이페이지) ========== */
/* 로그인 · 회원가입 */
.auth-wrap{max-width:460px;}
.auth-wrap .logo{font-size:40px;}
.auth-wrap .lead{font-size:17px;}
.auth-input{font-size:17px;padding:17px 18px;}
.auth-links{font-size:15.5px;}
.auth-divider{font-size:13.5px;}
.kakao-btn,.naver-btn{font-size:17.5px;padding:19px;}
.kakao-btn svg,.naver-btn .naver-n{transform:scale(1.1);}
.auth-note{font-size:14px;}
/* 폼/표/요약 공통(스토어 사용자 영역) */
.tbl,.tbl th,.tbl td{font-size:16px;}
.form-row>label{font-size:16.5px;}
.input,.select,.textarea{font-size:17px;padding:14px 16px;}
.sum-row{font-size:16px;} .sum-total{font-size:18px;} .order-summary h3{font-size:18px;}
.mypage-nav a{font-size:16.5px;}
.mypage-wrap .panel-head h3,.dash-hello{font-size:19px;}
.chip{font-size:13px;}
.pay-opt .pm-name{font-size:16px;}
.review-body,.qna-form .textarea{font-size:16px;}
/* 안내/공지/상세 본문 가독성 */
.detail-desc .desc-body{font-size:16.5px;}
.breadcrumb{font-size:15px;}

/* ========== 전체메뉴 메가패널 글자 확대 v4 ========== */
.mega-col .mega-top{font-size:16.5px;padding:8px 0;}
.mega-col a{font-size:15px;padding:7px 0;}
.gnb-all .ham{font-size:18px;}

/* ========== 유틸바 링크 진하게 ========== */
.util-bar{color:var(--ink-soft);}
.util-bar a{color:var(--ink-soft);font-weight:600;}
.util-bar a:hover{color:var(--brand);}
.util-bar b{color:var(--ink);font-weight:800;}

/* ========== 전체 텍스트 추가 확대 v5 (목록/상세) ========== */
body{font-size:17.5px;}
.prod-info .brand{font-size:13px;}
.prod-info .name{font-size:17.5px;min-height:52px;}
.prod-info .price,.prod-info .discount{font-size:21px;}
.prod-info .rating{font-size:13.5px;}
.list-head h1{font-size:34px;}
.list-head .total{font-size:15.5px;}
.sort-tabs a{font-size:16px;}
.cate-chips a{font-size:15.5px;padding:10px 18px;}
.breadcrumb{font-size:15px;}
/* 상품 상세 */
.detail-info .brand{font-size:14px;}
.detail-info h1{font-size:38px;line-height:1.3;}
.detail-info .rating{font-size:15px;}
.detail-info .summary,.detail-info p.muted{font-size:16px;}
.price-area .final{font-size:40px;}
.price-area .discount{font-size:24px;}
.price-area .origin{font-size:17px;}
.opt-row label{font-size:15.5px;}
.opt-row select,.qty-box input,.qty-box button{font-size:16px;}
.total-area{font-size:16px;} .total-area .total-price{font-size:30px;}
.buy-btns .btn{font-size:18px;padding:18px;}
.detail-desc h3,.detail-review h3,#qnaSection h3{font-size:22px;}
.detail-desc .desc-body{font-size:17px;line-height:1.95;}
.review-summary{font-size:16px;} .review-item{font-size:15.5px;}

/* ========== 토스트 알림 (alert 대체) ========== */
.toast-wrap{position:fixed;left:50%;bottom:42px;transform:translateX(-50%);z-index:9999;
  display:flex;flex-direction:column;gap:10px;align-items:center;pointer-events:none;}
.toast{background:rgba(17,17,17,.93);color:#fff;padding:15px 26px;border-radius:40px;font-size:16px;
  font-weight:600;box-shadow:0 10px 30px rgba(0,0,0,.28);opacity:0;transform:translateY(14px);
  transition:opacity .25s,transform .25s;max-width:90vw;letter-spacing:-.2px;}
.toast.show{opacity:1;transform:translateY(0);}
.toast.ok{background:rgba(28,120,58,.96);}
.toast.err{background:rgba(31,109,67,.96);}

/* ========== 퀵바 확대 + 위치(왼쪽으로) v2 ========== */
.quickbar{width:104px;right:32px;}
.qb-item{padding:20px 6px;font-size:13.5px;}
.qb-label{font-size:13.5px;}
.qb-count{font-size:16px;}
.qb-ico{font-size:31px;}
.qb-talk .qb-ico{width:50px;height:50px;font-size:15px;}
.qb-recent-panel{right:116px;width:210px;}
@media (max-width:768px){ .quickbar{display:none;} }

/* ========== 퀵바 더 왼쪽으로 v3 ========== */
.quickbar{right:56px;}
.qb-recent-panel{right:118px;}
@media (max-width:900px){ .quickbar{right:16px;} }
@media (max-width:768px){ .quickbar{display:none;} }

/* ========== 전체 텍스트 확대 v6 ========== */
body{font-size:18px;}
.gnb-item>a{font-size:18.5px;}
.prod-info .name{font-size:18px;}
.prod-info .price,.prod-info .discount{font-size:22px;}
.section-head h2{font-size:34px;}
.list-head h1{font-size:36px;}
.detail-info h1{font-size:40px;}
.btn-lg{font-size:18px;}

/* ========== 퀵바 더 크게 v4 (폭/아이콘/글자) ========== */
.quickbar{width:124px;right:48px;border-radius:18px;}
.qb-item{padding:22px 8px;gap:8px;}
.qb-label{font-size:15px;font-weight:700;}
.qb-recent .qb-label{font-size:15px;}
.qb-count{font-size:18px;}
.qb-ico{font-size:36px;}
.qb-badge{min-width:22px;height:22px;line-height:22px;font-size:12px;top:-8px;right:-15px;}
.qb-talk .qb-ico{width:56px;height:56px;font-size:16px;}
.qb-top .qb-ico{font-size:24px;}
.qb-recent-panel{right:138px;width:220px;}
@media (max-width:900px){ .quickbar{right:14px;width:104px;} }
@media (max-width:768px){ .quickbar{display:none;} }

/* ===== 체크아웃 선물포장 옵션 ===== */
.gift-opts{display:grid;grid-template-columns:1fr;gap:10px;}
.gift-opt{display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  border:1.5px solid #e5e5e5;border-radius:12px;padding:14px 16px;cursor:pointer;transition:.15s;}
.gift-opt:hover{border-color:#43976a;background:#eef6f1;}
.gift-opt.on{border-color:var(--brand);background:#eef6f1;box-shadow:0 0 0 2px rgba(31,109,67,.08);}
.gift-opt input{accent-color:var(--brand);width:18px;height:18px;}
.gift-opt .g-name{font-weight:700;font-size:15.5px;color:#222;}
.gift-opt .g-desc{flex-basis:100%;margin-left:30px;font-size:13px;}
.gift-opt .g-price{margin-left:auto;font-weight:800;color:var(--brand);font-size:15px;}

/* ===== 퀵바 위치 정리 v5 (오른쪽 가장자리 밀착·세로 중앙·상단 잘림 방지) ===== */
.quickbar{
  right:20px;
  top:50%; bottom:auto;
  transform:translateY(-50%);
  width:112px;
  max-height:calc(100vh - 24px);
}
@media (max-width:1280px){ .quickbar{ right:12px; width:100px; } }
@media (max-width:900px){  .quickbar{ right:10px; width:92px; } }
@media (max-width:768px){  .quickbar{ display:none; } }

/* ===== 퀵바 위치 v6 (상단 헤더 아래로 내려 고정 — 상단 메뉴 안 가리게) ===== */
.quickbar{ top:200px; bottom:auto; transform:none; }
@media (max-height:820px){ .quickbar{ top:180px; } }
@media (max-height:680px){ .quickbar{ top:150px; } }

/* ===== 퀵바 위치 v7 (헤더 확대분 반영 — 헤더 완전히 아래로, 여백) ===== */
.quickbar{ top:272px; right:24px; }
@media (max-height:900px){ .quickbar{ top:250px; } }
@media (max-height:760px){ .quickbar{ top:210px; } }

/* ===== 관리자: 쇼핑몰 상단에서 관리자페이지로 복귀 버튼 ===== */
.util-bar .admin-return{
  background:var(--brand); color:#fff !important; padding:3px 12px; border-radius:999px;
  font-weight:800; text-decoration:none; letter-spacing:0;
}
.util-bar .admin-return:hover{ background:#134e2f; color:#fff !important; }
