﻿/* ============================================================
   goods_view_rd.css (shop/PC)  ·  v2.22.0 (2026-08-05) — 생산자 소개 매거진 격상(히어로 겹침 헤드라인·인용구 세리프·갤러리 그리드·무사진 팔레트 헤더)
   v2.17.0: 배송일별 한정수량 잔여(.gvdt_daylimit) 추가
   v2.14.0: 정식전환 백필 — 생활재 사양정보(특징/이용/주의, .info-table 재사용) + 배송·환불 안내(.gvdt_policy 신규, 레거시 detail4 동일 내용) 섹션 스타일 추가. 마크업만 백필(데이터 무접촉).
   v2.13.1: 후기쓰기 B 모달 position:fixed — dt=1 단일스크롤에서 후기쓰기 클릭 시 카드가 뷰포트 밖(문서 상단)으로 벗어나 오버레이만 보이던 문제 해소(중앙 모달화). 마크업/JS/저장로직 무변경.
   v2.12.0: 스티키 top 근본 수정 = 50px/var 측정 폐기 → top:0(화면 최상단 고정). 근본원인: 이 상세페이지는 스크롤 시 GNB 헤더(.head_menu_wrap)가 fixed로 남지 않는다(부모 goods_view.jsp scroll 핸들러가 .header_wrap에 .cancle 부여 → .header_wrap.move.cancle .head_menu_wrap{position:relative} → 헤더가 함께 스크롤 아웃). 헤더 높이(50)를 top으로 넣으면 그 50px이 항상 빈 갭이 됨(기존 88→50→JS동적 전부 "헤더가 아래에 남는다"는 틀린 가정). 기존 .product_detail_tab.move{position:fixed;top:0}처럼 섹션내비·구매패널을 top:0으로 화면 맨 위에 밀착. goodsViewDtPc.jsp의 헤더높이 측정·CSS변수 주입 로직 제거(오류원), gvdtSecOffset=탭바 높이만.
   v2.11.0: (폐기)스티키 오프셋 JS 동적화 — top:var(--gvdt-sticky-top,50px)+gvdtSyncStickyTop 헤더높이 측정. GNB가 이 페이지에서 fixed로 안 남는다는 사실을 놓친 오수정 → v2.12.0에서 top:0으로 대체.
   v2.10.0: 스티키 오프셋 정합 — 섹션내비(.gvdt_secnav)·구매패널(.panel) top:88px→50px. 스크롤 시 고정되는 헤더(.header_wrap.move .head_menu_wrap = position:fixed·top:0)의 실제 높이가 50px(메뉴링크 49px + border-bottom 1px, .inner 무패딩·로고는 head_visual라 미고정)인데 top:88이라 탭 위 38px 빈 갭이 생겨 '붕 뜸' → 실측 50px에 맞춰 헤더 바로 아래 밀착. gvdtSecJump 오프셋(88→50)도 동반.
   v2.9.0: 문의(Q&A) 정렬 방식 table→flex 전환(헤더/행 동일 flex-basis 4열, dl/dt/dd 리셋, 제네릭 .col 충돌 무해) — 깨짐 확실 해소.
   v2.8.0: 섹션 헤더 상단 여백 52px→28px(정보고시 등 제목 위 과한 공백 제거·스티키 점프 정합), 헤더 하단 20→16px 밀착.
   v2.7.0: 문의(Q&A) 로드행 정렬 — .detail_content3 스코프 기존 CSS 미적용분을 .gvdt로 재현(4열 table-fixed·아코디언 q_txt 기본숨김) + dt=1 문의 자동로드.
   v2.6.0: 섹션내비 상단 여백 축소(구매영역~탭 갭 제거) / dt=1 후기 고객종류(gclass) 배지 제거·연차 배찌만 유지.
   v2.5.0: 조합원 후기 카드에 연차 배찌 V3(「N년｜생협운동」, 메인/모바일 동일 hex) — coopYears 기반, .gvdt 스코프.
   v2.4.0: 상단 스티키=섹션 내비 3탭(상세내역/후기/상품 정보고시)+scroll spy / 후기 서브탭(제철·지난·사진)은 후기 섹션 내부 정적으로 강등.
   v2.0.1: 목업 세리프 제거 → 사이트 표준 산세리프(Pretendard) 통일(시인성 우선).
   v2.1.0: '실시간 상태' 3종 시연 예시 제거 / 연관카드 담기 딥그린 솔리드(가시성) / 폼컨트롤 Pretendard 통일.
   v2.3.0: 후기 탭 목업 .rv-tabs 알약(제철/지난/사진)+상단 스티키(top:88px,z-index:20) / 배송유형 메타칩 / 주간한정 표기 정정.
   상품 상세 리뉴얼 미리보기 — ?dt=1 게이트 전용.
   detail_redesign.html 목업 CSS를 .gvdt 스코프로 이식(동일 여백·색·타이포).
   dt 없는 기본 화면 무영향(게이트 로드 + .gvdt 스코프). 데이터/로직 무접촉.
   토큰: green#3d6041 green-deep#2f4b33 green-soft#eaf1e8 gold#f8a31e ink#1b241c
         sub#5c685a mute#8a9585 line#e4e0d2 line-soft#efece2 wash#f6f5ef
         ok#2f7d4f warn#8a5b10 stop#b24a3a star#f5a623 chip-bg#f3f2ec chip-bd#e3e0d4
   ============================================================ */

/* ===== 베이스 ===== */
.gvdt.product_detail_wrap{ background:#fff; padding:0 0 90px; }
.gvdt .gvdt_wrap{ max-width:1180px; margin:0 auto; padding:20px 18px 40px; color:#1b241c;
	font-family:"Pretendard","Apple SD Gothic Neo","Malgun Gothic",sans-serif;
	line-height:1.6; font-size:16px; -webkit-font-smoothing:antialiased; }
/* 시인성 우선: 목업 세리프 제거 → 사이트 표준 산세리프(Pretendard)로 통일 */
.gvdt .serif{ font-family:"Pretendard","Apple SD Gothic Neo","Malgun Gothic",sans-serif; }
/* default.css의 input/button/select { font-family:'Noto Sans KR' } 를 표준 Pretendard로 통일 */
.gvdt button,.gvdt input,.gvdt select,.gvdt textarea{ font-family:"Pretendard","Apple SD Gothic Neo","Malgun Gothic",sans-serif; }
.gvdt img{ max-width:100%; }

/* ===== breadcrumb ===== */
.gvdt .bc{ font-size:13px; color:#8a9585; margin:2px 0 20px; display:flex; gap:7px; flex-wrap:wrap; align-items:center; }
.gvdt .bc a{ color:#8a9585; text-decoration:none; }
.gvdt .bc a:hover{ color:#3d6041; }
.gvdt .bc .sep{ color:#d8d3c2; }

/* ===== 섹션 3단 헤더 ===== */
/* 섹션 헤더 상단 여백 — 52px는 과해 제목 위가 휑함 → 28px로 축소(섹션 구분 유지 + 과한 공백 제거).
   하단 16px로 제목-내용(정보고시 표 등) 밀착. 스티키 점프(88+탭높이+6)와도 정합(마진 축소로 갭 감소). */
.gvdt .shead{ margin:28px 0 16px; }
.gvdt .shead .eyebrow{ font-size:12px; font-weight:800; letter-spacing:.16em; color:#3d6041; text-transform:uppercase; }
.gvdt .shead h2{ margin:7px 0 0; font-size:26px; font-weight:800; letter-spacing:-.01em; color:#1b241c;
	font-family:"Pretendard","Apple SD Gothic Neo","Malgun Gothic",sans-serif; }
.gvdt .shead .rule{ height:3px; margin-top:12px; background:linear-gradient(90deg,#3d6041 0 46px,#e4e0d2 46px); }
.gvdt .shead .desc{ margin:10px 0 0; font-size:15px; color:#5c685a; letter-spacing:-.01em; }

/* ===== 상단 구매영역 buy (PC 2단 · 우측 스티키) ===== */
.gvdt .buy{ display:grid; grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr); gap:40px; align-items:start; }
/* 갤러리 */
.gvdt .gallery .main-img{ background:#fff; border:1px solid #e4e0d2; border-radius:16px; overflow:hidden; position:relative; }
.gvdt .gallery .main-img img{ width:100%; aspect-ratio:1/1; object-fit:cover; display:block; }
.gvdt .gallery .badges{ position:absolute; top:14px; left:14px; display:flex; gap:6px; }
.gvdt .gallery .badges .b{ font-size:12px; font-weight:800; color:#fff; padding:4px 9px; border-radius:8px; letter-spacing:.02em; line-height:1.5; }
.gvdt .badges .b-eco{ background:#3d6041; }
.gvdt .badges .b-limit{ background:#2f4b33; }
.gvdt .badges .b-sale{ background:#f8a31e; }
.gvdt .thumbs{ display:flex; gap:10px; margin-top:12px; }
.gvdt .thumbs button{ padding:0; border:2px solid #e4e0d2; background:#fff; border-radius:11px; overflow:hidden; cursor:pointer; width:74px; height:74px; }
.gvdt .thumbs button.on{ border-color:#3d6041; }
.gvdt .thumbs img{ width:100%; height:100%; object-fit:cover; display:block; }

/* 우측 패널 — top:0. 이 상세페이지는 스크롤 시 GNB 헤더가 fixed로 남지 않으므로(부모 .header_wrap.cancle → head_menu_wrap relative)
   화면 최상단(top:0)에 고정. 헤더 높이(50)를 넣으면 그만큼 항상 빈 갭이 생겼던 것이 이전 오류. */
.gvdt .panel{ position:sticky; top:0; }
.gvdt .panel .p-title{ font-size:26px; font-weight:800; letter-spacing:-.015em; line-height:1.3; margin:0 0 14px; position:relative; padding-right:34px;
	font-family:"Pretendard","Apple SD Gothic Neo","Malgun Gothic",sans-serif; }
.gvdt .panel .p-title .share{ position:absolute; right:0; top:2px; color:#5c685a; cursor:pointer; display:inline-flex; }
.gvdt .panel .p-title .share:hover{ color:#3d6041; }
/* 공유 박스(기존 마크업 재사용) */
.gvdt .panel .share_box{ display:none; position:absolute; right:0; top:38px; z-index:30; width:230px; background:#fff; border:1px solid #e4e0d2; border-radius:14px; padding:16px; box-shadow:0 10px 28px rgba(0,0,0,.12); }
.gvdt .panel .share_box .close{ position:absolute; right:10px; top:10px; }
.gvdt .panel .share_box .close img{ width:16px; }
.gvdt .panel .share_box .tt{ font-size:14px; font-weight:800; margin:0 0 12px; }
.gvdt .panel .share_box .link_list{ display:flex; gap:14px; list-style:none; margin:0; padding:0; }
.gvdt .panel .share_box .link_list img{ width:38px; height:38px; }
.gvdt .panel .share_box .link_list .target{ font-size:11px; color:#5c685a; text-align:center; margin:5px 0 0; }

/* 칩 */
.gvdt .chips{ display:flex; flex-wrap:wrap; gap:7px; margin-bottom:16px; }
.gvdt .chip{ font-size:13px; font-weight:700; padding:5px 11px; border-radius:999px; border:1px solid #e3e0d4; color:#5f6b56; background:#f3f2ec; display:inline-flex; align-items:center; gap:5px; letter-spacing:-.01em; }
.gvdt .chip.eco{ color:#2f4b33; border-color:#cfe0cd; background:#eaf1e8; }

/* 가격 */
.gvdt .price-box{ border-top:1px solid #e4e0d2; border-bottom:1px solid #e4e0d2; padding:16px 0; margin-bottom:16px; }
.gvdt .price-row{ display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; }
.gvdt .price-row .label{ font-size:14px; color:#5c685a; font-weight:700; }
.gvdt .price-row .was{ font-size:15px; color:#a7ad9f; text-decoration:line-through; }
.gvdt .price-row .now{ font-size:32px; font-weight:800; letter-spacing:-.02em; color:#1b241c; }
.gvdt .price-row .now .u{ font-size:19px; font-weight:700; margin-left:1px; }
.gvdt .price-nonmem{ font-size:13px; color:#8b978c; margin-top:5px; }
.gvdt .price-nonmem b{ font-weight:700; color:#8b978c; }
.gvdt .price-sub{ font-size:12.5px; color:#8a9585; margin-top:6px; }

/* 실시간 상태 */
.gvdt .stock-live{ display:flex; align-items:center; gap:9px; font-size:14px; font-weight:800; color:#2f7d4f; margin-bottom:16px; letter-spacing:-.01em; }
.gvdt .stock-live.is-stop{ color:#b24a3a; }
.gvdt .stock-live .rt-ico{ display:inline-flex; }
.gvdt .stock-live .dot{ width:9px; height:9px; border-radius:50%; background:#2f7d4f; box-shadow:0 0 0 4px rgba(47,125,79,.15); animation:gvdtPulse 1.6s infinite; flex:0 0 auto; }
.gvdt .stock-live .n{ color:#2f4b33; }
@keyframes gvdtPulse{ 0%{box-shadow:0 0 0 3px rgba(47,125,79,.22);} 70%{box-shadow:0 0 0 8px rgba(47,125,79,0);} 100%{box-shadow:0 0 0 0 rgba(47,125,79,0);} }

/* 배송유형 메타 칩(자사배송/택배 배송) — 실데이터(deliveryYn·sanjiYn·returnTypeGb) 있는 것만 */
.gvdt .gvdt_meta{ display:flex; flex-wrap:wrap; gap:7px; margin:-4px 0 16px; }
.gvdt .mchip{ display:inline-flex; align-items:center; gap:5px; font-size:12.5px; font-weight:700; padding:5px 11px; border-radius:999px; border:1px solid #e3e0d4; background:#f3f2ec; color:#5f6b56; letter-spacing:-.01em; }
.gvdt .mchip svg{ flex:0 0 auto; }
.gvdt .mchip-home{ color:#2f4b33; border-color:#cfe0cd; background:#eaf1e8; }
.gvdt .mchip-parcel{ color:#8a5b10; border-color:#e6ddcf; background:#f7f1ea; }

/* 2026-08-04 배송일별 한정수량 잔여(일자별 한정 상품만) — 표시 전용. green#3d6041 딥그린 톤, 마감=회색 비활성 */
.gvdt .gvdt_daylimit{ border:1px solid #d9e3d5; border-radius:12px; background:#f5f9f3; padding:11px 13px 12px; margin:-2px 0 16px; }
.gvdt .gvdt_daylimit .gdl_head{ display:flex; align-items:center; gap:6px; margin-bottom:8px; color:#2f4b33; }
.gvdt .gvdt_daylimit .gdl_ic{ flex:0 0 auto; }
.gvdt .gvdt_daylimit .gdl_tt{ font-size:13px; font-weight:800; letter-spacing:-.01em; }
.gvdt .gvdt_daylimit .gdl_days{ margin:-2px 0 9px; font-size:12.5px; font-weight:700; color:#3d6041; letter-spacing:-.01em; }
.gvdt .gvdt_daylimit .gdl_days b{ font-weight:800; color:#2f7d4f; }
.gvdt .gvdt_daylimit .gdl_list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:4px; }
.gvdt .gvdt_daylimit .gdl_row{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:5px 9px; border-radius:8px; background:#fff; border:1px solid #e5ece2; }
.gvdt .gvdt_daylimit .gdl_date{ font-size:13.5px; font-weight:700; color:#1b241c; letter-spacing:-.01em; }
.gvdt .gvdt_daylimit .gdl_qty{ font-size:13px; font-weight:700; color:#3d6041; }
.gvdt .gvdt_daylimit .gdl_qty b{ font-weight:800; color:#2f7d4f; }
.gvdt .gvdt_daylimit .gdl_row.is-soldout{ background:#f2f2ef; border-color:#e6e4dd; }
.gvdt .gvdt_daylimit .gdl_row.is-soldout .gdl_date{ color:#9aa093; }
.gvdt .gvdt_daylimit .gdl_qty.gdl_out{ color:#b24a3a; font-weight:800; }

/* 정보고시 요약 칩 */
.gvdt .infochips{ display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:18px; }
.gvdt .infochips .ic{ border:1px solid #e4e0d2; border-radius:11px; padding:9px 11px; background:#fff; }
.gvdt .infochips .ic .k{ font-size:11.5px; color:#8a9585; font-weight:700; }
.gvdt .infochips .ic .v{ font-size:14px; font-weight:700; color:#1b241c; margin-top:2px; line-height:1.45;
	display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }

/* 수량 */
.gvdt .qty{ display:flex; align-items:center; gap:14px; margin-bottom:14px; flex-wrap:wrap; }
.gvdt .qty .lab{ font-size:14px; font-weight:700; color:#5c685a; }
.gvdt .stepper{ display:inline-flex; border:1px solid #e4e0d2; border-radius:10px; overflow:hidden; }
.gvdt .stepper button{ width:44px; height:44px; border:none; background:#fff; font-size:20px; cursor:pointer; color:#1b241c; }
.gvdt .stepper input{ width:52px; height:44px; border:none; border-left:1px solid #e4e0d2; border-right:1px solid #e4e0d2; text-align:center; font-size:16px; font-weight:700; }
.gvdt .qty .qty-total{ font-size:13px; color:#5c685a; font-weight:700; }
.gvdt .qty .qty-total .roboto{ font-size:16px; color:#1b241c; font-weight:800; }

/* ── 예약(02) 차수·배송일 선택 (dt=1 신형 담기) — 모바일 fineStyle .res_* 이식, PC .gvdt 폭. 딥그린 #3d6041 토큰 통일 ── */
.gvdt .gvdt_res{ margin-bottom:18px; }
.gvdt .gvdt_res .res_sel_hidden{ display:none; }
.gvdt .gvdt_res .res_lbl{ margin:0 0 8px; font-size:13px; font-weight:700; color:#5c685a; letter-spacing:0; line-height:1.3; }
.gvdt .gvdt_res .res_lbl_date{ margin-top:16px; }
.gvdt .gvdt_res .res_chip_box{ display:flex; flex-wrap:wrap; gap:8px; }
.gvdt .gvdt_res .res_chip_box.res_single_hide{ display:none; }
.gvdt .gvdt_res .res_chip_box .res_lbl_chip{ flex:0 0 100%; width:100%; margin:0 0 8px; }
.gvdt .gvdt_res .res_chip{ flex:0 0 auto; min-width:76px; min-height:46px; padding:11px 16px; box-sizing:border-box; display:inline-flex; align-items:center; justify-content:center; border:1px solid rgba(61,96,65,.5); background:#fff; border-radius:10px; font-size:14px; font-weight:600; color:#1b241c; line-height:1.25; cursor:pointer; transition:.15s; }
.gvdt .gvdt_res .res_chip:hover{ border-color:#3d6041; }
.gvdt .gvdt_res .res_chip.sel{ background:#3d6041; border-color:#3d6041; color:#fff; }
.gvdt .gvdt_res .date_select_box{ display:flex; flex-wrap:wrap; gap:8px; }
.gvdt .gvdt_res #id_delivery_date .btn{ flex:0 0 auto; min-width:76px; min-height:52px; padding:8px 14px; box-sizing:border-box; display:inline-flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; border:1px solid #e4e0d2; background:#fff; border-radius:10px; font-size:14px; font-weight:600; color:#1b241c; line-height:1.25; cursor:pointer; transition:.15s; }
.gvdt .gvdt_res #id_delivery_date .btn:hover{ border-color:#3d6041; }
.gvdt .gvdt_res #id_delivery_date .btn.select{ background:#3d6041; border-color:#3d6041; color:#fff; }
.gvdt .gvdt_res .res_sel_summary{ display:none; margin-top:14px; padding:11px 14px; background:#eef3ee; border:1px solid #cfe0cf; border-radius:10px; font-size:14px; font-weight:600; color:#2f4b33; letter-spacing:0; }
.gvdt .gvdt_res .res_sel_summary.on{ display:block; }
.gvdt .gvdt_res .res_sel_summary .rss_txt:before{ content:'\2713\00a0\00a0'; font-weight:700; color:#3d6041; }

/* CTA */
.gvdt .cta{ display:flex; gap:10px; }
.gvdt .cta .btn{ flex:1; height:56px; border:none; border-radius:13px; font-size:17px; font-weight:800; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; gap:7px; transition:.15s; }
.gvdt .cta .btn-cart{ background:#fff; color:#3d6041; border:1.5px solid #3d6041; }
.gvdt .cta .btn-cart:hover{ background:#eaf1e8; color:#3d6041; }
.gvdt .cta .btn-like{ flex:0 0 56px; background:#fff; border:1px solid #e4e0d2; color:#b24a3a; }
.gvdt .cta .btn-like.on{ background:#fbeae6; border-color:#e9c9c1; }
.gvdt .cta .btn.disabled{ background:#e7e3d6; color:#8a9585; cursor:not-allowed; }

/* (v2.1.0) '실시간 상태' 3종 시연 예시 섹션 제거 → 관련 .states/.state/.sbtn 스타일 삭제.
   실제 상태는 .panel .stock-live 배지(실데이터)로만 노출. */

/* ===== 생활재 공지(두레생협에서 알립니다!) — 08-04 복원, .gvdt 스코프 ===== */
.gvdt .gvdt_notice{ margin:0 0 26px; background:#f3f6f1; border:1px solid #d5e2d4; border-left:4px solid #3d6041; border-radius:12px; padding:20px 22px; }
.gvdt .gvdt_notice .gvdt_notice_ttl{ font-size:16px; font-weight:800; color:#2f4b33; letter-spacing:-.01em; }
.gvdt .gvdt_notice .gvdt_notice_sub{ margin:8px 0 0; font-size:15px; font-weight:700; color:#3d6041; letter-spacing:-.01em; }
.gvdt .gvdt_notice .gvdt_notice_txt{ margin:10px 0 0; font-size:14.5px; line-height:1.75; color:#41503f; word-break:break-word; }
.gvdt .gvdt_notice .gvdt_notice_txt img{ max-width:100%; height:auto; }

/* ===== 생활재 이야기 ===== */
.gvdt .gvdt_story img{ width:100%; display:block; }
.gvdt .gvdt_story .gdtl{ font-size:16px; line-height:1.75; color:#2a332b; }
.gvdt .story-empty{ background:#fff; border:1px dashed #e4e0d2; border-radius:16px; padding:48px 24px; text-align:center; }
.gvdt .story-empty .se-mark{ width:42px; height:42px; margin:0 auto 14px; border-radius:12px; background:#f6f5ef; border:1px solid #efece2; position:relative; }
.gvdt .story-empty .se-mark::before{ content:''; position:absolute; left:11px; top:14px; right:11px; height:2px; border-radius:2px; background:#e4e0d2; box-shadow:0 6px 0 #e4e0d2; }
.gvdt .story-empty .se-title{ margin:0; font-size:14px; font-weight:800; color:#5c685a; }
.gvdt .story-empty .se-desc{ margin:8px 0 0; font-size:13px; line-height:1.7; color:#8a9585; }

/* ===== 후기 요약 ===== */
.gvdt .rv-top{ display:grid; grid-template-columns:minmax(200px,.8fr) minmax(0,1.2fr); gap:26px; background:#fff; border:1px solid #e4e0d2; border-radius:16px; padding:22px; align-items:center; }
.gvdt .rv-score{ text-align:center; border-right:1px solid #efece2; }
.gvdt .rv-score .big{ font-size:52px; font-weight:800; line-height:1; color:#1b241c; }
.gvdt .rv-score .stars{ font-size:20px; letter-spacing:2px; margin:8px 0 4px; }
.gvdt .rv-score .stars .st{ color:#e0ddd0; } .gvdt .rv-score .stars .st.on{ color:#f5a623; }
.gvdt .rv-score .cnt{ font-size:13px; color:#5c685a; }
.gvdt .rv-badges{ display:flex; gap:10px; margin-bottom:12px; flex-wrap:wrap; }
.gvdt .rv-badges .rvb{ font-size:12.5px; font-weight:700; padding:5px 12px; border-radius:999px; border:1px solid #e4e0d2; color:#5c685a; }
.gvdt .rv-badges .rvb b{ font-weight:800; }
.gvdt .rv-badges .rvb-good{ background:#eaf1e8; border-color:#cfe0cd; color:#2f4b33; }
.gvdt .rv-badges .rvb-bad{ background:#f7f1ea; border-color:#e6ddcf; color:#8a5b10; }
.gvdt .rv-dist .drow{ display:flex; align-items:center; gap:10px; margin-bottom:7px; font-size:13px; }
.gvdt .rv-dist .drow .lb{ width:44px; color:#5c685a; font-weight:700; }
.gvdt .rv-dist .drow .bar{ flex:1; height:9px; background:#efece2; border-radius:99px; overflow:hidden; }
.gvdt .rv-dist .drow .bar i{ display:block; height:100%; background:#3d6041; border-radius:99px; }
.gvdt .rv-dist .drow .pc{ width:42px; text-align:right; color:#8a9585; font-weight:700; }

/* 후기 툴바 */
.gvdt .rv-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin:18px 0 4px; flex-wrap:wrap; }
.gvdt .rv-sort select{ height:40px; border:1px solid #e4e0d2; border-radius:10px; padding:0 12px; font-size:14px; color:#1b241c; background:#fff; }
.gvdt .rv-write{ height:44px; padding:0 20px; border:1.5px solid #3d6041; background:#fff; color:#3d6041; border-radius:11px; font-size:15px; font-weight:800; cursor:pointer; transition:.15s; }
.gvdt .rv-write:hover{ background:#3d6041; color:#fff; }
.gvdt .gvdt_reviews{ margin-top:8px; }

/* 조합원 연차 배찌 V3(좌우분할 「N년｜생협운동」) — 메인/모바일(review_list_v2.css .rvm_coop_badge)과 동일 hex·구조.
   후기 카드 작성자명 옆 인라인. 숫자블록(.n)은 확정 세리프, 라벨(.lbl)은 Pretendard. 티어색=적록색약 대응 명도단계. */
.gvdt .rvm_coop_badge{ display:inline-flex; align-items:stretch; vertical-align:middle; border:1px solid #cfe0cd; border-radius:9px; overflow:hidden; box-shadow:0 1px 2px rgba(29,39,30,.06); line-height:1; }
.gvdt .rvm_coop_badge .n{ display:flex; align-items:center; padding:0 8px; font-family:'Maru Buri','Noto Serif KR',serif; font-size:14px; font-weight:800; background:#5f8f6d; color:#fff; }
.gvdt .rvm_coop_badge .lbl{ display:flex; align-items:center; padding:3px 8px; background:#fff; font-size:11px; font-weight:800; color:#2f4b33; letter-spacing:.01em; }
.gvdt .rvm_coop_badge.s1 .n{ background:#e3ebe4; color:#2f4b33; }
.gvdt .rvm_coop_badge.s2 .n{ background:#5f8f6d; color:#fff; }
.gvdt .rvm_coop_badge.s3 .n{ background:#24402a; color:#fff; }
.gvdt .rvm_coop_badge.s4{ border-color:#c8a24a; border-width:1.5px; }
.gvdt .rvm_coop_badge.s4 .n{ background:#e3a91f; color:#3a2a06; }
.gvdt .rvm_coop_badge.s4 .lbl{ background:#fbf7ec; color:#3a4b33; }
.gvdt .rvm_coop_badge.s5{ border-color:#c8a24a; border-width:1.5px; }
.gvdt .rvm_coop_badge.s5 .n{ background:#7a5a12; color:#fff; }
.gvdt .rvm_coop_badge.s5 .lbl{ background:#fbf6e6; color:#6b5312; }
/* 상단 스티키 섹션 내비(상세내역/후기/상품 정보고시) — 풀폭 균등분할, 하단 딥그린 인디케이터.
   top:0: 이 상세페이지는 스크롤 시 GNB 헤더(.head_menu_wrap)가 fixed로 남지 않는다 — 부모 goods_view.jsp scroll 핸들러가
     .header_wrap에 .cancle 부여(dt=1은 prd_top=0이라 스크롤 즉시) → .header_wrap.move.cancle .head_menu_wrap{position:relative}로
     헤더가 함께 스크롤 아웃. 따라서 헤더 높이 보정 불필요 → 기존 .product_detail_tab.move{position:fixed;top:0}처럼 화면 최상단에 밀착.
     (구 88/50/var 측정은 "헤더가 아래에 남는다"는 틀린 가정이라 헤더 높이만큼 항상 빈 갭이 생겼음.)
   z-index=25: 콘텐츠 위·사이트 GNB(head_menu_wrap z-index:10/20 대비 위)와 무충돌. */
.gvdt .gvdt_secnav{ position:sticky; top:0; z-index:25; display:flex; background:#fff; border-top:1px solid #efece2; border-bottom:1px solid #e4e0d2; margin:2px 0 0; box-shadow:0 6px 12px -8px rgba(27,36,28,.2); }
/* 섹션내비 바로 다음 섹션 헤더는 상단 여백 더 축소(탭 바로 아래 밀착) */
.gvdt .gvdt_secnav + .shead{ margin-top:18px; }
.gvdt .gvdt_secnav .sn-tab{ flex:1; text-align:center; padding:15px 6px; font-size:15px; font-weight:800; color:#8a9585; cursor:pointer; border-bottom:3px solid transparent; letter-spacing:-.01em; transition:color .12s; }
.gvdt .gvdt_secnav .sn-tab:hover{ color:#3d6041; }
.gvdt .gvdt_secnav .sn-tab.on{ color:#2f4b33; border-bottom-color:#3d6041; }

/* 후기 서브탭(제철/지난/사진) — pill, 후기 섹션 내부 정적(상단 단독 스티키 아님). 기존 로직 연결 유지. */
.gvdt .rv-tabs{ position:static; display:flex; gap:8px; margin:16px 0 8px; }
.gvdt .rv-tabs .rv-tab{ border:1px solid #e4e0d2; background:#fff; color:#5c685a; font-size:14px; font-weight:800; padding:9px 16px; border-radius:999px; cursor:pointer; }
.gvdt .rv-tabs .rv-tab.on{ background:#3d6041; color:#fff; border-color:#3d6041; }
/* [2026-08-04 4단계 신선도] 상시(C tier): 제철/지난 pill 숨김 → 사진 pill·단일 목록만 */
.gvdt .rv-tabs.is-single .rv-tab-season,
.gvdt .rv-tabs.is-single .rv-tab-past{ display:none; }
/* [2026-08-02] 탭 안내 한 줄 — 활성 탭에 따라 문구 변경. 딥그린 톤·SVG 아이콘. */
.gvdt .rv-tab-desc{ display:flex; align-items:center; gap:6px; margin:0 0 14px; font-size:13px; font-weight:600; color:#5f7a5f; letter-spacing:-.01em; }
.gvdt .rv-tab-desc .rtd-ic{ flex:0 0 auto; color:#7a9b7d; }
/* 사진 후기 탭 필터: 미디어 없는 후기/그룹헤더 숨김 */
.gvdt .rv-photo-hidden{ display:none !important; }

/* ===== 정보고시 표 ===== */
.gvdt .info-table{ width:100%; border-collapse:collapse; background:#fff; border:1px solid #e4e0d2; border-radius:16px; overflow:hidden; }
.gvdt .info-table th,.gvdt .info-table td{ text-align:left; padding:13px 16px; font-size:15px; border-bottom:1px solid #efece2; vertical-align:top; }
.gvdt .info-table th{ width:210px; background:#f6f5ef; color:#5c685a; font-weight:700; }
.gvdt .info-table tr:last-child th,.gvdt .info-table tr:last-child td{ border-bottom:none; }

/* ===== 문의(Q&A) =====
   실제 로드 DOM = .gvdt_qna > .detail_qa_table > (div.th + #id_board_qna > dl.qa > (dt.q_title + dd.q_txt)).
   기존 style_v2 문의 CSS는 .detail_content3 스코프라 dt=1(.gvdt_wrap)엔 미적용 → .gvdt로 재현.
   정렬 방식 = flex(각 행 독립 flex, 동일 flex-basis라 헤더/행 컬럼이 세로 정렬. table-layout보다 견고, 제네릭 .col 충돌 무해).
   동작(FnQnaBoardClick 아코디언·작성/수정/삭제)은 기존 JS 그대로, 겉모양만. */
.gvdt .gvdt_qna .detail_qa_table{ border-top:2px solid #1b241c; }
/* dl/dt/dd·#id_board_qna 여백 리셋(기본값 잔재 방지) */
.gvdt .gvdt_qna .detail_qa_table .qa{ margin:0; padding:0; }
.gvdt .gvdt_qna .detail_qa_table dt,
.gvdt .gvdt_qna .detail_qa_table dd{ margin:0; padding:0; }
/* 헤더행 + 문의행 = 동일 flex 4열(헤더 컬럼폭과 행 컬럼폭 일치) */
.gvdt .gvdt_qna .detail_qa_table .th,
.gvdt .gvdt_qna .detail_qa_table .q_title{ display:flex; align-items:center; width:100%; box-sizing:border-box; }
.gvdt .gvdt_qna .detail_qa_table .th{ border-bottom:1px solid #e4e0d2; }
.gvdt .gvdt_qna .detail_qa_table .q_title{ cursor:pointer; border-bottom:1px solid #efece2; }
.gvdt .gvdt_qna .detail_qa_table .q_title.show{ border-bottom:none; }
/* 컬럼 폭(헤더·행 공통): 제목 flex, 작성자/작성일/답변 고정폭 */
.gvdt .gvdt_qna .detail_qa_table .col{ display:block; float:none; padding:14px 6px; font-size:13px; color:#8a9585; text-align:center; box-sizing:border-box; line-height:1.5; }
.gvdt .gvdt_qna .detail_qa_table .col1{ flex:1 1 0; min-width:0; }
.gvdt .gvdt_qna .detail_qa_table .col2{ flex:0 0 150px; }
.gvdt .gvdt_qna .detail_qa_table .col3{ flex:0 0 140px; }
.gvdt .gvdt_qna .detail_qa_table .col4{ flex:0 0 100px; }
/* 헤더 셀 톤 + 제목열 좌정렬(행 제목과 세로 정렬) */
.gvdt .gvdt_qna .detail_qa_table .th .col{ padding:13px 6px; font-size:14px; font-weight:800; color:#5c685a; }
.gvdt .gvdt_qna .detail_qa_table .th .col1{ text-align:left; padding-left:10px; }
/* 문의행 제목 셀 */
.gvdt .gvdt_qna .detail_qa_table .q_title .col1{ text-align:left; padding-left:10px; padding-right:14px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:15px; font-weight:600; color:#1b241c; }
.gvdt .gvdt_qna .detail_qa_table .q_title .col1 img{ margin-top:-3px; vertical-align:middle; }
/* 답변/펼침 영역(아코디언 — 기본 숨김, JS slideToggle로 노출) */
.gvdt .gvdt_qna .detail_qa_table .q_txt{ display:none; padding:20px 22px; border-bottom:1px solid #efece2; background:#faf9f4; }
.gvdt .gvdt_qna .detail_qa_table .q_txt .btn_wrap{ margin:0 0 10px; width:100%; text-align:right; }
.gvdt .gvdt_qna .detail_qa_table .q_txt .btn_wrap .btn_s{ display:inline-block; border:1px solid #e4e0d2; background:#fff; font-size:13px; padding:0 10px; height:32px; line-height:30px; margin-left:8px; border-radius:8px; color:#5c685a; cursor:pointer; }
.gvdt .gvdt_qna .detail_qa_table .q_txt .txt{ font-size:15px; color:#2a332b; line-height:1.7; word-break:keep-all; }
.gvdt .gvdt_qna .detail_qa_table .q_txt .a_txt_box{ padding:16px 18px; background:#eef2ec; border-radius:12px; margin-top:16px; font-size:15px; color:#2f4b33; line-height:1.7; word-break:keep-all; }
.gvdt .gvdt_qna_btn{ margin-top:16px; }

/* ===== 연관 두레카드 ===== */
.gvdt .dcz-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.gvdt .dcz{ background:#fff; border:1px solid #e4e0d2; border-radius:16px; overflow:hidden; transition:.15s; display:flex; flex-direction:column; }
.gvdt .dcz:hover{ box-shadow:0 6px 18px rgba(61,96,65,.12); transform:translateY(-2px); }
.gvdt .dcz .dcz-link{ display:block; cursor:pointer; }
.gvdt .dcz .thumb{ aspect-ratio:1/1; overflow:hidden; position:relative; background:#f6f5ef; }
.gvdt .dcz .thumb img{ width:100%; height:100%; object-fit:cover; }
.gvdt .dcz .dc-badges{ position:absolute; top:10px; left:10px; display:flex; gap:6px; }
.gvdt .dcz .dc-badge{ font-size:11px; font-weight:800; color:#fff; background:#f8a31e; padding:3px 8px; border-radius:7px; line-height:1.5; }
.gvdt .dcz .dc-badge-g{ background:#3d6041; } .gvdt .dcz .dc-badge-c{ background:#2f4b33; }
.gvdt .dcz .dc-halt{ position:absolute; inset:0; background:rgba(27,36,28,.55); color:#fff; display:flex; align-items:center; justify-content:center; text-align:center; padding:12px; font-size:14px; font-weight:700; }
.gvdt .dcz .body{ padding:13px 14px 15px; display:flex; flex-direction:column; flex:1; }
.gvdt .dcz .dc-eco{ font-size:11.5px; font-weight:800; color:#3d6041; }
.gvdt .dcz .dc-nm{ font-size:16px; font-weight:700; line-height:1.4; margin:4px 0 8px; min-height:45px; color:#1b241c;
	display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.gvdt .dcz .dc-price{ display:flex; align-items:baseline; gap:7px; flex-wrap:wrap; }
.gvdt .dcz .dc-old{ font-size:12.5px; color:#8a9585; text-decoration:line-through; }
.gvdt .dcz .dc-now{ font-size:18px; font-weight:800; color:#1b241c; }
.gvdt .dcz .dc-now .u{ font-size:13px; font-weight:700; margin-left:1px; }
.gvdt .dcz .dc-nonmem{ font-size:12px; color:#8b978c; margin-top:3px; }
/* 담기 = 딥그린 솔리드(사이트 관례) — default.css appearance:none 로 옅은 아웃라인이 안 보이던 문제 해결(또렷한 채움 버튼) */
/* [2026-08-09 겹침 수정] 이 버튼은 .dcz-link > .body 의 형제라 .body 의 padding(13/14/15)을 못 받는다.
   width:100% 였던 탓에 카드 폭 전체로 늘어나 ① 카드 1px 테두리 위에 버튼 테두리가 얹히고
   ② 카드의 border-radius:16px + overflow:hidden 에 버튼 아래 모서리가 잘려 '담기 버튼이 겹쳐' 보였다.
   → .body 와 같은 좌우 여백(14px)으로 들여쓰고 아래 여백을 준다(세로 리듬 11px 은 유지).
   대상 = 생산자 상세·상품상세 dt 의 .dcz 카드 공용. */
.gvdt .dcz .dc-cart{ margin:11px 14px 14px; width:auto; height:36px; border:1.5px solid #3d6041; background:#fff; color:#3d6041; border-radius:10px; font-size:14px; font-weight:800; cursor:pointer; transition:.15s; }
.gvdt .dcz .dc-cart:hover{ background:#eaf1e8; border-color:#3d6041; color:#3d6041; }
.gvdt .dcz .dc-cart.dc-soldout{ background:#e4e0d2; color:#6c7268; border-color:#e4e0d2; box-shadow:none; cursor:default; pointer-events:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* ===== 반응형 ===== */
@media (max-width:1100px){ .gvdt .dcz-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:860px){
	.gvdt .gvdt_wrap{ padding:14px 14px 30px; }
	.gvdt .buy{ grid-template-columns:1fr; gap:22px; }
	.gvdt .panel{ position:static; }
	.gvdt .panel .p-title{ font-size:22px; }
	.gvdt .shead h2{ font-size:22px; }
	.gvdt .rv-top{ grid-template-columns:1fr; gap:18px; }
	.gvdt .rv-score{ border-right:none; border-bottom:1px solid #efece2; padding-bottom:16px; }
	.gvdt .dcz-grid{ grid-template-columns:1fr 1fr; gap:12px; }
	.gvdt .info-table th{ width:120px; }
}

/* ============================================================================
 * [2026-08-01] PC 상세(dt=1) 후기쓰기 레이어 — B 카드형 중앙 모달 리스킨
 *   대상 = 공용 모달 .my_review_write_wrap.for_product_detail (dt=1에서 FnGoodsBoardWriteShowV2 → review_on)
 *   원칙 = CSS만. 마크업/JS/스키마/필드/함수/훅(별점 .star_box span·chk_step1/chk_step3·reContents·nFile0~3·btn_green) 무변경.
 *          이 파일은 dt=1에서만 로드 → 기존(비-dt) 팝업 100% 무영향. style_v2 뒤에 로드되어 오버라이드.
 *   톤 = mockup/pc_detail_review_write.html (Pretendard·딥그린·골드·카드) / 품질=실제 단일축 3단(신선도·맛·포장 3축 아님)
 * ========================================================================== */
/* [2026-08-02] position:fixed — 기본 .my_review_write_wrap는 position:absolute(style_v2 1925)라
 * dt=1 단일스크롤 상세에서 후기쓰기 클릭 시 모달 카드가 문서 상단(top:5vh) 기준으로 붙어 현재 뷰포트
 * 한참 위로 벗어남 → .mark_shadow(fixed 오버레이)만 보이고 B 카드가 '안 뜸'. viewport 고정으로 중앙 모달화
 * (오버레이도 fixed). left:50%·top:5vh(인라인)·height:90vh(인라인) 유지 → 스크롤 위치 무관 중앙 노출. */
.my_review_write_wrap.for_product_detail{
	position:fixed;
	width:620px; margin-left:-310px; border-radius:20px; padding:0; overflow:hidden;
	box-shadow:0 30px 80px rgba(24,33,26,.4); background:#fff;
	font-family:'Pretendard','Apple SD Gothic Neo','Malgun Gothic',sans-serif; letter-spacing:-.01em;
}
/* 폼 = 세로 플렉스(모달 높이 채움) — jQuery .show()는 모달에만 display 지정하므로 폼 flex는 안전 */
.my_review_write_wrap.for_product_detail #uploadForm{
	display:flex; flex-direction:column; height:100%; box-sizing:border-box; padding-bottom:18px;
}
.my_review_write_wrap.for_product_detail *{ box-sizing:border-box; }

/* 닫기(우상단) */
.my_review_write_wrap.for_product_detail .close{
	position:absolute; top:14px; right:16px; z-index:10; padding:0;
	width:34px; height:34px; border-radius:10px; background:rgba(255,255,255,.16);
	display:flex; align-items:center; justify-content:center; transition:.15s;
}
.my_review_write_wrap.for_product_detail .close:hover{ background:rgba(255,255,255,.3); }
.my_review_write_wrap.for_product_detail .close img{ width:15px; height:15px; filter:brightness(0) invert(1); }

/* 헤더 = 안내 배너를 딥그린 헤더로 */
.my_review_write_wrap.for_product_detail .rv_info_banner{
	flex-shrink:0; margin:0; padding:16px 22px 15px;
	background:linear-gradient(158deg,#3f6547 0%,#305335 46%,#244327 100%); color:#fff;
}
.my_review_write_wrap.for_product_detail .rv_info_banner .rv_info_banner_title{
	font-size:17px; font-weight:800; color:#fff; margin:0; letter-spacing:.01em;
}
.my_review_write_wrap.for_product_detail .rv_info_banner .rv_info_banner_desc{
	font-size:12.5px; font-weight:500; color:rgba(255,255,255,.82); margin:4px 0 0;
}

/* 생활재 요약 카드 */
.my_review_write_wrap.for_product_detail .content{
	display:flex; align-items:center; gap:14px; width:auto; table-layout:auto;
	flex-shrink:0; margin:18px 22px 4px; padding:14px; border-radius:14px;
	background:#f6f9f5; border:1px solid #efece2;
}
.my_review_write_wrap.for_product_detail .content .img_wrap{
	display:block; width:60px; height:60px; border-radius:12px; overflow:hidden; flex-shrink:0;
	background:linear-gradient(135deg,#e7efe4,#d3e4cf);
}
.my_review_write_wrap.for_product_detail .content .img_wrap img{ width:100%; height:100%; object-fit:cover; border:0; }
.my_review_write_wrap.for_product_detail .content .txt_box{ display:block; padding:0; }
.my_review_write_wrap.for_product_detail .content .txt_box .tt{ font-size:16.5px; font-weight:800; color:#1b241c; line-height:1.35; }

/* 스크롤 영역 */
.my_review_write_wrap.for_product_detail .scroll_space{
	flex:1 1 auto; overflow-y:auto; padding:6px 22px 8px; min-height:0;
}
.my_review_write_wrap.for_product_detail .scroll_space::-webkit-scrollbar{ width:8px; }
.my_review_write_wrap.for_product_detail .scroll_space::-webkit-scrollbar-thumb{ background:#dcd8c9; border-radius:8px; }

/* 큰 별점 */
.my_review_write_wrap.for_product_detail .star_wrap{
	margin:18px 0 0; padding:22px 0 18px; text-align:center;
	background:#f6f9f5; border:1px solid #efece2; border-radius:16px;
}
.my_review_write_wrap.for_product_detail .star_wrap .txt{ font-size:17px; font-weight:800; color:#1b241c; }
.my_review_write_wrap.for_product_detail .star_wrap .star_box{ margin-top:14px; }
.my_review_write_wrap.for_product_detail .star_wrap .star{ width:46px; height:46px; background-size:contain; margin:0 5px; }
.my_review_write_wrap.for_product_detail .star_wrap .star.full{ background-size:contain; }

/* 추천·품질 세그먼트 */
.my_review_write_wrap.for_product_detail .chk_wrap{ padding:24px 0 0; }
.my_review_write_wrap.for_product_detail .chk_wrap .txt{ font-size:14px; font-weight:800; color:#5c685a; }
.my_review_write_wrap.for_product_detail .chk_wrap ul{ margin-top:10px; }
.my_review_write_wrap.for_product_detail .chk_wrap .list2{ display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.my_review_write_wrap.for_product_detail .chk_wrap .list3{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:9px; }
.my_review_write_wrap.for_product_detail .chk_wrap .list2 li,
.my_review_write_wrap.for_product_detail .chk_wrap .list3 li{ float:none; width:auto; margin:0; }
.my_review_write_wrap.for_product_detail .chk_wrap .radio_wrap{ margin-top:0; }
.my_review_write_wrap.for_product_detail .chk_wrap .radio_wrap input[type=radio]:not(old) + label{
	height:auto; min-height:50px; line-height:1.3; padding:13px 6px;
	display:flex; align-items:center; justify-content:center; gap:6px;
	border:1.5px solid #e4e0d2; border-radius:12px; background:#fff;
	font-size:14px; font-weight:800; color:#5c685a; transition:.15s;
}
.my_review_write_wrap.for_product_detail .chk_wrap .radio_wrap input[type=radio]:not(old):checked + label{
	border-color:#3d6041; background:#eaf1e8; color:#2f4b33;
}

/* 본문 */
.my_review_write_wrap.for_product_detail .txt_wrap{ padding-top:24px; }
.my_review_write_wrap.for_product_detail .txt_wrap .txt{ font-size:14px; font-weight:800; color:#5c685a; }
.my_review_write_wrap.for_product_detail .txt_wrap textarea{
	height:150px; margin-top:10px; padding:16px; border:1.5px solid #e4e0d2; border-radius:14px;
	font-family:'Pretendard','Apple SD Gothic Neo',sans-serif; font-size:15px; line-height:1.72; color:#1b241c;
	transition:border-color .15s, box-shadow .15s;
}
.my_review_write_wrap.for_product_detail .txt_wrap textarea:focus{ border-color:#3d6041; box-shadow:0 0 0 3px rgba(61,96,65,.1); }
.my_review_write_wrap.for_product_detail .txt_wrap textarea::placeholder{ color:#b3bcae; font-size:14.5px; }

/* 사진·영상 드롭존 */
.my_review_write_wrap.for_product_detail .file_wrap{ padding-top:24px; }
.my_review_write_wrap.for_product_detail .file_wrap .txt{ font-size:14px; font-weight:800; color:#5c685a; }
.my_review_write_wrap.for_product_detail .file_wrap .file_img_wrap{
	margin-top:12px; display:grid; grid-template-columns:repeat(4,1fr); gap:12px;
}
.my_review_write_wrap.for_product_detail .file_wrap .file_img_wrap:after{ display:none; }
.my_review_write_wrap.for_product_detail .file_box{
	float:none; width:100%; height:auto; aspect-ratio:1/1; margin:0;
	border:1.6px dashed #e4e0d2; border-radius:14px;
	background:#f6f9f5 url(../../images/shop/input_file_bg.svg) 50% 46% no-repeat; background-size:26px;
	transition:.15s;
}
.my_review_write_wrap.for_product_detail .file_box:hover{ border-color:#3d6041; background-color:#f0f6ef; }
.my_review_write_wrap.for_product_detail .file_box .btn_close{
	top:-7px; right:-7px; width:24px; height:24px; background-size:24px;
}

/* 등록 버튼 = 하단 풋터 */
.my_review_write_wrap.for_product_detail .btn_green{
	flex-shrink:0; margin:0 22px; width:auto; height:54px; line-height:54px; border-radius:14px;
	font-size:16px; font-weight:800; background-color:#3d6041; box-shadow:0 6px 16px rgba(47,75,54,.22);
	transition:.15s;
}
.my_review_write_wrap.for_product_detail .btn_green:hover{ background-color:#2f4b33; }
.my_review_write_wrap.for_product_detail .btn_white{ margin:0 22px; width:auto; }

/* 좁은 화면 대응 */
@media (max-width:680px){
	.my_review_write_wrap.for_product_detail{ width:94vw; margin-left:-47vw; }
	.my_review_write_wrap.for_product_detail .file_wrap .file_img_wrap{ gap:8px; }
}

/* ── 배송·환불 안내(백필) — 레거시 detail4 동일 내용, .gvdt 톤. 정보고시 인근 정책 섹션 ── */
.gvdt .gvdt_policy{ display:flex; flex-direction:column; gap:20px; }
.gvdt .gvdt_policy .pol-block{ background:#fff; border:1px solid #e4e0d2; border-radius:16px; overflow:hidden; }
.gvdt .gvdt_policy .pol-head{ padding:14px 18px; background:#f6f5ef; font-size:16px; font-weight:800; color:#1b241c; border-bottom:1px solid #efece2; }
.gvdt .gvdt_policy table{ width:100%; border-collapse:collapse; }
.gvdt .gvdt_policy th{ width:150px; text-align:left; vertical-align:top; padding:14px 18px; font-size:15px; font-weight:700; color:#3d6041; border-bottom:1px solid #efece2; }
.gvdt .gvdt_policy td{ padding:14px 18px; font-size:14px; color:#5c685a; border-bottom:1px solid #efece2; }
.gvdt .gvdt_policy tr:last-child th,.gvdt .gvdt_policy tr:last-child td{ border-bottom:none; }
.gvdt .gvdt_policy ul{ margin:0; padding:0; list-style:none; }
.gvdt .gvdt_policy li{ position:relative; padding-left:14px; margin:0 0 6px; line-height:1.55; }
.gvdt .gvdt_policy li:last-child{ margin-bottom:0; }
.gvdt .gvdt_policy li:before{ content:''; position:absolute; left:0; top:9px; width:4px; height:4px; border-radius:50%; background:#9aa89a; }
.gvdt .gvdt_policy li.type2{ color:#c0392b; }
.gvdt .gvdt_policy li.type2:before{ background:#c0392b; }
@media (max-width:680px){
	.gvdt .gvdt_policy th{ width:110px; padding:12px 14px; font-size:14px; }
	.gvdt .gvdt_policy td{ padding:12px 14px; font-size:13.5px; }
}

/* 2026-08-03 생활재 번호 라벨(.gvdt_goodsno) — 상품명 아래 보조 텍스트(작게·회색). 단체·학교가 번호로 주문·문의 편하게(클릭 시 숫자 전체선택). */
.gvdt .gvdt_goodsno{ margin:7px 0 2px; font-size:12.5px; color:#8a8f86; letter-spacing:.01em; line-height:1.4; }
.gvdt .gvdt_goodsno span{ font-family:"Roboto",sans-serif; font-weight:700; color:#5a6157; -webkit-user-select:all; user-select:all; }

/* ══════════════════════════════════════════════════════════════
   2026-08-05 생산자(생산지) 소개 — 매거진 레이아웃 (PC)
     .gvdt_producer  구매패널 생산자 칩(전 상품)
     .gvdt_farm      히어로(겹침 헤드라인) → 리드문 → 인용구 → 본문 → 갤러리
   세리프(Maru Buri)는 헤드라인·인용구에만. 본문은 Pretendard 15.5px/1.78 가독 우선
   (v2.0.1 "시인성 우선 세리프 제거" 원칙 유지 — 장식 타이포에만 예외).
   사진 없는 생산자는 .gf_noimg → 딥그린 팔레트 헤더로 대체(허전함 방지).
   토큰: green#3d6041 green-deep#2f4b33 green-soft#eaf1e8 ink#1b241c sub#5c685a line#e4e0d2 wash#f6f5ef
   ══════════════════════════════════════════════════════════════ */

/* --- 구매패널 생산자 칩 --- */
.gvdt .gvdt_producer{ margin:10px 0 0; }
.gvdt .gvdt_producer .pchip{ display:inline-flex; align-items:center; gap:7px; max-width:100%;
	padding:8px 12px; border:1px solid #e3e0d4; border-radius:999px; background:#f6f5ef;
	font-size:13.5px; color:#3d6041; line-height:1.4; }
.gvdt .gvdt_producer .pchip svg{ flex:0 0 auto; color:#3d6041; }
.gvdt .gvdt_producer .pchip_nm{ font-weight:700; color:#1b241c; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.gvdt .gvdt_producer button.pchip-link{ cursor:pointer; background:#f6f5ef; border:1px solid #cfe0cd; }
.gvdt .gvdt_producer button.pchip-link:hover{ background:#eaf1e8; border-color:#3d6041; }
.gvdt .gvdt_producer .pchip_go{ flex:0 0 auto; font-size:12px; font-weight:700; color:#3d6041;
	padding-left:8px; border-left:1px solid #d7ddd4; }

/* --- 매거진 컨테이너 --- */
.gvdt .gvdt_farm{ border:1px solid #e4e0d2; border-radius:16px; background:#fff; overflow:hidden; padding:0 0 30px; }

/* 히어로 — 큰 사진 위에 헤드라인 겹침(하단 그라데이션으로 가독 확보) */
.gvdt .gvdt_farm .gf_hero{ position:relative; margin:0; background:#eceade; }
.gvdt .gvdt_farm .gf_hero img{ display:block; width:100%; aspect-ratio:16/9; object-fit:cover; }
.gvdt .gvdt_farm .gf_hero:after{ content:''; position:absolute; left:0; right:0; bottom:0; height:62%;
	background:linear-gradient(180deg,rgba(12,20,13,0) 0,rgba(12,20,13,.16) 42%,rgba(12,20,13,.76) 100%); pointer-events:none; }
.gvdt .gvdt_farm .gf_hero_cap{ position:absolute; left:0; right:0; bottom:0; z-index:1; padding:0 30px 24px; }
.gvdt .gvdt_farm .gf_hero_cap .gf_eyebrow{ color:#cfe3c9; }
.gvdt .gvdt_farm .gf_hero_cap .gf_nm{ color:#fff; text-shadow:0 2px 14px rgba(0,0,0,.42); }
.gvdt .gvdt_farm .gf_hero_cap .gf_region{ color:#e3ecdf; }
.gvdt .gvdt_farm .gf_hero_cap .gf_region svg{ color:#bcd2b6; }

/* 사진 없는 생산자 — 딥그린 팔레트 헤더 */
.gvdt .gvdt_farm .gf_head_plain{ padding:34px 30px 30px;
	background:linear-gradient(140deg,#2f4b33 0,#3d6041 58%,#4a7350 100%); position:relative; overflow:hidden; }
.gvdt .gvdt_farm .gf_head_plain:after{ content:''; position:absolute; right:-40px; top:-60px; width:220px; height:220px;
	border-radius:50%; background:rgba(255,255,255,.05); }
.gvdt .gvdt_farm .gf_head_plain .gf_eyebrow{ color:#bcd8b6; }
.gvdt .gvdt_farm .gf_head_plain .gf_nm{ color:#fff; }
.gvdt .gvdt_farm .gf_head_plain .gf_region{ color:#dcead8; }
.gvdt .gvdt_farm .gf_head_plain .gf_region svg{ color:#a8c6a2; }

/* 헤드라인 공통 */
.gvdt .gvdt_farm .gf_eyebrow{ display:block; font-size:12px; font-weight:800; letter-spacing:.18em; text-transform:uppercase; margin-bottom:7px; }
.gvdt .gvdt_farm .gf_nm{ margin:0; font-size:32px; font-weight:600; letter-spacing:-.015em; line-height:1.28;
	font-family:'Maru Buri','Noto Serif KR',serif; word-break:keep-all; }
.gvdt .gvdt_farm .gf_region{ display:inline-flex; align-items:center; gap:4px; margin-top:9px; font-size:13.5px; font-weight:600; }

/* 본문 영역 */
.gvdt .gvdt_farm .gf_body{ padding:0 30px; }
.gvdt .gvdt_farm .gf_lead{ margin:26px 0 0; font-size:17.5px; line-height:1.7; color:#2a3630; font-weight:600;
	letter-spacing:-.015em; word-break:keep-all; }

/* 인용구 — 매거진 관례(.mzr_quote) 계승: Maru Buri + 여는 따옴표 장식 */
.gvdt .gvdt_farm .gf_quote{ position:relative; margin:22px 0 0; padding:20px 24px 20px 52px;
	background:linear-gradient(165deg,#fffdf7,#f2f7f1); border-left:4px solid #2f4b33; border-radius:0 12px 12px 0;
	font-family:'Maru Buri','Noto Serif KR',serif; font-size:18px; font-weight:600; line-height:1.68;
	color:#2f4b33; letter-spacing:-.01em; word-break:keep-all; }
.gvdt .gvdt_farm .gf_quote:before{ content:'\201C'; position:absolute; left:18px; top:10px;
	font-family:Georgia,serif; font-size:38px; font-weight:800; color:#b9ccba; line-height:1; }

/* '한눈에 보기' 팩트박스 — 2026-08-07 신설(PC)
   STORY_HTML 첫 문단의 고정 패턴을 producer_intro.js 가 감지해 이 마크업으로 승격한다.
   감지 실패 시 이 박스는 아예 생성되지 않고 원문 문단 그대로 남는다(무손상 폴백).
   접힘영역(.gf_story) 밖에 놓이므로 팩트는 언제나 전문이 보인다. */
.gvdt .gvdt_farm .gf_facts{ margin:22px 0 0; padding:18px 22px 18px; border-radius:14px;
	background:linear-gradient(165deg,#f4f8f1,#eaf1e6); border:1px solid #dbe7d6; }
.gvdt .gvdt_farm .gf_facts_t{ display:inline-block; margin:0 0 11px; padding:4px 11px; border-radius:999px;
	background:#2f4b33; color:#fff; font-size:12px; font-weight:800; letter-spacing:.02em; }
.gvdt .gvdt_farm .gf_facts ul{ margin:0; padding:0; list-style:none; }
.gvdt .gvdt_farm .gf_facts li{ position:relative; margin:0; padding:5px 0 5px 20px;
	font-size:15.5px; line-height:1.62; color:#2a3630; font-weight:600; letter-spacing:-.01em; word-break:keep-all; }
.gvdt .gvdt_farm .gf_facts li:before{ content:''; position:absolute; left:4px; top:14px; width:6px; height:6px;
	border-radius:50%; background:#3d6041; }

/* 이야기 본문 — 기본 접힘(페이드), .is-open 시 전체 */
.gvdt .gvdt_farm .gf_story{ position:relative; margin:22px 0 0; max-height:172px; overflow:hidden; }
/* 팩트박스만 있고 남은 스토리가 없을 때 = 빈 접힘영역·빈 버튼 숨김 */
.gvdt .gvdt_farm .gf_story.gf_story_empty{ display:none; }
.gvdt .gvdt_farm .gf_more.gf_more_hide{ display:none; }
.gvdt .gvdt_farm .gf_story:after{ content:''; position:absolute; left:0; right:0; bottom:0; height:76px;
	background:linear-gradient(180deg,rgba(255,255,255,0) 0,#fff 92%); pointer-events:none; }
.gvdt .gvdt_farm .gf_story.is-open{ max-height:none; }
.gvdt .gvdt_farm .gf_story.is-open:after{ display:none; }
.gvdt .gvdt_farm .gf_story_in{ font-size:15.5px; line-height:1.78; color:#3f4a3e; letter-spacing:-.01em; word-break:keep-all; }
.gvdt .gvdt_farm .gf_story_in p{ margin:0 0 15px; }
.gvdt .gvdt_farm .gf_story_in p:last-child{ margin-bottom:0; }
/* 소제목 — 본문 안 h4 */
.gvdt .gvdt_farm .gf_story_in h4{ margin:24px 0 9px; font-size:17px; font-weight:700; color:#2f4b33;
	font-family:'Maru Buri','Noto Serif KR',serif; letter-spacing:-.01em; }
.gvdt .gvdt_farm .gf_story_in h4:first-child{ margin-top:0; }
.gvdt .gvdt_farm .gf_story_in em{ font-style:normal; font-weight:700; color:#2f4b33; }
.gvdt .gvdt_farm .gf_story_in img{ max-width:100%; border-radius:10px; margin:10px 0; }
.gvdt .gvdt_farm .gf_more{ display:block; margin:16px 0 0; padding:12px 20px; cursor:pointer;
	background:#fff; border:1px solid #cfe0cd; border-radius:999px;
	font-size:14px; font-weight:700; color:#3d6041; letter-spacing:-.01em; }
.gvdt .gvdt_farm .gf_more:hover{ background:#eaf1e8; border-color:#3d6041; }

/* 갤러리 — PC 그리드(4열, 첫 장 2칸 차지) */
/* 사진 수가 생산자마다 3~5장으로 달라(관리자 슬롯 g1~g5) auto-fit 균등배치 — 장수와 무관하게
   한 줄이 꽉 차고 빈 칸이 안 생긴다. 고정 4열+첫장 2칸 스팬은 4장일 때 마지막 칸이 비어 폐기. */
.gvdt .gvdt_farm .gf_gallery{ display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:10px; margin:26px 30px 0; }
.gvdt .gvdt_farm .gf_gitem{ margin:0; border-radius:12px; overflow:hidden; background:#f1efe6; }
.gvdt .gvdt_farm .gf_gitem img{ display:block; width:100%; height:100%; aspect-ratio:4/3; object-fit:cover;
	transition:transform .35s ease; }
.gvdt .gvdt_farm .gf_gitem:hover img{ transform:scale(1.04); }

.gvdt .gvdt_farm .gf_video{ margin:24px 30px 0; border-radius:12px; overflow:hidden; background:#000; }
.gvdt .gvdt_farm .gf_video iframe{ display:block; width:100%; aspect-ratio:16/9; border:0; }

/* 이 생산자의 다른 생활재 — 제목만 신규(카드는 기존 .dcz-grid 재사용) */
.gvdt .gf_mg_head{ margin:34px 0 14px; }
.gvdt .gf_mg_head h3{ margin:0; font-size:21px; font-weight:600; color:#1b241c; letter-spacing:-.01em;
	font-family:'Maru Buri','Noto Serif KR',serif; }

@media (max-width:900px){
	.gvdt .gvdt_farm .gf_gallery{ grid-template-columns:repeat(2,1fr); }
	.gvdt .gvdt_farm .gf_nm{ font-size:26px; }
	.gvdt .gvdt_farm .gf_body{ padding:0 20px; }
	.gvdt .gvdt_farm .gf_hero_cap{ padding:0 20px 18px; }
	.gvdt .gvdt_farm .gf_head_plain{ padding:26px 20px 22px; }
	.gvdt .gvdt_farm .gf_gallery,.gvdt .gvdt_farm .gf_video{ margin-left:20px; margin-right:20px; }
	.gvdt .gvdt_farm .gf_lead{ font-size:16px; }
	.gvdt .gvdt_farm .gf_quote{ font-size:16.5px; padding:17px 18px 17px 46px; }
}
