/* ══════════════════════════════════════════
   Scanner Selection Wizard — scanner-wizard.css
   3DPrint.ua · v1.0
   ══════════════════════════════════════════ */

/* ─── Wrap ─── */
.swz-wrap { font-family:"Inter",-apple-system,system-ui,sans-serif; -webkit-font-smoothing:antialiased; }
.swz-wrap .srv-shell { max-width:1280px; margin:0 auto; padding:0 40px; }

/* ─── Hero ─── */
.swz-hero { background:#0c0c0c; padding:56px 0 44px; position:relative; overflow:hidden; }
.swz-hero::after { content:''; position:absolute; right:-100px; bottom:-100px; width:500px; height:500px;
  background:radial-gradient(circle,#ff4f00 0%,transparent 60%); opacity:.1; pointer-events:none; }
.swz-badge { font-size:11px; letter-spacing:.1em; color:#ff4f00; margin-bottom:12px; position:relative; z-index:2; }
.swz-hero h1 { font-size:clamp(28px,3.5vw,46px); font-weight:800; letter-spacing:-.03em; line-height:1.08;
  color:#f5f2ec !important; margin:0 0 14px; position:relative; z-index:2; }
.swz-hero h1 span { color:#ff4f00; }
.swz-hero-sub { font-size:15px; color:rgba(245,242,236,.65); max-width:600px; line-height:1.65; margin-bottom:32px; position:relative; z-index:2; }
.swz-hero-stats { display:flex; align-items:center; gap:0; border-top:1px solid rgba(245,242,236,.1); padding-top:24px; position:relative; z-index:2; }
.swz-hero-stats div { text-align:left; padding:0 28px; }
.swz-hero-stats div:first-child { padding-left:0; }
.swz-hero-stats strong { display:block; font-size:28px; font-weight:800; color:#f5f2ec; letter-spacing:-.02em; }
.swz-hero-stats span { font-size:11px; color:rgba(245,242,236,.4); text-transform:uppercase; letter-spacing:.07em; }
.swz-sep { width:1px; padding:0 !important; background:rgba(245,242,236,.12); align-self:stretch; flex-shrink:0; }

/* ─── Form section ─── */
.swz-form-section { background:#f4f5f7; padding:40px 0 72px; }

/* ─── Progress bar ─── */
.swz-progress { display:flex; align-items:center; gap:0; margin-bottom:28px; overflow-x:auto; padding-bottom:4px; }
.swz-prog-step { display:flex; flex-direction:column; align-items:center; gap:6px; cursor:default; flex-shrink:0; min-width:60px; }
.swz-prog-step[data-step] { cursor:default; }
.swz-prog-step.done { cursor:pointer; }
.swz-prog-dot { width:32px; height:32px; border-radius:50%; background:#e2e8f0; color:#94a3b8;
  font-size:13px; font-weight:700; display:flex; align-items:center; justify-content:center; transition:all .2s; }
.swz-prog-label { font-size:10px; color:#94a3b8; text-align:center; transition:color .2s; white-space:nowrap; }
.swz-prog-step.active .swz-prog-dot { background:#ff4f00; color:#fff; box-shadow:0 0 0 4px rgba(255,79,0,.2); }
.swz-prog-step.active .swz-prog-label { color:#ff4f00; font-weight:600; }
.swz-prog-step.done .swz-prog-dot { background:#0f172a; color:#fff; }
.swz-prog-step.done .swz-prog-label { color:#475569; }
.swz-prog-line { flex:1; height:2px; background:#e2e8f0; transition:background .3s; min-width:8px; }
.swz-prog-line.done { background:#0f172a; }

/* ─── Card ─── */
.swz-card { background:#fff; border:1px solid #e2e8f0; border-radius:12px; padding:40px; }

/* ─── Panel ─── */
.swz-panel { display:none; animation:swzIn .25s ease; }
.swz-panel.active { display:block; }
@keyframes swzIn { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }

/* ─── Step title ─── */
.swz-step-title { font-size:22px; font-weight:800; color:#0f172a !important; letter-spacing:-.02em; margin:0 0 6px; display:flex; align-items:center; gap:12px; }
.swz-step-title span { font-size:13px; font-weight:700; color:#ff4f00; background:rgba(255,79,0,.1);
  padding:2px 8px; border-radius:4px; letter-spacing:.04em; }
.swz-step-sub { font-size:14px; color:#64748b; margin:0 0 28px; line-height:1.6; }

/* ─── Layout grids ─── */
.swz-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.swz-grid-3 { display:grid; grid-template-columns:1fr 1fr 1fr; gap:20px; }

/* ─── Fields ─── */
.swz-field { margin-bottom:20px; }
.swz-field > label { display:block; font-size:13px; font-weight:600; color:#374151; margin-bottom:7px; }
.swz-field > label em { color:#ff4f00; font-style:normal; }
.swz-hint { font-weight:400; color:#94a3b8; font-size:12px; }
.swz-field input[type=text],
.swz-field input[type=email],
.swz-field input[type=tel],
.swz-field input[type=number],
.swz-field textarea {
  width:100%; padding:10px 14px; border:1.5px solid #e2e8f0; border-radius:6px;
  font-size:14px; font-family:inherit; color:#0f172a; background:#fff; transition:border .15s;
}
.swz-field input:focus, .swz-field textarea:focus { outline:none; border-color:#ff4f00; }
.swz-field input.swz-invalid, .swz-field textarea.swz-invalid { border-color:#ef4444 !important; }
.swz-field textarea { resize:vertical; }

/* ─── Checkboxes ─── */
.swz-checks { display:flex; flex-direction:column; gap:8px; }
.swz-checks-3col { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; }
.swz-check { display:flex; align-items:flex-start; gap:10px; cursor:pointer; padding:8px 10px;
  border:1.5px solid #e2e8f0; border-radius:6px; transition:all .15s; }
.swz-check:hover { border-color:#cbd5e1; background:#f8fafc; }
.swz-check input[type=checkbox] { accent-color:#ff4f00; width:16px; height:16px; flex-shrink:0; margin-top:1px; cursor:pointer; }
.swz-check span { font-size:13px; color:#374151; line-height:1.4; }
.swz-check input:checked ~ span { color:#0f172a; font-weight:500; }
.swz-check:has(input:checked) { border-color:#ff4f00; background:rgba(255,79,0,.04); }

/* ─── Radios ─── */
.swz-radios { display:flex; flex-direction:column; gap:8px; }
.swz-radio { display:flex; align-items:flex-start; gap:10px; cursor:pointer; padding:8px 10px;
  border:1.5px solid #e2e8f0; border-radius:6px; transition:all .15s; }
.swz-radio:hover { border-color:#cbd5e1; background:#f8fafc; }
.swz-radio input[type=radio] { accent-color:#ff4f00; width:16px; height:16px; flex-shrink:0; margin-top:1px; cursor:pointer; }
.swz-radio span { font-size:13px; color:#374151; line-height:1.4; }
.swz-radio:has(input:checked) { border-color:#ff4f00; background:rgba(255,79,0,.04); }
.swz-radio:has(input:checked) span { color:#0f172a; font-weight:500; }

/* ─── Radio cards (accuracy / budget) ─── */
.swz-radios-card { display:grid; grid-template-columns:1fr 1fr 1fr; gap:10px; flex-direction:unset; }
.swz-radio-card { display:flex; align-items:flex-start; gap:10px; padding:14px 14px; cursor:pointer;
  border:1.5px solid #e2e8f0; border-radius:8px; transition:all .15s; }
.swz-radio-card:hover { border-color:#cbd5e1; }
.swz-radio-card input { flex-shrink:0; margin-top:3px; accent-color:#ff4f00; width:15px; height:15px; cursor:pointer; }
.swz-radio-card div strong { display:block; font-size:14px; font-weight:700; color:#0f172a; margin-bottom:3px; }
.swz-radio-card div span { font-size:11px; color:#64748b; line-height:1.4; }
.swz-radio-card:has(input:checked) { border-color:#ff4f00; background:rgba(255,79,0,.04); }
.swz-radio-card:has(input:checked) div strong { color:#ff4f00; }

/* ─── Consent ─── */
.swz-consent { background:#f8fafc; border:1.5px solid #e2e8f0; border-radius:8px; padding:14px 16px; margin-top:20px; }
.swz-consent .swz-check { border:none; background:none; padding:0; }
.swz-consent .swz-check span { font-size:13px; color:#475569; }
.swz-consent .swz-check a { color:#ff4f00; text-decoration:none; }
.swz-invalid-block { border-color:#ef4444 !important; }

/* ─── Navigation ─── */
.swz-nav { display:flex; align-items:center; gap:12px; margin-top:32px; padding-top:24px; border-top:1px solid #f1f5f9; }
.swz-step-counter { font-size:13px; color:#94a3b8; margin:0 auto; }
.swz-btn-prev { padding:11px 22px; border:1.5px solid #e2e8f0; color:#475569; background:#fff;
  border-radius:6px; font-size:14px; font-weight:600; cursor:pointer; font-family:inherit; transition:all .15s; }
.swz-btn-prev:hover { border-color:#94a3b8; color:#0f172a; }
.swz-btn-next { padding:11px 24px; background:#0f172a; color:#fff; border:none;
  border-radius:6px; font-size:14px; font-weight:700; cursor:pointer; font-family:inherit; transition:background .15s; }
.swz-btn-next:hover { background:#1e293b; }
.swz-btn-submit { padding:11px 24px; background:#ff4f00; color:#fff; border:none;
  border-radius:6px; font-size:14px; font-weight:700; cursor:pointer; font-family:inherit; transition:background .15s; }
.swz-btn-submit:hover { background:#e64600; }
.swz-btn-submit:disabled { opacity:.6; cursor:not-allowed; }

/* ─── Success ─── */
.swz-success { text-align:center; padding:48px 20px; }
.swz-success-ico { width:64px; height:64px; background:#22c55e; border-radius:50%; color:#fff;
  font-size:28px; display:flex; align-items:center; justify-content:center; margin:0 auto 20px; }
.swz-success h2 { font-size:24px; font-weight:800; color:#0f172a !important; margin:0 0 12px; }
.swz-success p { font-size:15px; color:#475569; max-width:480px; margin:0 auto 12px; line-height:1.7; }
.swz-success-contact { font-size:14px; }
.swz-success-contact a { color:#ff4f00; font-weight:700; text-decoration:none; }
.swz-btn-back-link { display:inline-block; margin-top:24px; padding:11px 22px; border:1.5px solid #e2e8f0;
  border-radius:6px; font-size:14px; font-weight:600; color:#475569; text-decoration:none; transition:all .15s; }
.swz-btn-back-link:hover { border-color:#94a3b8; color:#0f172a; }

/* ─── Category page banner ─── */
.dp3-scanner-banner { background:#0c0c0c; border-radius:12px; overflow:hidden; margin-bottom:32px;
  display:grid; grid-template-columns:1fr auto; align-items:center; gap:0; position:relative; }
.dp3-scanner-banner::before { content:''; position:absolute; right:0; top:0; width:300px; height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,79,0,.08)); pointer-events:none; }
.dp3-scanner-banner-body { padding:28px 32px; }
.dp3-scanner-banner-badge { font-size:10px; letter-spacing:.1em; color:#ff4f00; font-weight:700;
  text-transform:uppercase; margin-bottom:8px; }
.dp3-scanner-banner h3 { font-size:clamp(17px,2vw,22px); font-weight:800; color:#f5f2ec !important;
  letter-spacing:-.02em; line-height:1.2; margin:0 0 8px; }
.dp3-scanner-banner p { font-size:13px; color:rgba(245,242,236,.6); line-height:1.6; margin:0; max-width:520px; }
.dp3-scanner-banner-cta { padding:24px 36px; display:flex; align-items:center; flex-shrink:0; }
.dp3-scanner-banner-btn { display:block; background:#ff4f00; color:#fff !important; text-decoration:none;
  padding:12px 22px; border-radius:6px; font-size:13px; font-weight:700; white-space:nowrap;
  text-align:center; transition:background .15s; }
.dp3-scanner-banner-btn:hover { background:#e64600; }
.dp3-scanner-banner-btn small { display:block; font-size:11px; font-weight:400; opacity:.8; margin-top:2px; }

/* ─── Responsive ─── */
@media (max-width:900px) {
  .swz-wrap .srv-shell { padding:0 20px; }
  .swz-grid-2, .swz-grid-3 { grid-template-columns:1fr; }
  .swz-radios-card { grid-template-columns:1fr 1fr; }
  .swz-checks-3col { grid-template-columns:1fr 1fr; }
  .swz-card { padding:24px 18px; }
  .dp3-scanner-banner { grid-template-columns:1fr; }
  .dp3-scanner-banner-cta { padding:0 32px 24px; }
}
@media (max-width:640px) {
  .swz-wrap .srv-shell { padding:0 16px; }
  .swz-radios-card { grid-template-columns:1fr; }
  .swz-checks-3col { grid-template-columns:1fr; }
  .swz-progress { gap:2px; }
  .swz-prog-label { display:none; }
  .swz-prog-dot { width:26px; height:26px; font-size:11px; }
  .swz-hero-stats div { padding:0 14px; }
  .swz-hero-stats strong { font-size:22px; }
}

/* ─── Hero 2-col layout ─── */
.swz-hero-inner { display:flex; align-items:center; gap:48px; }
.swz-hero-text { flex:1; min-width:0; }
.swz-hero-visual { flex-shrink:0; width:440px; }
.swz-hero-photo {
  width:100%; height:auto; display:block;
  border-radius:8px;
  -webkit-mask-image: radial-gradient(ellipse 90% 78% at 50% 62%, black 35%, transparent 100%);
  mask-image: radial-gradient(ellipse 90% 78% at 50% 62%, black 35%, transparent 100%);
}
@media (max-width:900px) {
  .swz-hero-inner { flex-direction:column; gap:24px; }
  .swz-hero-visual { width:100%; max-width:400px; margin:0 auto; }
  .swz-hero-photo {
    -webkit-mask-image: linear-gradient(to bottom, black 65%, transparent 100%);
    mask-image: linear-gradient(to bottom, black 65%, transparent 100%);
  }
}
@media (max-width:640px) {
  .swz-hero-visual { display:none; }
}
