/* ============================================================
   농민.com — 구매자 화면 공통 스타일
   sample.html 톤 적용 · 컴팩트 히어로 · 모바일 대응
   ============================================================ */
:root{
  --pink-50:#FFF0F5; --pink-100:#FFE0EB; --pink-200:#FFC2D9;
  --pink-400:#F06292; --pink-500:#E91E63; --pink-600:#D81557; --pink-700:#B30E49;
  --grad:linear-gradient(95deg,#E91E63 0%,#D81B7A 35%,#B83A9C 70%,#8E44AD 100%);
  --cream:#FBF8F4; --cream-2:#F4EEE4;
  --ink:#1F1418; --ink-2:#3D2A33; --muted:#7A6770; --line:#EADFD3;
  --green:#5C7A4A; --green-soft:#E7EDD8; --gold:#C99B3D; --gold-soft:#F6EBD0;
  --blue:#1971C2;
  /* 레거시 호환 (search/product/order/account 페이지용) */
  --pink:#E91E63; --pink-d:#B30E49; --pink-soft:#FFF0F5; --pink-line:#F3C9D9;
  --blue-d:#155FA0; --blue-soft:#EAF3FB;
  --yellow:#F1B500; --yellow-d:#A07700; --yellow-soft:#FFF8E1;
  --gray:#7A6770; --gray-d:#3D2A33;
  --line-2:#EADFD3; --bg:#FBF8F4; --bg-soft:#F4EEE4;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{
  font-family:'Pretendard Variable','Pretendard',-apple-system,BlinkMacSystemFont,system-ui,'Malgun Gothic',sans-serif;
  background:var(--cream); color:var(--ink); line-height:1.55;
  font-size:15px; -webkit-font-smoothing:antialiased;
}
a{text-decoration:none;color:inherit;}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}
img{display:block;}
input::placeholder,textarea::placeholder{color:#C8A8B6;font-weight:400;}
input:focus,textarea:focus,select:focus{outline:none;}
.serif{font-family:'Noto Serif KR',serif;letter-spacing:-.01em;}
.mono{font-family:'JetBrains Mono',monospace;}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px;}

/* ===================== 상단 띠 ===================== */
.topstrip{background:#1F1418;color:#FFE0EB;font-size:12px;padding:7px 0;}
.topstrip .wrap{display:flex;justify-content:space-between;align-items:center;gap:20px;}
.ts-left{display:flex;gap:12px;align-items:center;min-width:0;}
.ts-pulse{display:inline-flex;align-items:center;gap:6px;color:#FFC2D9;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;
  /* 펄스 링(box-shadow 8px)이 왼쪽·위아래로 잘리지 않도록 패딩으로 여유를 주고
     같은 크기 음수 마진으로 시각 위치는 그대로 유지 */
  padding:9px 0 9px 9px;margin:-9px 0 -9px -9px;}
.ts-pulse::before{content:'';width:6px;height:6px;border-radius:50%;background:#FF4081;flex-shrink:0;
  animation:pulse 1.8s infinite;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(255,64,129,.7)}70%{box-shadow:0 0 0 8px rgba(255,64,129,0)}100%{box-shadow:0 0 0 0 rgba(255,64,129,0)}}
.ts-sep{color:#6E545E;}
.ts-dim{color:#B59DA9;white-space:nowrap;}
.ts-right{display:flex;gap:16px;color:#B59DA9;flex-shrink:0;}
.ts-right a:hover{color:#fff;}
.ts-seller{display:inline-flex;align-items:center;gap:5px;background:#E91E63;
  color:#fff;font-weight:700;padding:4px 12px;border-radius:999px;}
.ts-seller:hover{background:#C81A56;}

/* ===================== 헤더 ===================== */
.nmhd{background:#fff;border-bottom:1px solid var(--line);padding:14px 0 0;
  position:sticky;top:0;z-index:50;}
.nmhd-row{display:flex;align-items:center;gap:22px;flex-wrap:wrap;}
.logo{display:flex;align-items:center;flex-shrink:0;
  transition:transform .16s ease;transform-origin:left center;}
.nmhd .logo:hover{transform:scale(1.06);}

/* ===== 브랜드 로고 (텍스트 ↔ 이미지 자동 전환) =====
   static/img/nongmin-logo-dark.png / -light.png 를 넣으면 자동으로 이미지 전환 */
.nm-logo{display:inline-flex;align-items:center;line-height:1;}
.nm-logo-img{height:var(--nmlogo-h,27px);width:auto;display:none;}
.nm-logo--hasimg .nm-logo-img{display:block;}
.nm-logo--hasimg .nm-logo-text{display:none;}
.nm-logo-text{display:inline-flex;align-items:baseline;font-weight:900;
  letter-spacing:-.04em;font-size:var(--nmlogo-h,27px);}
.nm-logo-dot{color:var(--pink-500);}
.nm-logo-com{font-weight:700;font-size:.62em;color:var(--muted);margin-left:.04em;}
.nm-logo--light .nm-logo-text{color:#fff;}
.nm-logo--light .nm-logo-dot{color:#FFC2D9;}
.nm-logo--light .nm-logo-com{color:rgba(255,255,255,.72);}

.searchbar{flex:1;display:flex;align-items:stretch;background:#fff;
  border:2px solid var(--pink-500);border-radius:999px;overflow:hidden;height:46px;
  max-width:600px;min-width:0;}
.search-cat{border:none;background:var(--pink-50);color:var(--pink-700);font-weight:700;
  font-size:13px;padding:0 12px;font-family:inherit;cursor:pointer;}
.search-input{flex:1;border:none;padding:0 16px;font-size:14.5px;color:var(--ink);
  background:transparent;min-width:0;}
.search-btn{width:54px;background:var(--pink-500);display:flex;align-items:center;
  justify-content:center;color:#fff;flex-shrink:0;}
.search-btn:hover{background:var(--pink-600);}

.hd-actions{display:flex;align-items:center;gap:16px;flex-shrink:0;}
.icon-btn{display:flex;flex-direction:column;align-items:center;gap:3px;
  color:var(--ink-2);font-size:11.5px;font-weight:600;position:relative;}
.icon-btn:hover{color:var(--pink-500);}
.icon-btn i{font-size:18px;}
.badge-dot{position:absolute;top:-5px;right:-7px;background:var(--pink-500);color:#fff;
  font-size:9px;font-weight:700;min-width:15px;height:15px;border-radius:8px;
  display:none;align-items:center;justify-content:center;padding:0 3px;}
.seller-btn{background:var(--ink);color:#fff;padding:11px 16px;border-radius:8px;
  font-weight:700;font-size:13px;display:flex;align-items:center;gap:6px;white-space:nowrap;}
.seller-btn:hover{background:var(--pink-700);}

.cats{display:flex;gap:7px;padding:14px 0 12px;overflow-x:auto;-webkit-overflow-scrolling:touch;}
.cats::-webkit-scrollbar{display:none;}
.cat{padding:7px 13px;border-radius:999px;background:#fff;border:1px solid var(--line);
  color:var(--ink-2);font-weight:600;font-size:12.5px;white-space:nowrap;flex-shrink:0;}
.cat:hover{border-color:var(--pink-400);color:var(--pink-500);}
.cat.on{background:var(--pink-500);border-color:var(--pink-500);color:#fff;}

/* ===================== 페이지 컨테이너 ===================== */
.page{max-width:1180px;margin:0 auto;padding:0 24px;}

/* ===================== 상품 카드 (전역) ===================== */
.grid{display:grid;gap:16px;grid-template-columns:repeat(4,1fr);padding-bottom:6px;}
.pcard{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;
  position:relative;display:block;transition:transform .14s,box-shadow .14s;}
.pcard:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(80,20,40,.10);}
.pcard .thumb{aspect-ratio:1;position:relative;overflow:hidden;display:flex;
  align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--pink-50),#F6E2EC);}
.pcard .thumb img{width:100%;height:100%;object-fit:cover;}
.pcard .thumb .emoji{font-size:54px;}
.pcard.blue   .thumb{background:linear-gradient(135deg,#E7EDD8,#C5D5A0);}
.pcard.yellow .thumb{background:linear-gradient(135deg,#F6EBD0,#E8D49E);}
.pcard .stripes{position:absolute;inset:0;
  background:repeating-linear-gradient(45deg,transparent 0 12px,rgba(255,255,255,.45) 12px 13px);}
.pcard .card-tags{position:absolute;top:10px;left:10px;display:flex;gap:5px;flex-wrap:wrap;}
.pcard .card-tag{background:rgba(255,255,255,.95);padding:4px 8px;border-radius:6px;
  font-size:10.5px;font-weight:700;color:var(--pink-700);}
.pcard .card-fave{position:absolute;top:8px;right:8px;width:30px;height:30px;border-radius:50%;
  background:rgba(255,255,255,.92);display:flex;align-items:center;justify-content:center;
  color:var(--muted);}
.pcard .card-fave:hover{color:var(--pink-500);}
.pcard .pbody{padding:13px 14px 15px;display:flex;flex-direction:column;}
.pcard .card-farmer{display:flex;align-items:center;gap:7px;margin-bottom:7px;
  font-size:11.5px;color:var(--muted);}
.pcard .card-farmer .av{width:21px;height:21px;border-radius:50%;background:var(--pink-500);
  color:#fff;display:flex;align-items:center;justify-content:center;font-size:10.5px;
  font-weight:800;flex-shrink:0;overflow:hidden;}
.pcard .card-farmer .av img{width:100%;height:100%;object-fit:cover;}
.pcard .card-farmer b{color:var(--ink-2);font-weight:700;}
.pcard .card-farmer .dot{color:var(--line);}
.pcard .card-name{font-size:13.5px;font-weight:700;line-height:1.4;margin-bottom:6px;
  letter-spacing:-.01em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;min-height:38px;}
.pcard .card-region{font-size:11.5px;color:var(--muted);margin-bottom:9px;}
.pcard .card-price{display:flex;align-items:baseline;gap:7px;}
.pcard .card-disc{color:var(--pink-500);font-weight:800;font-size:13px;}
.pcard .card-old{color:var(--muted);font-size:11.5px;text-decoration:line-through;}
.pcard .card-now{font-size:19px;font-weight:900;color:var(--ink);letter-spacing:-.02em;}
.pcard .card-unit{font-size:11.5px;color:var(--muted);margin-left:3px;}
.pcard .card-foot{margin-top:9px;display:flex;justify-content:space-between;
  font-size:11px;color:var(--muted);}
.pcard .card-foot .stars{color:var(--gold);}
.pcard .card-foot b{color:var(--ink-2);font-weight:700;}

/* ===================== 섹션 헤더 (레거시 — search 등) ===================== */
.sec-head{display:flex;align-items:baseline;justify-content:space-between;margin:24px 0 14px;}
.sec-head h2{font-size:19px;font-weight:800;letter-spacing:-.3px;}
.sec-head h2 .bar{display:inline-block;width:4px;height:17px;background:var(--pink-500);
  border-radius:2px;margin-right:8px;vertical-align:-2px;}
.sec-head .more{font-size:13px;color:var(--muted);font-weight:600;}

/* ===================== 안내 박스 ===================== */
.notice{background:var(--gold-soft);border:1px solid #E8D49E;border-radius:12px;
  padding:11px 15px;font-size:13px;color:#8E6A1F;margin:14px 0;}

/* ===================== 빈 상태 ===================== */
.empty{text-align:center;padding:54px 20px;color:var(--muted);}
.empty .ei{font-size:44px;margin-bottom:12px;}
.empty .et{font-size:15px;font-weight:700;color:var(--ink-2);margin-bottom:6px;}
.empty .es{font-size:13px;}

/* ===================== 버튼 ===================== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;
  padding:12px 20px;border-radius:10px;font-size:14px;font-weight:700;}
.btn-pink{background:var(--pink-500);color:#fff;}
.btn-pink:hover{background:var(--pink-600);}
.btn-blue{background:var(--blue);color:#fff;}
.btn-blue:hover{background:var(--blue-d);}
.btn-line{background:#fff;color:var(--ink-2);border:1px solid var(--line);}
.btn-line:hover{border-color:var(--muted);}

/* ===================== 폼 공통 ===================== */
.field{margin-bottom:15px;}
.field label{display:block;font-size:13px;font-weight:700;margin-bottom:7px;}
.field label .req{color:var(--pink-500);}
.field input,.field textarea,.field select{width:100%;padding:12px 14px;
  border:1px solid var(--line);border-radius:10px;font-size:14.5px;font-family:inherit;
  background:#FCFCFD;}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--pink-500);background:#fff;}
.field textarea{resize:vertical;min-height:90px;line-height:1.6;}

/* ===================== 푸터 ===================== */
.nmfoot{margin-top:70px;background:#1A0E13;color:#A89098;padding:42px 0 28px;}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:30px;margin-bottom:30px;}
.foot-logo{color:#fff;font-weight:900;font-size:21px;margin-bottom:11px;}
.foot-logo .dot{color:var(--pink-500);}
.foot-desc{font-size:12px;line-height:1.7;color:#7A6770;}
.foot-h{color:#fff;font-weight:700;font-size:13px;margin-bottom:12px;}
.foot-list{display:flex;flex-direction:column;gap:7px;font-size:12px;}
.foot-list a:hover{color:#fff;}
.foot-biz{padding-top:20px;border-top:1px solid #2D1A22;display:flex;
  flex-wrap:wrap;gap:8px;align-items:center;font-size:11.5px;color:#8A737E;
  line-height:1.7;}
.foot-biz b{color:#C7B2BC;font-weight:600;}
.foot-biz .sep{color:#3E2A33;}
.foot-bot{padding-top:14px;display:flex;
  justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:11px;color:#5C4651;}
.foot-bot b{color:#8A737E;font-weight:700;}

/* ============================================================
   메인 페이지 전용 (.nm-home 스코프)
   ============================================================ */
.nm-home section{margin-top:42px;}
.nm-home .sec-head{display:flex;align-items:flex-end;justify-content:space-between;
  margin:0 0 18px;gap:18px;}
.nm-home .sec-title{display:flex;align-items:center;gap:11px;flex-wrap:wrap;}
.nm-home .sec-title .bar{width:5px;height:24px;background:var(--pink-500);border-radius:3px;}
.nm-home .sec-title h2{font-size:22px;font-weight:800;letter-spacing:-.02em;}
.nm-home .sec-title .sub{color:var(--muted);font-size:12.5px;font-weight:500;}
.nm-home .sec-more{color:var(--ink-2);font-size:12.5px;font-weight:600;white-space:nowrap;}
.nm-home .sec-more:hover{color:var(--pink-500);}

/* ----- 히어로 (컴팩트: 기존 대비 약 1/2 높이) ----- */
.nm-home .hero{margin-top:20px;background:var(--grad);border-radius:18px;
  padding:24px 28px;color:#fff;position:relative;overflow:hidden;
  display:grid;grid-template-columns:1.55fr 1fr;gap:24px;}
.nm-home .hero::before{content:'';position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(circle at 88% 18%,rgba(255,255,255,.18),transparent 42%),
             radial-gradient(circle at 8% 112%,rgba(255,255,255,.12),transparent 52%);}
.nm-home .hero-main{position:relative;z-index:2;}
.nm-home .hero-tag{display:inline-flex;align-items:center;gap:7px;
  background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.25);
  padding:6px 12px;border-radius:999px;font-size:11.5px;font-weight:600;margin-bottom:12px;}
.nm-home .hero-tag .live{width:6px;height:6px;border-radius:50%;background:#E91E63;
  animation:heroLiveBlink 1.5s ease-in-out infinite;}
@keyframes heroLiveBlink{
  0%,100%{opacity:.4;background:#F8BBD0;box-shadow:0 0 2px rgba(233,30,99,.25);}
  50%{opacity:1;background:#E91E63;box-shadow:0 0 9px 2px rgba(233,30,99,.9);}
}
.nm-home .hero h1{font-size:28px;line-height:1.26;font-weight:900;letter-spacing:-.02em;
  margin-bottom:9px;}
/* 히어로 하이라이트 — 손칠한 듯 연한 노란 형광이 왼쪽부터 칠해졌다가(발생)
   쉬머가 한 번 스치고 오른쪽으로 지워지는(소멸) 사이클 */
.nm-home .hero h1 .hl{
  color:#fff; font-weight:900; padding:.04em .16em;
  border-radius:7px 10px 8px 11px;
  -webkit-box-decoration-break:clone; box-decoration-break:clone;
  background-image:
    linear-gradient(112deg, transparent 40%,
      rgba(255,255,255,.55) 47%, rgba(255,244,176,.78) 52%,
      transparent 61%),
    linear-gradient(178deg, transparent 12%,
      rgba(255,216,86,.28) 22%, rgba(255,206,64,.50) 42%,
      rgba(255,206,64,.50) 70%, rgba(255,216,86,.28) 82%,
      transparent 92%);
  background-size:220% 100%, 0% 100%;
  background-position:135% 0, 0 0;
  background-repeat:no-repeat;
  animation:hlShimmer 5.6s ease-in-out infinite;
}
@keyframes hlShimmer{
  /* 노랑 형광 왼→오로 칠해짐 (발생) */
  0%       { background-size:220% 100%, 0% 100%;   background-position:135% 0, 0 0; }
  16%,24%  { background-size:220% 100%, 100% 100%; background-position:135% 0, 0 0; }
  /* 쉬머 빛줄기 한 번 스침 */
  60%      { background-size:220% 100%, 100% 100%; background-position:-45% 0, 100% 0; }
  72%      { background-size:220% 100%, 100% 100%; background-position:-45% 0, 100% 0; }
  /* 오른쪽으로 지워짐 (소멸) 후 잠시 쉼 */
  90%,100% { background-size:220% 100%, 0% 100%;   background-position:-45% 0, 100% 0; }
}
@media (prefers-reduced-motion:reduce){
  .nm-home .hero h1 .hl{animation:none;
    background-size:220% 100%, 100% 100%; background-position:135% 0, 0 0;}
}
.nm-home .hero p{font-size:13px;opacity:.93;margin-bottom:14px;max-width:520px;}
.nm-home .hero-chips{display:flex;flex-wrap:wrap;gap:7px;}
.nm-home .hero-chip{display:inline-flex;align-items:center;gap:5px;
  background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.25);
  padding:6px 11px;border-radius:999px;font-size:11.5px;font-weight:600;}
.nm-home .hero-stats{position:relative;z-index:2;background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.22);border-radius:14px;padding:16px 18px;
  display:flex;flex-direction:column;gap:11px;}
.nm-home .hero-stats-title{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;
  color:rgba(255,255,255,.7);font-weight:700;}
.nm-home .stat-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;}
.nm-home .stat-num{font-weight:900;font-size:24px;line-height:1;color:#FFF176;}
.nm-home .stat-num small{font-size:12px;color:#fff;margin-left:3px;font-weight:600;}
.nm-home .stat-cap{font-size:11px;color:rgba(255,255,255,.72);margin-top:2px;}
.nm-home .stat-label{font-size:11px;color:rgba(255,255,255,.85);text-align:right;}
.nm-home .stat-label b{color:#FFF176;}
.nm-home .stat-divider{height:1px;background:rgba(255,255,255,.18);}

/* ----- 오늘의 농수산물 — 반 크기 카드 가로 레일 ----- */
.nm-home .prod-rail{display:grid;grid-auto-flow:column;grid-auto-columns:168px;
  gap:12px;overflow-x:auto;padding:2px 2px 10px;
  -webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;scrollbar-width:thin;}
.nm-home .prod-rail::-webkit-scrollbar{height:6px;}
.nm-home .prod-rail::-webkit-scrollbar-thumb{background:var(--pink-200);border-radius:3px;}
.nm-home .prod-rail .pcard{scroll-snap-align:start;}
.nm-home .prod-rail .pcard .pbody{padding:9px 10px 11px;}
.nm-home .prod-rail .pcard .card-farmer{font-size:10px;gap:5px;margin-bottom:5px;
  overflow:hidden;white-space:nowrap;}
.nm-home .prod-rail .pcard .card-farmer .av{width:16px;height:16px;font-size:9px;}
.nm-home .prod-rail .pcard .card-name{font-size:12px;min-height:34px;margin-bottom:4px;}
.nm-home .prod-rail .pcard .card-region{font-size:10.5px;margin-bottom:6px;}
.nm-home .prod-rail .pcard .card-now{font-size:15px;}
.nm-home .prod-rail .pcard .card-unit{font-size:10.5px;}
.nm-home .prod-rail .pcard .card-foot{font-size:10px;margin-top:7px;}
.nm-home .prod-rail .pcard .thumb .emoji{font-size:40px;}

/* ----- 실시간 티커 ----- */
.nm-home .ticker{margin-top:16px;background:#fff;border:1px solid var(--line);
  border-radius:13px;padding:12px 20px;display:flex;align-items:center;gap:16px;overflow:hidden;}
.nm-home .ticker-label{flex-shrink:0;display:inline-flex;align-items:center;gap:7px;
  color:var(--pink-700);font-weight:700;font-size:12.5px;padding-right:16px;
  border-right:1px solid var(--line);}
.nm-home .ticker-label::before{content:'';width:7px;height:7px;border-radius:50%;
  background:var(--pink-500);animation:pulse 1.6s infinite;}
.nm-home .ticker-track{flex:1;overflow:hidden;
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);}
.nm-home .ticker-rail{display:flex;gap:34px;white-space:nowrap;animation:slide 36s linear infinite;}
@keyframes slide{to{transform:translateX(-50%)}}
.nm-home .ticker-item{font-size:12.5px;color:var(--ink-2);}
.nm-home .ticker-item b{color:var(--pink-600);font-weight:700;}
.nm-home .ticker-item .time{color:var(--muted);margin-right:7px;
  font-family:'JetBrains Mono',monospace;font-size:11.5px;}

/* ----- 오늘의 농부 ----- */
.nm-home .spotlight{background:#fff;border:1px solid var(--line);border-radius:18px;
  overflow:hidden;display:grid;grid-template-columns:1.05fr 1fr 1fr;}
.nm-home .spot-photo{position:relative;background:linear-gradient(135deg,#E7EDD8,#D9C9A8);
  min-height:300px;}
.nm-home .spot-photo .stripes{position:absolute;inset:0;
  background:repeating-linear-gradient(45deg,transparent 0 14px,rgba(255,255,255,.25) 14px 15px);}
.nm-home .spot-photo-label{position:absolute;left:16px;top:16px;
  font-family:'JetBrains Mono',monospace;font-size:10.5px;color:var(--ink-2);
  background:rgba(255,255,255,.85);padding:5px 9px;border-radius:6px;}
.nm-home .spot-tag{position:absolute;left:16px;bottom:16px;background:#fff;border-radius:999px;
  padding:7px 13px;display:inline-flex;align-items:center;gap:7px;font-size:12.5px;
  font-weight:700;color:var(--pink-700);box-shadow:0 4px 14px rgba(80,20,40,.12);}
.nm-home .spot-tag .num{background:var(--pink-500);color:#fff;font-size:10.5px;
  padding:2px 7px;border-radius:6px;}
.nm-home .spot-body{padding:26px 24px;display:flex;flex-direction:column;gap:14px;
  border-right:1px dashed var(--line);}
.nm-home .spot-eyebrow{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--pink-600);font-weight:700;}
.nm-home .spot-name{font-family:'Noto Serif KR',serif;font-weight:900;font-size:21px;
  line-height:1.3;letter-spacing:-.01em;}
.nm-home .spot-meta{display:flex;flex-wrap:wrap;gap:6px;}
.nm-home .spot-meta .pill{background:var(--cream-2);padding:5px 10px;border-radius:999px;
  font-size:11.5px;color:var(--ink-2);font-weight:600;}
.nm-home .spot-quote{font-family:'Noto Serif KR',serif;font-weight:500;color:var(--ink-2);
  font-size:13.5px;line-height:1.7;padding-left:13px;border-left:3px solid var(--pink-200);}
/* 안내문 옆 인라인 신청 버튼 — 컴팩트(글자에 딱 맞게), 클릭 시 판매자센터로 */
.nm-home .spot-apply-btn{display:inline-flex;align-items:center;gap:4px;
  background:var(--pink-500);color:#fff;font-family:'Pretendard Variable','Pretendard',sans-serif;
  font-size:11.5px;font-weight:700;line-height:1;padding:5px 11px;border-radius:999px;
  white-space:nowrap;transition:background .14s;vertical-align:middle;margin-left:2px;}
.nm-home .spot-apply-btn:hover{background:var(--pink-600);}
/* 오늘의 농부 '예시' 상태 — 사진+소개 2단 (우측 신청 칼럼 제거) */
.nm-home .spotlight.intro{grid-template-columns:1.05fr 1.35fr;}
.nm-home .spotlight.intro .spot-body{border-right:none;}
.nm-home .spot-stats{display:flex;gap:16px;margin-top:auto;}
.nm-home .ss{flex:1;}
.nm-home .ss-num{font-weight:800;font-size:18px;color:var(--ink);}
.nm-home .ss-num.pink{color:var(--pink-600);}
.nm-home .ss-lab{font-size:11px;color:var(--muted);}
.nm-home .spot-products{padding:24px;display:flex;flex-direction:column;gap:9px;}
.nm-home .spot-products-head{font-size:11px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted);font-weight:700;margin-bottom:3px;}
.nm-home .sp-item{display:flex;gap:11px;align-items:center;padding:9px;border-radius:10px;
  border:1px solid transparent;}
.nm-home .sp-item:hover{border-color:var(--pink-100);background:var(--pink-50);}
.nm-home .sp-thumb{width:50px;height:50px;border-radius:9px;flex-shrink:0;display:flex;
  align-items:center;justify-content:center;font-family:'JetBrains Mono',monospace;
  font-size:9px;color:#B83A6C;text-align:center;
  background:repeating-linear-gradient(45deg,#FFE0EB 0 8px,#FFD2DD 8px 9px);}
.nm-home .sp-name{font-weight:700;font-size:12.5px;margin-bottom:3px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.nm-home .sp-price{font-size:12.5px;color:var(--pink-600);font-weight:800;}
.nm-home .sp-price s{color:var(--muted);font-weight:500;margin-right:5px;font-size:11px;}
/* 오늘의 농부 — 농부 대표사진 + 상품 드래그 스크롤 */
.nm-home .spot-photo-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.nm-home .sp-scroll{display:flex;flex-direction:column;gap:8px;max-height:296px;
  overflow-y:auto;scrollbar-width:thin;cursor:grab;
  -webkit-overflow-scrolling:touch;}
.nm-home .sp-scroll.dragging{cursor:grabbing;user-select:none;}
.nm-home .sp-scroll::-webkit-scrollbar{width:5px;}
.nm-home .sp-scroll::-webkit-scrollbar-thumb{background:var(--pink-200);border-radius:3px;}
.nm-home .sp-scroll-hint{font-size:10.5px;color:var(--muted);text-align:center;
  margin-top:7px;font-weight:600;}

/* ----- 수확 신선도 미터 ----- */
.nm-home .freshness{display:flex;align-items:center;gap:6px;margin-top:9px;padding:5px 9px;
  background:var(--green-soft);border-radius:8px;font-size:10.5px;color:var(--green);font-weight:700;}
.nm-home .freshness .fbar{flex:1;height:4px;background:#fff;border-radius:2px;overflow:hidden;}
.nm-home .freshness .ffill{height:100%;background:var(--green);border-radius:2px;}

/* ----- 카테고리 타일 ----- */
.nm-home .tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;}
.nm-home .tile{background:#fff;border:1px solid var(--line);border-radius:15px;
  padding:20px 14px;text-align:center;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease;}
.nm-home .tile:hover{border-color:var(--pink-400);background:var(--pink-50);
  transform:translateY(-4px);box-shadow:0 10px 22px rgba(214,51,108,.16);}
.nm-home .tile-img{width:58px;height:58px;border-radius:50%;margin:0 auto 10px;display:flex;
  align-items:center;justify-content:center;font-size:27px;
  transition:transform .18s ease;box-shadow:0 3px 9px rgba(0,0,0,.07);}
.nm-home .tile:hover .tile-img{transform:scale(1.12) rotate(-4deg);}
.nm-home .tile-name{font-weight:800;font-size:13.5px;margin-bottom:2px;}
.nm-home .tile:hover .tile-name{color:var(--pink-600);}
.nm-home .tile-count{font-size:11px;color:var(--muted);font-family:'JetBrains Mono',monospace;}

/* ----- 카테고리 숫자 뱃지 (헤더 .cats) ----- */
.cat-count{display:inline-flex;align-items:center;justify-content:center;margin-left:5px;
  background:rgba(0,0,0,.07);color:var(--muted);font-size:10.5px;font-weight:700;
  padding:1px 6px;border-radius:999px;}
.cat.on .cat-count{background:rgba(255,255,255,.25);color:#fff;}
.cat-filter{margin-left:auto;border-color:var(--pink-200);color:var(--pink-600);
  font-weight:700;flex-shrink:0;}
.cat-filter:hover{background:var(--pink-50);border-color:var(--pink-400);}
.cat-filter i{font-size:11px;margin-right:2px;}

/* ----- 상품카드 할인 표기 ----- */
.pcard .card-disc-row{display:flex;align-items:center;gap:6px;margin-bottom:1px;}

/* ----- 제철 달력 (컴팩트) ----- */
.nm-home .seasons{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px 22px;}
.nm-home .season-now{display:inline-flex;align-items:center;gap:7px;background:var(--pink-50);
  padding:7px 13px;border-radius:12px;font-size:12px;font-weight:700;color:var(--pink-700);
  margin-bottom:14px;line-height:1.5;flex-wrap:wrap;}
/* 제철 절정 추천 — 은은한 글로우 반짝임 */
@keyframes nmSeasonGlow{
  0%,100%{box-shadow:0 0 0 0 rgba(233,30,99,0);}
  50%{box-shadow:0 0 0 5px rgba(233,30,99,.13);}
}
.nm-home .season-now.glow{animation:nmSeasonGlow 2.6s ease-in-out infinite;}
.nm-home .season-pick-link{color:var(--pink-700);font-weight:800;text-decoration:none;
  transition:color .15s;}
.nm-home .season-pick-link:hover{color:var(--pink-500);}
.nm-home .cal-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.nm-home .cal-grid{display:grid;grid-template-columns:138px repeat(12,1fr);gap:2px 2px;
  align-items:center;min-width:660px;}
.nm-home .cal-month{text-align:center;font-size:10px;font-weight:700;color:var(--muted);
  padding:3px 0;font-family:'JetBrains Mono',monospace;}
/* 현재 월 헤더 — 링 확산 + 살짝 확대(강조 펄스) */
@keyframes nmMonthPulse{
  0%{box-shadow:0 0 0 0 rgba(233,30,99,.5);transform:scale(1);}
  70%{box-shadow:0 0 0 7px rgba(233,30,99,0);transform:scale(1.14);}
  100%{box-shadow:0 0 0 0 rgba(233,30,99,0);transform:scale(1);}
}
.nm-home .cal-month.curr{color:#fff;background:var(--pink-500);border-radius:5px;
  font-weight:800;position:relative;z-index:1;
  animation:nmMonthPulse 1.9s ease-out infinite;}
/* 이번 달 열 셀 — 은은하게 숨쉬는 강조(제철 절정 셀이 반짝) */
@keyframes nmCellNowPulse{
  0%,100%{box-shadow:inset 0 0 0 1.5px var(--pink-400),0 0 0 0 rgba(233,30,99,0);}
  50%{box-shadow:inset 0 0 0 1.5px var(--pink-500),0 0 7px 1px rgba(233,30,99,.55);}
}
@keyframes nmCellNowPulseSea{
  0%,100%{box-shadow:inset 0 0 0 1.5px #2C9CCB,0 0 0 0 rgba(44,156,203,0);}
  50%{box-shadow:inset 0 0 0 1.5px #1E7AA8,0 0 7px 1px rgba(44,156,203,.55);}
}
.nm-home .cal-row{display:contents;}
.nm-home .cal-row .label{padding:4px 6px 4px 4px;font-weight:700;font-size:11.5px;color:var(--ink-2);
  display:flex;align-items:center;gap:5px;white-space:nowrap;border-radius:7px;
  transition:background .14s;}
.nm-home .cal-row .label .em{font-size:14px;}
.nm-home .cal-row .label .nm{flex:1;overflow:hidden;text-overflow:ellipsis;}
.nm-home .cal-row .label .ktag{font-size:9px;font-weight:800;padding:1px 5px;border-radius:6px;
  background:#EDE6E0;color:#8A7B72;flex-shrink:0;}
.nm-home .cal-row.kind-수 .label .ktag{background:#DCEFF8;color:#1E7AA8;}
.nm-home .cal-row.kind-축 .label .ktag{background:#F6E0DC;color:#B85C50;}
/* 실제 판매상품 있는 품목 — DB 반영 뱃지 */
.nm-home .cal-row .label .ktag.sale{background:#E3F4E5;color:#2F9E44;}
/* 이번 달 제철 절정 품목 — 라벨에 은은한 배경 + 빛이 스치는 쉬머 + 숨쉬는 펄스 */
@keyframes nmLabelShimmer{
  0%{background-position:-140% 0,0 0;}
  60%,100%{background-position:240% 0,0 0;}
}
@keyframes nmLabelPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(233,30,99,0);}
  50%{box-shadow:0 0 9px 0 rgba(233,30,99,.28);}
}
.nm-home .cal-row.hl .label{color:var(--pink-600);border-radius:7px;
  background-image:
    linear-gradient(100deg, transparent 34%, rgba(255,255,255,.6) 50%, transparent 66%),
    linear-gradient(90deg, rgba(233,30,99,.13), rgba(233,30,99,.03));
  background-size:200% 100%, 100% 100%;background-repeat:no-repeat;
  animation:nmLabelShimmer 3.4s ease-in-out infinite,
            nmLabelPulse 2.4s ease-in-out infinite;}
@keyframes nmLabelPulseSea{
  0%,100%{box-shadow:0 0 0 0 rgba(44,156,203,0);}
  50%{box-shadow:0 0 9px 0 rgba(44,156,203,.3);}
}
.nm-home .cal-row.kind-수.hl .label{color:#1E7AA8;
  background-image:
    linear-gradient(100deg, transparent 34%, rgba(255,255,255,.6) 50%, transparent 66%),
    linear-gradient(90deg, rgba(44,156,203,.14), rgba(44,156,203,.03));
  animation:nmLabelShimmer 3.4s ease-in-out infinite,
            nmLabelPulseSea 2.4s ease-in-out infinite;}
@media (prefers-reduced-motion:reduce){
  .nm-home .cal-row.hl .label{animation:none;background-position:0 0,0 0;}
}
/* 이번 달 제철 절정 품목 — 이모지가 살랑이며 제철임을 알림 (행마다 시차) */
@keyframes nmSeasonSway{
  0%,100%{transform:rotate(0) scale(1);}
  30%{transform:rotate(-10deg) scale(1.18);}
  62%{transform:rotate(8deg) scale(1.1);}
}
.nm-home .cal-row.hl .label .em{display:inline-block;transform-origin:50% 80%;
  animation:nmSeasonSway 2.8s ease-in-out infinite;
  animation-delay:var(--wd,0s);}
@media (prefers-reduced-motion:reduce){
  .nm-home .cal-row.hl .label .em{animation:none;}
  .nm-home .cal-row.hl .label{animation:none;}
}
/* 행 전체 호버 강조 */
.nm-home .cal-row .label:hover{background:var(--pink-50);}
/* 월 접미사 '월' — 넓게 표시되는 해당 월 ±1 에만 노출 */
.nm-home .cal-month .mw{display:none;}
/* 라벨 축약명 — 기본은 전체명, 좁은 화면에서 축약명으로 교체 */
.nm-home .cal-row .label .nm-short{display:none;}
/* 펼쳐보기 — 기본 20줄 외(more) 행은 숨김, expanded 시 순차 페이드로 전개 */
.nm-home .cal-grid:not(.expanded) .cal-row.more > *{display:none;}
@keyframes nmRowIn{from{opacity:0;transform:translateY(-7px);}to{opacity:1;transform:translateY(0);}}
.nm-home .cal-grid.expanded .cal-row.more > *{animation:nmRowIn .42s ease both;
  animation-delay:var(--rd,0s);}
.nm-home .cal-more-btn{display:block;width:100%;margin-top:12px;padding:10px;
  background:var(--pink-50);border:1px solid var(--pink-100);border-radius:10px;
  color:var(--pink-600);font-size:12.5px;font-weight:800;font-family:inherit;cursor:pointer;
  transition:background .14s;}
.nm-home .cal-more-btn:hover{background:var(--pink-100);}
.nm-home .cal-more-btn i{font-size:10px;margin-left:3px;}
.nm-home .cal-cell{height:16px;background:var(--cream-2);border-radius:2px;transition:transform .12s;}
.nm-home .cal-cell.bar{background:var(--pink-100);}
.nm-home .cal-cell.peak{background:var(--pink-500);}
/* 수산물은 제철 셀을 바다색으로 구분 */
.nm-home .cal-row.kind-수 .cal-cell.bar{background:#BFE3F2;}
.nm-home .cal-row.kind-수 .cal-cell.peak{background:#2C9CCB;}
.nm-home .cal-cell.now{box-shadow:inset 0 0 0 1.5px var(--pink-400);position:relative;z-index:1;}
.nm-home .cal-row.kind-수 .cal-cell.now{box-shadow:inset 0 0 0 1.5px #2C9CCB;}
/* 이번 달인데 '제철 절정(peak)'인 셀만 숨쉬듯 반짝여 강조 */
.nm-home .cal-cell.now.peak{animation:nmCellNowPulse 1.9s ease-in-out infinite;}
.nm-home .cal-row.kind-수 .cal-cell.now.peak{animation:nmCellNowPulseSea 1.9s ease-in-out infinite;}
@media (prefers-reduced-motion:reduce){
  .nm-home .cal-month.curr,.nm-home .cal-cell.now.peak{animation:none;}
}
.nm-home .cal-legend{display:flex;gap:14px;margin-top:12px;font-size:11px;color:var(--muted);
  justify-content:flex-end;flex-wrap:wrap;}
.nm-home .cal-legend i{display:inline-block;width:12px;height:8px;border-radius:2px;
  vertical-align:middle;margin-right:3px;}

/* ----- 산지에서 바로 (한반도 지도) ----- */
/* 지도 열을 좁혀 섹션 높이를 낮추고, 리스트는 지도 높이에 맞춰 여백 없이 채움.
   min-width:0 — 좁은 폭(사파리)에서 내용 최소폭 때문에 두 칼럼이 겹치는 것 방지 */
.nm-home .regions{display:grid;grid-template-columns:0.82fr 1.18fr;gap:22px;background:#fff;
  border:1px solid var(--line);border-radius:18px;padding:24px;}
.nm-home .regions > *{min-width:0;}
.nm-home .region-side{display:flex;flex-direction:column;min-height:100%;}
.nm-home .region-list{min-width:0;}
.nm-home .map-wrap{position:relative;aspect-ratio:.82;background:#BFE3F2;
  border-radius:13px;overflow:visible;max-width:380px;max-height:460px;margin:0 auto;}
/* 바다 물결이 둥근 모서리 밖으로 새지 않도록 SVG만 클립 */
.nm-home .map-svg{border-radius:13px;overflow:hidden;}
.nm-home .map-svg{width:100%;height:100%;display:block;border-radius:13px;}
/* 육지 — 녹색 지형 / 바다 — 파란 배경 + 흐르는 물결 */
.nm-home .korea-land{fill:url(#landGrad);stroke:#7BA24E;stroke-width:1.4;stroke-linejoin:round;}
.nm-home .korea-shadow{fill:#5E7A46;}
.nm-home .korea-island{fill:url(#landGrad);stroke:#7BA24E;stroke-width:1.3;}
.nm-home .korea-label{font-size:9px;fill:#41632E;font-weight:700;}
/* 유선형 물결 — 파장 120px 곡선이 같은 방향으로 서로 다른 속도로 흘러감 */
.nm-home .sea-flow .flow{opacity:var(--fo,.18);
  animation:nmSeaFlow var(--fs,20s) linear infinite;will-change:transform;}
@keyframes nmSeaFlow{from{transform:translateX(0);}to{transform:translateX(120px);}}
@media (prefers-reduced-motion:reduce){
  .nm-home .sea-flow .flow{animation:none;}
}
.nm-home .map-pin{position:absolute;transform:translate(-50%,-50%);cursor:pointer;z-index:2;}
.nm-home .map-pin:hover,.nm-home .map-pin.active{z-index:9;}
.nm-home .map-pin .dot{display:block;width:12px;height:12px;border-radius:50%;
  background:var(--pink-500);border:2.5px solid #fff;box-shadow:0 2px 6px rgba(80,20,40,.28);
  transition:transform .18s;}
.nm-home .map-pin.big .dot{width:16px;height:16px;background:var(--pink-600);}
.nm-home .map-pin .dot-ring{position:absolute;left:50%;top:50%;width:34px;height:34px;
  border-radius:50%;background:radial-gradient(circle,rgba(233,30,99,.18),rgba(233,30,99,0) 70%);
  transform:translate(-50%,-50%) scale(.4);opacity:0;transition:all .22s;pointer-events:none;}
.nm-home .map-pin:hover .dot,.nm-home .map-pin.active .dot{transform:scale(1.3);}
.nm-home .map-pin:hover .dot-ring,.nm-home .map-pin.active .dot-ring{opacity:1;
  transform:translate(-50%,-50%) scale(1);}
.nm-home .map-pin .lab-mini{position:absolute;left:50%;top:calc(100% + 5px);
  transform:translateX(-50%);background:#fff;padding:2px 7px;border-radius:5px;font-size:10px;
  font-weight:700;color:var(--ink);box-shadow:0 1px 4px rgba(0,0,0,.12);white-space:nowrap;
  pointer-events:none;transition:opacity .15s;}
.nm-home .map-pin:hover .lab-mini,.nm-home .map-pin.active .lab-mini{opacity:0;}
.nm-home .map-tip{position:absolute;left:50%;bottom:calc(100% + 12px);
  transform:translateX(-50%) translateY(6px);width:204px;background:#fff;border-radius:13px;
  box-shadow:0 14px 36px rgba(80,20,40,.18);padding:13px 14px;opacity:0;visibility:hidden;
  transition:opacity .18s,transform .18s,visibility .18s;z-index:10;pointer-events:none;text-align:left;}
/* 툴팁은 핀에 직접 호버했을 때만 — 리스트 호버(.active)는 핀 강조만 (한 지역에
   핀이 여러 개일 때 툴팁이 겹쳐 뜨는 것 방지) */
.nm-home .map-pin:hover .map-tip{opacity:1;visibility:visible;
  transform:translateX(-50%) translateY(0);pointer-events:auto;}
.nm-home .map-tip::after{content:'';position:absolute;left:50%;top:100%;
  transform:translateX(-50%);border:7px solid transparent;border-top-color:#fff;}
.nm-home .map-pin.below .map-tip{bottom:auto;top:calc(100% + 12px);}
.nm-home .map-pin.below .map-tip::after{top:auto;bottom:100%;
  border-top-color:transparent;border-bottom-color:#fff;}
.nm-home .map-pin.left .map-tip{left:auto;right:calc(100% + 12px);bottom:50%;
  transform:translateY(50%) translateX(-6px);}
.nm-home .map-pin.left:hover .map-tip{
  transform:translateY(50%) translateX(0);}
.nm-home .map-pin.left .map-tip::after{left:100%;top:50%;transform:translateY(-50%);
  border:7px solid transparent;border-left-color:#fff;}
.nm-home .map-pin.right .map-tip{right:auto;left:calc(100% + 12px);bottom:50%;
  transform:translateY(50%) translateX(6px);}
.nm-home .map-pin.right:hover .map-tip{
  transform:translateY(50%) translateX(0);}
.nm-home .map-pin.right .map-tip::after{right:100%;left:auto;top:50%;
  transform:translateY(-50%);border:7px solid transparent;border-right-color:#fff;}
.nm-home .tip-region{font-size:14px;font-weight:800;color:var(--ink);}
.nm-home .tip-tagline{font-size:11px;color:var(--muted);margin:2px 0 8px;}
.nm-home .tip-specs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px;}
.nm-home .tip-spec{background:var(--pink-50);color:var(--pink-700);font-size:10.5px;
  font-weight:700;padding:3px 8px;border-radius:6px;}
.nm-home .tip-cta{display:flex;align-items:center;justify-content:space-between;
  padding-top:9px;border-top:1px solid var(--line);font-size:11.5px;font-weight:800;
  color:var(--pink-600);}
/* 범례 — 좌측 하단은 제주도를 가려서 좌측 상단으로 */
.nm-home .map-legend{position:absolute;left:10px;top:10px;display:flex;align-items:center;
  gap:6px;background:rgba(255,252,248,.92);padding:6px 10px;border-radius:8px;font-size:10.5px;
  color:var(--muted);font-weight:600;border:1px solid var(--line);}
.nm-home .map-legend .swatch{width:9px;height:9px;border-radius:50%;background:var(--pink-500);}
.nm-home .region-side-h{font-weight:800;font-size:15px;margin-bottom:3px;}
.nm-home .region-side-s{color:var(--muted);font-size:12px;margin-bottom:14px;line-height:1.5;}
/* 전국 제철 산지 — 2열, 세로(열) 흐름으로 채워 좌측이 1~5위·우측이 6~10위 */
.nm-home .region-list{display:grid;grid-template-columns:repeat(2,1fr);
  grid-template-rows:repeat(5,1fr);grid-auto-flow:column;
  gap:7px 9px;flex:1;}
.nm-home .region-row{display:flex;align-items:center;gap:9px;padding:8px 10px;
  border:1px solid var(--line);border-radius:10px;transition:all .14s;min-width:0;}
.nm-home .region-row:hover,.nm-home .region-row.active{border-color:var(--pink-500);
  background:var(--pink-50);transform:translateY(-1px);}
.nm-home .region-rank{width:20px;height:20px;border-radius:6px;background:var(--cream-2);
  color:var(--muted);font-family:'JetBrains Mono',monospace;font-size:10.5px;font-weight:700;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.nm-home .region-rank.top{background:var(--pink-500);color:#fff;}
.nm-home .region-row.active .region-rank{background:var(--pink-600);color:#fff;}
.nm-home .region-name{font-weight:700;flex:1;font-size:12.5px;min-width:0;
  overflow:hidden;}
/* 한 지역의 여러 제철 품목 — 칩으로 나란히 (각각 검색 링크) */
.nm-home .region-items{display:flex;flex-wrap:wrap;gap:2px 8px;margin-top:2px;}
.nm-home .region-item{font-size:10.5px;color:var(--muted);font-weight:600;
  white-space:nowrap;}
.nm-home .region-item:hover{color:var(--pink-600);text-decoration:underline;}
.nm-home .region-item b{color:#2F9E44;font-weight:800;}
/* 2열에선 '바로가기 →'는 공간 절약 위해 숨김(품목 칩이 링크) */
.nm-home .region-go{display:none;}

/* ----- 산지에서 바로: 월별 제철 품목 핀 (물결 리플 + 순차 등장) ----- */
.nm-home .map-pin.season{opacity:0;
  animation:nmPinIn .55s cubic-bezier(.2,.9,.3,1.35) forwards;
  animation-delay:var(--d,0s);}
@keyframes nmPinIn{
  from{opacity:0;transform:translate(-50%,-50%) scale(.2);}
  to{opacity:1;transform:translate(-50%,-50%) scale(1);}}
.nm-home .map-pin.season .pin-emoji{display:flex;align-items:center;justify-content:center;
  width:30px;height:30px;border-radius:50%;background:#fff;font-size:15px;
  border:2px solid var(--pink-200);box-shadow:0 3px 9px rgba(80,20,40,.18);
  transition:transform .16s;}
.nm-home .map-pin.season.big .pin-emoji{width:35px;height:35px;font-size:18px;
  border-color:var(--pink-400);}
.nm-home .map-pin.season.sea .pin-emoji{border-color:#8FCBE3;}
.nm-home .map-pin.season:hover .pin-emoji,
.nm-home .map-pin.season.active .pin-emoji{transform:scale(1.18);}
/* 상단띠 펄스점과 같은 결의 물결 링 — 두 겹이 시차를 두고 퍼짐 */
.nm-home .map-pin.season .ripple{position:absolute;left:50%;top:50%;
  width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;
  border:2px solid rgba(233,30,99,.5);opacity:0;pointer-events:none;
  animation:nmRipple 3s ease-out infinite;
  animation-delay:calc(var(--d,0s) + .3s);}
.nm-home .map-pin.season .ripple.r2{animation-delay:calc(var(--d,0s) + 1.8s);}
.nm-home .map-pin.season.sea .ripple{border-color:rgba(44,156,203,.55);}
@keyframes nmRipple{
  0%{transform:scale(.55);opacity:.8;}
  70%{opacity:.2;}
  100%{transform:scale(2.7);opacity:0;}}
/* 지도가 컴팩트해 항상표시 라벨이 서로 겹치므로 숨기고, 이름은 우측 리스트 +
   핀 호버 툴팁으로 안내(레퍼런스 지도처럼 이모지 핀만 깔끔하게 노출) */
.nm-home .map-pin.season .lab-mini{display:none;}
@media (prefers-reduced-motion:reduce){
  .nm-home .map-pin.season{animation:none;opacity:1;}
  .nm-home .map-pin.season .ripple{animation:none;}}
/* 핀 호버 — 추천상품 3~4개 미니 카드 */
.nm-home .map-tip{width:200px;}
.nm-home .tip-prods{display:flex;flex-direction:column;gap:4px;margin-bottom:9px;}
.nm-home .tip-prod{display:flex;align-items:center;gap:7px;padding:5px 6px;
  border-radius:8px;border:1px solid var(--line);}
.nm-home .tip-prod:hover{background:var(--pink-50);border-color:var(--pink-200);}
.nm-home .tip-prod img,.nm-home .tip-prod .tp-emo{width:26px;height:26px;
  border-radius:6px;object-fit:cover;flex-shrink:0;display:flex;align-items:center;
  justify-content:center;background:var(--cream-2);font-size:14px;}
.nm-home .tip-prod .tp-t{flex:1;min-width:0;font-size:11px;font-weight:700;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.nm-home .tip-prod .tp-p{font-size:11px;color:var(--pink-600);flex-shrink:0;}
.nm-home .tip-none{font-size:11px;color:var(--muted);margin-bottom:9px;}

/* ----- 농어민 이야기 ----- */
.nm-home .stories{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
/* 추천 사연 2개 — 사진(좌)+글(우) 가로형 카드 */
.nm-home .stories.two{grid-template-columns:repeat(2,1fr);}
.nm-home .stories.two .story{display:grid;grid-template-columns:1fr 1.25fr;}
.nm-home .stories.two .story-img{aspect-ratio:auto;min-height:196px;height:100%;}
.nm-home .stories.two .story-body{padding:17px 18px;}
/* 전체보기(/stories) — 사연은 한 줄에 하나씩 (사진 좌 + 글 우) */
.nm-home .stories.one{grid-template-columns:1fr;}
.nm-home .stories.one .story{display:grid;grid-template-columns:0.7fr 1.8fr;}
.nm-home .stories.one .story-img{aspect-ratio:auto;min-height:168px;height:100%;}
.nm-home .stories.one .story-body{padding:17px 20px;}
/* 전체보기 영상 — 한 줄 레일이 아니라 줄바꿈 그리드로 전부 나열 */
.nm-home .story-vids.vids-wrap{flex-wrap:wrap;overflow:visible;cursor:default;}
/* 영상 사연 (유튜브) — 한 줄 가로 레일. 카드는 모든 화면에서 데스크톱 크기(178px)
   고정, 넘치면 좌우 스와이프 + 반투명 화살표로 넘겨보기 */
.nm-home .vid-scroller{position:relative;}
.nm-home .story-vids{display:flex;gap:12px;margin-top:14px;overflow-x:auto;
  scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;padding-bottom:4px;}
.nm-home .story-vids::-webkit-scrollbar{display:none;}
.nm-home .vid-arrow{position:absolute;top:42%;transform:translateY(-50%);z-index:6;
  width:27px;height:27px;border-radius:50%;border:none;cursor:pointer;
  background:rgba(216,21,87,.52);color:#fff;display:none;align-items:center;
  justify-content:center;font-size:11px;
  box-shadow:0 2px 8px rgba(216,21,87,.22);transition:background .16s;}
.nm-home .vid-arrow.left{left:6px;}
.nm-home .vid-arrow.right{right:6px;}
.nm-home .vid-arrow:hover{background:rgba(216,21,87,.88);}
.nm-home .story-vids{cursor:grab;}
.nm-home .story-vids.dragging{cursor:grabbing;scroll-behavior:auto;}
.nm-home .story-vids.dragging .svid{pointer-events:none;}
.nm-home .svid{flex:0 0 178px;scroll-snap-align:start;
  background:#fff;border:1px solid var(--line);border-radius:12px;
  overflow:hidden;padding-bottom:9px;display:block;
  transition:transform .14s,box-shadow .14s;}
.nm-home .svid:hover{transform:translateY(-3px);box-shadow:0 10px 22px rgba(80,20,40,.10);}
.nm-home .svid-th{aspect-ratio:16/9;position:relative;overflow:hidden;
  background:linear-gradient(135deg,#F4EEE4,#E7DDC9);}
.nm-home .svid-th.alt{background:linear-gradient(135deg,#E7EDD8,#C5D2A8);}
.nm-home .svid-th.alt2{background:linear-gradient(135deg,#F6EBD0,#E8D49E);}
.nm-home .svid-th .stripes{position:absolute;inset:0;
  background:repeating-linear-gradient(45deg,transparent 0 14px,rgba(255,255,255,.25) 14px 15px);}
.nm-home .svid-th img{width:100%;height:100%;object-fit:cover;transition:transform .3s;}
.nm-home .svid:hover .svid-th img{transform:scale(1.06);}
.nm-home .svid-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:38px;height:38px;border-radius:50%;background:rgba(233,30,99,.92);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:12px;
  padding-left:2px;box-shadow:0 4px 14px rgba(0,0,0,.25);transition:transform .16s;}
.nm-home .svid:hover .svid-play{transform:translate(-50%,-50%) scale(1.14);}
.nm-home .svid.playing .svid-play{display:none;}
.nm-home .svid-play{width:32px;height:32px;font-size:10px;}
.nm-home .svid-soon{position:absolute;left:50%;top:calc(50% + 26px);
  transform:translateX(-50%);font-size:10px;font-weight:700;color:var(--muted);
  background:rgba(255,255,255,.88);padding:2px 8px;border-radius:6px;white-space:nowrap;}
.nm-home .svid-t{font-size:11.5px;font-weight:700;padding:7px 9px 1px;line-height:1.4;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.nm-home .svid-m{font-size:10.5px;color:var(--muted);padding:0 9px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.nm-home .story{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;}
.nm-home .story-img{aspect-ratio:5/3;position:relative;
  background:linear-gradient(135deg,#F4EEE4,#E7DDC9);}
.nm-home .story-img.alt{background:linear-gradient(135deg,#E7EDD8,#C5D2A8);}
.nm-home .story-img.alt2{background:linear-gradient(135deg,#F6EBD0,#E8D49E);}
.nm-home .story-img .stripes{position:absolute;inset:0;
  background:repeating-linear-gradient(45deg,transparent 0 14px,rgba(255,255,255,.25) 14px 15px);}
.nm-home .ph-lab{position:absolute;left:13px;bottom:13px;font-family:'JetBrains Mono',monospace;
  font-size:10px;color:var(--ink-2);background:rgba(255,255,255,.85);padding:4px 8px;border-radius:5px;}
.nm-home .story-body{padding:20px;}
.nm-home .story-tag{display:inline-flex;align-items:center;gap:5px;background:var(--pink-50);
  color:var(--pink-700);padding:4px 10px;border-radius:999px;font-size:10.5px;font-weight:700;
  margin-bottom:11px;}
.nm-home .story-tag.g{background:var(--green-soft);color:var(--green);}
.nm-home .story-tag.y{background:var(--gold-soft);color:var(--gold);}
.nm-home .story-title{font-family:'Noto Serif KR',serif;font-weight:700;font-size:16px;
  line-height:1.4;margin-bottom:9px;}
.nm-home .story-excerpt{color:var(--muted);font-size:12.5px;line-height:1.65;margin-bottom:13px;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.nm-home .story-meta{display:flex;align-items:center;gap:9px;padding-top:11px;
  border-top:1px solid var(--line);font-size:11.5px;color:var(--muted);}
.nm-home .story-meta .av{width:24px;height:24px;border-radius:50%;background:var(--pink-200);
  color:var(--pink-700);display:flex;align-items:center;justify-content:center;
  font-size:10.5px;font-weight:800;}
.nm-home .story-meta b{color:var(--ink-2);font-weight:700;}

/* ----- 왜 농민.com ----- */
.nm-home .why{background:linear-gradient(135deg,#FFF6FA,#FFEEF3);border:1px solid var(--pink-100);
  border-radius:18px;padding:30px;display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.nm-home .why-item{display:flex;flex-direction:column;gap:8px;}
.nm-home .why-num{font-family:'Noto Serif KR',serif;font-weight:900;font-size:32px;
  color:var(--pink-500);line-height:1;letter-spacing:-.03em;}
.nm-home .why-num .unit{font-size:15px;color:var(--pink-700);margin-left:2px;
  font-family:'Pretendard Variable','Pretendard',sans-serif;font-weight:700;}
.nm-home .why-title{font-weight:800;font-size:15px;}
.nm-home .why-desc{color:var(--muted);font-size:12.5px;line-height:1.6;}
/* 차별점 박스 — 화면에 들어오면(.why.seen) 옛 방식에 빗금이 그어진 뒤
   농민.com 쪽 장점 칩이 톡 튀어나오며 강조됨 (항목별 시차 --vd) */
.nm-home .why-vs{margin-top:6px;padding:8px 10px;background:rgba(255,255,255,.7);
  border:1px dashed var(--pink-200);border-radius:8px;font-size:10.5px;color:var(--ink-2);
  font-family:'JetBrains Mono',monospace;
  display:flex;align-items:center;justify-content:space-between;gap:7px;flex-wrap:wrap;}
.nm-home .why-vs s{color:var(--muted);text-decoration:none;position:relative;
  white-space:nowrap;}
.nm-home .why-vs s::after{content:'';position:absolute;left:-2px;top:52%;height:1.7px;
  width:0;background:var(--pink-400);border-radius:1px;
  transform:translateY(-50%) rotate(-5deg);transform-origin:left center;}
@keyframes nmVsStrike{from{width:0;}to{width:calc(100% + 4px);}}
.nm-home .why.seen .why-vs s::after{animation:nmVsStrike .5s ease-out forwards;
  animation-delay:var(--vd,0s);}
.nm-home .why-vs .win{display:inline-flex;align-items:center;
  background:var(--pink-50);color:var(--pink-600);font-weight:800;
  padding:3px 8px;border-radius:6px;border:1px solid var(--pink-100);
  white-space:nowrap;opacity:.35;}
@keyframes nmVsWin{
  0%{transform:scale(.9);opacity:.35;box-shadow:0 0 0 0 rgba(233,30,99,0);}
  55%{transform:scale(1.14);opacity:1;box-shadow:0 0 0 5px rgba(233,30,99,.14);}
  100%{transform:scale(1);opacity:1;box-shadow:0 0 0 0 rgba(233,30,99,0);}
}
.nm-home .why.seen .why-vs .win{animation:nmVsWin .55s cubic-bezier(.2,.9,.3,1.35) forwards;
  animation-delay:calc(var(--vd,0s) + .45s);}
/* 항목별 시차 — 왼쪽부터 차례로 빗금·강조 */
.nm-home .why-item:nth-child(1) .why-vs{--vd:.15s;}
.nm-home .why-item:nth-child(2) .why-vs{--vd:.45s;}
.nm-home .why-item:nth-child(3) .why-vs{--vd:.75s;}
.nm-home .why-item:nth-child(4) .why-vs{--vd:1.05s;}
@media (prefers-reduced-motion:reduce){
  .nm-home .why-vs s::after{width:calc(100% + 4px);animation:none;}
  .nm-home .why-vs .win{opacity:1;animation:none;}
}

/* ----- 판매자 CTA ----- */
.nm-home .cta{margin-top:48px;background:var(--ink);color:#fff;border-radius:20px;padding:28px 32px;
  display:grid;grid-template-columns:1.4fr 1fr;gap:10px 28px;position:relative;overflow:hidden;
  grid-template-areas:"body steps" "btns steps";align-items:center;}
.nm-home .cta-body{grid-area:body;align-self:end;}
.nm-home .cta-btns{grid-area:btns;align-self:start;position:relative;z-index:2;}
.nm-home .cta-steps{grid-area:steps;}
.nm-home .cta::before{content:'';position:absolute;right:-80px;top:-80px;width:360px;height:360px;
  border-radius:50%;background:radial-gradient(circle,var(--pink-500),transparent 70%);opacity:.4;}
.nm-home .cta-body{position:relative;z-index:2;}
.nm-home .cta-eyebrow{color:var(--pink-200);font-size:11px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;margin-bottom:12px;}
.nm-home .cta h2{font-family:'Noto Serif KR',serif;font-weight:900;font-size:26px;line-height:1.3;
  margin-bottom:12px;letter-spacing:-.02em;}
.nm-home .cta p{color:rgba(255,255,255,.72);font-size:13.5px;margin-bottom:0;max-width:440px;}
/* 버튼 — 항상 옆으로 나란히, 내부 여백 컴팩트(글자 크기 유지) */
.nm-home .cta-btns{display:flex;gap:8px;flex-wrap:nowrap;}
.nm-home .btn-prim{background:var(--pink-500);color:#fff;padding:10px 16px;border-radius:10px;
  font-weight:700;font-size:13.5px;display:inline-flex;align-items:center;
  justify-content:center;gap:7px;white-space:nowrap;}
.nm-home .btn-prim:hover{background:var(--pink-600);}
.nm-home .btn-sec{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.3);
  padding:10px 16px;border-radius:10px;font-weight:700;font-size:13.5px;
  display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;}
.nm-home .btn-sec:hover{background:rgba(255,255,255,.08);}
/* 혜택 줄 — 1·2·3 사용법 위, 가운데 정렬 */
.nm-home .cta-perks{display:flex;flex-wrap:wrap;justify-content:center;gap:5px 16px;
  margin-bottom:3px;font-size:11px;color:rgba(255,255,255,.6);white-space:nowrap;}
/* 단계 카드 — 세로 중앙 정렬로 아래 여백이 뜨지 않게, 담백한 간격 */
.nm-home .cta-steps{position:relative;z-index:2;display:flex;flex-direction:column;
  gap:9px;justify-content:center;}
/* 단계 박스 — 하단 여백이 뜨지 않게 컴팩트 */
.nm-home .cta-step{display:flex;gap:11px;align-items:center;padding:9px 13px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:11px;}
.nm-home .cta-step-num{width:30px;height:30px;border-radius:8px;flex-shrink:0;
  background:var(--pink-500);color:#fff;font-weight:800;display:flex;align-items:center;
  justify-content:center;font-size:13px;}
.nm-home .cta-step h4{font-size:13.5px;font-weight:800;margin-bottom:1px;line-height:1.3;}
.nm-home .cta-step p{color:rgba(255,255,255,.6);font-size:11.5px;line-height:1.4;}

/* ============================================================
   반응형
   ★ 모바일 기준 폭: 422px (대표 실기기 아이폰 실측 뷰포트 — 2026-07 확인).
     모바일 레이아웃을 새로 만들거나 고칠 때는 422px 에서 우선 검증하고,
     390px(아이폰 15)·360px 까지 가로 넘침 0 을 유지할 것.
   ============================================================ */
@media (max-width:980px){
  .grid{grid-template-columns:repeat(3,1fr);}
  .nm-home .spotlight{grid-template-columns:1fr 1fr;}
  /* '예시' 상태는 신청 칼럼을 없앴으므로 모바일에선 1열(사진 위·소개 아래) — 우측 빈칸 방지 */
  .nm-home .spotlight.intro{grid-template-columns:1fr;}
  .nm-home .spot-photo{grid-column:1/-1;min-height:200px;}
  .nm-home .tiles{grid-template-columns:repeat(3,1fr);}
  .nm-home .why{grid-template-columns:repeat(2,1fr);}
  .nm-home .stories{grid-template-columns:1fr;}
  .nm-home .stories.two{grid-template-columns:1fr;}
  /* 히어로 — '오늘의 농민.COM' 스탯 박스는 모바일에서 미노출 */
  .nm-home .hero{grid-template-columns:1fr;}
  .nm-home .hero-stats{display:none;}
  /* 산지에서 바로 — 지도(좌) + 10곳 리스트(우, 1~5위/6~10위 2열).
     지도는 유지하고 리스트 폭을 줄여 지도와 조화롭게 (어느 모바일 폭이든 비율 일정) */
  /* 지도(디자인)가 주인공 — 지도를 크게, 내용이 적은 리스트는 좁게 */
  .nm-home .regions{grid-template-columns:1.15fr 0.85fr;gap:11px;padding:14px;}
  /* max-width:100% — 지도 폭이 리스트 높이에 끌려 트랙보다 커지며 겹치는 것 방지 */
  .nm-home .map-wrap{max-width:100%;overflow:hidden;}
  .nm-home .map-pin.season .map-tip{display:none;}
  /* 지도가 절반 폭이라 핀·범례도 축소 */
  .nm-home .map-pin.season .pin-emoji{width:19px;height:19px;font-size:9.5px;border-width:1.5px;}
  .nm-home .map-pin.season.big .pin-emoji{width:22px;height:22px;font-size:11px;}
  .nm-home .map-pin.season .ripple{width:19px;height:19px;margin:-9.5px 0 0 -9.5px;border-width:1.5px;}
  .nm-home .map-legend{font-size:8.5px;padding:3px 6px;left:6px;top:6px;gap:4px;}
  .nm-home .map-legend .swatch{width:7px;height:7px;}
  .nm-home .region-list{gap:5px 6px;}
  .nm-home .region-side-h{font-size:13.5px;}
  .nm-home .region-side-s{font-size:10.5px;margin-bottom:9px;}
  .nm-home .region-row{padding:6px 7px;gap:6px;}
  .nm-home .region-rank{width:17px;height:17px;font-size:9.5px;}
  .nm-home .region-name{font-size:11px;}
  .nm-home .region-item{font-size:9.5px;}
  /* 판매자 CTA — 1·2·3 우측 유지, 버튼은 하단 전체 폭에 나란히 두 개 */
  .nm-home .cta{grid-template-columns:1.15fr 1fr;padding:14px;margin-top:40px;
    gap:9px 12px;grid-template-areas:"body steps" "btns btns";align-items:center;}
  .nm-home .cta h2{font-size:18px;margin-bottom:8px;}
  .nm-home .cta p{font-size:11.5px;}
  .nm-home .cta-btns{gap:6px;}
  .nm-home .cta-btns .btn-prim,.nm-home .cta-btns .btn-sec{flex:1;padding:8px 10px;font-size:12px;}
  .nm-home .cta-perks{gap:3px 9px;margin-bottom:1px;font-size:9.5px;}
  .nm-home .cta-steps{flex-direction:column;gap:5px;}
  .nm-home .cta-step{flex:none;flex-direction:row;align-items:center;
    padding:5px 9px;gap:8px;}
  .nm-home .cta-step p{display:block;font-size:10px;margin-top:1px;line-height:1.3;}
  .nm-home .cta-step h4{font-size:11.5px;margin-bottom:0;line-height:1.25;}
  .nm-home .cta-step-num{width:20px;height:20px;border-radius:6px;font-size:10.5px;}
}
@media (max-width:780px){
  .wrap,.page{padding:0 16px;}
  .topstrip{font-size:11px;}
  /* 좁은 화면: '판매자 센터/등록' 박스(.ts-right)는 유지, '모든 상품 택배비 포함가'만 숨김 */
  .ts-left{overflow:hidden;}
  .ts-left .ts-dim,.ts-left .ts-sep{display:none;}
  .nmhd{padding:11px 0 0;}
  .nmhd-row{gap:12px;}
  .logo{font-size:23px;order:1;}
  .logo .dot{font-size:26px;}
  .logo .com{font-size:14px;}
  .hd-actions{order:2;margin-left:auto;gap:13px;}
  .icon-btn span:not(.badge-dot){display:none;}
  .icon-btn i{font-size:20px;}
  .seller-btn{padding:9px 12px;font-size:12px;}
  .searchbar{order:3;flex:1 0 100%;max-width:none;height:44px;}
  /* 모바일: 카테고리 칩 한 줄 유지 — 칩을 줄여 390px에도 전부 들어가게 */
  .cats{padding:11px 0 10px;flex-wrap:nowrap;overflow-x:auto;gap:5px;}
  .cat{padding:5px 9px;font-size:11px;}
  .cat-count{display:none;}
  .nm-home .hero{padding:20px;gap:15px;}
  .nm-home .hero h1{font-size:21px;}
  .nm-home .hero p{font-size:12.5px;}
  .nm-home section{margin-top:34px;}
  .nm-home .sec-title h2{font-size:18px;}
  .nm-home .sec-title .sub{display:none;}
  .nm-home .spotlight{grid-template-columns:1fr;}
  .nm-home .spot-body{border-right:none;border-bottom:1px dashed var(--line);}
  /* 왜 농민.com — 한 줄에 2개씩 (한 항목이 한 줄을 다 차지하지 않게) */
  .nm-home .why{grid-template-columns:repeat(2,1fr);padding:16px;gap:14px 12px;}
  .nm-home .why-num{font-size:23px;}
  .nm-home .why-num .unit{font-size:12px;}
  .nm-home .why-title{font-size:12.5px;}
  .nm-home .why-desc{font-size:11px;line-height:1.55;}
  .nm-home .why-vs{font-size:9px;padding:6px 7px;margin-top:4px;}
  .nm-home .tiles{grid-template-columns:repeat(3,1fr);}
  .nm-home .ticker-label{font-size:11.5px;padding-right:12px;}
  .nmfoot{padding:34px 0 24px;margin-top:50px;}
  .foot-grid{grid-template-columns:1fr 1fr;gap:22px;}
  /* 제철 달력 — 좌우 스크롤 금지: 해당 월 ±1만 넓게, 나머지 달은 좁게 압축 */
  .nm-home .cal-scroll{overflow-x:visible;}
  .nm-home .cal-grid{min-width:0;grid-template-columns:var(--cal-cols,84px repeat(12,1fr));}
  .nm-home .cal-row .label{font-size:10px;padding:3px 2px;gap:3px;}
  .nm-home .cal-row .label .em{font-size:12px;}
  .nm-home .cal-row .label .ktag{display:none;}
  /* 좁은 화면 — 축약명으로 교체 (포도류/해초/감귤류 등) */
  .nm-home .cal-row .label .nm-full{display:none;}
  .nm-home .cal-row .label .nm-short{display:inline;}
  .nm-home .cal-month{font-size:8.5px;padding:2px 0;}
  /* 넓게 표시되는 해당 월 ±1(예: 6월·7월·8월)에는 '월' 함께 표기 */
  .nm-home .cal-month.near .mw{display:inline;font-size:.85em;}
  .nm-home .cal-cell{height:13px;}
  .nm-home .seasons{padding:15px 13px;}
}
@media (max-width:560px){
  .grid{grid-template-columns:repeat(2,1fr);gap:12px;}
  .nm-home .tiles{grid-template-columns:repeat(2,1fr);}
  /* 좁은 폰: 산지 리스트 2열은 글자가 깨지므로 1열 + 상위 5곳만 (지도 옆에) */
  /* 1열 5행 — 지도 높이에 맞춰 행이 늘어나 여백 없이 채움 */
  .nm-home .region-list{grid-template-columns:1fr;grid-template-rows:repeat(5,1fr);}
  .nm-home .region-row:nth-child(n+6){display:none;}
  .nm-home .region-name{font-size:11.5px;}
  .nm-home .region-item{font-size:10px;}
  /* 지도가 주인공 — 지도 열을 크게(약 62%), 리스트는 우측에 좁게 */
  .nm-home .regions{grid-template-columns:1.6fr 1fr;gap:8px;padding:12px;}
  .nm-home .region-row{padding:5px 6px;gap:5px;}
  .nm-home .region-rank{width:15px;height:15px;font-size:8.5px;border-radius:5px;}
  .nm-home .region-name{font-size:10.5px;}
  .nm-home .region-item{font-size:9px;}
  .nm-home .region-side-h{font-size:12px;margin-bottom:6px;}
  /* 사연 카드: 좁은 화면에서는 사진 위·글 아래 세로형 */
  .nm-home .stories.two .story{grid-template-columns:1fr;}
  .nm-home .stories.two .story-img{aspect-ratio:5/3;min-height:0;height:auto;}
  .nm-home .svid-t{font-size:11.5px;}
  /* 카테고리 칩 — 기준 폭 422px에서 9개가 한 줄에 전부 들어가게 최종 축소.
     (422px 미만 극좁은 폰은 한 줄 유지 + 내부 가로 스와이프) */
  .cats{gap:3px;}
  .cat{padding:3px 6px;font-size:9.5px;}
  .ts-left .ts-dim,.ts-left .ts-sep{display:none;}
  .nm-home .hero h1{font-size:19px;}
  /* 푸터: 세로로 길어지지 않게 — 로고 블록은 전체 폭, 링크 3분류는 가로 배열 */
  .foot-grid{grid-template-columns:repeat(3,1fr);gap:18px 12px;}
  .foot-grid>div:first-child{grid-column:1 / -1;}
  .foot-h{font-size:12px;margin-bottom:9px;}
  .foot-list{font-size:11.5px;gap:6px;}
  .foot-bot{flex-direction:column;gap:6px;}
}
@media (max-width:435px){
  /* 산지 리스트 — 카드 내부 여백·글자를 더 줄여 행 높이를 낮춤.
     (지도 높이=행 높이라 리스트가 컴팩트해지면 지도 폭 고정 문제도 함께 해소) */
  .nm-home .regions{gap:7px;padding:10px;}
  .nm-home .region-list{gap:4px;}
  .nm-home .region-row{padding:4px 5px;gap:4px;}
  .nm-home .region-rank{width:13px;height:13px;font-size:8px;border-radius:4px;}
  .nm-home .region-name{font-size:9.5px;}
  .nm-home .region-items{gap:1px 5px;margin-top:1px;}
  .nm-home .region-item{font-size:8.5px;}
  .nm-home .region-side-h{font-size:11px;margin-bottom:5px;}
}

/* ============================================================
   약관 / 정책 / 수수료 안내 문서 페이지 (.doc)
   ============================================================ */
.doc{max-width:880px;margin:24px auto 0;padding:0 24px;}
.doc-hd{background:var(--grad);color:#fff;border-radius:18px;padding:26px 28px;
  position:relative;overflow:hidden;}
.doc-hd::before{content:'';position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(circle at 90% 15%,rgba(255,255,255,.16),transparent 45%);}
.doc-hd .eye{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.8);margin-bottom:8px;}
.doc-hd h1{font-size:24px;font-weight:900;letter-spacing:-.02em;}
.doc-hd p{font-size:13px;opacity:.93;margin-top:8px;line-height:1.6;}
.doc-tabs{display:flex;gap:7px;margin:14px 0;flex-wrap:wrap;}
.doc-tab{padding:8px 15px;border-radius:999px;background:#fff;border:1px solid var(--line);
  font-size:12.5px;font-weight:700;color:var(--ink-2);}
.doc-tab:hover{border-color:var(--pink-400);color:var(--pink-500);}
.doc-tab.on{background:var(--ink);color:#fff;border-color:var(--ink);}
.doc-body{background:#fff;border:1px solid var(--line);border-radius:16px;padding:30px;}
.doc-body section{margin-bottom:8px;}
.doc-body h2{font-size:16px;font-weight:800;margin:26px 0 11px;padding-left:11px;
  border-left:4px solid var(--pink-500);letter-spacing:-.01em;}
.doc-body h2:first-child{margin-top:0;}
.doc-body h3{font-size:13.5px;font-weight:800;margin:15px 0 6px;color:var(--ink);}
.doc-body p,.doc-body li{font-size:13px;color:var(--ink-2);line-height:1.78;}
.doc-body p{margin-bottom:7px;}
.doc-body ul,.doc-body ol{padding-left:20px;margin:6px 0 10px;}
.doc-body li{margin-bottom:4px;}
.doc-body strong{font-weight:800;color:var(--ink);}
.doc-body .muted{color:var(--muted);font-size:12px;}
.doc-note{background:var(--gold-soft);border:1px solid #E8D49E;border-radius:11px;
  padding:13px 16px;font-size:12.5px;color:#8E6A1F;margin:12px 0;line-height:1.75;}
.doc-key{background:var(--pink-50);border:1px solid var(--pink-100);border-radius:11px;
  padding:14px 16px;margin:12px 0;}
.doc-key b{color:var(--pink-700);}
.doc-table{width:100%;border-collapse:collapse;margin:12px 0;font-size:12.5px;}
.doc-table th,.doc-table td{border:1px solid var(--line);padding:9px 11px;
  text-align:left;vertical-align:top;}
.doc-table th{background:var(--pink-50);color:var(--pink-700);font-weight:700;}
.doc-table td.c{text-align:center;}
.doc-table tr.hl td{background:var(--green-soft);font-weight:700;}
.fee-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:14px 0;}
.fee-card{border:1px solid var(--line);border-radius:13px;padding:16px;position:relative;}
.fee-card.rec{border-color:var(--pink-400);background:var(--pink-50);}
.fee-card .rec-badge{position:absolute;top:-9px;left:14px;background:var(--pink-500);
  color:#fff;font-size:10.5px;font-weight:700;padding:3px 10px;border-radius:999px;}
.fee-card .fc-name{font-size:14px;font-weight:800;display:flex;align-items:center;gap:7px;}
.fee-card .fc-total{font-size:22px;font-weight:900;color:var(--pink-600);margin:8px 0 2px;}
.fee-card .fc-total small{font-size:12px;color:var(--muted);font-weight:600;}
.fee-card .fc-row{font-size:12px;color:var(--muted);margin-top:5px;}
.fee-card .fc-desc{font-size:12px;color:var(--ink-2);line-height:1.6;margin-top:9px;
  padding-top:9px;border-top:1px dashed var(--line);}
@media (max-width:760px){
  .doc{padding:0 16px;}
  .doc-body{padding:20px;}
  .doc-hd h1{font-size:20px;}
  .fee-cards{grid-template-columns:1fr;}
  .doc-table{font-size:11.5px;}
  .doc-table th,.doc-table td{padding:7px 8px;}
}

/* ============================================================
   AI 상담 위젯 — 농경팀 상담원 초록
   ============================================================ */
.nm-consult{position:fixed;right:20px;bottom:20px;z-index:90;}
.nc-fab{display:flex;align-items:center;gap:8px;background:var(--pink-500);color:#fff;
  border-radius:999px;padding:13px 19px;box-shadow:0 6px 20px rgba(233,30,99,.4);
  font-weight:800;font-size:14px;}
.nc-fab i{font-size:17px;}
.nc-fab:hover{background:var(--pink-600);}
.nc-fab.on{display:none;}
.nc-panel{position:absolute;right:0;bottom:0;width:362px;max-width:calc(100vw - 32px);
  height:548px;max-height:calc(100vh - 96px);background:#fff;border:1px solid var(--line);
  border-radius:18px;box-shadow:0 16px 48px rgba(80,20,40,.26);
  display:none;flex-direction:column;overflow:hidden;}
.nc-panel.on{display:flex;}
.nc-head{background:var(--grad);color:#fff;padding:13px 15px;display:flex;
  align-items:center;justify-content:space-between;}
.nc-head-l{display:flex;align-items:center;gap:10px;}
.nc-ava{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.2);
  border:1.5px solid rgba(255,255,255,.55);display:flex;align-items:center;
  justify-content:center;font-size:12px;font-weight:800;flex-shrink:0;}
.nc-name{font-size:14px;font-weight:800;}
.nc-stat{font-size:11px;opacity:.88;margin-top:1px;display:flex;align-items:center;gap:5px;}
.nc-stat::before{content:'';width:6px;height:6px;border-radius:50%;background:#7CFC9B;}
.nc-x{color:#fff;font-size:18px;width:28px;height:28px;}
.nc-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;
  background:var(--cream);}
.nc-msg{display:flex;}
.nc-msg.me{justify-content:flex-end;}
.nc-bubble{max-width:82%;padding:10px 13px;border-radius:13px;font-size:13px;
  line-height:1.62;white-space:pre-wrap;word-break:break-word;}
.nc-msg.bot .nc-bubble{background:#fff;border:1px solid var(--line);
  border-bottom-left-radius:4px;color:var(--ink-2);}
.nc-msg.me .nc-bubble{background:var(--pink-500);color:#fff;border-bottom-right-radius:4px;}
.nc-typing{display:flex;gap:4px;align-items:center;}
.nc-typing span{width:6px;height:6px;border-radius:50%;background:var(--pink-200);
  animation:ncblink 1s infinite;}
.nc-typing span:nth-child(2){animation-delay:.15s;}
.nc-typing span:nth-child(3){animation-delay:.3s;}
@keyframes ncblink{0%,80%,100%{opacity:.3}40%{opacity:1}}
.nc-quick{display:flex;flex-wrap:wrap;gap:6px;padding:10px 12px 4px;background:#fff;}
.nc-quick button{font-size:11.5px;font-weight:600;border:1px solid var(--line);
  background:var(--pink-50);color:var(--pink-700);padding:6px 11px;border-radius:999px;}
.nc-quick button:hover{border-color:var(--pink-400);}
.nc-input{display:flex;gap:8px;padding:10px 12px 6px;background:#fff;}
.nc-input input{flex:1;border:1px solid var(--line);border-radius:999px;padding:10px 14px;
  font-size:13px;font-family:inherit;}
.nc-input input:focus{border-color:var(--pink-400);}
.nc-input button{width:40px;height:40px;border-radius:50%;background:var(--pink-500);
  color:#fff;flex-shrink:0;font-size:14px;}
.nc-input button:hover{background:var(--pink-600);}
.nc-foot{font-size:10.5px;color:var(--muted);text-align:center;padding:4px 12px 10px;
  background:#fff;line-height:1.5;}
@media (max-width:560px){
  .nm-consult{right:14px;bottom:14px;}
  .nc-panel{width:calc(100vw - 28px);height:calc(100vh - 120px);}
  .nc-fab-txt{display:none;}
}

/* ===== 소셜 로그인 (카카오·구글·애플) ===== */
.sns-wrap{margin-top:16px;}
.sns-sep{display:flex;align-items:center;gap:12px;margin:2px 0 14px;
  color:var(--muted);font-size:12px;font-weight:600;}
.sns-sep::before,.sns-sep::after{content:"";flex:1;height:1px;background:var(--line);}
.sns-btn{display:flex;align-items:center;justify-content:center;gap:9px;
  width:100%;padding:13px;border-radius:11px;font-size:14.5px;font-weight:700;
  margin-bottom:9px;border:1px solid transparent;}
.sns-btn .sns-ic{width:19px;height:19px;flex-shrink:0;}
.sns-kakao{background:#FEE500;color:#191600;}
.sns-kakao:hover{background:#F5DD00;}
.sns-google{background:#fff;color:#1F1F1F;border-color:var(--line);}
.sns-google:hover{background:#F7F7F8;}
.sns-apple{background:#000;color:#fff;}
.sns-apple:hover{background:#1A1A1A;}
