/* SNS 자동화 상세(v2: 쓰레드 자동화·인스타그램 자동화) 공용. 모든 규칙이 .tx2 / .tx2-hero 안에서만 적용된다.
   상품마다 사진·포인트 색만 다르다(.tx2-p-threads 라임, .tx2-p-insta 코랄). 화면은 처음부터 밝게: 투명도에서 시작하는 등장 효과를 쓰지 않는다. */
.tx2-hero, .tx2 { --tx2-ink: #111213; --tx2-ink2: #18191B; --tx2-paper: #F3F3EF; --tx2-td: #EDEDE8; --tx2-md: #A3A39B; --tx2-ld: #2B2C2F; --tx2-tl: #151515; --tx2-ml: #5B5B55; --tx2-ll: #DADAD2; --tx2-red: #C2412D; font-family: inherit; letter-spacing: -0.02em;
  --tx2-lime: #CCF35C; --tx2-lime-ink: #4B6400; --tx2-on-accent: #141A00; --tx2-pick: #F4FBDF;
  --tx2-mark-d: rgba(204, 243, 92, .5); --tx2-mark-l: rgba(204, 243, 92, .95); --tx2-ring: rgba(204, 243, 92, .25); --tx2-tickring: rgba(204, 243, 92, .9);
  --tx2-photo-filter: brightness(1.35) contrast(1.05); --tx2-photo-pos: 40% 40%;
  --tx2-shade: linear-gradient(180deg, rgba(10, 10, 11, .42) 0%, rgba(10, 10, 11, .12) 36%, rgba(17, 18, 19, .7) 74%, #111213 100%);
  --tx2-close-img: url("/web/uploads/products/detail/threads-v2/photo-table.jpg"); }
.tx2-p-insta { --tx2-lime: #FF8A65; --tx2-lime-ink: #A3391A; --tx2-on-accent: #2A0E05; --tx2-pick: #FFF0EA;
  --tx2-mark-d: rgba(255, 138, 101, .5); --tx2-mark-l: rgba(255, 138, 101, .75); --tx2-ring: rgba(255, 138, 101, .28); --tx2-tickring: rgba(255, 138, 101, .9);
  --tx2-photo-filter: saturate(.9); --tx2-photo-pos: 50% 45%;
  --tx2-shade: linear-gradient(180deg, rgba(10, 10, 11, .62) 0%, rgba(10, 10, 11, .5) 36%, rgba(17, 18, 19, .8) 72%, #111213 100%);
  --tx2-close-img: url("/web/uploads/products/detail/insta-v2/photo-shop.jpg"); }
.tx2-hero *, .tx2 * { box-sizing: border-box; }
.tx2 h2, .tx2 h3, .tx2 p, .tx2-hero h1, .tx2-hero p { margin: 0; }

/* 상단 */
.tx2-hero.bas-detail-hero { position: relative; isolation: isolate; overflow: hidden; background: var(--tx2-ink); color: var(--tx2-td); }
.tx2-hero-photo { position: absolute; inset: 0 0 auto 0; height: 680px; z-index: -1; overflow: hidden; }
.tx2-hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: var(--tx2-photo-pos); display: block; filter: var(--tx2-photo-filter); }
.tx2-motion .tx2-hero-photo img { animation: tx2-drift 18s ease-out both; }
.tx2-hero-photo::after { content: ""; position: absolute; inset: 0; background: var(--tx2-shade); }
@keyframes tx2-drift { from { transform: scale(1.12); } to { transform: none; } }
.tx2-hero-in { position: relative; width: min(1080px, 100%); margin: 0 auto; padding: 16px max(22px, env(safe-area-inset-right, 0px)) 52px max(22px, env(safe-area-inset-left, 0px)); }
.tx2-crumbs { display: flex; gap: 7px; align-items: center; font-size: 12px; color: rgba(237, 237, 232, .78); }
.tx2-crumbs a { color: inherit; text-decoration: none; }
.tx2-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; }
.tx2-name { margin-top: 96px !important; font-size: 13px; font-weight: 650; color: rgba(237, 237, 232, .85); }
.tx2-hero h1 { margin-top: 14px; font-size: 52px; line-height: 1.06; font-weight: 900; letter-spacing: -.055em; color: var(--tx2-td) !important; text-shadow: 0 2px 24px rgba(0, 0, 0, .5); }
.tx2-line { display: block; overflow: hidden; padding-bottom: 4px; }
.tx2-line > span { display: inline-block; }
.tx2-line:nth-child(3) > span { color: var(--tx2-lime); }
.tx2-motion .tx2-line > span { animation: tx2-rise .9s cubic-bezier(.2, .8, .2, 1) both; }
.tx2-motion .tx2-line:nth-child(2) > span { animation-delay: .12s; }
.tx2-motion .tx2-line:nth-child(3) > span { animation-delay: .24s; }
@keyframes tx2-rise { from { transform: translateY(105%); } to { transform: none; } }
.tx2-lede { margin-top: 18px !important; font-size: 16px; line-height: 1.7; color: rgba(237, 237, 232, .9); }
.tx2-price.bas-detail-price-hint { margin-top: 24px; font-size: 14px; color: var(--tx2-md); }
.tx2-price strong { font-size: 28px; font-weight: 850; letter-spacing: -.04em; color: var(--tx2-td); margin-inline: 2px; }
.tx2-hero .fc-line { margin-top: 12px; background: rgba(250, 250, 246, .96); }
.tx2-actions { margin-top: 18px; display: flex; flex-direction: column; gap: 12px; }
.tx2-btn { display: flex; align-items: center; justify-content: center; width: 100%; height: 56px; border: 0; border-radius: 14px; font: inherit; font-size: 17px; font-weight: 750; cursor: pointer; }
.tx2-btn-lime { background: var(--tx2-lime); color: var(--tx2-on-accent); }
.tx2-btn:focus-visible, .tx2 button:focus-visible, .tx2-link:focus-visible, .tx2-hero button:focus-visible { outline: 3px solid var(--tx2-lime); outline-offset: 3px; }
.tx2-links { display: flex; gap: 22px; justify-content: center; }
.tx2-link { font-size: 14.5px; color: var(--tx2-td); text-decoration: underline; text-underline-offset: 4px; }
.tx2-rating { margin-top: 16px; display: inline-flex; align-items: center; gap: 8px; padding: 0; border: 0; background: none; color: var(--tx2-md); font: inherit; font-size: 13px; cursor: pointer; }
.tx2-rating strong { color: var(--tx2-td); }
.tx2-stars { color: var(--tx2-lime); letter-spacing: 1px; }
.tx2-fav.bas-detail-favorite { position: absolute; top: 10px; right: max(18px, env(safe-area-inset-right, 0px)); z-index: 3; }
.tx2-stage { position: relative; perspective: 1200px; padding-top: 30px; min-width: 0; }
.tx2-window { border-radius: 12px; overflow: hidden; background: #1D1E20; border: 1px solid rgba(255, 255, 255, .12); box-shadow: 0 30px 60px rgba(0, 0, 0, .55); }
.tx2-tilt { transform: rotateX(8deg) rotateY(-10deg) rotateZ(1deg); transform-origin: 60% 50%; }
.tx2-motion .tx2-tilt { animation: tx2-float 6s ease-in-out infinite; }
@keyframes tx2-float { 0%, 100% { translate: 0 0; } 50% { translate: 0 -8px; } }
.tx2-bar { height: 30px; display: flex; align-items: center; justify-content: space-between; padding-inline: 12px; background: #26272A; color: #C9C9C2; font-size: 11.5px; font-weight: 600; }
.tx2-bar i { display: inline-flex; gap: 6px; }
.tx2-bar i::before, .tx2-bar i::after { content: ""; width: 9px; height: 9px; border-radius: 50%; background: #3C3D41; }
.tx2-window video { display: block; width: 100%; height: auto; }
.tx2-tilt video { -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 9%, #000 100%); mask-image: linear-gradient(180deg, transparent 0, #000 9%, #000 100%); }
.tx2-toasts { position: absolute; left: -6px; right: 30px; top: 0; display: flex; flex-direction: column; gap: 8px; z-index: 2; pointer-events: none; }
.tx2-toast { display: flex; align-items: center; gap: 10px; padding: 11px 14px; border-radius: 14px; background: rgba(250, 250, 246, .96); color: #151515; box-shadow: 0 12px 28px rgba(0, 0, 0, .35); font-size: 13.5px; font-weight: 600; }
.tx2-motion .tx2-toast { animation: tx2-pop .45s cubic-bezier(.2, .9, .3, 1.2) both; }
.tx2-motion .tx2-toast.is-out { animation: tx2-leave .35s ease-in both; }
.tx2-toast small { margin-left: auto; color: #77776F; font-weight: 500; font-size: 12px; white-space: nowrap; }
.tx2-dot { flex: none; width: 24px; height: 24px; border-radius: 8px; display: grid; place-items: center; background: #151515; color: var(--tx2-lime); }
.tx2-toast.is-wait .tx2-dot { background: #E9E9E2; color: #55554E; }
@keyframes tx2-pop { from { transform: translateY(-12px) scale(.96); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes tx2-leave { to { transform: translateY(6px) scale(.97); opacity: 0; } }
.tx2-note { margin-top: 12px !important; font-size: 12px; color: var(--tx2-md); }
.tx2-hero .tx2-note { text-align: right; }
.tx2-hero .tx2-note-l { text-align: left; margin-top: 8px !important; }
.tx2-chips { margin-top: 18px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.tx2-chips div { padding: 12px 10px; border-radius: 12px; background: var(--tx2-ink2); border: 1px solid var(--tx2-ld); text-align: center; }
.tx2-chips b { display: block; font-size: 24px; font-weight: 750; font-variant-numeric: tabular-nums; }
.tx2-chips span { font-size: 12px; color: var(--tx2-md); }

/* 본문 공통 */
.tx2 { background: var(--tx2-ink); color: var(--tx2-td); }
.tx2-in { width: min(640px, 100%); margin: 0 auto; padding-inline: max(22px, env(safe-area-inset-left, 0px)) max(22px, env(safe-area-inset-right, 0px)); }
.tx2-sec { padding-block: 84px 72px; }
.tx2 h2 { font-size: 34px; line-height: 1.22; font-weight: 850; letter-spacing: -.04em; text-wrap: balance; color: inherit !important; }
.tx2 h3 { color: inherit !important; }
.tx2-lead { margin-top: 12px !important; font-size: 16px; line-height: 1.7; color: var(--tx2-md); }
.tx2-light { background: var(--tx2-paper); color: var(--tx2-tl); }
.tx2-light .tx2-lead, .tx2-light .tx2-note-l { color: var(--tx2-ml); }
.tx2-dark { background: var(--tx2-ink); }
.tx2-mark { font-style: normal; background: linear-gradient(transparent 58%, var(--tx2-mark-d) 58%) no-repeat; background-size: 100% 100%; }
.tx2-light .tx2-mark { background-image: linear-gradient(transparent 58%, var(--tx2-mark-l) 58%); }
.tx2-motion .tx2-settle.is-in { animation: tx2-settle .6s ease-out both; }
.tx2-motion .tx2-mark.is-in, .tx2-motion .is-in .tx2-mark { animation: tx2-sweep .9s .25s cubic-bezier(.6, 0, .2, 1) both; }
@keyframes tx2-settle { from { transform: translateY(14px); } to { transform: none; } }
@keyframes tx2-sweep { from { background-size: 0% 100%; } to { background-size: 100% 100%; } }

.tx2-ticker { overflow: hidden; border-block: 1px solid var(--tx2-ld); background: var(--tx2-ink2); }
.tx2-ticker-track { display: flex; width: max-content; }
.tx2-motion .tx2-ticker-track { animation: tx2-slide 24s linear infinite; }
.tx2-ticker span { padding: 14px 0; font-size: 15px; font-weight: 700; white-space: nowrap; }
.tx2-ticker em { font-style: normal; color: var(--tx2-lime); margin-inline: 14px; }
@keyframes tx2-slide { to { transform: translateX(-50%); } }

/* 하루 나누기 */
.tx2-lanes { margin-top: 28px; display: flex; flex-direction: column; gap: 12px; }
.tx2-lane { border-radius: 16px; padding: 16px 16px 12px; background: #FFFFFF; border: 1px solid var(--tx2-ll); }
.tx2-lane.is-prog { background: var(--tx2-ink); color: var(--tx2-td); border-color: var(--tx2-ink); }
.tx2-lane-head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; font-size: 13.5px; font-weight: 750; }
.tx2-lane-head span { font-size: 12px; font-weight: 600; color: var(--tx2-ml); white-space: nowrap; }
.tx2-lane.is-prog .tx2-lane-head span { color: var(--tx2-md); }
.tx2-axis { position: relative; margin-top: 12px; height: 62px; border-bottom: 1px solid var(--tx2-ll); }
.tx2-lane.is-prog .tx2-axis { border-color: #34353A; }
.tx2-slot { position: absolute; bottom: 0; width: 3px; margin-left: -1.5px; border-radius: 2px 2px 0 0; background: #CFCFC6; transform-origin: bottom; transition: background .2s ease, transform .25s ease; }
.is-burst .tx2-slot.is-hit { background: var(--tx2-red); }
.is-prog .tx2-slot { background: #3A3B40; }
.is-prog .tx2-slot.is-hit { background: var(--tx2-lime); }
.is-prog .tx2-slot.is-now { transform: scaleY(1.25); box-shadow: 0 0 0 3px var(--tx2-ring); }
.tx2-sweep { position: absolute; top: -6px; bottom: -2px; left: 0; width: 2px; margin-left: -1px; opacity: 0; }
.is-prog .tx2-sweep { background: var(--tx2-lime); }
.is-burst .tx2-sweep { background: var(--tx2-red); }
.tx2-sweep.is-on { opacity: .9; }
.tx2-ticks { position: relative; height: 18px; font-size: 11px; color: var(--tx2-ml); }
.is-prog .tx2-ticks { color: var(--tx2-md); }
.tx2-ticks span { position: absolute; top: 4px; transform: translateX(-50%); white-space: nowrap; }
.tx2-ticks span:first-child { transform: none; }
.tx2-ticks span:last-child { transform: translateX(-100%); }
.tx2-now { margin-top: 8px !important; min-height: 22px; font-size: 13.5px; color: var(--tx2-md); }
.tx2-now b { color: var(--tx2-lime); font-weight: 650; }
.tx2-counts { margin-top: 16px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.tx2-counts > div { padding: 10px 8px; border-radius: 12px; background: #FFFFFF; border: 1px solid var(--tx2-ll); min-width: 0; }
.tx2-counts b { display: block; font-size: 18px; font-weight: 750; line-height: 1.1; white-space: nowrap; font-variant-numeric: tabular-nums; }
.tx2-counts b small { font-size: 11px; color: var(--tx2-ml); font-weight: 500; }
.tx2-counts > div > span { display: block; margin-top: 4px; font-size: 12px; color: var(--tx2-ml); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tx2-day-foot { margin-top: 14px; display: flex; justify-content: space-between; align-items: center; gap: 12px; font-size: 12.5px; color: var(--tx2-ml); }
.tx2-replay { flex: none; border: 1px solid var(--tx2-ll); background: #FFFFFF; color: var(--tx2-tl); border-radius: 999px; padding: 9px 14px; font: inherit; font-size: 13px; font-weight: 650; cursor: pointer; }

/* 영상 */
.tx2-film { margin-top: 28px; }

/* 스크롤 이야기: 고정된 틀 안에서 카메라가 실제 화면 위를 움직인다 */
.tx2-story { padding-top: 84px; background: linear-gradient(var(--tx2-ink), var(--tx2-ink2)); }
.tx2-track { position: relative; height: calc(100vh + 6 * 46vh); height: calc(100svh + 6 * 46svh); margin-top: 8px; }
.tx2-pin { --tx2-top: 0px; --tx2-dock: 0px; position: sticky; top: var(--tx2-top); height: calc(100vh - var(--tx2-top)); height: calc(100svh - var(--tx2-top)); width: min(640px, 100%); margin: 0 auto; display: flex; flex-direction: column; gap: 14px; padding: 18px max(22px, env(safe-area-inset-right, 0px)) calc(var(--tx2-dock) + 18px) max(22px, env(safe-area-inset-left, 0px)); }
.tx2-progress { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; }
.tx2-progress button { position: relative; height: 26px; padding: 0; border: 0; background: none; cursor: pointer; }
.tx2-progress button::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 4px; margin-top: -2px; border-radius: 4px; background: #34353A; }
.tx2-progress i { position: absolute; left: 0; top: 50%; height: 4px; margin-top: -2px; border-radius: 4px; background: var(--tx2-lime); width: 0; }
.tx2-screen { position: relative; flex: 1 1 auto; min-height: 0; container-type: size; }
.tx2-cam { position: absolute; left: 0; right: 0; top: 50%; height: min(100cqh, 118cqw); transform: translateY(-50%); overflow: hidden; border-radius: 14px; background: #242424; border: 1px solid rgba(255, 255, 255, .1); box-shadow: 0 24px 50px rgba(0, 0, 0, .5); }
.tx2-layer { --tx2-z: 1; position: absolute; left: 0; top: 0; width: 100%; transform-origin: 0 0; opacity: 0; z-index: 0; transition: opacity 0s linear .4s, transform .8s cubic-bezier(.3, .8, .2, 1); }
.tx2-layer.is-on { opacity: 1; z-index: 1; transition: opacity .35s ease, transform .8s cubic-bezier(.3, .8, .2, 1); }
.tx2-layer img { display: block; width: 100%; height: auto; }
.tx2-ring { position: absolute; border: calc(2.5px / var(--tx2-z)) solid var(--tx2-lime); border-radius: calc(10px / var(--tx2-z)); box-shadow: 0 0 0 9999px rgba(10, 10, 11, .38); transition: left .8s cubic-bezier(.3, .8, .2, 1), top .8s cubic-bezier(.3, .8, .2, 1), width .8s cubic-bezier(.3, .8, .2, 1), height .8s cubic-bezier(.3, .8, .2, 1); }
.tx2-caps { position: relative; flex: none; height: 136px; }
.tx2-cap { position: absolute; inset: 0; opacity: 0; transform: translateY(6px); transition: opacity .35s ease, transform .35s ease; }
.tx2-cap.is-on { opacity: 1; transform: none; }
.tx2-k { font-size: 12.5px; font-weight: 700; color: var(--tx2-lime); }
.tx2-cap h3 { margin: 6px 0 0; font-size: 21px; line-height: 1.35; font-weight: 820; letter-spacing: -.035em; }
.tx2-cap p { margin-top: 6px !important; font-size: 14px; line-height: 1.6; color: var(--tx2-md); }

/* 안전 */
.tx2-pace { margin-top: 28px; display: flex; flex-direction: column; gap: 18px; }
.tx2-pace-row h3 { margin: 0; font-size: 13px; font-weight: 700; color: var(--tx2-ml) !important; }
.tx2-pace-row.is-prog h3 { color: var(--tx2-tl) !important; }
.tx2-line-box { position: relative; margin-top: 10px; height: 34px; overflow: hidden; border-radius: 10px; background: #FFFFFF; border: 1px solid var(--tx2-ll); }
.tx2-strip { position: absolute; inset: 0 auto 0 0; width: 200%; }
.tx2-motion .tx2-strip { animation: tx2-slide 16s linear infinite; }
.tx2-tick { position: absolute; top: 50%; width: 12px; height: 12px; margin: -6px 0 0 -6px; border-radius: 50%; background: #B7B7AE; }
.is-prog .tx2-tick { background: #151515; box-shadow: 0 0 0 4px var(--tx2-tickring); }
.tx2-limits { margin-top: 30px; border-radius: 16px; overflow: hidden; border: 1px solid var(--tx2-ll); background: #FFFFFF; }
.tx2-limits table { width: 100%; border-collapse: collapse; font-size: 13.5px; color: var(--tx2-tl); }
.tx2-limits caption { text-align: left; padding: 14px 14px 4px; font-size: 13px; font-weight: 750; color: var(--tx2-tl); }
.tx2-limits th, .tx2-limits td { padding: 10px 6px; text-align: center; border-top: 1px solid #ECECE5; }
.tx2-limits th { font-size: 12px; font-weight: 650; color: var(--tx2-ml); background: none; }
.tx2-limits td { font-size: 15px; font-weight: 650; font-variant-numeric: tabular-nums; }
.tx2-limits td:first-child, .tx2-limits th:first-child { text-align: left; padding-left: 14px; font-weight: 750; font-size: 13.5px; }
.tx2-limits tr.is-pick td { background: var(--tx2-pick); }
.tx2-limits tr.is-pick td:first-child::after { content: "기본"; margin-left: 6px; padding: 2px 6px; border-radius: 6px; background: var(--tx2-tl); color: var(--tx2-lime); font-size: 10.5px; font-weight: 700; vertical-align: 1px; }
.tx2-limits p { padding: 0 14px 12px; font-size: 12px; line-height: 1.55; color: var(--tx2-ml); }
.tx2-facts { margin-top: 12px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.tx2-fact { padding: 16px; border-radius: 14px; background: #FFFFFF; border: 1px solid var(--tx2-ll); min-width: 0; }
.tx2-fact > b { display: block; font-size: 22px; font-weight: 820; line-height: 1.15; letter-spacing: -.04em; color: var(--tx2-tl); }
.tx2-fact > b small { font-size: 14px; font-weight: 750; margin-left: 2px; }
.tx2-fact > b > span { font-size: 28px; font-variant-numeric: tabular-nums; }
.tx2-fact > span { display: block; margin-top: 8px; font-size: 13px; line-height: 1.45; color: var(--tx2-ml); }
.tx2-fact.is-wide { grid-column: 1 / -1; display: flex; gap: 14px; align-items: center; }
.tx2-fact.is-wide > b { font-size: 20px; white-space: nowrap; }
.tx2-fact.is-wide > span { margin-top: 0; }
.tx2-honest { margin-top: 16px !important; padding: 16px 18px; border-radius: 14px; border: 1px dashed #C6C6BC; font-size: 14.5px; line-height: 1.7; color: #3A3A35; }
.tx2-incl { margin: 28px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--tx2-ll); }
.tx2-incl li { display: flex; gap: 12px; align-items: center; padding: 14px 2px; border-bottom: 1px solid var(--tx2-ll); font-size: 15px; color: var(--tx2-tl); }
.tx2-incl svg { flex: none; color: var(--tx2-lime-ink); }

/* 공통 꼬리(가격·질문·후기·마감)를 이 페이지 톤으로 */
.tx2 .tx2-tail.bas-plan-section, .tx2 .tx2-tail.bas-faq-section, .tx2 .tx2-tail.bas-reviews-section { background: #FFFFFF; color: var(--tx2-tl); }
.tx2 .tx2-tail.bas-close-section { position: relative; isolation: isolate; overflow: hidden; background: #0A0A0B var(--tx2-close-img) 50% 60% / cover no-repeat; color: var(--tx2-td); padding-block: 130px 96px; }
.tx2 .tx2-tail.bas-close-section::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(10, 10, 11, .3), rgba(10, 10, 11, .86) 72%); }
.tx2 .tx2-tail.bas-close-section .bas-close-title { font-size: 42px; line-height: 1.12; font-weight: 900; letter-spacing: -.05em; color: var(--tx2-td) !important; }
.tx2 .tx2-tail.bas-close-section .bas-close-title .bl2-line { display: block; }
.tx2 .tx2-tail.bas-close-section .bas-close-note { color: rgba(237, 237, 232, .85); }
.tx2 .tx2-tail.bas-close-section .bas-close-btn { background: var(--tx2-lime); color: var(--tx2-on-accent); border-color: var(--tx2-lime); }
.tx2 .tx2-tail.bas-close-section .bas-close-link { color: rgba(237, 237, 232, .88); }

/* 넓은 화면: 상단은 글·화면 두 칸, 스크롤 이야기는 화면·설명 두 칸 */
@media (min-width: 960px) {
  .tx2-hero-photo { height: 100%; }
  .tx2-hero-photo::after { background: linear-gradient(90deg, rgba(10, 10, 11, .84) 0%, rgba(10, 10, 11, .55) 48%, rgba(10, 10, 11, .4) 100%); }
  .tx2-hero-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 56px; padding-bottom: 24px; }
  .tx2-name { margin-top: 64px !important; }
  .tx2-hero h1 { font-size: 64px; }
  .tx2-actions { flex-direction: row; align-items: center; gap: 22px; }
  .tx2-btn { width: auto; padding-inline: 34px; }
  .tx2-stage { padding-top: 64px; }
  .tx2-pin { width: min(1080px, 100%); display: grid; grid-template-columns: minmax(0, 1fr) 340px; grid-template-rows: auto minmax(0, 1fr); column-gap: 40px; }
  .tx2-progress { grid-column: 1 / -1; }
  .tx2-cam { height: min(100cqh, 89cqw); }
  .tx2-caps { height: 220px; align-self: center; }
}
@media (max-width: 359px) { .tx2-hero h1 { font-size: 44px; } .tx2 h2 { font-size: 30px; } .tx2-counts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (prefers-reduced-motion: reduce) { .tx2-hero *, .tx2 * { animation: none !important; transition: none !important; } }

/* Threads 올인원(v2): 연보라 + 밤 책상 사진, 한 달 예약 달력 */
.tx2-p-allinone { --tx2-lime: #B79CFF; --tx2-lime-ink: #4B2E9E; --tx2-on-accent: #1A0E3A; --tx2-pick: #F3EEFF;
  --tx2-mark-d: rgba(183, 156, 255, .5); --tx2-mark-l: rgba(183, 156, 255, .75); --tx2-ring: rgba(183, 156, 255, .3); --tx2-tickring: rgba(183, 156, 255, .9);
  --tx2-photo-filter: brightness(1.1); --tx2-photo-pos: 30% 55%;
  --tx2-shade: linear-gradient(180deg, rgba(10, 10, 11, .45) 0%, rgba(10, 10, 11, .22) 36%, rgba(17, 18, 19, .76) 72%, #111213 100%);
  --tx2-close-img: url("/web/uploads/products/detail/allinone-v2/photo-morning.jpg"); }
.tx2-cal { margin-top: 26px; border-radius: 18px; background: #FFFFFF; border: 1px solid var(--tx2-ll); padding: 16px 14px 14px; color: var(--tx2-tl); }
.tx2-cal-head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.tx2-cal-head b { font-size: 15px; font-weight: 800; }
.tx2-cal-head span { font-size: 12.5px; color: var(--tx2-ml); font-variant-numeric: tabular-nums; white-space: nowrap; }
.tx2-cal-week { margin-top: 12px; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; font-size: 11px; color: var(--tx2-ml); text-align: center; }
.tx2-cal-grid { margin-top: 6px; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.tx2-day { min-height: 54px; border-radius: 9px; background: #F5F4F0; padding: 4px 4px 5px; display: flex; flex-direction: column; gap: 2px; overflow: hidden; min-width: 0; }
.tx2-day.is-blank { background: transparent; }
.tx2-day i { font-style: normal; font-size: 10.5px; color: #8E8C84; font-variant-numeric: tabular-nums; }
.tx2-day b { font-size: 11px; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--tx2-tl); visibility: hidden; }
.tx2-day em { font-style: normal; font-size: 10px; line-height: 1.25; font-weight: 700; padding: 2px 4px; border-radius: 5px; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; visibility: hidden; }
.tx2-day.is-on { background: #FFFFFF; box-shadow: inset 0 0 0 1px var(--tx2-ll); }
.tx2-day.is-on b, .tx2-day.is-on em { visibility: visible; }
.tx2-day.is-now { box-shadow: inset 0 0 0 2px var(--tx2-lime-ink); }
.tx2-tp0 { background: #EDE6FF; color: #4B2E9E; } .tx2-tp1 { background: #E3F1FF; color: #1F4E8C; } .tx2-tp2 { background: #FFEBDD; color: #8A3A12; } .tx2-tp3 { background: #E5F5EA; color: #1E6B3A; }
.tx2-cal-legend { margin-top: 12px; display: flex; flex-wrap: wrap; gap: 6px; }
.tx2-cal-legend span { font-size: 12px; font-weight: 700; padding: 5px 8px; border-radius: 8px; }
.tx2-cal-legend small { font-weight: 600; opacity: .75; margin-left: 4px; }
.tx2-jit { margin-top: 16px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 13px; color: var(--tx2-ml); }
.tx2-jit button { border: 1px solid var(--tx2-ll); background: #FFFFFF; color: var(--tx2-tl); border-radius: 999px; padding: 7px 12px; font: inherit; font-size: 13px; font-weight: 650; cursor: pointer; }
.tx2-jit button[aria-pressed="true"] { background: var(--tx2-tl); color: #FFFFFF; border-color: var(--tx2-tl); }
.tx2-cal-foot { margin-top: 12px !important; font-size: 12.5px; line-height: 1.6; color: var(--tx2-ml); }
@media (min-width: 960px) { .tx2-day { min-height: 64px; } .tx2-day b { font-size: 12.5px; } .tx2-day em { font-size: 11px; } }

/* DB수집·콜 관리(v2): 하늘색 + 어두운 책상(목록 적는 손) 사진, 중복 정리 표 */
.tx2-p-finder { --tx2-lime: #7CC4FF; --tx2-lime-ink: #0B4F8C; --tx2-on-accent: #04223F; --tx2-pick: #E8F4FF;
  --tx2-mark-d: rgba(124, 196, 255, .5); --tx2-mark-l: rgba(124, 196, 255, .75); --tx2-ring: rgba(124, 196, 255, .3); --tx2-tickring: rgba(124, 196, 255, .9);
  --tx2-photo-filter: brightness(1.05); --tx2-photo-pos: 50% 35%;
  --tx2-shade: linear-gradient(180deg, rgba(10, 10, 11, .45) 0%, rgba(10, 10, 11, .22) 36%, rgba(17, 18, 19, .76) 72%, #111213 100%);
  --tx2-close-img: url("/web/uploads/products/detail/finder-v2/photo-call.jpg"); }
.tx2-chips b i { font-style: normal; }
.tx2-fact.is-no > b { color: #A8402B; }
.tx2-sheet { margin-top: 26px; border-radius: 18px; background: #FFFFFF; border: 1px solid var(--tx2-ll); padding: 14px 14px 12px; color: var(--tx2-tl); }
.tx2-sheet-tabs { display: flex; gap: 6px; flex-wrap: wrap; }
.tx2-sheet-tabs button { border: 1px solid var(--tx2-ll); background: #FFFFFF; color: var(--tx2-tl); border-radius: 999px; padding: 8px 13px; font: inherit; font-size: 13px; font-weight: 650; cursor: pointer; }
.tx2-sheet-tabs button[aria-pressed="true"] { background: var(--tx2-tl); color: #FFFFFF; border-color: var(--tx2-tl); }
.tx2-sheet-cond { margin-top: 10px !important; font-size: 12.5px; color: var(--tx2-ml); }
.tx2-sheet-counts { margin-top: 12px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.tx2-sheet-counts div { padding: 10px 10px 9px; border-radius: 12px; background: #F5F4F0; min-width: 0; }
.tx2-sheet-counts b { display: block; font-size: 24px; font-weight: 650; line-height: 1.1; font-variant-numeric: tabular-nums; }
.tx2-sheet-counts .is-new b { color: var(--tx2-lime-ink); }
.tx2-sheet-counts .is-upd b { color: #7A4B00; }
.tx2-sheet-counts span { display: block; margin-top: 3px; font-size: 12px; color: var(--tx2-ml); white-space: nowrap; }
.tx2-rows { list-style: none; margin: 12px 0 0; padding: 0; height: 342px; overflow: hidden; border-top: 1px solid #ECECE5; -webkit-mask-image: linear-gradient(#000 78%, transparent); mask-image: linear-gradient(#000 78%, transparent); }
.tx2-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; height: 49px; padding: 0 4px; border-bottom: 1px solid #ECECE5; }
.tx2-r-main { min-width: 0; }
.tx2-r-main b { display: block; font-size: 14px; font-weight: 750; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tx2-r-main span { display: block; margin-top: 1px; font-size: 11.5px; color: var(--tx2-ml); white-space: nowrap; }
.tx2-r-side { flex: none; display: flex; align-items: center; gap: 8px; }
.tx2-r-side span { font-size: 12.5px; font-variant-numeric: tabular-nums; }
.tx2-r-side em { font-style: normal; font-size: 11px; font-weight: 750; padding: 3px 7px; border-radius: 6px; background: #E3F1FF; color: #0B4F8C; }
.tx2-row.is-upd em { background: #FFF1D6; color: #7A4B00; }
.tx2-row.is-old b { font-weight: 600; color: #4A4A44; }
.tx2-row.is-old em { visibility: hidden; }
.tx2-row.is-flash { animation: tx2-rowin .5s cubic-bezier(.2, .8, .2, 1); }
.tx2-row.is-upd.is-flash { animation-name: tx2-rowupd; }
@keyframes tx2-rowin { from { transform: translateY(-12px); background: #E6F3FF; } to { transform: none; background: transparent; } }
@keyframes tx2-rowupd { from { transform: translateY(-12px); background: #FFF0D2; } to { transform: none; background: transparent; } }
.tx2-sheet-now { margin-top: 10px !important; min-height: 20px; font-size: 13px; color: var(--tx2-ml); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tx2-sheet-now b { color: var(--tx2-tl); }
.tx2-sheet-foot { margin-top: 12px !important; font-size: 12.5px; line-height: 1.6; color: var(--tx2-ml); }
@media (min-width: 960px) { .tx2-sheet { max-width: 640px; } }

/* 카카오톡 자동 발송(v2): 레몬 + 밤 카페 창 사진, 방마다 문구 돌리기 표 */
.tx2-p-kakao { --tx2-lime: #FFD84D; --tx2-lime-ink: #6B5200; --tx2-on-accent: #2A2000; --tx2-pick: #FFF6D6;
  --tx2-mark-d: rgba(255, 216, 77, .5); --tx2-mark-l: rgba(255, 216, 77, .75); --tx2-ring: rgba(255, 216, 77, .3); --tx2-tickring: rgba(255, 216, 77, .9);
  --tx2-photo-filter: brightness(1.25) saturate(.9); --tx2-photo-pos: 45% 40%;
  --tx2-shade: linear-gradient(180deg, rgba(10, 10, 11, .45) 0%, rgba(10, 10, 11, .22) 36%, rgba(17, 18, 19, .76) 72%, #111213 100%);
  --tx2-close-img: url("/web/uploads/products/detail/kakao-v2/photo-close.jpg"); }
.tx2-rooms { margin-top: 26px; border-radius: 18px; background: #FFFFFF; border: 1px solid var(--tx2-ll); padding: 14px 14px 12px; color: var(--tx2-tl); }
.tx2-rooms-ctl { display: flex; flex-direction: column; gap: 8px; }
.tx2-rooms-ctl > div { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.tx2-rooms-ctl span { min-width: 34px; font-size: 12.5px; color: var(--tx2-ml); }
.tx2-rooms-ctl button { border: 1px solid var(--tx2-ll); background: #FFFFFF; color: var(--tx2-tl); border-radius: 999px; padding: 7px 12px; font: inherit; font-size: 13px; font-weight: 650; cursor: pointer; }
.tx2-rooms-ctl button[aria-pressed="true"] { background: var(--tx2-tl); color: #FFFFFF; border-color: var(--tx2-tl); }
.tx2-rooms-head { margin-top: 16px; display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.tx2-rooms-head b { font-size: 15px; font-weight: 800; }
.tx2-rooms-head span { font-size: 12.5px; color: var(--tx2-ml); font-variant-numeric: tabular-nums; white-space: nowrap; }
.tx2-room-list { list-style: none; margin: 8px 0 0; padding: 0; border-top: 1px solid #ECECE5; }
.tx2-room { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 10px; align-items: center; height: 44px; padding: 0 4px; border-bottom: 1px solid #ECECE5; font-size: 13.5px; }
.tx2-r-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 650; color: #B5B3AA; }
.tx2-r-v { font-size: 11.5px; font-weight: 750; padding: 3px 7px; border-radius: 6px; background: #F3F2EE; color: #A6A49B; white-space: nowrap; }
.tx2-r-t { font-size: 12.5px; color: #B5B3AA; min-width: 62px; text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.tx2-room.is-on .tx2-r-name, .tx2-room.is-on .tx2-r-t { color: var(--tx2-tl); }
.tx2-room.is-on .tx2-r-v { background: #FFF1C2; color: #6B5200; }
.tx2-room.is-now { animation: tx2-roomin .5s cubic-bezier(.2, .8, .2, 1); }
@keyframes tx2-roomin { from { transform: translateX(-8px); background: #FFF8DC; } to { transform: none; background: transparent; } }
/* 자리는 늘 잡아 두고 보이기만 바꾼다(아래 내용이 밀리지 않게) */
.tx2-again { visibility: hidden; margin-top: 6px; }
.tx2-again.is-on { visibility: visible; }
.tx2-motion .tx2-again.is-on { animation: tx2-settle .5s ease-out both; }
.tx2-again-msg { margin-top: 8px !important; padding: 10px 12px; border-radius: 10px; background: #F5F4F0; font-size: 12.5px; line-height: 1.55; color: #4A4A44; }
.tx2-room-list.is-wait .tx2-r-name, .tx2-room-list.is-wait .tx2-r-t { color: #8E8C84; }
.tx2-room-list.is-wait .tx2-r-v { background: #EDEDE8; color: #6B6B64; }
.tx2-send-foot { margin-top: 12px !important; font-size: 12.5px; line-height: 1.6; color: var(--tx2-ml); }
@media (min-width: 960px) { .tx2-rooms { max-width: 640px; } }

/* 홈택스 세금계산서 자동화(v2): 청록 + 밤 책상 사진, 매칭 결과 표, 스크롤 이야기 4단계 */
.tx2-p-tax { --tx2-lime: #4FD1C5; --tx2-lime-ink: #0E5E57; --tx2-on-accent: #032A26; --tx2-pick: #E3F7F4;
  --tx2-mark-d: rgba(79, 209, 197, .5); --tx2-mark-l: rgba(79, 209, 197, .75); --tx2-ring: rgba(79, 209, 197, .3); --tx2-tickring: rgba(79, 209, 197, .9);
  --tx2-photo-filter: brightness(1.05); --tx2-photo-pos: 40% 45%;
  --tx2-shade: linear-gradient(180deg, rgba(10, 10, 11, .45) 0%, rgba(10, 10, 11, .22) 36%, rgba(17, 18, 19, .76) 72%, #111213 100%);
  --tx2-close-img: url("/web/uploads/products/detail/tax-v2/photo-close.jpg"); }
.tx2-p-tax .tx2-track { height: calc(100vh + 4 * 50vh); height: calc(100svh + 4 * 50svh); }
.tx2-p-tax .tx2-progress { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tx2-mx { margin-top: 26px; border-radius: 18px; background: #FFFFFF; border: 1px solid var(--tx2-ll); padding: 14px 14px 12px; color: var(--tx2-tl); }
.tx2-mx-head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.tx2-mx-head b { font-size: 15px; font-weight: 800; }
.tx2-mx-head span { font-size: 12px; color: var(--tx2-ml); font-variant-numeric: tabular-nums; }
.tx2-mx-list { list-style: none; margin: 10px 0 0; padding: 0; border-top: 1px solid #ECECE5; }
.tx2-mx-row { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; column-gap: 8px; row-gap: 4px; align-items: center; padding: 10px 4px; border-bottom: 1px solid #ECECE5; }
.tx2-mx-d { font-size: 12px; color: var(--tx2-ml); font-variant-numeric: tabular-nums; }
.tx2-mx-n { min-width: 0; display: flex; align-items: baseline; gap: 6px; }
.tx2-mx-n b { font-size: 14px; font-weight: 750; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: #B5B3AA; }
.tx2-mx-n small { font-size: 11px; color: var(--tx2-ml); }
.tx2-mx-a { font-size: 13.5px; font-weight: 650; color: #B5B3AA; font-variant-numeric: tabular-nums; }
.tx2-mx-r { grid-column: 2 / -1; display: flex; align-items: center; gap: 8px; min-width: 0; visibility: hidden; }
.tx2-mx-r em { flex: none; font-style: normal; font-size: 11px; font-weight: 750; padding: 3px 7px; border-radius: 6px; }
.tx2-mx-r i { font-style: normal; font-size: 12.5px; color: var(--tx2-tl); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tx2-mx-row.is-done .tx2-mx-n b, .tx2-mx-row.is-done .tx2-mx-a { color: var(--tx2-tl); }
.tx2-mx-row.is-done.is-out .tx2-mx-a { color: #B23A2A; }
.tx2-mx-row.is-done .tx2-mx-r { visibility: visible; }
.tx2-mx-row.k-ok .tx2-mx-r em, .tx2-mx-legend .c-ok { background: #DDF6F2; color: #0E5E57; }
.tx2-mx-row.k-part .tx2-mx-r em, .tx2-mx-legend .c-part { background: #E3EEFF; color: #1F4E8C; }
.tx2-mx-row.k-amb .tx2-mx-r em, .tx2-mx-legend .c-amb { background: #FFF1D6; color: #7A4B00; }
.tx2-mx-row.k-no .tx2-mx-r em, .tx2-mx-legend .c-no { background: #EEEDE8; color: #6B6B64; }
.tx2-mx-row.is-now { animation: tx2-mxin .45s cubic-bezier(.2, .8, .2, 1); }
@keyframes tx2-mxin { from { transform: translateX(-8px); background: #EAF8F6; } to { transform: none; background: transparent; } }
.tx2-mx-legend { margin-top: 12px; display: flex; flex-wrap: wrap; gap: 6px; }
.tx2-mx-legend span { font-size: 11.5px; font-weight: 700; padding: 4px 8px; border-radius: 7px; }
.tx2-mx-foot { margin-top: 12px !important; font-size: 12.5px; line-height: 1.6; color: var(--tx2-ml); }
@media (min-width: 960px) { .tx2-mx { max-width: 640px; } }
