/* Keep checkout operable inside the mobile viewport and when a keyboard opens. */
.cart-dialog [hidden] { display: none !important; }
.cart-dialog { max-height: 94vh; max-height: 94dvh; overscroll-behavior: contain; scroll-padding: 1rem; }
.cart-dialog input, .cart-dialog select { font-size: 16px; scroll-margin: 1rem; }
.cart-dialog button { min-height: 44px; }
.cart-dialog .cart-close { min-width: 44px; min-height: 44px; flex-shrink: 0; }
.cart-line { min-width: 0; }
.cart-line h3 { overflow-wrap: anywhere; }
.cart-line-controls { flex-wrap: wrap; }
.cart-line-controls button { min-width: 44px; min-height: 44px; }
.cart-totals strong { white-space: nowrap; }
.paypal-area, #paypal-buttons { width: 100%; }
.order-confirmation { border: 2px solid #27613e; background: #eef6ef; padding: 1rem; color: #173a2a; overflow-wrap: anywhere; }
.cart-dialog :focus-visible { outline: 3px solid #84611d; outline-offset: 3px; }
@media (max-width: 480px) {
  .cart-line { grid-template-columns: minmax(0, 1fr); }
  .cart-line-controls { justify-content: flex-start; }
  .cart-dialog { width: calc(100% - 1rem); margin: auto; padding: 1rem; }
  .cart-dialog .cart-head h2 { font-size: 1.8rem; }
  .cart-dialog .shipping-city-row { grid-template-columns: minmax(0, 1fr) 88px; }
  .cart-dialog .promo-entry > div { flex-wrap: wrap; }
  .cart-dialog .promo-entry input { min-width: 0; width: 100%; }
  #shipping-rates { width: 100%; white-space: normal; }
}
