/* =========================================================
 * NEWCAR 디자인 2차
 * - 레이아웃 유지
 * - 체감은 더 크게
 * - 카드/제목/버튼/제조사/딜러 시각 강화
 * ========================================================= */

body.ncThemeSoft{
  --bg:#f4f6fb;
  --panel:#ffffff;
  --panel2:#fbfcff;
  --line:#e7ebf4;
  --text:#111827;
  --muted:#667085;

  --brand:#5b6cff;
  --brand2:#8b5cf6;
  --mint:#14b8a6;
  --rose:#f472b6;

  --shadow-sm:0 8px 20px rgba(15,23,42,.05);
  --shadow-md:0 14px 34px rgba(15,23,42,.07);
  --shadow-lg:0 22px 46px rgba(15,23,42,.10);
  --radius:24px;

  background:
    radial-gradient(circle at 0% 0%, rgba(91,108,255,.09), transparent 24%),
    radial-gradient(circle at 100% 0%, rgba(244,114,182,.06), transparent 20%),
    radial-gradient(circle at 50% 100%, rgba(20,184,166,.05), transparent 20%),
    #f4f6fb;
  color:var(--text);
}

body.ncThemeSoft *{
  box-sizing:border-box;
}

body.ncThemeSoft a,
body.ncThemeSoft button,
body.ncThemeSoft input,
body.ncThemeSoft select,
body.ncThemeSoft textarea{
  transition:
    background-color .18s ease,
    border-color .18s ease,
    box-shadow .18s ease,
    transform .18s ease,
    color .18s ease,
    opacity .18s ease;
}

/* =========================================================
 * 공통 레이아웃
 * ========================================================= */
body.ncThemeSoft .ncContainer{
  position:relative;
}

body.ncThemeSoft .ncPage{
  padding-top:20px;
  padding-bottom:34px;
}

body.ncThemeSoft .ncContainer > section{
  position:relative;
}

body.ncThemeSoft .ncContainer > section + section{
  margin-top:16px !important;
}

/* =========================================================
 * 상단 헤더
 * ========================================================= */
body.ncThemeSoft .ncTop{
  background:rgba(255,255,255,.82);
  border-bottom:1px solid rgba(231,235,244,.92);
  box-shadow:0 10px 26px rgba(15,23,42,.05);
  backdrop-filter:blur(18px);
}

body.ncThemeSoft .ncTopIn{
  min-height:76px;
}

body.ncThemeSoft .ncBrandSymbol{
  width:30px;
  height:30px;
  filter:drop-shadow(0 6px 14px rgba(91,108,255,.20));
}

body.ncThemeSoft .ncBrandTitle{
  color:#111827;
  font-size:26px;
  letter-spacing:-0.055em;
  text-shadow:0 1px 0 rgba(255,255,255,.85);
}

body.ncThemeSoft .ncTopSearch{
  position:relative;
  background:linear-gradient(180deg, #ffffff 0%, #fbfcff 100%);
  border:1px solid #dde4f1;
  border-radius:18px;
  padding:9px 10px;
  box-shadow:
    0 8px 22px rgba(15,23,42,.045),
    inset 0 1px 0 rgba(255,255,255,.95);
}

body.ncThemeSoft .ncTopSearch:before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  padding:1px;
  background:linear-gradient(135deg, rgba(91,108,255,.16), rgba(139,92,246,.10), rgba(20,184,166,.08));
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;
          mask-composite:exclude;
  pointer-events:none;
  opacity:.9;
}

body.ncThemeSoft .ncTopSearch:hover{
  transform:translateY(-1px);
  box-shadow:
    0 12px 28px rgba(15,23,42,.06),
    inset 0 1px 0 rgba(255,255,255,.95);
}

body.ncThemeSoft .ncTopSearch:focus-within{
  border-color:rgba(91,108,255,.35);
  box-shadow:
    0 12px 30px rgba(91,108,255,.10),
    0 0 0 4px rgba(91,108,255,.08);
}

body.ncThemeSoft .ncTopSearch input{
  color:#111827;
  font-weight:600;
}

body.ncThemeSoft .ncTopSearch input::placeholder{
  color:#98a2b3;
}

body.ncThemeSoft .ncTopSearch button{
  height:36px;
  padding:0 14px;
  border:none;
  border-radius:12px;
  background:linear-gradient(135deg, #5b6cff 0%, #8b5cf6 100%);
  color:#fff;
  font-weight:900;
  box-shadow:0 10px 22px rgba(91,108,255,.22);
}

body.ncThemeSoft .ncTopSearch button:hover{
  transform:translateY(-1px);
  box-shadow:0 14px 28px rgba(91,108,255,.26);
}

body.ncThemeSoft .ncHeaderBtnLine,
body.ncThemeSoft .ncUserMenuBtn{
  background:linear-gradient(180deg, #ffffff 0%, #fafbff 100%);
  border:1px solid #e3e8f2;
  border-radius:999px;
  box-shadow:0 8px 18px rgba(15,23,42,.045);
}

body.ncThemeSoft .ncHeaderBtnLine:hover,
body.ncThemeSoft .ncUserMenuBtn:hover{
  transform:translateY(-1px);
  background:#fff;
  border-color:#d7e0ef;
  box-shadow:0 12px 24px rgba(15,23,42,.06);
}

body.ncThemeSoft .ncHeaderBtnDark{
  background:linear-gradient(135deg, #111827 0%, #273247 100%);
  border-color:#111827;
  color:#fff;
  box-shadow:0 12px 24px rgba(15,23,42,.18);
}

body.ncThemeSoft .ncHeaderBtnDark:hover{
  transform:translateY(-1px);
  box-shadow:0 16px 28px rgba(15,23,42,.24);
}

body.ncThemeSoft .ncUserMenuBtn[aria-expanded="true"]{
  border-color:rgba(91,108,255,.35);
  box-shadow:0 12px 28px rgba(91,108,255,.12);
}

body.ncThemeSoft .ncUserDropdown{
  border:1px solid #e7ebf4;
  border-radius:20px;
  box-shadow:0 22px 44px rgba(15,23,42,.12);
  overflow:hidden;
}

body.ncThemeSoft .ncUserDropdown a{
  border-radius:12px;
}

body.ncThemeSoft .ncUserDropdown a:hover{
  background:#f6f8ff;
}

body.ncThemeSoft .ncSubNavBar{
  background:rgba(255,255,255,.68);
  border-top:1px solid rgba(231,235,244,.85);
}

body.ncThemeSoft .ncSubNavLink{
  position:relative;
  color:#4b5563;
  background:transparent;
  border:1px solid transparent;
  border-radius:999px;
  font-weight:900;
}

body.ncThemeSoft .ncSubNavLink:hover{
  background:#f7f8ff;
  border-color:#e6ebf6;
  color:#111827;
}

body.ncThemeSoft .ncSubNavLink.isActive{
  background:linear-gradient(135deg, #5b6cff 0%, #8b5cf6 100%);
  color:#fff;
  border-color:transparent;
  box-shadow:0 10px 22px rgba(91,108,255,.18);
}

/* =========================================================
 * 공통 카드
 * ========================================================= */
body.ncThemeSoft .ncHero,
body.ncThemeSoft .ncCard,
body.ncThemeSoft .ncMakerStrip,
body.ncThemeSoft .ncModelRows{
  position:relative;
  background:linear-gradient(180deg, #ffffff 0%, #fcfdff 100%);
  border:1px solid #e7ebf4;
  border-radius:26px;
  box-shadow:var(--shadow-md);
  overflow:hidden;
}

body.ncThemeSoft .ncHero:before,
body.ncThemeSoft .ncCard:before,
body.ncThemeSoft .ncMakerStrip:before,
body.ncThemeSoft .ncModelRows:before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 0% 0%, rgba(91,108,255,.06), transparent 26%),
    radial-gradient(circle at 100% 0%, rgba(244,114,182,.045), transparent 22%);
  pointer-events:none;
}

body.ncThemeSoft .ncHero{
  padding:20px 20px 18px;
}

body.ncThemeSoft .ncCard{
  padding:18px;
}

body.ncThemeSoft .ncCardTitle{
  position:relative;
  margin:0 0 14px;
  padding-left:14px;
  font-size:18px;
  font-weight:950;
  letter-spacing:-0.03em;
  color:#111827;
}

body.ncThemeSoft .ncCardTitle:before{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:6px;
  height:22px;
  border-radius:999px;
  transform:translateY(-50%);
  background:linear-gradient(180deg, #5b6cff 0%, #8b5cf6 100%);
  box-shadow:0 6px 14px rgba(91,108,255,.22);
}

body.ncThemeSoft .ncTitle{
  margin:0;
  font-size:28px;
  line-height:1.12;
  font-weight:980;
  letter-spacing:-0.045em;
  color:#111827;
}

body.ncThemeSoft .ncSub,
body.ncThemeSoft .ncMuted{
  color:#667085;
  line-height:1.65;
}

body.ncThemeSoft .ncHero .ncSub{
  margin-top:8px;
  font-size:14px;
}

body.ncThemeSoft .ncDivider{
  border-top:1px solid #eef1f6;
}

/* =========================================================
 * 칩 / 배지
 * ========================================================= */
body.ncThemeSoft .ncChipRow{
  gap:10px;
  margin-top:12px;
}

body.ncThemeSoft .ncChip{
  background:linear-gradient(180deg, #fbfcff 0%, #f7f9ff 100%);
  border:1px solid #e4eaf8;
  border-radius:999px;
  padding:8px 12px;
  font-size:12px;
  font-weight:900;
  color:#667085;
  box-shadow:0 6px 14px rgba(15,23,42,.035);
}

body.ncThemeSoft .ncChip b{
  color:#111827;
}

body.ncThemeSoft .ncBadge,
body.ncThemeSoft .ncDealerTag{
  display:inline-flex;
  align-items:center;
  padding:6px 11px;
  border-radius:999px;
  border:1px solid #e4e9f5;
  background:linear-gradient(180deg, #fafbff 0%, #f5f7ff 100%);
  color:#465166;
  font-size:12px;
  font-weight:900;
  box-shadow:0 4px 12px rgba(15,23,42,.03);
}

/* =========================================================
 * 검색 / 버튼
 * ========================================================= */
body.ncThemeSoft .ncSearch{
  position:relative;
  background:linear-gradient(180deg, #ffffff 0%, #fbfcff 100%);
  border:1px solid #dde4f1;
  border-radius:18px;
  padding:11px 12px;
  box-shadow:
    0 8px 20px rgba(15,23,42,.045),
    inset 0 1px 0 rgba(255,255,255,.95);
}

body.ncThemeSoft .ncSearch:before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  padding:1px;
  background:linear-gradient(135deg, rgba(91,108,255,.14), rgba(139,92,246,.08), rgba(20,184,166,.07));
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;
          mask-composite:exclude;
  pointer-events:none;
}

body.ncThemeSoft .ncSearch:focus-within{
  box-shadow:
    0 12px 28px rgba(91,108,255,.08),
    0 0 0 4px rgba(91,108,255,.08);
}

body.ncThemeSoft .ncSearch button,
body.ncThemeSoft .ncBtnPrimary,
body.ncThemeSoft .ncDealerBtnPrimary,
body.ncThemeSoft .ncBtnCtaPrimary,
body.ncThemeSoft .ncSubmit{
  background:linear-gradient(135deg, #5b6cff 0%, #8b5cf6 100%);
  border-color:transparent;
  color:#fff;
  box-shadow:0 10px 22px rgba(91,108,255,.18);
}

body.ncThemeSoft .ncSearch button:hover,
body.ncThemeSoft .ncBtnPrimary:hover,
body.ncThemeSoft .ncDealerBtnPrimary:hover,
body.ncThemeSoft .ncBtnCtaPrimary:hover,
body.ncThemeSoft .ncSubmit:hover{
  transform:translateY(-1px);
  box-shadow:0 14px 28px rgba(91,108,255,.22);
}

body.ncThemeSoft .ncBtn,
body.ncThemeSoft .ncDealerBtn,
body.ncThemeSoft .ncBtnCta{
  background:linear-gradient(180deg, #ffffff 0%, #fafbff 100%);
  border:1px solid #e4e9f3;
  border-radius:999px;
  box-shadow:0 8px 18px rgba(15,23,42,.04);
  font-weight:900;
}

body.ncThemeSoft .ncBtn:hover,
body.ncThemeSoft .ncDealerBtn:hover,
body.ncThemeSoft .ncBtnCta:hover{
  transform:translateY(-1px);
  background:#fff;
  border-color:#d8e0ee;
  box-shadow:0 12px 24px rgba(15,23,42,.06);
}

/* =========================================================
 * 제조사 미니 그리드
 * ========================================================= */
body.ncThemeSoft .ncMakerStrip{
  padding:16px;
}

body.ncThemeSoft .ncMakerGrid{
  gap:12px;
}

body.ncThemeSoft .ncMakerMini{
  position:relative;
  border:1px solid #e7ebf4;
  background:linear-gradient(180deg, #ffffff 0%, #fcfdff 100%);
  border-radius:20px;
  padding:12px 10px;
  gap:9px;
  box-shadow:0 10px 22px rgba(15,23,42,.045);
  overflow:hidden;
}

body.ncThemeSoft .ncMakerMini:before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:4px;
  background:linear-gradient(90deg, #5b6cff 0%, #8b5cf6 55%, #14b8a6 100%);
  opacity:.9;
}

body.ncThemeSoft .ncMakerMini:hover{
  transform:translateY(-3px);
  border-color:#dce4f3;
  box-shadow:0 18px 34px rgba(15,23,42,.08);
}

body.ncThemeSoft .ncMakerLogoMini{
  width:46px;
  height:46px;
  border-radius:15px;
  background:
    linear-gradient(135deg, rgba(91,108,255,.12), rgba(139,92,246,.10)),
    #f7f9ff;
  border:1px solid #edf1f8;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.95),
    0 6px 14px rgba(15,23,42,.04);
}

body.ncThemeSoft .ncMakerLogoMini img{
  width:76%;
  height:76%;
  object-fit:contain;
}

body.ncThemeSoft .ncMakerNameMini{
  font-size:12px;
  font-weight:950;
  color:#111827;
}

body.ncThemeSoft .ncMakerCntMini{
  font-size:11px;
  color:#7a8599;
}

/* =========================================================
 * 인기 모델 카드
 * ========================================================= */
body.ncThemeSoft .ncCardGrid{
  gap:14px;
}

body.ncThemeSoft .ncItem{
  position:relative;
  border:1px solid #e7ebf4;
  background:linear-gradient(180deg, #ffffff 0%, #fcfdff 100%);
  border-radius:22px;
  overflow:hidden;
  box-shadow:0 12px 26px rgba(15,23,42,.055);
}

body.ncThemeSoft .ncItem:hover{
  transform:translateY(-4px);
  border-color:#dbe3f2;
  box-shadow:0 22px 38px rgba(15,23,42,.10);
}

body.ncThemeSoft .ncThumb{
  position:relative;
  background:
    linear-gradient(135deg, rgba(91,108,255,.18), rgba(139,92,246,.11)),
    #f7f9ff;
}

body.ncThemeSoft .ncThumb:after{
  content:"";
  position:absolute;
  inset:auto -12% -42% auto;
  width:110px;
  height:110px;
  background:radial-gradient(circle, rgba(255,255,255,.40), transparent 70%);
  pointer-events:none;
}

body.ncThemeSoft .ncItemIn{
  padding:14px;
}

body.ncThemeSoft .ncItemName{
  font-size:15px;
  line-height:1.35;
  font-weight:950;
  color:#111827;
}

body.ncThemeSoft .ncItemMeta{
  margin-top:7px;
  color:#6b7280;
  font-size:12px;
  line-height:1.55;
}

body.ncThemeSoft .ncItemRow{
  margin-top:12px;
  align-items:center;
}

body.ncThemeSoft .ncPrice{
  display:inline-flex;
  align-items:center;
  padding:7px 12px;
  border-radius:999px;
  background:linear-gradient(135deg, rgba(91,108,255,.10), rgba(139,92,246,.08));
  color:#4f46e5;
  font-weight:950;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7);
}

/* =========================================================
 * 딜러 카드
 * ========================================================= */
body.ncThemeSoft .ncDealerGrid{
  gap:14px;
}

body.ncThemeSoft .ncDealerCard{
  position:relative;
  border:1px solid #e7ebf4;
  background:linear-gradient(180deg, #ffffff 0%, #fcfdff 100%);
  border-radius:22px;
  overflow:hidden;
  box-shadow:0 12px 26px rgba(15,23,42,.055);
}

body.ncThemeSoft .ncDealerCard:before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:5px;
  background:linear-gradient(180deg, #5b6cff 0%, #8b5cf6 100%);
  opacity:.95;
}

body.ncThemeSoft .ncDealerCard:hover{
  transform:translateY(-3px);
  border-color:#dbe3f2;
  box-shadow:0 20px 36px rgba(15,23,42,.095);
}

body.ncThemeSoft .ncDealerRowWrap{
  gap:14px;
}

body.ncThemeSoft .ncDealerPhoto{
  flex:0 0 112px;
  width:112px;
  border-radius:18px;
  margin:12px 0 12px 12px;
  background:
    linear-gradient(135deg, rgba(91,108,255,.18), rgba(139,92,246,.10)),
    #f7f9ff;
  box-shadow:0 10px 22px rgba(15,23,42,.08);
}

body.ncThemeSoft .ncDealerPhoto img{
  border-radius:18px;
}

body.ncThemeSoft .ncDealerIn{
  padding:14px 14px 14px 0;
}

body.ncThemeSoft .ncDealerName{
  margin:0;
  font-size:15px;
  line-height:1.3;
  font-weight:950;
  color:#111827;
}

body.ncThemeSoft .ncDealerMeta{
  margin-top:7px;
  color:#667085;
  font-size:12px;
  line-height:1.55;
}

body.ncThemeSoft .ncDealerActions{
  margin-top:12px;
}

body.ncThemeSoft .ncDealerTag{
  background:linear-gradient(180deg, #fafbff 0%, #f5f7ff 100%);
  color:#4b5563;
}

/* =========================================================
 * 리스트 / 테이블 / 폼
 * ========================================================= */
body.ncThemeSoft .ncList li,
body.ncThemeSoft .ncTable th,
body.ncThemeSoft .ncTable td{
  border-color:#edf1f6;
}

body.ncThemeSoft .ncList li{
  padding:12px 0;
}

body.ncThemeSoft .ncLink{
  color:#4f46e5;
  font-weight:900;
}

body.ncThemeSoft .ncLink:hover{
  text-decoration:none;
  opacity:.92;
}

body.ncThemeSoft input[type="text"],
body.ncThemeSoft input[type="search"],
body.ncThemeSoft input[type="tel"],
body.ncThemeSoft input[type="number"],
body.ncThemeSoft input[type="email"],
body.ncThemeSoft select,
body.ncThemeSoft textarea{
  border:1px solid #e2e8f2;
  border-radius:14px;
  background:#fff;
  box-shadow:0 4px 12px rgba(15,23,42,.025);
}

body.ncThemeSoft input[type="text"]:focus,
body.ncThemeSoft input[type="search"]:focus,
body.ncThemeSoft input[type="tel"]:focus,
body.ncThemeSoft input[type="number"]:focus,
body.ncThemeSoft input[type="email"]:focus,
body.ncThemeSoft select:focus,
body.ncThemeSoft textarea:focus{
  border-color:rgba(91,108,255,.38);
  box-shadow:
    0 0 0 4px rgba(91,108,255,.08),
    0 10px 22px rgba(91,108,255,.05);
  outline:none;
}

/* =========================================================
 * 푸터
 * ========================================================= */
body.ncThemeSoft .ncFooter{
  border-top:1px solid #e8edf5;
  background:rgba(255,255,255,.72);
}

body.ncThemeSoft .ncFooterIn{
  color:#667085;
}

/* =========================================================
 * 모바일
 * ========================================================= */
@media (max-width: 980px){
  body.ncThemeSoft .ncTopIn{
    min-height:auto;
  }

  body.ncThemeSoft .ncTitle{
    font-size:24px;
  }

  body.ncThemeSoft .ncCardTitle{
    font-size:17px;
  }
}

@media (max-width: 640px){
  body.ncThemeSoft{
    --radius:20px;
  }

  body.ncThemeSoft .ncHero,
  body.ncThemeSoft .ncCard,
  body.ncThemeSoft .ncMakerStrip,
  body.ncThemeSoft .ncModelRows{
    border-radius:22px;
  }

  body.ncThemeSoft .ncTopSearch{
    border-radius:16px;
  }

  body.ncThemeSoft .ncSearch{
    border-radius:16px;
  }

  body.ncThemeSoft .ncMakerMini{
    border-radius:18px;
    padding:11px 8px;
  }

  body.ncThemeSoft .ncItem,
  body.ncThemeSoft .ncDealerCard{
    border-radius:20px;
  }

  body.ncThemeSoft .ncDealerPhoto{
    flex:0 0 96px;
    width:96px;
    margin:12px 0 12px 12px;
  }

  body.ncThemeSoft .ncItemName,
  body.ncThemeSoft .ncDealerName{
    font-size:14px;
  }
}