/* =============================================================
   FAU WooCommerce presentation.
   Maps official WooCommerce Cart/Checkout Block and My Account
   markup onto the Fable "workbench" component system. Classic
   checkout/shortcodes are out of scope by platform authority.
   ============================================================= */

/* ---------- Shared block components ---------- */
.wc-block-components-button,
.wp-block-woocommerce-cart .wc-block-components-button,
.wp-block-woocommerce-checkout .wc-block-components-button{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:44px;
  padding:.625rem 1.375rem;border-radius:var(--r-md);font-family:var(--font-body);font-weight:700;font-size:1rem;
  line-height:1.2;background:var(--red-600);color:#fff;border:1px solid transparent;cursor:pointer;
  transition:background var(--t-fast) var(--ease);text-decoration:none;box-shadow:none}
.wc-block-components-button:hover:not(:disabled){background:var(--red-700);color:#fff}
.wc-block-components-button:disabled{opacity:.45}
.wc-block-components-button.outlined,
.wc-block-components-button.contained.outlined{background:transparent;color:var(--btn2-tx);border-color:var(--btn2-bd)}

/* Text inputs / selects (checkout uses floating labels; keep them legible) */
.wc-block-components-text-input input[type="text"],
.wc-block-components-text-input input[type="email"],
.wc-block-components-text-input input[type="tel"],
.wc-block-components-text-input input[type="number"],
.wc-block-components-text-input input[type="url"],
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input,
.wc-block-components-select .wc-block-components-select__container select,
.wc-block-components-form .wc-block-components-text-input input{
  min-height:44px;background:var(--paper-50);border:1px solid var(--bd);border-radius:var(--r-md);
  color:var(--tx);font-family:var(--font-body);font-size:1rem}
.wc-block-components-text-input input:hover,
.wc-block-components-select .wc-block-components-select__container select:hover{border-color:var(--bd-strong)}
.wc-block-components-text-input input:focus,
.wc-block-components-select select:focus{outline:2px solid var(--focus-ring);outline-offset:1px;box-shadow:none;border-color:var(--bd-strong)}
.wc-block-components-text-input label,
.wc-block-components-select label,
.wc-block-components-combobox label{color:var(--tx-3);font-family:var(--font-body)}
.wc-block-components-text-input.has-error input{border-color:var(--bad-tx)}
.wc-block-components-validation-error p{color:var(--bad-tx);font-size:var(--fs-caption);font-weight:600}
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]{
  width:20px;height:20px;border:1px solid var(--bd);border-radius:var(--r-sm);accent-color:var(--red-600)}
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked{background:var(--red-600);border-color:var(--red-600)}
.wc-block-components-checkbox__label{font-size:var(--fs-small);color:var(--tx-2)}

/* Section titles */
.wc-block-components-title,
.wc-block-components-checkout-step__title{font-family:var(--font-display);font-weight:700;color:var(--tx)}
.wc-block-components-checkout-step__description{color:var(--tx-3);font-size:var(--fs-small)}

/* Notices */
.wc-block-components-notice-banner{border-radius:var(--r-md);border:1px solid var(--bd-subtle);border-left-width:4px;font-size:var(--fs-small)}
.wc-block-components-notice-banner.is-success{background:var(--ok-tint);border-left-color:var(--ok-fill);color:var(--ok-tx)}
.wc-block-components-notice-banner.is-info{background:var(--info-tint);border-left-color:var(--info-fill);color:var(--info-tx)}
.wc-block-components-notice-banner.is-warning{background:var(--warn-tint);border-left-color:var(--warn-fill);color:var(--warn-tx)}
.wc-block-components-notice-banner.is-error{background:var(--bad-tint);border-left-color:var(--bad-fill);color:var(--bad-tx)}
.wc-block-components-notice-banner>svg{fill:currentColor}

/* ---------- Cart / Checkout layout: order summary card ---------- */
.wc-block-components-sidebar .wc-block-components-totals-wrapper,
.wc-block-components-sidebar .wc-block-components-order-summary{padding-inline:0}
.wc-block-components-sidebar{background:var(--paper-50);border:1px solid var(--paper-border-subtle);border-radius:var(--r-lg);
  padding:var(--sp-50)!important}
.is-large.wc-block-cart .wc-block-cart__totals-title{font-family:var(--font-display);font-weight:700;color:var(--tx);
  font-size:1rem;text-transform:none;letter-spacing:0}
.wc-block-components-totals-item,
.wc-block-components-totals-footer-item{font-size:var(--fs-small);color:var(--tx-2)}
.wc-block-components-totals-item__value,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value{font-weight:700;font-variant-numeric:tabular-nums;color:var(--tx)}
.wc-block-components-totals-footer-item{border-top:2px solid var(--paper-border-strong);font-size:1.0625rem;color:var(--tx)}
.wc-block-components-totals-wrapper{border-top:1px solid var(--paper-border-subtle)}

/* Cart line items */
.wp-block-woocommerce-cart .wc-block-cart-items th{font-size:var(--fs-caption);text-transform:uppercase;
  letter-spacing:.05em;color:var(--tx-3);border-bottom:1px solid var(--bd)}
.wp-block-woocommerce-cart .wc-block-cart-items td{border-bottom:1px solid var(--paper-border-subtle)}
.wc-block-components-product-name{font-family:var(--font-display);font-weight:700;color:var(--tx);text-decoration:none}
.wc-block-components-product-price,.wc-block-cart-item__total .wc-block-components-product-price{font-weight:700;font-variant-numeric:tabular-nums;color:var(--tx)}
.wc-block-components-product-metadata,.wc-block-components-product-details{font-size:var(--fs-caption);color:var(--tx-3)}
.wc-block-cart-item__quantity .wc-block-components-quantity-selector{border:1px solid var(--bd);border-radius:var(--r-md)}
.wc-block-cart-item__remove-link{color:var(--tx-3);font-size:var(--fs-caption);text-decoration:underline}
.wc-block-cart__empty-cart__title{font-family:var(--font-display);color:var(--tx)}

/* Checkout steps/fieldsets */
.wc-block-components-checkout-step{border:0}
.wc-block-checkout__form{max-width:none}
.wc-block-components-form .wc-block-components-checkout-step__container{margin-bottom:var(--sp-40)}
.wc-block-checkout__actions_row .wc-block-components-checkout-place-order-button{min-height:52px;font-size:1.0625rem;width:100%}

/* Payment methods as selectable cards */
.wc-block-components-radio-control-accordion-option,
.wc-block-components-payment-method-label{color:var(--tx);font-weight:600}
.wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option{
  border:1px solid var(--paper-border);border-radius:var(--r-md);margin-bottom:var(--sp-30);padding-inline:var(--sp-40)}
.wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option.wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option:has(input:checked){
  border-color:var(--blue-700);box-shadow:0 0 0 1px var(--blue-700)}
.wc-block-components-radio-control__input{accent-color:var(--blue-700);width:20px;height:20px}
.wc-block-components-radio-control__input:checked{border-color:var(--blue-700);background:var(--paper-50)}
.wc-block-components-radio-control__input:checked::before{background:var(--blue-700)}

/* Coupon / express filtering */
.wc-block-components-panel__button{color:var(--link);font-weight:600}

/* ---------- Recurring-term acknowledgement (fau-site-core module) ---------- */
.fau-recurring-disclosure{border:2px solid var(--blue-700);background:var(--blue-100);border-radius:var(--r-lg);
  padding:var(--sp-50);margin:0 0 var(--sp-50)}
.fau-recurring-disclosure h2{color:#163C7A;font-size:1rem;margin:0 0 var(--sp-30);font-family:var(--font-display)}
.fau-recurring-disclosure p{margin:0 0 var(--sp-30);max-width:none}
.fau-recurring-disclosure p strong{display:block;font-size:var(--fs-small);color:#182234;background:#fff;
  border-radius:var(--r-md);padding:var(--sp-40);border:1px solid #C5D4EE;font-weight:600}
.fau-recurring-disclosure p:last-child{margin:0}
.fau-recurring-disclosure a{color:var(--blue-800);font-weight:600}
/* The required acknowledgement checkbox is a Woo additional checkout field;
   give its row the same emphasis so acceptance is unmistakable. */
#checkout-fields div[class*="fau_recurring"] .wc-block-components-checkbox,
.wc-block-components-address-form__fau_site_core-recurring-ack{font-weight:600}

/* ---------- Order confirmation ---------- */
.wc-block-order-confirmation-summary{background:var(--paper-50);border:1px solid var(--paper-border-subtle);border-radius:var(--r-lg);padding:var(--sp-50)}
.wc-block-order-confirmation-totals__table th,
.wc-block-order-confirmation-totals__table td{border-color:var(--paper-border-subtle);font-size:var(--fs-small)}
.wc-block-order-confirmation-status p{font-family:var(--font-display);color:var(--tx)}

/* ---------- My Account (Woo remains authority) ---------- */
.woocommerce-MyAccount-navigation{margin-bottom:var(--sp-50)}
.woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--sp-30)}
.woocommerce-MyAccount-navigation li{margin:0}
.woocommerce-MyAccount-navigation a{display:inline-flex;align-items:center;min-height:44px;padding:.5rem 1rem;
  border:1px solid var(--paper-border);border-radius:var(--r-md);background:var(--paper-50);color:var(--tx-2);
  text-decoration:none;font-weight:600;font-size:var(--fs-small)}
.woocommerce-MyAccount-navigation a:hover{border-color:var(--paper-border-strong);color:var(--tx)}
.woocommerce-MyAccount-navigation li.is-active a{background:var(--tx);color:var(--bg-page);border-color:var(--tx)}
.woocommerce-MyAccount-content{background:var(--paper-50);border:1px solid var(--paper-border-subtle);border-radius:var(--r-lg);padding:var(--sp-50)}
.woocommerce-MyAccount-content table{width:100%;border-collapse:collapse;font-size:var(--fs-small)}
.woocommerce-MyAccount-content th{font-size:var(--fs-caption);text-transform:uppercase;letter-spacing:.05em;color:var(--tx-3);
  text-align:left;padding:.75rem 1rem;border-bottom:1px solid var(--bd);background:var(--bg-alt)}
.woocommerce-MyAccount-content td{padding:.75rem 1rem;border-bottom:1px solid var(--paper-border-subtle);color:var(--tx-2)}
.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-total{font-variant-numeric:tabular-nums}
.woocommerce table.shop_table{border:1px solid var(--paper-border-subtle);border-radius:var(--r-lg);border-collapse:separate;border-spacing:0;overflow:hidden}
.woocommerce table.shop_table td,.woocommerce table.shop_table th{border-right:0;border-left:0}
.woocommerce-account .woocommerce form.login,
.woocommerce-account .woocommerce form.lost_reset_password,
.woocommerce-account .woocommerce form.register{background:var(--paper-50);border:1px solid var(--paper-border-subtle);
  border-radius:var(--r-lg);padding:var(--sp-60);max-width:32rem;margin-inline:auto}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row select{min-height:44px;padding:.625rem .875rem;background:var(--paper-50);
  border:1px solid var(--bd);border-radius:var(--r-md);color:var(--tx);font-family:var(--font-body);font-size:1rem;width:100%}
.woocommerce form .password-input input.input-text{padding-right:3.25rem}
.woocommerce form .show-password-input{width:44px;height:44px;right:0;top:11px}
.woocommerce form .form-row label{font-weight:600;font-size:var(--fs-small);color:var(--tx)}
.woocommerce .button,.woocommerce a.button,.woocommerce button.button{
  display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.625rem 1.375rem;
  border-radius:var(--r-md);font-family:var(--font-body);font-weight:700;font-size:1rem;background:var(--red-600);
  color:#fff;border:0;cursor:pointer;text-decoration:none}
.woocommerce .button:hover,.woocommerce a.button:hover{background:var(--red-700);color:#fff}
.woocommerce-message,.woocommerce-info,.woocommerce-error{border-radius:var(--r-md);border:1px solid var(--bd-subtle);
  border-left-width:4px;font-size:var(--fs-small);padding:var(--sp-40);list-style:none}
.woocommerce-message{background:var(--ok-tint);border-left-color:var(--ok-fill);color:var(--ok-tx)}
.woocommerce-info{background:var(--info-tint);border-left-color:var(--info-fill);color:var(--info-tx)}
.woocommerce-error{background:var(--bad-tint);border-left-color:var(--bad-fill);color:var(--bad-tx)}

/* Subscription status badges (Woo Subscriptions tables) */
.subscription-status,.woocommerce-orders-table .order-status{display:inline-flex;align-items:center;padding:.1875rem .625rem;
  border-radius:var(--r-pill);font-size:var(--fs-caption);font-weight:600;background:var(--paper-200);color:var(--tx-2)}
.subscription-status.status-active,.order-status.status-completed{background:var(--ok-tint);color:var(--ok-tx)}
.subscription-status.status-on-hold,.order-status.status-on-hold,.order-status.status-pending{background:var(--warn-tint);color:var(--warn-tx)}
.subscription-status.status-cancelled,.order-status.status-cancelled,.order-status.status-failed{background:var(--bad-tint);color:var(--bad-tx)}

/* Native Cart and Checkout Block coupon controls remain visible and usable. */
.wc-block-components-totals-coupon,
.wc-block-components-totals-coupon__content { color: var(--tx); }
.wc-block-components-totals-coupon .wc-block-components-text-input { margin-block-end: var(--sp-30); }
.wc-block-components-totals-coupon .wc-block-components-button { min-height: 44px; }
.wc-block-components-totals-coupon__button { color: var(--link); font-weight: 700; }
