/* Keep form controls inside their grid/flex tracks, including native selects. */
.ctd-form-layout > *, .checkout-layout > *, .cart-layout > *,
.ctd-form, .ctd-form-grid > *, .ctd-form fieldset,
.ctd-workspace form, .ctd-workspace label, .ctd-workspace fieldset,
.ctd-workspace .admin-field-grid > * { min-width: 0; }
.ctd-form input:not([type=checkbox]):not([type=radio]):not([type=hidden]),
.ctd-form select, .ctd-form textarea,
.ctd-workspace input:not([type=checkbox]):not([type=radio]):not([type=hidden]),
.ctd-workspace select, .ctd-workspace textarea {
  box-sizing: border-box; width: 100%; min-width: 0; max-width: 100%;
}
.ctd-form label > span, .ctd-form legend, .ctd-form small,
.ctd-form-error, .ctd-workspace label > span, .ctd-workspace .admin-help {
  overflow-wrap: anywhere;
}
.ctd-form legend { max-width: 100%; white-space: normal; }
.ctd-form-grid, .ctd-workspace .admin-field-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cart-summary > div > span { min-width: 0; overflow-wrap: anywhere; }
.cart-summary > div > strong { flex-shrink: 0; white-space: nowrap; }
.ctd-form label.check-field { align-items: flex-start; }
.ctd-form label.check-field input[type=checkbox] { margin-top: 2px; }

/* Use a single column before the form becomes cramped next to its summary. */
@media (min-width: 801px) and (max-width: 1100px) {
  .checkout-layout, .ctd-form-layout { grid-template-columns: minmax(0, 1fr); gap: 30px; }
}
@media (max-width: 800px) {
  .ctd-form-grid { grid-template-columns: minmax(0, 1fr); }
  .ctd-form .span-2 { grid-column: 1 / -1; }
  .ctd-form input:not([type=checkbox]):not([type=radio]):not([type=hidden]),
  .ctd-form select, .ctd-form textarea,
  .product-buy input, .cart-quantity input { font-size: 16px; min-height: 44px; }
  .ctd-form label { font-size: 14px; }
  .ctd-form .delivery-options { margin-inline: 0; padding: 16px 12px; }
  .ctd-form .delivery-options > label { min-height: 44px; }
  .ctd-form > .ctd-button { width: 100%; white-space: normal; }
  .product-buy { flex-wrap: wrap; }
  .product-buy .ctd-button { flex: 1 1 180px; }
  .cart-line > * { min-width: 0; }
  .cart-line-copy, .cart-line-price { overflow-wrap: anywhere; }
}
@media (max-width: 750px) {
  .ctd-workspace .admin-field-grid { grid-template-columns: minmax(0, 1fr); }
  .ctd-workspace .span-2 { grid-column: 1 / -1; }
  .ctd-workspace input:not([type=checkbox]):not([type=radio]):not([type=hidden]),
  .ctd-workspace select, .ctd-workspace textarea { font-size: 16px !important; min-height: 44px; }
  .ctd-workspace label { font-size: 14px; }
  .ctd-workspace .admin-toolbar { flex-direction: column; align-items: stretch; }
  .ctd-workspace .admin-toolbar input, .ctd-workspace .admin-toolbar select { max-width: 100%; }
  .ctd-workspace .admin-save-bar { position: static; align-items: stretch; }
  .ctd-workspace .admin-form-footer { flex-wrap: wrap; gap: 12px; padding: 12px; }
  .ctd-workspace .admin-form-footer > * { flex: 1 1 100px; }
  .ctd-workspace .admin-shell.centered { padding: 16px !important; }
  .ctd-workspace .login-card { padding: 24px 18px !important; min-width: 0; }
}

.shipping-breakdown { margin-top: 18px; border-top: 1px solid #3e4940; padding-top: 12px; }
.shipping-breakdown p { display:flex; justify-content:space-between; gap:12px; font-size:13px; padding:8px 0; color:#dce3dc; }
.shipping-breakdown strong { white-space:nowrap; }
.checkout-shipping-note { margin-top:20px !important; font-size:14px; }
.admin-product-section { border-top:1px solid #d6ded2; padding-top:24px; }
.product-delivery { margin:20px 0; padding:18px; border:1px solid var(--ctd-line); }
.product-delivery p { font-size:14px; margin:8px 0; }
.ctd-button:disabled { opacity:.5; cursor:not-allowed; }

.info-article { max-width:850px; }
.ctd-card h2 { font-size:1.5rem; }
.info-faq { padding:20px 0; border-bottom:1px solid var(--ctd-line); }
.info-faq summary { font-weight:600; cursor:pointer; }
.product-fitment { margin:24px 0; font-size:14px; }
.product-fitment h2 { font-size:1.3rem; }
