/*
 * 홈 C안 스타일 (front-page-c.php 전용).
 * 히어로 우측 3D 애니메이션(home-hero-spatial-v2.css)은 건드리지 않고,
 * 애니메이션의 화면 언어(소문자 캡션, 얇은 괘선, 떠 있는 카드)를 나머지 섹션에 맞춘다.
 * 모든 규칙은 body.tp-home-c 아래에만 적용된다.
 */

body.tp-home-c {
    --tpc-ink: #172033;
    --tpc-muted: #586579;
    --tpc-soft: #8E9BB0;
    --tpc-line: #DCE3EC;
    --tpc-ground: #F7F9FC;
    --tpc-red: #D92032;
    --tpc-red-hover: #BD1728;
    --tpc-rose: #F6A5AE;
    --tpc-dark: #141A26;
    --tpc-blue: #019CFE;
    --tpc-green: #1F7A4D;
    --tpc-shell: 1280px;
    --tpc-gutter: 40px;
}

/* 기존 홈 섹션(home-premium.css)과 같은 방식으로 본문 래퍼를 벗어나 화면 전체 폭을 쓴다. */
body.tp-home-c :is(.tpc-proof, .tpc-services, .tpc-process, .tpc-deliverable, .tpc-reviews, .tpc-support, .tpc-cta) {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    box-sizing: border-box;
}

body.tp-home-c .tpc-shell {
    max-width: var(--tpc-shell);
    margin: 0 auto;
    padding-left: var(--tpc-gutter);
    padding-right: var(--tpc-gutter);
    box-sizing: border-box;
}

/* ── 공통 캡션 / 링크 / 버튼 ── */
body.tp-home-c .tpc-cap {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    color: var(--tpc-muted);
    text-transform: uppercase;
}

body.tp-home-c .tpc-cap--red { color: var(--tpc-red); letter-spacing: 0.1em; }
body.tp-home-c .tpc-cap--rose { color: var(--tpc-rose); }
body.tp-home-c .tpc-cap--muted { color: var(--tpc-soft); letter-spacing: 0.12em; }

body.tp-home-c .tpc-eyebrow {
    margin: 0 0 12px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.16em;
    color: var(--tpc-red);
}

body.tp-home-c .tpc-eyebrow > span {
    width: 8px;
    height: 8px;
    background: var(--tpc-red);
    display: inline-block;
}

body.tp-home-c .tpc-link {
    font-size: 15px;
    font-weight: 700;
    color: var(--tpc-red);
    text-decoration: none;
    background: none;
    border: 0;
    padding: 0;
    cursor: pointer;
    font-family: inherit;
}

body.tp-home-c .tpc-link:hover { color: var(--tpc-red-hover); }
body.tp-home-c .tpc-link--muted { color: var(--tpc-muted); }

body.tp-home-c .tpc-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 54px;
    padding: 0 26px;
    border-radius: 10px;
    font-size: 17px;
    font-weight: 700;
    text-decoration: none;
    box-sizing: border-box;
    transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease;
}

body.tp-home-c .tpc-btn--primary { background: var(--tpc-red); color: #fff; }
body.tp-home-c .tpc-btn--primary:hover { background: var(--tpc-red-hover); color: #fff; }
body.tp-home-c .tpc-btn--outline { background: rgba(255, 255, 255, 0.85); color: var(--tpc-ink); border: 1px solid #C9D3E0; }
body.tp-home-c .tpc-btn--outline:hover { border-color: var(--tpc-ink); color: var(--tpc-ink); }
body.tp-home-c .tpc-btn--white { background: #fff; color: var(--tpc-red); font-weight: 800; }
body.tp-home-c .tpc-btn--white:hover { background: #FBEDEF; color: var(--tpc-red-hover); }
body.tp-home-c .tpc-btn--ghost { border: 1.5px solid #fff; color: #fff; }
body.tp-home-c .tpc-btn--ghost:hover { background: rgba(255, 255, 255, 0.12); color: #fff; }

/* ── 섹션 머리 ── */
body.tp-home-c .tpc-section-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 32px;
}

body.tp-home-c .tpc-section-head h2 {
    margin: 0;
    font-size: 38px;
    line-height: 1.25;
    font-weight: 800;
    letter-spacing: -0.03em;
    color: var(--tpc-ink);
}

body.tp-home-c .tpc-section-head--split { align-items: flex-end; }
body.tp-home-c .tpc-section-head--split > div { max-width: 720px; }
body.tp-home-c .tpc-section-head__lead { margin: 0; max-width: 380px; font-size: 16px; line-height: 1.7; color: var(--tpc-muted); }
body.tp-home-c .tpc-section-head__links { display: flex; gap: 20px; align-items: center; }
body.tp-home-c .tpc-section-head--tight { margin-bottom: 28px; }
body.tp-home-c .tpc-section-head--tight h2 { font-size: 30px; letter-spacing: -0.02em; }

/* ── 히어로 왼쪽 (우측 애니메이션 블록은 기존 CSS 그대로) ── */
body.tp-home-c .tpc-hero-copy {
    text-align: left;
    min-width: 0;
    color: var(--tpc-ink);
}

body.tp-home-c .tpc-kicker {
    margin: 0;
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.16em;
    color: #C84655;
}

body.tp-home-c .tpc-kicker > span { width: 8px; height: 8px; background: var(--tpc-red); display: inline-block; }

body.tp-home-c .tpc-mark {
    margin: 22px 0 0;
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 17px;
    font-weight: 600;
    color: var(--tpc-ink);
}

body.tp-home-c .tpc-mark img { width: 36px; height: 36px; display: block; }

body.tp-home-c .tpc-hero-copy h1 {
    margin: 18px 0 0;
    font-size: clamp(36px, 4vw, 54px);
    line-height: 1.16;
    font-weight: 800;
    letter-spacing: -0.035em;
    color: var(--tpc-ink);
    background: none;
    -webkit-text-fill-color: currentColor;
}

body.tp-home-c .tpc-lead {
    margin: 22px 0 0;
    max-width: 520px;
    font-size: 18px;
    line-height: 1.7;
    color: var(--tpc-muted);
}

body.tp-home-c .tpc-hero-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 16px;
    margin-top: 32px;
}

body.tp-home-c .tpc-hero-call {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 4px;
    min-height: 44px;
    font-size: 16px;
    font-weight: 600;
    color: var(--tpc-ink);
    text-decoration: none;
}

body.tp-home-c .tpc-hero-call svg { color: var(--tpc-red); }
body.tp-home-c .tpc-hero-call__label { display: none; }

body.tp-home-c .tpc-quote-flow {
    margin-top: 36px;
    border-top: 1px solid rgba(96, 116, 143, 0.25);
    padding-top: 18px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 28px;
    font-size: 14px;
    color: var(--tpc-muted);
}

body.tp-home-c .tpc-quote-flow__label { font-size: 11px; font-weight: 700; letter-spacing: 0.14em; }
body.tp-home-c .tpc-quote-flow ol { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 10px 28px; }
body.tp-home-c .tpc-quote-flow li { display: flex; align-items: center; gap: 8px; color: var(--tpc-ink); font-weight: 600; }
body.tp-home-c .tpc-quote-flow li span { font-size: 12px; font-weight: 700; color: var(--tpc-red); }
body.tp-home-c .tpc-quote-flow p { margin: 0; display: flex; align-items: center; gap: 6px; }
body.tp-home-c .tpc-quote-flow p svg { color: var(--tpc-green); }

body.tp-home-c .tpc-mobile-shortcuts { display: none; }

/* ── 실적 수치 + 고객사 ── */
body.tp-home-c .tpc-proof {
    background: #fff;
    border-bottom: 1px solid var(--tpc-line);
    padding: 44px 0 40px;
}

body.tp-home-c .tpc-stats {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
    gap: 24px;
}

body.tp-home-c .tpc-stats li {
    border-top: 1px solid var(--tpc-line);
    padding-top: 16px;
    display: flex;
    flex-direction: column;
}

body.tp-home-c .tpc-stats strong {
    margin-top: 8px;
    font-size: 36px;
    font-weight: 800;
    letter-spacing: -0.03em;
    color: var(--tpc-ink);
    line-height: 1.1;
}

body.tp-home-c .tpc-stats strong small { font-size: 20px; margin-left: 2px; font-weight: 800; }
body.tp-home-c .tpc-stats li > span:last-child { font-size: 14px; color: var(--tpc-muted); margin-top: 4px; }

body.tp-home-c .tpc-trusted-head { margin-top: 40px; }
body.tp-home-c .tpc-trusted-head p { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
body.tp-home-c .tpc-trusted-head p > span:last-child { font-size: 15px; font-weight: 600; color: var(--tpc-ink); }

body.tp-home-c .tpc-marquee {
    position: relative;
    overflow: hidden;
    margin-top: 20px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}

body.tp-home-c .tpc-marquee__track {
    display: flex;
    width: max-content;
    animation: tpc-marquee-left 56s linear infinite;
    will-change: transform;
}

body.tp-home-c .tpc-marquee__track--reverse { animation: tpc-marquee-right 64s linear infinite; }
body.tp-home-c .tpc-marquee__group { display: flex; }
body.tp-home-c .tpc-marquee:hover .tpc-marquee__track,
body.tp-home-c .tpc-marquee__track.is-paused { animation-play-state: paused; }

body.tp-home-c .tpc-logo {
    flex: none;
    width: 176px;
    height: 72px;
    margin-right: 12px;
    background: #fff;
    border: 1px solid var(--tpc-line);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 14px 22px;
    box-sizing: border-box;
}

body.tp-home-c .tpc-logo img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
    filter: grayscale(1);
    opacity: 0.6;
    transition: filter 250ms ease, opacity 250ms ease;
}

body.tp-home-c .tpc-logo:hover img { filter: none; opacity: 1; }

@keyframes tpc-marquee-left { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes tpc-marquee-right { from { transform: translateX(-50%); } to { transform: translateX(0); } }

/* ── 서비스 ── */
body.tp-home-c .tpc-services { background: var(--tpc-ground); padding: 96px 0 80px; }

body.tp-home-c .tpc-feature {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 24px 40px;
    background: var(--tpc-dark);
    color: #fff;
    border-radius: 16px;
    padding: 34px 40px;
    margin-bottom: 16px;
    text-decoration: none;
}

body.tp-home-c .tpc-feature__ring { position: absolute; border-radius: 50%; border: 1px solid rgba(255, 255, 255, 0.12); width: 260px; height: 260px; }
body.tp-home-c .tpc-feature__ring--a { right: -40px; top: -60px; }
body.tp-home-c .tpc-feature__ring--b { right: 40px; top: 20px; border-color: rgba(255, 255, 255, 0.08); }
body.tp-home-c .tpc-feature__copy { position: relative; flex: 1 1 380px; min-width: 0; }
body.tp-home-c .tpc-feature__copy h3 { margin: 12px 0 8px; font-size: 28px; font-weight: 800; letter-spacing: -0.02em; color: #fff; }
body.tp-home-c .tpc-feature__copy p { margin: 0; font-size: 16px; line-height: 1.6; color: #B9C2D0; }
body.tp-home-c .tpc-feature__tags { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
body.tp-home-c .tpc-feature__badge { font-size: 12px; font-weight: 700; color: #fff; background: rgba(217, 32, 50, 0.22); border: 1px solid rgba(246, 165, 174, 0.45); border-radius: 999px; padding: 4px 10px; }
body.tp-home-c .tpc-feature__side { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }

/* 신청 순서: 버튼처럼 보이지 않도록 테두리 없는 단계 표시(번호 + 이름, 사이에 가는 선). */
body.tp-home-c .tpc-feature__steps { display: flex; flex-direction: column; gap: 8px; }

body.tp-home-c #home-services .tpc-feature__steps-label {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: #8E97A8 !important;
    -webkit-text-fill-color: #8E97A8 !important;
}

body.tp-home-c .tpc-feature__flow {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 10px;
    font-size: 14px;
    font-weight: 600;
}

body.tp-home-c #home-services .tpc-feature__flow li {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 0;
    color: #E3E7EE !important;
    -webkit-text-fill-color: #E3E7EE !important;
}

body.tp-home-c #home-services .tpc-feature__flow li span {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: var(--tpc-rose) !important;
    -webkit-text-fill-color: var(--tpc-rose) !important;
}

body.tp-home-c .tpc-feature__flow li + li::before {
    content: "";
    width: 18px;
    height: 1px;
    margin-right: 4px;
    background: rgba(255, 255, 255, 0.3);
}

body.tp-home-c .tpc-feature__cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--tpc-red);
    color: #fff;
    padding: 13px 20px;
    border-radius: 8px;
    font-size: 15px;
    font-weight: 700;
    transition: background-color 200ms ease, box-shadow 250ms ease;
}

body.tp-home-c .tpc-feature:hover .tpc-feature__cta { background: var(--tpc-red-hover); box-shadow: 0 0 0 4px rgba(217, 32, 50, 0.18), 0 10px 26px -10px rgba(217, 32, 50, 0.9); }
body.tp-home-c #home-services .tpc-feature__note { font-size: 12px; color: #8E97A8 !important; -webkit-text-fill-color: #8E97A8 !important; }

/* 기존 홈 규칙(#home-services a:focus-visible 파란 테두리)을 C안 색으로 바꾼다. 키보드 이동 때만 보인다. */
html[data-theme] body.home.tp-home-c #home-services a:focus-visible,
body.tp-home-c #home-services a:focus-visible {
    outline: 3px solid rgba(217, 32, 50, 0.45) !important;
    outline-offset: 4px !important;
}

html[data-theme] body.home.tp-home-c #home-services a:focus:not(:focus-visible),
body.tp-home-c #home-services a:focus:not(:focus-visible) { outline: none !important; }

body.tp-home-c .tpc-btn__hint {
    font-size: 11px;
    font-weight: 700;
    color: var(--tpc-red);
    background: #FBEDEF;
    border-radius: 999px;
    padding: 3px 8px;
    letter-spacing: 0;
}

/* ── 버튼 효과 ──
   1) 레이저 테두리(.tpc-fx-laser): 빛 한 줄기가 테두리를 따라 천천히 돈다. @property 미지원 브라우저에서는 정지한 은은한 테두리로 남는다.
   2) 샤인(.tpc-fx-shine): 주 버튼에 몇 초마다 빛이 한 번 스쳐 지나간다.
   3) 글로우: 빨간 주 버튼에 마우스를 올리면 부드러운 빨간 빛이 번진다. */
@property --tpc-laser-angle {
    syntax: '<angle>';
    inherits: false;
    initial-value: 0deg;
}

body.tp-home-c .tpc-fx-laser { position: relative; isolation: isolate; }

body.tp-home-c .tpc-fx-laser::before {
    content: "";
    position: absolute;
    inset: -1px;
    border-radius: inherit;
    padding: 1.5px;
    background: conic-gradient(from var(--tpc-laser-angle), transparent 0deg, transparent 240deg, rgba(217, 32, 50, 0) 250deg, #D92032 320deg, #FFB3BC 348deg, rgba(255, 255, 255, 0) 360deg);
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
    filter: drop-shadow(0 0 4px rgba(217, 32, 50, 0.65));
    animation: tpc-laser 3.6s linear infinite;
    pointer-events: none;
    z-index: 1;
}

body.tp-home-c .tpc-feature.tpc-fx-laser::before { inset: 0; padding: 1.5px; animation-duration: 5s; }
body.tp-home-c .tpc-fx-laser:hover::before { animation-duration: 1.8s; }
body.tp-home-c .tpc-feature.tpc-fx-laser:hover::before { animation-duration: 2.6s; }

@keyframes tpc-laser { to { --tpc-laser-angle: 360deg; } }

body.tp-home-c .tpc-btn--primary {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    transition: background-color 200ms ease, box-shadow 300ms ease, transform 200ms ease;
}

body.tp-home-c .tpc-btn--primary:hover {
    box-shadow: 0 0 0 4px rgba(217, 32, 50, 0.12), 0 14px 30px -12px rgba(217, 32, 50, 0.85);
    transform: translateY(-1px);
}

body.tp-home-c .tpc-btn--primary::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: -70%;
    width: 45%;
    background: linear-gradient(100deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.38) 50%, rgba(255, 255, 255, 0) 100%);
    transform: skewX(-20deg);
    pointer-events: none;
    z-index: -1;
    transition: left 700ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

body.tp-home-c .tpc-btn--primary:hover::after { left: 135%; }
body.tp-home-c .tpc-fx-shine::after { animation: tpc-shine 6s cubic-bezier(0.2, 0.7, 0.2, 1) 1.5s infinite; }
body.tp-home-c .tpc-fx-shine:hover::after { animation: none; }

@keyframes tpc-shine {
    0%, 78% { left: -70%; }
    92%, 100% { left: 135%; }
}

@media (prefers-reduced-motion: reduce) {
    body.tp-home-c .tpc-fx-laser::before,
    body.tp-home-c .tpc-fx-shine::after { animation: none; }
    body.tp-home-c .tpc-btn--primary::after { transition: none; }
    body.tp-home-c .tpc-btn--primary:hover { transform: none; }
}

body.tp-home-c .tpc-service-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
    gap: 16px;
}

body.tp-home-c .tpc-service {
    display: flex;
    flex-direction: column;
    gap: 16px;
    background: #fff;
    border: 1px solid var(--tpc-line);
    border-radius: 14px;
    padding: 26px;
    color: var(--tpc-ink);
    min-height: 196px;
    text-decoration: none;
    box-sizing: border-box;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

body.tp-home-c .tpc-service:hover { border-color: #C9D3E0; box-shadow: 0 20px 36px -28px rgba(23, 32, 51, 0.35); transform: translateY(-2px); }
body.tp-home-c .tpc-service__top { display: flex; align-items: center; justify-content: space-between; }
body.tp-home-c .tpc-service__icon { width: 44px; height: 44px; border-radius: 10px; background: var(--tpc-ground); color: var(--tpc-red); display: flex; align-items: center; justify-content: center; }
body.tp-home-c .tpc-service strong { font-size: 20px; font-weight: 800; letter-spacing: -0.02em; }
body.tp-home-c .tpc-service__desc { margin-top: -8px; font-size: 15px; line-height: 1.55; color: var(--tpc-muted); }
body.tp-home-c .tpc-service__more { margin-top: auto; display: flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 700; color: var(--tpc-red); }

/* ── 프로세스 ── */
body.tp-home-c .tpc-process { background: #fff; border-top: 1px solid var(--tpc-line); padding: 96px 0; }

body.tp-home-c .tpc-steps {
    margin: 48px 0 0;
    padding: 0;
    list-style: none;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr));
    gap: 24px;
}

body.tp-home-c .tpc-steps li { border-top: 2px solid var(--tpc-ink); padding-top: 18px; display: flex; flex-direction: column; gap: 10px; }
body.tp-home-c .tpc-steps__meta { display: flex; justify-content: space-between; align-items: baseline; }
body.tp-home-c .tpc-steps h3 { margin: 4px 0 0; font-size: 21px; font-weight: 800; letter-spacing: -0.02em; color: var(--tpc-ink); }
body.tp-home-c .tpc-steps p { margin: 0; font-size: 15px; line-height: 1.65; color: var(--tpc-muted); }

body.tp-home-c .tpc-badges {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-top: 44px;
    padding-top: 24px;
    border-top: 1px solid var(--tpc-line);
}

body.tp-home-c .tpc-badges > .tpc-cap { margin-right: 8px; }
body.tp-home-c .tpc-badge { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; background: var(--tpc-ground); border: 1px solid var(--tpc-line); border-radius: 999px; padding: 10px 16px; color: var(--tpc-ink); }
body.tp-home-c .tpc-badge svg { color: var(--tpc-green); }

/* ── 납품물 예시 (C안 전용 마크업: tpc-dl-*) ── */
body.tp-home-c .tpc-deliverable { background: var(--tpc-ground); border-top: 1px solid var(--tpc-line); padding: 96px 0; }

body.tp-home-c .tpc-dl {
    display: grid;
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    gap: 48px 64px;
    align-items: center;
}

body.tp-home-c .tpc-dl-copy h2 {
    margin: 0;
    font-size: 38px;
    line-height: 1.25;
    font-weight: 800;
    letter-spacing: -0.03em;
    color: var(--tpc-ink);
}

body.tp-home-c .tpc-dl-lead { margin: 16px 0 0; font-size: 16px; line-height: 1.7; color: var(--tpc-muted); }

body.tp-home-c .tpc-dl-checks {
    margin: 28px 0 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 16px;
    font-size: 16px;
    color: var(--tpc-ink);
}

body.tp-home-c .tpc-dl-checks li { display: flex; gap: 14px; align-items: baseline; }
body.tp-home-c .tpc-dl-checks li > span:first-child { flex: none; font-size: 12px; font-weight: 700; letter-spacing: 0.1em; color: var(--tpc-red); }
body.tp-home-c .tpc-dl-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 32px; }
body.tp-home-c .tpc-btn--sm { min-height: 50px; padding: 0 22px; border-radius: 8px; font-size: 16px; }

body.tp-home-c .tpc-dl-card {
    background: #fff;
    border: 1px solid var(--tpc-line);
    border-radius: 16px;
    padding: 24px 28px 28px;
    min-width: 0;
}

body.tp-home-c .tpc-dl-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border-bottom: 1px solid var(--tpc-line);
    padding-bottom: 16px;
}

body.tp-home-c .tpc-dl-controls { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
body.tp-home-c .tpc-dl-tabs { display: flex; flex-wrap: wrap; gap: 6px; }

/* 자동 넘김: 선택된 탭 안의 진행 막대. 애니메이션이 끝나면(JS animationend) 다음 탭으로 이동한다. */
body.tp-home-c .tpc-dl-tabs button { position: relative; overflow: hidden; }

body.tp-home-c .tpc-dl-progress {
    position: absolute;
    left: 14px;
    right: 14px;
    bottom: 6px;
    height: 2px;
    border-radius: 1px;
    background: rgba(255, 255, 255, 0.55);
    transform: scaleX(0);
    transform-origin: left center;
    pointer-events: none;
}

body.tp-home-c .tpc-dl-tabs button[aria-selected="true"] .tpc-dl-progress {
    animation: tpc-dl-progress 6s linear forwards;
    animation-play-state: paused;
}

body.tp-home-c .tpc-dl-card.is-inview:not(.is-paused):not(:hover):not(:focus-within) .tpc-dl-tabs button[aria-selected="true"] .tpc-dl-progress {
    animation-play-state: running;
}

@keyframes tpc-dl-progress { from { transform: scaleX(0); } to { transform: scaleX(1); } }

body.tp-home-c .tpc-dl-toggle {
    flex: none;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 1px solid var(--tpc-line);
    background: #fff;
    color: var(--tpc-ink);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
}

body.tp-home-c .tpc-dl-toggle:hover { border-color: #C9D3E0; }
body.tp-home-c .tpc-dl-toggle:focus-visible { outline: 3px solid rgba(23, 32, 51, 0.25); outline-offset: 2px; }
body.tp-home-c .tpc-dl-toggle__play { display: none; }
body.tp-home-c .tpc-dl-card.is-paused .tpc-dl-toggle__pause { display: none; }
body.tp-home-c .tpc-dl-card.is-paused .tpc-dl-toggle__play { display: block; }

@media (prefers-reduced-motion: reduce) {
    body.tp-home-c .tpc-dl-tabs button[aria-selected="true"] .tpc-dl-progress { animation: none; }
    body.tp-home-c .tpc-dl-toggle { display: none; }
}

body.tp-home-c .tpc-dl-tabs button {
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    min-height: 40px;
    padding: 0 14px;
    border: 1px solid var(--tpc-line);
    border-radius: 999px;
    background: #fff;
    color: var(--tpc-muted);
    cursor: pointer;
    transition: background-color 300ms cubic-bezier(0.2, 0.7, 0.2, 1), color 300ms cubic-bezier(0.2, 0.7, 0.2, 1), border-color 300ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

body.tp-home-c .tpc-dl-tabs button:hover { color: var(--tpc-ink); border-color: #C9D3E0; }
body.tp-home-c .tpc-dl-tabs button[aria-selected="true"] { background: var(--tpc-ink); border-color: var(--tpc-ink); color: #fff; }
body.tp-home-c .tpc-dl-tabs button:focus-visible { outline: 3px solid rgba(23, 32, 51, 0.25); outline-offset: 2px; }

/* 패널 4개를 한 칸에 겹쳐 높이를 가장 큰 패널로 고정 → 탭 전환 시 레이아웃이 움직이지 않음 */
body.tp-home-c .tpc-dl-panels { display: grid; margin-top: 22px; }
body.tp-home-c .tpc-dl-panel { grid-area: 1 / 1; min-width: 0; visibility: visible; transition: visibility 0s linear 0s; }
body.tp-home-c .tpc-dl-panel[hidden] { display: block; visibility: hidden; pointer-events: none; transition: visibility 0s linear 0.3s; }

/* 전환: 나가는 사례는 0.25초에 사라지고, 들어오는 사례는 원본 → 화살표 → 최종본 순서로 미끄러지며 나타난다. */
body.tp-home-c .tpc-dl-panel .tpc-dl-sheet,
body.tp-home-c .tpc-dl-panel .tpc-dl-arrow {
    opacity: 1;
    transform: none;
    transition: opacity 0.55s cubic-bezier(0.2, 0.7, 0.2, 1) 0.1s, transform 0.55s cubic-bezier(0.2, 0.7, 0.2, 1) 0.1s;
}

body.tp-home-c .tpc-dl-panel .tpc-dl-arrow { transition-delay: 0.2s; }
body.tp-home-c .tpc-dl-panel .tpc-dl-sheet.is-delivered { transition-delay: 0.3s; }

body.tp-home-c .tpc-dl-panel[hidden] .tpc-dl-sheet,
body.tp-home-c .tpc-dl-panel[hidden] .tpc-dl-arrow {
    opacity: 0;
    transition: opacity 0.25s ease 0s, transform 0.25s ease 0s;
}

body.tp-home-c .tpc-dl-panel[hidden] .tpc-dl-sheet { transform: translateY(10px); }
body.tp-home-c .tpc-dl-panel[hidden] .tpc-dl-sheet.is-delivered { transform: translateX(-18px); }
body.tp-home-c .tpc-dl-panel[hidden] .tpc-dl-arrow { transform: translateX(-8px); }

@media (prefers-reduced-motion: reduce) {
    body.tp-home-c .tpc-dl-panel .tpc-dl-sheet,
    body.tp-home-c .tpc-dl-panel .tpc-dl-arrow { transform: none !important; transition-duration: 0.01s !important; transition-delay: 0s !important; }
}

body.tp-home-c .tpc-dl-pair {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    gap: 16px;
    align-items: stretch;
}

body.tp-home-c .tpc-dl-sheet {
    background: #fff;
    border: 1px solid var(--tpc-line);
    border-radius: 10px;
    padding: 22px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-width: 0;
}

body.tp-home-c .tpc-dl-sheet.is-delivered { border-top: 3px solid var(--tpc-red); box-shadow: 0 20px 36px -28px rgba(23, 32, 51, 0.35); }
body.tp-home-c .tpc-dl-sheet__head { display: flex; justify-content: space-between; font-size: 10px; font-weight: 700; letter-spacing: 0.14em; color: var(--tpc-muted); }
body.tp-home-c .tpc-dl-sheet.is-delivered .tpc-dl-sheet__head { color: var(--tpc-red); }
body.tp-home-c .tpc-dl-sheet__title { font-size: 22px; font-weight: 800; letter-spacing: -0.02em; color: var(--tpc-ink); }
body.tp-home-c .tpc-dl-sheet.is-delivered .tpc-dl-sheet__title { letter-spacing: 0.02em; }

body.tp-home-c .tpc-dl-sheet dl {
    margin: 0;
    border-top: 1px solid var(--tpc-line);
    padding-top: 12px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    font-size: 12px;
    color: var(--tpc-muted);
}

body.tp-home-c .tpc-dl-sheet dl div { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
body.tp-home-c .tpc-dl-sheet dt { font-weight: 500; }
body.tp-home-c .tpc-dl-sheet dd { margin: 0; text-align: right; color: var(--tpc-ink); }
body.tp-home-c .tpc-dl-redact { display: inline-block; height: 9px; max-width: 100%; background: var(--tpc-ink); border-radius: 2px; vertical-align: middle; }

body.tp-home-c .tpc-dl-sheet__foot {
    margin-top: auto;
    border-top: 1px solid var(--tpc-line);
    padding-top: 10px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: var(--tpc-soft);
}

body.tp-home-c .tpc-dl-badge { font-size: 11px; font-weight: 800; letter-spacing: 0.06em; color: var(--tpc-green); border: 1.5px solid var(--tpc-green); border-radius: 6px; padding: 3px 8px; }
body.tp-home-c .tpc-dl-arrow { display: flex; align-items: center; color: var(--tpc-muted); }
body.tp-home-c .tpc-dl-note { margin: 18px 0 0; font-size: 12px; letter-spacing: 0.04em; color: var(--tpc-soft); }

/* ── 후기 ── */
body.tp-home-c .tpc-reviews { background: #fff; border-top: 1px solid var(--tpc-line); padding: 96px 0; }

body.tp-home-c .tpc-review-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
    gap: 16px;
}

body.tp-home-c .tpc-review {
    margin: 0;
    background: var(--tpc-ground);
    border: 1px solid var(--tpc-line);
    border-radius: 14px;
    padding: 26px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

body.tp-home-c .tpc-review__meta { display: flex; justify-content: space-between; align-items: center; font-size: 12px; color: var(--tpc-muted); }
body.tp-home-c .tpc-review blockquote { margin: 0; font-size: 16px; line-height: 1.7; color: var(--tpc-ink); }
body.tp-home-c .tpc-review figcaption { margin-top: auto; display: flex; justify-content: space-between; font-size: 14px; color: var(--tpc-muted); }
body.tp-home-c .tpc-review__stars { color: #C2410C; letter-spacing: 2px; }
body.tp-home-c .tpc-review-empty { margin: 0; padding: 32px; text-align: center; background: var(--tpc-ground); border: 1px dashed var(--tpc-line); border-radius: 14px; color: var(--tpc-muted); }

/* 후기 6개 이상: 고객사 로고와 같은 방식으로 옆으로 흐르는 띠 */
body.tp-home-c .tpc-review-marquee {
    position: relative;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
}

body.tp-home-c .tpc-review-marquee__track {
    display: flex;
    width: max-content;
    animation: tpc-marquee-left 110s linear infinite;
    will-change: transform;
}

body.tp-home-c .tpc-review-marquee__group { display: flex; }
body.tp-home-c .tpc-review-marquee:hover .tpc-review-marquee__track,
body.tp-home-c .tpc-review-marquee__track.is-paused { animation-play-state: paused; }
body.tp-home-c .tpc-review-marquee .tpc-review { flex: none; width: 360px; margin-right: 16px; box-sizing: border-box; }

/* ── 고객 지원 ── */
body.tp-home-c .tpc-support { background: var(--tpc-ground); border-top: 1px solid var(--tpc-line); padding: 80px 0; }

body.tp-home-c .tpc-support-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
    gap: 16px;
}

body.tp-home-c .tpc-support-grid a {
    background: #fff;
    border: 1px solid var(--tpc-line);
    border-radius: 14px;
    padding: 24px;
    color: var(--tpc-ink);
    display: flex;
    flex-direction: column;
    gap: 8px;
    text-decoration: none;
    transition: border-color 160ms ease;
}

body.tp-home-c .tpc-support-grid a:hover { border-color: #C9D3E0; }
body.tp-home-c .tpc-support-grid strong { font-size: 18px; }
body.tp-home-c .tpc-support-grid span { font-size: 15px; line-height: 1.55; color: var(--tpc-muted); }

body.tp-home-c .tpc-contact {
    margin: 28px 0 0;
    padding-top: 24px;
    border-top: 1px solid var(--tpc-line);
    display: flex;
    flex-wrap: wrap;
    gap: 12px 48px;
    font-size: 15px;
    color: var(--tpc-ink);
}

body.tp-home-c .tpc-contact div { display: flex; align-items: baseline; gap: 10px; }
body.tp-home-c .tpc-contact dt { font-size: 11px; font-weight: 700; letter-spacing: 0.12em; color: var(--tpc-muted); }
body.tp-home-c .tpc-contact dd { margin: 0; }
body.tp-home-c .tpc-contact a { color: inherit; text-decoration: none; }

/* ── 마지막 CTA ── */
/* 마지막 CTA: 화면 전체 빨간 띠 대신 본문 폭 안의 카드. 테마의 전역 section 여백(60px/6rem)은 0으로 덮는다. */
body.tp-home-c .tpc-cta { background: var(--tpc-ground); color: var(--tpc-ink); padding: 0 0 80px; margin-top: 0; margin-bottom: 0; }

body.tp-home-c .tpc-cta__card {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 20px 32px;
    background: var(--tpc-red);
    color: #fff;
    border-radius: 16px;
    padding: 36px 44px;
}

body.tp-home-c .tpc-cta__ring { position: absolute; width: 240px; height: 240px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, 0.18); pointer-events: none; }
body.tp-home-c .tpc-cta__ring--a { right: -50px; top: -120px; }
body.tp-home-c .tpc-cta__ring--b { right: 90px; top: 30px; border-color: rgba(255, 255, 255, 0.1); }
body.tp-home-c .tpc-cta__copy,
body.tp-home-c .tpc-cta__actions { position: relative; }
body.tp-home-c .tpc-cta h2 { margin: 0; font-size: 26px; line-height: 1.35; font-weight: 800; letter-spacing: -0.02em; color: #fff; }
body.tp-home-c .tpc-cta p { margin: 8px 0 0; font-size: 15px; color: #F9D3D8; }
body.tp-home-c .tpc-cta__actions { display: flex; gap: 12px; flex-wrap: wrap; }

/* ── 홈 C안에서 제거하는 고정 요소: 플로팅 원스톱 버튼(원스톱 카드·히어로 버튼과 중복).
   하단 공지(BulletinWP)는 운영과 같이 그대로 노출한다(SJ 10-16). ── */
body.tp-home-c #tp-quick-inquiry-root.tpqi-one-stop-root { display: none !important; }

/* ── 모바일 하단 고정 바: 기존 .home-mobile-quote-bar 동작(히어로 지나면 표시) 재사용 + 전화 버튼 ── */
body.tp-home-c .tpc-mobile-bar__call {
    display: none;
    width: 48px;
    min-height: 48px;
    border-radius: 10px;
    border: 1px solid #C9D3E0;
    background: #fff;
    color: var(--tpc-ink);
    align-items: center;
    justify-content: center;
    flex: none;
}

@media (prefers-reduced-motion: reduce) {
    body.tp-home-c .tpc-marquee__track { animation: none !important; }
    body.tp-home-c .tpc-service { transition: none; }
}

/* ── 반응형 ── */
@media (max-width: 1024px) {
    body.tp-home-c .tpc-hero-copy { text-align: left; }
    body.tp-home-c .tpc-section-head h2 { font-size: 32px; }
}

@media (max-width: 767px) {
    body.tp-home-c { --tpc-gutter: 16px; }
    body.tp-home-c .tpc-hero-copy h1 { font-size: 33px; line-height: 1.2; }
    body.tp-home-c .tpc-lead { font-size: 16px; }
    body.tp-home-c .tpc-hero-actions { flex-direction: column; align-items: stretch; gap: 10px; }
    body.tp-home-c .tpc-hero-actions .tpc-btn { width: 100%; }
    body.tp-home-c .tpc-hero-call { justify-content: center; }
    body.tp-home-c .tpc-hero-call__label { display: inline; }
    body.tp-home-c .tpc-quote-flow { display: none; }
    body.tp-home-c .tpc-mobile-shortcuts { margin-top: 10px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
    body.tp-home-c .tpc-mobile-shortcuts a { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 12px 4px; background: #fff; border: 1px solid var(--tpc-line); border-radius: 10px; color: var(--tpc-ink); font-size: 12px; font-weight: 700; text-decoration: none; }
    body.tp-home-c .tpc-mobile-shortcuts svg { color: var(--tpc-red); }

    body.tp-home-c .tpc-proof { padding: 28px 0 24px; }
    body.tp-home-c .tpc-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
    body.tp-home-c .tpc-stats strong { font-size: 28px; }
    body.tp-home-c .tpc-trusted-head { margin-top: 28px; }
    body.tp-home-c .tpc-marquee { margin-top: 14px; gap: 10px; }
    body.tp-home-c .tpc-logo { width: 132px; height: 56px; margin-right: 10px; padding: 10px 16px; border-radius: 8px; }

    body.tp-home-c .tpc-services,
    body.tp-home-c .tpc-process,
    body.tp-home-c .tpc-reviews { padding: 56px 0 48px; }
    body.tp-home-c .tpc-support { padding: 48px 0; }
    body.tp-home-c .tpc-section-head { margin-bottom: 24px; }
    body.tp-home-c .tpc-section-head h2 { font-size: 27px; }
    body.tp-home-c .tpc-section-head--tight h2 { font-size: 24px; }

    body.tp-home-c .tpc-feature { padding: 24px 22px; gap: 14px; }
    body.tp-home-c .tpc-feature__copy h3 { font-size: 23px; }
    body.tp-home-c .tpc-feature__copy p { font-size: 14px; }
    body.tp-home-c .tpc-feature__side { width: 100%; gap: 12px; }
    body.tp-home-c .tpc-feature__flow { width: 100%; font-size: 12px; gap: 6px; }
    body.tp-home-c .tpc-feature__flow { font-size: 13px; }
    body.tp-home-c .tpc-feature__cta { width: 100%; box-sizing: border-box; min-height: 48px; justify-content: center; }
    body.tp-home-c .tpc-hero-actions .tpc-btn__hint { margin-left: 2px; }
    body.tp-home-c .tpc-service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    body.tp-home-c .tpc-service { padding: 16px 14px; min-height: 150px; gap: 10px; border-radius: 12px; }
    body.tp-home-c .tpc-service__icon { width: 36px; height: 36px; }
    body.tp-home-c .tpc-service strong { font-size: 16px; }
    body.tp-home-c .tpc-service__desc { font-size: 12.5px; margin-top: -4px; }
    body.tp-home-c .tpc-service__more { font-size: 12px; }

    body.tp-home-c .tpc-steps { margin-top: 28px; grid-template-columns: minmax(0, 1fr); gap: 18px; }
    body.tp-home-c .tpc-steps h3 { font-size: 18px; }
    body.tp-home-c .tpc-badges { margin-top: 28px; padding-top: 20px; gap: 8px; }
    body.tp-home-c .tpc-badge { font-size: 13px; padding: 8px 12px; }

    body.tp-home-c .tpc-review { padding: 18px; border-radius: 12px; }
    body.tp-home-c .tpc-review blockquote { font-size: 15px; }
    body.tp-home-c .tpc-review-marquee .tpc-review { width: 300px; margin-right: 12px; }
    body.tp-home-c .tpc-deliverable { padding: 56px 0; }
    body.tp-home-c .tpc-dl { gap: 24px; }
    body.tp-home-c .tpc-dl-copy h2 { font-size: 27px; }
    body.tp-home-c .tpc-dl-actions { flex-direction: column; }
    body.tp-home-c .tpc-dl-actions .tpc-btn { width: 100%; }
    body.tp-home-c .tpc-dl-card { padding: 16px; border-radius: 14px; }
    body.tp-home-c .tpc-dl-head { flex-direction: column; align-items: flex-start; }
    body.tp-home-c .tpc-dl-pair { grid-template-columns: minmax(0, 1fr); gap: 10px; }
    body.tp-home-c .tpc-dl-arrow { justify-content: center; }
    body.tp-home-c .tpc-dl-arrow svg { transform: rotate(90deg); }
    body.tp-home-c .tpc-dl-sheet { padding: 16px; }
    body.tp-home-c .tpc-support-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    body.tp-home-c .tpc-support-grid a { padding: 16px 14px; border-radius: 12px; }
    body.tp-home-c .tpc-support-grid strong { font-size: 15px; }
    body.tp-home-c .tpc-support-grid span { font-size: 12.5px; }
    body.tp-home-c .tpc-contact { flex-direction: column; gap: 8px; }

    body.tp-home-c .tpc-cta { padding-bottom: 48px; }
    body.tp-home-c .tpc-cta__card { padding: 28px 22px; border-radius: 14px; }
    body.tp-home-c .tpc-cta h2 { font-size: 22px; line-height: 1.35; }
    body.tp-home-c .tpc-cta__actions { width: 100%; flex-direction: column; }
    body.tp-home-c .tpc-cta__actions .tpc-btn { width: 100%; }
}

@media (max-width: 734px) {
    body.tp-home-c .home-mobile-quote-bar.tpc-mobile-bar { display: flex; align-items: stretch; gap: 8px; }
    body.tp-home-c .home-mobile-quote-bar.tpc-mobile-bar .home-mobile-quote-button { flex: 1 1 auto; min-width: 0; }
    body.tp-home-c .tpc-mobile-bar__call { display: flex; }
}

/* TP_SUPPORT_HOVER_BLOCK — 2026-10-18 고객 지원 카드 마우스 오버: 테두리를 따라 도는 레드 레이저 + 살짝 떠오름 */
@property --tpc-laser-angle { syntax: '<angle>'; inherits: false; initial-value: 0deg; }
@keyframes tpc-laser-spin { to { --tpc-laser-angle: 360deg; } }
body.tp-home-c .tpc-support-grid a {
    position: relative; isolation: isolate; overflow: hidden;
    transition: border-color 200ms ease, transform 240ms cubic-bezier(.2,.7,.2,1), box-shadow 240ms ease;
}
body.tp-home-c .tpc-support-grid a > * { position: relative; z-index: 2; }
body.tp-home-c .tpc-support-grid a::before {
    content: ""; position: absolute; inset: -45%; z-index: 0; pointer-events: none; opacity: 0;
    background: conic-gradient(from var(--tpc-laser-angle), transparent 0deg, transparent 290deg, rgba(217, 32, 50, 0.18) 318deg, #D92032 342deg, #FFC4CA 352deg, transparent 360deg);
    transition: opacity 220ms ease;
}
body.tp-home-c .tpc-support-grid a::after {
    content: ""; position: absolute; inset: 1.5px; z-index: 1; pointer-events: none;
    border-radius: 12.5px; background: #fff;
}
body.tp-home-c .tpc-support-grid a:hover,
body.tp-home-c .tpc-support-grid a:focus-visible {
    border-color: rgba(217, 32, 50, 0.22);
    transform: translateY(-3px);
    box-shadow: 0 18px 30px -20px rgba(23, 32, 51, 0.35);
}
body.tp-home-c .tpc-support-grid a:hover::before,
body.tp-home-c .tpc-support-grid a:focus-visible::before { opacity: 1; animation: tpc-laser-spin 2.4s linear infinite; }
body.tp-home-c .tpc-support-grid a:hover strong,
body.tp-home-c .tpc-support-grid a:focus-visible strong { color: var(--tpc-red); }
@media (max-width: 734px) { body.tp-home-c .tpc-support-grid a::after { inset: 1.5px; border-radius: 10.5px; } }
@media (prefers-reduced-motion: reduce) {
    body.tp-home-c .tpc-support-grid a:hover::before,
    body.tp-home-c .tpc-support-grid a:focus-visible::before { animation: none; }
    body.tp-home-c .tpc-support-grid a:hover,
    body.tp-home-c .tpc-support-grid a:focus-visible { transform: none; }
}
/* /TP_SUPPORT_HOVER_BLOCK */

/* TP_DARK_MODE_BLOCK — 2026-10-19 다크모드 보완(Claude). html[data-theme="dark"] 일 때만 적용.
 * 이 파일의 라이트 규칙에서 색만 골라 다크 값으로 다시 쓴 생성 블록 + 수기 보정. 라이트 모드는 바뀌지 않는다.
 * 생성기: output/dark-mode-20261019/tools/gen_dark.py (흰 바탕→#141B27, 연회색 바탕→#0E141D, 진한 글자→#EEF2F8, 선→#263042, 레드 글자→#FF6B78, 레드 바탕 유지). */
html[data-theme="dark"] body.tp-home-c { --tpc-ink: #EEF2F8; --tpc-muted: #A9B4C5; --tpc-soft: #8F9CB0; --tpc-line: #263042; --tpc-ground: #0E141D; --tpc-dark: #263147; }
html[data-theme="dark"] body.tp-home-c .tpc-cap { color: var(--tpc-muted); }
html[data-theme="dark"] body.tp-home-c .tpc-cap--red { color: #FF6B78; }
html[data-theme="dark"] body.tp-home-c .tpc-cap--rose { color: var(--tpc-rose); }
html[data-theme="dark"] body.tp-home-c .tpc-cap--muted { color: var(--tpc-soft); }
html[data-theme="dark"] body.tp-home-c .tpc-eyebrow { color: #FF6B78; }
html[data-theme="dark"] body.tp-home-c .tpc-eyebrow > span { background: var(--tpc-red); }
html[data-theme="dark"] body.tp-home-c .tpc-link { color: #FF6B78; background: none; border: 0; }
html[data-theme="dark"] body.tp-home-c .tpc-link:hover { color: #FF8A94; }
html[data-theme="dark"] body.tp-home-c .tpc-link--muted { color: var(--tpc-muted); }
html[data-theme="dark"] body.tp-home-c .tpc-btn--primary { background: var(--tpc-red); color: #fff; }
html[data-theme="dark"] body.tp-home-c .tpc-btn--primary:hover { background: var(--tpc-red-hover); color: #fff; }
html[data-theme="dark"] body.tp-home-c .tpc-btn--outline { background: rgba(20, 27, 39, 0.85); color: var(--tpc-ink); border: 1px solid #364357; }
html[data-theme="dark"] body.tp-home-c .tpc-btn--outline:hover { border-color: #364357; color: var(--tpc-ink); }
html[data-theme="dark"] body.tp-home-c .tpc-btn--white { background: #fff; color: var(--tpc-red); }
html[data-theme="dark"] body.tp-home-c .tpc-btn--white:hover { background: #FBEDEF; color: var(--tpc-red-hover); }
html[data-theme="dark"] body.tp-home-c .tpc-btn--ghost { border: 1.5px solid #fff; color: #fff; }
html[data-theme="dark"] body.tp-home-c .tpc-btn--ghost:hover { background: rgba(255, 255, 255, 0.12); color: #fff; }
html[data-theme="dark"] body.tp-home-c .tpc-section-head h2 { color: var(--tpc-ink); }
html[data-theme="dark"] body.tp-home-c .tpc-section-head__lead { color: var(--tpc-muted); }
html[data-theme="dark"] body.tp-home-c .tpc-hero-copy { color: var(--tpc-ink); }
html[data-theme="dark"] body.tp-home-c .tpc-kicker { color: #FF6B78; }
html[data-theme="dark"] body.tp-home-c .tpc-kicker > span { background: var(--tpc-red); }
html[data-theme="dark"] body.tp-home-c .tpc-mark { color: var(--tpc-ink); }
html[data-theme="dark"] body.tp-home-c .tpc-hero-copy h1 { color: var(--tpc-ink); background: none; -webkit-text-fill-color: currentColor; }
html[data-theme="dark"] body.tp-home-c .tpc-lead { color: var(--tpc-muted); }
html[data-theme="dark"] body.tp-home-c .tpc-hero-call { color: var(--tpc-ink); }
html[data-theme="dark"] body.tp-home-c .tpc-hero-call svg { color: #FF6B78; }
html[data-theme="dark"] body.tp-home-c .tpc-quote-flow { border-top: 1px solid rgba(96, 116, 143, 0.25); color: var(--tpc-muted); }
html[data-theme="dark"] body.tp-home-c .tpc-quote-flow li { color: var(--tpc-ink); }
html[data-theme="dark"] body.tp-home-c .tpc-quote-flow li span { color: #FF6B78; }
html[data-theme="dark"] body.tp-home-c .tpc-quote-flow p svg { color: #4CC48A; }
html[data-theme="dark"] body.tp-home-c .tpc-proof { background: #141B27; border-bottom: 1px solid var(--tpc-line); }
html[data-theme="dark"] body.tp-home-c .tpc-stats li { border-top: 1px solid var(--tpc-line); }
html[data-theme="dark"] body.tp-home-c .tpc-stats strong { color: var(--tpc-ink); }
html[data-theme="dark"] body.tp-home-c .tpc-stats li > span:last-child { color: var(--tpc-muted); }
html[data-theme="dark"] body.tp-home-c .tpc-trusted-head p > span:last-child { color: var(--tpc-ink); }
html[data-theme="dark"] body.tp-home-c .tpc-logo { background: #141B27; border: 1px solid var(--tpc-line); }
html[data-theme="dark"] body.tp-home-c .tpc-services { background: var(--tpc-ground); }
html[data-theme="dark"] body.tp-home-c .tpc-feature { background: #263147; color: #fff; }
html[data-theme="dark"] body.tp-home-c .tpc-feature__ring { border: 1px solid rgba(255, 255, 255, 0.12); }
html[data-theme="dark"] body.tp-home-c .tpc-feature__ring--b { border-color: rgba(255, 255, 255, 0.08); }
html[data-theme="dark"] body.tp-home-c .tpc-feature__copy h3 { color: #fff; }
html[data-theme="dark"] body.tp-home-c .tpc-feature__copy p { color: #B9C2D0; }
html[data-theme="dark"] body.tp-home-c .tpc-feature__badge { color: #fff; background: rgba(217, 32, 50, 0.22); border: 1px solid rgba(122, 46, 56, 0.45); }
html[data-theme="dark"] body.tp-home-c #home-services .tpc-feature__steps-label { color: #8F9CB0 !important; -webkit-text-fill-color: #8F9CB0 !important; }
html[data-theme="dark"] body.tp-home-c #home-services .tpc-feature__flow li { color: #E3E7EE !important; -webkit-text-fill-color: #E3E7EE !important; }
html[data-theme="dark"] body.tp-home-c #home-services .tpc-feature__flow li span { color: var(--tpc-rose) !important; -webkit-text-fill-color: var(--tpc-rose) !important; }
html[data-theme="dark"] body.tp-home-c .tpc-feature__flow li + li::before { background: rgba(255, 255, 255, 0.3); }
html[data-theme="dark"] body.tp-home-c .tpc-feature__cta { background: var(--tpc-red); color: #fff; }
html[data-theme="dark"] body.tp-home-c .tpc-feature:hover .tpc-feature__cta { background: var(--tpc-red-hover); box-shadow: 0 0 0 4px rgba(217, 32, 50, 0.18), 0 10px 26px -10px rgba(217, 32, 50, 0.9); }
html[data-theme="dark"] body.tp-home-c #home-services .tpc-feature__note { color: #8F9CB0 !important; -webkit-text-fill-color: #8F9CB0 !important; }
html[data-theme="dark"][data-theme] body.home.tp-home-c #home-services a:focus-visible, html[data-theme="dark"] body.tp-home-c #home-services a:focus-visible { outline: 3px solid rgba(217, 32, 50, 0.45) !important; outline-offset: 4px !important; }
html[data-theme="dark"][data-theme] body.home.tp-home-c #home-services a:focus:not(:focus-visible), html[data-theme="dark"] body.tp-home-c #home-services a:focus:not(:focus-visible) { outline: none !important; }
html[data-theme="dark"] body.tp-home-c .tpc-btn__hint { color: #FF6B78; background: rgba(217, 32, 50, 0.16); }
html[data-theme="dark"] body.tp-home-c .tpc-fx-laser::before { background: conic-gradient(from var(--tpc-laser-angle), transparent 0deg, transparent 240deg, rgba(217, 32, 50, 0) 250deg, #D92032 320deg, #FFB3BC 348deg, rgba(255, 255, 255, 0) 360deg); }
html[data-theme="dark"] body.tp-home-c .tpc-btn--primary:hover { box-shadow: 0 0 0 4px rgba(217, 32, 50, 0.12), 0 14px 30px -12px rgba(217, 32, 50, 0.85); }
html[data-theme="dark"] body.tp-home-c .tpc-btn--primary::after { background: linear-gradient(100deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.38) 50%, rgba(255, 255, 255, 0) 100%); }
html[data-theme="dark"] body.tp-home-c .tpc-service { background: #141B27; border: 1px solid var(--tpc-line); color: var(--tpc-ink); }
html[data-theme="dark"] body.tp-home-c .tpc-service:hover { border-color: #364357; box-shadow: 0 20px 36px -28px rgba(0, 0, 0, 0.63); }
html[data-theme="dark"] body.tp-home-c .tpc-service__icon { background: var(--tpc-ground); color: #FF6B78; }
html[data-theme="dark"] body.tp-home-c .tpc-service__desc { color: var(--tpc-muted); }
html[data-theme="dark"] body.tp-home-c .tpc-service__more { color: #FF6B78; }
html[data-theme="dark"] body.tp-home-c .tpc-process { background: #141B27; border-top: 1px solid var(--tpc-line); }
html[data-theme="dark"] body.tp-home-c .tpc-steps li { border-top: 2px solid #364357; }
html[data-theme="dark"] body.tp-home-c .tpc-steps h3 { color: var(--tpc-ink); }
html[data-theme="dark"] body.tp-home-c .tpc-steps p { color: var(--tpc-muted); }
html[data-theme="dark"] body.tp-home-c .tpc-badges { border-top: 1px solid var(--tpc-line); }
html[data-theme="dark"] body.tp-home-c .tpc-badge { background: var(--tpc-ground); border: 1px solid var(--tpc-line); color: var(--tpc-ink); }
html[data-theme="dark"] body.tp-home-c .tpc-badge svg { color: #4CC48A; }
html[data-theme="dark"] body.tp-home-c .tpc-deliverable { background: var(--tpc-ground); border-top: 1px solid var(--tpc-line); }
html[data-theme="dark"] body.tp-home-c .tpc-dl-copy h2 { color: var(--tpc-ink); }
html[data-theme="dark"] body.tp-home-c .tpc-dl-lead { color: var(--tpc-muted); }
html[data-theme="dark"] body.tp-home-c .tpc-dl-checks { color: var(--tpc-ink); }
html[data-theme="dark"] body.tp-home-c .tpc-dl-checks li > span:first-child { color: #FF6B78; }
html[data-theme="dark"] body.tp-home-c .tpc-dl-card { background: #141B27; border: 1px solid var(--tpc-line); }
html[data-theme="dark"] body.tp-home-c .tpc-dl-head { border-bottom: 1px solid var(--tpc-line); }
html[data-theme="dark"] body.tp-home-c .tpc-dl-progress { background: rgba(20, 27, 39, 0.55); }
html[data-theme="dark"] body.tp-home-c .tpc-dl-toggle { border: 1px solid var(--tpc-line); background: #141B27; color: var(--tpc-ink); }
html[data-theme="dark"] body.tp-home-c .tpc-dl-toggle:hover { border-color: #364357; }
html[data-theme="dark"] body.tp-home-c .tpc-dl-toggle:focus-visible { outline: 3px solid rgba(169, 180, 197, 0.25); outline-offset: 2px; }
html[data-theme="dark"] body.tp-home-c .tpc-dl-tabs button { border: 1px solid var(--tpc-line); background: #141B27; color: var(--tpc-muted); }
html[data-theme="dark"] body.tp-home-c .tpc-dl-tabs button:hover { color: var(--tpc-ink); border-color: #364357; }
html[data-theme="dark"] body.tp-home-c .tpc-dl-tabs button[aria-selected="true"] { background: #263147; border-color: #364357; color: #fff; }
html[data-theme="dark"] body.tp-home-c .tpc-dl-tabs button:focus-visible { outline: 3px solid rgba(169, 180, 197, 0.25); outline-offset: 2px; }
html[data-theme="dark"] body.tp-home-c .tpc-dl-sheet { background: #141B27; border: 1px solid var(--tpc-line); }
html[data-theme="dark"] body.tp-home-c .tpc-dl-sheet.is-delivered { border-top: 3px solid var(--tpc-red); box-shadow: 0 20px 36px -28px rgba(0, 0, 0, 0.63); }
html[data-theme="dark"] body.tp-home-c .tpc-dl-sheet__head { color: var(--tpc-muted); }
html[data-theme="dark"] body.tp-home-c .tpc-dl-sheet.is-delivered .tpc-dl-sheet__head { color: #FF6B78; }
html[data-theme="dark"] body.tp-home-c .tpc-dl-sheet__title { color: var(--tpc-ink); }
html[data-theme="dark"] body.tp-home-c .tpc-dl-sheet dl { border-top: 1px solid var(--tpc-line); color: var(--tpc-muted); }
html[data-theme="dark"] body.tp-home-c .tpc-dl-sheet dd { color: var(--tpc-ink); }
html[data-theme="dark"] body.tp-home-c .tpc-dl-redact { background: #263147; }
html[data-theme="dark"] body.tp-home-c .tpc-dl-sheet__foot { border-top: 1px solid var(--tpc-line); color: var(--tpc-soft); }
html[data-theme="dark"] body.tp-home-c .tpc-dl-badge { color: #4CC48A; border: 1.5px solid var(--tpc-green); }
html[data-theme="dark"] body.tp-home-c .tpc-dl-arrow { color: var(--tpc-muted); }
html[data-theme="dark"] body.tp-home-c .tpc-dl-note { color: var(--tpc-soft); }
html[data-theme="dark"] body.tp-home-c .tpc-reviews { background: #141B27; border-top: 1px solid var(--tpc-line); }
html[data-theme="dark"] body.tp-home-c .tpc-review { background: var(--tpc-ground); border: 1px solid var(--tpc-line); }
html[data-theme="dark"] body.tp-home-c .tpc-review__meta { color: var(--tpc-muted); }
html[data-theme="dark"] body.tp-home-c .tpc-review blockquote { color: var(--tpc-ink); }
html[data-theme="dark"] body.tp-home-c .tpc-review figcaption { color: var(--tpc-muted); }
html[data-theme="dark"] body.tp-home-c .tpc-review__stars { color: #F2B25C; }
html[data-theme="dark"] body.tp-home-c .tpc-review-empty { background: var(--tpc-ground); border: 1px dashed var(--tpc-line); color: var(--tpc-muted); }
html[data-theme="dark"] body.tp-home-c .tpc-support { background: var(--tpc-ground); border-top: 1px solid var(--tpc-line); }
html[data-theme="dark"] body.tp-home-c .tpc-support-grid a { background: #141B27; border: 1px solid var(--tpc-line); color: var(--tpc-ink); }
html[data-theme="dark"] body.tp-home-c .tpc-support-grid a:hover { border-color: #364357; }
html[data-theme="dark"] body.tp-home-c .tpc-support-grid span { color: var(--tpc-muted); }
html[data-theme="dark"] body.tp-home-c .tpc-contact { border-top: 1px solid var(--tpc-line); color: var(--tpc-ink); }
html[data-theme="dark"] body.tp-home-c .tpc-contact dt { color: var(--tpc-muted); }
html[data-theme="dark"] body.tp-home-c .tpc-contact a { color: inherit; }
html[data-theme="dark"] body.tp-home-c .tpc-cta { background: var(--tpc-ground); color: var(--tpc-ink); }
html[data-theme="dark"] body.tp-home-c .tpc-cta__card { background: var(--tpc-red); color: #fff; }
html[data-theme="dark"] body.tp-home-c .tpc-cta__ring { border: 1px solid rgba(255, 255, 255, 0.18); }
html[data-theme="dark"] body.tp-home-c .tpc-cta__ring--b { border-color: rgba(255, 255, 255, 0.1); }
html[data-theme="dark"] body.tp-home-c .tpc-cta h2 { color: #fff; }
html[data-theme="dark"] body.tp-home-c .tpc-cta p { color: #F9D3D8; }
html[data-theme="dark"] body.tp-home-c .tpc-mobile-bar__call { border: 1px solid #364357; background: #141B27; color: var(--tpc-ink); }
@media (max-width: 767px) {
    html[data-theme="dark"] body.tp-home-c .tpc-mobile-shortcuts a { background: #141B27; border: 1px solid var(--tpc-line); color: var(--tpc-ink); }
    html[data-theme="dark"] body.tp-home-c .tpc-mobile-shortcuts svg { color: #FF6B78; }
}
html[data-theme="dark"] body.tp-home-c .tpc-support-grid a::before { background: conic-gradient(from var(--tpc-laser-angle), transparent 0deg, transparent 290deg, rgba(217, 32, 50, 0.18) 318deg, #D92032 342deg, #FFC4CA 352deg, transparent 360deg); }
html[data-theme="dark"] body.tp-home-c .tpc-support-grid a::after { background: #141B27; }
html[data-theme="dark"] body.tp-home-c .tpc-support-grid a:hover, html[data-theme="dark"] body.tp-home-c .tpc-support-grid a:focus-visible { border-color: rgba(217, 32, 50, 0.22); box-shadow: 0 18px 30px -20px rgba(169, 180, 197, 0.35); }
html[data-theme="dark"] body.tp-home-c .tpc-support-grid a:hover strong, html[data-theme="dark"] body.tp-home-c .tpc-support-grid a:focus-visible strong { color: #FF6B78; }
/* 고객사 로고: 로고 원본 색을 살리도록 칸은 밝게 유지(살짝 낮춘 흰색) */
html[data-theme="dark"] body.tp-home-c .tpc-logo { background: #E9EDF3; border-color: transparent; }
html[data-theme="dark"] body.tp-home-c .tpc-logo img { opacity: 0.78; }
/* 후기 별점: 다크에서는 밝은 금색 */
html[data-theme="dark"] body.tp-home-c .tpc-review__stars { color: #F5B544; }
/* /TP_DARK_MODE_BLOCK */
