/* ============================================================
   WING PILOT SHOP — Cart page · aero-cart.css · v1
   ------------------------------------------------------------
   Location: child-theme /aero-assets/ — enqueue conditionally:

     add_action('wp_enqueue_scripts', function () {
       $dir = get_stylesheet_directory_uri() . '/aero-assets/';
       if ( is_cart() ) {
         wp_enqueue_style('aero-cart', $dir.'aero-cart.css', [], '1.0.0');
       }
     });

   Targets the WooCommerce BLOCKS cart (wp-block-woocommerce-cart),
   not the classic [woocommerce_cart] shortcode. Blocks flip their
   own layout via container classes (is-mobile / is-large) — we skin,
   never fight their layout. Scope = body.woocommerce-cart.
   Design: airy line-items (no box around the table — hairlines on a
   soft atmosphere) + one glass-lite totals card, sticky on desktop.
   RTL: logical properties only. Never letter-space Persian.
   ============================================================ */

/* ---------- 1 · TOKENS ---------- */
body.woocommerce-cart{
  --wps-surface-0:#FAFAFA;
  --wps-surface-1:#FFFFFF;
  --wps-surface-2:#F3F4F5;
  --wps-border:#E6E8EA;

  --wps-ink-900:#14181C;
  --wps-ink-700:#3A4047;
  --wps-ink-500:#6B7178;
  --wps-ink-300:#AEB4BA;

  --wps-void:#0F1B2B;
  --wps-sapphire:#183059;

  --wps-gold:#C5A059;
  --wps-gold-hi:#E6C87C;
  --wps-gold-hover:#B08D45;
  --wps-gold-deep:#8A6B2C;
  --wps-gold-metal:linear-gradient(135deg,#C5A059 0%,#E6C87C 52%,#C5A059 100%);

  --wps-success:#1E8E5A;
  --wps-warn:#C9871F;
  --wps-danger:#C2453B;

  --wps-font-head:"Kalameh","KalamehWeb","YekanBakh",Tahoma,sans-serif;
  --wps-font-body:"Yekan","YekanBakh","Vazirmatn",Tahoma,sans-serif;

  --wps-r-sm:8px; --wps-r-md:12px; --wps-r-lg:18px; --wps-r-xl:22px;

  --wps-shadow-sm:0 1px 2px rgba(15,27,43,.05);
  --wps-shadow-md:0 10px 30px rgba(15,27,43,.08);

  --wps-glass-bg-strong:rgba(255,255,255,.86);
  --wps-glass-line:rgba(255,255,255,.85);
  --wps-glass-edge:rgba(15,27,43,.08);
  --wps-glass-inner:inset 0 1px 0 rgba(255,255,255,.85),
                    inset 0 -1px 0 rgba(255,255,255,.25);

  --wps-ease:cubic-bezier(.2,.8,.2,1);
  --wps-fast:140ms; --wps-dur:220ms; --wps-slow:340ms;
}

/* ---------- 2 · ATMOSPHERE + BASE ---------- */
body.woocommerce-cart{
  background:
    radial-gradient(1100px 540px at 12% -120px, rgba(24,48,89,.045), transparent 62%),
    radial-gradient(900px 520px at 88% 40px,  rgba(197,160,89,.055), transparent 60%),
    linear-gradient(180deg,#F7F9FC 0%,#FAFAFA 640px);
}
body.woocommerce-cart .entry-content{
  font-family:var(--wps-font-body);
  color:var(--wps-ink-700);
}
body.woocommerce-cart .entry-header .entry-title{
  font-family:var(--wps-font-head);
  font-weight:800;
  font-size:clamp(1.5rem,1.1rem + 1.4vw,2rem);
  color:var(--wps-void);
  margin-block-end:10px;
}

/* ---------- 3 · CHECKOUT STEPS BAR ----------
   NOTE: the step labels ("Shopping Cart" …) come from Astra as
   English strings — translate them in Astra's settings / string
   translation; CSS cannot change text. */
#ast-checkout-wrap{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:8px 14px;
  background:var(--wps-glass-bg-strong);
  border:1px solid var(--wps-glass-edge);
  border-radius:var(--wps-r-lg);
  padding:12px 20px;
  margin-block:4px 30px;
  box-shadow:var(--wps-shadow-sm), inset 0 1px 0 var(--wps-glass-line);
}
#ast-checkout-wrap a{
  display:flex;
  align-items:center;
  gap:8px;
  text-decoration:none;
  font-family:var(--wps-font-head);
  font-weight:600;
  font-size:.875rem;
  color:var(--wps-ink-500);
  transition:color var(--wps-dur) var(--wps-ease);
}
#ast-checkout-wrap a p{margin:0;font-size:inherit;color:inherit}
#ast-checkout-wrap .ast-step-number{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  inline-size:30px;
  block-size:30px;
  border-radius:999px;
  background:var(--wps-surface-2);
  color:var(--wps-ink-500);
  font-size:.875rem;
  font-weight:700;
}
/* completed steps stay clickable */
#ast-checkout-wrap a:not(.ast-current):not(.ast-disable-click):hover{color:var(--wps-gold-deep)}
/* current */
#ast-checkout-wrap a.ast-current{color:var(--wps-void)}
#ast-checkout-wrap a.ast-current .ast-step-number{
  background:var(--wps-gold-metal);
  color:var(--wps-void);
  box-shadow:0 4px 12px rgba(197,160,89,.35), inset 0 1px 0 rgba(255,255,255,.5);
}
/* future */
#ast-checkout-wrap a.ast-disable-click{color:var(--wps-ink-300)}
#ast-checkout-wrap a.ast-disable-click .ast-step-number{color:var(--wps-ink-300)}
/* separators — chevrons must point toward the NEXT step in RTL */
#ast-checkout-wrap .ahfb-svg-iconset{color:var(--wps-ink-300)}
#ast-checkout-wrap .ahfb-svg-iconset svg{
  inline-size:13px;
  block-size:13px;
  fill:currentColor;
}
[dir="rtl"] #ast-checkout-wrap .ahfb-svg-iconset svg{transform:scaleX(-1)}
@media (max-width:921px){
  #ast-checkout-wrap{gap:6px 10px;padding:10px 14px}
  #ast-checkout-wrap a{font-size:.8125rem}
  #ast-checkout-wrap .ast-step-number{inline-size:26px;block-size:26px;font-size:.8125rem}
}
@media (max-width:600px){
  /* phones: circles for all, label only on the current step */
  #ast-checkout-wrap a:not(.ast-current) p{display:none}
}

/* ---------- 4 · LINE ITEMS (airy table) ---------- */
body.woocommerce-cart .wc-block-cart-items{
  border-collapse:collapse;
  inline-size:100%;
}
body.woocommerce-cart .wc-block-cart-items__header th{
  padding-block:12px;
  font-family:var(--wps-font-body);
  font-size:.8125rem;
  font-weight:600;
  color:var(--wps-ink-500);
  border-block-end:1px solid var(--wps-border);
  background:transparent;
}
body.woocommerce-cart .wc-block-cart-items__row{
  border-block-end:1px solid var(--wps-border);
}
body.woocommerce-cart .wc-block-cart-items__row td{
  padding-block:22px;
  vertical-align:top;
  border:0;                      /* kill the blocks' own hairlines */
}
/* thumbnail */
body.woocommerce-cart .wc-block-cart-item__image img{
  border-radius:var(--wps-r-md);
  border:1px solid var(--wps-glass-edge);
  background:var(--wps-surface-1);
}
body.woocommerce-cart .wc-block-cart-item__image{padding-inline-end:16px}
/* name · unit price · meta */
body.woocommerce-cart .wc-block-components-product-name{
  font-family:var(--wps-font-head);
  font-weight:700;
  font-size:1rem;
  color:var(--wps-ink-900);
  text-decoration:none;
  transition:color var(--wps-dur) var(--wps-ease);
}
body.woocommerce-cart .wc-block-components-product-name:hover{color:var(--wps-gold-deep)}
body.woocommerce-cart .wc-block-cart-item__prices .wc-block-components-product-price__value{
  font-size:.875rem;
  color:var(--wps-ink-500);
}
body.woocommerce-cart .wc-block-components-product-details{
  font-size:.8125rem;
  color:var(--wps-ink-500);
}
/* line total */
body.woocommerce-cart .wc-block-cart-item__total .wc-block-components-product-price__value{
  font-family:var(--wps-font-head);
  font-weight:700;
  font-size:1.0625rem;
  color:var(--wps-void);
}

/* ---------- 5 · QUANTITY + REMOVE ---------- */
body.woocommerce-cart .wc-block-components-quantity-selector{
  background:var(--wps-surface-1);
  border:1px solid var(--wps-border);
  border-radius:var(--wps-r-md);
  overflow:hidden;
  box-shadow:var(--wps-shadow-sm);
}
/* the blocks version draws its own inner lines — flatten them */
body.woocommerce-cart .wc-block-components-quantity-selector::after{content:none}
body.woocommerce-cart .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button{
  border:0;
  background:transparent;
  inline-size:36px;
  color:var(--wps-ink-500);
  font-size:1rem;
  cursor:pointer;
  transition:background var(--wps-fast) var(--wps-ease),color var(--wps-fast) var(--wps-ease);
}
body.woocommerce-cart .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:hover{
  background:var(--wps-surface-2);
  color:var(--wps-ink-900);
}
body.woocommerce-cart .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:disabled{
  opacity:.35;
  cursor:not-allowed;
  background:transparent;
}
body.woocommerce-cart .wc-block-components-quantity-selector .wc-block-components-quantity-selector__input{
  border:0;
  background:transparent;
  font-family:var(--wps-font-head);
  font-weight:700;
  font-size:.9375rem;
  color:var(--wps-ink-900);
  text-align:center;
  appearance:textfield;
  -moz-appearance:textfield;
}
body.woocommerce-cart .wc-block-components-quantity-selector__input::-webkit-outer-spin-button,
body.woocommerce-cart .wc-block-components-quantity-selector__input::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}
/* remove (trash) */
body.woocommerce-cart .wc-block-cart-item__remove-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  inline-size:34px;
  block-size:34px;
  border:0;
  border-radius:999px;
  background:transparent;
  color:var(--wps-ink-300);
  cursor:pointer;
  transition:color var(--wps-dur) var(--wps-ease),background var(--wps-dur) var(--wps-ease);
}
body.woocommerce-cart .wc-block-cart-item__remove-link svg{fill:currentColor}
body.woocommerce-cart .wc-block-cart-item__remove-link:hover{
  color:var(--wps-danger);
  background:rgba(194,69,59,.08);
}

/* ---------- 6 · TOTALS SIDEBAR (glass card, sticky) ---------- */
body.woocommerce-cart .wc-block-cart__sidebar{
  position:relative;
  background:var(--wps-glass-bg-strong);
  border:1px solid var(--wps-glass-edge);
  border-radius:var(--wps-r-xl);
  padding:22px 24px;
  box-shadow:var(--wps-shadow-md), var(--wps-glass-inner);
}
body.woocommerce-cart .wc-block-cart__sidebar::before{
  content:"";
  position:absolute;
  inset-block-start:0;
  inset-inline:18px;
  block-size:1px;
  background:linear-gradient(90deg,transparent,rgba(197,160,89,.55),rgba(255,255,255,.9),rgba(197,160,89,.55),transparent);
  pointer-events:none;
}
@media (min-width:922px){
  body.woocommerce-cart .wc-block-cart__sidebar{
    position:sticky;
    inset-block-start:calc(24px + var(--wp-admin--admin-bar--height,0px));
    align-self:flex-start;
  }
}
/* title — blocks force uppercase; Persian must stay untouched */
body.woocommerce-cart .wc-block-cart__totals-title{
  font-family:var(--wps-font-head);
  font-weight:800;
  font-size:1.125rem;
  color:var(--wps-void);
  text-transform:none;
  letter-spacing:0;
}
/* section separators inside the card */
body.woocommerce-cart .wc-block-components-totals-wrapper{
  border-block-start:1px solid var(--wps-border);
}
/* coupon panel */
body.woocommerce-cart .wc-block-components-panel__button{
  font-family:var(--wps-font-body);
  font-weight:600;
  font-size:.9rem;
  color:var(--wps-ink-700);
  transition:color var(--wps-dur) var(--wps-ease);
}
body.woocommerce-cart .wc-block-components-panel__button:hover{color:var(--wps-gold-deep)}
/* rows */
body.woocommerce-cart .wc-block-components-totals-item__label{
  font-size:.9375rem;
  color:var(--wps-ink-700);
}
body.woocommerce-cart .wc-block-components-totals-item__value{color:var(--wps-ink-900)}
/* grand total */
body.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__label{
  font-family:var(--wps-font-head);
  font-weight:700;
  font-size:1rem;
  color:var(--wps-void);
}
body.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value{
  font-family:var(--wps-font-head);
  font-weight:800;
  font-size:1.1875rem;
  color:var(--wps-void);
}

/* ---------- 7 · PROCEED CTA (the one gold) ---------- */
body.woocommerce-cart .wc-block-cart__submit-button{
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  inline-size:100%;
  border:none;
  border-radius:var(--wps-r-md);
  padding-block:14px;
  font-family:var(--wps-font-head);
  font-weight:700;
  font-size:1.0625rem;
  text-decoration:none;
  color:var(--wps-void);
  background:var(--wps-gold-metal);
  background-size:160% 160%;
  background-position:0% 50%;
  box-shadow:0 8px 22px rgba(197,160,89,.32), inset 0 1px 0 rgba(255,255,255,.5);
  transition:background-position var(--wps-slow) var(--wps-ease),
             transform var(--wps-fast) var(--wps-ease),
             box-shadow var(--wps-dur) var(--wps-ease);
}
body.woocommerce-cart .wc-block-cart__submit-button:hover{
  background-position:90% 50%;
  transform:translateY(-1px);
  color:var(--wps-void);
  box-shadow:0 12px 28px rgba(197,160,89,.42), inset 0 1px 0 rgba(255,255,255,.5);
}
body.woocommerce-cart .wc-block-cart__submit-button:active{transform:translateY(0)}
body.woocommerce-cart .wc-block-cart__submit-button::before{
  content:"";
  position:absolute;
  inset-block:0;
  inset-inline-start:-60%;
  inline-size:40%;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.55),transparent);
  transform:skewX(-18deg);
  transition:inset-inline-start .6s var(--wps-ease);
  pointer-events:none;
}
body.woocommerce-cart .wc-block-cart__submit-button:hover::before{inset-inline-start:120%}

/* ---------- 8 · NOTICES ---------- */
body.woocommerce-cart .wc-block-components-notice-banner{
  background:var(--wps-surface-1);
  border:1px solid var(--wps-border);
  border-inline-start:3px solid var(--wps-sapphire);
  border-radius:var(--wps-r-md);
  box-shadow:var(--wps-shadow-sm);
  color:var(--wps-ink-700);
}
body.woocommerce-cart .wc-block-components-notice-banner.is-error{border-inline-start-color:var(--wps-danger)}
body.woocommerce-cart .wc-block-components-notice-banner.is-success{border-inline-start-color:var(--wps-success)}
body.woocommerce-cart .wc-block-components-notice-banner.is-warning{border-inline-start-color:var(--wps-warn)}
body.woocommerce-cart .wc-block-components-notice-banner > svg{fill:currentColor;opacity:.7}

/* ---------- 9 · MOBILE POLISH ---------- */
@media (max-width:921px){
  body.woocommerce-cart .wc-block-cart-items__row td{padding-block:16px}
  body.woocommerce-cart .wc-block-cart__sidebar{padding:18px 18px}
  body.woocommerce-cart .wc-block-components-product-name{font-size:.9375rem}
}

/* ---------- 10 · A11Y + MOTION ---------- */
body.woocommerce-cart :is(a,button,input,select,[role="button"]):focus-visible{
  outline:2px solid var(--wps-gold-deep);
  outline-offset:2px;
}
@media (prefers-reduced-motion:reduce){
  body.woocommerce-cart *,
  body.woocommerce-cart *::before,
  body.woocommerce-cart *::after{
    transition:none !important;
    animation:none !important;
  }
}
