/* ── QUOTE FORM MODAL ── */
.quote-overlay{
  position:fixed;inset:0;z-index:400;
  background:rgba(30,21,18,.7);
  display:flex;align-items:center;justify-content:center;
  padding:1rem;opacity:0;pointer-events:none;
  transition:opacity .3s;
}
.quote-overlay.open{opacity:1;pointer-events:all}
.quote-modal{
  background:var(--cream);border-radius:var(--r);
  width:100%;max-width:720px;max-height:90vh;
  overflow-y:auto;box-shadow:0 24px 80px rgba(30,21,18,.3);
  transform:translateY(12px);will-change:transform;
  transition:transform .18s cubic-bezier(.4,0,.2,1);
}
.quote-overlay.open .quote-modal{transform:translateY(0)}
.quote-header{
  padding:1.5rem 2rem 1rem;
  border-bottom:1px solid var(--cream-d);
  display:flex;align-items:flex-start;justify-content:space-between;
}
.quote-title{font-family:'Cormorant Garamond',serif;font-size:1.6rem;font-weight:700}
.quote-sub{font-size:.875rem;color:var(--brown-l);margin-top:.15rem}
.quote-content{padding:1.5rem 2rem 2rem;display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
@media(max-width:560px){.quote-content{grid-template-columns:1fr}}
.form-group{display:flex;flex-direction:column;gap:.4rem}
.form-group.full{grid-column:span 2}
@media(max-width:560px){.form-group.full{grid-column:span 1}}
.form-label{font-size:.78rem;font-weight:600;color:var(--brown-m);text-transform:uppercase;letter-spacing:.5px}
.form-input,.form-select,.form-textarea{
  padding:.6rem .875rem;
  border:1.5px solid var(--cream-d);border-radius:var(--r-sm);
  font-family:'DM Sans',sans-serif;font-size:.9rem;
  background:var(--white);color:var(--brown);outline:none;
  transition:var(--transition);
}
.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--terra);box-shadow:0 0 0 3px rgba(196,112,74,.1)}
.form-textarea{resize:vertical;min-height:80px}
.quote-summary{
  background:var(--white);border-radius:var(--r-sm);padding:1rem;
  font-size:.875rem;margin:.25rem 0;
  border:1px solid rgba(196,112,74,.2);
}
.qs-row{display:flex;justify-content:space-between;padding:.2rem 0;color:var(--brown-m)}
.qs-total{border-top:1px solid var(--cream-d);margin-top:.4rem;padding-top:.4rem;font-weight:600;color:var(--terra)}
.quote-actions{display:flex;gap:.75rem;padding:0 2rem 2rem;justify-content:flex-end}
.quote-actions .btn{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:52px;
  padding:.75rem 1.5rem!important;
  border-radius:999px!important;
  font-weight:700!important;
}
.quote-actions .btn-primary{
  background:var(--terra)!important;color:var(--white)!important;
  border:1.5px solid var(--terra)!important;
}
.quote-actions .btn-primary:hover{background:var(--terra-d)!important;border-color:var(--terra-d)!important}
.quote-actions .btn-ghost{
  background:transparent!important;color:var(--brown-m)!important;
  border:1.5px solid var(--cream-d)!important;
}
.quote-actions .btn-ghost:hover{background:var(--white)!important;border-color:var(--brown-l)!important;color:var(--brown)!important}
.form-note{font-size:.75rem;color:var(--brown-l);grid-column:span 2;text-align:center}
.o2-quote-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.form-marketing-opt-in,.form-terms-consent{display:flex;align-items:flex-start;gap:.5rem;grid-column:span 2;font-size:.78rem;line-height:1.4;color:var(--brown-m);cursor:pointer}
.form-marketing-opt-in input,.form-terms-consent input{margin:.15rem 0 0;accent-color:var(--terra)}
.form-terms-consent{font-weight:600;color:var(--brown)}
.form-terms-consent a{color:var(--terra);text-decoration:underline;text-underline-offset:2px}

body.o2-quote-modal-open #o2QuoteCartFloat{display:none!important}

/* This modal is rendered outside #storeSection, so give its controls their own sizing boundary. */
.quote-modal,
.quote-modal *,
.quote-modal *::before,
.quote-modal *::after{box-sizing:border-box}
.quote-content > *{min-width:0}
.quote-modal .form-input,
.quote-modal .form-select,
.quote-modal .form-textarea{width:100%;max-width:100%}
.quote-cart-item,
.quote-cart-item-header,
.quote-cart-item-details,
.quote-cart-grand-total{min-width:0;max-width:100%}
.quote-cart-item-title,
.quote-cart-item-details span,
.quote-cart-grand-total span{overflow-wrap:anywhere}

@media(max-width:767px){
  .quote-overlay{align-items:flex-start;padding:.75rem}
  .quote-modal{max-height:calc(100vh - 1.5rem);border-radius:10px}
  .quote-header{padding:1.25rem 1.25rem 1rem;gap:1rem}
  .quote-title{font-size:1.5rem}
  .quote-content{grid-template-columns:minmax(0,1fr);padding:1.25rem;gap:1rem}
  .form-group.full,.form-note{grid-column:1}
  .form-marketing-opt-in,.form-terms-consent{grid-column:1}
  .quote-actions{padding:0 1.25rem 1.25rem;flex-direction:column-reverse}
  .quote-actions .btn{width:100%;min-height:3.25rem;justify-content:center}
  .quote-cart-item-header{gap:.5rem}
  .quote-cart-item-title{max-width:none!important}
  .quote-cart-item-remove{flex:0 0 auto}
  .quote-cart-item-details > div,
  .quote-cart-grand-total{gap:.75rem}
}

/* Success screen */
.quote-success{
  display:none;flex-direction:column;align-items:center;justify-content:center;
  padding:3rem 2rem;text-align:center;
}
.quote-success.show{display:flex}
.success-icon{font-size:3.5rem;margin-bottom:1rem}
.success-ref{
  display:inline-block;
  background:rgba(196,112,74,.12);color:var(--terra);
  font-weight:700;font-family:'Cormorant Garamond',serif;font-size:1.25rem;
  padding:.4rem 1rem;border-radius:var(--r-pill);margin:.75rem 0;
}

/* ── EMPTY / ERROR ── */
.empty-state{
  grid-column:1/-1;text-align:center;padding:4rem 2rem;
}
.empty-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}
.empty-title{font-family:'Cormorant Garamond',serif;font-size:1.5rem;font-weight:700;margin-bottom:.5rem}
.empty-sub{font-size:.9rem;color:var(--brown-l)}

/* ── TOAST ── */
.toast{
  position:fixed;bottom:1.5rem;right:1.5rem;z-index:999;
  background:var(--brown);color:var(--white);
  padding:.875rem 1.25rem;border-radius:var(--r);
  font-size:.875rem;box-shadow:var(--shadow);
  display:flex;align-items:center;gap:.5rem;
  transform:translateY(80px);opacity:0;
  transition:var(--transition);pointer-events:none;
}
.toast.show{transform:translateY(0);opacity:1}
.toast.toast-ok::before{content:'✅ '}
.toast.toast-err::before{content:'❌ '}
