/* v1.9.7 - Build Your Own Box 2.0 */
.sm-box-builder-app{
  --sm-builder-bottom:calc(var(--sm-nav-bottom-height,0px) + var(--sm-nav-safe-bottom,0px));
}

.sm-box-builder-layout{
  grid-template-columns:minmax(0,1fr) minmax(320px,380px);
}

.sm-box-steps{
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
}

.sm-box-steps li{
  min-width:0;
}

.sm-box-steps li.is-complete span{
  background:#9b762e;
  color:#fff;
}

.sm-box-error-summary{
  margin:0 0 18px;
  padding:14px 16px;
  border:1px solid #b33644;
  border-radius:12px;
  background:#fff5f5;
  color:#8f2731;
  font-weight:850;
}

.sm-box-helper{
  margin:16px 0 0;
  color:var(--sm-muted);
  font-size:.82rem;
}

.sm-box-product-filters{
  display:grid;
  grid-template-columns:minmax(220px,1.4fr) repeat(3,minmax(130px,.75fr)) auto;
  gap:10px;
  align-items:end;
  margin-bottom:14px;
  padding:14px;
  border:1px solid var(--sm-border);
  border-radius:16px;
  background:#fbf7f1;
}

.sm-box-product-filters label{
  display:grid;
  gap:6px;
  min-width:0;
  font-size:.7rem;
  font-weight:900;
  color:#4a4036;
}

.sm-box-product-filters input,
.sm-box-product-filters select{
  width:100%;
  min-height:44px;
  border:1px solid #d9cbb6;
  border-radius:10px;
  background:#fff;
  padding:0 12px;
  font:inherit;
  font-size:.78rem;
}

.sm-box-filter-state{
  margin:0 0 16px;
  color:var(--sm-muted);
  font-size:.76rem;
}

.sm-box-product{
  display:flex;
  flex-direction:column;
}

.sm-box-product-copy{
  padding:12px 2px 0;
}

.sm-box-stock{
  display:inline-flex;
  margin-bottom:6px;
  color:#277449;
  font-size:.62rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.sm-box-card-actions{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  margin-top:auto;
  padding-top:10px;
}

.sm-box-details-link{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  border:1px solid var(--sm-border);
  border-radius:8px;
  color:var(--sm-black);
  font-size:.68rem;
  font-weight:900;
}

.sm-box-card-qty{
  display:grid;
  grid-template-columns:44px 1fr 44px;
  align-items:center;
  min-height:44px;
  border:1px solid var(--sm-border);
  border-radius:9px;
  overflow:hidden;
}

.sm-box-card-qty button{
  min-height:44px;
  border:0;
  background:#fff;
  font-weight:900;
}

.sm-box-card-qty span{
  text-align:center;
  font-weight:900;
}

.sm-box-add-item{
  min-height:48px;
}

.sm-box-add-item[disabled]{
  cursor:not-allowed;
  opacity:.55;
}

.sm-box-no-results{
  grid-column:1/-1;
  padding:32px 20px;
  border:1px dashed #d8c7aa;
  border-radius:16px;
  background:#fffaf2;
  text-align:center;
}

.sm-box-load-more-row{
  display:flex;
  justify-content:center;
  margin-top:22px;
}

.sm-box-message-panel{
  display:grid;
  gap:10px;
}

.sm-box-message-preview{
  min-height:84px;
  padding:14px;
  border:1px solid #e5d8c7;
  border-radius:12px;
  background:#fffaf2;
  color:#4b433a;
  line-height:1.6;
}

.sm-box-review-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px 16px;
  margin-top:16px;
}

.sm-box-review-products{
  display:grid;
  gap:8px;
  margin:0;
  padding:0;
  list-style:none;
}

.sm-box-review-products li{
  display:flex;
  justify-content:space-between;
  gap:12px;
}

.sm-box-review-card.is-total strong{
  display:block;
  margin-bottom:6px;
  font-size:1.45rem;
}

.sm-box-final-panel{
  margin-bottom:18px;
}

.sm-box-summary-toggle{
  display:none;
}

.sm-box-summary-total.is-muted{
  color:var(--sm-muted);
  font-size:.76rem;
}

.sm-box-draft-choice{
  margin:0 0 20px;
  padding:18px;
  border:1px solid #d8c7aa;
  border-radius:16px;
  background:#fffaf2;
}

.sm-box-draft-choice p{
  margin:6px 0 14px;
  color:var(--sm-muted);
}

.sm-box-draft-choice>div{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.sm-builder-dialog{
  position:fixed;
  inset:0;
  z-index:10000;
  display:grid;
  place-items:center;
  padding:20px;
}

.sm-builder-dialog[hidden]{
  display:none;
}

.sm-builder-dialog-backdrop{
  position:absolute;
  inset:0;
  border:0;
  background:rgba(18,15,12,.5);
}

.sm-builder-dialog-card{
  position:relative;
  z-index:1;
  width:min(100%,460px);
  padding:26px;
  border:1px solid var(--sm-border);
  border-radius:20px;
  background:#fff;
  box-shadow:0 28px 70px rgba(0,0,0,.2);
}

.sm-builder-dialog-card h2{
  margin:0 0 8px;
  font-size:2rem;
}

.sm-builder-dialog-card label{
  display:grid;
  gap:7px;
  margin:18px 0;
  font-weight:850;
}

.sm-builder-dialog-card input{
  min-height:48px;
  border:1px solid var(--sm-border);
  border-radius:10px;
  padding:0 12px;
}

.sm-builder-dialog-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
}

@media(max-width:1100px){
  .sm-box-builder-layout{
    grid-template-columns:1fr;
  }

  .sm-box-summary{
    position:static;
    order:0;
  }
}

@media(max-width:767px){
  .sm-box-builder-app{
    padding-bottom:calc(96px + var(--sm-builder-bottom));
  }

  .sm-box-builder-main,
  .sm-box-summary{
    padding:16px!important;
    border-radius:16px;
  }

  .sm-box-builder-hero h1{
    font-size:40px!important;
  }

  .sm-box-steps{
    gap:4px!important;
  }

  .sm-box-steps li{
    display:grid!important;
    justify-items:center;
    gap:5px;
    font-size:9px!important;
    line-height:1.12;
    text-align:center;
    padding-bottom:8px!important;
  }

  .sm-box-steps li span{
    width:27px!important;
    height:27px!important;
  }

  .sm-box-product-filters{
    grid-template-columns:1fr 1fr;
    padding:12px;
  }

  .sm-box-search-field{
    grid-column:1/-1;
  }

  .sm-box-product-filters .sm-text-button{
    grid-column:1/-1;
    min-height:42px;
  }

  .sm-box-product-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }

  .sm-box-product h3{
    font-size:.78rem;
    line-height:1.3;
  }

  .sm-box-details-link{
    display:none;
  }

  .sm-box-builder-controls{
    position:sticky!important;
    bottom:calc(var(--sm-builder-bottom) + 6px)!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:8px!important;
    margin:18px -8px -8px!important;
    padding:10px!important;
    border:1px solid rgba(224,212,194,.9);
    border-radius:16px 16px 0 0;
    background:rgba(255,255,255,.97);
    backdrop-filter:blur(12px);
    z-index:50!important;
  }

  .sm-box-builder-controls .sm-button{
    min-height:48px;
    padding:10px 8px!important;
    font-size:11px!important;
  }

  .sm-box-builder-controls .sm-box-next,
  .sm-box-builder-controls .sm-box-submit{
    grid-column:2;
  }

  .sm-box-summary{
    position:fixed!important;
    left:10px;
    right:10px;
    bottom:calc(var(--sm-builder-bottom) + 66px);
    z-index:48;
    max-height:min(68vh,520px);
    margin:0!important;
    padding:0!important;
    overflow:hidden;
    box-shadow:0 -12px 38px rgba(25,20,14,.16);
  }

  .sm-box-summary-toggle{
    display:flex;
    width:100%;
    min-height:52px;
    align-items:center;
    justify-content:space-between;
    border:0;
    background:#17140f;
    color:#fff;
    padding:0 16px;
    font-weight:900;
  }

  .sm-box-summary-content{
    display:none;
    padding:16px;
    max-height:calc(68vh - 52px);
    overflow:auto;
  }

  .sm-box-summary.is-open .sm-box-summary-content{
    display:block;
  }

  .sm-box-live-preview{
    min-height:150px!important;
  }

  .sm-box-summary-items{
    max-height:190px!important;
  }

  .sm-box-personalise-grid,
  .sm-box-review{
    grid-template-columns:1fr!important;
  }

  .sm-box-review-wide{
    grid-column:auto!important;
  }

  .sm-builder-dialog-card{
    padding:20px;
  }
}

@media(max-width:360px){
  .sm-box-product-grid{
    gap:8px!important;
  }

  .sm-box-product{
    padding:8px!important;
  }

  .sm-box-card-qty{
    grid-template-columns:38px 1fr 38px;
  }
}

@media(prefers-reduced-motion:reduce){
  .sm-box-product,
  .sm-box-summary-item,
  .sm-builder-dialog-card{
    transition:none!important;
    animation:none!important;
  }
}
