/**
 * EXENT (exent) - Project Styles · Stage Pink v1
 * NSKit Framework v1.0.1
 * 디자인 정본 = exent-design/design-guide/ (index.html · DESIGN_GUIDE.md)
 */

:root {
    /* 브랜드 — 액션·핑크 */
    --pink: #FF2E74;
    --pink-deep: #E5135E;
    --pink-tint: #FFE3EE;
    --pink-soft: #FFF1F6;
    --grad: linear-gradient(135deg, #FF6FA3 0%, #FB1E6C 100%);
    /* 권위 — 인증·수상 */
    --gold: #F5B301;
    --gold-tint: #FFF3D2;
    --gold-ink: #7A5600;
    /* 뉴트럴 (웜, 핑크 편향) */
    --paper: #FBFAFB;
    --card: #FFFFFF;
    --fill: #F3F2F5;
    --fill-2: #ECEAEF;
    --ink: #17151A;
    --ink-2: #6C6773;
    --ink-3: #A8A3B0;
    --line: rgba(23, 21, 26, .09);
    /* 시맨틱 (액센트와 분리) */
    --ok: #18B368;
    --warn: #F5A623;
    --danger-c: #F5325B;
    /* 그림자 · 라운드 */
    --sh-1: 0 3px 12px rgba(70, 20, 45, .07);
    --sh-2: 0 16px 38px rgba(70, 20, 45, .14);
    --sh-pink: 0 10px 24px rgba(255, 46, 116, .30);
    --r: 18px;
    --r-lg: 22px;

    /* 하위호환 별칭 (구 스캐폴드 데모 스타일용 — 정리 시 제거) */
    --exent-primary: var(--pink);
    --exent-secondary: var(--pink-deep);
    --exent-accent: var(--gold);
    --exent-dark: var(--ink);
    --exent-light: var(--fill);
    --exent-success: var(--ok);
    --exent-warning: var(--warn);
    --exent-danger: var(--danger-c);
    --exent-info: var(--pink);
}

body {
    font-family: 'Pretendard', 'Apple SD Gothic Neo', 'Malgun Gothic', system-ui, -apple-system, sans-serif;
    background-color: var(--paper);
    color: var(--ink);
}

/* NSKit 기본 레이아웃 오버라이드 */
.nskit-app {
    /* 필요시 NSKit 기본 스타일 오버라이드 */
}

/* 프로젝트 커스텀 컴포넌트 */
.index-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 40px 20px;
}

.index-container h1 {
    color: var(--exent-primary);
    font-size: 2.5rem;
    font-weight: 700;
    margin-bottom: 1rem;
}

.index-container h2 {
    color: var(--exent-secondary);
    font-size: 1.8rem;
    font-weight: 500;
    margin-bottom: 2rem;
}

/* 버튼 스타일 */
.btn {
    display: inline-block;
    padding: 12px 24px;
    border-radius: 6px;
    text-decoration: none;
    font-weight: 500;
    transition: all 0.3s ease;
    border: none;
    cursor: pointer;
}

.btn-primary {
    background-color: var(--exent-primary);
    color: white;
}

.btn-primary:hover {
    background-color: #357ABD;
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

.btn-secondary {
    background-color: var(--exent-secondary);
    color: white;
}

.btn-secondary:hover {
    background-color: #3FD4B3;
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

/* ========================================
   Sub Page Styles (NSKit v1 Page Override)
   ======================================== */
.sub-page-header {
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 16px;
    background: white;
    border-bottom: 1px solid #E5E7EB;
    gap: 12px;
}

.sub-page-header .page-header-default {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    flex: 1;
}

.sub-page-header .page-title {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sub-page-header .page-header-buttons {
    flex-shrink: 0;
    display: flex;
    gap: 8px;
}

.sub-page-content {
    height: calc(100% - 56px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.sub-page-content.with-footer {
    height: calc(100% - 56px - 60px);
}

/* ========================================
   Utility Classes
   ======================================== */
.text-center {
    text-align: center;
}

.mt-40 {
    margin-top: 40px;
}

.mb-20 {
    margin-bottom: 20px;
}

/* ========================================
   Responsive
   ======================================== */
@media (max-width: 768px) {
    .index-container {
        padding: 20px 15px;
    }

    .index-container h1 {
        font-size: 2rem;
    }

    .index-container h2 {
        font-size: 1.5rem;
    }
}

/* ========================================
   PAGE(sub-page) 레이아웃 override — §11 필수 가드 (NSKit 2.0 W0 기본 탑재)
   .show{display:block!important} 유틸이 PAGE 컨테이너 flex 를 깨 스크롤 불가 → 복원.
   ======================================== */
.sub-page-container.show { display: flex !important; }
.sub-page-content { min-height: 0; }

/* ============================================================================
   데스크톱 폰 프레임 — 넓은 뷰포트(≥500px)에서 앱 콘텐츠 셸을 430px 중앙 프레임에 가둠.
   (프레임워크는 오버레이 레이어(PAGE/DIALOG/PANEL)만 자동 프레임 → nskit-layout.css §11.
    #content 하위 셸+GNB 프레임화는 앱 책임. --nskit-frame-w(430) 재사용, transform 대신 margin.)
   ============================================================================ */
@media (min-width: 500px) {
    html[data-nskit-mode="mobile"] body { background: #14101A; }
    html[data-nskit-mode="mobile"] #app-stage.main-stage {
        width: var(--nskit-frame-w); left: 50%; margin-left: calc(var(--nskit-frame-w) / -2);
        background: var(--paper);
        box-shadow: 0 0 0 1px rgba(255,255,255,.05), 0 24px 70px rgba(0,0,0,.5);
    }
    /* GNB(고정)도 프레임 폭 중앙 정렬 */
    html[data-nskit-mode="mobile"] .part-gnb {
        width: var(--nskit-frame-w) !important; left: 50% !important; right: auto !important;
        margin-left: calc(var(--nskit-frame-w) / -2); max-width: var(--nskit-frame-w);
    }
}

/* ============================================================================
   EXENT · Stage Pink — 컴포넌트 레이어 (.ex-*)  정본=design-guide/
   색=토큰만 · 아이콘=Iconify lucide · 미디어 위 텍스트=스크림/칩 위에만
   ============================================================================ */
* { -webkit-tap-highlight-color: transparent; }
iconify-icon { display: inline-block; vertical-align: -0.125em; }

/* 씬 공통 컨테이너 (GNB 높이만큼 하단 여백) */
.ex-scene { min-height: 100%; background: var(--paper); padding-bottom: 28px; color: var(--ink); }

/* 화이트 스티키 상단바 (홈 외 씬) */
.ex-topbar { position: sticky; top: 0; z-index: 20; background: rgba(255,255,255,.92); backdrop-filter: blur(8px);
    border-bottom: 1px solid var(--line); padding: 14px 16px 12px; display: flex; align-items: center; gap: 10px; }
.ex-topbar .tb-title { font-size: 20px; font-weight: 800; letter-spacing: -.4px; }
.ex-topbar .tb-sub { font-size: 12px; color: var(--ink-3); font-weight: 500; }
.ex-topbar .tb-act { margin-left: auto; width: 38px; height: 38px; border-radius: 12px; background: var(--fill);
    display: flex; align-items: center; justify-content: center; cursor: pointer; }
.ex-topbar .tb-act iconify-icon { font-size: 20px; color: var(--ink-2); }
.ex-pad   { padding-left: 16px; padding-right: 16px; }
.ex-mute  { color: var(--ink-2); }
.tabnum   { font-variant-numeric: tabular-nums; }

/* 섹션 헤더 */
.ex-sec { margin-top: 22px; }
.ex-sec-head { display: flex; align-items: baseline; justify-content: space-between; padding: 0 16px 12px; }
.ex-sec-title { font-size: 19px; font-weight: 800; letter-spacing: -.3px; }
.ex-sec-sub { display: block; font-size: 12.5px; font-weight: 500; color: var(--ink-2); margin-top: 3px; letter-spacing: 0; }
.ex-more { font-size: 13px; font-weight: 700; color: var(--pink); cursor: pointer; white-space: nowrap; }
.ex-more iconify-icon { font-size: 14px; vertical-align: -2px; }

/* 히어로 (핑크 그라디언트 몰입 헤더) */
.ex-hero { background: var(--grad); color: #fff; padding: 20px 18px 24px; border-radius: 0 0 24px 24px; box-shadow: var(--sh-pink); }
.ex-hero .hi { font-size: 13px; font-weight: 600; opacity: .92; }
.ex-hero .hh { font-size: 24px; font-weight: 800; letter-spacing: -.5px; margin-top: 3px; }
.ex-hero .hsub { font-size: 13px; opacity: .9; margin-top: 6px; line-height: 1.5; }
.ex-hero-stat { display: flex; gap: 10px; margin-top: 16px; }
.ex-hero-stat .s { flex: 1; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.22); border-radius: 14px; padding: 10px 12px; backdrop-filter: blur(4px); }
.ex-hero-stat .s .n { font-size: 19px; font-weight: 800; letter-spacing: -.4px; }
.ex-hero-stat .s .l { font-size: 11px; opacity: .9; margin-top: 1px; }

/* 분야 필터 (원형 아이콘, 가로 스크롤) */
.ex-catbar { display: flex; gap: 14px; overflow-x: auto; padding: 4px 16px 6px; scrollbar-width: none; }
.ex-catbar::-webkit-scrollbar { display: none; }
.ex-cat { flex: 0 0 auto; display: flex; flex-direction: column; align-items: center; gap: 6px; cursor: pointer; width: 56px; }
.ex-cat-ic { width: 54px; height: 54px; border-radius: 18px; background: var(--fill); display: flex; align-items: center; justify-content: center; transition: .18s; }
.ex-cat-ic iconify-icon { font-size: 24px; color: var(--ink-2); transition: .18s; }
.ex-cat .cl { font-size: 11.5px; font-weight: 600; color: var(--ink-2); }
.ex-cat.on .ex-cat-ic { background: var(--grad); box-shadow: var(--sh-pink); transform: translateY(-1px); }
.ex-cat.on .ex-cat-ic iconify-icon { color: #fff; }
.ex-cat.on .cl { color: var(--pink); }
.ex-cat .aidot { display: none; }

/* 필터 칩 */
.ex-chips { display: flex; gap: 8px; overflow-x: auto; padding: 2px 16px 4px; scrollbar-width: none; }
.ex-chips::-webkit-scrollbar { display: none; }
.ex-chip { flex: 0 0 auto; padding: 8px 14px; border-radius: 999px; background: var(--fill); color: var(--ink-2); font-size: 13px; font-weight: 600; cursor: pointer; border: 1px solid transparent; transition: .15s; }
.ex-chip.on { background: var(--pink-tint); color: var(--pink-deep); border-color: rgba(255,46,116,.25); }

/* 태그/뱃지 */
.ex-tag { display: inline-flex; align-items: center; gap: 4px; padding: 3px 9px; border-radius: 8px; font-size: 11px; font-weight: 700; background: var(--pink); color: #fff; letter-spacing: .1px; }
.ex-tag.gold { background: var(--gold); color: #fff; }
.ex-tag.line { background: #fff; color: var(--pink-deep); border: 1px solid rgba(255,46,116,.35); }
.ex-tag.soft { background: var(--pink-tint); color: var(--pink-deep); }
.ex-tag.dark { background: rgba(0,0,0,.55); color: #fff; backdrop-filter: blur(3px); }

/* 티어 배지 */
.ex-tier { display: inline-flex; align-items: center; gap: 4px; padding: 3px 9px; border-radius: 999px; font-size: 11px; font-weight: 700; }
.ex-tier iconify-icon { font-size: 12px; }
.ex-tier.fill { background: var(--fill-2); color: var(--ink-2); }
.ex-tier.pink-tint { background: var(--pink-tint); color: var(--pink-deep); }
.ex-tier.gold { background: var(--gold-tint); color: var(--gold-ink); }

/* 아바타 (그라디언트 이니셜) */
.ex-av { --s: 36px; width: var(--s); height: var(--s); border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: #fff; font-weight: 800; font-size: calc(var(--s) * .42); flex: 0 0 auto; box-shadow: inset 0 0 0 2px rgba(255,255,255,.35); }

/* 버튼 */
.ex-btn { display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 13px 18px; border-radius: 14px; font-size: 14.5px; font-weight: 700; border: none; cursor: pointer; transition: .15s; font-family: inherit; }
.ex-btn iconify-icon { font-size: 18px; }
.ex-btn.primary { background: var(--pink); color: #fff; box-shadow: var(--sh-pink); }
.ex-btn.primary:active { transform: translateY(1px); }
.ex-btn.ghost { background: #fff; color: var(--ink); border: 1px solid var(--line); }
.ex-btn.gold { background: var(--gold); color: #fff; }
.ex-btn.block { width: 100%; }
.ex-btn[disabled] { background: var(--fill); color: var(--ink-3); box-shadow: none; cursor: default; }

/* 미디어 썸네일 (16:10, 스튜디오 다크 + 카테고리 글로우) */
.ex-thumb { position: relative; aspect-ratio: 16/10; border-radius: 16px; overflow: hidden; background: #201826; }
.ex-thumb::after { content: ''; position: absolute; inset: 0; background: linear-gradient(160deg, rgba(255,255,255,.04), rgba(0,0,0,.35)); }
.ex-thumb .glyph { position: absolute; right: -6px; bottom: -10px; font-size: 92px; color: rgba(255,255,255,.10); }
.ex-thumb .glyph iconify-icon { display: block; }
.ex-thumb .catchip { position: absolute; top: 9px; left: 9px; z-index: 2; }
.ex-thumb .badge { position: absolute; top: 9px; right: 9px; z-index: 2; }
.ex-thumb .dur { position: absolute; bottom: 9px; right: 9px; z-index: 2; }
.ex-thumb .play { position: absolute; z-index: 2; left: 50%; top: 50%; transform: translate(-50%,-50%); width: 46px; height: 46px; border-radius: 50%; background: rgba(255,255,255,.92); display: flex; align-items: center; justify-content: center; box-shadow: 0 6px 18px rgba(0,0,0,.3); }
.ex-thumb .play iconify-icon { font-size: 22px; color: var(--pink-deep); margin-left: 2px; }
/* 카테고리별 미디어 글로우 (채도는 절제, 스튜디오톤) */
.ex-thumb.cat-dance   { background: radial-gradient(120% 120% at 20% 0%, #4a1130, #1a1020); }
.ex-thumb.cat-vocal   { background: radial-gradient(120% 120% at 20% 0%, #3a1030, #171018); }
.ex-thumb.cat-rap     { background: radial-gradient(120% 120% at 20% 0%, #22262e, #12141a); }
.ex-thumb.cat-compose { background: radial-gradient(120% 120% at 20% 0%, #2a1c3a, #14101c); }
.ex-thumb.cat-acting  { background: radial-gradient(120% 120% at 20% 0%, #103038, #101a1e); }
.ex-thumb.cat-media   { background: radial-gradient(120% 120% at 20% 0%, #3a2410, #1a1410); }
.ex-thumb.cat-model   { background: radial-gradient(120% 120% at 20% 0%, #2e2430, #16121a); }
.ex-thumb.cat-lang    { background: radial-gradient(120% 120% at 20% 0%, #103828, #101a16); }

/* 코스 카드 */
.ex-course { background: var(--card); border-radius: var(--r); overflow: hidden; box-shadow: var(--sh-1); border: 1px solid var(--line); }
.ex-course .ex-thumb { border-radius: 0; }
.ex-course .body { padding: 12px 13px 13px; }
.ex-course .ttl { font-size: 15px; font-weight: 700; line-height: 1.35; letter-spacing: -.2px; }
.ex-course .sum { font-size: 12.5px; color: var(--ink-2); margin-top: 4px; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ex-course .crewline { display: flex; align-items: center; gap: 7px; margin-top: 10px; }
.ex-course .crewline .cn { font-size: 12.5px; font-weight: 600; color: var(--ink-2); }
.ex-course .foot { display: flex; align-items: center; justify-content: space-between; margin-top: 11px; padding-top: 11px; border-top: 1px solid var(--line); }
.ex-course .price { font-size: 19px; font-weight: 800; color: var(--pink-deep); letter-spacing: -.4px; }
.ex-course .price small { font-size: 12px; font-weight: 600; color: var(--ink-3); margin-left: 2px; }
.ex-course .rate { font-size: 12.5px; font-weight: 700; color: var(--ink-2); display: inline-flex; align-items: center; gap: 3px; }
.ex-course .rate iconify-icon { color: var(--gold); font-size: 14px; }

/* 가로 스크롤 캐러셀 (홈 추천) */
.ex-rail { display: flex; gap: 12px; overflow-x: auto; padding: 2px 16px 6px; scrollbar-width: none; scroll-snap-type: x mandatory; }
.ex-rail::-webkit-scrollbar { display: none; }
.ex-rail > * { flex: 0 0 76%; max-width: 300px; scroll-snap-align: start; }

/* 세로 리스트 그리드 */
.ex-grid { display: grid; grid-template-columns: 1fr; gap: 13px; padding: 0 16px; }
.ex-grid.two { grid-template-columns: 1fr 1fr; gap: 11px; }

/* 크루 카드 */
.ex-crew { background: var(--card); border-radius: var(--r); overflow: hidden; box-shadow: var(--sh-1); border: 1px solid var(--line); }
.ex-crew .cap { height: 62px; position: relative; }
.ex-crew .cap::after { content: ''; position: absolute; inset: 0; opacity: .9; }
.ex-crew .cbody { padding: 0 14px 14px; margin-top: -22px; position: relative; }
.ex-crew .cbody .top { display: flex; align-items: flex-end; gap: 10px; }
.ex-crew .cname { font-size: 15.5px; font-weight: 800; letter-spacing: -.2px; display: flex; align-items: center; gap: 5px; }
.ex-crew .cname iconify-icon { color: var(--pink); font-size: 15px; }
.ex-crew .ctag { font-size: 12.5px; color: var(--ink-2); margin-top: 5px; }
.ex-crew .cstat { display: flex; gap: 16px; margin-top: 11px; padding-top: 11px; border-top: 1px solid var(--line); }
.ex-crew .cstat .k { font-size: 15px; font-weight: 800; }
.ex-crew .cstat .u { font-size: 11px; color: var(--ink-3); }

/* 콘텐츠(피드) 카드 */
.ex-content .ttl { font-size: 14px; font-weight: 700; line-height: 1.35; margin-top: 9px; }
.ex-content .meta { display: flex; align-items: center; gap: 8px; margin-top: 6px; font-size: 12px; color: var(--ink-3); }
.ex-content .meta iconify-icon { font-size: 13px; vertical-align: -2px; }
.ex-content .meta .dot { width: 3px; height: 3px; border-radius: 50%; background: var(--ink-3); }

/* 회차 타임라인 (§7.5 회차별 트레이너) */
.ex-tl { position: relative; padding: 4px 0; }
.ex-tl-item { position: relative; display: flex; gap: 12px; padding: 0 0 4px 0; }
.ex-tl-rail { flex: 0 0 34px; display: flex; flex-direction: column; align-items: center; }
.ex-tl-node { width: 30px; height: 30px; border-radius: 50%; background: var(--pink-soft); color: var(--pink-deep); display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 800; border: 1px solid rgba(255,46,116,.28); z-index: 1; }
.ex-tl-line { flex: 1; width: 2px; background: var(--line); margin: 3px 0; min-height: 26px; }
.ex-tl-item:last-child .ex-tl-line { display: none; }
.ex-tl-card { flex: 1; background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 11px 12px; margin-bottom: 12px; }
.ex-tl-card .th { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ex-tl-card .tt { font-size: 13.5px; font-weight: 700; line-height: 1.3; }
.ex-tl-card .tm { display: flex; align-items: center; gap: 7px; margin-top: 8px; }
.ex-tl-card .tm .mode { font-size: 11px; font-weight: 600; color: var(--ink-2); background: var(--fill); padding: 3px 8px; border-radius: 7px; }
.ex-tl-card .tm .who { font-size: 12px; font-weight: 600; color: var(--ink-2); }
.ex-tl-item.locked .ex-tl-node { background: var(--fill); color: var(--ink-3); border: 1px dashed var(--ink-3); }
.ex-tl-item.locked .ex-tl-card { border-style: dashed; background: var(--paper); }
.ex-lock { display: inline-flex; align-items: center; gap: 3px; font-size: 10.5px; font-weight: 700; color: var(--ink-3); }
.ex-lock iconify-icon { font-size: 12px; }

/* AI 스코어 링 (conic) */
.ex-ai { position: relative; width: 84px; height: 84px; border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.ex-ai::before { content: ''; position: absolute; inset: 0; border-radius: 50%; background: conic-gradient(var(--pink) calc(var(--v,0)*1%), var(--fill) 0); }
.ex-ai::after { content: ''; position: absolute; inset: 8px; border-radius: 50%; background: var(--card); }
.ex-ai .val { position: relative; z-index: 1; font-size: 22px; font-weight: 800; color: var(--pink-deep); letter-spacing: -.5px; }

/* 진도바 */
.ex-prog { height: 7px; border-radius: 999px; background: var(--fill); overflow: hidden; }
.ex-prog > i { display: block; height: 100%; border-radius: 999px; background: var(--grad); }

/* 인증서(골드 seal) */
.ex-cert { display: flex; align-items: center; gap: 12px; background: var(--gold-tint); border: 1px solid rgba(245,179,1,.3); border-radius: 16px; padding: 12px 14px; }
.ex-cert .seal { width: 42px; height: 42px; border-radius: 50%; background: var(--gold); color: #fff; display: flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.ex-cert .seal iconify-icon { font-size: 22px; }
.ex-cert .ct { font-size: 13.5px; font-weight: 800; color: var(--gold-ink); }
.ex-cert .cs { font-size: 11.5px; color: #9a7a2e; margin-top: 2px; }

/* 리스트 로우 */
.ex-row { display: flex; align-items: center; gap: 12px; padding: 13px 16px; background: var(--card); }
.ex-row + .ex-row { border-top: 1px solid var(--line); }
.ex-row .rl { flex: 1; min-width: 0; }
.ex-row .rt { font-size: 14px; font-weight: 600; }
.ex-row .rs { font-size: 12px; color: var(--ink-3); margin-top: 2px; }
.ex-row .chev { color: var(--ink-3); font-size: 20px; }

/* 빈/구분 */
.ex-divider { height: 8px; background: var(--fill); margin: 22px 0 0; }
.ex-card { background: var(--card); border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--sh-1); }

/* PAGE 상세 공통 — 히어로 풀블리드(모바일 .sub-page-content 12px 패딩 제거), 본문은 .ex-detail-body 가 담당 */
.sub-page-content:has(> .ex-page) { padding: 0 !important; }
.ex-page { background: var(--paper); }
.ex-detail-hero { position: relative; }
.ex-detail-hero .ex-thumb { aspect-ratio: 16/11; border-radius: 0; }
.ex-detail-body { padding: 16px; }
.ex-kv { display: flex; justify-content: space-between; padding: 11px 0; border-bottom: 1px solid var(--line); font-size: 13.5px; }
.ex-kv .k { color: var(--ink-2); }
.ex-kv .v { font-weight: 700; }
.ex-sticky-cta { position: sticky; bottom: 0; left: 0; right: 0; background: rgba(255,255,255,.94); backdrop-filter: blur(8px); border-top: 1px solid var(--line); padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); display: flex; align-items: center; gap: 12px; }
.ex-sticky-cta .p { flex: 0 0 auto; }
.ex-sticky-cta .p .price { font-size: 19px; font-weight: 800; color: var(--pink-deep); letter-spacing: -.4px; }
.ex-sticky-cta .p .plabel { font-size: 11px; color: var(--ink-3); }
.ex-sticky-cta .ex-btn { flex: 1; }
