.ds3d-wrap{
  width:100%;
  max-width:1120px;
  margin:0 auto;
  padding:80px 24px 72px;
  font-family:"Manrope", var(--e-global-typography-text-font-family, inherit), system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color:#0f172a;
  background:transparent !important;
  --ds-text:#0f172a;
  --ds-muted:#64748b;
  --ds-soft-muted:#94a3b8;
  --ds-border:#d8e0ea;
  --ds-border-soft:#e2e8f0;
  --ds-card:rgba(255,255,255,.97);
  --ds-soft-bg:#f8fafc;
  --ds-soft-bg-2:#f1f5f9;
  --ds-dark:#020617;
}
.ds3d-wrap *{box-sizing:border-box}
.ds3d-hero,
.ds3d-card{
  background:var(--ds-card);
  border:1px solid rgba(15,23,42,.08);
  border-radius:22px;
  box-shadow:0 18px 48px rgba(0,0,0,.12);
}
.ds3d-hero{
  position:relative;
  overflow:hidden;
  min-height:210px;
  display:grid;
  grid-template-columns:1fr 280px;
  align-items:center;
  gap:40px;
  padding:40px 48px;
  margin-bottom:24px;
}
.ds3d-hero:after{content:"";position:absolute;right:-70px;top:-95px;width:260px;height:260px;border-radius:999px;background:rgba(15,23,42,.045)}
.ds3d-hero-content{position:relative;z-index:2;min-width:0}
.ds3d-eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:13px;line-height:1;font-weight:700;margin:0 0 24px !important;color:var(--ds-muted)}
.ds3d-hero h2{white-space:nowrap;font-family:"Manrope", var(--e-global-typography-primary-font-family, inherit), system-ui, sans-serif;max-width:620px;font-size:38px;line-height:1.02;letter-spacing:-.045em;font-weight:800;color:var(--ds-text);margin:0 0 24px !important}
.ds3d-hero p{max-width:650px;font-size:16px;line-height:1.6;font-weight:400;color:var(--ds-muted);margin:0}
.ds3d-hero-visual{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;min-height:140px}
.ds3d-hero-visual:before{content:"";position:absolute;width:185px;height:150px;border:1px dashed #cbd5e1;border-radius:34px;transform:rotate(-6deg);background:rgba(255,255,255,.32)}
.ds3d-file-icon{position:relative;width:88px;height:104px;border:2px solid #111827;border-radius:8px;background:#fff;display:flex;align-items:center;justify-content:center;color:#111827;box-shadow:0 16px 35px rgba(15,23,42,.08)}
.ds3d-file-icon:after{content:"";position:absolute;right:-2px;top:-2px;border-top:26px solid #eef2ff;border-left:26px solid transparent;width:0;height:0;border-bottom:2px solid #111827}
.ds3d-file-icon strong{position:absolute;right:-24px;bottom:-12px;background:#070b2e;color:#fff;border-radius:6px;padding:6px 10px;font-size:13px;letter-spacing:.05em;font-weight:800}
.ds3d-file-cube{font-size:30px;line-height:1;transform:translateY(-2px)}
.ds3d-grid{min-width:0;display:grid;grid-template-columns:1.05fr 1fr;gap:24px;margin-bottom:24px;align-items:stretch}
.ds3d-card{min-width:0;padding:32px}
.ds3d-section-title,.ds3d-card h2{font-family:"Manrope", var(--e-global-typography-primary-font-family, inherit), system-ui, sans-serif;font-size:21px;line-height:1.25;letter-spacing:-.025em;font-weight:800;color:var(--ds-text);margin:0 0 24px}
.ds3d-upload{min-height:96px;border:1.5px dashed #cbd5e1;border-radius:18px;background:var(--ds-soft-bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:16px 18px;margin-bottom:18px;cursor:pointer;transition:.18s ease;text-align:center}
.ds3d-upload-active,.ds3d-upload:hover{background:#fff;border-color:var(--ds-text);box-shadow:0 8px 24px rgba(15,23,42,.08)}
.ds3d-upload input{position:absolute;opacity:0;pointer-events:none}
.ds3d-upload label{cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--ds-text)}
.ds3d-upload-icon{font-size:26px;line-height:1;color:var(--ds-text);margin-bottom:4px}
.ds3d-upload strong{font-size:16px;line-height:1.25;font-weight:800;color:var(--ds-text)}
.ds3d-upload span:not(.ds3d-upload-icon){font-size:13px;line-height:1.35;font-weight:400;color:var(--ds-muted)}
.ds3d-viewer{height:310px;border-radius:16px;background:var(--ds-soft-bg-2);border:1px solid var(--ds-border-soft);overflow:hidden;margin-bottom:18px;position:relative;box-shadow:inset 0 1px 0 rgba(255,255,255,.75)}
.ds3d-viewer canvas{display:block;width:100%;height:100%}
.ds3d-viewer-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:18px;color:var(--ds-muted);font-weight:400}
.ds3d-info-note{display:flex;align-items:flex-start;gap:12px;padding:16px 18px;border-radius:14px;background:var(--ds-soft-bg);border:1px solid var(--ds-border-soft);margin-bottom:16px;color:#475569}
.ds3d-info-note span{width:20px;height:20px;flex:0 0 20px;border:1px solid #cfd6e3;border-radius:999px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:var(--ds-text);margin-top:1px}
.ds3d-info-note p{margin:0;font-size:13px;line-height:1.55;color:#475569;font-weight:400}
.ds3d-info-note p::first-letter{font-weight:inherit}
.ds3d-note{font-size:13px;line-height:1.55;color:var(--ds-muted);margin:0;font-weight:400}
.ds3d-fields,.ds3d-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 24px}
.ds3d-fields{margin-bottom:24px}
.ds3d-fields label,.ds3d-quote-card label{display:flex;flex-direction:column;gap:8px;font-size:13px;line-height:1.2;font-weight:650;color:#475569;letter-spacing:0}
.ds3d-fields input,.ds3d-fields select,.ds3d-quote-card input,.ds3d-quote-card textarea{width:100%;min-height:46px;padding:0 14px;border:1px solid #cfd7e3;border-radius:11px;background:#fff;color:var(--ds-text);font-family:"Manrope", var(--e-global-typography-text-font-family, inherit), system-ui, sans-serif;font-size:14px;line-height:1.4;font-weight:500;outline:none;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease;box-shadow:none}
.ds3d-quote-card textarea{min-height:78px;padding:14px;resize:vertical}
.ds3d-fields input:focus,.ds3d-fields select:focus,.ds3d-quote-card input:focus,.ds3d-quote-card textarea:focus{border-color:var(--ds-text);box-shadow:0 0 0 4px rgba(15,23,42,.08)}
.ds3d-fields input::placeholder,.ds3d-quote-card input::placeholder,.ds3d-quote-card textarea::placeholder{color:var(--ds-soft-muted);font-weight:400}
.ds3d-results{display:flex;flex-direction:column;gap:0;overflow:hidden;border-radius:16px;border:1px solid var(--ds-border-soft);background:#fff;margin-bottom:18px}
.ds3d-results div{display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:12px;min-height:58px;padding:12px 18px;border-bottom:1px solid var(--ds-border-soft);background:var(--ds-soft-bg)}
.ds3d-results div:last-child{border-bottom:0}
.ds3d-result-label{display:contents;font-size:13px;line-height:1.3;font-weight:600;color:var(--ds-muted)}
.ds3d-result-label i{grid-column:1;width:20px;height:20px;color:var(--ds-text);opacity:.9;font-style:normal;display:flex;align-items:center;justify-content:center;font-size:18px}
.ds3d-result-label::after{grid-column:2;content:attr(data-label)}
.ds3d-results div .ds3d-result-label{color:var(--ds-muted)}
.ds3d-results div .ds3d-result-label + strong{grid-column:3}
.ds3d-results span:not(.ds3d-result-label){font-size:13px;color:var(--ds-muted);font-weight:600}
.ds3d-results strong{text-align:right;font-size:14px;line-height:1.3;font-weight:800;color:var(--ds-text);white-space:nowrap}
.ds3d-result-label{position:relative}
.ds3d-result-label i + text{display:none}
.ds3d-result-label{display:flex;align-items:center;gap:12px;grid-column:1 / 3;color:var(--ds-muted);font-size:13px;font-weight:600;white-space:nowrap}
.ds3d-results strong{grid-column:3}
.ds3d-price-card{display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:14px;min-height:86px;padding:20px 24px;border-radius:16px;background:var(--ds-dark);color:#fff;box-shadow:0 16px 36px rgba(2,6,23,.22)}
.ds3d-price-icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:23px;color:#fff;opacity:.9}
.ds3d-price-label{font-size:15px;line-height:1.3;font-weight:500;color:rgba(255,255,255,.78)}
.ds3d-price-card strong{font-size:28px;line-height:1;font-weight:850;letter-spacing:-.04em;color:#fff;text-align:right;white-space:nowrap}
.ds3d-quote-card{margin-top:0;padding:32px}
.ds3d-quote-card form{display:grid;gap:18px}
.ds3d-quote-card > .ds3d-section-title{font-size:22px;margin-bottom:24px}
.ds3d-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:0 22px;margin-top:0;border:0;border-radius:999px;background:var(--ds-dark);color:#fff;font-family:"Manrope", var(--e-global-typography-accent-font-family, inherit), system-ui, sans-serif;font-size:14px;line-height:1;font-weight:800;letter-spacing:-.01em;cursor:pointer;justify-self:start;box-shadow:0 12px 26px rgba(2,6,23,.22);transition:.18s ease}
.ds3d-button:hover{transform:translateY(-1px);box-shadow:0 16px 34px rgba(2,6,23,.28);background:#0f172a}
.ds3d-button:disabled{opacity:.75;cursor:wait;transform:none;box-shadow:0 8px 18px rgba(2,6,23,.16)}
.ds3d-button-icon{display:inline-flex;align-items:center;justify-content:center}
.ds3d-spinner{display:none;width:16px;height:16px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:999px;animation:ds3d-spin .8s linear infinite;flex:0 0 16px}
.ds3d-button.ds3d-is-loading .ds3d-spinner{display:inline-block}
.ds3d-button.ds3d-is-loading .ds3d-button-icon{display:none}
@keyframes ds3d-spin{to{transform:rotate(360deg)}}
.ds3d-form-status{margin:0;color:#374151;font-weight:500;min-height:20px}
.ds3d-form-status.ds3d-info{color:#475569}
.ds3d-form-status.ds3d-success{color:#047857}
.ds3d-form-status.ds3d-error{color:#b91c1c}
.ds3d-error{color:#b91c1c}.ds3d-success{color:#166534}

/* Hero spacing override: Elementor/theme h1 styles can collapse margins, so keep title visually centered. */
.ds3d-wrap .ds3d-hero .ds3d-eyebrow{margin-bottom:24px !important}
.ds3d-wrap .ds3d-hero h2{margin-top:0 !important;margin-bottom:24px !important}
@media (min-width:1200px){.ds3d-viewer{height:320px}}
@media (max-width:1100px){.ds3d-hero h2{font-size:34px}.ds3d-hero{grid-template-columns:1fr 220px}.ds3d-hero-visual:before{width:160px;height:130px}.ds3d-file-icon{width:78px;height:92px}}
@media (max-width:900px){.ds3d-grid,.ds3d-hero{grid-template-columns:1fr}.ds3d-hero-visual{display:none}.ds3d-wrap{padding-top:56px}}
@media (max-width:767px){.ds3d-hero h2{white-space:normal}.ds3d-wrap{padding:48px 16px 56px}.ds3d-hero,.ds3d-card,.ds3d-quote-card{padding:24px;border-radius:18px}.ds3d-hero h2{font-size:30px;line-height:1.08}.ds3d-hero p{font-size:15px}.ds3d-fields,.ds3d-form-grid{grid-template-columns:1fr}.ds3d-viewer{height:240px}.ds3d-results div{grid-template-columns:28px 1fr}.ds3d-result-label{grid-column:1 / -1;white-space:normal}.ds3d-results strong{grid-column:2;text-align:left;white-space:normal}.ds3d-price-card{grid-template-columns:32px 1fr}.ds3d-price-card strong{grid-column:2;text-align:left;margin-top:4px}.ds3d-upload{min-height:96px}}


/* Mobile refinement v0.2.6 */
@media (max-width: 767px) {
  .ds3d-wrap {
    width: 100%;
    max-width: 100%;
    padding: 28px 14px 42px;
  }

  .ds3d-hero,
  .ds3d-card,
  .ds3d-quote-card {
    padding: 20px;
    border-radius: 18px;
    box-shadow: 0 12px 32px rgba(0,0,0,.12);
  }

  .ds3d-hero {
    min-height: auto;
    gap: 0;
    margin-bottom: 16px;
  }

  .ds3d-wrap .ds3d-hero .ds3d-eyebrow {
    font-size: 11px;
    letter-spacing: .16em;
    margin-bottom: 14px !important;
  }

  .ds3d-wrap .ds3d-hero h2 {
    font-size: clamp(25px, 7.2vw, 32px);
    line-height: 1.08;
    letter-spacing: -.04em;
    white-space: normal;
    margin-bottom: 14px !important;
  }

  .ds3d-hero p {
    font-size: 14px;
    line-height: 1.5;
  }

  .ds3d-grid {
    grid-template-columns: 1fr;
    gap: 16px;
    margin-bottom: 16px;
  }

  .ds3d-section-title,
  .ds3d-card h2,
  .ds3d-quote-card > .ds3d-section-title {
    font-size: 18px;
    line-height: 1.25;
    margin-bottom: 16px;
  }

  .ds3d-upload {
    min-height: 78px;
    padding: 12px 14px;
    margin-bottom: 14px;
    border-radius: 15px;
  }

  .ds3d-upload-icon {
    font-size: 22px;
    margin-bottom: 2px;
  }

  .ds3d-upload strong {
    font-size: 15px;
  }

  .ds3d-upload span:not(.ds3d-upload-icon) {
    font-size: 12px;
  }

  .ds3d-viewer {
    height: 220px;
    margin-bottom: 14px;
    border-radius: 14px;
  }

  .ds3d-info-note {
    padding: 13px 14px;
    gap: 10px;
    margin-bottom: 12px;
  }

  .ds3d-info-note p,
  .ds3d-note {
    font-size: 12px;
    line-height: 1.5;
  }

  .ds3d-fields,
  .ds3d-form-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .ds3d-fields {
    margin-bottom: 16px;
  }

  .ds3d-fields label,
  .ds3d-quote-card label {
    gap: 6px;
    font-size: 12px;
  }

  .ds3d-fields input,
  .ds3d-fields select,
  .ds3d-quote-card input,
  .ds3d-quote-card textarea {
    min-height: 44px;
    font-size: 14px;
    border-radius: 10px;
  }

  .ds3d-quote-card textarea {
    min-height: 86px;
  }

  .ds3d-results {
    border-radius: 14px;
    margin-bottom: 14px;
  }

  .ds3d-results div {
    grid-template-columns: 28px 1fr;
    gap: 8px 10px;
    min-height: 0;
    padding: 11px 14px;
  }

  .ds3d-result-label {
    grid-column: 1 / -1;
    font-size: 12px;
    white-space: normal;
  }

  .ds3d-result-label i {
    width: 18px;
    height: 18px;
    font-size: 16px;
  }

  .ds3d-results strong {
    grid-column: 2;
    text-align: left;
    font-size: 14px;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .ds3d-price-card {
    grid-template-columns: 28px 1fr;
    min-height: 74px;
    gap: 8px 12px;
    padding: 16px 18px;
    border-radius: 14px;
  }

  .ds3d-price-icon {
    width: 22px;
    height: 22px;
    font-size: 21px;
  }

  .ds3d-price-label {
    font-size: 13px;
  }

  .ds3d-price-card strong {
    grid-column: 2;
    font-size: 24px;
    text-align: left;
    margin-top: 2px;
    white-space: normal;
  }

  .ds3d-quote-card form {
    gap: 14px;
  }

  .ds3d-button {
    width: 100%;
    min-height: 46px;
    justify-self: stretch;
  }

  .ds3d-form-status {
    font-size: 13px;
    line-height: 1.45;
  }
}

@media (max-width: 420px) {
  .ds3d-wrap {
    padding-left: 10px;
    padding-right: 10px;
  }

  .ds3d-hero,
  .ds3d-card,
  .ds3d-quote-card {
    padding: 18px;
    border-radius: 16px;
  }

  .ds3d-wrap .ds3d-hero h2 {
    font-size: clamp(23px, 7vw, 28px);
  }

  .ds3d-viewer {
    height: 200px;
  }

  .ds3d-results div {
    padding: 10px 12px;
  }
}
