/* 3D-Druck nach Maß — на переменных темы oct_deals (светлая и тёмная тема) */
#wmdi-print3d, .p3d-demo {
	--p3d-radius: 12px;
	--p3d-accent: #F28C28;
	--p3d-text: var(--ds-dark-text-color, #00171F);
	--p3d-muted: var(--ds-secondary-text-color, #003459);
	--p3d-light: var(--ds-light-text-color, #9CA3AF);
	--p3d-card: var(--ds-white-color, #fff);
	--p3d-line: var(--ds-border-color, #F2F2F2);
	--p3d-primary: var(--ds-primary-color, #00A8E8);
	--p3d-soft: color-mix(in srgb, var(--p3d-primary) 8%, transparent);
	color: var(--p3d-text);
}
#wmdi-print3d main { display: flex; flex-direction: column; gap: 1.5rem; padding-bottom: 2.5rem; }
#wmdi-print3d h1 { font-size: clamp(1.75rem, 4vw, 2.6rem); font-weight: 700; margin: 0 0 .5rem; }
#wmdi-print3d h2 { font-size: clamp(1.3rem, 2.6vw, 1.75rem); font-weight: 600; margin: 0 0 1rem; }
.p3d-box { background: var(--p3d-card); border: 1px solid var(--p3d-line); border-radius: var(--p3d-radius); padding: 1.5rem; box-shadow: var(--ds-light-shadow); }
.p3d-muted { color: var(--p3d-light); font-size: .875rem; }
.p3d-h { display: block; font-size: .8125rem; font-weight: 500; color: var(--p3d-muted); text-transform: uppercase; letter-spacing: .03em; margin-bottom: .5rem; }
.p3d-link { background: none; border: 0; padding: 0; color: var(--p3d-primary); font-weight: 500; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }

/* ---------- hero ---------- */
.p3d-hero { padding-top: .5rem; }
.p3d-lead { font-size: 1.125rem; color: var(--p3d-muted); max-width: 46rem; margin: 0 0 1rem; }
.p3d-badges { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0; margin: 0; }
.p3d-badges li { padding: .375rem .875rem; border-radius: 999px; background: var(--p3d-soft); color: var(--p3d-muted); font-size: .875rem; font-weight: 500; }
.p3d-badges li.is-accent { background: color-mix(in srgb, var(--p3d-accent) 15%, transparent); color: #b45d0c; }
.dark-theme .p3d-badges li.is-accent { color: var(--p3d-accent); }


/* ---------- демо на всю ширину ---------- */
.p3d-hero-cta { margin: 1.25rem 0 0 !important; position: static !important; transform: none !important; width: auto !important; padding: .75rem 2rem !important; display: inline-block; cursor: pointer; }
.p3d-demo { position: relative; }
.p3d-demo-steps { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin: 0 0 .875rem; padding: 0; counter-reset: d; }
.p3d-demo-steps li { counter-increment: d; display: flex; align-items: center; gap: .4rem; padding: .3rem .85rem .3rem .3rem; border-radius: 999px; font-size: .9375rem; font-weight: 500; color: var(--p3d-light); background: var(--p3d-card); border: 1px solid var(--p3d-line); transition: all .35s; }
.p3d-demo-steps li::before { content: counter(d); width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: var(--p3d-line); color: var(--p3d-muted); font-size: .75rem; font-weight: 700; transition: all .35s; }
.p3d-demo-steps li.done { color: var(--p3d-muted); }
.p3d-demo-steps li.done::before { content: '✓'; background: color-mix(in srgb, #52BB38 25%, transparent); color: #2e7d1e; }
.p3d-demo-steps li.on { color: var(--p3d-text); border-color: var(--p3d-primary); box-shadow: 0 4px 14px color-mix(in srgb, var(--p3d-primary) 25%, transparent); }
.p3d-demo-steps li.on::before { background: var(--p3d-primary); color: #fff; }

.p3d-demo-stage { position: relative; display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); gap: 1rem; height: 460px; padding: 1rem; border-radius: 16px; background: var(--p3d-card); border: 1px solid var(--p3d-line); box-shadow: var(--ds-medium-shadow, 0 4px 20px rgba(37,38,39,.1)); overflow: hidden; }
.p3d-demo-badge { position: absolute; top: .75rem; right: .75rem; z-index: 7; padding: .15rem .65rem; border-radius: 999px; background: var(--p3d-accent); color: #fff; font-size: .6875rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.p3d-demo-view { position: relative; border-radius: 12px; overflow: hidden; background: radial-gradient(circle at 50% 35%, #eef5fa, #d5e2ec); }
.dark-theme .p3d-demo-view { background: radial-gradient(circle at 50% 35%, #2b3138, #15191d); }
.p3d-demo-view canvas { position: absolute; inset: 0; width: 100% !important; height: 100% !important; }
.p3d-demo-drop { position: absolute; inset: 1rem; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .5rem; border: 2px dashed color-mix(in srgb, var(--p3d-primary) 55%, transparent); border-radius: 10px; color: var(--p3d-primary); font-weight: 600; font-size: 1.125rem; background: color-mix(in srgb, #fff 55%, transparent); transition: opacity .4s, transform .4s; }
.p3d-demo-drop svg { width: 40px; height: 40px; fill: currentColor; }
.p3d-demo.is-loaded .p3d-demo-drop { opacity: 0; transform: scale(1.04); }
.p3d-demo-size, .p3d-demo-ok { position: absolute; left: .75rem; padding: .2rem .6rem; border-radius: 6px; background: rgba(255,255,255,.9); color: #00171F; font-size: .8125rem; font-weight: 600; opacity: 0; transition: opacity .4s .5s; }
.p3d-demo-size { top: .75rem; }
.p3d-demo-ok { bottom: .75rem; color: #2e7d1e; }
.p3d-demo.is-loaded .p3d-demo-size, .p3d-demo.is-loaded .p3d-demo-ok { opacity: 1; }

.p3d-demo-card { display: flex; flex-direction: column; gap: .5rem; padding: .25rem .25rem 0; font-size: .875rem; transition: opacity .4s, transform .4s; }
.p3d-demo-stage:not([data-scene="config"]) .p3d-demo-panel, .p3d-demo-stage:not([data-scene="print"]) .p3d-demo-prod { opacity: 0; transform: translateX(16px); pointer-events: none; position: absolute; right: 1rem; top: 1rem; width: calc((100% - 3rem) / 2.65); }
.p3d-demo-h { font-size: .75rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--p3d-muted); margin-top: .25rem; }
.p3d-demo-seg, .p3d-demo-tiers { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: .375rem; }
.p3d-demo-seg span, .p3d-demo-tiers span { padding: .45rem .25rem; border: 1px solid var(--p3d-line); border-radius: 8px; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 500; transition: all .25s; }
.p3d-demo-seg span.on { background: var(--p3d-primary); border-color: var(--p3d-primary); color: #fff; }
.p3d-demo-tiers span.on { border-color: var(--p3d-primary); box-shadow: inset 0 0 0 1px var(--p3d-primary); }
.p3d-demo-colors { display: flex; gap: .5rem; }
.p3d-demo-colors i { width: 28px; height: 28px; border-radius: 50%; border: 1px solid rgba(0,0,0,.15); transition: box-shadow .25s; }
.p3d-demo-colors i.on { box-shadow: 0 0 0 2px var(--p3d-card), 0 0 0 4px var(--p3d-primary); }
.p3d-demo-price { display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: 0 .5rem; margin-top: auto; padding: .75rem .9rem; border-radius: 10px; background: var(--p3d-soft); }
.p3d-demo-price small { color: var(--p3d-muted); font-weight: 500; }
.p3d-demo-price b { font-size: 1.75rem; text-align: right; font-variant-numeric: tabular-nums; }
.p3d-demo-piece { grid-column: 1 / -1; text-align: right; color: var(--p3d-muted); min-height: 1.2em; }
.p3d-demo-save { grid-column: 1 / -1; justify-self: end; font-style: normal; font-weight: 700; color: #fff; background: #2e9d3a; border-radius: 999px; padding: .05rem .6rem; transform: scale(0); transition: transform .35s cubic-bezier(.3,1.6,.5,1); }
.p3d-demo-save.on { transform: scale(1); }
.p3d-demo-cart { padding: .8rem; border-radius: 8px; background: var(--p3d-primary); color: #fff; font-weight: 600; text-align: center; transition: transform .15s, filter .15s; }
.p3d-demo .tap { transform: scale(.94); filter: brightness(.92); }

.p3d-demo-prod { justify-content: center; gap: .75rem; }
.p3d-demo-big { font-size: 1.5rem; }
.p3d-demo-layer { font-variant-numeric: tabular-nums; color: var(--p3d-muted); font-weight: 500; }
.p3d-demo-bar { height: 10px; border-radius: 5px; background: var(--p3d-soft); overflow: hidden; }
.p3d-demo-bar i { display: block; height: 100%; width: 0; border-radius: 5px; background: linear-gradient(90deg, var(--p3d-accent), var(--p3d-primary)); }
.p3d-demo-qc { padding: .5rem .75rem; border-radius: 8px; background: color-mix(in srgb, #52BB38 16%, transparent); color: #2e6b1e; font-weight: 600; opacity: 0; transform: translateY(6px); transition: all .4s; }
.p3d-demo.is-qc .p3d-demo-qc { opacity: 1; transform: none; }

.p3d-demo-file { position: absolute; left: 1.75rem; bottom: 1.75rem; z-index: 4; display: flex; align-items: center; gap: .4rem; padding: .5rem .8rem; border-radius: 8px; background: var(--p3d-card); box-shadow: 0 8px 22px rgba(0,23,31,.2); font-size: .9375rem; font-weight: 600; transition: transform 1s cubic-bezier(.5,0,.3,1), opacity .4s 1s; }
.p3d-demo-file svg { width: 20px; height: 20px; fill: var(--p3d-primary); }
.p3d-demo-file.in { transform: translate(180px, -170px) scale(.85); opacity: 0; }
.p3d-demo.is-loaded .p3d-demo-file { opacity: 0; }
.p3d-demo-done { position: absolute; inset: 0; z-index: 6; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .75rem; padding: 1rem; text-align: center; font-size: 1.25rem; font-weight: 700; background: color-mix(in srgb, var(--p3d-card) 90%, transparent); opacity: 0; pointer-events: none; transition: opacity .35s; }
.p3d-demo-done b { width: 64px; height: 64px; border-radius: 50%; display: grid; place-items: center; background: #2e9d3a; color: #fff; font-size: 2rem; transform: scale(0); transition: transform .45s .1s cubic-bezier(.3,1.6,.5,1); }
.p3d-demo.is-done .p3d-demo-done { opacity: 1; }
.p3d-demo.is-done .p3d-demo-done b { transform: scale(1); }

/* доставка */
.p3d-demo-ship, .p3d-demo-you { position: absolute; inset: 0; z-index: 5; display: flex; flex-direction: column; align-items: center; justify-content: center; background: var(--p3d-card); opacity: 0; pointer-events: none; transition: opacity .5s; }
.p3d-demo-stage[data-scene="ship"] .p3d-demo-ship, .p3d-demo-stage[data-scene="you"] .p3d-demo-you { opacity: 1; pointer-events: auto; }
.p3d-demo-ship svg { width: min(100%, 820px); height: auto; }
.p3d-demo-ship .road { fill: #c9d1d9; } .p3d-demo-ship .dash rect { fill: #fff; }
.p3d-demo-ship .wall { fill: #f4efe6; stroke: #b8a98f; stroke-width: 3; } .p3d-demo-ship .roof { fill: none; stroke: #c8102e; stroke-width: 10; stroke-linejoin: round; stroke-linecap: round; } .p3d-demo-ship .door { fill: #8a6a4a; }
.p3d-demo-ship .carton { fill: #d9a066; stroke: #a8753f; stroke-width: 3; } .p3d-demo-ship .tape { stroke: #f4d7a8; stroke-width: 6; }
.p3d-demo-ship .body { fill: var(--p3d-primary); } .p3d-demo-ship .cab { fill: #0a86b8; } .p3d-demo-ship .window { fill: #dff3fb; }
.p3d-demo-ship .wheel { fill: #2b3440; stroke: #9aa6b2; stroke-width: 5; } .p3d-demo-ship .logo { fill: #fff; font: 700 24px Arial, sans-serif; }
.p3d-demo-ship .tick { fill: #2e9d3a; opacity: 0; } .p3d-demo-ship .tickmark { fill: none; stroke: #fff; stroke-width: 5; stroke-linecap: round; stroke-linejoin: round; opacity: 0; }
.p3d-demo-ship .truck { transform: translate(-260px, 150px); }
.p3d-demo-ship .box { transform: translate(150px, 160px); transform-box: fill-box; }
.p3d-demo.is-shipped .truck { animation: p3d-truck 4.4s cubic-bezier(.45,0,.3,1) forwards; }
.p3d-demo.is-shipped .box { animation: p3d-box 4.4s ease forwards; }
.p3d-demo.is-shipped .tick, .p3d-demo.is-shipped .tickmark { animation: p3d-tick 4.4s forwards; }
.p3d-demo.is-shipped .dash { animation: p3d-road .5s linear infinite; }
@keyframes p3d-truck { 0% { transform: translate(-260px, 150px); } 28%, 44% { transform: translate(-10px, 150px); } 100% { transform: translate(400px, 150px); } }
@keyframes p3d-box { 0%, 30% { transform: translate(150px, 160px); opacity: 1; } 42% { transform: translate(90px, 170px) scale(.6); opacity: 0; } 100% { transform: translate(90px, 170px) scale(.6); opacity: 0; } }
@keyframes p3d-tick { 0%, 88% { opacity: 0; } 100% { opacity: 1; } }
@keyframes p3d-road { to { transform: translateX(-100px); } }
.p3d-demo-shiptext { display: flex; flex-direction: column; align-items: center; gap: .25rem; font-size: 1.25rem; min-height: 4rem; }
.p3d-demo-shiptext b { transition: opacity .4s; }
.p3d-demo-shiptext .s2 { position: absolute; opacity: 0; color: #2e7d1e; }
.p3d-demo-shiptext small { color: var(--p3d-muted); font-size: .9375rem; margin-top: 1.75rem; }
.p3d-demo.is-shipped .p3d-demo-shiptext .s1 { animation: p3d-hide 4.4s forwards; }
.p3d-demo.is-shipped .p3d-demo-shiptext .s2 { animation: p3d-tick 4.4s forwards; }
@keyframes p3d-hide { 0%, 85% { opacity: 1; } 100% { opacity: 0; } }

/* финал: теперь вы */
.p3d-demo-you { gap: 1.25rem; padding: 1.5rem; text-align: center; background: linear-gradient(135deg, color-mix(in srgb, var(--p3d-primary) 10%, var(--p3d-card)), var(--p3d-card)); }
.p3d-demo-you b { font-size: clamp(1.4rem, 3vw, 2rem); max-width: 34rem; }
.p3d-demo-youbtn { margin: 0 !important; position: static !important; transform: none !important; width: auto !important; padding: 1rem 2.75rem !important; font-size: 1.0625rem; cursor: pointer; box-shadow: 0 8px 22px color-mix(in srgb, var(--p3d-primary) 35%, transparent); }
.p3d-demo-arrow { font-size: 2rem; color: var(--p3d-primary); animation: p3d-bounce 1.2s ease-in-out infinite; }
@keyframes p3d-bounce { 50% { transform: translateY(8px); } }
.p3d-app.is-hint .p3d-drop { animation: p3d-pulse 1.2s ease-in-out 2; }
@keyframes p3d-pulse { 50% { background: color-mix(in srgb, var(--p3d-primary) 14%, transparent); border-color: var(--p3d-primary); } }

.p3d-demo-cursor { position: absolute; left: 0; top: 0; z-index: 8; width: 26px; height: 26px; fill: #00171F; stroke: #fff; stroke-width: 1.4; filter: drop-shadow(0 2px 3px rgba(0,0,0,.3)); transition: transform .75s cubic-bezier(.45,0,.25,1); pointer-events: none; }
.p3d-demo-cursor.press { scale: .82; }
.p3d-demo.is-static .p3d-demo-cursor, .p3d-demo.is-static .p3d-demo-file { display: none; }

@media (max-width: 991.98px) {
	.p3d-demo-stage { grid-template-columns: 1fr; grid-template-rows: 1fr auto; height: auto; min-height: 560px; }
	.p3d-demo-view { min-height: 280px; }
	.p3d-demo-stage:not([data-scene="config"]) .p3d-demo-panel, .p3d-demo-stage:not([data-scene="print"]) .p3d-demo-prod { left: 1rem; right: 1rem; top: auto; bottom: 1rem; width: auto; transform: translateY(16px); }
	.p3d-demo-file.in { transform: translate(90px, -120px) scale(.85); }
}
@media (max-width: 575.98px) {
	.p3d-demo-stage { padding: .625rem; min-height: 540px; }
	.p3d-demo-view { min-height: 230px; }
	.p3d-demo-steps li { font-size: .75rem; padding-right: .55rem; }
	.p3d-demo-steps li::before { width: 20px; height: 20px; }
	.p3d-demo-card { font-size: .8125rem; }
	.p3d-demo-price b { font-size: 1.375rem; }
	.p3d-demo-tiers span:nth-child(4) { display: none; }
	.p3d-demo-file { left: 1rem; bottom: auto; top: 200px; }
}


/* ---------- демо узкой полосой в шапке ---------- */
.p3d-demo--strip { margin-top: .25rem; }
.p3d-demo--strip .p3d-demo-stage { grid-template-columns: 148px 250px minmax(0, 1fr); grid-template-rows: 1fr; height: 156px; min-height: 0; padding: .5rem .75rem .5rem .5rem; gap: .875rem; border-radius: 14px; align-items: stretch; }
.p3d-demo--strip .p3d-demo-badge { top: .4rem; right: .5rem; font-size: .5625rem; padding: .05rem .45rem; }
.p3d-demo--strip .p3d-demo-steps { flex-direction: column; flex-wrap: nowrap; justify-content: center; align-items: stretch; gap: .1rem; margin: 0; }
.p3d-demo--strip .p3d-demo-steps li { font-size: .75rem; padding: .1rem .4rem .1rem .15rem; border: 0; background: none; box-shadow: none; gap: .35rem; }
.p3d-demo--strip .p3d-demo-steps li::before { width: 18px; height: 18px; font-size: .625rem; }
.p3d-demo--strip .p3d-demo-steps li.on { background: var(--p3d-soft); box-shadow: none; }
.p3d-demo--strip .p3d-demo-view { grid-column: 2; grid-row: 1; border-radius: 10px; min-height: 0; }
.p3d-demo--strip .p3d-demo-drop { inset: .4rem; font-size: .75rem; gap: .2rem; border-width: 1.5px; }
.p3d-demo--strip .p3d-demo-drop svg { width: 22px; height: 22px; }
.p3d-demo--strip .p3d-demo-size, .p3d-demo--strip .p3d-demo-ok { font-size: .625rem; left: .35rem; padding: .05rem .35rem; }
.p3d-demo--strip .p3d-demo-size { top: .35rem; } .p3d-demo--strip .p3d-demo-ok { bottom: .35rem; }
.p3d-demo--strip .p3d-demo-card, .p3d-demo--strip .p3d-demo-stage:not([data-scene="config"]) .p3d-demo-panel, .p3d-demo--strip .p3d-demo-stage:not([data-scene="print"]) .p3d-demo-prod { grid-column: 3; grid-row: 1; position: static; width: auto; padding: 0; }
.p3d-demo--strip .p3d-demo-h { display: none; }
/* настройка — в одну строку */
.p3d-demo--strip .p3d-demo-panel { display: grid; grid-template-columns: minmax(0, 1.25fr) auto minmax(0, 1.2fr) minmax(130px, .9fr) minmax(130px, .8fr); align-items: center; gap: .75rem; font-size: .8125rem; }
.p3d-demo--strip .p3d-demo-seg, .p3d-demo--strip .p3d-demo-tiers { gap: .25rem; }
.p3d-demo--strip .p3d-demo-seg span, .p3d-demo--strip .p3d-demo-tiers span { padding: .35rem .2rem; }
.p3d-demo--strip .p3d-demo-tiers span:nth-child(4) { display: none; }
.p3d-demo--strip .p3d-demo-colors { gap: .3rem; }
.p3d-demo--strip .p3d-demo-colors i { width: 22px; height: 22px; }
.p3d-demo--strip .p3d-demo-price { margin: 0; padding: .4rem .6rem; }
.p3d-demo--strip .p3d-demo-price b { font-size: 1.25rem; }
.p3d-demo--strip .p3d-demo-piece { font-size: .6875rem; min-height: 0; }
.p3d-demo--strip .p3d-demo-save { font-size: .6875rem; }
.p3d-demo--strip .p3d-demo-cart { padding: .65rem .5rem; white-space: nowrap; }
/* печать — в одну строку */
.p3d-demo--strip .p3d-demo-prod { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-rows: auto auto; align-items: center; gap: .25rem 1rem; }
.p3d-demo--strip .p3d-demo-prod .p3d-demo-h { display: block; grid-column: 1 / -1; margin: 0; }
.p3d-demo--strip .p3d-demo-big { font-size: 1.125rem; white-space: nowrap; }
.p3d-demo--strip .p3d-demo-bar { grid-column: 2; }
.p3d-demo--strip .p3d-demo-layer { grid-column: 3; grid-row: 2; font-size: .8125rem; }
.p3d-demo--strip .p3d-demo-qc { grid-column: 1 / -1; padding: .3rem .6rem; font-size: .8125rem; justify-self: start; }
/* доставка и финал — во всю полосу */
.p3d-demo--strip .p3d-demo-ship { flex-direction: row; gap: 1.5rem; padding: 0 1rem; }
.p3d-demo--strip .p3d-demo-ship svg { width: auto; height: 100%; max-width: 62%; }
.p3d-demo--strip .p3d-demo-shiptext { position: relative; align-items: flex-start; min-height: 0; font-size: 1.0625rem; }
.p3d-demo--strip .p3d-demo-shiptext .s2 { top: 0; left: 0; }
.p3d-demo--strip .p3d-demo-shiptext small { margin-top: 1.6rem; font-size: .8125rem; }
.p3d-demo--strip .p3d-demo-you { flex-direction: row; gap: 1.25rem; padding: 0 1.5rem; }
.p3d-demo--strip .p3d-demo-you b { font-size: 1.125rem; max-width: 30rem; text-align: left; }
.p3d-demo--strip .p3d-demo-youbtn { padding: .75rem 1.75rem !important; font-size: .9375rem; white-space: nowrap; }
.p3d-demo--strip .p3d-demo-arrow { font-size: 1.5rem; }
.p3d-demo--strip .p3d-demo-done { flex-direction: row; font-size: 1.0625rem; gap: .75rem; }
.p3d-demo--strip .p3d-demo-done b { width: 44px; height: 44px; font-size: 1.4rem; }
.p3d-demo--strip .p3d-demo-file { left: 172px; bottom: .9rem; top: auto; padding: .3rem .55rem; font-size: .75rem; }
.p3d-demo--strip .p3d-demo-file svg { width: 15px; height: 15px; }
.p3d-demo--strip .p3d-demo-file.in { transform: translate(70px, -55px) scale(.8); }
.p3d-demo--strip .p3d-demo-cursor { width: 20px; height: 20px; }
@media (max-width: 1199.98px) {
	.p3d-demo--strip .p3d-demo-stage { grid-template-columns: 130px 210px minmax(0, 1fr); }
	.p3d-demo--strip .p3d-demo-panel { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); grid-template-rows: auto auto; gap: .45rem .6rem; }
	.p3d-demo--strip .p3d-demo-price { grid-column: 1 / 3; }
	.p3d-demo--strip .p3d-demo-file { left: 150px; }
}
@media (max-width: 767.98px) {
	.p3d-demo--strip .p3d-demo-stage { grid-template-columns: 42% minmax(0, 1fr); height: 196px; padding: .4rem; gap: .5rem; }
	.p3d-demo--strip .p3d-demo-steps { display: none; }
	.p3d-demo--strip .p3d-demo-view { grid-column: 1; }
	.p3d-demo--strip .p3d-demo-card, .p3d-demo--strip .p3d-demo-stage:not([data-scene="config"]) .p3d-demo-panel, .p3d-demo--strip .p3d-demo-stage:not([data-scene="print"]) .p3d-demo-prod { grid-column: 2; }
	.p3d-demo--strip .p3d-demo-panel { grid-template-columns: 1fr 1fr; grid-template-rows: auto auto auto auto; gap: .3rem; font-size: .6875rem; align-content: center; }
	.p3d-demo--strip .p3d-demo-seg { grid-column: 1 / -1; }
	.p3d-demo--strip .p3d-demo-colors { grid-column: 1 / -1; }
	.p3d-demo--strip .p3d-demo-colors i { width: 18px; height: 18px; }
	.p3d-demo--strip .p3d-demo-tiers { grid-column: 1 / -1; }
	.p3d-demo--strip .p3d-demo-price { grid-column: 1; padding: .25rem .4rem; }
	.p3d-demo--strip .p3d-demo-price small, .p3d-demo--strip .p3d-demo-piece { display: none; }
	.p3d-demo--strip .p3d-demo-price b { font-size: 1rem; }
	.p3d-demo--strip .p3d-demo-save { grid-column: auto; }
	.p3d-demo--strip .p3d-demo-cart { padding: .45rem .3rem; font-size: .6875rem; white-space: normal; }
	.p3d-demo--strip .p3d-demo-prod { grid-template-columns: 1fr; gap: .3rem; }
	.p3d-demo--strip .p3d-demo-bar, .p3d-demo--strip .p3d-demo-layer { grid-column: 1; grid-row: auto; }
	.p3d-demo--strip .p3d-demo-big { font-size: .9375rem; }
	.p3d-demo--strip .p3d-demo-ship { flex-direction: column; gap: .25rem; }
	.p3d-demo--strip .p3d-demo-ship svg { max-width: 100%; height: 60%; }
	.p3d-demo--strip .p3d-demo-shiptext { align-items: center; font-size: .9375rem; }
	.p3d-demo--strip .p3d-demo-shiptext .s2 { left: 50%; transform: translateX(-50%); white-space: nowrap; }
	.p3d-demo--strip .p3d-demo-shiptext small { margin-top: 1.4rem; }
	.p3d-demo--strip .p3d-demo-you { flex-direction: column; gap: .6rem; text-align: center; }
	.p3d-demo--strip .p3d-demo-you b { font-size: .9375rem; text-align: center; }
	.p3d-demo--strip .p3d-demo-file { left: .9rem; bottom: .8rem; }
	.p3d-demo--strip .p3d-demo-file.in { transform: translate(40px, -50px) scale(.8); }
	.p3d-demo--strip .p3d-demo-done { flex-direction: column; font-size: .9375rem; }
}


/* ---------- баннер на главной (вместо слайдшоу): высокая версия ---------- */
.p3d-demo--home { margin: .5rem 0 1.75rem; color: var(--ds-dark-text-color, #00171F); }
.p3d-demo--home .p3d-demo-stage {
	grid-template-columns: minmax(260px, .95fr) minmax(0, 1.4fr) minmax(280px, 1fr);
	grid-template-rows: 1fr auto;
	grid-template-areas: "intro view card" "steps view card";
	height: 480px; padding: 1.5rem; gap: 1rem 1.5rem; border-radius: 20px;
	background: linear-gradient(110deg, color-mix(in srgb, var(--p3d-primary) 10%, var(--p3d-card)) 0%, var(--p3d-card) 42%);
}
.p3d-demo-intro { grid-area: intro; display: flex; flex-direction: column; justify-content: center; gap: .75rem; }
.p3d-demo-title { font-size: clamp(1.75rem, 3vw, 2.6rem); font-weight: 700; line-height: 1.1; }
.p3d-demo-lead { color: var(--p3d-muted); font-size: 1.0625rem; line-height: 1.45; }
.p3d-demo-introbtn { align-self: flex-start; margin: .5rem 0 0 !important; position: static !important; transform: none !important; width: auto !important; padding: .9rem 2.25rem !important; font-size: 1rem; box-shadow: 0 8px 22px color-mix(in srgb, var(--p3d-primary) 30%, transparent); }
.p3d-demo--home .p3d-demo-steps { grid-area: steps; flex-direction: column; flex-wrap: nowrap; justify-content: flex-end; align-items: flex-start; gap: .2rem; margin: 0; }
.p3d-demo--home .p3d-demo-steps li { font-size: .875rem; padding: .15rem .6rem .15rem .2rem; border: 0; background: none; box-shadow: none; }
.p3d-demo--home .p3d-demo-steps li.on { background: var(--p3d-soft); }
.p3d-demo--home .p3d-demo-view { grid-area: view; border-radius: 14px; }
.p3d-demo--home .p3d-demo-card, .p3d-demo--home .p3d-demo-stage:not([data-scene="config"]) .p3d-demo-panel, .p3d-demo--home .p3d-demo-stage:not([data-scene="print"]) .p3d-demo-prod { grid-area: card; position: static; width: auto; }
.p3d-demo--home .p3d-demo-card { justify-content: center; }
.p3d-demo--home .p3d-demo-panel .p3d-demo-price { margin-top: .5rem; }
.p3d-demo--home .p3d-demo-file { left: calc(1.5rem + 26% + 1.5rem); bottom: 2.25rem; }
.p3d-demo--home .p3d-demo-file.in { transform: translate(150px, -150px) scale(.85); }
.p3d-demo--home .p3d-demo-arrow { display: none; }
.p3d-demo--home .p3d-demo-you b { font-size: clamp(1.5rem, 3vw, 2.2rem); }
@media (max-width: 1199.98px) {
	.p3d-demo--home .p3d-demo-stage { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); grid-template-rows: auto auto; grid-template-areas: "intro view" "card card"; height: auto; min-height: 0; }
	.p3d-demo--home .p3d-demo-steps { display: none; }
	.p3d-demo--home .p3d-demo-view { min-height: 300px; }
	.p3d-demo--home .p3d-demo-panel { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1.2fr); grid-template-rows: auto auto; align-items: center; gap: .6rem .75rem; }
	.p3d-demo--home .p3d-demo-panel .p3d-demo-price { grid-column: 1 / 3; }
	.p3d-demo--home .p3d-demo-tiers span:nth-child(4) { display: none; }
	.p3d-demo--home .p3d-demo-panel .p3d-demo-h { display: none; }
	.p3d-demo--home .p3d-demo-panel .p3d-demo-price { margin: 0; }
	.p3d-demo--home .p3d-demo-card { min-height: 92px; }
	.p3d-demo--home .p3d-demo-file { left: 52%; top: 1.5rem; bottom: auto; }
	.p3d-demo--home .p3d-demo-file.in { transform: translate(60px, 80px) scale(.85); }
}
@media (max-width: 767.98px) {
	.p3d-demo--home .p3d-demo-stage { grid-template-columns: 1fr; grid-template-areas: "intro" "view" "card"; padding: 1rem; gap: .875rem; }
	.p3d-demo--home .p3d-demo-title { font-size: 1.6rem; }
	.p3d-demo--home .p3d-demo-lead { font-size: .9375rem; }
	.p3d-demo--home .p3d-demo-view { min-height: 240px; }
	.p3d-demo--home .p3d-demo-panel { grid-template-columns: 1fr 1fr; gap: .4rem; font-size: .8125rem; }
	.p3d-demo--home .p3d-demo-seg, .p3d-demo--home .p3d-demo-colors, .p3d-demo--home .p3d-demo-tiers { grid-column: 1 / -1; }
	.p3d-demo--home .p3d-demo-tiers span:nth-child(4) { display: none; }
	.p3d-demo--home .p3d-demo-card { min-height: 170px; }
	.p3d-demo--home .p3d-demo-file { left: 1.5rem; top: auto; bottom: 45%; }
	.p3d-demo--home .p3d-demo-file.in { transform: translate(60px, -60px) scale(.85); }
	.p3d-demo--home .p3d-demo-ship svg { max-width: 100%; height: auto; }
	.p3d-demo--home .p3d-demo-you { padding: 1rem; }
}

/* ---------- калькулятор ---------- */
.p3d-app { position: relative; padding: 0; overflow: hidden; }
.p3d-app.is-drag::after { content: ''; position: absolute; inset: 0; border: 3px dashed var(--p3d-primary); border-radius: var(--p3d-radius); background: var(--p3d-soft); pointer-events: none; z-index: 5; }
.p3d-drop { display: flex; flex-direction: column; align-items: center; gap: .5rem; padding: 3.5rem 1.5rem; margin: 0; text-align: center; cursor: pointer; border: 2px dashed color-mix(in srgb, var(--p3d-primary) 45%, transparent); border-radius: var(--p3d-radius); transition: background var(--ds-main-transition); }
.p3d-drop:hover { background: var(--p3d-soft); }
.p3d-drop-icon { width: 64px; height: 64px; fill: var(--p3d-primary); margin-bottom: .5rem; }
.p3d-drop-title { font-size: 1.5rem; font-weight: 600; }
.p3d-drop-or { color: var(--p3d-light); }
.p3d-drop-btn { margin: .25rem 0 .5rem !important; padding: .75rem 2.5rem !important; position: static !important; transform: none !important; width: auto !important; }
.p3d-drop-formats { color: var(--p3d-muted); font-size: .9375rem; }
.p3d-drop-privacy { color: var(--p3d-light); font-size: .8125rem; }
.p3d-app:not(.is-empty) .p3d-drop { display: none; }
/* пусто: слева вместо предпросмотра — загрузка; настройки справа видны сразу */
.p3d-app.is-empty .p3d-viewer, .p3d-app.is-empty .p3d-parts { display: none; }
.p3d-viewer-col .p3d-drop { aspect-ratio: 4 / 3; justify-content: center; position: sticky; top: 90px; padding: 2rem 1.25rem; border-radius: 10px; background: radial-gradient(circle at 50% 35%, color-mix(in srgb, var(--p3d-primary) 6%, var(--p3d-card)), var(--p3d-card)); }
.p3d-app.is-empty .p3d-config-col .p3d-seg, .p3d-app.is-empty .p3d-config-col .p3d-swatches { opacity: 1; }
.p3d-app.is-empty .p3d-tiers, .p3d-app.is-empty .p3d-price-meta { opacity: .45; }
.p3d-empty-hint { display: none; padding: .75rem 1rem; border-radius: 10px; background: var(--p3d-soft); color: var(--p3d-muted); font-weight: 500; }
.p3d-app.is-empty .p3d-empty-hint { display: block; }

.p3d-work { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); }
.p3d-viewer-col { padding: 1.25rem; border-right: 1px solid var(--p3d-line); display: flex; flex-direction: column; gap: 1rem; }
.p3d-config-col { padding: 1.25rem 1.5rem; display: flex; flex-direction: column; gap: 1.125rem; }

.p3d-viewer { position: relative; aspect-ratio: 4 / 3; border-radius: 10px; overflow: hidden; background: radial-gradient(circle at 50% 35%, #eef5fa, #d5e2ec); touch-action: none; }
.dark-theme .p3d-viewer { background: radial-gradient(circle at 50% 35%, #2b3138, #15191d); }
.p3d-viewer canvas { width: 100% !important; height: 100% !important; display: block; cursor: grab; }
.p3d-viewer canvas:active { cursor: grabbing; }
.p3d-viewer-size, .p3d-viewer-status { position: absolute; left: .75rem; padding: .25rem .625rem; border-radius: 6px; background: rgba(255, 255, 255, .85); color: #00171F; font-size: .8125rem; font-weight: 500; pointer-events: none; }
.p3d-viewer-size { top: .75rem; }
.p3d-viewer-size:empty, .p3d-viewer-status:empty { display: none; }
.p3d-viewer-status { bottom: .75rem; }
.p3d-viewer-status.is-ready { color: #2e7d1e; }

.p3d-parts-head { display: flex; justify-content: space-between; align-items: center; }
.p3d-parts-head .p3d-h { margin: 0; }
.p3d-add { color: var(--p3d-primary); font-weight: 500; cursor: pointer; margin: 0; }
#p3d-part-list { list-style: none; padding: 0; margin: .5rem 0 0; display: flex; flex-direction: column; gap: .375rem; }
.p3d-part { display: flex; align-items: center; gap: .75rem; padding: .5rem; border: 1px solid var(--p3d-line); border-radius: 10px; cursor: pointer; transition: border-color var(--ds-main-transition); }
.p3d-part:hover { border-color: color-mix(in srgb, var(--p3d-primary) 40%, transparent); }
.p3d-part.is-active { border-color: var(--p3d-primary); background: var(--p3d-soft); }
.p3d-part.is-error .p3d-part-info { color: var(--ds-red-color); }
.p3d-part-thumb { flex: 0 0 48px; height: 48px; border-radius: 8px; background: #e8eff5; overflow: hidden; }
.p3d-part-thumb img { width: 100%; height: 100%; object-fit: contain; }
.p3d-part-body { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.p3d-part-name { font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.p3d-part-info { font-size: .8125rem; color: var(--p3d-muted); }
.p3d-part-remove { flex: 0 0 32px; height: 32px; border: 0; background: none; color: var(--p3d-light); font-size: 1.375rem; line-height: 1; border-radius: 6px; cursor: pointer; }
.p3d-part-remove:hover { background: var(--p3d-soft); color: var(--ds-red-color); }

.p3d-alert { padding: .75rem 1rem; border-radius: 10px; background: color-mix(in srgb, var(--ds-yellow-color, #FBC756) 22%, transparent); font-size: .9375rem; line-height: 1.45; }
.p3d-alert.is-error { background: var(--ds-error-bg-color, #FFEEF5); color: #a3124c; }
.p3d-alert .p3d-link { margin-top: .375rem; display: inline-block; }

.p3d-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.p3d-seg { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: .375rem; }
.p3d-seg-btn { min-width: 0; display: flex; flex-direction: column; align-items: center; padding: .5rem .25rem; border: 1px solid var(--p3d-line); border-radius: 8px; background: var(--p3d-card); color: var(--p3d-text); font-weight: 500; white-space: nowrap; cursor: pointer; transition: all var(--ds-main-transition); }
.p3d-seg-btn small { font-size: .6875rem; font-weight: 400; color: var(--p3d-light); }
.p3d-seg-btn:hover { border-color: var(--p3d-primary); }
.p3d-seg-btn.is-active { border-color: var(--p3d-primary); background: var(--p3d-primary); color: #fff; }
.p3d-seg-btn.is-active small { color: rgba(255, 255, 255, .85); }

.p3d-swatches { display: flex; flex-wrap: wrap; gap: .5rem; }
.p3d-swatch { width: 34px; height: 34px; border-radius: 50%; border: 1px solid rgba(0, 0, 0, .15); cursor: pointer; box-shadow: 0 0 0 0 var(--p3d-primary); transition: box-shadow var(--ds-main-transition); }
.p3d-swatch.is-active { box-shadow: 0 0 0 2px var(--p3d-card), 0 0 0 4px var(--p3d-primary); }
.p3d-color-slot { display: flex; align-items: center; gap: .75rem; margin-bottom: .375rem; }
.p3d-slot-n { flex: 0 0 22px; height: 22px; border-radius: 50%; background: var(--p3d-soft); color: var(--p3d-muted); font-size: .75rem; font-weight: 600; display: grid; place-items: center; }

.p3d-stepper { display: flex; align-items: stretch; border: 1px solid var(--p3d-line); border-radius: 8px; overflow: hidden; height: 42px; }
.p3d-stepper button { flex: 0 0 42px; border: 0; background: var(--p3d-soft); color: var(--p3d-text); font-size: 1.25rem; cursor: pointer; }
.p3d-stepper input { flex: 1; min-width: 0; border: 0; text-align: center; font-weight: 600; font-size: 1rem; background: var(--p3d-card); color: var(--p3d-text); -moz-appearance: textfield; }
.p3d-stepper input::-webkit-outer-spin-button, .p3d-stepper input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.p3d-scale span { display: grid; place-items: center; padding: 0 .875rem; background: var(--p3d-soft); color: var(--p3d-muted); }
.p3d-units { font-size: .875rem; color: var(--p3d-muted); margin-top: -.5rem; }
.p3d-units button { border: 1px solid var(--p3d-line); background: var(--p3d-card); border-radius: 6px; padding: .125rem .625rem; margin-left: .25rem; cursor: pointer; color: var(--p3d-text); }

.p3d-check { display: flex; gap: .625rem; align-items: center; cursor: pointer; margin: 0; }
.p3d-check input { width: 18px; height: 18px; accent-color: var(--p3d-primary); }

.p3d-price { padding: 1rem 1.125rem; border-radius: 10px; background: var(--p3d-soft); }
.p3d-price-main { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.p3d-price-label { font-weight: 500; color: var(--p3d-muted); }
.p3d-price-total { font-size: 2rem; font-weight: 700; color: var(--p3d-text); font-variant-numeric: tabular-nums; }
.p3d-price-total.is-note { font-size: .9375rem; font-weight: 600; color: var(--p3d-primary); text-align: right; line-height: 1.35; max-width: 70%; }
.p3d-price-sub { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; font-weight: 500; }
.p3d-price-sub:empty { display: none; }
.p3d-saving { color: #2e7d1e; }
.dark-theme .p3d-saving { color: var(--ds-green-color); }
.p3d-price-meta, .p3d-price-tax { font-size: .8125rem; color: var(--p3d-light); }
.p3d-price-all { margin-top: .5rem; padding-top: .5rem; border-top: 1px solid color-mix(in srgb, var(--p3d-primary) 20%, transparent); font-weight: 600; }
.p3d-price-min { margin-top: .375rem; font-size: .8125rem; color: var(--p3d-muted); }

.p3d-tiers .p3d-h { margin-bottom: .375rem; }
.p3d-tier-list { display: grid; grid-template-columns: repeat(5, 1fr); gap: .375rem; }
.p3d-tier { display: flex; flex-direction: column; align-items: center; padding: .5rem .25rem; border: 1px solid var(--p3d-line); border-radius: 8px; background: var(--p3d-card); color: var(--p3d-text); cursor: pointer; font-size: .75rem; transition: border-color var(--ds-main-transition); }
.p3d-tier b { font-size: .875rem; font-variant-numeric: tabular-nums; }
.p3d-tier em { font-style: normal; color: #2e7d1e; font-weight: 600; }
.p3d-tier:hover { border-color: var(--p3d-primary); }
.p3d-tier.is-active { border-color: var(--p3d-primary); box-shadow: inset 0 0 0 1px var(--p3d-primary); }

.p3d-actions { display: flex; flex-wrap: wrap; gap: .625rem; }
.p3d-actions .button { flex: 1 1 200px; height: 48px; margin: 0 !important; position: static !important; transform: none !important; width: auto !important; max-width: none !important; padding: 0 1rem !important; }
.p3d-actions .button:disabled { opacity: .45; cursor: not-allowed; }
.p3d-check-hint { font-size: .8125rem; color: var(--p3d-light); margin: -.5rem 0 0; }
.p3d-exception { font-size: .8125rem; color: var(--p3d-muted); margin: -.25rem 0 0; padding-left: .75rem; border-left: 3px solid color-mix(in srgb, var(--p3d-primary) 40%, transparent); }
.p3d-alert.is-info { background: var(--p3d-soft); }
.p3d-legal { font-size: .75rem; color: var(--p3d-light); margin: -.75rem 0 0; }

/* ---------- формы заявок ---------- */
.p3d-form { display: flex; flex-direction: column; gap: .75rem; padding: 1rem 1.125rem; border-radius: 10px; border: 1px solid color-mix(in srgb, var(--p3d-primary) 35%, transparent); }
.p3d-form[hidden], .p3d-form [hidden] { display: none !important; }
.p3d-form-title { font-size: 1.0625rem; }
.p3d-form .p3d-muted { margin: -.375rem 0 0; }
.p3d-row > * { min-width: 0; }
.p3d-form input:not([type=file]), .p3d-form textarea { width: 100%; box-sizing: border-box; }
.p3d-form label { display: flex; flex-direction: column; gap: .25rem; font-size: .8125rem; font-weight: 500; color: var(--p3d-muted); margin: 0; }
.p3d-form input:not([type=file]), .p3d-form textarea { border: 1px solid var(--p3d-line); border-radius: 8px; padding: .5rem .75rem; font-size: 1rem; background: var(--p3d-card); color: var(--p3d-text); font-weight: 400; }
.p3d-form input:focus, .p3d-form textarea:focus { outline: 2px solid color-mix(in srgb, var(--p3d-primary) 50%, transparent); border-color: var(--p3d-primary); }
.p3d-form .button { margin: 0 !important; position: static !important; transform: none !important; width: auto !important; max-width: none !important; height: 46px; padding: 0 2rem !important; align-self: flex-start; }
.p3d-form-error { padding: .625rem .875rem; border-radius: 8px; background: var(--ds-error-bg-color, #FFEEF5); color: #a3124c; font-size: .9rem; }
.p3d-form-done { padding: .875rem 1rem; border-radius: 10px; background: color-mix(in srgb, var(--ds-green-color, #52BB38) 14%, transparent); color: #2e6b1e; font-weight: 500; line-height: 1.45; }
.p3d-files input { font-size: .875rem; color: var(--p3d-text); }
.p3d-cad-grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 1rem; align-items: start; }

/* ---------- предложение ---------- */
.p3d-offer { border-color: var(--p3d-primary); }
.p3d-offer h2 { margin-bottom: .75rem; }
.p3d-offer-items { list-style: none; padding: 0; margin: 0 0 1rem; display: flex; flex-direction: column; gap: .5rem; }
.p3d-offer-items li { display: flex; align-items: center; gap: .875rem; padding: .5rem; border: 1px solid var(--p3d-line); border-radius: 10px; }
.p3d-offer-qty { color: var(--p3d-muted); white-space: nowrap; }
.p3d-offer-sum { min-width: 90px; text-align: right; font-variant-numeric: tabular-nums; }
.p3d-offer-note { padding: .75rem 1rem; border-radius: 10px; background: var(--p3d-soft); color: var(--p3d-muted); }
.p3d-offer-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; }
.p3d-offer-foot b { font-size: 1.5rem; }
.p3d-offer-foot small { color: var(--p3d-light); }
.p3d-offer-foot .button { margin: 0 !important; position: static !important; transform: none !important; width: auto !important; padding: .875rem 2.5rem !important; }
.p3d-offer-msg { font-weight: 500; color: var(--p3d-muted); }
.p3d-offer .p3d-legal { margin: .75rem 0 0; }

/* ---------- инфо-разделы ---------- */
.p3d-section { margin-top: 1rem; }
.p3d-serial { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: center; }
.p3d-serial p { color: var(--p3d-muted); }
.p3d-serial-caption { margin-bottom: .5rem; }
.p3d-bar-row { display: grid; grid-template-columns: 90px 1fr 130px; align-items: center; gap: .75rem; padding: .3rem 0; }
.p3d-bar-qty { font-weight: 500; }
.p3d-bar { height: 12px; border-radius: 6px; background: var(--p3d-soft); overflow: hidden; }
.p3d-bar span { display: block; height: 100%; border-radius: 6px; background: linear-gradient(90deg, var(--p3d-primary), color-mix(in srgb, var(--p3d-primary) 60%, #52BB38)); }
.p3d-bar-price { font-weight: 600; font-variant-numeric: tabular-nums; text-align: right; }
.p3d-bar-price em { font-style: normal; color: #2e7d1e; font-size: .8125rem; }

.p3d-steps { list-style: none; counter-reset: s; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.p3d-steps li { counter-increment: s; display: flex; flex-direction: column; gap: .375rem; }
.p3d-steps li::before { content: counter(s); width: 36px; height: 36px; border-radius: 50%; background: var(--p3d-primary); color: #fff; font-weight: 700; display: grid; place-items: center; margin-bottom: .25rem; }
.p3d-steps b { font-size: 1.0625rem; }
.p3d-steps span, .p3d-card span { color: var(--p3d-muted); }

.p3d-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.p3d-card { display: flex; flex-direction: column; gap: .375rem; }
.p3d-card b { font-size: 1.125rem; }

.p3d-cad { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; background: linear-gradient(120deg, var(--p3d-soft), transparent); border-color: color-mix(in srgb, var(--p3d-primary) 25%, transparent); }
.p3d-cad h2 { margin-bottom: .5rem; }
.p3d-cad p { color: var(--p3d-muted); margin: 0; max-width: 44rem; }
.p3d-cad .button { flex: 0 0 auto; margin: 0 !important; position: static !important; transform: none !important; width: auto !important; padding: .75rem 2rem !important; }

.p3d-faq details { padding: 0; margin-bottom: .5rem; }
.p3d-faq summary { padding: 1rem 1.25rem; font-weight: 500; cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.p3d-faq summary::-webkit-details-marker { display: none; }
.p3d-faq summary::after { content: '+'; color: var(--p3d-primary); font-size: 1.25rem; line-height: 1; }
.p3d-faq details[open] summary::after { content: '−'; }
.p3d-faq details p { padding: 0 1.25rem 1rem; margin: 0; color: var(--p3d-muted); }

/* ---------- Konstruktion (заготовка) ---------- */
.p3d-cad-uses { columns: 2; padding-left: 1.25rem; color: var(--p3d-muted); }
.p3d-cad-uses li { margin-bottom: .375rem; }
.p3d-cad-soon { padding: .875rem 1rem; border-radius: 10px; background: var(--p3d-soft); color: var(--p3d-muted); }
.p3d-cad-actions { display: flex; flex-wrap: wrap; gap: .625rem; margin-top: 1rem; }
.p3d-cad-actions .button { margin: 0 !important; position: static !important; transform: none !important; width: auto !important; padding: .75rem 2rem !important; }

/* ---------- адаптив ---------- */
@media (max-width: 991.98px) {
	.p3d-work { grid-template-columns: 1fr; }
	.p3d-viewer-col { border-right: 0; border-bottom: 1px solid var(--p3d-line); }
	.p3d-serial { grid-template-columns: 1fr; gap: 1rem; }
}
@media (max-width: 767.98px) {
	.p3d-box { padding: 1rem; }
	.p3d-app { padding: 0; }
	.p3d-viewer-col, .p3d-config-col { padding: 1rem; }
	.p3d-drop { padding: 2.25rem 1rem; }
	.p3d-steps, .p3d-cards { grid-template-columns: 1fr; }
	.p3d-row { grid-template-columns: 1fr; }
	.p3d-tier-list { grid-template-columns: repeat(5, minmax(56px, 1fr)); overflow-x: auto; }
	.p3d-bar-row { grid-template-columns: 70px 1fr 110px; gap: .5rem; }
	.p3d-cad { flex-direction: column; align-items: stretch; }
	.p3d-cad-uses { columns: 1; }
	.p3d-cad-grid { grid-template-columns: 1fr; }
	.p3d-offer-items li { flex-wrap: wrap; }
	.p3d-actions { position: sticky; bottom: 69px; background: var(--p3d-card); padding: .625rem 0; z-index: 3; }
}
