/* 청개구리 PICK v2 — shared styles (from PICK Site v2.dc.html helmet + state styles) */
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:"Pretendard Variable",Pretendard,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;background:#fff;color:#17181d;-webkit-font-smoothing:antialiased;line-height:1.55;}
a{color:#E05206;text-decoration:none;}
a:hover{color:#D6202C;}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

.hide{display:none!important;}

/* GNB (prototype navOn/navOff) */
.gnav{cursor:pointer;font-size:15.5px;letter-spacing:-.01em;padding:20px 0;color:#5f636b;font-weight:500;text-decoration:none;}
.gnav:hover{color:#17181d;}
.gnav.on{color:#17181d;font-weight:800;box-shadow:inset 0 -2px 0 #F0640F;}

/* segmented buttons (prototype pvOn/pvOff) */
.segBtn{padding:5px 12px;border-radius:6px;border:none;font-size:11.5px;cursor:pointer;font-family:inherit;transition:.15s;background:transparent;color:#9096a0;font-weight:500;}
.segBtn.on{background:#fff;color:#17181d;font-weight:700;box-shadow:0 1px 3px rgba(0,0,0,.12);}

/* newsletter benefit cards (prototype nlCard) */
.nlCard{text-align:left;border-radius:16px;padding:24px 22px;cursor:pointer;transition:.18s;border:1px solid #e7e8ec;background:#fff;}
.nlCard.on{border:1.5px solid #D6202C;box-shadow:0 12px 28px rgba(214,32,44,.13);transform:translateY(-3px);}

/* weekly delivery day cards (prototype dayOn/dayOff) */
.dayBtn{flex:1;min-width:132px;text-align:center;padding:18px 12px;border-radius:14px;cursor:pointer;transition:.15s;border:1px solid #e7e8ec;background:#fff;color:#5f636b;}
.dayBtn.on{border:1px solid transparent;background:linear-gradient(135deg,#F0640F,#D6202C);color:#fff;box-shadow:0 6px 16px rgba(214,32,44,.25);}

/* research center left nav (prototype rcNav/rcNum) */
.rcNav{display:flex;align-items:center;gap:12px;padding:15px 16px;border-radius:14px;cursor:pointer;transition:.16s;background:transparent;border:1px solid transparent;}
.rcNav.on{background:#fff;border:1px solid #f0c8a8;box-shadow:0 8px 20px rgba(240,100,15,.12);}
.rcNum{flex:none;width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;letter-spacing:-.02em;transition:.16s;background:#eceef1;color:#9096a0;}
.rcNav.on .rcNum{background:linear-gradient(135deg,#F0640F,#D6202C);color:#fff;}

/* billing toggle (prototype tglOn/tglOff) */
.tglBtn{padding:9px 16px;border-radius:8px;cursor:pointer;font-family:inherit;font-size:13px;border:none;transition:.15s;background:transparent;color:#5f636b;font-weight:500;}
.tglBtn.on{background:#fff;color:#D6202C;font-weight:700;box-shadow:0 1px 4px rgba(0,0,0,.12);}

/* hover states (prototype style-hover attrs) */
.hvA{transition:.2s;}
.hvA:hover{box-shadow:0 10px 26px rgba(23,24,29,.08);transform:translateY(-2px);}
.hvB{transition:.2s;}
.hvB:hover{box-shadow:0 12px 28px rgba(23,24,29,.08);transform:translateY(-3px);}
.hvC{transition:.2s;}
.hvC:hover{box-shadow:0 10px 26px rgba(23,24,29,.08);}
.hvRow:hover{background:#faf9f7;}

/* responsive grids (prototype fixed repeat(N,1fr) grids) */
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.g2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
@media (max-width:860px){.g3{grid-template-columns:repeat(2,1fr);}}
@media (max-width:640px){.g2{grid-template-columns:1fr;}}
@media (max-width:560px){.g3{grid-template-columns:1fr;}}

/* market stock table horizontal scroll on small screens */
.mktScroll{overflow-x:auto;}
.mktScroll>div{min-width:640px;}
.mktScroll>div:first-child{border-radius:14px 14px 0 0;}

/* newsletter modal */
#pickOverlay{position:fixed;inset:0;background:rgba(15,16,20,.55);z-index:100;align-items:center;justify-content:center;padding:20px;display:none;overflow:auto;}
#pickOverlay.open{display:flex;}
.nlInput{width:100%;padding:17px 18px;border:2px solid #F0640F;border-radius:12px;font-size:16px;font-family:inherit;margin-bottom:12px;background:#FFFBF6;box-shadow:0 4px 16px rgba(240,100,15,.16);outline:none;}
.nlInput:focus{border-color:#D6202C;box-shadow:0 4px 20px rgba(214,32,44,.24);}

/* ============================================================
   모바일 최적화 v3 (2026-07-23) — 3안(전환/콘텐츠/미니멀) 통합 심사 확정본
   - 인라인 스타일 기반 페이지 → override 는 !important 필수.
   - 모든 규칙은 @media(max-width:820px/560px) + @media(hover:none) 내부 — 데스크톱(>820px) 픽셀 무변경.
   - pick.js 의 pkMobile 모듈(인터리브/차트 래퍼/스마트 바)과 세트. CSS 단독으로도 무해하게 설계됨.
   - 수정 시 전 페이지 ?v= 동반 갱신 (배포 순서: css/js 먼저 → HTML 나중).

   [속성 선택자 매칭 인벤토리 — 병행 콘텐츠 세션이 아래 인라인 문자열을 바꾸면 해당 규칙이
    조용히 해제됨. 배포 전 이 목록 grep + 375px 스팟체크(홈/기사1/vip/market) 필수]
   "max-width:1200px" "max-width:820px"                     — 홈·공통 래퍼 (거터/상하)
   "max-width:1100px"+"margin:0 auto"                       — market 래퍼
   "max-width:1000px"+"margin:0 auto"                       — about 래퍼
   "max-width:900px"+"margin:0 auto"                        — newsletter 래퍼
   "max-width:860px"+"margin:0 auto"                        — latest 래퍼
   "gap:48px" "gap:40px"                                    — 홈 히어로/VIP밴드 컬럼 gap
   "gap:11px"(home CTA행) "gap:12px"(vip CTA행 — FAQ 행은 button 직계자식 없어 미오염 검증)
   "minmax(190px"(홈 청산4카드) "minmax(150px"(홈·performance KPI) "minmax(170px"(vip 스탯) "minmax(340px"(market)
   "border-radius:16px"+"padding:24px"(히어로 성과카드) "border-radius:14px;padding:20px"(청산·차트 카드)
   "min-height:300px"(rc 일러스트 — home·vip 의 span[data-panel] 내부에만 존재 검증)
   "row-reverse"(rc 패널) "line-height:2.15"(VIP 체크리스트 ul) "font-size:26px"+"font-weight:900"(히어로 스탯 숫자)
   "font-size:10.5px"+"color:#9096a0"(히어로 면책 p) "height:120px"(S7 카드 헤더)
   "flex:0 0 280px"(research 사이드바) "flex:1.18"(S2 우측 패널 컬럼 — JS 인터리브가 숨김)
   "width:110px"/"width:90px"+"text-align:right"(market 시총 열)
   "font-size:15.5px;line-height:2.0"(기사 본문 — 9/9 기사 검증) "font-size:12.5px"(nlCard 설명 span)
   "font-size:22px"(청산카드 수익률 div) "background:#17181d"(푸터 — body 직계 div 한정)
   ============================================================ */

/* ---- 터치 피드백 — hover:none 매체 전용(데스크톱 영향 0, 820px 제약과 독립) ---- */
@media (hover:none){
  .hvA:hover,.hvB:hover,.hvC:hover{transform:none!important;box-shadow:none!important;} /* sticky hover 차단 */
  button:active,.hvA:active,.hvB:active,.nlCard:active,.dayBtn:active,.rcNav:active,
  .gnav:active,.segBtn:active,[data-tab]:active{transform:scale(.985);filter:brightness(.96);transition:transform .08s;}
  *{-webkit-tap-highlight-color:transparent;} /* :active 피드백 부여했으므로 기본 하이라이트 제거 */
}

@media (max-width:820px){
  /* ---- 상단 GNB 고정: 스크롤해도 메뉴가 가려지지 않게 (대표 지시 2026-07-23) ---- */
  body > div:has(> div > nav){position:sticky !important;top:0 !important;z-index:95 !important;
    background:#fff !important;box-shadow:0 2px 10px rgba(23,24,29,.06);}

  /* ---- GNB 2단 (v2 유지 + 페이드/스냅/터치타깃 보강) ---- */
  div:has(> nav > .gnav){gap:0 10px !important;padding:0 16px !important;min-height:0 !important;}
  div:has(> nav > .gnav) > a:first-child{padding:9px 0 !important;margin-right:auto;}
  div:has(> nav > .gnav) > a:first-child span{font-size:18px !important;}
  /* 메뉴 6개 = 2행 3열 그리드. 가로 스크롤은 6개 합 545px > 343px 라 TODAY시황브리핑부터
     잘려서 "메뉴가 6개"라는 사실이 안 보임(대표 지시) — 한 화면에 전부 노출 */
  nav:has(> .gnav){order:3;flex:0 0 100% !important;display:grid !important;
    grid-template-columns:repeat(3,1fr) !important;gap:0 !important;
    overflow:visible !important;border-top:1px solid #f0f0f3;
    -webkit-mask-image:none !important;mask-image:none !important;}
  .gnav{padding:10px 2px !important;font-size:13px !important;white-space:nowrap;text-align:center;
    display:flex;align-items:center;justify-content:center;min-height:38px;}
  div:has(> nav > .gnav) > div:last-child{gap:7px !important;}
  div:has(> nav > .gnav) > div:last-child button{padding:11px 12px !important;font-size:12px !important;white-space:nowrap;} /* 터치 33→41px */

  /* ---- 좌우 거터 18px 통일 (v3: 사각지대 1100/1000/900/860 래퍼 추가 — 상하는 비대칭 패딩 실측으로 미확장) ---- */
  section > div[style*="max-width:1200px"],
  section > div[style*="max-width:820px"],
  div[style*="max-width:1100px"][style*="margin:0 auto"],
  div[style*="max-width:1000px"][style*="margin:0 auto"],
  div[style*="max-width:900px"][style*="margin:0 auto"],
  div[style*="max-width:860px"][style*="margin:0 auto"]{padding-left:18px !important;padding-right:18px !important;}
  section div[style*="gap:48px"]{gap:28px !important;}
  section div[style*="gap:40px"]{gap:26px !important;}

  /* ---- 요일(월~금) · 프로세스(01~05) = 5칸 균등 그리드
         가로 스크롤이면 수요일/03단계부터 잘려 "선택지가 5개"라는 사실 자체가 안 보임(대표 지시).
         스크롤 없이 한 화면에 5개 전부 노출 ---- */
  div:has(> .dayBtn),div:has(> .rcNav){display:grid !important;grid-template-columns:repeat(5,1fr) !important;
    flex:1 1 100% !important;min-width:0 !important;gap:6px !important;padding-bottom:0 !important;
    overflow:visible !important;-webkit-mask-image:none !important;mask-image:none !important;}
  .dayBtn{flex:0 1 auto !important;min-width:0 !important;width:auto !important;padding:11px 3px !important;}
  .dayBtn > div:first-child{font-size:16px !important;}
  .dayBtn > div:last-child{font-size:9.5px !important;margin-top:4px !important;line-height:1.35 !important;
    word-break:keep-all;opacity:1 !important;}
  .rcNav{flex:0 1 auto !important;flex-direction:column !important;min-width:0 !important;width:auto !important;
    gap:5px !important;padding:9px 4px !important;text-align:center;}
  .rcNav > div{min-width:0;width:100%;}
  .rcNav strong{font-size:9.5px !important;line-height:1.3 !important;letter-spacing:-.03em !important;word-break:keep-all;}
  div[style*="padding:30px 32px"]{padding:22px 18px !important;} /* rc 텍스트 패널 */

  /* ---- S6 프로세스 패널: 텍스트 우선 — wrap-reverse 로 일러스트를 아래로 (home·vip 공용) ---- */
  span[data-panel^="rc:"] > div[style*="row-reverse"]{flex-wrap:wrap-reverse !important;}

  /* ---- S2 아코디언 행 압축 (pick.js 인터리브와 세트 — CSS 단독으로도 무해)
         카드 3장이 배너처럼 쌓이던 구조(닫힘 153px×3)를 '한 줄 행'으로 접는다.
         배지+제목은 첫 줄에 나란히, 설명은 열린 카드에서만 노출(아코디언 표준 — 삭제 아님) ---- */
  .nlCard{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:0 9px;
    padding:13px 40px 13px 15px !important;scroll-margin-top:112px;}
  .nlCard.on{transform:none;} /* -3px 리프트 제거 — 아래 패널과 밀착 */
  .nlCard > span:first-child{flex:none;}                                   /* 발행 주기 배지 */
  .nlCard > strong{flex:1 1 auto;min-width:0;margin:0 !important;font-size:14.5px !important;}
  .nlCard > span[style*="font-size:12.5px"]{flex:0 0 100%;margin-top:9px;}  /* 설명 = 둘째 줄 */
  .nlCard:not(.on) > span[style*="font-size:12.5px"]{display:none;}         /* 접힘 */
  .nlCard::after{content:"▾";position:absolute;right:15px;top:15px;font-size:13px;color:#9096a0;transition:transform .15s;}
  .nlCard.on::after{transform:rotate(180deg);color:#D6202C;}
  .pkNlPanel{margin:-4px 0 6px;}
  /* 좌측 카드 컬럼은 flex-grow 0.82(=1 미만)라 우측 컬럼을 숨겨도 폭을 다 못 채움 → 풀폭 강제 */
  div[style*="flex:0.82"]{flex:1 1 100% !important;min-width:0 !important;}

  /* ---- research 사이드바 풀폭 / 칩·필터 행 가로 스크롤 통일 ---- */
  div[style*="flex:0 0 280px"]{flex:1 1 100% !important;max-width:none !important;}
  #catTabs,#secChips,#nlDates{flex-wrap:nowrap !important;overflow-x:auto;-webkit-overflow-scrolling:touch;
    scrollbar-width:none;scroll-snap-type:x proximity;overscroll-behavior-x:contain;
    -webkit-mask-image:linear-gradient(90deg,#000 90%,transparent);
    mask-image:linear-gradient(90deg,#000 90%,transparent);}
  #catTabs::-webkit-scrollbar,#secChips::-webkit-scrollbar,#nlDates::-webkit-scrollbar{display:none;}
  #catTabs > *,#secChips > *,#nlDates > *{flex:0 0 auto;scroll-snap-align:start;white-space:nowrap;}

  /* ---- iOS 입력 자동 줌 방지 (market 검색 14px · vip .vcInput 14px 흡수) ---- */
  input,select,textarea{font-size:16px !important;}

  /* ---- 차트 가로 스크롤 래퍼 — pick.js 가 svg[viewBox="0 0 340 158"] 를 래핑 ---- */
  .pkChartScroll{overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;
    -webkit-mask-image:linear-gradient(90deg,#000 92%,transparent);
    mask-image:linear-gradient(90deg,#000 92%,transparent);}
  .pkChartScroll > svg{display:block;}
  div[style*="border-radius:14px"]:has(> svg) > strong{font-size:15px !important;} /* 차트 결론 텍스트 강화 */

  /* ---- 모바일 전용 인라인 CTA (index.html .pkMbOnly — 마크업은 inline display:none) ---- */
  .pkMbOnly{display:block !important;width:100%;margin-top:14px;padding:14px;border-radius:10px;border:none;
    background:#D6202C;color:#fff;font-size:14.5px;font-weight:800;font-family:inherit;cursor:pointer;letter-spacing:-.01em;}

  /* ---- 모달 열림 중 배경 스크롤 락 — pick.js 가 body.pkModalOpen 토글.
         반드시 820px 내부(데스크톱은 스크롤바 소멸 리플로우 발생) ---- */
  body.pkModalOpen{overflow:hidden;}
}

@media (max-width:560px){
  /* ---- 섹션 상하 여백 (v2 유지 — 기사 820px 래퍼 제외) ---- */
  section > div[style*="max-width:1200px"]{padding-top:34px !important;padding-bottom:34px !important;}

  /* ---- 뉴스레터 모달 ---- */
  #pickOverlay{padding:12px !important;}
  #pickCard{padding:26px 18px 22px !important;}
  #pickCard h3{font-size:19px !important;}
  #pickCard h3 br{display:none;}
  #pickCard span[data-close]{padding:12px;top:4px !important;right:6px !important;} /* 터치 44px */
  #nlAgree{transform:scale(1.3);transform-origin:left top;}

  /* ---- vip 결제/상담 모달 ---- */
  #tossOverlay{padding:12px !important;}
  #vcAmountGrid,#vcTimeGrid{grid-template-columns:repeat(2,1fr) !important;} /* 4열/3열→2열 */
  .vcChip{padding:12px 8px !important;} /* .vcInput 16px 은 820 input 규칙이 커버 */

  /* ---- 1열화 일괄 (v2 유지) + 예외는 반드시 이 아래 선언 ---- */
  div[style*="grid-template-columns:1fr 1fr"]{grid-template-columns:1fr !important;}
  div[style*="grid-template-columns:repeat(2,1fr)"]{grid-template-columns:1fr !important;}
  div[style*="minmax(340px"]{grid-template-columns:1fr !important;}
  /* [예외] 필진 8인 그리드는 2열 유지 — 1열화 규칙 뒤 선언 필수 */
  span[data-panel="rc:4"] div[style*="repeat(2,1fr)"]{grid-template-columns:1fr 1fr !important;gap:8px !important;}
  /* [예외] about 서비스 구성·필진소개 = 모바일에서도 좌우 2열 유지 (대표 지시 2026-07-23) */
  body[data-page="about"] div[style*="repeat(2,1fr)"]{grid-template-columns:1fr 1fr !important;gap:9px !important;}
  /* 서비스 구성 4카드 내부 압축 */
  body[data-page="about"] a.hvA[style*="border-radius:16px"]{padding:14px 12px !important;}
  body[data-page="about"] a.hvA div[style*="font-size:30px"]{font-size:21px !important;}
  body[data-page="about"] a.hvA div[style*="font-size:17.5px"]{font-size:13px !important;margin-top:6px !important;letter-spacing:-.03em;word-break:keep-all;}
  body[data-page="about"] a.hvA div[style*="font-size:13.5px"]{font-size:11px !important;line-height:1.6 !important;margin-top:5px !important;word-break:keep-all;}
  /* 필진 8인 카드 내부 압축 (사진 76 -> 44px, 세로 배치) */
  body[data-page="about"] div[style*="padding:24px 26px"]{padding:13px 11px !important;flex-direction:column !important;align-items:flex-start !important;gap:8px !important;}
  body[data-page="about"] img[style*="width:76px"]{width:44px !important;height:44px !important;}
  body[data-page="about"] div[style*="padding:24px 26px"] div[style*="font-size:18px"]{font-size:13px !important;letter-spacing:-.03em;}
  body[data-page="about"] div[style*="padding:24px 26px"] span[style*="font-size:12.5px"]{font-size:10px !important;}
  body[data-page="about"] div[style*="padding:24px 26px"] div[style*="font-size:14px"]{font-size:11px !important;margin-top:3px !important;word-break:keep-all;}
  body[data-page="about"] div[style*="padding:24px 26px"] div[style*="font-size:13.5px"]{font-size:10.5px !important;line-height:1.6 !important;margin-top:5px !important;word-break:keep-all;}

  /* ---- 숫자 블록 2×2 — 한눈 비교(포트폴리오 효과) 유지, 1열 스택 금지 ---- */
  div[style*="minmax(150px"]{grid-template-columns:1fr 1fr !important;gap:10px !important;} /* 홈·performance KPI */
  div[style*="minmax(150px"] > div{padding:14px 10px !important;}
  div[style*="minmax(170px"]{grid-template-columns:1fr 1fr !important;gap:10px !important;} /* vip 스탯 */
  /* 청산 4카드 = 2×2, 카드 내부도 축소(대표 지시: 태성~엔켐 더 작게) — 145px → 약 100px */
  div[style*="minmax(190px"]{grid-template-columns:1fr 1fr !important;gap:9px !important;}
  div[style*="minmax(190px"] > div{padding:13px 11px !important;}
  div[style*="minmax(190px"] > div > strong{font-size:12.5px !important;letter-spacing:-.02em;word-break:keep-all;}
  div[style*="minmax(190px"] div[style*="font-size:22px"]{font-size:17px !important;margin-top:3px !important;}
  div[style*="minmax(190px"] > div > div:last-child{font-size:10px !important;line-height:1.45 !important;
    margin-top:5px !important;word-break:keep-all;}

  /* ---- 타이포 스케일 + clamp 페이지 역확대 예외 (기본 규칙 뒤 선언) ---- */
  section h1{font-size:26px !important;line-height:1.3 !important;}
  section h2{font-size:21px !important;line-height:1.4 !important;}
  /* 홈 히어로 h1 = 대표 지정 3줄(19년차 투자정보회사의 / 검증된 투자전략과 종목PICK을 / 매일 받아보세요).
     가장 긴 2번째 줄이 375px 한 줄에 들어가는 크기 — br 을 죽이지 않고 크기로 맞춘다 */
  body[data-page="home"] section h1{font-size:23px !important;line-height:1.4 !important;}
  body[data-page="article"] section h1{font-size:24px !important;}
  body[data-page="article"] section h2{font-size:19px !important;} /* 21px 역확대 차단 — 본문과 위계 회복 */
  body[data-page="newsletter"] section h1{font-size:23px !important;}
  body[data-page="research"] section h1,body[data-page="market"] section h1,
  body[data-page="performance"] section h1,body[data-page="my"] section h1,
  body[data-page="latest"] section h1{font-size:22px !important;}
  /* about 히어로 h1 = 의도된 3줄(br 2개)이 각각 한 줄에 들어가는 크기 (대표 지시: '는'이 넘어가지 않게) */
  body[data-page="about"] section h1{font-size:20px !important;line-height:1.45 !important;}

  /* ---- 강제 <br> 무효화 — PC 줄바꿈의 375px 겹줄바꿈 해소 (카피 무변경).
         기사 본문 h2 의 의도적 br 보존 위해 h2 는 home 한정 ---- */
  /* ⚠️ 홈 h1 의 br 2개는 대표가 지정한 3줄 구조 — 절대 무효화 금지(2026-07-23 지적).
     겹줄바꿈은 br 을 죽이는 대신 폰트 크기로 해결한다(아래 h1 규칙). */
  body[data-page="home"] section h2 br,
  body[data-page="article"] section h1 br{display:none;}
  /* 홈 히어로 안내문도 대표 지정 2줄 — br 살리고 폰트로 맞춘다(h1 과 동일 원칙) */
  body[data-page="home"] section:first-of-type p{font-size:14px !important;line-height:1.65 !important;}
  /* about h1 의 br 2개는 대표가 지정한 3줄 구조 — 위 무효화 대상에서 제외(살려둠) */
  /* [예외] VIP 밴드 h2 는 2줄 유지가 대표 지시 — br 살리고 2줄에 맞춰 축소 */
  body[data-page="home"] section[style*="background:#17181d"] h2 br{display:inline !important;}
  body[data-page="home"] section[style*="background:#17181d"] h2{font-size:17px !important;line-height:1.5 !important;}
  /* VIP 밴드 '종목PICK 구독자가 받는 것' 라벨 — 모바일 삭제(대표 지시). 아래 체크리스트가 그대로 설명 */
  body[data-page="home"] section[style*="background:#17181d"] p[style*="color:#9096a0"]{display:none;}

  /* ---- CTA 풀폭 스택 — v2 gap:11px 유지 + vip gap:12px 사각지대 흡수
         (vip FAQ 행은 button 직계자식 없음 — 오염 없음 검증 완료) ---- */
  section div[style*="gap:11px"]:has(> button){flex-direction:column !important;align-items:stretch !important;}
  section div[style*="gap:11px"]:has(> button) button{width:100% !important;}
  body[data-page="vip"] section div[style*="gap:12px"]:has(> button){flex-direction:column !important;align-items:stretch !important;}
  body[data-page="vip"] section div[style*="gap:12px"]:has(> button) button{width:100% !important;}

  /* ---- 카드 밀도 (v2 유지) — .nlCard 패딩은 820 블록의 행 압축 규칙이 담당 ---- */
  section div[style*="border-radius:16px"][style*="padding:24px"]{padding:16px !important;}   /* 히어로 성과 카드 */
  div[style*="border-radius:14px;padding:20px"]{padding:15px 14px !important;}                /* 청산·차트 카드 */
  div[style*="background:#f6f7f9;padding:18px"]{padding:12px !important;}                     /* 채팅 시뮬 */
  .g3{gap:10px;}

  /* ---- 히어로: 숫자 tabular / 면책 밀도+대비(내용·노출 무변경 — p 한정으로 다크영역 오염 차단) / segBtn 터치 ---- */
  div[style*="font-size:26px"][style*="font-weight:900"]{font-variant-numeric:tabular-nums;}
  p[style*="font-size:10.5px"][style*="color:#9096a0"]{font-size:10px !important;line-height:1.6 !important;color:#6d727c !important;}
  .segBtn{padding:9px 14px;font-size:12px;} /* 터치 26→38px+ (동일 특이성·후순위라 !important 불요) */

  /* ---- rc 장식 일러스트 숨김 (순수 장식 — 콘텐츠 아님. v2 의 180px 축소 규칙 대체) ---- */
  span[data-panel] div[style*="min-height:300px"]{display:none !important;}

  /* ---- 폰 폭에서 5칸 칩 추가 압축: rcNav 부제는 숨김
         (선택 시 열리는 패널의 STEP 제목·본문에 동일 내용이 그대로 있어 정보 손실 없음) ---- */
  .rcNav span[style*="font-size:11.5px"]{display:none;}
  .rcNum{width:24px !important;height:24px !important;font-size:10.5px !important;}

  /* ---- VIP 다크밴드 체크리스트 행간 ---- */
  ul[style*="line-height:2.15"]{line-height:1.9 !important;}

  /* ---- S4: 전체보기 링크 풀폭 버튼화 ---- */
  body[data-page="home"] span[onclick*="performance/"]{display:block;text-align:center;
    border:1px solid #f0c8a8;border-radius:10px;padding:13px 10px;background:#FFF9F4;}

  /* ---- S7 최신 기사 카드 컴팩트: 헤더 84px + 중복 축약제목 숨김(본문 전체 제목 유지 — 삭제 아님) ---- */
  body[data-page="home"] .g3 > div > div[style*="height:120px"]{height:84px !important;padding:12px 16px !important;}
  body[data-page="home"] .g3 > div > div[style*="height:120px"] strong{display:none;}

  /* ---- 푸터: 사업자/면책/약관 3덩이 시각 분리 (body 직계 div 한정 — 채팅헤더/VIP밴드 미오염 검증) ---- */
  div[style*="background:#17181d"] > div[style*="font-size:11.5px"]{line-height:1.8 !important;}
  div[style*="background:#17181d"] > div[style*="font-size:11.5px"] > br{content:"";display:block;margin-top:9px;}

  /* ---- market: 시총 열 축소 — 종목명 2줄 랩 해소 (text-align:right 병기로 오매칭 방지) ---- */
  body[data-page="market"] div[style*="width:110px"][style*="text-align:right"]{width:84px !important;}
  body[data-page="market"] div[style*="width:90px"][style*="text-align:right"]{width:70px !important;}
  .bchip,.btab{padding:8px 12px !important;}   /* 페이지 인라인 <style> 대비 !important 필수 */
  .secchip{padding:8px 12px !important;}
  .nrtab{padding:10px 14px !important;}
  #catTabs > *{padding:9px 13px !important;}
  #nlDates > *{padding:8px 13px !important;}

  /* ---- newsletter: 레터 본문 가독 + 면책 대비(색만 상향 — 크기·내용 무변경) ---- */
  body[data-page="newsletter"] .nltxt{font-size:14.5px !important;}
  body[data-page="newsletter"] [style*="color:#b0b4bb"]{color:#8a8f99 !important;}

  /* ---- 기사 본문 — 매체 표준 타이포 (매칭 문자열 9/9 기사 검증) ---- */
  body[data-page="article"] div[style*="font-size:15.5px"][style*="line-height:2.0"]{
    font-size:16.5px !important;line-height:1.85 !important;word-break:keep-all;overflow-wrap:break-word;}
  body[data-page="article"] div[style*="font-size:15.5px"] a{color:#C4470A !important;} /* 링크 대비 AA */
  body[data-page="article"] section button[onclick="pickOpen()"]{width:100%;} /* 중간 CTA 풀폭 */

  /* ---- 잠금블록(pick.js 삽입물) 2단 재배치 — 관심구간 클리핑(314px>303px) 해소 ---- */
  .pkWatchRow{flex-wrap:wrap;row-gap:4px;}
  .pkWatchRow .pkWatchZone{flex:0 0 100%;margin-left:34px !important;text-align:left;}

  /* ---- my / about 터치·CTA ---- */
  body[data-page="my"] button{min-height:44px;} /* 해지·환불 접근성 = 컴플라이언스 포인트 */
  body[data-page="about"] section button[onclick]{width:100%;}
}

/* ============================================================
   하단 고정 CTA 바 — pick.js 삽입 (#pkBar 전 페이지 / #pkVipBar 는 vip 전용, FLAGS 게이트)
   데스크톱(>820px) display:none. .pkHid 는 IntersectionObserver 연동(스마트 표시)
   ============================================================ */
#pkBar,#pkVipBar{display:none;}
@media (max-width:820px){
  #pkBar{position:fixed;left:0;right:0;bottom:0;z-index:90;display:flex;gap:8px;
    padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);
    -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid #e7e8ec;
    box-shadow:0 -6px 20px rgba(23,24,29,.08);transition:transform .25s ease;}
  #pkBar button{flex:1;padding:13px 10px;border-radius:10px;border:none;font-size:14px;font-weight:800;
    cursor:pointer;font-family:inherit;letter-spacing:-.01em;}
  #pkBar .pkBarFree{background:#D6202C;color:#fff;}
  #pkBar .pkBarVip{background:#17181d;color:#fff;}
  body.pkHasBar{padding-bottom:calc(66px + env(safe-area-inset-bottom));}

  #pkVipBar{position:fixed;left:0;right:0;bottom:0;z-index:90;display:block;
    padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);
    -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid #e7e8ec;
    box-shadow:0 -6px 20px rgba(23,24,29,.08);transition:transform .25s ease;}
  #pkVipBar button{width:100%;padding:14px;border-radius:10px;border:none;background:#D6202C;color:#fff;
    font-size:15px;font-weight:800;cursor:pointer;font-family:inherit;letter-spacing:-.01em;}
  #pkVipBar .pkVipNote{text-align:center;font-size:11px;color:#5f636b;margin-top:5px;}
  body.pkHasVipBar{padding-bottom:calc(88px + env(safe-area-inset-bottom));}

  #pkBar.pkHid,#pkVipBar.pkHid{transform:translateY(110%);}
  #pkBar button:active,#pkVipBar button:active{opacity:.85;}
}
