/* 일일특가(오늘의 특가) 공용 스타일 — UTF-8 no BOM */

/* ══ 카운트다운(스플릿 플랩 = 진짜 플립시계) 공통 컴포넌트 ══════════════
   구조: .ts-cd-wrap > .ts-cd-label + .ts-cd > .ts-cd-unit(.ts-cd-cell + i라벨)
   셀:   .ts-cd-cell > .ts-fc-top(윗반쪽) / .ts-fc-bottom(아랫반쪽)
                     / .ts-fc-leaf(.ts-fc-leaf-front 앞면·.ts-fc-leaf-back 뒷면) */
.ts-cd-wrap{display:inline-flex;align-items:center;gap:12px}
.ts-cd-label{font-size:13px;font-weight:600;color:rgba(255,255,255,.75);letter-spacing:-.01em;white-space:nowrap}
.ts-cd{display:inline-flex;align-items:flex-start;gap:7px;font-variant-numeric:tabular-nums}
.ts-cd-unit{display:inline-flex;flex-direction:column;align-items:center}
.ts-cd-unit i{font-style:normal;font-size:10px;font-weight:600;color:rgba(255,255,255,.55);margin-top:5px;letter-spacing:.06em}
.ts-cd-sep{font-size:24px;font-weight:800;color:rgba(255,255,255,.5);line-height:48px}

/* 플립 카드 셀 — 모든 판(top/bottom/leaf 앞뒷면)은 셀 전체 크기로 두고
   clip-path 로 위/아래 반쪽만 노출한다(숫자 수직정렬 문제 원천 차단). */
.ts-cd-cell{
    --fc-w:46px; --fc-h:48px; --fc-fs:27px;
    position:relative;display:block;width:var(--fc-w);height:var(--fc-h);
    perspective:300px;border-radius:8px;
    box-shadow:0 3px 8px rgba(0,0,0,.45),inset 0 0 0 1px rgba(255,255,255,.05);
    font-family:'Pretendard','Roboto',-apple-system,sans-serif;
    font-size:var(--fc-fs);font-weight:900;color:#fff;letter-spacing:.01em;
    text-align:center;
}
.ts-fc-top,.ts-fc-bottom,.ts-fc-leaf-front,.ts-fc-leaf-back{
    position:absolute;inset:0;line-height:var(--fc-h);
    backface-visibility:hidden;
}
/* 윗반쪽(밝은 톤) */
.ts-fc-top,.ts-fc-leaf-front{
    background:linear-gradient(180deg,#2e2e2e 0%,#1a1a1a 100%);
    clip-path:inset(0 0 50% 0 round 8px 8px 0 0);
}
/* 아랫반쪽(어두운 톤) */
.ts-fc-bottom{
    background:linear-gradient(180deg,#151515 0%,#0c0c0c 100%);
    clip-path:inset(50% 0 0 0 round 0 0 8px 8px);
}
/* 중앙 힌지 라인 */
.ts-cd-cell:before{
    content:"";position:absolute;left:0;right:0;top:50%;height:1px;z-index:6;
    background:rgba(0,0,0,.72);box-shadow:0 1px 0 rgba(255,255,255,.045);
    pointer-events:none;
}
/* 접히는 잎(leaf): 평소 숨김, 플립 순간에만 표시 */
.ts-fc-leaf{
    position:absolute;inset:0;z-index:4;
    transform-style:preserve-3d;transform-origin:50% 50%;
    pointer-events:none;visibility:hidden;will-change:transform;
}
/* 뒷면: 미리 X축 180도 뒤집어 두고(leaf가 -180 돌면 정면),
   로컬 기준 '윗반 클립' = 화면상 아랫반으로 나타난다 */
.ts-fc-leaf-back{
    transform:rotateX(180deg);
    background:linear-gradient(180deg,#151515 0%,#0c0c0c 100%);
    clip-path:inset(0 0 50% 0 round 8px 8px 0 0);
}
.ts-cd-cell.flipping .ts-fc-leaf{
    visibility:visible;
    animation:tsflipleaf .4s cubic-bezier(.33,.08,.28,1) forwards;
}
@keyframes tsflipleaf{
    0%{transform:rotateX(0)}
    100%{transform:rotateX(-180deg)}
}
/* 접히는 동안 명암 변화(실물 플립 질감) */
.ts-cd-cell.flipping .ts-fc-leaf-front{animation:tsleafshade .4s linear forwards}
@keyframes tsleafshade{0%{filter:brightness(1)}55%{filter:brightness(.5)}100%{filter:brightness(.35)}}
.ts-cd-cell.flipping .ts-fc-bottom{filter:brightness(.88)}

/* 마감 임박(10분 이하): 숫자 붉게 + 은은한 펄스 */
.ts-cd-soon .ts-cd-cell{color:#ff6b4a;box-shadow:0 3px 10px rgba(224,47,20,.5),inset 0 0 0 1px rgba(255,107,74,.25)}
.ts-cd-soon .ts-cd-sep{color:rgba(255,107,74,.8);animation:tspulse 1s ease-in-out infinite}
@keyframes tspulse{0%,100%{opacity:1}50%{opacity:.45}}
.ts-cd-endmsg{font-size:14px;font-weight:800;color:#ffd9c7;letter-spacing:-.01em}

/* ══ 예정(오픈 예정) 일정 표시 — 카운트다운 대신 언제 열리고 닫히는지 ══ */
.ts-schedule{display:inline-flex;align-items:baseline;gap:8px;flex-wrap:wrap;color:rgba(255,255,255,.85);font-size:14px;font-weight:500}
.ts-schedule b{color:#7db8ff;font-weight:800;font-size:16px;letter-spacing:-.01em}
.ts-schedule-tilde{color:rgba(255,255,255,.45)}
.ts-thumb-schedule .ts-schedule{font-size:11px;gap:5px;justify-content:center;text-shadow:0 1px 3px rgba(0,0,0,.6)}
.ts-thumb-schedule .ts-schedule b{font-size:12.5px}

/* ══ 상품 목록 썸네일 오버레이 ══════════════════════ */
.ts-thumb-badge{
    position:absolute;top:10px;left:10px;z-index:6;
    display:inline-flex;align-items:center;gap:4px;white-space:nowrap;
    background:linear-gradient(135deg,#d42a2a,#a01818);
    color:#fff;font-size:12px;font-weight:800;line-height:1;letter-spacing:-.02em;
    padding:7px 11px;border-radius:8px;box-shadow:0 3px 10px rgba(217,43,16,.4);
    pointer-events:none;
}
.ts-thumb-badge .ts-thumb-fire{font-size:12px}
.ts-thumb-badge em{font-style:normal;background:rgba(255,255,255,.24);padding:2px 6px;border-radius:5px;margin-left:2px;font-weight:900}
.ts-thumb-badge.upcoming{background:linear-gradient(135deg,#4a90e2,#2b6fd0);box-shadow:0 3px 10px rgba(43,111,208,.4)}
/* 특가 배지가 있으면 기존 좌상단 할인 리본과 겹침 방지 */
.product-img-in:has(.ts-thumb-badge) .discount-corner{display:none}

.ts-thumb-timer{
    position:absolute;left:0;right:0;bottom:0;z-index:6;
    display:flex;justify-content:center;pointer-events:none;
    padding:26px 10px 9px;
    background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.62) 100%);
}
.ts-thumb-timer .ts-cd{gap:4px}
.ts-thumb-timer .ts-cd-cell{--fc-w:30px;--fc-h:32px;--fc-fs:17px;border-radius:6px}
.ts-thumb-timer .ts-fc-top,.ts-thumb-timer .ts-fc-leaf-front,.ts-thumb-timer .ts-fc-leaf-back{clip-path:inset(0 0 50% 0 round 6px 6px 0 0)}
.ts-thumb-timer .ts-fc-bottom{clip-path:inset(50% 0 0 0 round 0 0 6px 6px)}
.ts-thumb-timer .ts-cd-unit i{font-size:8.5px;margin-top:2px;color:rgba(255,255,255,.75)}
.ts-thumb-timer .ts-cd-sep{font-size:15px;line-height:32px;color:rgba(255,255,255,.6)}
.ts-thumb-timer .ts-cd-endmsg{font-size:12px}

/* ══ 상품 상세 히어로 — 컴팩트 가로 스트립(좌우 컬럼 높이 밸런스) ═══════════ */
.ts-hero{
    position:relative;overflow:hidden;
    background:linear-gradient(135deg,#241b17 0%,#3a2420 55%,#5a2418 100%);
    border-radius:14px;padding:16px 18px;margin:12px 0 14px;
    color:#fff;box-shadow:0 6px 18px rgba(60,20,10,.22);
}
.ts-hero:before{
    content:"";position:absolute;right:-30px;top:-30px;width:130px;height:130px;
    background:radial-gradient(circle,rgba(232,73,43,.28),transparent 68%);pointer-events:none;
}
/* 1행: (좌) 배지 + 특가가 + 정가(취소선)  /  (우) 큰 할인율 박스 */
.ts-hero-main{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:nowrap}
.ts-hero-info{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;min-width:0;flex:1}
.ts-hero-badge{
    display:inline-flex;align-items:center;gap:4px;align-self:center;
    background:linear-gradient(135deg,#d42a2a,#a01818);
    padding:4px 10px;border-radius:20px;font-weight:800;font-size:12px;letter-spacing:-.01em;
    box-shadow:0 2px 7px rgba(224,47,20,.4);white-space:nowrap;
}
.ts-hero-fire{font-size:12px;filter:drop-shadow(0 1px 1px rgba(0,0,0,.3))}
/* 우측 큰 할인율 박스 (허전한 오른쪽을 채움) */
.ts-hero-ratebox{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;flex-shrink:0;background:rgba(255,255,255,.1);border:1px solid rgba(255,211,78,.45);border-radius:13px;padding:9px 18px}
.ts-hero-rate-num{font-size:36px;font-weight:900;color:#ffd34e;text-shadow:0 2px 6px rgba(0,0,0,.3)}
.ts-hero-rate-num small{font-size:18px;font-weight:800;margin-left:1px}
.ts-hero-rate-label{font-size:12px;font-weight:700;color:rgba(255,255,255,.85);margin-top:4px}
.ts-hero-sale{font-size:32px;font-weight:900;letter-spacing:-.03em;color:#fff}
.ts-hero-regular s{font-size:15px;color:rgba(255,255,255,.5);font-weight:500}

/* 2행: 종료 카운트다운 + 잔량(인라인) */
.ts-hero-sub{display:flex;align-items:center;gap:16px;margin-top:15px;flex-wrap:wrap}
.ts-hero-timer{
    display:inline-flex;align-items:center;border-radius:12px;
    background:rgba(0,0,0,.28);padding:9px 14px;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
}
/* 히어로 카운트다운 셀 (상세페이지 — 키움) */
.ts-hero-timer .ts-cd-wrap{gap:11px}
.ts-hero-timer .ts-cd-label{font-size:13px}
.ts-hero-timer .ts-cd-cell{--fc-w:44px;--fc-h:46px;--fc-fs:26px;border-radius:7px}
.ts-hero-timer .ts-fc-top,.ts-hero-timer .ts-fc-leaf-front,.ts-hero-timer .ts-fc-leaf-back{clip-path:inset(0 0 50% 0 round 7px 7px 0 0)}
.ts-hero-timer .ts-fc-bottom{clip-path:inset(50% 0 0 0 round 0 0 7px 7px)}
.ts-hero-timer .ts-cd-unit i{font-size:9px;margin-top:3px}
.ts-hero-timer .ts-cd-sep{font-size:22px;line-height:46px}

/* 잔량(2줄 스택): 1줄 그래프 전체폭 + 2줄 판매 텍스트 — 플립시계는 좌측 그대로
   텍스트는 3구간(한정수량/현재판매/%)을 바 폭에 맞춰 분산(space-between) → PC·모바일 모두 좌측쏠림 없이 밸런스 */
.ts-hero-stock{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:12px;min-width:210px;flex:1;padding:3px 0}
.ts-hero-stock .ts-stock-bar{width:100%;flex:none;height:9px;border-radius:5px;background:rgba(255,255,255,.16);overflow:hidden}
.ts-stock-fill{height:100%;border-radius:5px;background:linear-gradient(90deg,#ffb648,#ff5b38);transition:width .6s ease;display:block}
.ts-hero-stock .ts-stock-text{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:14px;color:rgba(255,255,255,.88);font-weight:600;white-space:nowrap}
.ts-hero-stock .ts-stock-text b{font-size:16px}
.ts-hero-stock .ts-stock-text .ts-stock-percent{font-size:14px}
.ts-stock-text b{color:#ffd34e;font-size:13px;font-weight:900}
.ts-stock-percent{color:rgba(255,255,255,.6);font-weight:700}

/* ══ 전용 특가 페이지 ═══════════════════════════════ */
.ts-page{max-width:1200px;margin:0 auto;padding:30px 16px 60px}
.ts-page-hero{
    position:relative;overflow:hidden;border-radius:22px;padding:40px 30px 36px;margin-bottom:36px;
    background:
        radial-gradient(900px 380px at 15% -20%,rgba(232,73,43,.5),transparent 60%),
        radial-gradient(700px 320px at 90% 120%,rgba(255,180,72,.32),transparent 62%),
        linear-gradient(135deg,#191311 0%,#31201b 55%,#571f10 100%);
    color:#fff;text-align:center;box-shadow:0 16px 44px rgba(60,20,10,.32);
}
/* 관리자 업로드 배경 이미지 사용 시: 기본 장식 그라데이션 오브 제거 */
.ts-page-hero--img:before,.ts-page-hero--img:after{display:none}
.ts-page-hero h1{position:relative;font-size:36px;font-weight:900;letter-spacing:-.03em;margin:0 0 8px}
.ts-page-hero p{position:relative;font-size:15px;color:rgba(255,255,255,.78);margin:0}
.ts-page-livecount{position:relative;display:inline-flex;align-items:center;gap:7px;margin-top:14px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.14);border-radius:20px;padding:6px 15px;font-size:14px;font-weight:700;color:#fff}
.ts-page-livecount b{color:#ffd34e;font-size:16px;margin:0 1px}
.ts-live-dot{width:8px;height:8px;border-radius:50%;background:#ff5b4a;box-shadow:0 0 0 0 rgba(255,91,74,.7);animation:tslive 1.4s ease-out infinite}
@keyframes tslive{0%{box-shadow:0 0 0 0 rgba(255,91,74,.6)}70%{box-shadow:0 0 0 7px rgba(255,91,74,0)}100%{box-shadow:0 0 0 0 rgba(255,91,74,0)}}
.ts-page-hero .ts-page-fire{font-size:31px;vertical-align:-2px}
.ts-page-clock{position:relative;display:flex;justify-content:center;margin-top:22px}
.ts-page-clock .ts-cd-wrap{
    background:rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.1);
    border-radius:16px;padding:14px 26px;backdrop-filter:blur(4px);
}
.ts-page-clock .ts-cd-label{font-size:14px}
.ts-page-clock .ts-cd-cell{--fc-w:66px;--fc-h:68px;--fc-fs:40px;border-radius:10px}
.ts-page-clock .ts-fc-top,.ts-page-clock .ts-fc-leaf-front,.ts-page-clock .ts-fc-leaf-back{clip-path:inset(0 0 50% 0 round 10px 10px 0 0)}
.ts-page-clock .ts-fc-bottom{clip-path:inset(50% 0 0 0 round 0 0 10px 10px)}
.ts-page-clock .ts-cd-unit i{font-size:11px;margin-top:5px}
.ts-page-clock .ts-cd-sep{font-size:34px;line-height:68px}

.ts-section-title{display:flex;align-items:center;gap:10px;font-size:21px;font-weight:800;color:#202124;margin:34px 0 18px;letter-spacing:-.02em}
.ts-section-title:before{content:"";width:5px;height:22px;background:#e8492b;border-radius:3px}
.ts-section-title .ts-section-tag{font-size:12px;font-weight:700;color:#fff;background:#e8492b;padding:3px 10px;border-radius:20px}
.ts-section-title.upcoming:before{background:#2b7de8}
.ts-section-title.upcoming .ts-section-tag{background:#2b7de8}

.ts-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.ts-pcard-wrap{display:flex;flex-direction:column}
.ts-pcard{position:relative;background:#fff;border:1px solid #eceef1;border-radius:16px;overflow:hidden;transition:transform .18s,box-shadow .18s;text-decoration:none;color:inherit;display:flex;flex-direction:column;flex:1 0 auto}
/* 카드 본문이 남는 높이 흡수 → 남은수량 유/무와 무관하게 카드 높이·담기버튼 하단 정렬 */
.ts-pcard-body{flex:1 0 auto}
/* 특가카드 장바구니 담기 버튼 */
.ts-pcard-cart{margin-top:9px}
.ts-pcard-cartbtn{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;height:44px;border:1px solid #e5432a;border-radius:11px;background:#fff;color:#e5432a;font-size:15px;font-weight:700;cursor:pointer;transition:background .15s,color .15s,box-shadow .15s}
.ts-pcard-cartbtn:hover{background:#e5432a;color:#fff;box-shadow:0 6px 16px rgba(229,67,42,.28)}
.ts-pcard-cartbtn.is-soldout{border-color:#e3b3b5;background:#f4e2e3;color:#b4232d;cursor:not-allowed}
.ts-pcard:hover{transform:translateY(-4px);box-shadow:0 12px 26px rgba(0,0,0,.1)}
.ts-pcard-thumb{position:relative;aspect-ratio:1/1;background:#f4f5f7;overflow:hidden}
.ts-pcard-thumb img{width:100%;height:100%;object-fit:cover;display:block}
/* 오픈예정 한정수량 배지 — 이미지 우측 하단(가격줄 겹침 방지, 너무 작지 않게) */
.ts-thumb-limit{position:absolute;right:9px;bottom:9px;z-index:5;display:inline-flex;align-items:baseline;gap:2px;
    background:rgba(20,26,38,.82);color:#fff;font-size:13px;font-weight:700;letter-spacing:-.01em;
    padding:5px 11px;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.28);backdrop-filter:blur(2px)}
.ts-thumb-limit b{color:#7db8ff;font-size:15px;font-weight:900}
/* 진행중: 남은수량 강조(붉은 톤) */
.ts-thumb-limit.is-active b{color:#ff9a5a}
@media (max-width:991px){.ts-thumb-limit{right:7px;bottom:7px;font-size:12px;padding:4px 9px}.ts-thumb-limit b{font-size:14px}}
.ts-pcard.is-upcoming .ts-pcard-thumb img{filter:grayscale(.25) brightness(.92)}
.ts-pcard-body{padding:14px 15px 16px}
.ts-pcard-name{font-size:14.5px;font-weight:700;color:#202124;line-height:1.4;margin-bottom:9px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:41px}
/* 가격 1줄 고정(할인율+할인가+정가). 해상도별 폰트 축소로 6자리도 줄바꿈 없이 표시 */
.ts-pcard-price{display:flex;align-items:baseline;gap:6px;flex-wrap:nowrap;white-space:nowrap;min-width:0}
.ts-pcard-rate{color:#e8492b;font-weight:900;font-size:18px;flex-shrink:0}
.ts-pcard-sale{font-weight:900;font-size:19px;color:#202124;flex-shrink:0}
.ts-pcard-regular{min-width:0;overflow:hidden}
.ts-pcard-regular s{color:#b0b4ba;font-size:12px;font-weight:500}
/* PC 좁은 폭(4열, 992~1320): 고가도 1줄 유지 위해 한 단계 축소 */
@media (min-width:992px) and (max-width:1320px){
    .ts-pcard-rate{font-size:15px}
    .ts-pcard-sale{font-size:16px}
    .ts-pcard-regular s{font-size:11px}
    .ts-pcard-price{gap:5px}
}
/* 모바일(2열): 6자리도 1줄 유지 */
@media (max-width:991px){
    .ts-pcard-rate{font-size:16px}
    .ts-pcard-sale{font-size:17px}
    .ts-pcard-regular s{font-size:11px}
    .ts-pcard-price{gap:5px}
}
@media (max-width:400px){
    .ts-pcard-rate{font-size:13.5px}
    .ts-pcard-sale{font-size:15px}
    .ts-pcard-regular s{font-size:10px}
    .ts-pcard-price{gap:4px}
}
.ts-pcard-teaser{color:#2b7de8;font-weight:700;font-size:14px}
.ts-pcard.is-upcoming .ts-pcard-rate{color:#2b7de8}
.ts-pcard-limit{display:inline-block;background:#eef4fd;color:#2b6fd0;font-size:11.5px;font-weight:800;padding:3px 9px;border-radius:20px;vertical-align:1px;flex-shrink:0}
/* 예정 카드: 좁은 화면에서 '29% 할인 예정'과 'N개 한정' 알약이 겹치지 않게 줄바꿈 허용 */
.ts-pcard.is-upcoming .ts-pcard-price{flex-wrap:wrap;white-space:normal;row-gap:5px}
@media (max-width:991px){
    /* 모바일(2열 카드): 알약은 항상 둘째 줄로 분리 */
    .ts-pcard.is-upcoming .ts-pcard-limit{flex-basis:100%;width:max-content}
}
/* 예정 카드: 예상 특가가 공개(정가 → 특가) */
.ts-pcard-upprice{margin-top:7px;font-size:12.5px;color:#9aa0a6;display:flex;align-items:baseline;gap:5px;white-space:nowrap}
.ts-pcard-upprice s{font-weight:500}
.ts-pcard-uparrow{color:#b0b4ba}
.ts-pcard-upprice b{color:#202124;font-weight:900;font-size:16px}

/* 예정 캠페인 그룹(제목 + 일정 1회 표시) */
.ts-camp{margin-bottom:30px}
.ts-camp-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin:18px 0 14px;padding-left:2px}
.ts-camp-name{font-size:17px;font-weight:800;color:#202124;margin:0;letter-spacing:-.02em}
.ts-camp-head .ts-schedule{color:#5f6368;font-size:13px}
.ts-camp-head .ts-schedule b{color:#2b6fd0;font-size:14px}
.ts-camp-head .ts-schedule-tilde{color:#b0b4ba}
.ts-pcard-stock{margin-top:11px}
.ts-pcard-stock .ts-stock-bar{background:#eceef1;height:7px}
.ts-pcard-stock .ts-stock-text{color:#5f6368;margin-top:6px;font-size:11.5px}
.ts-pcard-stock .ts-stock-text b{color:#e8492b}
.ts-empty{text-align:center;color:#9aa0a6;padding:40px;background:#f7f8fa;border-radius:14px}

/* ══ 반응형(992px 경계) ═════════════════════════════ */
@media (max-width:991px){
    .ts-hero{padding:16px 15px}
    .ts-hero-sale{font-size:27px}
    .ts-hero-ratebox{padding:7px 15px}
    .ts-hero-rate-num{font-size:30px}
    .ts-hero-rate-num small{font-size:15px}
    .ts-hero-timer .ts-cd-cell{--fc-w:39px;--fc-h:41px;--fc-fs:23px}
    .ts-hero-timer .ts-cd-sep{font-size:19px;line-height:41px}
    .ts-cd-cell{--fc-w:40px;--fc-h:42px;--fc-fs:23px}
    .ts-cd-sep{line-height:42px}
    /* [모바일 상세 히어로] 시계=전폭 중앙 1행, 잔량=전폭 1행(바+분산 텍스트) — 좌측쏠림 방지 */
    .ts-hero-sub{gap:12px}
    .ts-hero-timer{width:100%;justify-content:center}
    .ts-hero-stock{min-width:100%;flex-basis:100%;gap:9px;padding:0}
    .ts-hero-stock .ts-stock-text{font-size:13px;gap:8px}
    .ts-hero-stock .ts-stock-text b{font-size:15px}
    .ts-hero-stock .ts-stock-text .ts-stock-percent{font-size:13px}
    .ts-grid{grid-template-columns:repeat(2,1fr);gap:13px}
    .ts-page-hero{padding:28px 18px 26px;border-radius:16px}
    .ts-page-hero h1{font-size:27px}
    .ts-page-clock .ts-cd-cell{--fc-w:50px;--fc-h:52px;--fc-fs:30px}
    .ts-page-clock .ts-cd-sep{font-size:26px;line-height:52px}
    /* 좁은 화면: 라벨을 시계 위로 */
    .ts-page-clock .ts-cd-wrap{flex-direction:column;gap:9px;padding:12px 20px}
    .ts-section-title{font-size:18px}
    .ts-thumb-badge{font-size:11px;padding:6px 9px}
    .ts-thumb-timer .ts-cd-num{font-size:15px}
}

/* ── 완판 카드(특가 페이지): 이미지 품절 오버레이 + 클릭 차단 ── */
.ts-pcard.is-soldout{pointer-events:none;cursor:default}
.ts-pcard.is-soldout .ts-pcard-thumb img{filter:grayscale(.85);opacity:.72}
.ts-thumb-soldout{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;background:rgba(22,17,14,.42)}
.ts-thumb-soldout i{font-style:normal;background:rgba(10,8,7,.78);color:#fff;font-weight:800;font-size:14px;letter-spacing:.03em;padding:8px 18px;border-radius:26px;border:1px solid rgba(255,255,255,.25);white-space:nowrap;max-width:92%}
@media (max-width:400px){.ts-thumb-soldout i{font-size:12.5px;padding:7px 13px}}
.ts-pcard.is-soldout .ts-pcard-sale,.ts-pcard.is-soldout .ts-pcard-rate{color:#9aa0a6}

/* ── 특가카드 판매 텍스트: PC=상세(남은수량 포함) / 모바일=축약(한 줄 고정) ── */
.ts-pcard-stock .ts-st-short{display:none}
@media (max-width:991px){
    .ts-pcard-stock .ts-st-full{display:none}
    .ts-pcard-stock .ts-st-short{display:inline}
    .ts-pcard-stock .ts-stock-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}

/* ══ 종료 특가(당일 안내) — 행사 마감 후 그날 자정까지 '오늘 마감된 특가'로 노출 ══ */
.ts-section-title.ended:before{background:#8a94a3}
.ts-section-title.ended .ts-section-tag{background:#8a94a3}
.ts-camp.is-ended .ts-camp-name{color:#6b7480}
/* 캠페인 머리의 '특가 종료' 정적 배지 — 카운트다운 0 도달 시(.ts-cd-ended) 디자인과 동일 톤 */
.ts-cd-ended-static{display:inline-flex;align-items:center;padding:7px 16px;border-radius:10px;background:#3a2420}
.ts-cd-ended-static .ts-cd-endmsg{font-size:13px}
/* 카드: 톤다운 + 썸네일 흑백기 — '지나간 행사' 느낌. 상세 이동(정상가 구매)은 가능 */
.ts-pcard.is-ended{background:#fafbfc}
.ts-pcard.is-ended .ts-pcard-thumb img{filter:grayscale(.55) opacity(.92)}
.ts-pcard.is-ended:hover{transform:none;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.ts-thumb-badge.is-ended{background:linear-gradient(135deg,#7d8794,#5b6472);box-shadow:0 3px 10px rgba(91,100,114,.35)}
.ts-thumb-limit.is-ended{background:rgba(20,24,30,.78)}
.ts-pcard-rate.is-ended{color:#98a1ad}
.ts-pcard-sale.is-ended{color:#98a1ad;font-weight:700;font-size:15px}
.ts-pcard-regular.now{color:#2c3540;font-weight:800;text-decoration:none}
.ts-pcard.is-ended .ts-pcard-price{flex-wrap:wrap;white-space:normal;row-gap:5px}
.ts-pcard-endnote{margin-top:7px;font-size:12.5px;color:#8a94a3;background:#f2f4f7;border-radius:8px;padding:7px 10px;line-height:1.45}

/* ── 당일 마감 히어로 시계: 시간오버(00:00:00) 정지 상태 + [판매 종료] 필 ── */
.ts-cd-overed .ts-cd{opacity:.55;filter:saturate(.4)}
.ts-cd-overed .ts-cd-cell{position:relative}
.ts-cd-endpill{display:inline-flex;align-items:center;margin-left:4px;padding:8px 16px;border-radius:10px;
    background:linear-gradient(135deg,#5a2418,#3a1a12);border:1px solid rgba(255,120,80,.35)}
.ts-cd-endpill .ts-cd-endmsg{font-size:14px}
@media (max-width:991px){.ts-cd-endpill{padding:6px 12px}.ts-cd-endpill .ts-cd-endmsg{font-size:12.5px}}

/* ── 종료 카드: 회색 '행사 종료' 도장(완판 도장과 동형, 회색톤) + 클릭 없음 ── */
.ts-thumb-endstamp{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;background:rgba(60,64,70,.34)}
.ts-thumb-endstamp i{font-style:normal;background:rgba(74,80,88,.85);color:#fff;font-weight:800;font-size:14px;letter-spacing:.03em;padding:8px 18px;border-radius:26px;border:1px solid rgba(255,255,255,.28);white-space:nowrap;max-width:92%}
@media (max-width:400px){.ts-thumb-endstamp i{font-size:12.5px;padding:7px 13px}}
.ts-pcard.is-ended{cursor:default}
.ts-pcard.is-ended:active{pointer-events:none}

/* ── 지난 특가 슬라이더: 한 번에 1개 행사, 좌우 화살표/스와이프 ── */
.ts-past-slider{position:relative;padding:0 0 6px}
.ts-past-view{overflow:hidden;transition:height .3s ease}
.ts-past-track{display:flex;transition:transform .35s ease}
.ts-past-slide{flex:0 0 100%;min-width:0;box-sizing:border-box}
.ts-past-slide .ts-camp{margin-bottom:0}
/* 타이틀 줄 우측 넘김 버튼(버튼형+텍스트 — 눈에 잘 띄는 위치) */
.ts-section-title.has-nav{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px}
.ts-past-ctrl{margin-left:14px;display:inline-flex;align-items:center;gap:8px}
.ts-past-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;cursor:pointer;
    border:1px solid #ffb98c;background:#ff8c4d;color:#fff;font-size:15px;
    box-shadow:0 2px 8px rgba(210,81,30,.28);transition:background .15s,opacity .15s}
.ts-past-btn:hover:not(:disabled){background:#f06a24}
.ts-past-btn:disabled{opacity:.35;cursor:default;background:#f1f3f6;border-color:#dde1e7;color:#9aa3ae;box-shadow:none}
.ts-past-btn i{font-size:11px}
.ts-past-count{font-size:13px;color:#8a94a3;font-variant-numeric:tabular-nums;min-width:38px;text-align:center}
.ts-past-count b{color:#2f3640;font-weight:800}
@media (max-width:991px){
    .ts-past-btn{width:33px;height:33px;font-size:13px}
}
/* 당일 종료 섹션 타이틀: 회색 톤 '오늘 일일특가 종료' 알약 */
.ts-section-title.today-ended:before{background:#8a94a3}
.ts-section-title.today-ended .ts-section-tag{background:#8a94a3}
