/* ============================================================
   爆下げレーダー v2 — "上品でかわいい" 리모델링
   - 크림 × 코랄핑크, Zen Maru Gothic 디스플레이체
   - 히어로: 텍스트/이미지 분리 블록 (겹침·크롭 구조적으로 불가)
   - 반응형: 2/3/4/5/6열 (모바일/폴더블/태블릿/데스크탑/와이드)
   ============================================================ */

:root{
  --bg: #fff9f4;
  --surface: #ffffff;
  --border: #f6e4dd;
  --ink: #3d2e33;
  --dim: #a4908f;
  --brand: #f2788f;
  --brand-deep: #e05575;
  --brand-soft: #ffe9ee;
  --gold: #d9a441;
  --red: #e6002d;          /* ▼할인율 전용 */
  --amber: #ff8a00;        /* 爆下げ 배지 */
  --radius: 18px;
  --font-body: 'Noto Sans JP', system-ui, sans-serif;
  --font-display: 'Zen Maru Gothic', 'Noto Sans JP', sans-serif;
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }

body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--font-body);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

.wrap{ max-width:1240px; margin:0 auto; padding:0 20px; }

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:30;
  background:rgba(255,249,244,.9);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--border);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding-top:13px; padding-bottom:13px;
}
.logo{
  display:flex; align-items:center; gap:10px;
  text-decoration:none; color:var(--ink);
}
.logo-text{
  font-family:var(--font-display);
  font-weight:900;
  font-size:22px;
}
.logo-accent{ color:var(--brand-deep); }
.header-tagline{ font-size:12px; color:var(--dim); font-weight:500; }

/* 로고 미니 레이더 (브랜드 모티프 — 항상 돌아감) */
.logo-radar{
  position:relative;
  width:26px; height:26px;
  border-radius:50%;
  background:var(--brand-soft);
  border:2px solid var(--brand);
  overflow:hidden;
  flex-shrink:0;
}
.logo-beam{
  position:absolute; inset:0;
  background:conic-gradient(from 0deg, var(--brand) 0deg, rgba(242,120,143,.25) 70deg, transparent 110deg);
  animation:spin 3s linear infinite;
}
@keyframes spin{ to{ transform:rotate(360deg); } }

/* ---------- Hero (풀블리드, 텍스트/이미지 분리) ---------- */
.hero{
  background:
    radial-gradient(ellipse 90% 100% at 100% 0%, #ffeef0 0%, transparent 55%),
    radial-gradient(ellipse 70% 90% at 0% 100%, #fff3e4 0%, transparent 50%),
    var(--bg);
  overflow:hidden;
}
.hero-grid{
  display:grid;
  grid-template-columns:1.05fr 1fr;
  align-items:center;
  gap:clamp(24px, 4vw, 64px);
  padding-top:clamp(36px, 6vh, 72px);
  padding-bottom:clamp(36px, 6vh, 72px);
}
.hero-copy{ animation:rise .8s cubic-bezier(.16,1,.3,1) both; }
.hero-eyebrow{
  display:inline-block;
  font-size:13px; font-weight:700;
  color:var(--brand-deep);
  background:var(--brand-soft);
  padding:6px 16px;
  border-radius:999px;
  margin-bottom:18px;
}
.hero-title{
  font-family:var(--font-display);
  font-weight:900;
  font-size:clamp(34px, 4.6vw, 58px);
  line-height:1.25;
  letter-spacing:.01em;
}
.hero-title em{
  font-style:normal;
  color:var(--brand-deep);
  position:relative;
  display:inline-block;
}
.hero-title em::after{
  content:'';
  position:absolute; left:-2px; right:-2px; bottom:6px;
  height:.38em;
  background:var(--brand-soft);
  border-radius:6px;
  z-index:-1;
}
.hero-sub{
  margin-top:18px;
  font-size:clamp(14px, 1.4vw, 16px);
  color:var(--dim);
}
.hero-actions{
  margin-top:28px;
  display:flex; align-items:center; gap:16px;
  flex-wrap:wrap;
}
.hero-cta{
  display:inline-block;
  font-family:var(--font-display);
  font-weight:700;
  font-size:15px;
  color:#fff;
  background:linear-gradient(135deg, var(--brand) 0%, var(--brand-deep) 100%);
  padding:14px 30px;
  border-radius:999px;
  text-decoration:none;
  box-shadow:0 8px 22px rgba(224,85,117,.32);
  transition:transform .25s ease, box-shadow .25s ease;
}
.hero-cta:hover{ transform:translateY(-3px); box-shadow:0 12px 28px rgba(224,85,117,.42); }
.hero-stat{
  display:flex; align-items:center; gap:9px;
  font-size:14px; color:var(--dim); font-weight:500;
}
.hero-stat strong{ color:var(--brand-deep); font-weight:900; font-size:17px; }
.mini-radar{
  position:relative;
  width:20px; height:20px;
  border-radius:50%;
  border:1.5px solid var(--brand);
  overflow:hidden;
  flex-shrink:0;
}
.mini-beam{
  position:absolute; inset:0;
  background:conic-gradient(from 0deg, var(--brand) 0deg, transparent 100deg);
  animation:spin 2.4s linear infinite;
}

/* 히어로 이미지: crop 없이 원본 비율 그대로, 라운드 카드 */
.hero-visual{
  position:relative;
  animation:rise .8s .12s cubic-bezier(.16,1,.3,1) both;
}
.hero-visual img{
  display:block;
  width:100%;
  height:auto;
  border-radius:26px;
  box-shadow:0 18px 48px rgba(224,85,117,.16);
}
/* 떠다니는 태그 (딜라이트 모션) */
.float-tag{
  position:absolute;
  font-family:var(--font-display);
  font-weight:700;
  font-size:14px;
  background:#fff;
  padding:7px 15px;
  border-radius:999px;
  box-shadow:0 6px 18px rgba(61,46,51,.14);
  animation:floaty 3.4s ease-in-out infinite;
}
.float-tag.ft1{ top:8%; left:-14px; color:var(--red); animation-delay:0s; }
.float-tag.ft2{ bottom:22%; right:-10px; color:var(--ink); animation-delay:1.1s; }
.float-tag.ft3{ bottom:-12px; left:16%; color:#fff; background:var(--brand-deep); animation-delay:2.2s; }
@keyframes floaty{
  0%,100%{ transform:translateY(0); }
  50%{ transform:translateY(-9px); }
}
@keyframes rise{
  from{ opacity:0; transform:translateY(22px); }
  to{ opacity:1; transform:translateY(0); }
}

/* ---------- 본문 공통 ---------- */
.disclaimer-top{
  font-size:12px; color:var(--dim);
  padding-top:20px;
}
.deals{ padding:30px 0 8px; }
.feed-section + .feed-section{ margin-top:14px; }

.section-head{
  display:flex; align-items:baseline; justify-content:space-between;
  flex-wrap:wrap; gap:6px;
  margin-bottom:16px;
}
.section-title{
  font-family:var(--font-display);
  font-weight:900;
  font-size:clamp(19px, 2.2vw, 24px);
}
.section-note{ font-size:12px; color:var(--dim); }

/* ---------- 상품 그리드 (모바일/폴더블/태블릿/데스크탑/와이드) ---------- */
.grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:10px;
}
@media (min-width:600px){ .grid{ grid-template-columns:repeat(3, 1fr); gap:12px; } }
@media (min-width:840px){ .grid{ grid-template-columns:repeat(4, 1fr); } }
@media (min-width:1100px){ .grid{ grid-template-columns:repeat(5, 1fr); } }
@media (min-width:1400px){ .grid{ grid-template-columns:repeat(6, 1fr); } }

/* 접힘: 데스크탑 = 1줄, 모바일 = 2줄(4개) — 열 수와 nth-child 동기화 */
.grid.collapsed .card:nth-child(n+5){ display:none; }                       /* 2열: 4개 */
@media (min-width:600px){ .grid.collapsed .card:nth-child(n+4){ display:none; } }  /* 3열: 3개 */
@media (min-width:840px){
  .grid.collapsed .card:nth-child(n+4){ display:revert; }
  .grid.collapsed .card:nth-child(n+5){ display:none; }                     /* 4열: 4개 */
}
@media (min-width:1100px){
  .grid.collapsed .card:nth-child(n+5){ display:revert; }
  .grid.collapsed .card:nth-child(n+6){ display:none; }                     /* 5열: 5개 */
}
@media (min-width:1400px){
  .grid.collapsed .card:nth-child(n+6){ display:revert; }
  .grid.collapsed .card:nth-child(n+7){ display:none; }                     /* 6열: 6개 */
}

/* ---------- 상품 카드 ---------- */
.card{
  background:var(--surface);
  border-radius:var(--radius);
  overflow:hidden;
  display:flex; flex-direction:column;
  text-decoration:none; color:var(--ink);
  box-shadow:0 2px 10px rgba(224,85,117,.07);
  opacity:0; transform:translateY(10px);
  animation:cardIn .5s cubic-bezier(.16,1,.3,1) forwards;
  transition:transform .22s ease, box-shadow .22s ease;
}
.card:hover{
  transform:translateY(-4px);
  box-shadow:0 10px 26px rgba(224,85,117,.16);
}
@keyframes cardIn{ to{ opacity:1; transform:translateY(0); } }

.card-img{
  aspect-ratio:1/1;
  background:#fff;
  position:relative;
  overflow:hidden;
}
.card-img img{
  position:absolute;
  inset:12px;
  width:calc(100% - 24px);
  height:calc(100% - 24px);
  object-fit:contain;
}
.badge{
  position:absolute; top:9px; left:9px;
  z-index:2;
  font-family:var(--font-display);
  font-size:11px; font-weight:700;
  padding:4px 10px;
  border-radius:999px;
  white-space:nowrap;
  color:#fff;
}
.badge.hot{ background:linear-gradient(135deg, #ff5470, var(--red)); }
.badge.warm{ background:linear-gradient(135deg, #ffb03a, var(--amber)); }

.card-body{
  padding:10px 13px 13px;
  display:flex; flex-direction:column; gap:5px;
  flex:1;
  border-top:1px solid #fbf0ec;
}
.card-category{ font-size:10px; color:var(--dim); font-weight:500; }
.card-title{
  font-size:12px; font-weight:500; line-height:1.45;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  min-height:2.9em;
}
.price-block{ margin-top:auto; }
.discount-row{ display:flex; align-items:center; gap:6px; }
.discount-rate{ color:var(--red); font-weight:900; font-size:17px; }
.price-old{ font-size:11px; color:var(--dim); text-decoration:line-through; }
.price-now{ font-size:17px; font-weight:900; letter-spacing:-.01em; }
.price-now .yen{ font-size:12px; font-weight:700; }
.checked-at{ font-size:10px; color:var(--dim); margin-top:2px; }

.empty-state{
  grid-column:1/-1;
  text-align:center;
  color:var(--dim);
  padding:48px 0;
  font-size:14px;
}

/* ---------- 태그/버튼 ---------- */
.filter-tags{
  display:flex; gap:8px; overflow-x:auto;
  scrollbar-width:none;
  margin-bottom:16px;
  padding-bottom:2px;
}
.filter-tags::-webkit-scrollbar{ display:none; }
.tag{
  flex-shrink:0;
  padding:8px 16px;
  border-radius:999px;
  border:1.5px solid var(--border);
  background:var(--surface);
  color:var(--dim);
  font-size:13px; font-weight:500;
  font-family:var(--font-body);
  cursor:pointer;
  transition:all .2s ease;
  white-space:nowrap;
}
.tag:hover{ border-color:var(--brand); color:var(--brand-deep); }
.tag.active{
  background:var(--brand-deep); border-color:var(--brand-deep);
  color:#fff; font-weight:700;
}
.tag small{ opacity:.75; font-weight:400; }

.more-btn{
  display:block;
  width:min(100%, 340px);
  margin:16px auto 6px;
  padding:12px;
  border:1.5px solid var(--brand);
  border-radius:999px;
  background:var(--surface);
  color:var(--brand-deep);
  font-family:var(--font-display);
  font-size:14px; font-weight:700;
  cursor:pointer;
  transition:all .2s ease;
}
.more-btn:hover{ background:var(--brand-soft); }
.more-btn[hidden]{ display:none; }

/* ---------- How ---------- */
.how{
  margin-top:40px;
  background:var(--surface);
  border-top:1px solid var(--border);
  padding:56px 0;
}
.how .section-title{ margin-bottom:30px; }
.how-grid{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(220px,1fr));
  gap:26px;
}
.how-num{
  display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:40px;
  border-radius:50%;
  background:var(--brand-soft);
  color:var(--brand-deep);
  font-family:var(--font-display);
  font-size:19px; font-weight:900;
}
.how-item h3{
  margin-top:12px; font-size:15px; font-weight:700;
  font-family:var(--font-display);
}
.how-item p{ margin-top:5px; color:var(--dim); font-size:13px; }

/* ---------- Footer ---------- */
.site-footer{
  padding:36px 0;
  border-top:1px solid var(--border);
}
.disclosure{ font-size:11px; color:var(--dim); line-height:1.7; }
.copyright{ margin-top:12px; font-size:11px; color:var(--dim); opacity:.7; }

/* ---------- 모바일/폴더블 히어로: 세로 스택 (겹침 불가 구조) ---------- */
@media (max-width:820px){
  .hero-grid{
    grid-template-columns:1fr;
    text-align:center;
    gap:26px;
    padding-top:32px;
    padding-bottom:40px;
  }
  .hero-actions{ justify-content:center; }
  .hero-visual{ max-width:520px; margin:0 auto; }
  .float-tag.ft1{ left:2px; }
  .float-tag.ft2{ right:2px; }
}
@media (max-width:400px){
  .header-tagline{ display:none; }
}
