/* ==========================================================================
   Cart + Checkout theme (Jay 2026-09-18: "theme the checkout to match rest
   of site", same idea as the older sister-site checkout).

   Loaded only on the cart and checkout pages (functions.php). Uses the same
   :root tokens as the event page (--accent, --card, --border, --text,
   --text-muted, --bg, --font-body, --radius). Selectors are prefixed with
   `body .wp-block-woocommerce-{cart|checkout}` so they beat WooCommerce's own
   block stylesheet no matter which prints later.

   NOT covered yet: My Account and the order-received page (need a real order
   to test against; add once Stripe is on).
   ========================================================================== */

/* SECTION:woo-tokens START */
body .wp-block-woocommerce-cart,
body .wp-block-woocommerce-checkout {
  --rc-field: #141414;
  --rc-line: #2A2A2A;
  --rc-muted: var(--text-muted, #AFADAF);
  --rc-accent: var(--accent, #FC4E20);
  --rc-accent-hover: var(--accent-hover, #FF6A3D);
  --rc-card: var(--card, #0D0D0D);
  --rc-border: var(--border, #1E1E1E);
  --rc-radius: var(--radius, 12px);
  color: var(--text, #FFFFFF);
  font-family: var(--font-body, 'Inter', sans-serif);
}
/* SECTION:woo-tokens END */

/* SECTION:woo-headings START */
/* Step titles match the event-page panel headings: small, orange, tracked. */
body .wp-block-woocommerce-checkout .wc-block-components-checkout-step__title,
body .wp-block-woocommerce-checkout .wc-block-components-title.wc-block-components-title,
body .wp-block-woocommerce-cart .wc-block-cart__totals-title {
  color: var(--rc-accent);
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
/* (WooCommerce already draws one hairline under each step title; adding
   another here made a double rule.) */
body .wp-block-woocommerce-checkout .wc-block-components-checkout-step__description { color: var(--rc-muted); }
/* SECTION:woo-headings END */

/* SECTION:woo-fields START */
body .wp-block-woocommerce-checkout .wc-block-components-text-input input,
body .wp-block-woocommerce-checkout .wc-block-components-text-input input[type="email"],
body .wp-block-woocommerce-checkout .wc-block-components-text-input input[type="tel"],
body .wp-block-woocommerce-checkout .wc-block-components-text-input input[type="text"],
body .wp-block-woocommerce-checkout .wc-block-components-text-input input[type="number"],
body .wp-block-woocommerce-checkout .wc-block-components-text-input input[type="password"],
body .wp-block-woocommerce-checkout textarea,
body .wp-block-woocommerce-checkout .wc-block-components-textarea,
body .wp-block-woocommerce-checkout .wc-blocks-components-select .wc-blocks-components-select__select,
body .wp-block-woocommerce-checkout .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input,
body .wp-block-woocommerce-cart .wc-block-components-text-input input,
body .wp-block-woocommerce-cart .wc-block-components-totals-coupon__input input {
  background-color: var(--rc-field);
  color: var(--text, #FFFFFF);
  border: 1px solid var(--rc-line);
  border-radius: 8px;
  box-shadow: none;
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 15px;
}
body .wp-block-woocommerce-checkout .wc-block-components-text-input label,
body .wp-block-woocommerce-checkout .wc-blocks-components-select .wc-blocks-components-select__label,
body .wp-block-woocommerce-checkout .wc-block-components-combobox .components-form-field label,
body .wp-block-woocommerce-cart .wc-block-components-text-input label {
  color: #8C8A8C;
}
body .wp-block-woocommerce-checkout .wc-block-components-text-input input:focus,
body .wp-block-woocommerce-checkout .wc-block-components-text-input.is-active input,
body .wp-block-woocommerce-checkout textarea:focus,
body .wp-block-woocommerce-checkout .wc-blocks-components-select__select:focus,
body .wp-block-woocommerce-cart .wc-block-components-text-input input:focus {
  border-color: var(--rc-accent);
  box-shadow: 0 0 0 1px var(--rc-accent);
  outline: 0;
}
body .wp-block-woocommerce-checkout .wc-block-components-text-input.has-error input,
body .wp-block-woocommerce-checkout .wc-block-components-text-input.has-error input:focus {
  border-color: #E5484D;
  box-shadow: 0 0 0 1px #E5484D;
}
body .wp-block-woocommerce-checkout .wc-block-components-validation-error,
body .wp-block-woocommerce-checkout .wc-block-components-validation-error p { color: #FF8A8A; }
/* Browser autofill paints fields white; keep them dark. */
body .wp-block-woocommerce-checkout input:-webkit-autofill,
body .wp-block-woocommerce-checkout input:-webkit-autofill:focus {
  -webkit-text-fill-color: #FFFFFF;
  caret-color: #FFFFFF;
  box-shadow: 0 0 0 100px var(--rc-field) inset;
  transition: background-color 9999s ease-in-out 0s;
}
body .wp-block-woocommerce-checkout .wc-blocks-components-select__expand { fill: var(--rc-muted); }
body .wp-block-woocommerce-checkout .wc-blocks-components-select__select option { background: #141414; color: #FFFFFF; }
/* Saved-address card */
body .wp-block-woocommerce-checkout .wc-block-components-address-card {
  background: var(--rc-card);
  border: 1px solid var(--rc-border);
  border-radius: 10px;
  color: #FFFFFF;
}
body .wp-block-woocommerce-checkout .wc-block-components-address-card address,
body .wp-block-woocommerce-checkout .wc-block-components-address-card address span { color: #D6D4D6; }
body .wp-block-woocommerce-checkout .wc-block-components-address-card__edit { color: var(--rc-accent); }
/* SECTION:woo-fields END */

/* SECTION:woo-checkbox-radio START */
/* Same look as the ticket-card checkboxes: dark box, orange when checked. */
body .wp-block-woocommerce-checkout .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"] {
  background-color: var(--rc-field);
  border: 1.5px solid #3A3A3A;
  border-radius: 5px;
}
body .wp-block-woocommerce-checkout .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked {
  background-color: var(--rc-accent);
  border-color: var(--rc-accent);
}
body .wp-block-woocommerce-checkout .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:focus {
  outline: 2px solid var(--rc-accent);
  outline-offset: 2px;
}
body .wp-block-woocommerce-checkout .wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: #FFFFFF; }
body .wp-block-woocommerce-checkout .wc-block-components-checkbox__label,
body .wp-block-woocommerce-checkout .wc-block-checkout__terms { color: #D6D4D6; font-size: 14px; line-height: 1.6; }
body .wp-block-woocommerce-checkout .wc-block-checkout__terms a { color: var(--rc-accent); }
body .wp-block-woocommerce-checkout .wc-block-checkout__terms a:hover { color: var(--rc-accent-hover); }
/* Payment method list */
body .wp-block-woocommerce-checkout .wc-block-components-radio-control__option,
body .wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-option {
  background: var(--rc-card);
  border: 1px solid var(--rc-line);
  border-radius: 10px;
  color: #FFFFFF;
  box-shadow: none;
}
body .wp-block-woocommerce-checkout .wc-block-components-radio-control__option-checked,
body .wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-option--checked-option {
  border-color: var(--rc-accent);
}
body .wp-block-woocommerce-checkout .wc-block-components-radio-control__input:checked { border-color: var(--rc-accent); }
body .wp-block-woocommerce-checkout .wc-block-components-radio-control__input:checked::before { background: var(--rc-accent); }
body .wp-block-woocommerce-checkout .wc-block-components-radio-control__description { color: var(--rc-muted); }
/* SECTION:woo-checkbox-radio END */

/* SECTION:woo-buttons START */
/* Primary buttons: Place Order, Proceed to Checkout, Apply coupon. */
body .wp-block-woocommerce-checkout .wc-block-components-button:not(.is-link),
body .wp-block-woocommerce-cart .wc-block-components-button:not(.is-link) {
  background: var(--rc-accent);
  color: #FFFFFF;
  border: 0;
  border-radius: 10px;
  min-height: 52px;
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  transition: background 0.2s ease, transform 0.2s ease;
}
body .wp-block-woocommerce-checkout .wc-block-components-button:not(.is-link):hover,
body .wp-block-woocommerce-cart .wc-block-components-button:not(.is-link):hover,
body .wp-block-woocommerce-checkout .wc-block-components-button:not(.is-link):focus-visible,
body .wp-block-woocommerce-cart .wc-block-components-button:not(.is-link):focus-visible {
  background: var(--rc-accent-hover);
  color: #FFFFFF;
}
body .wp-block-woocommerce-checkout .wc-block-components-button:not(.is-link)[disabled],
body .wp-block-woocommerce-cart .wc-block-components-button:not(.is-link)[disabled] {
  background: var(--rc-accent);
  opacity: 0.45;
  cursor: not-allowed;
}
body .wp-block-woocommerce-checkout .wc-block-components-checkout-place-order-button { min-height: 58px; font-size: 15px; }
/* Secondary text links */
body .wp-block-woocommerce-checkout .wc-block-components-checkout-return-to-cart-button,
body .wp-block-woocommerce-cart .wc-block-cart-item__remove-link,
body .wp-block-woocommerce-checkout .wc-block-cart-item__remove-link {
  color: var(--rc-muted);
  font-size: 13px;
}
body .wp-block-woocommerce-checkout .wc-block-components-checkout-return-to-cart-button:hover,
body .wp-block-woocommerce-cart .wc-block-cart-item__remove-link:hover,
body .wp-block-woocommerce-checkout .wc-block-cart-item__remove-link:hover { color: var(--rc-accent); }
/* SECTION:woo-buttons END */

/* SECTION:woo-notices START */
body .wp-block-woocommerce-checkout .wc-block-components-notice-banner,
body .wp-block-woocommerce-cart .wc-block-components-notice-banner {
  background: var(--rc-card);
  border: 1px solid var(--rc-line);
  border-radius: 10px;
  color: #FFFFFF;
}
body .wp-block-woocommerce-checkout .wc-block-components-notice-banner.is-error,
body .wp-block-woocommerce-cart .wc-block-components-notice-banner.is-error {
  background: rgba(229, 72, 77, 0.09);
  border-color: rgba(229, 72, 77, 0.55);
  color: #FFC2C2;
}
body .wp-block-woocommerce-checkout .wc-block-components-notice-banner.is-info,
body .wp-block-woocommerce-cart .wc-block-components-notice-banner.is-info { border-color: var(--rc-line); }
body .wp-block-woocommerce-checkout .wc-block-components-notice-banner.is-success,
body .wp-block-woocommerce-cart .wc-block-components-notice-banner.is-success { border-color: rgba(52, 199, 89, 0.5); }
body .wp-block-woocommerce-checkout .wc-block-components-notice-banner > svg,
body .wp-block-woocommerce-cart .wc-block-components-notice-banner > svg { fill: #FFFFFF; }
body .wp-block-woocommerce-checkout .wc-block-components-notice-banner a { color: var(--rc-accent); }
/* SECTION:woo-notices END */

/* SECTION:woo-summary START */
body .wp-block-woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block,
body .wp-block-woocommerce-cart .wp-block-woocommerce-cart-order-summary-block {
  background: var(--rc-card);
  border: 1px solid var(--rc-border);
  border-radius: var(--rc-radius);
  overflow: hidden;
}
body .wp-block-woocommerce-checkout .wc-block-components-checkout-order-summary__title,
body .wp-block-woocommerce-checkout .wc-block-components-checkout-order-summary__title-text {
  color: #FFFFFF;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
body .wp-block-woocommerce-checkout .wc-block-components-totals-wrapper,
body .wp-block-woocommerce-cart .wc-block-components-totals-wrapper { border-color: var(--rc-border); }
body .wp-block-woocommerce-checkout .wc-block-components-order-summary-item {
  border-bottom: 1px solid var(--rc-border);
  padding: 14px 0;
}
body .wp-block-woocommerce-checkout .wc-block-components-order-summary-item:last-child { border-bottom: 0; }
body .wp-block-woocommerce-checkout .wc-block-components-order-summary-item__image img,
body .wp-block-woocommerce-cart .wc-block-cart-item__image img {
  border-radius: 8px;
  object-fit: cover;
}
body .wp-block-woocommerce-checkout .wc-block-components-order-summary-item__quantity {
  background: var(--rc-accent);
  color: #FFFFFF;
  border: 2px solid var(--rc-card);
  box-shadow: none;
  font-weight: 800;
}
body .wp-block-woocommerce-checkout .wc-block-components-product-name,
body .wp-block-woocommerce-cart .wc-block-components-product-name { color: #FFFFFF; font-weight: 700; text-decoration: none; }
body .wp-block-woocommerce-checkout .wc-block-components-product-metadata,
body .wp-block-woocommerce-checkout .wc-block-components-product-details,
body .wp-block-woocommerce-cart .wc-block-components-product-metadata,
body .wp-block-woocommerce-cart .wc-block-components-product-details { color: var(--rc-muted); font-size: 13px; }
/* The "Ticket: ..." line was 15.5px next to a 13px ticket name. */
body .wp-block-woocommerce-checkout .wc-block-components-product-details li,
body .wp-block-woocommerce-cart .wc-block-components-product-details li {
  font-size: 13px;
  line-height: 1.5;
  color: var(--rc-muted);
}
body .wp-block-woocommerce-checkout .wc-block-components-product-details__name,
body .wp-block-woocommerce-cart .wc-block-components-product-details__name { color: #FFFFFF; font-weight: 700; }
body .wp-block-woocommerce-checkout .wc-block-components-product-details__value,
body .wp-block-woocommerce-cart .wc-block-components-product-details__value { color: var(--rc-muted); }
body .wp-block-woocommerce-checkout .wc-block-components-order-summary-item__individual-prices,
body .wp-block-woocommerce-cart .wc-block-cart-item__prices { color: var(--rc-muted); }
body .wp-block-woocommerce-checkout .wc-block-components-totals-item__label,
body .wp-block-woocommerce-cart .wc-block-components-totals-item__label { color: #D6D4D6; }
body .wp-block-woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
body .wp-block-woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
  color: #FFFFFF;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
body .wp-block-woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
body .wp-block-woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  font-size: 24px;
  font-weight: 800;
}
body .wp-block-woocommerce-checkout .wc-block-components-totals-coupon .wc-block-components-panel__button,
body .wp-block-woocommerce-cart .wc-block-components-totals-coupon .wc-block-components-panel__button { color: #FFFFFF; }
/* The change-quantity-on-checkout plugin renders its own ticket list (with the
   +/- and Remove controls) and re-orders it to the top with CSS, so the summary
   showed every ticket twice. Hide WooCommerce's standard copy, but only once the
   plugin's list has actually rendered items, so a plugin failure can never leave
   the summary with no tickets at all. */
body .wp-block-woocommerce-checkout .wc-block-components-checkout-order-summary__content:has(.cqocp-front-block .wc-block-components-order-summary-item) .wp-block-woocommerce-checkout-order-summary-cart-items-block,
/* Phones render the summary a second time at the bottom of the form, in this wrapper. */
body .wp-block-woocommerce-checkout .checkout-order-summary-block-fill:has(.cqocp-front-block .wc-block-components-order-summary-item) .wp-block-woocommerce-checkout-order-summary-cart-items-block { display: none; }
/* The plugin titles its panel with its internal name ("CQOCP Order Summary").
   Show a real label instead; the panel still opens and closes as before. */
body .wp-block-woocommerce-checkout .cqocp-front-block .wc-block-components-order-summary__button-text { display: none; }
body .wp-block-woocommerce-checkout .cqocp-front-block .wc-block-components-panel__button::before {
  content: "Your tickets";
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #FFFFFF;
}
/* SECTION:woo-summary END */

/* SECTION:woo-quantity START */
body .wp-block-woocommerce-checkout .wc-block-components-quantity-selector,
body .wp-block-woocommerce-cart .wc-block-components-quantity-selector {
  background: var(--rc-field);
  border: 1px solid var(--rc-line);
  border-radius: 8px;
  font-size: 14px; /* inside the summary the base size was 11px, the +/- came out ~10px */
}
body .wp-block-woocommerce-checkout .wc-block-components-quantity-selector__button,
body .wp-block-woocommerce-cart .wc-block-components-quantity-selector__button { font-size: 1.15em; }
body .wp-block-woocommerce-checkout .wc-block-cart-item__remove-link,
body .wp-block-woocommerce-cart .wc-block-cart-item__remove-link {
  font-size: 12px;
  text-decoration: underline;
  text-underline-offset: 3px;
  margin-top: 6px;
}
body .wp-block-woocommerce-checkout .wc-block-components-quantity-selector::after,
body .wp-block-woocommerce-cart .wc-block-components-quantity-selector::after { border: 0; }
body .wp-block-woocommerce-checkout .wc-block-components-quantity-selector__input,
body .wp-block-woocommerce-cart .wc-block-components-quantity-selector__input {
  background: transparent;
  color: #FFFFFF;
  font-weight: 700;
}
body .wp-block-woocommerce-checkout .wc-block-components-quantity-selector__button,
body .wp-block-woocommerce-cart .wc-block-components-quantity-selector__button {
  color: var(--rc-accent);
  opacity: 1;
}
body .wp-block-woocommerce-checkout .wc-block-components-quantity-selector__button:hover:not(:disabled),
body .wp-block-woocommerce-cart .wc-block-components-quantity-selector__button:hover:not(:disabled) { color: var(--rc-accent-hover); }
body .wp-block-woocommerce-checkout .wc-block-components-quantity-selector__button:disabled,
body .wp-block-woocommerce-cart .wc-block-components-quantity-selector__button:disabled { color: #5A585A; }
/* SECTION:woo-quantity END */

/* SECTION:woo-cart-table START */
body .wp-block-woocommerce-cart table.wc-block-cart-items { border-collapse: collapse; }
body .wp-block-woocommerce-cart table.wc-block-cart-items th {
  color: var(--rc-muted);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--rc-border);
}
body .wp-block-woocommerce-cart table.wc-block-cart-items tr.wc-block-cart-items__row td { border-top: 1px solid var(--rc-border); }
body .wp-block-woocommerce-cart .wc-block-cart-item__total,
body .wp-block-woocommerce-cart .wc-block-components-product-price { color: #FFFFFF; font-weight: 800; }
body .wp-block-woocommerce-cart .wc-block-cart__totals-title { border-bottom: 0; }
/* SECTION:woo-cart-table END */

/* SECTION:woo-overrides START */
/* Two rules elsewhere outrank the selectors above: the theme's generic page
   text rule (reverb-chrome.css: `#main-content li` at 15.5px, it carries an
   id) and WooCommerce's deep order-summary selectors (0.75em on Remove).
   Same id prefix here so these win, still scoped to cart and checkout. */
body #main-content .wp-block-woocommerce-checkout .wc-block-components-product-details li,
body #main-content .wp-block-woocommerce-cart .wc-block-components-product-details li {
  font-size: 13px;
  line-height: 1.5;
  color: var(--rc-muted);
}
body #main-content .wp-block-woocommerce-checkout .wc-block-cart-item__remove-link,
body #main-content .wp-block-woocommerce-cart .wc-block-cart-item__remove-link {
  font-size: 12px;
  color: var(--rc-muted);
}
body #main-content .wp-block-woocommerce-checkout .wc-block-cart-item__remove-link:hover,
body #main-content .wp-block-woocommerce-cart .wc-block-cart-item__remove-link:hover { color: var(--rc-accent); }
/* SECTION:woo-overrides END */

/* SECTION:woo-tickets-detail START (Jay 2026-09-20) */
/* Cart totals card: breathing room on the sides and bottom. */
body .wp-block-woocommerce-cart .wp-block-woocommerce-cart-order-summary-block { padding: 0 20px 18px; }
/* Compact ticket details (Jay 2026-09-20: "too spaced out"): each detail is ONE line, "Date: Thursday, October 15, 2026",
   with tight gaps. The #main-content prefix beats the theme's generic list rule and WooCommerce's block spacing. */
body #main-content .wp-block-woocommerce-cart .wc-block-components-product-details,
body #main-content .wp-block-woocommerce-checkout .wc-block-components-product-details { margin: 6px 0 0; padding: 0; }
body #main-content .wp-block-woocommerce-cart .wc-block-components-product-details li,
body #main-content .wp-block-woocommerce-checkout .wc-block-components-product-details li { margin: 0 0 2px; padding: 0; line-height: 1.4; }
body #main-content .wp-block-woocommerce-cart .wc-block-components-product-details__name,
body #main-content .wp-block-woocommerce-checkout .wc-block-components-product-details__name,
body #main-content .wp-block-woocommerce-cart .wc-block-components-product-details__value,
body #main-content .wp-block-woocommerce-checkout .wc-block-components-product-details__value { display: inline; margin: 0; }
/* After Party popup on the cart and checkout pages (Jay 2026-09-20). Built by js/reverb-addon-upsell.js. */
body.reverb-upsell-open { overflow: hidden; }
.reverb-upsell { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 20px; background: rgba(0, 0, 0, 0.72); }
.reverb-upsell__box { position: relative; width: 100%; max-width: 440px; padding: 30px 26px 24px; border: 1px solid var(--rc-line, #333333); border-radius: 16px; background: #141414; color: #EAEAEA; text-align: center; box-shadow: 0 24px 60px rgba(0, 0, 0, 0.6); }
.reverb-upsell__close { position: absolute; top: 10px; right: 12px; width: 34px; height: 34px; border: 0; border-radius: 50%; background: transparent; color: #B5B5B5; font-size: 24px; line-height: 1; cursor: pointer; }
.reverb-upsell__close:hover, .reverb-upsell__close:focus-visible { color: #fff; background: rgba(255, 255, 255, 0.08); }
.reverb-upsell__title { margin: 0 0 12px; color: #FC4E20; font-size: 24px; line-height: 1.15; text-transform: uppercase; }
.reverb-upsell__body { margin: 0 0 8px; font-size: 15px; line-height: 1.5; }
.reverb-upsell__body strong { color: #fff; }
.reverb-upsell__sum { margin: 0 0 18px; color: #B5B5B5; font-size: 13px; }
.reverb-upsell__message { margin: 0 0 12px; color: #ff8a70; font-size: 13px; }
.reverb-upsell__message:empty { display: none; }
.reverb-upsell__actions { display: grid; gap: 10px; }
.reverb-upsell__yes { min-height: 48px; border: 0; border-radius: 10px; background: #FC4E20; color: #fff; font-size: 14px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; cursor: pointer; transition: background 0.2s ease; }
.reverb-upsell__yes:hover:not(:disabled), .reverb-upsell__yes:focus-visible { background: #ff6a3d; }
.reverb-upsell__yes:disabled, .reverb-upsell__no:disabled { opacity: 0.6; cursor: default; }
.reverb-upsell__no { min-height: 44px; border: 1px solid #333333; border-radius: 10px; background: transparent; color: #EAEAEA; font-size: 13px; font-weight: 700; cursor: pointer; }
.reverb-upsell__no:hover:not(:disabled), .reverb-upsell__no:focus-visible { border-color: #FC4E20; color: #fff; }
/* Billing address as labelled lines (Jay 2026-09-20): Name / Address / City / State / Zip / Phone, no country. Built by js/reverb-address-card.js. */
body .wc-block-components-address-card.is-reverb-labelled .wc-block-components-address-card__address-section { display: none; }
body .reverb-addr { margin: 0; padding: 0; list-style: none; font-size: 14px; line-height: 1.55; color: #EAEAEA; }
/* One fixed label column so every value starts at the same place (Jay 2026-09-20: "the data needs to align"). */
body .reverb-addr li { display: grid; grid-template-columns: 84px minmax(0, 1fr); column-gap: 8px; margin: 0; padding: 0; }
body .reverb-addr strong { color: #fff; font-weight: 800; }
body .reverb-addr span { overflow-wrap: anywhere; }
/* How your total is calculated (Jay 2026-09-20: "i need to show calculations to get the totals"). Built by js/reverb-cart-calc.js. */
/* Same 20px side padding as the totals above it (Jay 2026-09-20: "needs padding same as above for consistency"). */
body .reverb-calc { box-sizing: border-box; margin: 16px 20px 20px; padding: 14px 16px; border: 1px solid var(--rc-line, #333333); border-radius: 10px; background: rgba(255, 255, 255, 0.03); font-size: 12.5px; }
body .reverb-calc > summary { cursor: pointer; color: #fff; font-size: 12px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; }
body .reverb-calc__list { list-style: none; margin: 10px 0 0; padding: 0; }
body .reverb-calc__row { display: flex; justify-content: space-between; gap: 12px; margin: 0; padding: 4px 0; color: var(--rc-muted, #B5B5B5); line-height: 1.4; }
body .reverb-calc__row + .reverb-calc__row { border-top: 1px solid rgba(255, 255, 255, 0.06); }
body .reverb-calc__value { flex: 0 0 auto; color: #fff; font-weight: 700; white-space: nowrap; }
body .reverb-calc__row.is-total { color: #fff; font-weight: 800; }
body .reverb-calc__row.is-sub { padding-left: 14px; font-size: 12px; }
body .reverb-calc__row.is-sub .reverb-calc__value { font-weight: 600; }
body .reverb-calc__label { min-width: 0; overflow-wrap: anywhere; }
/* Fee row: a small "i" that explains the line on hover. */
body .wp-block-woocommerce-cart [class*="totals-fees"] .wc-block-components-totals-item__label,
body .wp-block-woocommerce-checkout [class*="totals-fees"] .wc-block-components-totals-item__label { position: relative; cursor: help; }
body .wp-block-woocommerce-cart [class*="totals-fees"] .wc-block-components-totals-item__label::after,
body .wp-block-woocommerce-checkout [class*="totals-fees"] .wc-block-components-totals-item__label::after {
  content: "i";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 15px;
  height: 15px;
  margin-left: 7px;
  border: 1px solid currentColor;
  border-radius: 50%;
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
  vertical-align: 1px;
}
body .wp-block-woocommerce-cart [class*="totals-fees"] .wc-block-components-totals-item__label::before,
body .wp-block-woocommerce-checkout [class*="totals-fees"] .wc-block-components-totals-item__label::before {
  content: "Includes ticket booking and Stripe payment handling. Sales tax is shown separately.";
  position: absolute;
  left: 0;
  bottom: calc(100% + 8px);
  z-index: 5;
  width: 250px;
  max-width: 78vw;
  padding: 9px 11px;
  border: 1px solid var(--rc-line);
  border-radius: 8px;
  background: #1C1C1C;
  color: #EAEAEA;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.45;
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.5);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.15s ease;
}
body .wp-block-woocommerce-cart [class*="totals-fees"] .wc-block-components-totals-item__label:hover::before,
body .wp-block-woocommerce-checkout [class*="totals-fees"] .wc-block-components-totals-item__label:hover::before { opacity: 1; visibility: visible; }
/* Order details table on the order-received page (Jay 2026-09-21): the merged "Fees" row gets the same dotted underline,
   circled "i" and hover explanation as the checkout totals. The row is found through the span around its amount. */
body .woocommerce-table--order-details tfoot tr:has(.reverb-fees-total) th {
  position: relative;
  cursor: help;
  text-decoration: underline dotted;
  text-underline-offset: 4px;
}
body .woocommerce-table--order-details tfoot tr:has(.reverb-fees-total) th::after {
  content: "i";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 15px;
  height: 15px;
  margin-left: 7px;
  border: 1px solid currentColor;
  border-radius: 50%;
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
  vertical-align: 1px;
  text-decoration: none;
}
body .woocommerce-table--order-details tfoot tr:has(.reverb-fees-total) th::before {
  content: "Includes ticket booking and Stripe payment handling. Sales tax is shown separately.";
  position: absolute;
  left: 12px;
  bottom: calc(100% - 4px);
  z-index: 5;
  width: 250px;
  max-width: 78vw;
  padding: 9px 11px;
  border: 1px solid var(--rc-line);
  border-radius: 8px;
  background: #1C1C1C;
  color: #EAEAEA;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.45;
  text-decoration: none;
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.5);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.15s ease;
}
body .woocommerce-table--order-details tfoot tr:has(.reverb-fees-total) th:hover::before { opacity: 1; visibility: visible; }
/* Pilates waiver step (Jay 2026-09-20): a card above the payment options, like SweatPals' Review Waiver. Built by the
   waiver plugin's assets/checkout-disclosure.js. */
body .reverb-waiver-host { margin: 0 0 24px; }
body .reverb-waiver-step { padding: 22px; border: 1px solid var(--rc-line, #333333); border-radius: 12px; background: rgba(255, 255, 255, 0.03); }
body .reverb-waiver-step__title { margin: 0 0 16px; color: #fff; font-size: 18px; }
body .reverb-waiver-step__check { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 12px; padding: 14px; border-radius: 10px; background: rgba(255, 255, 255, 0.06); color: #EAEAEA; font-size: 14px; line-height: 1.45; cursor: pointer; }
body .reverb-waiver-step__check input { flex: 0 0 auto; width: 18px; height: 18px; margin-top: 2px; accent-color: #FC4E20; }
body .reverb-waiver-step__check a { color: #FC4E20; font-weight: 700; white-space: nowrap; }
body .reverb-waiver-step__field { display: block; margin-top: 14px; }
body .reverb-waiver-step__field span { display: block; margin-bottom: 6px; color: #fff; font-size: 13px; font-weight: 700; }
body .reverb-waiver-step__field input { width: 100%; box-sizing: border-box; padding: 12px 14px; border: 1px solid #333333; border-radius: 10px; background: rgba(255, 255, 255, 0.06); color: #fff; font-size: 15px; }
body .reverb-waiver-step__pad { margin-top: 14px; }
body .reverb-waiver-step__padlabel { display: block; margin-bottom: 6px; color: #fff; font-size: 13px; font-weight: 700; }
/* touch-action: none keeps the page from scrolling while a finger draws. */
body .reverb-waiver-step__canvas { display: block; width: 100%; max-width: 600px; height: auto; aspect-ratio: 3 / 1; border: 1px solid #333333; border-radius: 10px; background: #fff; cursor: crosshair; touch-action: none; }
body .reverb-waiver-step__clear { margin-top: 8px; padding: 7px 12px; border: 1px solid #333333; border-radius: 8px; background: transparent; color: #EAEAEA; font-size: 12px; font-weight: 700; cursor: pointer; }
body .reverb-waiver-step__clear:hover, body .reverb-waiver-step__clear:focus-visible { border-color: #FC4E20; color: #fff; }
body .reverb-waiver-step__row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
body .reverb-waiver-step__note { margin: 14px 0 0; color: var(--text-muted, #B5B5B5); font-size: 12.5px; line-height: 1.45; }
@media (max-width: 600px) { body .reverb-waiver-step__row { grid-template-columns: 1fr; } }
/* Empty cart page (Jay 2026-09-20): white title, no "New in store" list or dotted divider, and a Back to home button.
   The hides are a backstop in case the block markup changes; the markup itself is rebuilt in inc/event-checkout.php. */
body .wp-block-woocommerce-empty-cart-block { text-align: center; }
/* #main-content: the theme colors every page heading with an ID rule (body.page #main-content h2), so this needs the ID too. */
body #main-content .wp-block-woocommerce-empty-cart-block h2.wc-block-cart__empty-cart__title.wp-block-heading { color: #fff; }
body .wp-block-woocommerce-empty-cart-block .wp-block-separator,
body .wp-block-woocommerce-empty-cart-block .wp-block-heading:not(.wc-block-cart__empty-cart__title),
body .wp-block-woocommerce-empty-cart-block [data-block-name="woocommerce/product-new"] { display: none; }
body .reverb-empty-cart__actions { display: flex; justify-content: center; margin-top: 22px; }
body .reverb-empty-cart__actions .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 28px;
  border: 0;
  border-radius: 10px;
  background: #FC4E20;
  color: #fff;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background 0.2s ease, transform 0.2s ease;
}
body .reverb-empty-cart__actions .wp-block-button__link:hover,
body .reverb-empty-cart__actions .wp-block-button__link:focus-visible { background: #ff6a3d; color: #fff; transform: translateY(-1px); }
/* Empty checkout: the "Browse tickets" button is a normal site button (it rendered as a grey half circle). */
body .wc-block-checkout-empty { text-align: center; }
body .wc-block-checkout-empty .wp-block-button {
  display: inline-block;
  width: auto;
  height: auto;
  margin-top: 18px;
  background: transparent;
  border: 0;
  border-radius: 0;
}
body .wc-block-checkout-empty .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  height: auto;
  min-height: 48px;
  padding: 0 28px;
  border: 0;
  border-radius: 10px;
  background: var(--rc-accent);
  color: #FFFFFF;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background 0.2s ease;
}
body .wc-block-checkout-empty .wp-block-button__link:hover,
body .wc-block-checkout-empty .wp-block-button__link:focus-visible { background: var(--rc-accent-hover); color: #FFFFFF; }
/* SECTION:woo-tickets-detail END */

/* SECTION:woo-mobile START */
@media (max-width: 781px) {
  body .wp-block-woocommerce-checkout .wc-block-components-checkout-step__title,
  body .wp-block-woocommerce-cart .wc-block-cart__totals-title { font-size: 13px; }
  body .wp-block-woocommerce-checkout .wc-block-components-checkout-place-order-button { min-height: 56px; }
  body .wp-block-woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-size: 22px; }
}
/* SECTION:woo-mobile END */

/* SECTION:order-pay START */
/* Pay for order page (the Stripe card step, /checkout/order-pay/...). Jay 2026-09-21: "this page needs styling". */
body.woocommerce-order-pay #fft-sc-pay-form {
  background: #111214;
  border: 1px solid #2a2a2a;
  border-radius: 14px;
  padding: 20px;
  max-width: 760px;
  margin: 16px 0 32px;
}
body.woocommerce-order-pay p:has(+ #fft-sc-pay-form) {
  display: inline-block;
  margin: 24px 0 0;
  padding: 5px 14px;
  border: 1px solid rgba(252, 78, 32, 0.45);
  border-radius: 999px;
  background: rgba(252, 78, 32, 0.12);
  color: #FFFFFF;
  font-size: 13px;
}
body.woocommerce-order-pay #fft-sc-pay-button {
  display: block;
  width: 100%;
  margin-top: 18px;
  padding: 15px 18px;
  border: 0;
  border-radius: 10px;
  background: #FC4E20;
  color: #FFFFFF;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: background-color 0.15s ease;
}
body.woocommerce-order-pay #fft-sc-pay-button:hover:not(:disabled) { background: #FF6A3D; }
body.woocommerce-order-pay #fft-sc-pay-button:disabled { opacity: 0.5; cursor: not-allowed; }
body.woocommerce-order-pay #fft-sc-pay-button:focus-visible { outline: 2px solid #FFFFFF; outline-offset: 2px; }
body.woocommerce-order-pay #fft-sc-payment-errors { min-height: 0; margin: 12px 0 0; color: #FF8A70; font-size: 14px; }
body.woocommerce-order-pay #fft-sc-payment-errors:empty { display: none; }
@media (max-width: 781px) {
  body.woocommerce-order-pay #fft-sc-pay-form { padding: 14px; border-radius: 12px; }
}
/* SECTION:order-pay END */
