/* =========================================================================
   AlbaniALL cart — classic WooCommerce cart restyled to the mockup.
   Scope: .al-cart. Design tokens mirror the driver module (driver-single.css)
   so the two product surfaces stay visually identical; kept on this scope
   because driver-single.css only loads on product pages.
   ========================================================================= */
.al-cart{
  --orange:#F28C00; --orange-dark:#d97d00; --orange-soft:#fff4e3;
  --purple:#5A3D8E; --purple-dark:#4a2f78; --purple-soft:#f4f0fb;
  --bg:#fcfcfd; --card:#ffffff;
  --t-main:#5e5e5e; --t-strong:#2B2B2B; --t-mid:#454545; --light:#9aa3ad;
  --line:#ececf1; --r:16px; --r-sm:11px; --r-pill:999px;
  --sh-sm:0 2px 10px rgba(30,20,60,.05);
  --sh:0 14px 40px rgba(60,40,110,.10);
  --sh-lg:0 24px 70px rgba(60,40,110,.16);
  --ease:cubic-bezier(.4,0,.2,1); --spring:cubic-bezier(.34,1.56,.64,1);
  font-family:'Manrope',system-ui,sans-serif;color:var(--t-main);font-size:16px;line-height:1.6;
  max-width:1240px;margin:0 auto;padding:0 24px;
}
.al-cart *,.al-cart *::before,.al-cart *::after{box-sizing:border-box}
.al-cart a{color:inherit;text-decoration:none}
.al-cart img{max-width:100%;display:block}
.al-cart button{cursor:pointer;font-family:inherit;border:none;background:none;margin:0}
.al-cart h1,.al-cart h2,.al-cart h3{font-family:'Open Sans',sans-serif;color:var(--t-mid);line-height:1.15;margin:0}
.al-cart p{margin:0}
.al-cart :focus-visible{outline:2px solid var(--orange);outline-offset:2px;border-radius:4px}
.al-cart .al-eyebrow{font-size:13px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--orange);margin-bottom:8px}

/* header */
.al-cart-head{padding:34px 0 22px}
.al-cart-head h1{font-size:clamp(30px,4vw,44px);font-weight:800;color:var(--t-mid);letter-spacing:-.6px}

/* layout: items + sticky summary */
.al-cart-layout{display:grid;grid-template-columns:1fr 372px;gap:30px;padding:6px 0 56px;align-items:start}
@media(max-width:940px){.al-cart-layout{grid-template-columns:1fr;gap:22px}}

/* items list */
.al-cart-items{margin:0}
.al-items{display:flex;flex-direction:column;gap:16px}
.al-cart .ci{position:relative;display:grid;grid-template-columns:118px 1fr auto;gap:20px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-sm);padding:16px;transition:box-shadow .25s}
.al-cart .ci:hover{box-shadow:var(--sh)}
.al-cart .ci-fig{position:relative;border-radius:12px;overflow:hidden;background:var(--purple-soft);aspect-ratio:1/1}
.al-cart .ci-fig a,.al-cart .ci-fig img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}

.al-cart .ci-main{min-width:0;display:flex;flex-direction:column;gap:8px;padding-right:8px}
/* kind label above the name — makes the product type obvious without the photo pill */
.al-cart .ci-kind{align-self:flex-start;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--purple);background:var(--purple-soft);padding:3px 10px;border-radius:var(--r-pill)}
.al-cart .ci-kind.accent{color:#fff;background:var(--orange)}
.al-cart .ci-main h3{font-size:19px;font-weight:800;color:var(--t-mid);letter-spacing:-.3px}
.al-cart .ci-main h3 a{color:inherit}
.al-cart .ci-main h3 a:hover{color:var(--purple)}
/* WC item meta (driver Rate/Route, rental Check in/out) rendered as tags */
.al-cart .ci-main .variation{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 0;padding:0;list-style:none}
.al-cart .ci-main .variation dt,.al-cart .ci-main .variation dd{margin:0;padding:0}
.al-cart .ci-main .variation dt{display:inline-flex;align-items:center;background:var(--purple-soft);color:var(--purple);font-size:12.5px;font-weight:700;padding:5px 4px 5px 11px;border-radius:var(--r-pill) 0 0 var(--r-pill);clear:left}
.al-cart .ci-main .variation dd{display:inline-flex;align-items:center;background:var(--purple-soft);color:var(--t-mid);font-size:12.5px;font-weight:800;padding:5px 11px 5px 4px;border-radius:0 var(--r-pill) var(--r-pill) 0;margin-right:8px}
.al-cart .ci-main .variation dd p{margin:0}
.al-cart .ci-unit{font-size:13px;color:var(--light);font-weight:600;margin-top:auto}
.al-cart .ci-unit .amount{color:var(--t-mid);font-weight:700}
.al-cart .backorder_notification{font-size:12.5px;color:var(--orange-dark);font-weight:700}

/* right column of a row: remove + qty + price */
.al-cart .ci-side{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:14px;min-width:150px}
/* override WC core .woocommerce a.remove (absolute, 1em box, red !important) */
.al-cart a.remove.ci-remove{position:static!important;top:auto!important;left:auto!important;display:inline-flex!important;align-items:center;gap:6px;width:auto!important;height:auto!important;font-size:12.5px!important;line-height:1!important;border-radius:0!important;font-weight:700;color:var(--light)!important;background:none!important;text-decoration:none}
.al-cart a.remove.ci-remove:hover{color:#c0392b!important;background:none!important}
.al-cart a.remove.ci-remove svg{flex:0 0 auto}
.al-cart .ci-qty-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:6px}

/* native .quantity → stepper (buttons injected by cart.js) */
.al-cart .quantity{display:inline-flex;align-items:stretch;height:44px;border:1.5px solid var(--line);border-radius:var(--r-sm);overflow:hidden;background:var(--card)}
.al-cart .quantity .qty-dec,.al-cart .quantity .qty-inc{width:38px;height:100%;font-size:18px;font-weight:700;color:var(--purple);background:var(--bg);display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}
.al-cart .quantity .qty-dec:hover,.al-cart .quantity .qty-inc:hover{background:var(--purple);color:#fff}
.al-cart .quantity input.qty{width:40px;height:100%;font-size:15px;font-weight:800;text-align:center;color:var(--t-strong);border:none;border-left:1.5px solid var(--line);border-right:1.5px solid var(--line);background:transparent;-moz-appearance:textfield;padding:0}
.al-cart .quantity input.qty::-webkit-outer-spin-button,.al-cart .quantity input.qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
/* sold-individually driver row: locked qty (classes land on the input) */
.al-cart .quantity input.qty.is-fixed{border:none;width:46px;cursor:default}
.al-cart .qty-once{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--light);font-weight:700}
.al-cart .qty-once::before{content:"";width:12px;height:12px;flex:0 0 auto;background:var(--purple);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat}

.al-cart .ci-price{font-family:'Open Sans',sans-serif;font-weight:800;font-size:24px;color:var(--orange);white-space:nowrap;line-height:1}
.al-cart .ci-price .amount{color:inherit}

/* actions row (native update + nonce). Update button hidden — qty auto-submits. */
.al-cart .al-cart-actions{margin:0;padding:0}
.al-cart .al-update-cart{display:none!important}
/* busy: во время debounce-отправки блокируем форму и показываем спиннер */
.al-cart form.woocommerce-cart-form{position:relative}
.al-cart form.woocommerce-cart-form.al-cart-busy::after{content:"";position:absolute;inset:0;background:rgba(252,252,253,.55);z-index:5}
.al-cart form.woocommerce-cart-form.al-cart-busy::before{content:"";position:absolute;top:50%;left:50%;width:34px;height:34px;margin:-17px 0 0 -17px;border:3px solid var(--line);border-top-color:var(--orange);border-radius:50%;animation:al-cart-spin .7s linear infinite;z-index:6}
@keyframes al-cart-spin{to{transform:rotate(360deg)}}
.al-cart .cart-foot-link{margin-top:16px}
.al-cart .cart-foot-link a{display:inline-flex;align-items:center;gap:8px;color:var(--purple);font-weight:700;font-size:14.5px}
.al-cart .cart-foot-link a:hover{color:var(--orange)}

/* summary */
/* RESET: WC core woocommerce-layout.css sets
   .woocommerce-page .cart-collaterals .cart_totals{float:right;width:48%} (0,3,0),
   which the forked summary card inherits via its WC `cart_totals` class — shrinking
   it to 48% of the aside and floating it right. This 4-class scope (0,4,0) reliably
   outranks it so the card fills the 372px column. (Mirrors checkout.css RESET block.) */
.al-cart .cart-collaterals.summary .cart_totals{float:none;width:auto}
/* Sticky summary must clear the sticky header (.elementor-location-header, 90px)
   which sticks at the admin-bar offset (core --wp-admin--admin-bar--height: 32/46px,
   unset->0px for anon). Matches tripgo-child header offset approach. 24px = gap. */
.al-cart .summary{position:sticky;top:calc(var(--wp-admin--admin-bar--height, 0px) + 114px)}
@media(max-width:940px){.al-cart .summary{top:calc(var(--wp-admin--admin-bar--height, 0px) + 129px)}}
.al-cart .summary-card{background:var(--card);border:1px solid var(--line);border-radius:22px;box-shadow:var(--sh-lg);overflow:hidden;position:relative}
.al-cart .summary-card::before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:linear-gradient(90deg,var(--purple),var(--orange))}
.al-cart .summary-in{padding:24px 24px 26px}
.al-cart .summary-in h2{font-size:20px;font-weight:800;color:var(--t-mid);margin-bottom:18px}

.al-cart .coupon{display:flex;gap:9px;margin:0 0 20px}
.al-cart .coupon input{flex:1;min-width:0;padding:12px 14px;font-family:inherit;font-size:14px;font-weight:600;color:var(--t-strong);background:var(--card);border:1.5px solid var(--line);border-radius:var(--r-sm);transition:border-color .2s,box-shadow .2s;text-transform:uppercase}
.al-cart .coupon input::placeholder{color:#a7a3b3;font-weight:500;text-transform:none}
.al-cart .coupon input:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 4px rgba(242,140,0,.14)}
.al-cart .coupon button{flex:0 0 auto;padding:0 18px;font-weight:800;font-size:13.5px;color:var(--purple);background:var(--purple-soft);border-radius:var(--r-sm);transition:background .2s,color .2s}
.al-cart .coupon button:hover{background:var(--purple);color:#fff}

.al-cart .sum-rows{display:flex;flex-direction:column;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.al-cart .sum-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:15px;font-weight:600;color:var(--t-main)}
.al-cart .sum-row .v{font-weight:700;color:var(--t-mid);font-variant-numeric:tabular-nums;text-align:right}
.al-cart .sum-row .v .amount{color:inherit}
.al-cart .sum-row.discount,.al-cart .sum-row.discount .v,.al-cart .sum-row.discount .v .amount{color:#1a8a4a}
.al-cart .sum-row.discount a.woocommerce-remove-coupon{margin-left:8px;font-size:12px;font-weight:700;color:var(--light)}
.al-cart .sum-total{display:flex;align-items:baseline;justify-content:space-between;padding-top:16px}
.al-cart .sum-total .lbl{font-size:16px;font-weight:800;color:var(--t-mid)}
.al-cart .sum-total .amt{font-family:'Open Sans',sans-serif;font-weight:800;font-size:34px;color:var(--orange);letter-spacing:-1px;font-variant-numeric:tabular-nums}
.al-cart .sum-total .amt .amount{color:inherit}

/* native proceed-to-checkout button */
.al-cart .wc-proceed-to-checkout{margin-top:20px}
.al-cart .wc-proceed-to-checkout .checkout-button{width:100%;padding:16px;display:flex;align-items:center;justify-content:center;gap:10px;background:var(--orange);color:#fff;font-weight:800;font-size:16px;border-radius:var(--r-sm);transition:transform .15s,background .2s,box-shadow .2s;box-shadow:0 8px 22px rgba(242,140,0,.32)}
.al-cart .wc-proceed-to-checkout .checkout-button:hover{background:var(--orange-dark);transform:translateY(-2px);box-shadow:0 12px 28px rgba(242,140,0,.4)}
.al-cart .trust{margin-top:16px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--light);text-align:center}
.al-cart .trust svg{color:var(--purple);flex:0 0 auto}

/* Re-assert coupon + proceed button styling at .summary-card scope (0,4,x).
   WC core `.button`/`.button.alt` and the theme's Elementor orange
   (--e-global-color-secondary #FE8800) otherwise outrank the single-scope
   `.al-cart .coupon button` / `.al-cart .wc-proceed-to-checkout .checkout-button`
   rules above, flattening font-size/weight/radius and swapping the design orange.
   Same deterministic-override approach as checkout.css. */
.al-cart .summary-card .coupon button.button{padding:0 18px;font-size:13.5px;font-weight:800;border-radius:var(--r-sm);color:var(--purple);background:var(--purple-soft)}
.al-cart .summary-card .coupon button.button:hover{background:var(--purple);color:#fff}
.al-cart .summary-card .wc-proceed-to-checkout a.checkout-button{padding:16px;font-size:16px;font-weight:800;border-radius:var(--r-sm);background:var(--orange);color:#fff}
.al-cart .summary-card .wc-proceed-to-checkout a.checkout-button:hover{background:var(--orange-dark)}

/* empty state */
.al-cart--empty{padding-bottom:20px}
.al-cart .cart-empty{padding:26px 0 70px;text-align:center;max-width:520px;margin:0 auto}
.al-cart .empty-art{width:132px;height:132px;margin:0 auto 26px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 50% 40%,var(--purple-soft),var(--orange-soft));position:relative}
.al-cart .empty-art svg{color:var(--purple)}
.al-cart .empty-art::after{content:"";position:absolute;inset:-8px;border-radius:50%;border:1.5px dashed rgba(90,61,142,.28)}
.al-cart .cart-empty h2{font-size:26px;font-weight:800;color:var(--t-mid);margin-bottom:12px}
.al-cart .cart-empty p{font-size:15.5px;color:var(--t-main);font-weight:600;margin-bottom:26px}
.al-cart .empty-cta{display:inline-flex;align-items:center;gap:10px;background:var(--orange);color:#fff;font-weight:800;font-size:15.5px;padding:15px 30px;border-radius:var(--r-sm);box-shadow:0 8px 22px rgba(242,140,0,.32);transition:transform .15s,background .2s}
.al-cart .empty-cta:hover{background:var(--orange-dark);transform:translateY(-2px)}

/* cross-sells (relocated full width below the layout) */
.al-cart--cross-sells{padding-top:8px;padding-bottom:56px}
.al-cart .al-sec-head{margin-bottom:22px}
.al-cart .al-sec-head h2{font-size:clamp(22px,3vw,30px);font-weight:800;color:var(--t-mid);letter-spacing:-.4px}
.al-cart .cross-sells ul.products{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:0;padding:0;list-style:none}
@media(max-width:820px){.al-cart .cross-sells ul.products{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.al-cart .cross-sells ul.products{grid-template-columns:1fr}}
.al-cart .cross-sells ul.products::before,.al-cart .cross-sells ul.products::after{display:none}
.al-cart .cross-sells ul.products li.product{width:auto!important;margin:0!important;float:none!important}

/* mobile: rows as cards, not a table strip */
@media(max-width:560px){
  .al-cart .ci{grid-template-columns:88px 1fr;grid-template-areas:"fig main" "side side";gap:14px}
  .al-cart .ci-fig{grid-area:fig}
  .al-cart .ci-main{grid-area:main;padding-right:0}
  .al-cart .ci-side{grid-area:side;flex-direction:row;align-items:center;justify-content:space-between;min-width:0;border-top:1px solid var(--line);padding-top:14px}
  .al-cart .ci-main h3{font-size:17px}
  .al-cart .ci-price{font-size:21px}
}

/* =========================================================================
   Flow steps — reusable purchase-progress stepper (Cart → Checkout → Done).
   Neutral scope .al-flow with self-contained tokens so the same component
   renders identically on cart and (later) checkout without .al-cart context.
   Markup/classes match canonical reference (mockup-steps-fix report).
   ========================================================================= */
.al-flow{
  --purple:#5A3D8E; --orange:#F28C00; --card:#ffffff;
  --line:#ececf1; --light:#9aa3ad; --t-mid:#454545; --r-pill:999px;
  font-family:'Manrope',system-ui,sans-serif;
}
.al-flow.co-steps{display:flex;align-items:center;gap:6px;margin:20px 0 4px;flex-wrap:wrap}
.al-flow .co-step{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:14px;color:var(--light)}
.al-flow .co-step .num{width:26px;height:26px;flex:0 0 auto;display:grid;place-items:center;border-radius:50%;border:1.5px solid var(--line);background:var(--card);font-size:13px;font-weight:800;color:var(--light)}
.al-flow .co-step.done .num{background:var(--purple);border-color:var(--purple);color:#fff}
.al-flow .co-step.done{color:var(--purple)}
.al-flow .co-step.active .num{background:var(--orange);border-color:var(--orange);color:#fff;box-shadow:0 6px 16px rgba(242,140,0,.32)}
.al-flow .co-step.active{color:var(--t-mid)}
.al-flow .co-step .num svg{width:14px;height:14px}
.al-flow .co-bar{width:34px;height:2px;border-radius:2px;background:var(--line)}
.al-flow .co-bar.fill{background:var(--purple)}
@media(max-width:560px){.al-flow .co-step .lbl{display:none}.al-flow .co-bar{width:22px}}
