/* I campi condizionali non devono ereditare display:grid quando nascosti. */
.checkout-form [hidden] { display:none !important; }
.cart-totals [hidden] { display:none !important; }
.checkout-fiscal { border:1px solid #6665; padding:1.4rem; min-width:0; margin:1.5rem 0; }
.checkout-fiscal legend { padding:0 .6rem; font-size:1.1rem; }
.checkout-fiscal .checkout-fields { margin:1rem 0; }
.checkout-help { font-size:.85rem; line-height:1.6; opacity:.8; }
.checkout-fiscal input[type=radio], .checkout-fiscal input[type=checkbox] { width:1.1rem; min-height:1.1rem; accent-color:#b5b8bc; }
.checkout-fiscal .text-action { background:none; border:0; text-align:left; cursor:pointer; }
.cart-tax-row { font-size:.9rem; }
.cart-tax-note { display:block; max-width:260px; margin-top:5px; font-size:.75rem; line-height:1.5; }
.checkout-vat-pending { margin:24px 0; padding:18px; border:1px solid #a6a39a; background:#ffffff06; font-size:.9rem; }
.checkout-vat-pending h4 { margin:0 0 12px; color:var(--yellow); }

/* Errori solo dopo l'uscita dal campo o un tentativo di conferma. Non usiamo
 * :invalid, che colorerebbe in rosso tutto il form appena aperto. */
.checkout-form input[aria-invalid=true],.checkout-form select[aria-invalid=true] { border-bottom:2px solid #ff8585; background-color:#ff85850a; }
.checkout-form input[type=checkbox][aria-invalid=true] { outline:2px solid #ff8585; outline-offset:3px; }
.checkout-field-error { display:block; color:#ff9c9c; font-size:.78rem; font-weight:400; line-height:1.5; }
.checkout-check:has(.checkout-field-error:not([hidden])) { flex-wrap:wrap; }
.checkout-check .checkout-field-error { flex-basis:100%; margin-left:27px; }
.checkout-form input,.checkout-form select { scroll-margin-block:150px 40px; }
.checkout-mobile-total { display:none; }

/* clip non crea un contenitore di scroll implicito come overflow-x:hidden,
 * e permette al riepilogo sticky di seguire lo scorrimento della pagina. */
body[data-page=cart]:not(.menu-open) { overflow-x:clip; }
@media(min-width:901px) {
  .cart-layout { grid-template-columns:1.15fr .85fr; }
  .checkout-form { grid-column:1; grid-row:1; }
  .cart-panel { grid-column:2; grid-row:1; position:sticky; top:90px; max-height:calc(100dvh - 110px); display:flex; flex-direction:column; overflow-y:auto; scrollbar-width:thin; }
  /* Con dogana e note fiscali il pannello può essere più alto: gli articoli
   * non devono essere schiacciati a zero. Scorre l'intero riepilogo. */
  .cart-panel .cart-items { min-height:0; overflow:visible; flex-shrink:0; }
  .cart-panel>h3,.cart-panel>.cart-totals,.cart-panel>.checkout-status,.cart-panel>.text-action { flex-shrink:0; }
}
/* Su finestre basse resta scorribile l'intero riepilogo. */
@media(min-width:901px) and (max-height:650px) {
  .cart-panel { overflow-y:auto; display:block; }
  .cart-panel .cart-items { overflow:visible; }
}
@media(max-width:900px) {
  .checkout-mobile-total { display:flex; justify-content:space-between; align-items:center; gap:12px; position:sticky; top:65px; z-index:15; padding:12px 0; margin:0 0 24px; border-block:1px solid var(--line); background:#222121; font-size:.9rem; box-shadow:0 8px 14px #0003; }
  .checkout-mobile-total strong { color:var(--yellow); text-align:right; }
  .checkout-mobile-total a { text-decoration:underline; text-underline-offset:3px; }
}
