.h21-cart-button {
  display:inline-flex; align-items:center; justify-content:center; min-height:44px;
  border:1px solid #175986; border-radius:10px; padding:8px 12px;
  background:#175986; color:#fff; font:600 14px/1.2 system-ui,sans-serif;
  cursor:pointer; text-align:center;
}
.h21-cart-button:hover { background:#11486f; }
.h21-cart-button:disabled { opacity:.55; cursor:default; }
.h21-cart-button:focus-visible, .h21-cart-page :focus-visible { outline:2px solid #0073ab; outline-offset:3px; }
.h21-menu-actions [data-cart-menu] { position:relative; }
.h21-menu-actions [data-cart-menu] b {
  position:absolute; top:1px; right:0; border-radius:20px; background:#175986; color:white;
  padding:2px 4px; font:700 10px/1.1 system-ui,sans-serif;
}
.product-footer:has([data-cart-add]), .product-pick-footer:has([data-cart-add]) {
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:8px; align-items:stretch;
}
.product-footer:has([data-cart-add]) > strong, .product-pick-footer:has([data-cart-add]) > strong { grid-column:1/-1; }
.product-pick-footer:has([data-cart-add]) .brand-action, .product-footer:has([data-cart-add]) .details-link {
  display:flex; justify-content:center; align-items:center; min-height:44px; padding:7px 4px; white-space:normal; text-align:center;
}
.product-buybox:has([data-cart-add]) { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:center; }
.product-buybox:has([data-cart-add]) > .catalog-button { grid-column:1/-1; width:100%; }
.cart-toast {
  position:fixed; z-index:1500; right:12px; top:70px; max-width:calc(100vw - 24px);
  display:flex; flex-wrap:wrap; align-items:center; gap:6px 12px; padding:8px 12px;
  background:#102d4d; color:#fff; border-radius:12px; box-shadow:0 8px 26px #102d4d38;
  font:600 14px/1.4 system-ui,sans-serif;
}
.cart-toast a { color:#fff; text-decoration:underline; }
.cart-toast button { color:inherit; background:none; border:0; cursor:pointer; font-size:24px; min-height:40px; min-width:40px; }
.h21-cart-page { margin:0; background:#f1f7fb; color:#102d4d; font:16px/1.5 system-ui,sans-serif; }
.cart-shell, .cart-shell * { box-sizing:border-box; }
.cart-shell { max-width:1120px; padding:24px 16px 48px; margin:auto; }
.cart-shell a { color:#175986; text-underline-offset:3px; }
.cart-shell h1 { font-size:clamp(30px,5vw,46px); line-height:1.1; }
.cart-layout { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:18px; align-items:start; }
.cart-panel, .cart-row { background:white; border:1px solid #dce8f2; border-radius:16px; padding:16px; overflow-wrap:anywhere; }
.cart-row { display:flex; gap:12px; margin-bottom:12px; align-items:flex-start; }
.cart-row > div { flex:1; min-width:0; }
.cart-row img { width:clamp(48px,14vw,110px); aspect-ratio:1; object-fit:contain; }
.cart-panel h2, .cart-row h2 { font-size:18px; margin:0 0 6px; }
.cart-shell p { margin:6px 0 12px; }
.cart-panel label { display:grid; gap:4px; margin-bottom:10px; }
.cart-shell input:not([type="checkbox"]), .cart-shell textarea {
  min-height:44px; width:100%; min-width:0; border:1px solid #aebfcd; border-radius:8px;
  background:white; color:inherit; font:inherit; padding:7px 9px;
}
.cart-controls { display:flex; align-items:end; flex-wrap:wrap; gap:8px 16px; }
.cart-controls button { border:0; padding:0; min-height:44px; background:none; color:#8b2c2b; text-decoration:underline; cursor:pointer; font:inherit; }
.cart-row input[type="number"] { width:65px; display:block; }
.cart-install { display:flex; gap:8px 12px; align-items:center; flex-wrap:wrap; margin-top:8px; }
.cart-install small { display:block; color:#465f74; }
.cart-panel .cart-consent { display:flex; align-items:flex-start; gap:8px; }
.cart-consent input { margin:5px 0 0; flex:none; }
#cart-total > p:not(.cart-terms) { display:flex; flex-wrap:wrap; justify-content:space-between; gap:4px 10px; }
.cart-grand-total { border-top:1px solid #dce8f2; padding-top:8px; }
.cart-note { color:#85421a; }
.h21-cart-page [hidden], .cart-toast[hidden] { display:none !important; }
@media (max-width:720px) { .cart-layout { grid-template-columns:minmax(0,1fr); } }
.h21-menu-actions:has([data-cart-menu]) {
  display:grid; grid-template-columns:repeat(6,minmax(0,1fr));
}
.h21-menu-actions:has([data-cart-menu]) > :is(a,button) { min-width:0; box-sizing:border-box; }
.h21-menu-actions:has([data-cart-menu]) :is(svg,img) { width:min(100%,30px); height:30px; }
