.instant-quote{
  max-width:none;
  padding:84px max(24px,calc((100vw - 1160px)/2));
  background:#eef5ed;
  color:#18251d;
  border-top:1px solid rgba(31,138,91,.16);
  border-bottom:1px solid rgba(31,138,91,.16)
}
.instant-quote-heading,.quantity-tier-heading{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(260px,.8fr);
  gap:42px;
  align-items:end
}
.instant-quote-heading h2{
  max-width:760px;
  margin:8px 0 0;
  font-size:clamp(1.95rem,3.3vw,2.85rem);
  line-height:1.03
}
.instant-quote-heading>p,.quantity-tier-heading>p{
  color:#58685d;
  line-height:1.65
}
.quote-workspace{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);
  gap:34px;
  margin-top:42px;
  align-items:start
}
.quote-model-column,.quote-controls-column{
  min-width:0
}
.model-dropzone{
  width:100%;
  min-height:190px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:9px;
  border:2px dashed #9eb9a3;
  border-radius:8px;
  background:#fff;
  color:#173a2f;
  font:inherit;
  cursor:pointer;
  transition:border-color .18s ease,background .18s ease,transform .18s ease
}
.model-dropzone:hover,.model-dropzone.is-dragging{
  border-color:#d89f23;
  background:#f9fcf7;
  transform:translateY(-2px)
}
.model-dropzone:disabled{
  cursor:wait;
  opacity:.72;
  transform:none
}
.model-dropzone-icon{
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#5f8f6e;
  color:#fff;
  font-size:1.65rem;
  font-weight:800
}
.model-dropzone strong{
  font-size:1.15rem
}
.model-dropzone span:last-child{
  color:#64736a;
  font-size:.9rem
}
.quote-progress{
  margin-top:14px
}
.quote-progress-track{
  height:8px;
  overflow:hidden;
  border-radius:4px;
  background:#d5e1d6
}
.quote-progress-track span{
  display:block;
  width:0;
  height:100%;
  background:linear-gradient(90deg,#5f8f6e,#d0b96f);
  transition:width .2s ease
}
.quote-progress p{
  margin:8px 0 0;
  color:#3f5849;
  font-size:.88rem
}
.model-preview{
  position:relative;
  width:100%;
  aspect-ratio:16/10;
  margin-top:16px;
  overflow:hidden;
  border-radius:8px;
  border:1px solid rgba(31,138,91,.22);
  background:#10251b
}
.model-preview canvas{
  display:block;
  width:100%;
  height:100%;
  cursor:grab;
  touch-action:none
}
.model-preview canvas[data-interacting="true"]{
  cursor:grabbing
}
.model-preview canvas:focus-visible{
  outline:3px solid #d89f23;
  outline-offset:-3px
}
.model-preview-toolbar{
  position:absolute;
  top:10px;
  right:10px;
  z-index:2;
  display:grid;
  grid-template-columns:repeat(5,minmax(44px,auto));
  gap:4px
}
.model-preview-toolbar button{
  min-width:44px;
  min-height:44px;
  padding:0 8px;
  border:1px solid rgba(82,110,91,.34);
  border-radius:6px;
  background:rgba(250,253,249,.92);
  color:#294331;
  font:800 .68rem/1 Inter,sans-serif;
  cursor:pointer;
  box-shadow:0 4px 12px rgba(26,53,35,.1)
}
.model-preview-toolbar button:hover,
.model-preview-toolbar button:focus-visible,
.model-preview-toolbar button[aria-pressed="false"]{
  border-color:#638c6f;
  background:#fff;
  outline:none
}
.model-preview-label{
  position:absolute;
  left:12px;
  bottom:10px;
  max-width:calc(100% - 24px);
  padding:6px 9px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  border-radius:4px;
  background:rgba(8,28,19,.8);
  color:#dceadf;
  font-size:.72rem;
  font-weight:800
}
.quote-controls-column{
  display:grid;
  gap:22px
}
.quote-fieldset{
  min-width:0;
  margin:0;
  padding:0;
  border:0
}
.quote-fieldset legend,.quote-quantity>label{
  display:block;
  margin-bottom:9px;
  color:#344b3c;
  font-size:.82rem;
  font-weight:800;
  text-transform:uppercase
}
.quote-segmented{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  border:1px solid #b7c9bb;
  border-radius:7px;
  overflow:hidden;
  background:#fff
}
.quote-segmented-four{
  grid-template-columns:repeat(4,minmax(0,1fr))
}
.quote-segmented label{
  min-width:0
}
.quote-segmented input{
  position:absolute;
  opacity:0;
  pointer-events:none
}
.quote-segmented span{
  min-height:46px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:8px 10px;
  border-right:1px solid #d5e1d6;
  color:#405348;
  font-size:.86rem;
  font-weight:700;
  text-align:center;
  cursor:pointer
}
.quote-segmented label:last-child span{
  border-right:0
}
.quote-segmented input:checked+span{
  background:#2c4936;
  color:#fff
}
.quote-segmented input:focus-visible+span{
  outline:3px solid #d89f23;
  outline-offset:-3px
}
.quote-stepper{
  display:grid;
  grid-template-columns:48px minmax(0,1fr) 48px;
  height:48px;
  border:1px solid #b7c9bb;
  border-radius:7px;
  overflow:hidden;
  background:#fff
}
.quote-stepper button{
  border:0;
  background:#2c4936;
  color:#fff;
  font-size:1.35rem;
  cursor:pointer
}
.quote-stepper input{
  min-width:0;
  border:0;
  border-left:1px solid #b7c9bb;
  border-right:1px solid #b7c9bb;
  color:#18251d;
  font:700 1rem/1 Inter,sans-serif;
  text-align:center
}
.quote-metrics{
  display:grid;
  gap:0;
  margin:0;
  border-top:1px solid #c9d8cc
}
.quote-metrics div{
  display:grid;
  grid-template-columns:minmax(110px,.65fr) minmax(0,1.35fr);
  gap:16px;
  padding:10px 0;
  border-bottom:1px solid #c9d8cc
}
.quote-metrics dt{
  color:#617168;
  font-size:.83rem
}
.quote-metrics dd{
  min-width:0;
  margin:0;
  color:#18251d;
  font-size:.9rem;
  font-weight:700;
  text-align:right;
  overflow-wrap:anywhere
}
.quote-current-price{
  padding:20px;
  border-left:5px solid #d0b96f;
  border-radius:6px;
  background:#2c4936;
  color:#fff
}
.quote-current-price span{
  display:block;
  color:#bcd2c1;
  font-size:.78rem;
  font-weight:800;
  text-transform:uppercase
}
.quote-current-price strong{
  display:block;
  margin-top:5px;
  color:#fff;
  font-size:2rem
}
.quote-current-price p{
  margin:4px 0 0;
  color:#dceadf;
  font-size:.9rem
}
.quantity-tier-section{
  margin-top:54px
}
.quantity-tier-heading{
  align-items:center
}
.quantity-tier-heading h3{
  margin:6px 0 0;
  font-size:1.8rem
}
.quantity-tier-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin-top:22px
}
.quantity-tier{
  min-width:0;
  min-height:178px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:7px;
  padding:20px;
  border:1px solid #b9cbbb;
  border-radius:8px;
  background:#fff;
  color:#18251d;
  font:inherit;
  text-align:left;
  cursor:pointer;
  transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease
}
.quantity-tier:hover:not(:disabled){
  border-color:#1f8a5b;
  transform:translateY(-2px);
  box-shadow:0 12px 26px rgba(23,58,47,.09)
}
.quantity-tier:disabled{
  cursor:default
}
.quantity-tier-title{
  color:#617168;
  font-size:.76rem;
  font-weight:700;
  text-transform:uppercase
}
.quantity-tier-quantity{
  font-size:1.25rem
}
.quantity-tier-price{
  color:#173a2f;
  font-size:1.06rem;
  font-weight:800
}
.quantity-tier-saving{
  color:#0c7a46;
  font-size:.88rem;
  font-weight:800
}
.quantity-tier-baseline,.quantity-tier-rate{
  color:#6b776f;
  font-size:.78rem
}
.quantity-tier-placeholder{
  justify-content:center;
  color:#758178;
  background:rgba(255,255,255,.58)
}
.quote-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin-top:28px
}
.quote-actions p{
  max-width:690px;
  margin:0;
  color:#637269;
  font-size:.86rem
}
.quote-actions .button{
  min-width:190px;
  border:0
}
.quote-actions .button:disabled{
  opacity:.48;
  cursor:not-allowed
}

@media(max-width:900px){
  .instant-quote{
    padding:24px 16px 30px
  }
  .instant-quote-heading,.quantity-tier-heading,.quote-workspace{
    grid-template-columns:1fr;
    gap:22px
  }
  .instant-quote-heading h2{
    font-size:1.9rem;
    line-height:1.08
  }
  .quote-current-price strong{
    font-size:2.4rem
  }
  .quote-segmented-four{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .quote-segmented-four label:nth-child(2) span{
    border-right:0
  }
  .quote-segmented-four label:nth-child(-n+2) span{
    border-bottom:1px solid #d5e1d6
  }
  .model-preview-toolbar{
    grid-template-columns:repeat(3,44px)
  }
  .model-preview-toolbar button{
    padding:0;
    font-size:.68rem
  }
  .quantity-tier-grid{
    grid-template-columns:1fr
  }
  .quantity-tier{
    min-height:0
  }
  .quote-actions{
    align-items:stretch;
    flex-direction:column
  }
  .quote-actions .button{
    width:100%;
    min-width:0
  }
}

@media(prefers-reduced-motion:reduce){
  .model-dropzone,.quote-progress-track span,.quantity-tier{
    transition-duration:.01ms
  }
}
