/* ==========================================================================
   Flower & Foliage — woo.css
   Styles for the parts WordPress / WooCommerce generate themselves: the
   product-page form, cart, checkout, account, notices and menus. Uses the
   design tokens from base.css so everything matches the rest of the site.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Menus
   -------------------------------------------------------------------------- */
.nav, .footer__list, .megamenu__list { list-style: none; margin: 0; padding: 0; }
.megamenu { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(200px, 1fr); }
.megamenu__list li { list-style: none; }
.admin-bar .header { top: 32px; }
@media (max-width: 782px) { .admin-bar .header { top: 46px; } }
/* Below 600px the admin bar scrolls away, so the sticky header must sit flush at the top. */
@media (max-width: 600px) { .admin-bar .header { top: 0; } }

/* Active filter chips are links in WordPress. */
.chip a { color: inherit; display: grid; place-items: center; opacity: 0.6; }
.chip a:hover { opacity: 1; }
.filter-list a.check { text-decoration: none; }
.filter-list a.check input { pointer-events: none; }

/* --------------------------------------------------------------------------
   Product page form
   -------------------------------------------------------------------------- */
.pdp .pdp__desc p { margin: 0 0 var(--s-3); }
.pdp form.cart { margin: 0 0 var(--s-4); }
.pdp table.variations { width: 100%; border: 0; margin: 0 0 var(--s-4); }
.pdp table.variations td, .pdp table.variations th { display: block; padding: 0; text-align: left; }
.pdp table.variations label { font-size: var(--fs-xs); letter-spacing: var(--ls-wide); text-transform: uppercase; color: var(--c-muted); }
.pdp .reset_variations { display: none !important; }
.pdp .woocommerce-variation { margin: 0; }
.pdp .woocommerce-variation-description { display: none; }
.pdp .woocommerce-variation-price { display: none; }

.pdp form.cart:not(.variations_form),
.pdp .woocommerce-variation-add-to-cart {
  display: flex;
  gap: var(--s-3);
  align-items: stretch;
  margin-bottom: var(--s-4);
}
.pdp form.cart .single_add_to_cart_button { flex: 1; min-height: 46px; }
.single_add_to_cart_button.disabled, .single_add_to_cart_button:disabled { opacity: 0.45; cursor: not-allowed; }

/* WooCommerce's quantity input, dressed as the theme's stepper. */
.quantity {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--c-line);
  border-radius: var(--radius-sm);
  background: var(--c-white);
  height: 46px;
}
.quantity .qty__btn { height: 100%; }
.quantity input.qty {
  width: 3rem;
  height: 100%;
  border: 0;
  background: transparent;
  text-align: center;
  font: inherit;
  font-size: var(--fs-base);
  color: var(--c-ink);
  padding: 0;
  -moz-appearance: textfield;
  appearance: textfield;
}
.quantity input.qty::-webkit-outer-spin-button,
.quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.quantity input.qty:focus { outline: none; }

/* --------------------------------------------------------------------------
   Notices
   -------------------------------------------------------------------------- */
.woocommerce-notices-wrapper { margin-bottom: var(--s-5); }
.woocommerce-message, .woocommerce-info, .woocommerce-error {
  list-style: none;
  margin: 0 0 var(--s-5);
  padding: var(--s-4) var(--s-5);
  background: var(--c-blush-light);
  border-left: 2px solid var(--c-rosewood-tint);
  font-size: var(--fs-sm);
  color: var(--c-ink-soft);
  line-height: 1.7;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s-3) var(--s-5);
  justify-content: space-between;
}
.woocommerce-error { border-left-color: var(--c-error); background: #f8ece9; display: block; }
.woocommerce-error li { margin: 0; }
.woocommerce-message { border-left-color: var(--c-success); }
.woocommerce-message .button, .woocommerce-info .button { order: 2; }
.woocommerce a { text-underline-offset: 3px; }

/* --------------------------------------------------------------------------
   Forms (checkout, account, reviews, login)
   -------------------------------------------------------------------------- */
.woocommerce form .form-row { margin: 0 0 var(--s-5); padding: 0; display: block; }
.woocommerce form .form-row label {
  display: block;
  margin-bottom: var(--s-2);
  font-size: var(--fs-xs);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--c-muted);
}
.woocommerce form .form-row .required { color: var(--c-rosewood); text-decoration: none; border: 0; }
.woocommerce form .form-row .optional { text-transform: none; letter-spacing: 0; color: var(--c-muted-light); }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce form input[type="date"],
.woocommerce .woocommerce-input-wrapper input,
.woocommerce .quantity + input,
.woocommerce #coupon_code {
  width: 100%;
  padding: 0.9rem 1rem;
  background: var(--c-white);
  border: 1px solid var(--c-line);
  border-radius: var(--radius-sm);
  font: inherit;
  font-size: var(--fs-base);
  font-weight: 300;
  color: var(--c-ink);
  transition: border-color 0.2s var(--ease), box-shadow 0.2s var(--ease);
}
.woocommerce form .form-row textarea { min-height: 110px; resize: vertical; line-height: 1.6; }
.woocommerce form .form-row select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%236b605c' stroke-width='1.3'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  padding-right: 2.5rem;
}
.woocommerce form .form-row input:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.woocommerce #coupon_code:focus {
  outline: none;
  border-color: var(--c-rosewood-tint);
  box-shadow: 0 0 0 3px rgba(168, 128, 122, 0.14);
}
.woocommerce form .form-row input[readonly] { background: var(--c-cream); color: var(--c-ink-soft); }
.woocommerce form .form-row.woocommerce-invalid input.input-text,
.woocommerce form .form-row.woocommerce-invalid select { border-color: var(--c-error); }
.woocommerce form .form-row .description,
.woocommerce form .form-row span.description { display: block; margin-top: var(--s-2); font-size: var(--fs-sm); color: var(--c-muted); text-transform: none; letter-spacing: 0; }
.woocommerce form .form-row-first, .woocommerce form .form-row-last { width: calc(50% - var(--s-3)); display: inline-block; vertical-align: top; }
.woocommerce form .form-row-first { margin-right: var(--s-5); }
@media (max-width: 640px) {
  .woocommerce form .form-row-first, .woocommerce form .form-row-last { width: 100%; margin-right: 0; display: block; }
}
.woocommerce-checkout h3, .woocommerce-checkout #order_review_heading { font-size: var(--fs-xl); margin-bottom: var(--s-5); }
.woocommerce form .form-row.ff-windows label.radio {
  display: block;
  margin: 0;
  padding: var(--s-4);
  border: 1px solid var(--c-line);
  border-radius: var(--radius-sm);
  background: var(--c-white);
  color: var(--c-ink);
  font-size: var(--fs-base);
  letter-spacing: 0;
  text-transform: none;
  cursor: pointer;
}
.woocommerce form .form-row.ff-windows label.radio input { margin-right: var(--s-3); accent-color: var(--c-rosewood); }
.woocommerce form .form-row.ff-windows label.radio:has(input:checked) {
  border-color: var(--c-rosewood);
  background: var(--c-blush-light);
  box-shadow: inset 0 0 0 1px var(--c-rosewood);
}
.woocommerce form .form-row .checkbox, .woocommerce-form__label-for-checkbox { text-transform: none; letter-spacing: 0; font-size: var(--fs-sm); display: flex; gap: var(--s-3); align-items: flex-start; }
.woocommerce input[type="checkbox"], .woocommerce input[type="radio"] { accent-color: var(--c-rosewood); }

/* --------------------------------------------------------------------------
   Cart page
   -------------------------------------------------------------------------- */
.woocommerce-cart-form { margin-bottom: var(--s-7); }
table.shop_table { width: 100%; border-collapse: collapse; font-size: var(--fs-base); }
table.shop_table th {
  text-align: left;
  font-weight: 400;
  font-size: var(--fs-xs);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--c-muted);
  padding: var(--s-3) var(--s-4);
  border-bottom: 1px solid var(--c-line);
}
table.shop_table td { padding: var(--s-4); border-bottom: 1px solid var(--c-line); vertical-align: middle; }
table.shop_table td.product-thumbnail { width: 96px; }
table.shop_table td.product-thumbnail img { width: 80px; height: 100px; object-fit: cover; border-radius: var(--radius-sm); background: var(--c-sand); }
table.shop_table td.product-name a { font-family: var(--f-display); font-size: var(--fs-lg); color: var(--c-ink); }
table.shop_table td.product-name dl.variation { margin: var(--s-1) 0 0; font-size: var(--fs-sm); color: var(--c-muted); display: flex; gap: var(--s-2); }
table.shop_table td.product-name dl.variation dt, table.shop_table td.product-name dl.variation dd, table.shop_table td.product-name dl.variation p { margin: 0; display: inline; }
table.shop_table a.remove { color: var(--c-muted) !important; font-size: 1.4rem; text-decoration: none; }
table.shop_table a.remove:hover { color: var(--c-error) !important; background: transparent !important; }
table.shop_table td.actions { padding: var(--s-5) 0 0; border-bottom: 0; }
table.shop_table td.actions::after { content: ""; display: block; clear: both; }
table.shop_table td.actions .coupon { display: flex; gap: var(--s-3); align-items: stretch; float: left; }
table.shop_table td.actions .coupon label { display: none; }
table.shop_table td.actions .coupon #coupon_code { width: 220px; }
table.shop_table td.actions > button[name="update_cart"] { float: right; }
table.shop_table td.actions .button { white-space: nowrap; }

/* Cart table: fixed column widths so nothing drifts apart. */
table.shop_table.cart { table-layout: fixed; }
table.shop_table.cart th.product-remove, table.shop_table.cart td.product-remove { width: 48px; padding-left: 0; padding-right: 0; text-align: center; }
table.shop_table.cart th.product-thumbnail, table.shop_table.cart td.product-thumbnail { width: 104px; padding-left: 0; }
table.shop_table.cart th.product-price, table.shop_table.cart td.product-price { width: 130px; }
table.shop_table.cart th.product-quantity, table.shop_table.cart td.product-quantity { width: 170px; }
table.shop_table.cart th.product-subtotal, table.shop_table.cart td.product-subtotal { width: 130px; text-align: right; }
table.shop_table.cart th.product-subtotal { text-align: right; }
table.shop_table.cart td.product-name { padding-left: var(--s-4); }
table.shop_table.cart td.product-name a { font-size: var(--fs-md); line-height: 1.3; }
table.shop_table.cart td.actions { width: auto; }
@media (max-width: 768px) {
  table.shop_table_responsive thead { display: none; }
  table.shop_table_responsive tr { display: block; border-bottom: 1px solid var(--c-line); padding: var(--s-3) 0; }
  table.shop_table_responsive td { display: flex; justify-content: space-between; align-items: center; border: 0; padding: var(--s-2) 0; }
  table.shop_table_responsive td::before { content: attr(data-title); font-size: var(--fs-xs); letter-spacing: var(--ls-wide); text-transform: uppercase; color: var(--c-muted); }
  table.shop_table_responsive td.product-thumbnail, table.shop_table_responsive td.product-remove { display: none; }
  table.shop_table.cart { table-layout: auto; }
  table.shop_table td.actions .coupon { float: none; margin-bottom: var(--s-3); flex-wrap: wrap; }
  table.shop_table td.actions > button[name="update_cart"] { float: none; width: 100%; }
}

.cart-collaterals { display: flex; justify-content: flex-end; }
.cart_totals { width: 100%; max-width: 440px; background: var(--c-cream); border: 1px solid var(--c-line); border-radius: var(--radius-sm); padding: var(--s-6); }
.cart_totals h2 { font-size: var(--fs-xl); margin-bottom: var(--s-4); }
.cart_totals table { width: 100%; border-collapse: collapse; }
.cart_totals th, .cart_totals td { padding: var(--s-3) 0; text-align: left; font-weight: 400; border-bottom: 1px solid var(--c-line); font-size: var(--fs-base); }
.cart_totals td { text-align: right; }
.cart_totals .order-total th, .cart_totals .order-total td { font-family: var(--f-display); font-size: var(--fs-lg); border-bottom: 0; }
.cart_totals .wc-proceed-to-checkout { margin-top: var(--s-5); }
.cart_totals .wc-proceed-to-checkout a.button { display: flex; width: 100%; }
.woocommerce-shipping-methods { list-style: none; margin: 0; padding: 0; }
.woocommerce-shipping-destination, .shipping-calculator-button { font-size: var(--fs-sm); color: var(--c-muted); }
.cart-empty { text-align: center; font-family: var(--f-display); font-size: var(--fs-xl); padding: var(--s-7) 0 var(--s-5); }
.return-to-shop { text-align: center; }

/* --------------------------------------------------------------------------
   Checkout
   -------------------------------------------------------------------------- */
form.woocommerce-checkout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); gap: var(--s-8); align-items: start; }
form.woocommerce-checkout #customer_details { grid-column: 1; }
form.woocommerce-checkout #order_review_heading { grid-column: 2; grid-row: 1; margin: 0; }
form.woocommerce-checkout #order_review { grid-column: 2; grid-row: 1; margin-top: var(--s-8); }
form.woocommerce-checkout .col2-set .col-1, form.woocommerce-checkout .col2-set .col-2 { float: none; width: 100%; }
form.woocommerce-checkout .woocommerce-additional-fields { margin-top: var(--s-6); }
@media (max-width: 960px) {
  form.woocommerce-checkout { display: block; }
  form.woocommerce-checkout #order_review_heading { margin-top: var(--s-7); margin-bottom: var(--s-4); }
  form.woocommerce-checkout #order_review { margin-top: 0; }
}
#order_review { background: var(--c-cream); border: 1px solid var(--c-line); border-radius: var(--radius-sm); padding: var(--s-6); }
#order_review table.shop_table th, #order_review table.shop_table td { padding: var(--s-3) 0; border-bottom: 1px solid var(--c-line); font-size: var(--fs-base); }
#order_review table.shop_table tfoot td { text-align: right; }
#order_review table.shop_table .order-total th, #order_review table.shop_table .order-total td { font-family: var(--f-display); font-size: var(--fs-lg); border-bottom: 0; }
#payment { margin-top: var(--s-5); }
#payment ul.payment_methods { list-style: none; margin: 0 0 var(--s-5); padding: 0; display: grid; gap: var(--s-3); }
#payment ul.payment_methods li { padding: var(--s-4); border: 1px solid var(--c-line); border-radius: var(--radius-sm); background: var(--c-white); }
#payment ul.payment_methods li > label { font-size: var(--fs-base); color: var(--c-ink); cursor: pointer; }
#payment div.payment_box { margin-top: var(--s-3); font-size: var(--fs-sm); color: var(--c-muted); line-height: 1.7; }
#payment div.payment_box p { margin: 0; }
#place_order { width: 100%; padding: 1.15rem 2rem; }
.woocommerce-privacy-policy-text { font-size: var(--fs-sm); color: var(--c-muted); margin-bottom: var(--s-4); }
.woocommerce-form-coupon-toggle, .woocommerce-form-login-toggle { margin-bottom: var(--s-4); }
form.checkout_coupon, form.woocommerce-form-login { border: 1px solid var(--c-line); border-radius: var(--radius-sm); padding: var(--s-5); margin-bottom: var(--s-6); background: var(--c-cream); }

/* Order received */
.woocommerce-order { max-width: 720px; margin-inline: auto; }
.woocommerce-thankyou-order-received { font-family: var(--f-display); font-size: var(--fs-xl); margin-bottom: var(--s-5); }
ul.woocommerce-order-overview { list-style: none; margin: 0 0 var(--s-6); padding: var(--s-5); display: flex; flex-wrap: wrap; gap: var(--s-5) var(--s-7); background: var(--c-blush-light); border-radius: var(--radius-sm); font-size: var(--fs-sm); color: var(--c-muted); }
ul.woocommerce-order-overview li strong { display: block; color: var(--c-ink); font-weight: 400; font-size: var(--fs-md); margin-top: 2px; }
.woocommerce-order-details h2, .woocommerce-customer-details h2, .woocommerce-column__title { font-size: var(--fs-xl); margin: var(--s-6) 0 var(--s-4); }
.woocommerce-customer-details address { font-style: normal; line-height: 1.8; color: var(--c-ink-soft); }
.detail-row { display: flex; justify-content: space-between; gap: var(--s-5); padding: var(--s-3) 0; border-bottom: 1px solid var(--c-line); }
.detail-row dt { color: var(--c-muted); font-size: var(--fs-sm); }
.detail-row dd { margin: 0; text-align: right; }

/* --------------------------------------------------------------------------
   My account
   -------------------------------------------------------------------------- */
.woocommerce-account .woocommerce { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: var(--s-8); align-items: start; }
.woocommerce-account:not(.logged-in) .woocommerce { display: block; max-width: 520px; margin-inline: auto; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--c-line); }
.woocommerce-MyAccount-navigation li a { display: block; padding: var(--s-3) 0; border-bottom: 1px solid var(--c-line); color: var(--c-ink-soft); font-size: var(--fs-base); }
.woocommerce-MyAccount-navigation li.is-active a { color: var(--c-rosewood); }
.woocommerce-MyAccount-content address { font-style: normal; line-height: 1.8; }
.u-columns .u-column1, .u-columns .u-column2 { margin-bottom: var(--s-7); }
.woocommerce-account h2 { font-size: var(--fs-xl); margin-bottom: var(--s-4); }
@media (max-width: 768px) { .woocommerce-account .woocommerce { display: block; } .woocommerce-MyAccount-navigation { margin-bottom: var(--s-6); } }

/* --------------------------------------------------------------------------
   Reviews, misc
   -------------------------------------------------------------------------- */
.star-rating { color: var(--c-gold); }
.page-numbers { display: inline-flex; gap: var(--s-2); list-style: none; padding: 0; }
.nav-links { display: flex; gap: var(--s-3); justify-content: center; margin-top: var(--s-7); }
.nav-links a, .nav-links span { padding: var(--s-2) var(--s-4); border: 1px solid var(--c-line); border-radius: var(--radius-sm); }
.nav-links .current { background: var(--c-rosewood-deep); color: var(--c-bone); border-color: var(--c-rosewood-deep); }
.ff-entry > *:first-child { margin-top: 0; }
.ff-entry .woocommerce { max-width: none; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.logo-wall__item { display: inline-block; }

/* Buttons: keep the label readable on hover (link hover colour must not match the fill). */
.btn:hover, a.btn:hover, button.btn:hover { color: var(--c-bone); }
.btn--light:hover { color: var(--c-bone); }
.woocommerce a.button, .woocommerce button.button { text-decoration: none; }
.woocommerce .button.alt, .woocommerce a.checkout-button { --btn-bg: var(--c-rosewood-deep); --btn-fg: var(--c-bone); --btn-border: var(--c-rosewood-deep); }
.cart_totals .wc-proceed-to-checkout a.button { justify-content: center; min-height: 52px; }
.woocommerce-shipping-methods li { margin: 0; }
.woocommerce-shipping-methods li input { display: none; }
.woocommerce-shipping-methods li label { margin: 0; font-size: var(--fs-base); }
.cart_totals th { width: 40%; font-size: var(--fs-xs); letter-spacing: var(--ls-wide); text-transform: uppercase; color: var(--c-muted); }
.cart_totals .shipping td { text-align: right; }
.cart_totals .shipping td p { margin: var(--s-1) 0 0; font-size: var(--fs-sm); color: var(--c-muted); }
#order_review table.shop_table thead th { text-align: left; }
#order_review table.shop_table .product-name { padding-right: var(--s-4); }
#order_review table.shop_table .product-total, #order_review table.shop_table td:last-child { text-align: right; white-space: nowrap; }
#order_review table.shop_table th { width: auto; }

/* --------------------------------------------------------------------------
   Checkout — numbered steps, delivery-window cards, hidden plumbing fields
   -------------------------------------------------------------------------- */
#billing_country_field, #shipping_country_field { display: none; }
form.woocommerce-checkout { counter-reset: ffstep; }
.woocommerce-billing-fields > h3,
#ship-to-different-address,
.woocommerce-additional-fields > h3 {
  counter-increment: ffstep;
  display: flex;
  align-items: center;
  gap: var(--s-4);
  font-family: var(--f-display);
  font-size: var(--fs-xl);
  font-weight: 400;
  margin: 0 0 var(--s-5);
}
.woocommerce-billing-fields > h3::before,
#ship-to-different-address::before,
.woocommerce-additional-fields > h3::before {
  content: counter(ffstep);
  flex: none;
  width: 34px; height: 34px;
  display: grid; place-items: center;
  border: 1px solid var(--c-line-strong);
  border-radius: 50%;
  font-family: var(--f-body);
  font-size: var(--fs-sm);
  color: var(--c-rosewood);
}
#ship-to-different-address label { display: contents; cursor: default; }
#ship-to-different-address input[type="checkbox"] { display: none; }
#ship-to-different-address span { font: inherit; text-transform: none; letter-spacing: 0; color: inherit; }
.woocommerce-billing-fields, .woocommerce-shipping-fields, .woocommerce-additional-fields {
  padding-bottom: var(--s-6);
  margin-bottom: var(--s-6);
  border-bottom: 1px solid var(--c-line);
}
.woocommerce-additional-fields { border-bottom: 0; }
.woocommerce-shipping-fields .shipping_address { margin-top: 0; }
.ff-gift-toggle label.checkbox { text-transform: none; letter-spacing: 0; font-size: var(--fs-sm); color: var(--c-muted); }
.ff-gift-toggle input { margin-top: 3px; }
.woocommerce-checkout .form-row .woocommerce-input-wrapper { display: block; }
.woocommerce-checkout .form-row abbr.required { text-decoration: none; color: var(--c-rosewood); border: 0; }

/* Delivery window → 2 × 2 option cards */
.woocommerce form .form-row.ff-windows { margin-bottom: var(--s-5); }
.woocommerce form .form-row.ff-windows > label:first-child { margin-bottom: var(--s-3); }
.woocommerce form .form-row.ff-windows .woocommerce-input-wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--s-3);
  position: relative;
}
.woocommerce form .form-row.ff-windows input.input-radio {
  position: absolute; opacity: 0; pointer-events: none; width: 1px; height: 1px;
}
.woocommerce form .form-row.ff-windows label.radio {
  display: block;
  margin: 0;
  padding: var(--s-4);
  border: 1px solid var(--c-line);
  border-radius: var(--radius-sm);
  background: var(--c-white);
  color: var(--c-ink);
  font-size: var(--fs-base);
  letter-spacing: 0;
  text-transform: none;
  cursor: pointer;
  transition: border-color 0.2s var(--ease), background 0.2s var(--ease);
}
.woocommerce form .form-row.ff-windows label.radio:hover { border-color: var(--c-rosewood-tint); }
.woocommerce form .form-row.ff-windows input.input-radio:checked + label.radio {
  border-color: var(--c-rosewood);
  background: var(--c-blush-light);
  box-shadow: inset 0 0 0 1px var(--c-rosewood);
}
.woocommerce form .form-row.ff-windows input.input-radio:focus-visible + label.radio { outline: 2px solid var(--c-rosewood-tint); outline-offset: 2px; }
.woocommerce form .form-row.ff-windows label.radio abbr.required { display: none; }
@media (max-width: 560px) {
  .woocommerce form .form-row.ff-windows .woocommerce-input-wrapper { grid-template-columns: 1fr; }
}

/* --------------------------------------------------------------------------
   Checkout refinements — heading scale, gift toggle, sticky order summary
   -------------------------------------------------------------------------- */
.woocommerce-billing-fields > h3,
#ship-to-different-address,
.woocommerce-additional-fields > h3 {
  font-size: var(--fs-lg);
  line-height: 1.2;
  margin: 0 0 var(--s-5);
}
#ship-to-different-address label,
#ship-to-different-address label span {
  font-family: inherit; font-size: inherit; font-weight: inherit; line-height: inherit;
  letter-spacing: 0; text-transform: none; color: inherit; margin: 0; padding: 0;
}
.woocommerce-billing-fields > h3::before,
#ship-to-different-address::before,
.woocommerce-additional-fields > h3::before { width: 30px; height: 30px; }
.woocommerce-billing-fields, .woocommerce-shipping-fields, .woocommerce-additional-fields {
  padding-bottom: var(--s-5);
  margin-bottom: var(--s-5);
}
.woocommerce-checkout .form-row { margin-bottom: var(--s-4); }
.woocommerce-checkout .woocommerce-form__label-for-checkbox,
.woocommerce-checkout #createaccount + span { text-transform: none; letter-spacing: 0; }

/* Gift checkbox: tick + one line of text */
#ff_is_gift_field { margin: 0 0 var(--s-5); }
#ff_is_gift_field label.checkbox {
  display: flex; align-items: center; gap: var(--s-3);
  margin: 0; cursor: pointer;
  font-size: var(--fs-base); color: var(--c-ink);
  text-transform: none; letter-spacing: 0;
}
#ff_is_gift_field .optional { display: none; }
#ff_is_gift_field input[type="checkbox"] { flex: none; width: 18px; height: 18px; margin: 0; accent-color: var(--c-rosewood); }

/* Order summary: title lives inside the card, card follows the scroll */
form.woocommerce-checkout #order_review_heading { display: none; }
form.woocommerce-checkout #order_review {
  margin-top: 0;
  position: sticky;
  top: calc(var(--header-h) + var(--s-5));
  max-height: calc(100vh - var(--header-h) - var(--s-7));
  overflow-y: auto;
}
form.woocommerce-checkout #order_review::before {
  content: "Your order";
  display: block;
  font-family: var(--f-display);
  font-size: var(--fs-lg);
  line-height: 1.2;
  margin-bottom: var(--s-4);
}
form.woocommerce-checkout #order_review table.shop_table thead th { font-size: var(--fs-xs, 0.75rem); }
@media (max-width: 960px) {
  form.woocommerce-checkout #order_review_heading { display: none; }
  form.woocommerce-checkout #order_review { margin-top: var(--s-7); position: static; max-height: none; overflow: visible; }
}

/* --------------------------------------------------------------------------
   Payment step — option cards, terms, full-width order button
   -------------------------------------------------------------------------- */
.ff-payment { padding-top: var(--s-2); }
.ff-payment__title {
  counter-increment: ffstep;
  display: flex; align-items: center; gap: var(--s-4);
  font-family: var(--f-display); font-size: var(--fs-lg); font-weight: 400;
  line-height: 1.2; margin: 0 0 var(--s-5);
}
.ff-payment__title::before {
  content: counter(ffstep);
  flex: none; width: 30px; height: 30px;
  display: grid; place-items: center;
  border: 1px solid var(--c-line-strong); border-radius: 50%;
  font-family: var(--f-body); font-size: var(--fs-sm); color: var(--c-rosewood);
}
.ff-payment #payment { margin-top: 0; background: none; border: 0; padding: 0; }
.ff-payment #payment ul.payment_methods { gap: var(--s-3); margin: 0 0 var(--s-5); }
.ff-payment #payment ul.payment_methods li {
  position: relative; padding: 0; margin: 0; list-style: none;
  border: 1px solid var(--c-line); border-radius: var(--radius-sm); background: var(--c-white);
  transition: border-color 0.2s var(--ease), background 0.2s var(--ease);
}
.ff-payment #payment ul.payment_methods li:hover { border-color: var(--c-rosewood-tint); }
.ff-payment #payment ul.payment_methods li:has(input:checked) {
  border-color: var(--c-rosewood); background: var(--c-blush-light);
  box-shadow: inset 0 0 0 1px var(--c-rosewood);
}
.ff-payment #payment ul.payment_methods li > input.input-radio {
  position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none;
}
.ff-payment #payment ul.payment_methods li > label {
  display: block; margin: 0; padding: var(--s-4) var(--s-4) 0;
  font-size: var(--fs-base); letter-spacing: 0; text-transform: none; color: var(--c-ink); cursor: pointer;
}
.ff-payment #payment ul.payment_methods li > label img { display: none; }
.ff-payment #payment div.payment_box {
  display: block !important; margin: 0; padding: var(--s-1) var(--s-4) var(--s-4);
  background: none; border: 0; font-size: var(--fs-sm); color: var(--c-muted); line-height: 1.6;
}
.ff-payment #payment div.payment_box::before { display: none; }
.ff-payment #payment div.payment_box p { margin: 0; }
.ff-payment #payment .place-order { margin: 0; padding: 0; }
.ff-payment .woocommerce-terms-and-conditions-wrapper { margin: 0 0 var(--s-5); font-size: var(--fs-sm); color: var(--c-muted); }
.ff-payment .woocommerce-privacy-policy-text { margin-bottom: var(--s-3); }
.ff-payment #place_order { width: 100%; }

/* --------------------------------------------------------------------------
   Checkout grid placement — stays intact when validation notices appear
   -------------------------------------------------------------------------- */
form.woocommerce-checkout .woocommerce-NoticeGroup,
form.woocommerce-checkout > .woocommerce-error,
form.woocommerce-checkout > .woocommerce-message { grid-column: 1 / -1; grid-row: 1; margin: 0 0 var(--s-2); }
form.woocommerce-checkout #customer_details { grid-column: 1; grid-row: 2; }
form.woocommerce-checkout > .ff-payment { grid-column: 1; grid-row: 3; }
form.woocommerce-checkout #order_review { grid-column: 2; grid-row: 2 / span 2; align-self: start; }
.woocommerce-NoticeGroup .woocommerce-error { margin: 0; padding: var(--s-4) var(--s-5); list-style: none; }
.woocommerce-NoticeGroup .woocommerce-error li { font-size: var(--fs-sm); line-height: 1.7; }
.woocommerce-checkout .form-row .checkout-inline-error-message,
.woocommerce-checkout .form-row .woocommerce-error:not(li) { font-size: var(--fs-sm); color: var(--c-error); margin-top: var(--s-1); }
.woocommerce form .form-row.woocommerce-invalid label { color: var(--c-error); }
.woocommerce form .form-row.woocommerce-invalid input.input-text { background: #fdf6f4; }
@media (max-width: 960px) {
  form.woocommerce-checkout .woocommerce-NoticeGroup,
  form.woocommerce-checkout #customer_details,
  form.woocommerce-checkout > .ff-payment,
  form.woocommerce-checkout #order_review { grid-column: auto; grid-row: auto; }
}
form.woocommerce-checkout { row-gap: 0; }
form.woocommerce-checkout .woocommerce-NoticeGroup { margin-bottom: var(--s-6); }
form.woocommerce-checkout > .ff-payment { border-top: 1px solid var(--c-line); padding-top: var(--s-6); }
@media (max-width: 960px) { form.woocommerce-checkout > .ff-payment { margin-top: var(--s-5); } }

/* Uploaded logo (Appearance → Customize → Site Identity) */
.brand--logo { flex-direction: row; align-items: center; }
.brand__logo { display: block; width: auto; height: 56px; max-width: 220px; object-fit: contain; }
.brand--footer .brand__logo { height: 64px; filter: brightness(0) invert(1); }
@media (max-width: 640px) { .brand__logo { height: 44px; max-width: 160px; } }

/* Product gallery thumbnails: the ratio box sits in a <button>, so make it fill it. */
.pdp__thumb { display: block; width: 78px; line-height: 0; }
.pdp__thumb .ratio { display: block; width: 100%; }
.pdp__thumb .ratio > img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 620px) { .pdp__thumb { flex: none; } }
