
/* Dynamic catalog & quote-list styling layered onto approved Regal design. */
.product-card__details .add-to-quote,.package-to-quote{background:transparent;cursor:pointer;font:800 12px/1.4 var(--sans);color:var(--purple);transition:background .18s}
.product-card__details .add-to-quote{width:100%;margin-top:auto;padding:13px 0 0;border:0;border-top:1px solid #eee8e4;text-align:left;display:flex;align-items:center;justify-content:space-between}
.product-card__details .add-to-quote span,.package-to-quote span{font-size:20px}
.package-card__picture img{height:100%;width:100%;object-fit:cover}
.package-card__description{font-size:12px;line-height:1.6;color:#65606c;margin:0 0 9px}
.package-to-quote{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;margin-top:auto;padding:11px 14px;border:1px solid #ac854b;border-radius:5px}
.package-to-quote:hover{background:#faf2e7}
.quote-cart{padding:17px;margin-bottom:23px;border:1px solid #dacee1;border-radius:9px;background:#fcfafe}
.quote-cart__header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}
.quote-cart__header strong{font-size:15px;color:#29163f}
.quote-cart__header span{font-size:11px;color:#886b4b;font-weight:800}
.quote-cart__items>p,.quote-cart__note{color:#716976;font-size:12px;line-height:1.65}
.quote-cart__note{margin-top:12px}
.quote-cart__subtotal{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:15px 0 3px;margin-top:5px;border-top:1px solid #d7c8d9}
.quote-cart__subtotal[hidden]{display:none!important}
.quote-cart__subtotal span{font-size:12px;line-height:1.5;color:#514459;font-weight:700}
.quote-cart__subtotal strong{font-size:19px;line-height:1.4;color:#29163f;font-weight:800;text-align:right;white-space:nowrap}
@media(max-width:420px){
  .quote-cart__subtotal{align-items:flex-start}
  .quote-cart__subtotal span{max-width:52%}
  .quote-cart__subtotal strong{font-size:17px;white-space:normal}
}
.quote-line{border-top:1px solid #e5dce9;padding:11px 0;display:flex;align-items:center;justify-content:space-between;gap:14px}
.quote-line__title{min-width:0}
.quote-line__title strong{display:block;font-size:12px;line-height:1.5}
.quote-line__title>span{font-size:11px;color:#726979}
.quote-line__actions{display:flex;align-items:center;gap:7px;flex-shrink:0}
.quote-form-card .quote-line__actions label{font-weight:600;font-size:11px;display:flex;align-items:center;gap:4px}
.quote-form-card .quote-line__actions input{width:64px;min-height:36px;padding:4px 6px;margin:0;border-radius:4px}
.quote-line__actions button{background:transparent;border:0;color:#7e4264;text-decoration:underline;font-weight:700;font-size:11px;cursor:pointer}
@media(max-width:420px){
.quote-line{align-items:start;flex-direction:column;gap:7px}
.quote-line__actions{width:100%;justify-content:space-between}
}

/* Customers may choose a common quantity or type any whole-number request. */
.product-quantity{display:grid;grid-template-columns:1fr auto;gap:7px;margin:2px 0 12px;align-items:center;width:100%}
.product-quantity>label{grid-column:1 / -1;font-size:11px;font-weight:800;color:#4c3e57}
.product-quantity select,.product-quantity input{min-width:0;max-width:100%;height:40px;border:1px solid #d6cbd9;border-radius:5px;background:#fff;color:#29163f;font:700 12px var(--sans);padding:6px 9px}
.product-quantity select{width:100%}
.product-quantity input{width:76px}
.product-quantity select:focus-visible,.product-quantity input:focus-visible{outline:2px solid #a77b3c;outline-offset:1px}
@media(max-width:420px){.product-quantity{grid-template-columns:minmax(0,1fr) 65px}.product-quantity input{width:65px;padding:6px}}


/* Rental window and selectable fulfillment services */
.rental-date-help{
  grid-column:1 / -1;
  margin:-7px 0 2px;
  color:#716976;
  font-size:12px;
  line-height:1.6;
}
.quote-services{
  border:1px solid #e6dce7;
  border-radius:9px;
  margin:22px 0 20px;
  padding:17px;
  background:#fdfbfe;
  min-width:0;
}
.quote-services legend{
  padding:0 5px;
  color:#29163f;
  font-weight:800;
  font-size:15px;
}
.quote-services__intro,.quote-services__help{
  font-size:12px;
  line-height:1.6;
  color:#6b6070;
  margin:0 0 12px;
}
.quote-services .quote-service-option{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:11px 12px;
  margin:8px 0;
  border:1px solid #e2d9e2;
  border-radius:7px;
  background:white;
  cursor:pointer;
}
.quote-service-option:has(input:checked){border-color:#a58baa;background:#f8f3fb}
.quote-services .quote-service-option[hidden]{display:none!important}
.quote-services .quote-service-option--extra{
  margin-left:18px;
  border-left:3px solid #bd9765;
  background:#faf7fc;
}
.quote-services .quote-service-option input:focus-visible{outline:3px solid #a77b3c;outline-offset:3px}
.quote-services legend span{color:#9b6736}
@media(max-width:420px){.quote-services .quote-service-option--extra{margin-left:8px}}
.quote-services .quote-service-option input{
  flex:0 0 auto;
  width:18px;
  height:18px;
  margin:2px 0 0;
  accent-color:#29163f;
}
.quote-service-option strong{display:block;color:#2d203b;font-size:13px;line-height:1.4}
.quote-service-option small{display:block;color:#706878;font-size:11px;font-weight:500;line-height:1.5;margin-top:3px}
.quote-services__help{margin:13px 0}
.quote-services .quote-services__address{
  display:block;
  font-size:12px;
  font-weight:800;
  color:#342a40;
  margin-top:14px;
}
.quote-services .quote-services__address input{
  display:block;
  width:100%;
  min-height:46px;
  padding:10px 12px;
  margin-top:7px;
  border:1px solid #dcd5df;
  border-radius:5px;
  background:white;
  color:#2b2233;
  font-size:13px;
  font-weight:500;
}
.quote-services .quote-services__address[hidden]{display:none!important}
@media(max-width:420px){
  .quote-services{padding:14px 12px}
  .quote-services .quote-service-option{padding:10px}
}

/* Preferred times are paired with the rental dates on desktop. */
.form-grid .rental-time-label > span{
  color:#342a40;
  display:block;
}
.form-grid .rental-time-label select{
  width:100%;
  min-width:0;
  background:#fff;
}
@media(max-width:760px){
  /* Stack each date with its time on phones to keep the selectors readable. */
  .form-grid > label:has(input[type="date"]),
  .form-grid > .rental-time-label{grid-column:1 / -1}
  .form-grid input[type="date"],
  .form-grid .rental-time-label select{min-width:0;width:100%}
}
