/* 공개 홈 (views/index.ejs 전용)
   이전에 뷰 파일의 두 <style> 블록에 있던 517라인을 그대로 이동.
   - 1부: 전 사이트 공통 홈 스타일 (home-wrap, section, campaign-card, hero variants)
   - 2부: .rv-* (modan 전용 REVU 스타일 블록) — modan 외 사이트에서는 단순히 로드만 되고 미사용
   CSS 규칙은 바이트 단위로 동일. 시각적 변화 없음.
*/

/* ============================================================
   1부: 공통 홈 스타일
   ============================================================ */

.home-wrap{max-width:1400px;margin:0 auto;padding:18px 32px 72px}
.site-modan .home-wrap{padding:0;max-width:100%}
.section{background:#fff;border-radius:16px;padding:16px;margin-bottom:14px}
.section h2{margin:0;font-size:1.06rem;font-weight:900;color:#111827}
.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:12px}
.section-head a{color:var(--brand);font-size:.78rem;text-decoration:none;font-weight:800}
.card-grid{display:grid;gap:10px}
.cols-2{grid-template-columns:repeat(2,1fr)}
.cols-3{grid-template-columns:repeat(3,1fr)}
.cols-4{grid-template-columns:repeat(4,1fr)}
.cols-5{grid-template-columns:repeat(5,1fr)}
/* Airbnb 시그니처 패턴: 카드 위로 떠오름 + 사진 살짝 확대 + 부드러운 shadow */
.campaign-card{display:block;text-decoration:none;border:1px solid rgba(0,0,0,.06);border-radius:12px;overflow:hidden;background:#fff;transition:box-shadow .25s ease,transform .25s ease,border-color .25s ease}
.campaign-card:hover{box-shadow:var(--shadow-3);transform:translateY(-3px);border-color:rgba(0,0,0,.1)}
.campaign-card .thumb{aspect-ratio:4/3;overflow:hidden;background:#f5f5f5;position:relative}
.campaign-card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .35s cubic-bezier(.2,.6,.2,1)}
.campaign-card:hover .thumb img{transform:scale(1.05)}
.campaign-card .badge-row{position:absolute;top:7px;left:7px;display:flex;gap:4px}
.badge{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:999px;font-size:.68rem;font-weight:900}
.badge.primary{background:var(--brand);color:#fff}
.badge.red{background:#ef4444;color:#fff}
.campaign-card .body{padding:9px 10px 10px}
.campaign-card .body h3{font-size:.82rem;font-weight:800;color:#111;line-height:1.4;margin:0 0 4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.campaign-card .promo{font-size:.74rem;color:var(--brand);font-weight:700;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.campaign-card .meta{display:flex;justify-content:space-between;font-size:.7rem;color:#94a3b8}
.cat-icons{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.cat-icon{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;border-radius:12px;text-decoration:none;background:#f8fafc;border:1px solid rgba(0,0,0,.06)}
.cat-icon b{font-size:1.4rem}
.cat-icon span{font-size:.72rem;font-weight:800;color:#334155}

.site-modan .home-wrap{background:#fff!important;}
/* ── modan hero ── */
.ai-rec-thumb { width:100% !important; height:160px !important; object-fit:cover !important; display:block !important; }
.modan-hero{background:linear-gradient(135deg,#f0fff7 0%,#e8f5ff 100%);border-radius:20px;padding:90px 36px 40px;margin-bottom:14px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:24px}
.modan-hero h1{font-size:1.7rem;font-weight:900;color:#0f172a;line-height:1.35;margin:0 0 8px}
.modan-hero p{font-size:.88rem;color:#475569;margin:0 0 20px;line-height:1.6}
.modan-hero-btns{display:flex;gap:10px;flex-wrap:wrap}
.modan-hero-btns a{display:inline-flex;align-items:center;height:42px;padding:0 20px;border-radius:999px;font-size:.84rem;font-weight:900;text-decoration:none}
.modan-hero-btns .btn-primary{background:var(--brand);color:#fff}
.modan-hero-btns .btn-outline{background:#fff;color:var(--brand);border:1.5px solid var(--brand)}
.modan-hero-stat{display:flex;flex-direction:column;gap:10px;text-align:center}
.modan-stat-item{background:#fff;border-radius:14px;padding:14px 20px;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.modan-stat-item .num{font-size:1.3rem;font-weight:900;color:var(--brand)}
.modan-stat-item .lbl{font-size:.7rem;color:#64748b;margin-top:2px}

/* ── onepick hero ── */
.onepick-hero{background:linear-gradient(135deg,#fff4ef 0%,#fff 60%);border-radius:20px;padding:32px 36px;margin-bottom:14px;display:flex;align-items:center;gap:32px}
.onepick-hero-text h1{font-size:1.5rem;font-weight:900;color:#111;line-height:1.4;margin:0 0 8px}
.onepick-hero-text p{font-size:.84rem;color:#64748b;margin:0 0 16px}
.onepick-badges{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.onepick-badge{display:inline-flex;align-items:center;height:28px;padding:0 12px;border-radius:999px;font-size:.74rem;font-weight:900;background:#fff1eb;color:#c2410c;border:1px solid rgba(255,90,54,.2)}
.onepick-hero-btn{display:inline-flex;align-items:center;height:42px;padding:0 24px;border-radius:999px;background:var(--brand);color:#fff;font-size:.84rem;font-weight:900;text-decoration:none}
.onepick-hero-img{width:180px;height:140px;background:linear-gradient(135deg,#ff6a3d22,#ff5a3611);border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:4rem;flex-shrink:0}
.review-card{border:1px solid rgba(0,0,0,.07);border-radius:12px;overflow:hidden;background:#fff}
.review-card .thumb{aspect-ratio:4/3;overflow:hidden;background:#f5f5f5}
.review-card .thumb img{width:100%;height:100%;object-fit:cover}
.review-card .rbody{padding:10px}
.review-card .stars{color:#f59e0b;font-size:.8rem;margin-bottom:4px}
.review-card .rtitle{font-size:.8rem;font-weight:800;color:#111;margin-bottom:3px}
.review-card .rmeta{font-size:.7rem;color:#94a3b8}

/* ── udan hero ── */
.udan-hero{background:linear-gradient(135deg,#fff8e8 0%,#fff 60%);border-radius:20px;padding:32px 36px;margin-bottom:14px}
.udan-hero h1{font-size:1.5rem;font-weight:900;color:#111;margin:0 0 6px}
.udan-hero p{font-size:.86rem;color:#64748b;margin:0 0 18px}
.udan-region-btns{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.udan-region-btn{display:inline-flex;align-items:center;height:34px;padding:0 14px;border-radius:999px;font-size:.78rem;font-weight:900;text-decoration:none;background:#fff;border:1.5px solid rgba(245,158,11,.3);color:#92400e}
.udan-region-btn:hover{background:#fef3c7}
.udan-hero-cta{display:inline-flex;align-items:center;height:40px;padding:0 20px;border-radius:999px;background:var(--brand);color:#fff;font-size:.82rem;font-weight:900;text-decoration:none}

/* ── local hero ── */
.local-hero{background:#f9fffd;border-radius:12px;padding:28px 32px;margin-bottom:14px;display:flex;align-items:center;gap:24px}
.local-hero-text h1{font-size:1.4rem;font-weight:900;color:#0f172a;margin:0 0 6px}
.local-hero-text p{font-size:.84rem;color:#475569;margin:0 0 16px}
.local-search{display:flex;height:44px;border:2px solid #0f766e;border-radius:8px;overflow:hidden;width:100%;max-width:420px}
.local-search input{flex:1;border:0;outline:none;padding:0 14px;font-size:.9rem;background:#fff}
.local-search button{width:80px;background:#0f766e;color:#fff;border:0;font-size:.84rem;font-weight:900;cursor:pointer}
.local-table{width:100%;border-collapse:collapse;font-size:.82rem}
.local-table th{text-align:left;padding:8px 10px;border-bottom:2px solid #e2e8f0;font-weight:800;color:#475569;font-size:.76rem}
.local-table td{padding:9px 10px;border-bottom:1px solid #f1f5f9;color:#111}
.local-table tr:hover td{background:#f9fffd}
.local-table .t-title{font-weight:700;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.local-table .t-badge{display:inline-flex;align-items:center;height:18px;padding:0 7px;border-radius:4px;font-size:.66rem;font-weight:900;background:#f0fdf4;color:#0f766e;border:1px solid rgba(15,118,110,.2)}
.mid-banner{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:14px}
.mid-link{position:relative;display:block;text-decoration:none;color:#0f172a;border:1px solid rgba(0,0,0,.08);border-radius:12px;padding:16px 18px;overflow:hidden}
.mid-link.biz{background:linear-gradient(135deg,#f0fdf4 0%,#ecfeff 100%)}
.mid-link.member{background:linear-gradient(135deg,#eff6ff 0%,#f5f3ff 100%)}
.mid-top{font-size:.68rem;font-weight:900;letter-spacing:.06em;color:#0f766e;margin-bottom:6px}
.mid-main{font-size:1rem;font-weight:900;line-height:1.35;margin-bottom:6px}
.mid-sub{font-size:.78rem;line-height:1.45;color:#475569;max-width:85%}
.mid-btn{display:inline-flex;align-items:center;height:30px;padding:0 12px;border-radius:999px;margin-top:10px;font-size:.74rem;font-weight:900;background:rgba(15,23,42,.08)}
.mid-icon{position:absolute;right:16px;bottom:12px;font-size:1.7rem;opacity:.9}

/* ── now hero ── */
.now-hero{background:linear-gradient(135deg,#eef4ff 0%,#fff 55%);border-radius:20px;padding:28px 32px;margin-bottom:14px;display:flex;align-items:center;gap:28px}
.now-hero-text h1{font-size:1.4rem;font-weight:900;color:#111;margin:0 0 6px}
.now-hero-text p{font-size:.84rem;color:#64748b;margin:0 0 14px}
.now-hero-btns{display:flex;gap:8px}
.now-hero-btns a{display:inline-flex;align-items:center;height:38px;padding:0 18px;border-radius:999px;font-size:.82rem;font-weight:900;text-decoration:none}
.now-hero-btns .btn-p{background:var(--brand);color:#fff}
.now-hero-btns .btn-r{background:#ef4444;color:#fff}
.now-hero-badge{flex-shrink:0;width:120px;height:120px;border-radius:50%;background:var(--brand);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff}
.now-hero-badge .big{font-size:2rem;font-weight:900;line-height:1}
.now-hero-badge .sm{font-size:.7rem;font-weight:700;margin-top:4px}
.deadline-list{display:flex;flex-direction:column;gap:8px}
.deadline-item{display:flex;align-items:center;gap:12px;text-decoration:none;padding:10px;border:1px solid #fee2e2;border-radius:10px;background:#fff5f5}
.deadline-item img{width:52px;height:52px;border-radius:8px;object-fit:cover;flex-shrink:0}
.deadline-item .di-body{flex:1;min-width:0}
.deadline-item .di-title{font-size:.84rem;font-weight:800;color:#111;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.deadline-item .di-meta{font-size:.74rem;color:#64748b;margin-top:2px}
.deadline-item .di-end{flex-shrink:0;text-align:right}
.deadline-item .di-badge{font-size:.72rem;font-weight:900;color:#ef4444}
.deadline-item .di-date{font-size:.7rem;color:#94a3b8;margin-top:1px}

/* ── 태블릿 (900px) ── */
@media(max-width:900px){
  .home-wrap{padding:12px 12px 56px}
  .cols-5,.cols-4,.cols-3{grid-template-columns:repeat(2,1fr)}
  .cols-2{grid-template-columns:1fr}
  .section{padding:14px 12px}
  /* modan */
  .modan-hero{grid-template-columns:1fr;padding:28px 24px}
  .modan-hero-stat{flex-direction:row;justify-content:center;flex-wrap:wrap}
  /* onepick */
  .onepick-hero{flex-direction:column;gap:16px;padding:22px 20px}
  .onepick-hero-img{display:none}
  /* udan */
  .udan-hero{padding:22px 20px}
  .udan-region-btns{gap:6px}
  .udan-region-btn{height:30px;font-size:.74rem;padding:0 10px}
  /* local */
  .local-hero{flex-direction:column;align-items:flex-start;padding:20px}
  .local-table{display:none}
  .local-search{max-width:100%}
  /* now */
  .now-hero{flex-direction:column;gap:16px;padding:22px 20px}
  .now-hero-badge{display:none}
  /* 공통 */
  .mid-banner{grid-template-columns:1fr}
  .mid-link{padding:14px 16px}
  .cat-icons{grid-template-columns:repeat(5,1fr)}
  .campaign-card .body{padding:8px 9px 9px}
  .campaign-card .body h3{font-size:.8rem}
  .campaign-card .promo{font-size:.72rem}
  .campaign-card .meta{font-size:.68rem}
}

/* ── 모바일 (640px) ── */
@media(max-width:640px){
  .home-wrap{padding:10px 10px 56px}
  .cols-5,.cols-4,.cols-3{grid-template-columns:repeat(2,1fr)}
  .section{padding:12px 10px;border-radius:12px;margin-bottom:10px}
  .section h2{font-size:.96rem}
  /* hero */
  .modan-hero{padding:22px 16px;border-radius:14px}
  .modan-hero h1{font-size:1.25rem}
  .modan-hero p{font-size:.8rem}
  .modan-hero-btns a{height:38px;padding:0 16px;font-size:.78rem}
  .modan-stat-item{padding:10px 14px}
  .modan-stat-item .num{font-size:1.1rem}
  .onepick-hero{padding:18px 14px;border-radius:14px}
  .onepick-hero-text h1{font-size:1.2rem}
  .onepick-hero-text p{font-size:.8rem;margin-bottom:10px}
  .onepick-badge{height:24px;font-size:.7rem;padding:0 10px}
  .onepick-hero-btn{height:38px;padding:0 18px;font-size:.78rem}
  .udan-hero{padding:18px 14px;border-radius:14px}
  .udan-hero h1{font-size:1.2rem}
  .udan-hero p{font-size:.8rem}
  .udan-hero-cta{height:36px;padding:0 16px;font-size:.78rem}
  .now-hero{padding:18px 14px;border-radius:14px}
  .now-hero-text h1{font-size:1.2rem}
  .now-hero-text p{font-size:.8rem}
  .now-hero-btns a{height:34px;padding:0 14px;font-size:.78rem}
  .local-hero{padding:16px 14px;border-radius:12px}
  .local-hero-text h1{font-size:1.15rem}
  .local-hero-text p{font-size:.8rem}
  /* 카드 */
  .campaign-card .body h3{font-size:.78rem}
  .campaign-card .promo{font-size:.7rem}
  .campaign-card .meta{font-size:.66rem}
  /* cat */
  .cat-icons{grid-template-columns:repeat(5,1fr);gap:6px}
  .cat-icon{padding:10px 4px}
  .cat-icon b{font-size:1.2rem}
  .cat-icon span{font-size:.66rem}
  /* mid-banner */
  .mid-link{padding:14px}
  .mid-main{font-size:.9rem}
  .mid-sub{font-size:.74rem}
  .mid-icon{font-size:1.4rem}
  /* deadline */
  .deadline-item img{width:44px;height:44px}
  .deadline-item .di-title{font-size:.8rem}
  .deadline-item .di-meta{font-size:.7rem}
}

/* ── 소형 모바일 (400px) ── */
@media(max-width:400px){
  .cols-5,.cols-4,.cols-3{grid-template-columns:repeat(2,1fr)}
  .cols-2{grid-template-columns:1fr}
  .cat-icons{grid-template-columns:repeat(4,1fr)}
  .modan-hero h1,.onepick-hero-text h1,.udan-hero h1,.local-hero-text h1,.now-hero-text h1{font-size:1.1rem}
  .section-head a{font-size:.72rem}
}


/* ============================================================
   2부: modan 전용 REVU 스타일 블록 (.rv-*)
   원본에서 <% if modan %> 안에 있던 블록. 여기서는 무조건 로드하지만
   DOM에 .rv-* 요소가 있을 때만 적용되므로 다른 사이트에 영향 없음.
   ============================================================ */

:root{
  --bg:#f5f7fb;--surface:#ffffff;--line:#e5e7eb;--text:#111827;--sub:#6b7280;
  --brand:#03C75A;--brand-soft:#ebfbf1;--brand-deep:#02b350;
  --orange:#ff6a3d;--orange-soft:#fff1ec;--blue:#3b82f6;--blue-soft:#eef5ff;--red:#ef4444;
  --shadow-xs:0 2px 8px rgba(15,23,42,.04);--shadow-sm:0 8px 20px rgba(15,23,42,.06);
  --shadow-md:0 14px 36px rgba(15,23,42,.08);--shadow-lg:0 24px 60px rgba(15,23,42,.12);
}
body{background:radial-gradient(circle at top left,rgba(3,199,90,.05),transparent 24%),radial-gradient(circle at top right,rgba(59,130,246,.05),transparent 18%),linear-gradient(180deg,#f8fafc 0%,#f5f7fb 100%);}
.home-wrap{max-width:1320px;margin:0 auto;padding:24px 24px 56px;}
.hero-wrap{display:grid;grid-template-columns:1.45fr .75fr;gap:18px;margin-bottom:24px;}
.hero-main{position:relative;overflow:hidden;min-height:360px;border-radius:32px;background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(255,255,255,.94)),linear-gradient(135deg,#eefaf3,#f3f8ff);border:1px solid rgba(255,255,255,.9);box-shadow:var(--shadow-lg);padding:34px;}
.hero-main:before{content:'';position:absolute;right:-80px;top:-70px;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(3,199,90,.16),rgba(3,199,90,0) 72%);}
.hero-main:after{content:'';position:absolute;left:-60px;bottom:-90px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(59,130,246,.11),rgba(59,130,246,0) 72%);}
.hero-badge{position:relative;z-index:1;display:inline-flex;align-items:center;height:34px;padding:0 14px;border-radius:999px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-xs);color:var(--brand);font-size:.78rem;font-weight:900;margin-bottom:16px;}
.hero-title{position:relative;z-index:1;margin:0 0 12px;font-size:2.4rem;line-height:1.15;letter-spacing:-.05em;font-weight:900;color:#111827;}
.hero-title em{color:var(--brand);font-style:normal;}
.hero-desc{position:relative;z-index:1;margin:0 0 20px;max-width:620px;color:#4b5563;font-size:.96rem;line-height:1.75;}
.hero-actions{position:relative;z-index:1;display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px;}
.hero-btn{display:inline-flex;align-items:center;justify-content:center;height:46px;padding:0 22px;border-radius:999px;text-decoration:none;font-size:.9rem;font-weight:900;box-shadow:var(--shadow-xs);}
.hero-btn.primary{background:var(--orange);color:#fff;}
.hero-btn.secondary{background:#fff;color:#111827;border:1px solid var(--line);}
.hero-search{position:relative;z-index:1;display:flex;gap:8px;max-width:620px;padding:8px;border-radius:999px;background:#fff;border:1px solid var(--line);box-shadow:0 12px 28px rgba(15,23,42,.07);margin-bottom:16px;}
.hero-search input{flex:1;height:46px;border:none;outline:none;background:transparent;padding:0 16px;font-size:.92rem;color:var(--text);font-family:inherit;}
.hero-search button{height:46px;padding:0 22px;border:none;border-radius:999px;background:linear-gradient(135deg,var(--brand),#19cf6d);color:#fff;font-size:.88rem;font-weight:900;cursor:pointer;font-family:inherit;}
.hero-points{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:760px;}
.hero-point{background:rgba(255,255,255,.84);border:1px solid rgba(255,255,255,.82);backdrop-filter:blur(8px);border-radius:20px;padding:14px;box-shadow:var(--shadow-sm);}
.hero-point .lbl{font-size:.72rem;color:#6b7280;margin-bottom:4px;font-weight:700;}
.hero-point .val{font-size:.96rem;line-height:1.4;font-weight:900;color:#111827;letter-spacing:-.02em;}
.hero-side{display:grid;grid-template-rows:1fr 1fr;gap:18px;}
.side-card{position:relative;overflow:hidden;border-radius:28px;padding:24px;border:1px solid rgba(255,255,255,.9);box-shadow:var(--shadow-md);}
.side-card.biz{background:linear-gradient(135deg,#fff7f1,#fff2ec);}
.side-card.member{background:linear-gradient(135deg,#eefaf3,#effbf8);}
.side-card .eyebrow{font-size:.76rem;color:#6b7280;font-weight:900;letter-spacing:.05em;margin-bottom:10px;}
.side-card .ttl{font-size:1.22rem;line-height:1.4;font-weight:900;letter-spacing:-.03em;color:#111827;margin-bottom:8px;}
.side-card .dsc{font-size:.82rem;line-height:1.65;color:#6b7280;margin-bottom:14px;}
.side-card .cta{display:inline-flex;align-items:center;justify-content:center;height:40px;padding:0 18px;border-radius:999px;color:#fff;text-decoration:none;font-size:.82rem;font-weight:900;}
.side-card.biz .cta{background:var(--orange);}
.side-card.member .cta{background:var(--brand);}
.side-card .art{position:absolute;right:18px;bottom:8px;font-size:4rem;opacity:.14;}
.cat-wrap{margin-bottom:28px;}
.cat-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:8px;width:100%;}
.cat-item{text-decoration:none;color:#374151;display:flex;flex-direction:column;align-items:center;gap:6px;transition:transform .18s ease;padding:4px 0;}
.cat-item:hover{transform:translateY(-2px);}
.cat-icon{width:100%;aspect-ratio:1;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:1.6rem;background:#fff;border:1px solid #eceff3;box-shadow:0 2px 8px rgba(15,23,42,.05);}
.cat-label{font-size:.82rem;font-weight:800;color:#374151;line-height:1.2;text-align:center;}
.section{margin-bottom:32px;border:none!important;}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:14px;}
.sec-left{display:flex;align-items:center;gap:10px;}
.sec-stick{width:5px;height:26px;border-radius:999px;}
.sec-title{font-size:1.1rem;line-height:1.2;font-weight:900;color:#111827;letter-spacing:-.025em;}
.sec-sub{margin-top:4px;font-size:.8rem;color:#6b7280;}
.sec-more{text-decoration:none;color:#6b7280;background:#fff;border:1px solid var(--line);border-radius:999px;padding:9px 13px;font-size:.82rem;font-weight:800;}
.cp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.cp-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.cp-card{display:block;text-decoration:none;color:inherit;background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .22s ease,box-shadow .22s ease;}
.cp-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);}
.cp-media{position:relative;aspect-ratio:4/3;overflow:hidden;}
.cp-media img{width:100%;height:100%;object-fit:cover;display:block;}
.cp-emoji{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:4rem;opacity:.42;}
.cp-badges{position:absolute;top:10px;left:10px;display:flex;gap:6px;flex-wrap:wrap;}
.bx{display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:999px;font-size:.67rem;font-weight:900;box-shadow:0 4px 10px rgba(15,23,42,.08);}
.bx-white{background:#fff;color:#111827;}
.bx-red{background:#ef4444;color:#fff;}
.bx-green{background:#03C75A;color:#fff;}
.bx-orange-s{background:#fff4ef;color:#ff6a3d;box-shadow:none;}
.bx-blue-s{background:#eef5ff;color:#2563eb;box-shadow:none;}
.cp-body{padding:14px;}
.cp-area{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:999px;background:#eef5ff;color:#2563eb;font-size:.71rem;font-weight:900;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;}
.cp-title{font-size:.92rem;line-height:1.5;font-weight:900;color:#111827;min-height:2.95em;margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.cp-benefit{display:inline-flex;align-items:center;max-width:100%;padding:7px 10px;border-radius:999px;background:#fff4ef;color:#ff6a3d;font-size:.74rem;font-weight:900;margin-bottom:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cp-stats{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.75rem;margin-bottom:6px;}
.cp-stats b{color:#111827;font-weight:900;}
.chance{font-size:.68rem;font-weight:900;padding:5px 8px;border-radius:999px;}
.progress{height:6px;background:#eef2f7;border-radius:999px;overflow:hidden;}
.progress div{height:100%;border-radius:999px;}
.cp-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:7px;}
.cp-bottom .lk{font-size:.72rem;font-weight:900;color:#111827;}
.cp-bottom .dt{font-size:.71rem;font-weight:800;color:#9ca3af;}
.fav-btn{position:absolute;top:10px;right:10px;width:30px;height:30px;background:rgba(255,255,255,.9);border:none;border-radius:50%;cursor:pointer;font-size:.85rem;display:flex;align-items:center;justify-content:center;z-index:2;box-shadow:0 2px 8px rgba(0,0,0,.1);}
.mid-banner{display:grid;grid-template-columns:1.2fr .8fr;gap:14px;margin-bottom:30px;}
.mid-link{position:relative;overflow:hidden;text-decoration:none;border-radius:24px;padding:24px 26px;border:1px solid var(--line);box-shadow:var(--shadow-sm);}
.mid-link.biz{background:linear-gradient(135deg,#fff7f1,#fff);}
.mid-link.member{background:linear-gradient(135deg,#eefaf3,#fff);}
.mid-top{font-size:.75rem;font-weight:900;color:#6b7280;letter-spacing:.05em;margin-bottom:8px;}
.mid-main{font-size:1.2rem;line-height:1.4;font-weight:900;color:#111827;letter-spacing:-.03em;margin-bottom:6px;}
.mid-sub{font-size:.82rem;color:#6b7280;line-height:1.7;}
.mid-btn{display:inline-flex;align-items:center;height:38px;padding:0 16px;border-radius:999px;margin-top:14px;font-size:.8rem;font-weight:900;color:#0f172a;background:#fff;}
.mid-link.biz .mid-btn{background:#ff6a3d;color:#fff;}
.mid-link.member .mid-btn{background:#03C75A;color:#fff;}
.mid-icon{position:absolute;right:18px;bottom:8px;font-size:4.1rem;opacity:.14;}
@media(max-width:1180px){.hero-wrap{grid-template-columns:1fr}.hero-points{grid-template-columns:1fr 1fr}}
@media(max-width:960px){.cp-grid,.cp-grid-4{grid-template-columns:repeat(2,1fr)}.mid-banner{grid-template-columns:1fr}}
@media(max-width:760px){.home-wrap{padding:16px 16px 40px}.hero-main{padding:24px}.hero-title{font-size:1.95rem}.hero-points{grid-template-columns:1fr}}
@media(max-width:760px){.cat-grid{grid-template-columns:repeat(5,1fr)}}
@media(max-width:560px){
  .cp-grid,.cp-grid-4{grid-template-columns:repeat(2,1fr);gap:8px}
  .cat-icon{font-size:1.1rem}.cat-label{font-size:.65rem}
  .cp-body{padding:8px}
  .cp-title{font-size:0.78rem;min-height:2.2em}
  .cp-sub{font-size:0.7rem}
  .cp-apply-row{font-size:0.7rem}
  .cp-ch,.cp-type-badge,.cp-deadline-badge{font-size:0.62rem;padding:2px 5px}
}

/* provision ellipsis */
.promo{
  max-width:100%;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  display:inline-block !important;
  vertical-align:top;
}



/* provision ellipsis force */
.body{min-width:0;}
.promo,
.cp-benefit,
.cp-area{
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}




/* single-line ellipsis for benefit */
.cp-card, .cp-card .cp-body { min-width: 0 !important; }
.cp-card .cp-body .cp-benefit{
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}



/* safe single-line ellipsis for benefit */
.cp-body{min-width:0;}
.cp-benefit{
  display:block;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}



/* cp-benefit one-line hard ellipsis */
.cp-card { overflow: hidden; }
.cp-body { overflow: hidden; min-width: 0; }
.cp-benefit{
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  word-break:normal !important;
}


/* ── REVU 스타일 메인 (modan 전용) ── */
.rv-home { max-width:100%; padding:0 100px 80px; }

/* HERO 배너 */
.rv-hero-banner { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; padding:78px 0 86px; }
.rv-bn { border-radius:20px; padding:28px 26px 24px; display:flex; flex-direction:column; justify-content:space-between; min-height:180px; position:relative; overflow:hidden; text-decoration:none; transition:transform 0.18s,box-shadow 0.18s; }
.rv-bn:hover { transform:translateY(-3px); box-shadow:0 10px 30px rgba(0,0,0,0.15); }
.rv-bn-1 { background:#0f172a; }
.rv-bn-2 { background:#1a4480; }
.rv-bn-3 { background:#03C75A; }
.rv-bn-tag { font-size:10px; font-weight:900; padding:3px 10px; border-radius:999px; display:inline-block; width:fit-content; margin-bottom:10px; letter-spacing:.05em; }
.rv-bn-1 .rv-bn-tag { background:rgba(3,199,90,0.25); color:#03C75A; }
.rv-bn-2 .rv-bn-tag { background:rgba(255,255,255,0.15); color:rgba(255,255,255,0.9); }
.rv-bn-3 .rv-bn-tag { background:rgba(0,0,0,0.12); color:rgba(0,0,0,0.75); }
.rv-bn-title { font-size:20px; font-weight:900; line-height:1.35; margin-bottom:6px; }
.rv-bn-1 .rv-bn-title, .rv-bn-2 .rv-bn-title, .rv-bn-3 .rv-bn-title { color:#fff; }
.rv-bn-desc { font-size:12px; line-height:1.65; }
.rv-bn-1 .rv-bn-desc, .rv-bn-2 .rv-bn-desc { color:rgba(255,255,255,0.6); }
.rv-bn-3 .rv-bn-desc { color:rgba(255,255,255,0.85); }
.rv-bn-btn { margin-top:18px; display:inline-flex; align-items:center; height:32px; padding:0 14px; border-radius:8px; font-size:12px; font-weight:800; width:fit-content; }
.rv-bn-1 .rv-bn-btn { background:#03C75A; color:#fff; }
.rv-bn-2 .rv-bn-btn { background:#fff; color:#1a4480; }
.rv-bn-3 .rv-bn-btn { background:#fff; color:#03C75A; }
.rv-bn-deco { position:absolute; right:18px; bottom:14px; width:88px; height:88px; opacity:0.85; pointer-events:none; user-select:none; filter:drop-shadow(0 4px 12px rgba(0,0,0,0.18)); }
.rv-bn-1 .rv-bn-deco, .rv-bn-2 .rv-bn-deco { opacity:0.78; filter:drop-shadow(0 4px 12px rgba(0,0,0,0.25)) brightness(1.15); }
@media(max-width:768px) {
  .rv-hero-banner { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; gap:12px; padding:16px 0 12px; scrollbar-width:none; }
  .rv-hero-banner::-webkit-scrollbar { display:none; }
  .rv-bn { min-width:78vw; max-width:78vw; scroll-snap-align:start; flex-shrink:0; }
}

/* HERO */
.rv-hero { padding:64px 0 40px; }
.rv-hero-inner { display:grid; grid-template-columns:1fr 520px; gap:48px; align-items:center; }
.rv-hero-badge { display:inline-flex; align-items:center; height:30px; padding:0 12px; border-radius:999px; background:#f0fdf4; color:#15803d; font-size:.78rem; font-weight:800; margin-bottom:16px; border:1px solid #bbf7d0; }
.rv-hero-title { font-size:2.8rem; font-weight:900; color:#111; line-height:1.3; margin:0 0 14px; letter-spacing:-0.04em; }
.rv-hero-title em { color:var(--brand); font-style:normal; }
.rv-hero-desc { font-size:1rem; color:#555; line-height:1.7; margin:0 0 24px; }
.rv-hero-btns { display:flex; gap:10px; margin-bottom:28px; flex-wrap:wrap; }
.rv-hero-btn { display:inline-flex; align-items:center; height:52px; padding:0 30px; border-radius:8px; font-size:1rem; font-weight:800; text-decoration:none; transition:all 0.15s; }
.rv-hero-btn.primary { background:var(--brand); color:#fff; }
.rv-hero-btn.primary:hover { opacity:0.88; }
.rv-hero-btn.outline { background:#fff; color:#333; border:1.5px solid #ddd; }
.rv-hero-btn.outline:hover { border-color:#999; }
.rv-hero-stats { display:flex; align-items:center; gap:20px; }
.rv-stat-n { font-size:1.8rem; font-weight:900; color:#111; }
.rv-stat-l { font-size:.76rem; color:#888; margin-top:2px; }
.rv-stat-div { width:1px; height:32px; background:#e5e7eb; }

/* MOCKUP */
.rv-mockup { background:#fff; border-radius:16px; box-shadow:0 8px 40px rgba(0,0,0,0.12); overflow:hidden; border:1px solid #f0f0f0; }
.rv-mockup-head { background:#f5f5f5; padding:10px 14px; display:flex; align-items:center; gap:10px; border-bottom:1px solid #e8e8e8; }
.rv-mockup-dots { display:flex; gap:5px; }
.rv-mockup-dots span { width:10px; height:10px; border-radius:50%; background:#ddd; }
.rv-mockup-dots span:first-child { background:#ff5f57; }
.rv-mockup-dots span:nth-child(2) { background:#ffbd2e; }
.rv-mockup-dots span:nth-child(3) { background:#28c940; }
.rv-mockup-bar { flex:1; background:#fff; border-radius:4px; padding:4px 10px; font-size:.75rem; color:#888; text-align:center; border:1px solid #e8e8e8; }
.rv-mockup-body { padding:12px; display:flex; flex-direction:column; gap:8px; }
.rv-mockup-card { display:flex; align-items:center; gap:10px; padding:10px; border:1px solid #f0f0f0; border-radius:10px; background:#fafafa; }
.rv-mc-img { width:48px; height:48px; border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:1.6rem; flex-shrink:0; }
.rv-mc-tag { display:inline-block; font-size:.66rem; font-weight:800; color:var(--brand); background:#f0fdf4; padding:2px 7px; border-radius:4px; margin-bottom:3px; }
.rv-mc-title { font-size:.8rem; font-weight:700; color:#111; margin-bottom:2px; }
.rv-mc-sub { font-size:.72rem; color:#888; }

/* 카테고리 */
/* 카테고리 row — 4개 자매 사이트 (.nci/.uci/.lim) 와 동일한 파스텔 동그라미 패턴 */
.rv-cats { padding:24px 0 36px; margin-bottom:24px; }
.rv-cats-inner { display:flex; justify-content:center; align-items:flex-start; gap:24px; padding:8px 32px; flex-wrap:wrap; }
.rv-cat { display:flex; flex-direction:column; align-items:center; gap:8px; padding:6px 4px; border-radius:14px; text-decoration:none; transition:transform .15s ease; flex-shrink:0; }
.rv-cat:hover { transform:translateY(-3px); background:transparent; border:0; }
.rv-cat-icon { width:80px; height:80px; border-radius:50%; background:var(--ci-bg,#f1f5f9); color:var(--ci-fg,#0f172a); display:flex; align-items:center; justify-content:center; font-size:2.4rem; box-shadow:0 4px 12px rgba(15,23,42,0.06); transition:transform .15s ease, box-shadow .15s ease; line-height:1; flex-shrink:0; aspect-ratio:1/1; }
.rv-cat:hover .rv-cat-icon { box-shadow:0 6px 16px rgba(15,23,42,0.1); }
.rv-cat-label { font-size:0.78rem; font-weight:800; color:#334155; letter-spacing:-0.015em; white-space:nowrap; }

/* 섹션 */
.rv-section { margin-bottom:64px; }
.rv-section + .rv-section { margin-top:8px; }
.rv-section-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; padding-top:8px; }
.rv-section-title { font-size:1.3rem; font-weight:900; color:#111; }
.rv-section-more { font-size:.82rem; color:#888; text-decoration:none; font-weight:600; }
.rv-section-more:hover { color:var(--brand); }

/* 캠페인 카드 */
.rv-cp-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:16px; }
.rv-cp-card { display:block; text-decoration:none; background:#fff; border:1px solid #f0f0f0; border-radius:12px; overflow:hidden; transition:transform 0.18s,box-shadow 0.18s; }
.rv-cp-card:hover { transform:translateY(-3px); box-shadow:0 8px 24px rgba(0,0,0,0.09); }
.ai-rec-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:16px; }
@media(max-width:1280px) { .ai-rec-grid { grid-template-columns:repeat(5,1fr); } }
@media(max-width:1024px) { .ai-rec-grid { grid-template-columns:repeat(4,1fr); } }
/* 모바일: 가로 스와이프 캐러셀 — 다음 카드 살짝 보여서 스크롤 가능 신호.
   AI 큐레이션 톤 강조 + 카드 정보 밀도 적정 유지. */
@media(max-width:768px) {
  .ai-rec-grid {
    display:flex;
    grid-template-columns:none;
    overflow-x:auto;
    overflow-y:hidden;
    scroll-snap-type:x mandatory;
    scroll-padding-left:4px;
    -webkit-overflow-scrolling:touch;
    gap:12px;
    padding:6px 4px 16px;
    scrollbar-width:none;
  }
  .ai-rec-grid::-webkit-scrollbar { display:none; }
  .ai-rec-grid > .rv-ai-card {
    flex:0 0 80%;
    scroll-snap-align:start;
    min-width:0;
  }
}

/* AI 추천 카드 (modan 홈) — 인라인 스타일 추출, 원래 멀티컬러 톤 유지 */
.rv-ai-card { display:block; text-decoration:none; color:inherit; background:#fff; border:0.5px solid #e5e7eb; border-radius:12px; overflow:hidden; transition:transform 0.18s ease, box-shadow 0.18s ease; }
.rv-ai-card:hover { transform:translateY(-3px); box-shadow:0 8px 24px rgba(0,0,0,0.09); }
.rv-ai-thumb { position:relative; height:160px; overflow:hidden; }
.rv-ai-thumb img { width:100%; height:100%; object-fit:cover; }
.rv-ai-thumb-empty { display:flex; align-items:center; justify-content:center; font-size:28px; background:#EEEDFE; }
.rv-ai-match { position:absolute; top:10px; left:10px; background:#534AB7; color:#fff; font-size:11px; font-weight:700; padding:3px 9px; border-radius:20px; letter-spacing:-0.005em; }
.rv-ai-best { position:absolute; top:10px; right:10px; background:#FF4B4B; color:#fff; font-size:11px; font-weight:700; padding:3px 9px; border-radius:20px; letter-spacing:-0.005em; }
/* 카드별 차별화 라벨 — 7장이 시각적으로 다 다르게 */
.rv-ai-lab { position:absolute; top:10px; right:10px; font-size:11px; font-weight:800; padding:4px 10px; border-radius:20px; letter-spacing:-0.005em; box-shadow:0 2px 6px rgba(0,0,0,0.18); display:inline-flex; align-items:center; gap:3px; }
.rv-ai-lab-best     { background:linear-gradient(135deg,#fbbf24,#f59e0b); color:#78350f; }
.rv-ai-lab-deadline { background:linear-gradient(135deg,#fb7185,#dc2626); color:#fff; }
.rv-ai-lab-local    { background:linear-gradient(135deg,#34d399,#059669); color:#fff; }
.rv-ai-lab-hot      { background:linear-gradient(135deg,#fb923c,#ea580c); color:#fff; }
.rv-ai-lab-love     { background:linear-gradient(135deg,#f472b6,#db2777); color:#fff; }
.rv-ai-lab-premium  { background:linear-gradient(135deg,#a78bfa,#7c3aed); color:#fff; }
.rv-ai-lab-new      { background:linear-gradient(135deg,#60a5fa,#2563eb); color:#fff; }
.rv-ai-lab-region   { background:linear-gradient(135deg,#5eead4,#0d9488); color:#fff; }
.rv-ai-lab-quality  { background:linear-gradient(135deg,#fde047,#ca8a04); color:#422006; }
.rv-ai-lab-pick     { background:linear-gradient(135deg,#cbd5e1,#64748b); color:#fff; }
.rv-ai-thumb-empty .rv-ai-lab { top:10px; right:10px; }
/* AI 한 줄 추천 사유 — 카드와 자연스럽게 통합 (서브타이틀 스타일) */
.rv-ai-aireason { display:none; margin:-4px 0 8px; padding-left:8px; border-left:2px solid #c7d2fe; font-size:11.5px; line-height:1.5; color:#5b3eb1; font-weight:500; }
.rv-ai-aireason:not(:empty) { display:block; }
.rv-ai-aireason-icon { font-size:11px; opacity:0.7; margin-right:3px; }
.rv-ai-aireason-text { word-break:keep-all; }
.rv-ai-aireason.loading { color:#94a3b8; font-style:italic; font-size:10.5px; font-weight:400; border-left-color:#e2e8f0; animation:rv-ai-pulse 1.6s ease-in-out infinite; }
.rv-ai-aireason.loading .rv-ai-aireason-icon { display:none; }
@keyframes rv-ai-pulse { 0%,100%{opacity:0.5} 50%{opacity:1} }
/* AI 사유가 표시되면 중복되는 짧은 reason 핀은 숨김 (정보 중복 제거) */
.rv-ai-aireason:not(:empty) ~ .rv-ai-reasons { display:none; }
.rv-ai-body { padding:14px; }
.rv-ai-tags { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:8px; }
.rv-ai-tag { background:#f1f5f9; color:#475569; font-size:11px; padding:2px 8px; border-radius:12px; letter-spacing:-0.005em; }
.rv-ai-plan { display:inline-block; font-size:10px; font-weight:700; padding:2px 8px; border-radius:99px; margin-bottom:4px; letter-spacing:-0.005em; color:#fff; }
.rv-ai-plan-premium { background:linear-gradient(90deg,#7c3aed,#a855f7); }
.rv-ai-plan-pro     { background:linear-gradient(90deg,#0369a1,#0ea5e9); }
.rv-ai-plan-basic   { background:#1e293b; }
.rv-ai-title { font-size:14px; font-weight:700; color:#111; margin-bottom:6px; line-height:1.4; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:2.6em; letter-spacing:-0.015em; }
.rv-ai-reasons { display:flex; flex-wrap:wrap; gap:4px; margin:0 0 8px; }
.rv-ai-reason { display:inline-flex; align-items:center; gap:3px; font-size:10.5px; font-weight:600; padding:3px 8px; border-radius:99px; background:#f5f3ff; color:#5b3eb1; letter-spacing:-0.005em; line-height:1.3; }
.rv-ai-desc { font-size:12px; color:#888; margin-bottom:10px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rv-ai-bars { display:flex; gap:6px; margin-bottom:12px; }
.rv-ai-bar { flex:1; background:#f8f9fa; border-radius:6px; padding:6px 8px; min-width:0; }
.rv-ai-bar-label { font-size:9px; color:#aaa; margin-bottom:3px; }
.rv-ai-bar-track { height:4px; background:#e5e7eb; border-radius:2px; overflow:hidden; }
.rv-ai-bar-fill  { height:100%; border-radius:2px; }
.rv-ai-bar-region   .rv-ai-bar-fill { background:#534AB7; }
.rv-ai-bar-category .rv-ai-bar-fill { background:#1D9E75; }
.rv-ai-bar-quality  .rv-ai-bar-fill { background:#BA7517; }
.rv-ai-bar-value    { font-size:10px; font-weight:700; margin-top:2px; }
.rv-ai-bar-region   .rv-ai-bar-value { color:#534AB7; }
.rv-ai-bar-category .rv-ai-bar-value { color:#0F6E56; }
.rv-ai-bar-quality  .rv-ai-bar-value { color:#854F0B; }
.rv-ai-cta { display:block; text-align:center; padding:10px; background:#534AB7; color:#fff; border-radius:8px; font-size:13px; font-weight:700; transition:background 0.15s; letter-spacing:-0.005em; }
.rv-ai-card:hover .rv-ai-cta { background:#3d3591; }
.rv-cp-thumb { aspect-ratio:4/3; position:relative; background:#f5f5f5; overflow:hidden; }
.rv-cp-thumb img { width:100%; height:100%; object-fit:cover; }
.ai-rec-thumb { width:100% !important; height:160px !important; min-height:160px !important; max-height:160px !important; object-fit:cover !important; display:block !important; aspect-ratio:unset !important; }
.rv-cp-emoji { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:2.5rem; }
.rv-cp-badges { position:absolute; top:8px; left:8px; display:flex; gap:4px; flex-wrap:wrap; }
.rv-badge { height:20px; padding:0 7px; border-radius:999px; font-size:.64rem; font-weight:900; display:inline-flex; align-items:center; }
.rv-badge.white { background:rgba(255,255,255,0.92); color:#111; }
.rv-badge.red { background:#ef4444; color:#fff; }
.rv-badge.green { background:#03C75A; color:#fff; }
.rv-cp-body { padding:12px; }
.rv-cp-area { font-size:.72rem; color:#2563eb; font-weight:700; margin-bottom:4px; }
.rv-cp-title { font-size:.92rem; font-weight:800; color:#111; line-height:1.4; margin-bottom:6px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:2.4em; }
.rv-cp-benefit { font-size:.82rem; color:var(--brand); font-weight:700; margin-bottom:8px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rv-cp-meta { display:flex; justify-content:space-between; align-items:center; font-size:.72rem; color:#888; margin-bottom:6px; }
.rv-chance { padding:2px 7px; border-radius:999px; font-size:.68rem; font-weight:800; }
.rv-progress { height:4px; background:#f0f0f0; border-radius:999px; overflow:hidden; }
.rv-progress div { height:100%; border-radius:999px; }

/* CTA 배너 */
.rv-cta-wrap { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:40px; }
.rv-cta-card { display:flex; align-items:center; gap:16px; padding:20px 24px; border-radius:12px; text-decoration:none; transition:all 0.15s; }
.rv-cta-card.biz { background:linear-gradient(135deg,#f0fdf4,#dcfce7); border:1px solid #bbf7d0; }
.rv-cta-card.member { background:linear-gradient(135deg,#eff6ff,#dbeafe); border:1px solid #bfdbfe; }
.rv-cta-card:hover { transform:translateY(-2px); box-shadow:0 4px 16px rgba(0,0,0,0.08); }
.rv-cta-icon { font-size:2rem; flex-shrink:0; }
.rv-cta-title { font-size:.96rem; font-weight:900; color:#111; margin-bottom:4px; }
.rv-cta-desc { font-size:.78rem; color:#555; line-height:1.5; }
.rv-cta-arrow { margin-left:auto; font-size:1.2rem; color:#888; flex-shrink:0; }

/* 리뷰 (구버전 — 호환용) */
.rv-review-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; }
.rv-review-card { display:block; text-decoration:none; background:#fff; border:1px solid #f0f0f0; border-radius:10px; overflow:hidden; transition:all 0.18s; }
.rv-review-card:hover { transform:translateY(-2px); box-shadow:0 4px 14px rgba(0,0,0,0.07); }
.rv-review-thumb { aspect-ratio:1; overflow:hidden; background:#f5f5f5; }
.rv-review-thumb img { width:100%; height:100%; object-fit:cover; }
.rv-review-body { padding:10px; }
.rv-review-grade { display:inline-block; font-size:.64rem; font-weight:800; color:#15803d; background:#f0fdf4; padding:1px 6px; border-radius:4px; margin-right:4px; }
.rv-review-user { font-size:.74rem; font-weight:700; color:#333; margin-bottom:3px; }
.rv-review-title { font-size:.76rem; color:#555; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }

/* ── 콘텐츠 카드형 리뷰 (신규) ── */
.rv-section-link { font-size:.82rem; color:#0d9488; font-weight:700; text-decoration:none; letter-spacing:-0.01em; transition:color .15s; }
.rv-section-link:hover { color:#0f766e; }
.rv-rev-grid {
  display:grid;
  grid-template-columns:repeat(8,1fr);
  gap:12px;
}
.rv-rev-card {
  display:flex; flex-direction:column;
  text-decoration:none; color:inherit;
  background:#fff; border:1px solid #ecf0f3; border-radius:14px;
  overflow:hidden; transition:transform .18s, box-shadow .18s, border-color .18s;
  min-width:0;
}
.rv-rev-card:hover {
  transform:translateY(-3px);
  box-shadow:0 12px 28px -8px rgba(15,23,42,.12), 0 4px 8px -2px rgba(15,23,42,.05);
  border-color:#cbd5e1;
}
.rv-rev-thumb {
  position:relative;
  aspect-ratio:4/3;
  background:linear-gradient(135deg,#f1f5f9 0%,#e2e8f0 100%);
  overflow:hidden;
}
.rv-rev-thumb img {
  width:100%; height:100%; object-fit:cover;
  transition:transform .35s ease;
}
.rv-rev-card:hover .rv-rev-thumb img { transform:scale(1.06); }
.rv-rev-ch {
  position:absolute; top:10px; left:10px;
  padding:4px 10px; border-radius:99px;
  font-size:11px; font-weight:700;
  color:#fff; background:rgba(15,23,42,.78);
  backdrop-filter:blur(6px);
  letter-spacing:-0.005em;
  box-shadow:0 1px 3px rgba(0,0,0,.15);
}
.rv-rev-ch-blog    { background:rgba(30,64,175,.88); }
.rv-rev-ch-insta   { background:rgba(157,23,77,.88); }
.rv-rev-ch-youtube { background:rgba(153,27,27,.88); }
.rv-rev-ch-tiktok  { background:rgba(91,33,182,.88); }
.rv-rev-rating {
  position:absolute; bottom:10px; left:10px;
  padding:4px 10px; border-radius:99px;
  font-size:11px; color:#fbbf24; letter-spacing:1px;
  background:rgba(15,23,42,.78);
  backdrop-filter:blur(6px);
  line-height:1;
  box-shadow:0 1px 3px rgba(0,0,0,.15);
}
.rv-rev-body {
  padding:14px 16px 16px;
  display:flex; flex-direction:column; gap:7px;
  flex:1; min-width:0;
}
.rv-rev-user {
  display:flex; align-items:center; gap:5px;
  font-size:12px; color:#64748b;
}
.rv-rev-grade { font-size:13px; }
.rv-rev-name { font-weight:700; color:#1e293b; font-size:12.5px; }
.rv-rev-dot  { color:#cbd5e1; }
.rv-rev-date { color:#94a3b8; }
.rv-rev-title {
  font-size:14.5px; font-weight:700; color:#0f172a;
  line-height:1.45; letter-spacing:-0.015em;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  overflow:hidden; word-break:break-word;
}
.rv-rev-snippet {
  font-size:12.5px; color:#475569; line-height:1.65;
  letter-spacing:-0.005em;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  overflow:hidden; word-break:break-word; overflow-wrap:anywhere;
}
.rv-rev-stats {
  display:flex; align-items:center; gap:10px;
  font-size:11.5px; color:#64748b; margin-top:auto;
  padding-top:8px; border-top:1px solid #f1f5f9;
  font-variant-numeric:tabular-nums;
}
.rv-rev-cta {
  margin-left:auto; color:#0d9488; font-weight:700; font-size:11.5px;
  letter-spacing:-0.005em;
}

/* 반응형 — 1x8 가로 1줄 유지하다가 모바일에서 가로 스크롤 */
@media (max-width: 1280px) { .rv-rev-grid { grid-template-columns:repeat(8,1fr); gap:10px; } .rv-rev-body { padding:10px 12px 12px; } .rv-rev-title { font-size:13px; } .rv-rev-snippet { -webkit-line-clamp:2; font-size:11.5px; } }
@media (max-width: 1024px) {
  .rv-rev-grid {
    display:flex; overflow-x:auto; scroll-snap-type:x mandatory;
    grid-template-columns:none; gap:12px;
    padding-bottom:8px;
    scrollbar-width:thin;
  }
  .rv-rev-grid::-webkit-scrollbar { height:6px; }
  .rv-rev-grid::-webkit-scrollbar-thumb { background:#cbd5e1; border-radius:99px; }
  .rv-rev-card { flex:0 0 220px; scroll-snap-align:start; }
}
@media (max-width: 480px) {
  .rv-rev-card { flex:0 0 78%; }
}


/* 반응형 */
@media(max-width:1280px) { .rv-cp-grid { grid-template-columns:repeat(5,1fr); } .rv-review-grid { grid-template-columns:repeat(5,1fr); } }
@media(max-width:1024px) { .rv-hero-inner { grid-template-columns:1fr; } .rv-hero-right { display:none; } .rv-cp-grid { grid-template-columns:repeat(4,1fr); } .rv-review-grid { grid-template-columns:repeat(4,1fr); } }
@media(max-width:768px) { .rv-cp-grid { grid-template-columns:repeat(3,1fr) !important; } .rv-review-grid { grid-template-columns:repeat(3,1fr) !important; } }
@media(max-width:560px) { .rv-cp-grid { grid-template-columns:repeat(2,1fr) !important; gap:8px; } .rv-review-grid { grid-template-columns:repeat(2,1fr) !important; } }
@media(max-width:768px) { .rv-hero-title { font-size:1.6rem; } .rv-cp-grid { grid-template-columns:repeat(2,1fr); } .rv-cta-wrap { grid-template-columns:1fr; } .rv-review-grid { grid-template-columns:repeat(2,1fr); } .rv-home { padding:0 16px 60px; } .rv-hero { padding:28px 0 20px; } .rv-cats-inner { display:grid; grid-template-columns:repeat(5,1fr); gap:14px 4px; padding:8px 0; } .rv-cat { width:auto; height:auto; min-width:0; padding:4px 0; } .rv-cat-icon { width:48px; height:48px; font-size:1.3rem; } .rv-cat-label { font-size:.62rem; } .rv-section { margin-bottom:44px; } }
@media(max-width:480px) {
  .rv-hero-title { font-size:1.35rem; }
  .rv-cp-grid { grid-template-columns:repeat(2,1fr); gap:8px; }
  .rv-cp-grid .cp-body { padding:8px; }
  .rv-cp-grid .cp-title { font-size:0.78rem; min-height:2.2em; }
  .rv-cp-grid .cp-sub { font-size:0.7rem; }
  .rv-cp-grid .cp-apply-row { font-size:0.7rem; }
  .rv-cp-grid { grid-template-columns:repeat(2,1fr) !important; }
}
