/* 굿스푼 새 스킨 v19 — 시안 v18y·v18z·v19 이식(2026-10-20 · 대표 10/19 B안 «최종판까지 다 옮긴 뒤 한 번에 교체» · 10/20 저녁 «서버에 올려 교체 직전까지»)
   원천 = 시안 태그 proto-v18y·proto-v18z·proto-v19 의 v18y.css·v18z.css·v19.css — 선택자를 작업 스킨 이름표(.gs-)로 바꿔 덧씌움 · 짝 = js/gs_v19.js
   글자 = v18p 단계(12·13·14·15·16·18·20·24 · 딱지 11) · 모서리 = v18s 단계(4·8·12·16·24 · 알약 999) · 손님 글자 12px 이상(딱지 밖)
   ⛔ 지킨 것: 상품 줄 간격 12px(대표 10/18 · 윙잇 32px ✗) · 후기 칸 무채색(v18p ① · 노란 별은 카드만) · 할인율 빨강은 가격 앞(고도몰 할인 값이 있을 때만 — 지금 카드엔 할인 표시 없음)
   v18z ①~⑤ 카드 디테일·★별점 줄 · v19 A1 바로가기 한 줄 · A2 띠 칸을 제목 위로 · A3 옆 메뉴 분류 글자 목록 · A4 세부 분류 숫자 칸 · B1 수량 입력 · B2 담기 단추 사진 오른쪽 아래
   B7 «부터» · B9 검색 층 바깥 덮개 · B10 배송 안내 창 · B13 베스트 보기 탭 · v18y 칩 줄 «옆에 더 있어요» 표시 */

#wrap { --gs-z-title: #43382E; --gs-z-desc: #857767; --gs-z-price: #24190F; --gs-rate: #DC3838; --gs-z-star: #FAC130; --gs-z-cnt: #8A7C6E; }

/* ══ v18z ① 사진 4:5 · 모서리 4px · 그림자 없음(윙잇 216×269) — 격자·옆으로 넘기는 줄·핫딜 TOP 3 ══ */
#wrap :is(.gs-grid, .gs-row) > .gs-card .gs-card-img { aspect-ratio: 4 / 5; border-radius: 4px; box-shadow: none; }
#wrap .gs-pd-item .gs-card .gs-card-img { aspect-ratio: 4 / 5; border-radius: 4px; }
#wrap .gs-row .gs-more-in { aspect-ratio: 4 / 5; border-radius: 4px; }

/* ══ v19 B2 담기 단추 — 사진 칸 오른쪽 아래 6px 안 · 36px(단추 칸 = 사진과 같은 격자 칸 → 사진 비율이 바뀌어도 따라감) ══
   옛 단추 칸은 «정사각 높이»로 고정이라 사진을 4:5 로 늘린 뒤 사진 가운데쯤에 떠 있었다(대표 10/20 «너무 애매한 위치») */
#wrap :is(.gs-grid, .gs-row) > .gs-card, #wrap .gs-pd-item > .gs-card { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto auto; align-content: start; }
#wrap :is(.gs-grid, .gs-row) > .gs-card > .gs-rank-top, #wrap .gs-pd-item > .gs-card > .gs-rank-top { grid-row: 1; grid-column: 1; }
#wrap :is(.gs-grid, .gs-row) > .gs-card > .gs-card-img, #wrap .gs-pd-item > .gs-card > .gs-card-img { grid-row: 2; grid-column: 1; }
#wrap :is(.gs-grid, .gs-row) > .gs-card > .gs-card-addwrap, #wrap .gs-pd-item > .gs-card > .gs-card-addwrap {
  grid-row: 2; grid-column: 1; position: relative; inset: auto; top: 0 !important; left: auto; width: auto; height: auto; aspect-ratio: auto; padding: 6px; z-index: 2; align-self: stretch; justify-self: stretch; }
#wrap :is(.gs-grid, .gs-row) > .gs-card > .gs-card-body, #wrap .gs-pd-item > .gs-card > .gs-card-body { grid-row: 3; grid-column: 1; }
#wrap :is(.gs-grid, .gs-row) .gs-card .gs-card-add { width: 36px; height: 36px; }
#wrap :is(.gs-grid, .gs-row) .gs-card .gs-card-add svg { width: 19px; height: 19px; }
#wrap .gs-pd-item .gs-card .gs-card-add { width: 32px; height: 32px; }

/* ══ v18z ② 사진 → 제목 6px · 제목 14px/500/1.4 두 줄(빈 줄 자리 안 남김) ══ */
#wrap :is(.gs-grid, .gs-row, .gs-pd-item) .gs-card .gs-card-body { padding-top: 6px; }
#wrap :is(.gs-grid, .gs-row, .gs-pd-item) .gs-card.two .gs-card-taste { height: auto !important; max-height: 39.2px; font-size: 14px; font-weight: 500; line-height: 1.4; color: var(--gs-z-title); letter-spacing: 0; }
#wrap :is(.gs-grid, .gs-row, .gs-pd-item) .gs-card.one .gs-card-name { height: auto; max-height: 39.2px; font-size: 14px; font-weight: 500; line-height: 1.4; color: var(--gs-z-title); letter-spacing: 0; }
#wrap .gs-pd-item.gs-pd-item .gs-card.two .gs-card-taste { font-size: 13px; max-height: 36.4px; }   /* 핫딜 TOP 3(좁은 세 칸)은 한 단계 작게 */

/* ══ v19 A2 카드 글 순서 = 띠 칸(연민트·베이지 칸 두 개) → 제목 → 가격 → ★ · v18z ③ 띠 12px · 바탕 없는 설명은 1px·12px/400 회색 한 줄 ══ */
#wrap :is(.gs-grid, .gs-row, .gs-pd-item) .gs-card .gs-card-body > .gs-card-name.gs-v18d-band { order: -1; margin-top: 0 !important; gap: 3px !important; letter-spacing: 0; }
#wrap :is(.gs-grid, .gs-row, .gs-pd-item) .gs-card .gs-card-body > .gs-card-name.gs-v18d-band ~ .gs-card-taste,
#wrap :is(.gs-grid, .gs-row, .gs-pd-item) .gs-card .gs-card-body:has(> .gs-card-name.gs-v18d-band) > .gs-card-taste { margin-top: 4px; }
#wrap :is(.gs-grid, .gs-row, .gs-pd-item) .gs-card .gs-card-name.gs-v18d-band :is(.gs-v18d-l1, .gs-v18d-pt) { height: 19px; line-height: 19px; padding: 0 5px; font-size: 12px; }
#wrap :is(.gs-grid, .gs-row, .gs-pd-item) .gs-card .gs-card-name.gs-v18d-band .gs-v18d-pt { font-weight: 400; color: #6B5C4D; }
#wrap :is(.gs-grid, .gs-row, .gs-pd-item) .gs-card.two .gs-card-name:not(.gs-v18d-band) { margin-top: 1px; font-size: 12px; font-weight: 400; line-height: 1.4; color: var(--gs-z-desc); letter-spacing: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ══ v18z ④ 가격 줄 6px · 15px/700 ══ */
#wrap :is(.gs-grid, .gs-row, .gs-pd-item) .gs-card .gs-card-price { margin-top: 6px; gap: 0; font-size: 15px; font-weight: 700; line-height: 21px; letter-spacing: 0; color: var(--gs-z-price); }
#wrap .gs-pd-item.gs-pd-item .gs-card .gs-card-price { font-size: 14px; line-height: 20px; }
#wrap .gs-card-price .gs-rate, #wrap .gs-rank-price .gs-rate { margin-right: 3px; font-weight: 700; color: var(--gs-rate); }

/* ══ v19 B7 골라담기 최저가 «~» → 작은 회색 «부터»(js 가 그린다 · .gs-from) ══ */
#wrap .gs-from { margin-left: 1px; font-size: 12px; font-weight: 500; color: var(--gs-z-desc); letter-spacing: 0; }
#wrap .gs-hot-price .gs-from { color: inherit; opacity: .85; }
#wrap .gs-rank-price .gs-from { margin-left: 1px; }

/* ══ v18z ⑤ ★별점 줄 — 가격 아래 6px · ★13px 노랑 · 평균 13px/600 · (후기 수) 12px · 자료 없는 상품은 줄 없음(js/gs_v19.js · 자료 js/gs_v18z_rating.js) ══ */
.gs-zrate { display: flex; align-items: center; gap: 0; margin: 6px 0 0; height: 17px; font-size: 13px; line-height: 17px; white-space: nowrap; letter-spacing: 0; color: var(--gs-text, #24190F); }
.gs-zrate svg { flex: 0 0 13px; width: 13px; height: 13px; fill: var(--gs-z-star, #FAC130); }
.gs-zrate b { margin-left: 2px; font-size: 13px; font-weight: 600; color: var(--gs-text, #24190F); font-variant-numeric: tabular-nums; }
.gs-zrate span { margin-left: 2px; font-size: 12px; font-weight: 400; color: var(--gs-z-cnt, #8A7C6E); overflow: hidden; text-overflow: ellipsis; }
.gs-pd-item .gs-zrate { margin-top: 4px; }
.gs-rank-item .gs-zrate { margin-top: 1px; }
.gs-hot-card .gs-zrate { margin-top: 2px; }
.gs-hot-card .gs-zrate b { color: #fff; }
.gs-hot-card .gs-zrate span { color: rgba(255, 255, 255, .85); }

/* ══ v19 A1 메인 바로가기 — 동그라미 아이콘 + 한 줄 가로 넘김(한 화면 약 5.5칸 · 마지막 칸 반쯤 걸침) · 오른쪽 › = 아래 칩 줄 표시 ══ */
#wrap .gs-tiles.gs-v19-sc { display: flex; grid-template-columns: none; gap: 6px; overflow-x: auto; overflow-y: hidden; padding: 18px var(--gs-gutter) 6px; scrollbar-width: none; scroll-snap-type: x proximity; align-items: flex-start; }
#wrap .gs-tiles.gs-v19-sc::-webkit-scrollbar { display: none; }
#wrap .gs-tiles.gs-v19-sc > .gs-tile { flex: 0 0 calc((100% + var(--gs-gutter) - 30px) / 5.5); min-width: 0; gap: 6px; scroll-snap-align: start; white-space: normal; word-break: keep-all; overflow-wrap: anywhere; text-align: center; font-size: 12px; line-height: 1.3; letter-spacing: -0.04em; }
#wrap .gs-tiles.gs-v19-sc .gs-tile-img { width: min(54px, 100%); max-width: 54px; height: auto; aspect-ratio: 1; border-radius: 50%; }
#wrap .gs-tiles.gs-v19-sc .gs-tile-badge { top: -8px; left: 50%; right: auto; transform: translateX(-50%); z-index: 1; }

/* ══ v18y 칩 줄 «옆에 더 있어요» — 줄 안 맨 앞·맨 뒤 폭 0 sticky 칸(흐림 + 동그란 ‹ ›) · 넘칠 때만 · 왼쪽은 넘긴 뒤에만 · 끝이면 › 숨김 ══ */
.gs-v18y-sc { scroll-padding-left: 44px; scroll-padding-right: 44px; }
.gs-v18y-nav { position: sticky; z-index: 3; flex: 0 0 0px; width: 0; min-width: 0; align-self: stretch; pointer-events: none; }
.gs-v18y-nav.l { left: 0; }
.gs-v18y-nav.r { right: 0; }
.gs-v18y-nav::before { content: ''; position: absolute; top: calc(-1 * var(--v18y-pt, 0px)); bottom: calc(-1 * var(--v18y-pb, 0px)); width: 44px; opacity: 0; transition: opacity .2s; pointer-events: none; }
.gs-v18y-nav.r::before { right: calc(-1 * var(--v18y-pr, 0px)); background: linear-gradient(to right, rgba(255, 255, 255, 0), var(--v18y-bg, #fff) 72%); }
.gs-v18y-nav.l::before { left: calc(-1 * var(--v18y-pl, 0px)); background: linear-gradient(to left, rgba(255, 255, 255, 0), var(--v18y-bg, #fff) 72%); }
.gs-v18y-nav i { position: absolute; top: 50%; width: 28px; height: 28px; margin-top: -14px; border-radius: 50%; background: #fff; box-shadow: 0 2px 6px rgba(36, 25, 15, .16), inset 0 0 0 1px var(--gs-line, #ECE5DB);
  opacity: 0; transform: scale(.8); transition: opacity .2s, transform .2s; pointer-events: none; cursor: pointer; }
.gs-v18y-nav.r i { right: calc(4px - var(--v18y-pr, 0px)); }
.gs-v18y-nav.l i { left: calc(4px - var(--v18y-pl, 0px)); }
.gs-v18y-nav i::before { content: ''; position: absolute; top: 0; bottom: 0; left: -8px; right: -8px; }
.gs-v18y-nav i::after { content: ''; position: absolute; left: 50%; top: 50%; width: 7px; height: 7px; border: solid var(--gs-text, #24190F); border-width: 2px 2px 0 0; }
.gs-v18y-nav.r i::after { transform: translate(-70%, -50%) rotate(45deg); }
.gs-v18y-nav.l i::after { transform: translate(-30%, -50%) rotate(-135deg); }
.gs-v18y-mr > .gs-v18y-nav.r::before, .gs-v18y-ml > .gs-v18y-nav.l::before { opacity: 1; }
.gs-v18y-mr > .gs-v18y-nav.r i, .gs-v18y-ml > .gs-v18y-nav.l i { opacity: 1; transform: none; pointer-events: auto; }
@media (prefers-reduced-motion: reduce) { .gs-v18y-nav::before, .gs-v18y-nav i { transition: none; } }

/* ══ v19 B13 베스트 보기 탭 — «골라담기» 칸 뺌 · 남은 칸이 한 줄에 잘림 없이(등분 · 길면 칸 안 두 줄 · 12px) ══ */
#wrap .gs-views.gs-v19-views { display: grid; grid-template-columns: repeat(var(--gs-vn, 4), minmax(0, 1fr)); gap: 4px; overflow: visible; }
#wrap .gs-views.gs-v19-views button, #wrap .gs-views.gs-v19-views a { flex: none; height: auto; min-height: 44px; padding: 5px 2px; border-radius: 12px; font-size: 12px; line-height: 1.25; letter-spacing: -0.03em; white-space: normal; word-break: keep-all; text-align: center; justify-content: center; }

/* ══ v19 A3 옆 메뉴 큰 분류 — 글자 목록 2열 + 작은 아이콘 + › (분류 이름 속 «N종»은 서버 이름 그대로 · 옆 메뉴는 서버 목록을 안 받아 수를 따로 세지 않는다) ══ */
#wrap nav .gs-gicons.gs-v19-glist { display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px; }
#wrap nav .gs-gicons.gs-v19-glist a { flex-direction: row; align-items: center; justify-content: flex-start; gap: 8px; min-height: 48px; padding: 8px 2px; border-bottom: 1px solid var(--gs-line, #ECE5DB); text-align: left; }
#wrap nav .gs-gicons.gs-v19-glist .ic { flex: 0 0 28px; width: 28px; height: 28px; border-radius: 50%; background: var(--gs-surface, #F5F1EA); }
#wrap nav .gs-gicons.gs-v19-glist .ic img, #wrap nav .gs-gicons.gs-v19-glist .ic .gs-li.gi svg { width: 18px; height: 18px; }
#wrap nav .gs-gicons.gs-v19-glist .ic i { font-size: 13px; }
#wrap nav .gs-gicons.gs-v19-glist b { flex: 1 1 auto; min-width: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; font-size: 15px; font-weight: 600; line-height: 1.3; letter-spacing: -0.02em; overflow: hidden; word-break: keep-all; }   /* 긴 분류 이름은 두 줄까지(… 로 자르지 않음 · 어르신 손님 가독성) */
#wrap nav .gs-gicons.gs-v19-glist .gs-v19-ar { flex: 0 0 auto; font-style: normal; font-size: 16px; color: var(--gs-z-desc, #857767); }

/* ══ v19 A4 옆 메뉴 세부 분류 — 숫자를 크게 쓴 기준 칸 3열(큰 글 «30g↑» + 작은 글 «단백질») · «자주 찾는 진열대» 줄은 뺌(시안 v19 · 대표 10/20 추천안 4개 승인) ══ */
#wrap nav .gs-cat-facets .gs-cat-chips.gs-v19-ftiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
#wrap nav .gs-cat-facets .gs-cat-chips.gs-v19-ftiles a { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 1px; height: auto; min-height: 64px; margin: 0; padding: 10px; border: 0; border-radius: 12px;
  background: #fff; box-shadow: inset 0 0 0 1px var(--gs-line, #ECE5DB); color: var(--gs-text, #24190F); text-align: left; white-space: normal; }
#wrap nav .gs-cat-chips.gs-v19-ftiles a b { font-size: 18px; font-weight: 800; line-height: 1.2; letter-spacing: -0.03em; white-space: nowrap; color: var(--gs-accent-ink, #00785F); }
#wrap nav .gs-cat-chips.gs-v19-ftiles a span { font-size: 13px; font-weight: 600; line-height: 1.3; color: var(--gs-text, #24190F); }
@media (max-width: 359px) { #wrap nav .gs-cat-chips.gs-v19-ftiles a b { font-size: 16px; } }
#wrap nav .gs-cat-sec.gs-v19-shelves { display: none; }

/* ══ v19 B9 검색 층 바깥 덮개 — PC 500px 틀 양옆 회색 자리까지 · 누르면 닫힘(js/gs_v18i.js) ══ */
.gs-sl-bd { position: fixed; inset: 0; z-index: 10049; background: rgba(36, 25, 15, .32); }   /* 층(.gs-sl z 10050) 바로 아래 */
.gs-sl-bd[hidden] { display: none; }

/* ══ v19 B10 배송 안내 창 — 머리 «월–금 14시 전 주문하면 오늘 출고 · 상품별 안내 ›» 누르면 아래에서 올라오는 창(택배사 → 마감 시각 → 상품 · 대표 10/20 목록 글자 그대로) ══ */
#header_wrap .gs-shipband.gs-v19-sb { cursor: pointer; }
#header_wrap .gs-shipband .gs-v19-sbl { margin-left: auto; padding-left: 8px; font-weight: 700; white-space: nowrap; color: var(--gs-accent-ink, #00785F); }
html.gs-v19-sh-open, html.gs-v19-sh-open body { overflow: hidden; }
.gs-v19-sh { position: fixed; inset: 0; z-index: 1300; display: flex; align-items: flex-end; justify-content: center; background: rgba(20, 12, 6, .45); }
.gs-v19-sh[hidden] { display: none; }
.gs-v19-sh-in { width: 100%; max-width: 500px; max-height: 86vh; display: flex; flex-direction: column; background: var(--gs-bg, #FFFCF7); border-radius: 24px 24px 0 0; animation: gsV19up .2s ease-out; }
@keyframes gsV19up { from { transform: translateY(24px); opacity: .6; } }
@media (prefers-reduced-motion: reduce) { .gs-v19-sh-in { animation: none; } }
.gs-v19-sh-hd { flex: none; display: flex; align-items: center; gap: 8px; padding: 16px var(--gs-gutter, 20px) 8px; }
.gs-v19-sh-hd h3 { flex: 1; margin: 0; font-size: 18px; font-weight: 800; letter-spacing: -0.03em; color: var(--gs-text, #24190F); }
.gs-v19-sh-x { flex: none; width: 44px; height: 44px; margin-right: -8px; border: 0; border-radius: 50%; background: none; font-size: 18px; color: var(--gs-sub, #5F5246); }
.gs-v19-sh-body { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 0 var(--gs-gutter, 20px) calc(20px + env(safe-area-inset-bottom, 0px)); }
.gs-v19-sh-body .gs-v19-rules { margin: 0; padding: 0 0 0 16px; font-size: 14px; line-height: 1.6; color: var(--gs-sub, #5F5246); }
.gs-v19-shipx { margin: 16px 0 0; }
.gs-v19-shipx h4 { margin: 0 0 4px; font-size: 15px; font-weight: 800; color: var(--gs-text, #24190F); }
.gs-v19-shipx .gs-v19-car { margin: 10px 0 0; padding: 10px 12px; border-radius: 12px; background: #fff; box-shadow: inset 0 0 0 1px var(--gs-line, #ECE5DB); }
.gs-v19-shipx .gs-v19-car h5 { margin: 0 0 6px; font-size: 15px; font-weight: 800; color: var(--gs-text, #24190F); }
.gs-v19-shipx .gs-v19-cut { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 2px 8px; padding: 4px 0; }
.gs-v19-shipx .gs-v19-cut + .gs-v19-cut { border-top: 1px dashed var(--gs-line, #ECE5DB); }
.gs-v19-shipx .gs-v19-cut > b { font-size: 13px; font-weight: 700; line-height: 22px; color: var(--gs-accent-ink, #00785F); white-space: nowrap; }
.gs-v19-shipx .gs-v19-cut ul { margin: 0; padding: 0; list-style: none; }
.gs-v19-shipx .gs-v19-cut li { font-size: 13px; line-height: 22px; }
.gs-v19-shipx .gs-v19-cut li a, .gs-v19-shipx .gs-v19-cut li span { display: block; color: var(--gs-text, #24190F); text-decoration: none; }
.gs-v19-shipx .gs-v19-cut li a::after { content: ' ›'; color: var(--gs-z-desc, #857767); }

/* ══ v19 B1 수량 숫자 입력 칸 — −/+ 가운데(옛 숫자 b 는 숨김 · 값은 같이 바뀜) · 글자 16px(누를 때 화면 확대 안 되게) ══ */
#wrap .gs-qty:has(> .gs-v19-qin) > b { display: none; }
#wrap .gs-v19-qin { flex: 0 0 auto; width: 34px; min-width: 0; height: 100%; padding: 0; margin: 0; border: 0 !important; border-radius: 4px; background: transparent; text-align: center; box-shadow: none;
  font-family: inherit; font-size: 16px !important; font-weight: 700; line-height: 1; color: var(--gs-text, #24190F); font-variant-numeric: tabular-nums; -webkit-appearance: none; appearance: none; }
#wrap .gs-v19-qin:focus { outline: 2px solid var(--gs-accent-ink, #00785F); outline-offset: -2px; background: #fff; }
#wrap .gs-mcard .gs-qty .gs-v19-qin { width: 30px; }
/* 상세 위 가격 «~» → «부터»(골라담기 최저가 · js/gs_v16_detail.js .gs-tilde.gs-from) */
#wrap .goods_view.gs-dt .detail_info .price_box .gs-tilde.gs-from { margin-left: 3px; font-size: 13px; font-weight: 500; color: var(--gs-z-desc, #857767); letter-spacing: 0; }
.gs-zrate { justify-content: flex-start; }
.gs-zrate > span, .gs-zrate > b { flex: 0 1 auto !important; }   /* 옛 «span{flex:1}» 규칙이 큰 카드 안 후기 수를 오른쪽 끝으로 밀던 것 */

/* ══ v18y ①②③ · v19 B3·B4 골라담기 화면(js/gs_v16_list.js pickRows · html.gs-v19-pickrows = 칸 자료를 받았을 때만) ══ */
/* 묶음 줄 — 작은 사진 카드 · 한 화면 2.5장(세 번째가 반 잘림) · 자리 고정 */
#wrap .gs-chiprow.gs-v18y-brow { gap: 8px; padding: 14px var(--gs-gutter) 8px; align-items: stretch; }
#wrap .gs-chiprow.gs-v18y-brow .gs-v18y-bc { flex: 0 0 calc((100% + var(--gs-gutter) - 16px) / 2.5); min-width: 0; padding: 0 0 8px; border-radius: 12px; background: #fff; box-shadow: inset 0 0 0 1px var(--gs-line, #ECE5DB);
  display: flex; flex-direction: column; align-items: stretch; color: var(--gs-text, #24190F); text-align: left; overflow: hidden; text-decoration: none; }
#wrap .gs-v18y-bc .im { display: block; aspect-ratio: 2 / 1; overflow: hidden; background: var(--gs-surface, #F5F1EA); }
#wrap .gs-v18y-bc .im img { display: block; width: 100%; height: 100%; object-fit: cover; }
#wrap .gs-v18y-bc b { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin: 6px 8px 0; font-size: 13px; font-weight: 700; line-height: 18px; letter-spacing: -0.03em; word-break: keep-all; }
#wrap .gs-v18y-bc small { display: block; margin: auto 8px 0; padding-top: 2px; font-size: 12px; line-height: 16px; color: var(--gs-z-desc, #857767); }
#wrap .gs-v18y-bc.on { box-shadow: inset 0 0 0 2px var(--gs-accent-ink, #00785F); }
#wrap .gs-v18y-bc.on b { color: var(--gs-accent-ink, #00785F); font-weight: 800; }
#wrap .gs-v18y-bc.so { opacity: .6; }
/* 칩 두 줄(종류·기준) — 늘 같은 칸·같은 순서 · 아래로 내려도 위에 붙음(고정 머리 아래 · 담기 머리 한 줄 막대가 뜨면 그 아래) */
html.gs-v19-pickrows #gsPickPage .gs-pk .gs-chips { display: none !important; }   /* 옛 묶음 칩(이 화면만 · 상세 격자·구매 창은 그대로) */
#wrap .gs-v19-pkrows { position: sticky; top: var(--gs-v19-stick, 0px); z-index: 17; margin: 0; padding: 4px 0 0; border-bottom: 1px solid var(--gs-line, #ECE5DB); background: var(--gs-bg, #FFFCF7); }
#wrap .gs-v19-frow { display: flex; align-items: center; gap: 6px; overflow-x: auto; padding: 2px var(--gs-gutter) 8px; scrollbar-width: none; }
#wrap .gs-v19-frow::-webkit-scrollbar { display: none; }
#wrap .gs-v19-lbl { flex: 0 0 auto; font-size: 12px; font-weight: 700; color: var(--gs-z-desc, #857767); }
#wrap .gs-v19-frow .gs-chip { height: 34px; padding: 0 12px; }
#wrap .gs-v19-frow .gs-chip .gs-v19-c { margin-left: 2px; font-size: 12px; font-variant-numeric: tabular-nums; }
#wrap .gs-v19-frow .gs-chip.gs-v19-zero:not([aria-pressed="true"]) { opacity: .45; }
#wrap .gs-v19-frow .gs-chip.gs-v19-out:not([aria-pressed="true"]) { border-style: dashed; color: var(--gs-z-desc, #857767); }
/* 목록 위 한 줄 — «덮밥 · 단백질 30g 이상 — 메뉴 7가지» · 기준 글 · 안 보이는 곳에 고른 팩 */
#wrap .gs-v19-pksum { padding: 10px var(--gs-gutter) 4px; }
#wrap .gs-v19-st { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 6px; margin: 0; font-size: 14px; line-height: 20px; color: var(--gs-sub, #5F5246); }
#wrap .gs-v19-st b { font-size: 15px; font-weight: 800; color: var(--gs-text, #24190F); letter-spacing: -0.02em; }
#wrap .gs-v19-st em { font-style: normal; font-weight: 800; color: var(--gs-accent-ink, #00785F); }
#wrap .gs-v19-off { margin-left: auto; min-height: 32px; padding: 0 12px; border: 1px solid var(--gs-line, #ECE5DB); border-radius: 999px; background: #fff; font-size: 13px; font-weight: 600; color: var(--gs-sub, #5F5246); }
#wrap .gs-v19-why, #wrap .gs-v19-else { display: block; margin-top: 4px; font-size: 12px; line-height: 1.5; color: var(--gs-z-desc, #857767); word-break: keep-all; }
#wrap .gs-v19-else { color: var(--gs-accent-ink, #00785F); font-weight: 700; }
#wrap .gs-v19-empty { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 8px var(--gs-gutter) 40px; font-size: 14px; color: var(--gs-sub, #5F5246); }
#wrap .gs-v19-empty[hidden] { display: none; }
#wrap .gs-mcard.gs-v19-off, #wrap .gs-opt.gs-v19-off { display: none !important; }
/* 메뉴 카드 자세한 줄(1팩 중량·열량·단백질) */
#wrap .gs-mcard .gs-v19-nu { margin: 2px 0 0; font-size: 12px; line-height: 1.4; color: var(--gs-z-desc, #857767); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; letter-spacing: -0.01em; }

/* v18x ⑨ 꺼진 구매 단추 ✗ — 아무것도 안 골라도 켠 모양(누르면 모자란 것 알림 · js/gs_v16_detail.js) · 누른 단추는 살짝 흔들림 */
#wrap .gs-layer.gs-none .ly_buy_dn a.detail_cart_btn, #wrap .gs-layer.gs-none .ly_buy_dn a.detail_order_btn, #wrap .gs-layer.gs-none .ly_buy_dn a.detail_apply_btn { opacity: 1; }
#wrap .gs-layer .ly_buy_dn a.gs-need { animation: gsV19shake .45s; }
@keyframes gsV19shake { 20%, 60% { transform: translateX(-4px); } 40%, 80% { transform: translateX(4px); } }
@media (prefers-reduced-motion: reduce) { #wrap .gs-layer .ly_buy_dn a.gs-need { animation: none; } }

/* ══ 휴대폰 크기 점검(대표 10/20 «모바일 버전도 사이즈부터 모두 확인») — 누르는 칸 40px 이상 · 보이는 크기·배치는 그대로, 누르는 칸만 넓힘(::after) ══
   점검 = tools/buy_qa/mobile_sizes.mjs(폭 320·360·375·390·412·430 · 휴대폰 흉내) · 칩 34px·탭 글자 폭·수량 −/+ 36px·로고 26px 이 걸렸다 */
#wrap .gs-chip, #wrap .gs-views > button, #wrap .gs-views > a, #wrap .gs-tabs-pill > button, #wrap .gs-who-chips > button, #header_wrap .gs-tabs a, #header_wrap .h_logo a,
#wrap .gs-v19-off, #wrap .gs-sl-chip a, #wrap .gs-sl-tabs button, #gsCartDel, #gsOFold, #gsOrdEdit, #wrap .gs-hd-back, #wrap .gs-more, #wrap .gs-pk-wide, #wrap .gs-pkd-jump { position: relative; }
#wrap .gs-chip::after, #wrap .gs-views > button::after, #wrap .gs-views > a::after, #wrap .gs-tabs-pill > button::after, #wrap .gs-who-chips > button::after, #header_wrap .gs-tabs a::after, #header_wrap .h_logo a::after,
#wrap .gs-v19-off::after, #wrap .gs-sl-chip a::after, #wrap .gs-sl-tabs button::after, #gsCartDel::after, #gsOFold::after, #gsOrdEdit::after, #wrap .gs-hd-back::after, #wrap .gs-more::after, #wrap .gs-pk-wide::after, #wrap .gs-pkd-jump::after {
  content: ''; position: absolute; left: 50%; top: 50%; width: max(100%, 44px); height: max(100%, 44px); transform: translate(-50%, -50%); }
#wrap .gs-mcard .gs-qty button::after, #wrap .gs-layer .gs-opt .gs-qty button::after { width: 40px; height: 44px; }   /* 전 36px(옆 숫자 칸을 안 덮게) → 40px(숫자 칸 가장자리 2px만 겹침) */
#header_wrap .sub_top h2 a.js_page_reload { position: relative; }
#header_wrap .sub_top h2 a.js_page_reload::after { content: ''; position: absolute; left: 50%; top: 50%; width: max(100%, 44px); height: 44px; transform: translate(-50%, -50%); }
#wrap .gs-ck { position: relative; }
#wrap .gs-ck::before { content: ''; position: absolute; left: 50%; top: 50%; width: 44px; height: 44px; transform: translate(-50%, -50%); }   /* 장바구니 체크 칸 22px → 누르는 칸 44(::after 는 체크 표시가 쓴다) */
#popupOption .layer_option .close_btn .ly_btn_close { position: relative; }
#popupOption .layer_option .close_btn .ly_btn_close::after { content: ''; position: absolute; left: 50%; top: 50%; width: 44px; height: 44px; transform: translate(-50%, -50%); }
/* (이어서 · 2차 점검분) 다시 섞기·칩 줄 단추(상세 격자·구매 창·빠른 담기 창 묶음 칩)·장바구니 −/+·✕·쿠폰·«메뉴 더 고르기»·주문서 배송지 탭·메모 칩·옆 메뉴 하위 분류·후기 «1:1 문의» */
#wrap .gs-reshuffle, #wrap .gs-chips > button, #wrap .gs-cqty > button, #wrap .gs-rm, #wrap .gs-cpn, #wrap .gs-cl-more, #wrap .tab_btn > a, #wrap .gs-memo-chips > button, #wrap nav .gs-cat-tree .subs > a, #wrap .gs-strip { position: relative; }
#wrap .gs-reshuffle::after, #wrap .gs-chips > button::after, #wrap .gs-cqty > button::after, #wrap .gs-rm::after, #wrap .gs-cpn::after, #wrap .gs-cl-more::after, #wrap .tab_btn > a::after, #wrap .gs-memo-chips > button::after, #wrap nav .gs-cat-tree .subs > a::after {
  content: ''; position: absolute; left: 50%; top: 50%; width: max(100%, 44px); height: max(100%, 44px); transform: translate(-50%, -50%); }
#wrap .gs-strip::after { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 40px; }   /* 맨 위 가입 띠(34px) — 아래로 6px 만 넓힘(머리 줄 단추와 안 겹침) */
/* 배송 안내 창 상품 줄 — 글자 링크 22px → 한 줄 40px(창은 스스로 굴러감) */
.gs-v19-shipx .gs-v19-cut > b { line-height: 40px; }
.gs-v19-shipx .gs-v19-cut li a, .gs-v19-shipx .gs-v19-cut li span { display: flex; align-items: center; min-height: 40px; line-height: 1.35; }
#wrap .gs-ofbox .tab_btn a { height: 44px; line-height: 44px !important; }   /* 주문서 배송지 탭 38 → 44(이 탭은 ::after 를 쓰지 않는 규칙이 있어 높이로) */
@supports (max-height: 1dvh) { .gs-v19-sh-in { max-height: 86dvh; } }   /* 휴대폰 주소창이 접혔다 펴져도 창 아래 단추가 화면 밖으로 안 나가게 */
/* (3차 점검분) 구매 창 «네이버페이·페이코로 구매하기 ↓» 28px · 찜 «선택 삭제» 30px·«옵션변경» 28px · 주문서 «전액 사용»(적립금) 글자 22px */
#wrap .gs-pay-jump, html.gs-my #wrap .select_prd_del_btn, html.gs-my #wrap .cart_option_modify { position: relative; }
#wrap .gs-pay-jump::after, html.gs-my #wrap .select_prd_del_btn::after, html.gs-my #wrap .cart_option_modify::after { content: ''; position: absolute; left: 50%; top: 50%; width: max(100%, 44px); height: max(100%, 44px); transform: translate(-50%, -50%); }
#wrap .gs-ofbox .inp_chk label[for="useMileageAll"] { padding: 10px 0 !important; margin: -10px 0 !important; }   /* 누르는 칸만 위아래 10px(보이는 줄 높이 그대로) */
/* 후기 운영 기준 상자 글 속 «1:1 문의» 링크(15px 줄) — 누르는 칸만 위아래로(줄 높이·글 흐름 그대로) */
#wrap .gs-pol dd a { position: relative; padding: 0 2px; }
#wrap .gs-pol dd a::after { content: ''; position: absolute; left: 50%; top: 50%; width: max(100%, 44px); height: 44px; transform: translate(-50%, -50%); }
/* 찜 화면 체크 칸(22px · 모양 없는 입력칸이라 ::before 가 그려진다) — 누르는 칸 44 */
html.gs-my-wish_list #wrap .wish_list .inp_chk input[type="checkbox"] { position: relative; }
html.gs-my-wish_list #wrap .wish_list .inp_chk input[type="checkbox"]::before { content: ''; position: absolute; left: 50%; top: 50%; width: 44px; height: 44px; transform: translate(-50%, -50%); }
