  html { -webkit-text-size-adjust:100%; }
  body { font-family:'Pretendard Variable',Pretendard,-apple-system,system-ui,sans-serif; line-height:1.6; -webkit-font-smoothing:antialiased; color:#1f2429; }
  h1,h2,h3,h4 { line-height:1.4; letter-spacing:-0.02em; }
  .display { line-height:1.15; letter-spacing:-0.03em; }
  button,.label { line-height:1.2; }

  /* Hero overlay — 더 어둡게 */
  .hero-overlay { background: linear-gradient(150deg, rgba(8,18,55,.88) 0%, rgba(13,46,117,.78) 100%); }

  .spinner { width:28px; height:28px; border:2.5px solid #ecf0f4; border-top-color:#145ce6; border-radius:50%; animation:spin .8s linear infinite; }
  @keyframes spin { to { transform:rotate(360deg); } }

  /* 가격 로딩 카드 */
  .price-loading {
    background:#fff;
    border:1.5px solid #ecf0f4;
    border-radius:20px;
    padding:36px 24px;
    text-align:center;
    box-shadow:0 4px 16px rgba(20,92,230,.06);
    animation:loadFadeIn .5s ease both;
  }
  .price-loading-ring {
    position:relative; width:64px; height:64px; margin:0 auto;
  }
  .price-loading-ring::before, .price-loading-ring::after {
    content:''; position:absolute; inset:0; border-radius:50%;
    border:3px solid transparent;
  }
  .price-loading-ring::before {
    border-top-color:#145ce6; border-right-color:#3574ed;
    animation:spin 1.1s cubic-bezier(.5,.1,.5,.9) infinite;
  }
  .price-loading-ring::after {
    border-bottom-color:#a6c2f7;
    animation:spin 1.6s cubic-bezier(.5,.1,.5,.9) infinite reverse;
    inset:8px;
  }
  .price-loading-ring-dot {
    position:absolute; left:50%; top:50%; width:10px; height:10px;
    background:#145ce6; border-radius:50%; transform:translate(-50%,-50%);
    animation:loadDotPulse 1.1s cubic-bezier(.4,0,.6,1) infinite;
  }
  .price-loading-title {
    margin-top:18px; font-size:15px; font-weight:800; color:#1f2429;
    letter-spacing:-.01em;
  }
  .price-loading-title .dots::after {
    content:''; display:inline-block; width:18px; text-align:left;
    animation:loadDots 1.2s steps(4) infinite;
  }
  .price-loading-sub {
    margin-top:6px; font-size:12.5px; color:#6e757c; font-weight:500;
  }
  @media (min-width: 640px) {
    .price-loading { padding:48px 32px; }
    .price-loading-title { font-size:17px; }
    .price-loading-sub { font-size:13px; }
  }
  @keyframes loadFadeIn {
    from { opacity:0; transform:translateY(6px); }
    to   { opacity:1; transform:translateY(0); }
  }
  @keyframes loadDotPulse {
    0%, 100% { transform:translate(-50%,-50%) scale(1);   opacity:1;  }
    50%      { transform:translate(-50%,-50%) scale(1.4); opacity:.55; }
  }
  @keyframes loadDots {
    0%   { content:''; }
    25%  { content:'.'; }
    50%  { content:'..'; }
    75%  { content:'...'; }
    100% { content:''; }
  }
  @media (prefers-reduced-motion: reduce) {
    .price-loading-ring::before, .price-loading-ring::after,
    .price-loading-ring-dot, .price-loading-title .dots::after {
      animation:none !important;
    }
  }

  /* Mode tabs */
  .mode-tab[data-active="true"] { background:#145ce6; color:#fff; box-shadow:0 2px 8px rgba(20,92,230,.32); }
  .mode-tab[data-active="false"] { background:transparent; color:#6e757c; }
  .mode-tab[data-active="false"]:hover { color:#1f2429; }

  /* Carrier tabs */
  .ctab[data-active="true"] { background:#145ce6; color:#fff; border-color:#145ce6; box-shadow:0 4px 12px rgba(20,92,230,.24); }
  .ctab[data-active="false"] { background:#fff; color:#575e64; border-color:#cfd4d9; }
  .ctab[data-active="false"]:hover { border-color:#145ce6; color:#145ce6; }

  /* Policy row — 체크박스만으로 구분 (border 동일) */
  .policy-row { background:#fff; border:1px solid #ecf0f4; transition:border-color .15s; }
  .policy-row:hover { border-color:#cfd4d9; }

  /* Toggle bulk buttons */
  .bulk-btn[data-active="true"] { background:#145ce6; color:#fff; border-color:#145ce6; }
  .bulk-btn[data-active="false"] { background:#fff; color:#575e64; border-color:#dee2e6; }
  .bulk-btn[data-active="false"]:hover { border-color:#145ce6; color:#145ce6; }

  /* Price popup */
  .price-popup { position:fixed; z-index:50; min-width:256px; max-width:300px; background:#fff; border:1px solid #ecf0f4; border-radius:18px; box-shadow:0 24px 48px rgba(31,36,41,.16); padding:14px; opacity:0; pointer-events:none; transform:translateY(-4px); transition:opacity .15s, transform .15s; line-height:1.35; }
  .price-popup.open { opacity:1; pointer-events:auto; transform:translateY(0); }

  /* Plus button */
  .plus-btn { width:22px; height:22px; border-radius:9999px; background:#f4f6fa; color:#6e757c; display:inline-flex; align-items:center; justify-content:center; font-size:13px; font-weight:700; transition:all .15s; line-height:1; }
  .plus-btn:hover { background:#145ce6; color:#fff; }
  .plus-btn[data-open="true"] { background:#145ce6; color:#fff; transform:rotate(45deg); }

  /* 현금지급 chip 강조 애니메이션 — 살짝 띄우면서 글로우 */
  @keyframes cashPulse {
    0%, 100% { transform: translateY(0); box-shadow: 0 0 0 0 rgba(20,92,230,0); }
    50%      { transform: translateY(-1.5px); box-shadow: 0 4px 10px rgba(20,92,230,0.28); }
  }
  .cash-chip { animation: cashPulse 2.4s ease-in-out infinite; }

  /* 점프/통신사 통합 칩 (가격표 wrapper 안 sticky) */
  .model-chip {
    display:inline-flex; align-items:center; gap:4px;
    padding:7px 14px; border-radius:9999px;
    font-size:12.5px; font-weight:800; line-height:1.2;
    background:#fff; color:#6e757c;
    border:1.5px solid #e1e5eb;
    transition:all .15s ease;
    white-space:nowrap; cursor:pointer;
    box-shadow:0 2px 8px rgba(31,36,41,0.06);
  }
  .model-chip:hover { border-color:#145ce6; color:#114dc0; }
  .model-chip[data-active="true"] {
    background:#145ce6; color:#fff;
    border-color:#145ce6;
    box-shadow:0 4px 14px rgba(20,92,230,0.32);
  }

  /* 브랜드 칩 슬라이드 in/out — 가격표 영역 진입 시 통신사 칩 옆에 자연스럽게 등장 */
  .brand-slide {
    display:inline-flex; align-items:center; gap:6px;
    overflow:hidden;
    max-width:0; opacity:0;
    transform:translateX(-8px);
    margin-left:0; padding-left:0;
    border-left:0 solid #e1e5eb;
    transition: max-width .35s ease, opacity .25s ease .05s, transform .35s ease,
                margin-left .25s ease, padding-left .25s ease, border-left-width .25s ease;
  }
  .brand-slide[data-visible="true"] {
    max-width:320px; opacity:1; transform:translateX(0);
    margin-left:8px; padding-left:10px;
    border-left:1px solid #e1e5eb;
  }

  /* 가격표 디바이스 grid — PC 2열, 카테고리 변경 시 줄바꿈 강제 */
  .device-grid { display:flex; flex-direction:column; gap:10px; }
  @media (min-width:1024px) {
    .device-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px; }
    .device-card[data-cat-break="true"] { grid-column-start:1; }
  }

  /* 로딩 상태 — sticky bar 의 carrier-tabs 슬롯이 풀폭 차지 */
  .carrier-slot.is-loading { flex:1 1 100%; min-width:0; }

  .sticky-bar { box-shadow:0 -8px 24px rgba(31,36,41,.10); }
  .modal-bg { background:rgba(31,36,41,.55); backdrop-filter:blur(4px); }

  .no-scrollbar::-webkit-scrollbar { display:none; }
  .no-scrollbar { -ms-overflow-style:none; scrollbar-width:none; }

  /* Speech bubble (말풍선) */
  .bubble-tail-top::before {
    content:''; position:absolute; top:-7px; left:50%; transform:translateX(-50%) rotate(45deg);
    width:14px; height:14px; background:inherit; border-top:1px solid; border-left:1px solid; border-color:inherit;
  }
  .bubble-tail-tl::before {
    content:''; position:absolute; top:-7px; left:24px; transform:rotate(45deg);
    width:14px; height:14px; background:inherit;
  }

  /* IntersectionObserver fade-up */
  .reveal { opacity:0; transform:translateY(24px); transition:opacity .7s cubic-bezier(.2,.8,.2,1), transform .7s cubic-bezier(.2,.8,.2,1); }
  .reveal.visible { opacity:1; transform:translateY(0); }
  .reveal-delay-1 { transition-delay:.08s; }
  .reveal-delay-2 { transition-delay:.16s; }
  .reveal-delay-3 { transition-delay:.24s; }

  /* 헤더 로고 호버 */
  .header-logo { transition:transform .2s; }
  .header-logo:hover { transform:scale(1.04); }

  /* CTA shadow (자방) */
  .jbang-cta { box-shadow:0 4px 18px rgba(20,92,230,.3); }
  .jbang-cta:hover { box-shadow:0 6px 22px rgba(20,92,230,.4); transform:translateY(-1px); }

  /* sticky bar 버튼 — 안티에일리어싱/포커스/탭하이라이트로 인한 흰 선 제거 */
  #sbar-sindorim button, #sbar-sindorim a,
  #sbar-online button, #sbar-online a {
    outline:none !important;
    border:0;
    -webkit-tap-highlight-color:transparent;
    -webkit-appearance:none;
    appearance:none;
    transform:translateZ(0); /* AA 아티팩트 픽스 */
    backface-visibility:hidden;
  }
  #sbar-sindorim button:focus, #sbar-sindorim a:focus,
  #sbar-online button:focus, #sbar-online a:focus,
  #sbar-sindorim button:active, #sbar-sindorim a:active,
  #sbar-online button:active, #sbar-online a:active {
    outline:none !important;
    box-shadow:none !important;
  }

  /* 전후 대비 띠 (신뢰 포인트 섹션) */
  .contrast-strip {
    display:grid; gap:10px;
    grid-template-columns:1fr;
    grid-template-areas: "bad" "arrow" "good";
    align-items:stretch;
  }
  @media (min-width: 640px) {
    .contrast-strip {
      grid-template-columns:1fr auto 1fr;
      grid-template-areas: "bad arrow good";
      gap:14px;
      align-items:center;
    }
  }
  .contrast-side {
    display:flex; align-items:center; gap:14px;
    padding:18px 20px; border-radius:16px;
  }
  .contrast-bad {
    grid-area:bad;
    background:#f4f6fa;
    border:1.5px solid #dee2e6;
    color:#575e64;
  }
  .contrast-good {
    grid-area:good;
    background:#ecf2fd;
    border:1.5px solid #c7d8fa;
    color:#1f2429;
  }
  .contrast-icon {
    flex-shrink:0; width:36px; height:36px; border-radius:9999px;
    display:flex; align-items:center; justify-content:center;
  }
  .contrast-bad .contrast-icon { background:#dee2e6; color:#6e757c; }
  .contrast-good .contrast-icon { background:#fff; color:#145ce6; box-shadow:0 2px 6px rgba(20,92,230,.18); }
  .contrast-label {
    font-size:11px; font-weight:800; letter-spacing:.06em;
    text-transform:uppercase; line-height:1.2;
  }
  .contrast-bad .contrast-label { color:#8c939a; }
  .contrast-good .contrast-label { color:#145ce6; }
  .contrast-body {
    margin-top:4px; font-size:14px; font-weight:700; line-height:1.5;
  }
  @media (min-width: 640px) { .contrast-body { font-size:15px; } }
  .contrast-arrow {
    grid-area:arrow;
    display:flex; align-items:center; justify-content:center;
    color:#145ce6;
  }
  @media (max-width: 639px) {
    .contrast-arrow svg { transform:rotate(90deg); }
  }

  /* "아정당의 3가지 약속" 구분 라벨 */
  .promise-divider {
    margin-top:36px; display:flex; align-items:center; gap:14px;
  }
  .promise-line { flex:1; height:1px; background:#dee2e6; }
  .promise-label {
    font-size:11px; font-weight:800; color:#145ce6;
    letter-spacing:.12em; text-transform:uppercase;
    white-space:nowrap;
  }
  @media (min-width: 640px) {
    .promise-divider { margin-top:44px; gap:18px; }
    .promise-label { font-size:12px; }
  }

  /* 신뢰 포인트 카드 */
  .trust-card { box-shadow:0 1px 2px rgba(20,36,79,.04), 0 8px 24px rgba(20,36,79,.06); transition:transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s; }
  .trust-card:hover { transform:translateY(-3px); box-shadow:0 2px 4px rgba(20,36,79,.06), 0 14px 36px rgba(20,36,79,.1); }
  .trust-icon-3d {
    width:72px; height:72px; display:flex; align-items:center; justify-content:center;
    animation:trustBob 3.4s cubic-bezier(.4,0,.6,1) infinite;
  }
  .trust-card:nth-child(2) .trust-icon-3d { animation-delay:.4s; }
  .trust-card:nth-child(3) .trust-icon-3d { animation-delay:.8s; }
  @media (max-width: 640px) {
    .trust-icon-3d { width:56px; height:56px; }
  }
  @keyframes trustBob {
    0%, 100% { transform:translateY(0) rotate(0); }
    50%      { transform:translateY(-4px) rotate(-2deg); }
  }
  @media (prefers-reduced-motion: reduce) {
    .trust-icon-3d { animation:none !important; }
  }

  /* 유일한 조건 + 방문 미션 — 통일 attention 박스 (visit-box 결) */
  .cond-pill, .visit-box {
    background:#ecf2fd;
    border:2px solid #145ce6;
    border-radius:18px;
    padding:22px 24px;
    text-align:center;
    position:relative;
    box-shadow:0 8px 24px rgba(20,92,230,.16);
    animation:ctaPulse 2.4s cubic-bezier(.4,0,.6,1) infinite;
    transform-origin:center;
  }
  .cond-pill::before, .visit-box::before {
    content:''; position:absolute; inset:-2px; border-radius:inherit;
    border:2px solid #145ce6; opacity:0; pointer-events:none;
    animation:ctaRing 2.4s cubic-bezier(.2,.8,.2,1) infinite;
  }
  .cond-tag, .visit-tag {
    display:inline-flex; align-items:center; height:28px; padding:0 14px;
    background:#145ce6; color:#fff;
    font-size:12px; font-weight:800; letter-spacing:.04em; border-radius:9999px;
    margin-bottom:12px;
    box-shadow:0 2px 10px rgba(20,92,230,.4);
    animation:ctaTag 2.4s cubic-bezier(.4,0,.6,1) infinite;
  }
  .cond-body, .visit-body {
    color:#1f2429; font-size:15px; font-weight:700; line-height:1.65;
  }
  .cond-body b, .visit-body b { color:#145ce6; font-weight:800; }
  /* cond-pill specific — flex layout (tag + body 가로) */
  .cond-pill { display:flex; flex-direction:column; gap:10px; align-items:center; }
  .cond-pill .cond-tag { margin-bottom:0; }
  @media (min-width: 640px) {
    .cond-pill, .visit-box { padding:26px 28px; border-radius:20px; }
    .cond-body, .visit-body { font-size:17px; }
    .cond-tag, .visit-tag { height:30px; font-size:12.5px; padding:0 15px; }
  }
  @keyframes ctaPulse {
    0%, 100% {
      border-color:#145ce6;
      box-shadow:0 8px 24px rgba(20,92,230,.16), 0 0 0 0 rgba(20,92,230,.35);
      transform:translateY(0);
    }
    50% {
      border-color:#3574ed;
      box-shadow:0 14px 36px rgba(20,92,230,.28), 0 0 0 8px rgba(20,92,230,.06);
      transform:translateY(-3px);
    }
  }
  @keyframes ctaRing {
    0%   { opacity:.55; transform:scale(.99); }
    65%  { opacity:0;   transform:scale(1.06); }
    100% { opacity:0;   transform:scale(1.06); }
  }
  @keyframes ctaTag {
    0%, 100% { transform:translateY(0) scale(1); box-shadow:0 2px 10px rgba(20,92,230,.4); }
    50%      { transform:translateY(-2px) scale(1.05); box-shadow:0 6px 18px rgba(20,92,230,.55); }
  }
  /* 가격표 카드 공통 혜택 띠 — 시선 끌기 */
  .card-banner {
    position:relative;
    background:linear-gradient(90deg,#0d3e9b 0%,#145ce6 45%,#1a6cf2 55%,#145ce6 60%,#0d3e9b 100%);
    background-size:250% 100%;
    animation:cardBannerSweep 3.5s ease-in-out infinite;
    overflow:hidden;
    color:#fff;
  }
  .card-banner::before {
    content:'';
    position:absolute; top:0; bottom:0; left:-40%;
    width:35%;
    background:linear-gradient(90deg, transparent, rgba(255,255,255,.28), transparent);
    animation:cardBannerShine 2.6s linear infinite;
    pointer-events:none;
  }
  @keyframes cardBannerSweep {
    0%, 100% { background-position:0% 50%; }
    50%      { background-position:100% 50%; }
  }
  @keyframes cardBannerShine {
    0%   { left:-40%; }
    100% { left:140%; }
  }
  .card-banner-icon { display:inline-block; animation:cardBannerBob 1.4s ease-in-out infinite; }
  @keyframes cardBannerBob {
    0%, 100% { transform:translateY(0) rotate(-8deg) scale(1); }
    50%      { transform:translateY(-2px) rotate(8deg) scale(1.12); }
  }
  .card-banner-amount {
    display:inline-block;
    color:#FFE066;
    animation:cardBannerPulse 1.6s ease-in-out infinite;
    transform-origin:center;
  }
  @keyframes cardBannerPulse {
    0%, 100% { transform:scale(1);    text-shadow:0 0 8px rgba(255,224,102,.45), 0 1px 2px rgba(0,0,0,.35); }
    50%      { transform:scale(1.08); text-shadow:0 0 18px rgba(255,224,102,.95), 0 1px 2px rgba(0,0,0,.35); }
  }
  @media (prefers-reduced-motion: reduce) {
    .cond-pill, .visit-box, .cond-tag, .visit-tag,
    .card-banner, .card-banner-icon, .card-banner-amount { animation:none !important; }
    .cond-pill::before, .visit-box::before { animation:none !important; opacity:0 !important; }
  }
