/* Native WooCommerce forms, with a shared, quiet purchase hierarchy. */
.broccoli .purchase-shell {
  max-width:1120px;
  padding-bottom:72px;
}
.purchase-shell .breadcrumbs { margin-bottom:28px; }
.purchase-shell .page-heading { margin:0 0 26px; }
.purchase-shell .page-heading h1 { font-size:clamp(30px,3.6vw,42px); }
.purchase-shell .page-heading .eyebrow { margin-bottom:8px; }
.purchase-shell .entry-content { min-width:0; }
.purchase-shell .checkout-steps {
  display:block;
  width:100%;
  max-width:none;
  margin:0 0 24px;
  padding:22px 0;
  color:var(--muted);
  font-size:14px;
}
.purchase-shell .checkout-steps ol {
  display:grid;
  grid-template-columns:1fr 1fr auto;
  gap:24px;
  margin:0;
  padding:0;
  list-style:none;
}
.purchase-shell .purchase-step { display:flex; align-items:center; gap:24px; min-width:0; }
.purchase-shell .purchase-step:not(:last-child)::after { content:""; height:1px; flex:1; background:var(--line); }
.purchase-shell .purchase-step.is-complete::after { background:#8caa6b; }
.purchase-shell .purchase-step-content { display:flex; align-items:center; gap:12px; min-height:40px; }
.purchase-shell .purchase-step-number {
  display:grid;
  place-items:center;
  flex:0 0 38px;
  width:38px;
  height:38px;
  border:1px solid #b9c3b0;
  border-radius:50%;
  color:#65725f;
  font-size:12px;
  font-weight:600;
  font-variant-numeric:tabular-nums;
}
.purchase-shell .is-current .purchase-step-number { background:var(--green); border-color:var(--green); color:#fffef8; box-shadow:0 0 0 4px #28523b0a; }
.purchase-shell .is-complete .purchase-step-number { background:#e6edda; border-color:#bacba5; color:var(--green); }
.purchase-shell .is-complete .purchase-step-content { color:var(--green); }
.purchase-shell .purchase-step-number svg { width:19px; height:19px; }
.purchase-shell .checkout-steps a:hover { text-decoration:underline; text-underline-offset:4px; }
.purchase-shell .woocommerce .woocommerce-error,
.purchase-shell .woocommerce .woocommerce-message,
.purchase-shell .woocommerce .woocommerce-info {
  margin:0 0 22px;
  border-radius:var(--radius);
  font-size:14px;
  line-height:1.5;
}
.purchase-shell :is(a,button,input,select,textarea):focus-visible { outline:2px solid #74776f; outline-offset:3px; }

/* Keep the native cart table and its AJAX replacement selectors intact. */
.broccoli.woocommerce-cart .purchase-shell .woocommerce table.woocommerce-cart-form__contents {
  margin:0 0 24px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  border-spacing:0;
  background:#fbf9f2;
}
.broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart th { padding:13px 16px; border:0; color:var(--muted); font-size:11px; font-weight:400; }
.broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart td { padding:20px 16px; border:0; border-top:1px solid var(--line); vertical-align:middle; }
.broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart .product-remove { width:46px; padding-right:0; }
.broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart .product-thumbnail { width:84px; padding-right:0; }
.broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart .product-thumbnail img { width:64px; height:72px; }
.broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart .product-name { min-width:0; overflow-wrap:anywhere; }
.broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart .product-name a { font-size:15px; line-height:1.4; text-decoration:none; }
.broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart .product-name a:hover { text-decoration:underline; text-underline-offset:3px; }
.broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart .product-name dl.variation { font-size:12px; color:var(--muted); margin-top:5px; }
.broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart .product-quantity { width:166px; }
.broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart .product-subtotal { text-align:right; font-weight:600; }
.broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart .amount { white-space:nowrap; font-variant-numeric:tabular-nums; }
.broccoli.woocommerce-cart .purchase-shell .broccoli-quantity { width:134px; grid-template-columns:44px minmax(42px,1fr) 44px; margin:0; }
.broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart a.remove {
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  margin:0;
  border:1px solid transparent;
  border-radius:50%;
  color:#6b7067!important;
  font-size:23px;
  font-weight:400;
  line-height:1;
  text-decoration:none;
}
.broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart a.remove:hover { color:var(--green)!important; border-color:var(--line); background:#eaeedc; }
.broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart td.actions { padding:20px; background:#f0eee4; }
.broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart td.actions .coupon {
  display:grid;
  grid-template-columns:minmax(170px,250px) auto;
  gap:8px 10px;
  float:none;
  width:max-content;
  max-width:100%;
  margin:0;
  padding:0;
  text-align:left;
}
.broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart .coupon label {
  position:static!important;
  display:block!important;
  grid-column:1/-1;
  width:auto;
  height:auto;
  margin:0;
  padding:0;
  clip:auto!important;
  clip-path:none!important;
  overflow:visible;
  white-space:normal;
  color:var(--ink);
  font-size:12px;
  font-weight:600;
}
.broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart .coupon input.input-text {
  float:none;
  width:100%;
  min-width:0;
  margin:0;
}
.broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart .coupon button.button {
  float:none;
  width:auto;
  min-height:44px;
  margin:0;
  padding:10px 18px;
  border:1px solid var(--green);
  background:transparent;
  color:var(--green);
  font-size:13px;
  font-weight:600;
  box-shadow:none;
  transform:none;
}
.broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart .coupon button.button:hover { background:#e4ead8; }
.broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart td.actions>button { margin-top:12px; }
.broccoli.woocommerce-cart .purchase-shell .woocommerce .cart-collaterals .cart_totals {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,360px);
  align-items:end;
  gap:28px 72px;
  float:none;
  width:100%;
  padding:6px 0 0;
  border:0;
  border-radius:0;
  background:transparent;
}
.broccoli.woocommerce-cart .purchase-shell .purchase-summary-details { min-width:0; }
.broccoli.woocommerce-cart .purchase-shell .cart_totals h2 { margin:0 0 12px; font-size:16px; letter-spacing:-.02em; }
.broccoli.woocommerce-cart .purchase-shell .cart_totals table.shop_table { display:table; width:100%; margin:0; border-collapse:collapse; }
.broccoli.woocommerce-cart .purchase-shell .cart_totals table.shop_table th,
.broccoli.woocommerce-cart .purchase-shell .cart_totals table.shop_table td { padding:9px 0; border:0; font-size:13px; vertical-align:top; }
.broccoli.woocommerce-cart .purchase-shell .cart_totals table.shop_table th { width:56%; padding-right:16px; font-weight:400; color:var(--muted); }
.broccoli.woocommerce-cart .purchase-shell .cart_totals table.shop_table td { text-align:right; font-variant-numeric:tabular-nums; }
.broccoli.woocommerce-cart .purchase-shell .cart_totals .cart-discount { color:var(--green); }
.broccoli.woocommerce-cart .purchase-shell .cart_totals .woocommerce-remove-coupon { display:inline-block; margin-left:5px; color:var(--muted); font-size:11px; text-decoration:underline; text-underline-offset:3px; }
.broccoli.woocommerce-cart .purchase-shell .cart_totals table.shop_table .order-total th,
.broccoli.woocommerce-cart .purchase-shell .cart_totals table.shop_table .order-total td { padding-top:17px; border-top:1px solid var(--line); }
.broccoli.woocommerce-cart .purchase-shell .cart_totals table.shop_table .order-total th { padding-top:24px; color:var(--ink); font-weight:600; }
.broccoli.woocommerce-cart .purchase-shell .cart_totals .order-total strong { font-size:26px; letter-spacing:-.05em; }
.broccoli.woocommerce-cart .purchase-shell .cart_totals .includes_tax { display:block; margin-top:4px; color:var(--muted); font-size:11px; }
.broccoli.woocommerce-cart .purchase-shell .purchase-next-label { margin:0 0 7px; font-size:12px; font-weight:600; color:var(--green); }
.broccoli.woocommerce-cart .purchase-shell .purchase-next-note { margin:0; max-width:340px; font-size:13px; line-height:1.55; color:var(--muted); }
.broccoli.woocommerce-cart .purchase-shell .wc-proceed-to-checkout { padding:16px 0 0; }
.broccoli.woocommerce-cart .purchase-shell .woocommerce .wc-proceed-to-checkout a.checkout-button {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:52px;
  margin:0;
  padding:14px 20px;
  border:1px solid var(--green);
  background:var(--green);
  font-size:15px;
  font-weight:600;
  box-shadow:none;
  transform:none;
}
.broccoli.woocommerce-cart .purchase-shell .woocommerce .wc-proceed-to-checkout a.checkout-button:hover { background:var(--deep); border-color:var(--deep); color:#fff; }

@media(max-width:767px) {
  .broccoli .purchase-shell { padding-bottom:44px; }
  .purchase-shell .page-heading { margin-bottom:22px; }
  .purchase-shell .checkout-steps { padding:18px 0; margin-bottom:24px; font-size:11px; }
  .purchase-shell .checkout-steps ol { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
  .purchase-shell .purchase-step { position:relative; justify-content:center; gap:0; align-items:flex-start; }
  .purchase-shell .purchase-step:not(:last-child)::after { position:absolute; top:16px; left:calc(50% + 24px); width:calc(100% - 36px); margin:0; flex:none; }
  .purchase-shell .purchase-step-content { flex-direction:column; align-items:center; width:100%; gap:7px; text-align:center; }
  .purchase-shell .purchase-step-number { width:32px; height:32px; flex-basis:32px; font-size:11px; }
  .broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart { display:block; }
  .broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart tbody { display:block; }
  .broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart tr.cart_item {
    position:relative;
    display:grid;
    grid-template-columns:64px minmax(0,1fr) 34px;
    gap:12px 14px;
    padding:20px 16px;
    border-top:1px solid var(--line);
  }
  .broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart tr.cart_item:first-child { border-top:0; }
  .broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart tr.cart_item td { display:block; width:auto; padding:0; border:0; background:transparent; text-align:left!important; }
  .broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart tr.cart_item td::before { display:none; }
  .broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart tr.cart_item .product-remove { grid-column:3; grid-row:1; justify-self:end; }
  .broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart tr.cart_item .product-thumbnail { grid-column:1; grid-row:1/3; }
  .broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart tr.cart_item .product-name { grid-column:2; grid-row:1; }
  .broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart tr.cart_item .product-price { grid-column:2; grid-row:2; font-size:12px; color:var(--muted); }
  .broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart tr.cart_item .product-price::before { content:attr(data-title) ": "; display:inline; float:none; font-weight:400; }
  .broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart tr.cart_item .product-quantity { grid-column:1/3; grid-row:3; }
  .broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart tr.cart_item .product-subtotal { grid-column:2/4; grid-row:3; justify-self:end; align-self:center; padding-left:70px; pointer-events:none; font-size:15px; }
  .broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart td.actions { padding:16px; text-align:left!important; }
  .broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart td.actions .coupon { width:100%; grid-template-columns:minmax(0,1fr) auto; }
  .broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart .coupon input.input-text { font-size:16px; }
  .broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart .coupon button.button { padding:10px 12px; font-size:12px; }
  .broccoli.woocommerce-cart .purchase-shell .woocommerce .cart-collaterals .cart_totals { grid-template-columns:minmax(0,1fr); gap:22px; padding-top:0; }
  .broccoli.woocommerce-cart .purchase-shell .cart_totals table.shop_table tr { display:table-row; }
  .broccoli.woocommerce-cart .purchase-shell .cart_totals table.shop_table tbody { display:table-row-group; width:100%; }
  .broccoli.woocommerce-cart .purchase-shell .cart_totals table.shop_table th,
  .broccoli.woocommerce-cart .purchase-shell .cart_totals table.shop_table td { display:table-cell; background:transparent; }
  .broccoli.woocommerce-cart .purchase-shell .cart_totals table.shop_table td::before { display:none; }
  .broccoli.woocommerce-cart .purchase-shell .cart_totals .order-total strong { font-size:25px; }
  .broccoli.woocommerce-cart .purchase-shell .purchase-next-note { max-width:none; }
}
.broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart th { padding:9px 10px; }
.broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart td { padding:12px 10px; }
.broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart .product-thumbnail { width:64px; }
.broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart .product-thumbnail img { width:48px; height:54px; }
.broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart .product-quantity { width:150px; }
.broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart td.actions { padding:12px 14px; }
.broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart td.actions>button { margin-top:8px; }
@media(max-width:767px) {
  .broccoli.woocommerce-cart .purchase-shell .breadcrumbs { margin-bottom:12px; }
  .broccoli.woocommerce-cart .purchase-shell .page-heading { margin-bottom:10px; }
  .broccoli.woocommerce-cart .purchase-shell .checkout-steps { padding:8px 0; margin-bottom:14px; }
  .broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart tr.cart_item { grid-template-columns:44px minmax(0,1fr) 32px; gap:5px 10px; padding:12px; }
  .broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart tr.cart_item td { padding:0; }
  .broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart tr.cart_item .product-thumbnail { width:44px; }
  .broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart .product-thumbnail img { width:40px; height:46px; }
  .broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart .product-name a { font-size:14px; line-height:1.35; }
  .broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart .product-name dl.variation { margin-top:3px; font-size:11px; line-height:1.4; }
  .broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart tr.cart_item .product-quantity { width:auto; margin-top:3px; }
  .broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart tr.cart_item .product-subtotal { padding-left:70px; font-size:14px; }
}


/* Cart actions keep a comfortable touch target and the shared control geometry. */
.broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart a.remove { width:44px; height:44px; }
.broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart .coupon input.input-text { height:var(--bc-control-height); padding:var(--bc-control-padding) 13px; border:1px solid var(--bc-control-border); border-radius:var(--bc-control-radius); background:var(--bc-control-surface); font-size:16px; line-height:var(--bc-control-line-height); }
.broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart .coupon button.button { min-height:var(--bc-control-height); }
@media(max-width:480px) {
  .broccoli.woocommerce-cart .purchase-shell .woocommerce table.cart tr.cart_item { grid-template-columns:44px minmax(0,1fr) 44px; padding:16px 12px; gap:10px; }
}
/* Continue the price column with a quiet total and its checkout action. */
.broccoli.woocommerce-cart .purchase-shell .woocommerce table.woocommerce-cart-form__contents { margin-bottom:0; }
.broccoli.woocommerce-cart .purchase-shell .woocommerce .cart-collaterals .cart_totals {
  grid-template-columns:minmax(0,1fr);
  width:min(100%,360px);
  margin:0 0 0 auto;
  padding:16px 10px 0 0;
  gap:12px;
  border:0;
  border-radius:0;
  background:transparent;
}
.broccoli.woocommerce-cart .purchase-shell .cart_totals h2 { display:none; }
.broccoli.woocommerce-cart .purchase-shell .cart_totals table.shop_table .order-total :is(th,td) { border:0; padding-top:0; padding-bottom:0; vertical-align:middle; }
.broccoli.woocommerce-cart .purchase-shell .purchase-next-label { display:none; }
.broccoli.woocommerce-cart .purchase-shell .purchase-next { display:flex; flex-direction:column; gap:10px; }
.broccoli.woocommerce-cart .purchase-shell .purchase-next-note { max-width:none; font-size:12px; }
.broccoli.woocommerce-cart .purchase-shell .wc-proceed-to-checkout { order:-1; padding:0; }
@media(max-width:767px) {
  .broccoli.woocommerce-cart .purchase-shell .woocommerce .cart-collaterals .cart_totals { width:100%; padding:16px 12px 0; }
}

/* Checkout: the native form on the left, one summary card beside it. */
.broccoli.woocommerce-checkout .purchase-shell {
  --purchase-card:#fbf9f2;
  --purchase-line:#d8d5c5;
  --purchase-line-soft:#e7e4d6;
  --purchase-selected:#eef3e3;
  --purchase-dash:#bcb9a8;
}
.purchase-shell .checkout-steps { margin-bottom:30px; padding:14px 0 0; }
.broccoli .purchase-shell .purchase-checkout {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(300px,392px);
  grid-template-rows:auto 1fr;
  column-gap:clamp(40px,6vw,88px);
  align-items:start;
  margin-top:4px;
}
.broccoli .purchase-shell .purchase-checkout > form.checkout { display:block; grid-column:1; grid-row:2; min-width:0; margin:0; }
/* The summary sticks below the sticky store header; purchase.js measures the real header height. */
.broccoli .purchase-shell .purchase-checkout > .purchase-order-summary { --purchase-sticky-offset:87px; grid-column:2; grid-row:2; position:sticky; top:calc(var(--purchase-sticky-offset) + 20px); max-height:calc(100vh - var(--purchase-sticky-offset) - 40px); min-width:0; overflow-y:auto; overscroll-behavior:contain; }
.broccoli.admin-bar .purchase-shell .purchase-checkout > .purchase-order-summary { --purchase-sticky-offset:119px; }
.broccoli .purchase-shell .purchase-checkout > :is(.woocommerce-message,.woocommerce-error,.woocommerce-info) { grid-column:1/-1; grid-row:1; margin:0 0 24px; }
.broccoli .purchase-shell form.checkout > .woocommerce-NoticeGroup { margin:0 0 28px; }
.broccoli .purchase-shell form.checkout #customer_details { grid-row:auto; width:100%; }
.broccoli .purchase-shell form.checkout #customer_details :is(.col-1,.col-2) { float:none; width:100%; margin:0; }

/* Sections share one header rhythm; fieldsets keep native grouping semantics. */
.broccoli .purchase-shell .purchase-section { min-width:0; margin:0; padding:0; border:0; }
.broccoli .purchase-shell :is(.purchase-section-address,.purchase-section-payment) { margin-top:36px; padding-top:32px; border-top:1px solid var(--purchase-line); }
.broccoli .purchase-shell .purchase-section-shipping { margin-top:28px; }
/* Floated legends render in normal flow, so section borders and padding stay above the title. */
.broccoli .purchase-shell .purchase-section-header { display:block; float:left; width:100%; margin:0; padding:0 0 20px; }
.broccoli .purchase-shell .purchase-section-header ~ * { clear:both; }
.broccoli .purchase-shell .purchase-section::after { content:''; display:table; clear:both; }
.broccoli .purchase-shell .purchase-section-header-sub { padding-bottom:12px; }
.broccoli .purchase-shell form.checkout h3,
.broccoli .purchase-shell form.checkout .purchase-section-title { margin:0; color:var(--green); font-size:22px; line-height:1.2; letter-spacing:-.03em; }
.broccoli .purchase-shell .purchase-section-subtitle,
.broccoli .purchase-shell form.checkout .woocommerce-additional-fields > h3 { display:block; margin:0 0 12px; color:var(--ink); font-size:15px; font-weight:600; line-height:1.4; letter-spacing:0; }
.broccoli .purchase-shell .purchase-section-note { display:block; margin-top:6px; color:var(--muted); font-size:14px; line-height:1.5; }

/* Native field rows sit on a two-column grid; short pairs share a row. */
.broccoli .purchase-shell form.checkout :is(.woocommerce-billing-fields__field-wrapper,.woocommerce-shipping-fields__field-wrapper,.woocommerce-additional-fields__field-wrapper) { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 16px; }
.broccoli .purchase-shell .woocommerce form .form-row { float:none; width:auto; min-width:0; margin:0; padding:0; }
.broccoli .purchase-shell form.checkout :is(.woocommerce-billing-fields__field-wrapper,.woocommerce-shipping-fields__field-wrapper,.woocommerce-additional-fields__field-wrapper) > .form-row { display:flex; flex-direction:column; grid-column:1/-1; }
.broccoli .purchase-shell form.checkout :is(#billing_first_name_field,#billing_last_name_field,#shipping_first_name_field,#shipping_last_name_field,#billing_phone_field,#billing_email_field,#billing_city_field,#billing_postcode_field,#shipping_city_field,#shipping_postcode_field) { grid-column:auto; }
/* WooCommerce forces display:block on locale rows, so hidden rows need !important. */
.broccoli .purchase-shell form.checkout .form-row:has(> .woocommerce-input-wrapper > .country_to_state--single),
.broccoli .purchase-shell form.checkout .form-row.purchase-field-hidden { display:none!important; }
.broccoli .purchase-shell form.checkout .purchase-address-country { margin-bottom:20px; }
.broccoli .purchase-shell form.checkout .purchase-address-country--single { display:none; }
.broccoli .purchase-shell .purchase-section-address .purchase-section-shipping { margin:0 0 26px; }
/* Declared layouts: every row is full width unless the plan pairs two short fields. */
.broccoli .purchase-shell form.checkout .purchase-address-fields.has-rules > :is(#billing_city_field,#billing_postcode_field,#shipping_city_field,#shipping_postcode_field) { grid-column:1/-1; }
.broccoli .purchase-shell form.checkout :is(.purchase-address-fields,.woocommerce-shipping-fields__field-wrapper).has-rules > .form-row.purchase-field-half,
.broccoli .purchase-shell form.checkout .purchase-address-fields.has-rules > :is(#billing_city_field,#billing_postcode_field,#shipping_city_field,#shipping_postcode_field).purchase-field-half { grid-column:auto; }
.broccoli .purchase-shell .woocommerce form .form-row label,
.broccoli .purchase-shell .purchase-currency-label { display:block; margin:0 0 6px; color:var(--ink); font-size:13px; font-weight:600; line-height:20px; }
.broccoli .purchase-shell .woocommerce form .form-row .optional { display:none; }
.broccoli .purchase-shell .woocommerce form .form-row .required { color:#956345; text-decoration:none; }
.broccoli .purchase-shell .woocommerce form .form-row .woocommerce-input-wrapper { display:block; }
.broccoli .purchase-shell form.checkout :is(#billing_country_field,#shipping_country_field,#billing_state_field,#shipping_state_field) :is(select,.select2-container) { width:100%!important; }
.broccoli .purchase-shell #billing_country_field strong,
.broccoli .purchase-shell #shipping_country_field strong { font-size:15px; font-weight:400; }
.broccoli .purchase-shell .woocommerce form .form-row :is(.description,.purchase-field-description) { display:block!important; position:static; margin:6px 0 0; padding:0; border:0; background:transparent; color:var(--muted); font-size:12px; font-weight:400; line-height:1.5; }
.broccoli .purchase-shell .woocommerce form .form-row :is(.description,.purchase-field-description)::before { display:none; }
.broccoli .purchase-shell .woocommerce form .form-row .checkout-inline-error-message { margin:6px 0 0; color:var(--bc-control-error,#9b3e29); font-size:12px; line-height:1.5; }
.broccoli .purchase-shell form.checkout .woocommerce-additional-fields { margin:0; }
.broccoli .purchase-shell form.checkout .woocommerce-additional-fields__field-wrapper { margin-top:20px; }
.broccoli .purchase-shell form.checkout .purchase-optional-notes > h3 { display:none; }
.broccoli .purchase-shell form.checkout #order_comments { min-height:88px; }

/* Optional fields fold behind a text button and reopen for values, errors or required rules. */
.broccoli .purchase-shell form.checkout .form-row[data-purchase-optional=closed] > :not(.purchase-optional-toggle) { display:none!important; }
.broccoli .purchase-shell form.checkout .purchase-optional-toggle { display:inline-flex; align-self:flex-start; align-items:center; gap:9px; min-height:36px; margin:0; padding:0; border:0; background:transparent; box-shadow:none; color:var(--green); font:inherit; font-size:14px; font-weight:600; line-height:20px; text-align:left; cursor:pointer; }
.broccoli .purchase-shell form.checkout .purchase-optional-toggle::before { content:''; flex:0 0 20px; width:20px; height:20px; border:1px solid currentColor; border-radius:50%; background:linear-gradient(currentColor,currentColor) center/9px 1.5px no-repeat,linear-gradient(currentColor,currentColor) center/1.5px 9px no-repeat; }
.broccoli .purchase-shell form.checkout .purchase-optional-toggle[aria-expanded=true]::before { background:linear-gradient(currentColor,currentColor) center/9px 1.5px no-repeat; }
.broccoli .purchase-shell form.checkout .purchase-optional-toggle:hover { text-decoration:underline; text-underline-offset:3px; }
.broccoli .purchase-shell form.checkout .purchase-optional-toggle[aria-expanded=true] { margin-bottom:8px; }
.broccoli .purchase-shell form.checkout .purchase-optional-toggle[hidden] { display:none; }

/* Shipping and payment choices share one card style; native radios keep the state. */
.broccoli .purchase-shell .purchase-shipping-table { display:block; width:100%; margin:0; border:0; border-collapse:collapse; background:transparent; }
.broccoli .purchase-shell .purchase-shipping-table :is(tbody,tr,td) { display:block; width:100%; padding:0; border:0; background:transparent; color:var(--muted); font-size:14px; line-height:1.5; text-align:left; }
.broccoli .purchase-shell .purchase-shipping-table th,
.broccoli .purchase-shell .purchase-shipping-table td::before { display:none; }
.broccoli .purchase-shell .purchase-shipping-table td > :is(p,small) { display:block; margin:10px 0 0; }
.broccoli .purchase-shell .woocommerce #shipping_method { display:grid; gap:10px; margin:0; padding:0; color:var(--ink); list-style:none; }
.broccoli .purchase-shell .woocommerce #shipping_method li,
.broccoli .purchase-shell form.checkout #payment ul.payment_methods > li { position:relative; margin:0; padding:0; border:0; line-height:1.5; text-indent:0; }
.broccoli .purchase-shell .woocommerce #shipping_method input[type=radio],
.broccoli .purchase-shell form.checkout #payment ul.payment_methods > li > input[type=radio] { position:absolute; top:18px; left:16px; z-index:1; margin:0; }
.broccoli .purchase-shell .woocommerce #shipping_method label,
.broccoli .purchase-shell form.checkout #payment ul.payment_methods > li > label {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  box-sizing:border-box;
  width:100%;
  min-height:56px;
  margin:0;
  padding:15px 16px 15px 48px;
  border:1px solid var(--bc-control-border,#aaada5);
  border-radius:6px;
  background:var(--bc-control-surface,#fffef8);
  color:var(--ink);
  font-size:15px;
  font-weight:500;
  line-height:24px;
  cursor:pointer;
  overflow-wrap:anywhere;
  transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease;
}
.broccoli .purchase-shell .woocommerce #shipping_method label:hover,
.broccoli .purchase-shell form.checkout #payment ul.payment_methods > li > label:hover { border-color:#8d9384; }
.broccoli .purchase-shell .woocommerce #shipping_method input:checked + label,
.broccoli .purchase-shell form.checkout #payment ul.payment_methods > li > input:checked + label { border-color:var(--green); background:var(--purchase-selected); box-shadow:inset 0 0 0 1px var(--green); }
.broccoli .purchase-shell .woocommerce #shipping_method input:focus-visible + label,
.broccoli .purchase-shell form.checkout #payment ul.payment_methods > li > input:focus-visible + label { outline:2px solid var(--bc-control-ring,#55594f); outline-offset:2px; }
.broccoli .purchase-shell .woocommerce #shipping_method input:disabled + label,
.broccoli .purchase-shell form.checkout #payment ul.payment_methods > li > input:disabled + label { opacity:.55; cursor:not-allowed; }
.broccoli .purchase-shell .purchase-rate-name { flex:1 1 auto; min-width:0; }
.broccoli .purchase-shell .purchase-rate-cost { flex:0 0 auto; font-weight:600; font-variant-numeric:tabular-nums; white-space:nowrap; text-align:right; }
.broccoli .purchase-shell .purchase-rate-cost .tax_label { display:block; color:var(--muted); font-size:11px; font-weight:400; }
.broccoli .purchase-shell .purchase-rate-free { color:var(--green); }
.broccoli .purchase-shell form.checkout #payment { margin:0; padding:0; border:0; border-radius:0; background:transparent; font-size:inherit; }
.broccoli .purchase-shell form.checkout #payment ul.payment_methods { display:grid; gap:10px; margin:0; padding:0; border:0; list-style:none; }
.broccoli .purchase-shell form.checkout #payment ul.payment_methods > li > label img { float:none; max-width:96px; max-height:22px; margin:0; object-fit:contain; }
.broccoli .purchase-shell form.checkout #payment ul.payment_methods > li:has(> .payment_box:not([style*="display: none"]):not([style*="display:none"])) > label { border-bottom-right-radius:0; border-bottom-left-radius:0; }
.broccoli .purchase-shell form.checkout #payment .payment_box { width:auto; margin:0; padding:14px 16px 16px; border:1px solid var(--green); border-top:0; border-radius:0 0 6px 6px; background:var(--purchase-selected); color:var(--ink); font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
.broccoli .purchase-shell form.checkout #payment .payment_box::before { display:none; }
.broccoli .purchase-shell form.checkout #payment .payment_box p { margin:0 0 8px; color:var(--muted); }
.broccoli .purchase-shell form.checkout #payment .payment_box p:last-child { margin:0; }
.broccoli .purchase-shell form.checkout #payment .payment_box .select2-container { width:100%!important; }
/* Provider result content retains its icon layout inside shared SelectWoo styling. */
.broccoli.woocommerce-checkout .select2-results__option .coin-wrapper { gap:8px; align-items:center; }
.broccoli.woocommerce-checkout .select2-results__option .coin-icon { flex:0 0 24px; }

/* Terms, the confirmed total and the single order action close the form. */
.broccoli .purchase-shell form.checkout #payment .place-order { margin:24px 0 0; padding:0; }
.broccoli .purchase-shell form.checkout #payment .place-order noscript { display:block; margin:0 0 12px; color:var(--muted); font-size:13px; }
.broccoli .purchase-shell form.checkout #payment .woocommerce-privacy-policy-text { margin:0 0 14px; color:var(--muted); font-size:12px; line-height:1.6; }
.broccoli .purchase-shell form.checkout #payment .woocommerce-privacy-policy-text p { margin:0; }
.broccoli .purchase-shell form.checkout #payment .woocommerce-terms-and-conditions-wrapper .form-row { margin:0 0 18px; }
.broccoli .purchase-shell form.checkout #payment .woocommerce-terms-and-conditions-wrapper a { text-decoration:underline; text-underline-offset:2px; }
.broccoli .purchase-shell form.checkout #payment label.woocommerce-form__label-for-checkbox { display:block; position:relative; min-height:0; margin:0; padding-left:30px; color:var(--ink); font-size:14px; font-weight:400; line-height:1.5; cursor:pointer; }
.broccoli .purchase-shell form.checkout #payment label.woocommerce-form__label-for-checkbox input[type=checkbox] { position:absolute; top:1px; left:0; margin:0; }
.broccoli .purchase-shell .purchase-place-order-total { display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin:0 0 14px; padding:16px 0 0; border-top:1px dashed var(--purchase-dash); color:var(--muted); font-size:14px; }
.broccoli .purchase-shell .purchase-place-order-total strong { color:var(--green); font-size:24px; font-weight:700; letter-spacing:-.04em; font-variant-numeric:tabular-nums; white-space:nowrap; }
.broccoli .purchase-shell .woocommerce #payment #place_order { display:block; float:none; width:100%; min-height:56px; margin:0; padding:15px 20px; border:1px solid var(--green); border-radius:6px; background:var(--green); color:#fffef8; font-size:16px; font-weight:600; line-height:1.3; box-shadow:none; transform:none; transition:background-color .15s ease; }
.broccoli .purchase-shell .woocommerce #payment #place_order:hover { background:var(--deep); border-color:var(--deep); color:#fff; box-shadow:none; transform:none; }
.broccoli .purchase-shell .woocommerce #payment #place_order:active { box-shadow:none; transform:none; }
.broccoli .purchase-shell #ship-to-different-address label { display:flex; align-items:center; gap:10px; min-height:44px; margin:0; font-size:15px; letter-spacing:0; }

/* Summary card: items, totals and the native coupon form on one surface. */
.broccoli .purchase-shell .purchase-summary-toggle[hidden] { display:none; }
.broccoli .purchase-shell .purchase-summary-body { box-sizing:border-box; padding:24px; border:1px solid var(--purchase-line); border-radius:10px; background:var(--purchase-card); }
.broccoli .purchase-shell .purchase-summary-title { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin:0 0 16px; color:var(--green); font-size:20px; line-height:1.2; letter-spacing:-.03em; }
.broccoli .purchase-shell .purchase-summary-count { color:var(--muted); font-size:13px; font-weight:500; letter-spacing:0; white-space:nowrap; }
.broccoli .purchase-shell #order_review { margin:0; padding:0; border:0; background:transparent; }
.broccoli .purchase-shell #order_review table.woocommerce-checkout-review-order-table { display:block; width:100%; margin:0; border:0; border-radius:0; border-collapse:collapse; background:transparent; font-size:14px; table-layout:auto; }
.broccoli .purchase-shell #order_review .woocommerce-checkout-review-order-table thead { display:none; }
.broccoli .purchase-shell #order_review .woocommerce-checkout-review-order-table :is(tbody,tfoot) { display:block; width:100%; }
.broccoli .purchase-shell #order_review .woocommerce-checkout-review-order-table tr { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:0 16px; align-items:start; width:100%; }
.broccoli .purchase-shell #order_review .woocommerce-checkout-review-order-table :is(th,td) { display:block; width:auto; padding:0; border:0; background:transparent; color:var(--ink); font-size:14px; font-weight:400; line-height:1.45; text-align:left; overflow-wrap:anywhere; }
.broccoli .purchase-shell #order_review .woocommerce-checkout-review-order-table td::before { display:none; }
.broccoli .purchase-shell #order_review .woocommerce-checkout-review-order-table tbody tr { padding:12px 0; border-bottom:1px solid var(--purchase-line-soft); }
.broccoli .purchase-shell #order_review .woocommerce-checkout-review-order-table tbody tr:first-child { padding-top:0; }
.broccoli .purchase-shell #order_review .woocommerce-checkout-review-order-table td.product-name { display:flex; align-items:flex-start; gap:12px; }
.broccoli .purchase-shell #order_review .purchase-item-media { display:grid; place-items:center; flex:0 0 56px; width:56px; height:56px; overflow:hidden; border:1px solid var(--purchase-line-soft); border-radius:6px; background:var(--product-backdrop); }
.broccoli .purchase-shell #order_review .purchase-item-media img {
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent),linear-gradient(transparent,#000 4%,#000 96%,transparent);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent),linear-gradient(transparent,#000 4%,#000 96%,transparent);
  mask-composite:intersect;
}
.broccoli .purchase-shell #order_review .purchase-item-body { display:flex; flex-direction:column; gap:3px; min-width:0; padding-top:3px; }
.broccoli .purchase-shell #order_review .purchase-item-title { font-weight:600; line-height:1.35; }
.broccoli .purchase-shell #order_review .purchase-item-title a { text-decoration:none; }
.broccoli .purchase-shell #order_review dl.variation { display:flex; flex-wrap:wrap; gap:0 6px; margin:0; color:var(--muted); font-size:12px; line-height:1.4; }
.broccoli .purchase-shell #order_review dl.variation :is(dt,dd) { margin:0; padding:0; border:0; font-weight:400; }
.broccoli .purchase-shell #order_review dl.variation p { display:inline; margin:0; }
.broccoli .purchase-shell #order_review .product-quantity { color:var(--muted); font-size:12px; font-weight:500; }
.broccoli .purchase-shell #order_review .product-total { padding-top:3px; font-weight:600; font-variant-numeric:tabular-nums; white-space:nowrap; text-align:right; }
.broccoli .purchase-shell #order_review .amount { white-space:nowrap; font-variant-numeric:tabular-nums; }
.broccoli .purchase-shell #order_review .woocommerce-checkout-review-order-table tfoot { padding-top:8px; }
.broccoli .purchase-shell #order_review .woocommerce-checkout-review-order-table tfoot tr { padding:7px 0; }
.broccoli .purchase-shell #order_review .woocommerce-checkout-review-order-table tfoot th { color:var(--muted); }
.broccoli .purchase-shell #order_review .woocommerce-checkout-review-order-table tfoot td { text-align:right; }
.broccoli .purchase-shell #order_review .purchase-shipping-summary-method::before { content:' · '; }
.broccoli .purchase-shell #order_review .purchase-shipping-summary-empty { color:var(--muted); }
.broccoli .purchase-shell #order_review .cart-discount :is(th,td) { color:var(--green); }
.broccoli .purchase-shell #order_review .woocommerce-remove-coupon { display:inline-block; margin-left:6px; color:var(--muted); font-size:12px; text-decoration:underline; text-underline-offset:3px; }
.broccoli .purchase-shell #order_review .woocommerce-checkout-review-order-table .order-total { margin-top:8px; padding:16px 0 0; border-top:1px dashed var(--purchase-dash); align-items:baseline; }
.broccoli .purchase-shell #order_review .woocommerce-checkout-review-order-table .order-total th { color:var(--ink); font-size:15px; font-weight:600; }
.broccoli .purchase-shell #order_review .woocommerce-checkout-review-order-table .order-total strong { color:var(--green); font-size:24px; font-weight:700; letter-spacing:-.04em; }
.broccoli .purchase-shell #order_review .includes_tax { display:block; margin-top:2px; color:var(--muted); font-size:11px; font-weight:400; }
.broccoli .purchase-shell .purchase-order-summary .woocommerce-form-coupon-toggle { margin:18px 0 0; padding:16px 0 0; border-top:1px solid var(--purchase-line-soft); }
.broccoli .purchase-shell .purchase-order-summary .woocommerce-form-coupon-toggle .woocommerce-info { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0; padding:0; border:0; border-radius:0; background:transparent; color:var(--muted); font-size:13px; line-height:1.4; }
.broccoli .purchase-shell .purchase-order-summary .woocommerce-form-coupon-toggle .woocommerce-info::before { display:none; }
.broccoli .purchase-shell .showcoupon { display:inline-flex; align-items:center; min-height:36px; color:var(--green); font-size:13px; font-weight:600; text-decoration:underline; text-underline-offset:3px; }
.broccoli .purchase-shell .purchase-order-summary form.checkout_coupon { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; max-width:none; margin:10px 0 0; padding:0; border:0; border-radius:0; background:transparent; }
.broccoli .purchase-shell .purchase-order-summary form.checkout_coupon .form-row { float:none; width:auto; min-width:0; margin:0; padding:0; }
.broccoli .purchase-shell .purchase-order-summary form.checkout_coupon .clear { display:none; }
.broccoli .purchase-shell .purchase-order-summary form.checkout_coupon button { width:auto; min-height:var(--bc-control-height,48px); margin:0; padding:0 16px; border:1px solid var(--green); border-radius:6px; background:transparent; color:var(--green); font-size:14px; font-weight:600; box-shadow:none; transform:none; }
.broccoli .purchase-shell .purchase-order-summary form.checkout_coupon button:hover { background:#e4ead8; color:var(--green); box-shadow:none; transform:none; }
.broccoli .purchase-shell .purchase-order-summary .coupon-error-notice { display:block; margin:6px 0 0; color:var(--bc-control-error,#9b3e29); font-size:12px; line-height:1.5; }
.broccoli .purchase-shell .purchase-summary-body > :is(.woocommerce-message,.woocommerce-error,.woocommerce-info) { margin:14px 0 0; padding:12px 14px 12px 40px; font-size:13px; line-height:1.5; }

/* WooCommerce blocks each refreshing area; keep the overlay quiet and show one spinner per column. */
.broccoli .purchase-shell .blockUI.blockOverlay { background:rgba(251,249,242,.72)!important; }
.broccoli .purchase-shell :is(#order_review .woocommerce-checkout-review-order-table,#payment,#purchase-shipping-methods,form.checkout_coupon) > .blockUI.blockOverlay::before { content:''; position:absolute; top:50%; left:50%; width:26px; height:26px; margin:-13px 0 0 -13px; border:2px solid #b5c59d; border-top-color:var(--green); border-radius:50%; background:none; animation:purchase-refresh-spin .8s linear infinite; }
@keyframes purchase-refresh-spin { to { transform:rotate(360deg); } }

@media(min-width:901px) {
  .broccoli .purchase-shell #payment > .blockUI.blockOverlay::before { display:none; }
}
@media(max-width:900px) {
  .broccoli .purchase-shell .purchase-checkout { display:flex; flex-direction:column; align-items:stretch; }
  .broccoli .purchase-shell .purchase-checkout > :is(form.checkout,.purchase-order-summary,.woocommerce-message,.woocommerce-error,.woocommerce-info) { width:100%; max-width:720px; margin-inline:auto; }
  .broccoli .purchase-shell .purchase-checkout > .purchase-order-summary { order:-1; position:static; max-height:none; margin-bottom:28px; overflow:visible; }
  .broccoli .purchase-shell .purchase-checkout > :is(.woocommerce-message,.woocommerce-error,.woocommerce-info) { order:-2; }
  .broccoli .purchase-shell .purchase-summary-toggle { display:flex; align-items:center; gap:10px; width:100%; min-height:56px; margin:0; padding:14px 16px; border:1px solid var(--purchase-line); border-radius:10px; background:var(--purchase-card); color:var(--ink); font:inherit; font-size:14px; font-weight:600; line-height:1.3; text-align:left; cursor:pointer; box-shadow:none; }
  .broccoli .purchase-shell .purchase-summary-toggle[hidden] { display:none; }
  .broccoli .purchase-shell .purchase-summary-toggle::after { content:''; flex:0 0 auto; width:8px; height:8px; margin:0 2px 0 4px; border-right:1.5px solid var(--green); border-bottom:1.5px solid var(--green); transform:translateY(-2px) rotate(45deg); transition:transform .15s ease; }
  .broccoli .purchase-shell .purchase-summary-toggle[aria-expanded=true]::after { transform:translateY(2px) rotate(-135deg); }
  .broccoli .purchase-shell .purchase-summary-toggle[aria-expanded=true] { border-bottom-right-radius:0; border-bottom-left-radius:0; }
  .broccoli .purchase-shell .purchase-summary-toggle-count { margin-left:6px; color:var(--muted); font-weight:400; }
  .broccoli .purchase-shell .purchase-summary-toggle-total { margin-left:auto; color:var(--green); font-size:16px; font-variant-numeric:tabular-nums; white-space:nowrap; }
  .broccoli .purchase-shell .purchase-summary-body { padding:20px 16px; }
  .broccoli .purchase-shell .purchase-summary-toggle:not([hidden]) + .purchase-summary-body { padding:18px 16px 20px; border-top:0; border-radius:0 0 10px 10px; }
  .broccoli .purchase-shell .purchase-summary-toggle:not([hidden]) + .purchase-summary-body .purchase-summary-title { position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
  .broccoli .purchase-shell .purchase-order-summary.is-collapsed .purchase-summary-body { display:none; }
  .broccoli .purchase-shell :is(.purchase-section-address,.purchase-section-payment) { margin-top:30px; padding-top:26px; }
  .broccoli .purchase-shell form.checkout h3,
  .broccoli .purchase-shell form.checkout .purchase-section-title { font-size:20px; }
}
@media(max-width:480px) {
  .broccoli .purchase-shell form.checkout :is(#billing_phone_field,#billing_email_field,#shipping_phone_field,#shipping_email_field,#billing_city_field,#billing_postcode_field,#shipping_city_field,#shipping_postcode_field),
  .broccoli .purchase-shell form.checkout :is(.purchase-address-fields,.woocommerce-shipping-fields__field-wrapper).has-rules > .form-row.purchase-field-half { grid-column:1/-1; }
  .broccoli .purchase-shell form.checkout :is(.woocommerce-billing-fields__field-wrapper,.woocommerce-shipping-fields__field-wrapper) { gap:16px 12px; }
  .broccoli .purchase-shell .woocommerce #shipping_method label,
  .broccoli .purchase-shell form.checkout #payment ul.payment_methods > li > label { padding-left:44px; }
  .broccoli .purchase-shell .woocommerce #shipping_method input[type=radio],
  .broccoli .purchase-shell form.checkout #payment ul.payment_methods > li > input[type=radio] { left:13px; }
  .broccoli .purchase-shell form.checkout #payment .payment_box { padding:12px 13px 14px; }
  .broccoli .purchase-shell .purchase-order-summary form.checkout_coupon button { padding:0 12px; font-size:13px; }
}
@media(prefers-reduced-motion:reduce) {
  .purchase-shell *, .purchase-shell *::before, .purchase-shell *::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; }
}
