/* V20: one consistent cart width; keep V19 checkout/payment layout intact. */
body.woocommerce-cart.doplock-commerce-v20 .woocommerce-cart-form,
body.woocommerce-cart.doplock-commerce-v20 form.doplock-coupon-v19-cart,
body.woocommerce-cart.doplock-commerce-v20 .cart-collaterals,
body.woocommerce-cart.doplock-commerce-v20 .cart-collaterals .cart_totals {
  box-sizing:border-box !important; width:100% !important; max-width:100% !important;
  min-width:0 !important; float:none !important; clear:both !important;
  margin-left:0 !important; margin-right:0 !important; grid-column:1 / -1 !important;
}
body.woocommerce-cart.doplock-commerce-v20 .woocommerce-cart-form,
body.woocommerce-cart.doplock-commerce-v20 .cart-collaterals { display:block !important; }
body.woocommerce-cart.doplock-commerce-v20 .woocommerce-cart-form > table.cart { width:100% !important; max-width:100% !important; box-sizing:border-box !important; }
body.woocommerce-cart.doplock-commerce-v20 .cart-collaterals { margin-top:24px !important; }
body.woocommerce-cart.doplock-commerce-v20 .cart-collaterals .cart_totals { margin-top:0 !important; }
.doplock-applied-coupons-v20 { display:grid; gap:10px; margin-top:12px; }
.doplock-applied-coupons-v20[hidden] { display:none !important; }
.doplock-applied-coupon-v20 {
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:12px 14px; background:#effaf2; color:#166534; border:1px solid #b8e7c7;
  border-radius:12px; min-width:0; box-sizing:border-box;
}
.doplock-applied-coupon-v20 > div { min-width:0; }
.doplock-applied-coupon-v20 strong { display:block; color:inherit; font-size:15px; overflow-wrap:anywhere; }
.doplock-applied-coupon-v20 span { font-size:13px; line-height:1.5; }
.doplock-applied-coupon-v20 a.doplock-remove-coupon-v20 {
  display:flex !important; align-items:center; justify-content:center; flex:0 0 36px;
  width:36px !important; height:36px; min-height:36px !important; padding:0 !important;
  color:#166534 !important; background:#fff !important; border:1px solid #b8e7c7;
  border-radius:50%; text-decoration:none !important; box-shadow:none !important;
}
.doplock-applied-coupon-v20 a.doplock-remove-coupon-v20 span { font-size:24px; line-height:1; }
.doplock-remove-coupon-v20[aria-disabled="true"] { opacity:.5; cursor:wait; }
.doplock-remove-coupon-v20:focus-visible { outline:2px solid #166534; outline-offset:3px; }

/* The open attribute provides a readable inline fallback without JavaScript. */
dialog.doplock-consent-v20 {
  position:static; display:block; box-sizing:border-box; width:100%; max-width:100%;
  margin:20px 0 0; padding:22px; border:1px solid #e7e3dc; border-radius:22px;
  background:#fff; color:#111; text-align:left; font-size:15px; line-height:1.5;
}
body.doplock-consent-v20-ready dialog.doplock-consent-v20 {
  position:fixed; inset:0; margin:auto; width:calc(100% - 32px); max-width:540px;
  max-height:calc(100dvh - 32px); overflow-y:auto; overscroll-behavior:contain;
  padding:28px; border:0; box-shadow:0 24px 90px rgba(0,0,0,.24);
}
body.doplock-consent-v20-ready dialog.doplock-consent-v20:not([open]) { display:none; }
.doplock-consent-v20::backdrop { background:rgba(17,17,17,.55); }
.doplock-consent-v20-head { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.doplock-consent-v20 h2 { margin:0 !important; font-size:25px !important; line-height:1.2 !important; letter-spacing:-.025em; color:#111; }
.doplock-consent-v20 p { margin:16px 0; font-size:14px; line-height:1.5; }
.doplock-consent-v20 label.doplock-consent-v20-option {
  display:flex !important; align-items:flex-start; gap:12px; width:100%;
  box-sizing:border-box; padding:15px; margin:12px 0 !important;
  background:#faf8f5; border:1px solid #e7e3dc; border-radius:14px; cursor:pointer;
  font-size:15px !important; font-weight:500 !important; line-height:1.5 !important;
}
.doplock-consent-v20 .doplock-consent-v20-option input[type="checkbox"] {
  appearance:auto !important; flex:0 0 20px; width:20px !important; height:20px !important;
  min-height:20px !important; margin:2px 0 0 !important; padding:0 !important; accent-color:#f97316;
}
.doplock-consent-v20-option a { color:#ae470f; text-decoration:underline; }
.doplock-consent-v20 .doplock-consent-v20-note { color:#63646f; font-size:13px; }
.doplock-consent-v20 [data-doplock-consent-error] { color:#9f2028; font-weight:650; }
.doplock-consent-v20-actions { display:flex; gap:10px; margin-top:22px; }
.doplock-consent-v20 button { border:0 !important; box-shadow:none !important; white-space:normal !important; cursor:pointer; }
.doplock-consent-v20 [data-doplock-consent-confirm] { flex:1; min-height:48px; padding:12px 18px; border-radius:999px; background:#111; color:#fff; font-size:14px; font-weight:750; line-height:1.4; }
.doplock-consent-v20 button.doplock-consent-v20-back { min-height:48px; padding:12px 18px; border-radius:999px; background:#f0ede8; color:#111; font-size:14px; }
.doplock-consent-v20 button.doplock-consent-v20-close { flex:0 0 36px; width:36px; height:36px; min-height:36px; padding:0; border-radius:50%; background:#f0ede8; color:#111; font-size:25px; line-height:1; }
.doplock-consent-v20 [hidden], .doplock-consent-v20-summary[hidden], .doplock-native-terms-v20 { display:none !important; }
.doplock-consent-v20 :focus-visible { outline:2px solid #b94c10; outline-offset:3px; }
.doplock-consent-v20-summary { font-size:12px; line-height:1.5; color:#63646f; margin:16px 0 0; }
.doplock-consent-v20-summary button { display:inline; min-height:0; padding:0; border:0; background:none; color:#ae470f; box-shadow:none; font-size:inherit; text-decoration:underline; cursor:pointer; }
@media(max-width:480px) {
  body.doplock-consent-v20-ready dialog.doplock-consent-v20 { padding:20px; }
  .doplock-consent-v20-actions { flex-direction:column-reverse; }
  .doplock-consent-v20 h2 { font-size:23px !important; }
}
