/* ════════════════════════════════════════════════════════════
   FLORAL FANTASY — WooCommerce Styles
   Single Product · Cart · Checkout · Thank You · Notices
   ════════════════════════════════════════════════════════════ */

/* ─── SINGLE PRODUCT PAGE ────────────────────────────────────── */
.ff-product-page { padding-top: calc(var(--nav-h) + 60px); }

/* Two-column layout: image | info */
.ff-product-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5rem;
  align-items: start;
  margin-bottom: 6rem;
}

/* ── Product Gallery ─────────────────────────────────────────── */
.ff-product-gallery .woocommerce-product-gallery {
  position: sticky;
  top: calc(var(--nav-h) + 24px);
}

.ff-product-gallery .woocommerce-product-gallery__image img,
.ff-product-gallery .woocommerce-product-gallery__image a img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

/* Hide WooCommerce gallery nav arrows / zoom icon */
.ff-product-gallery .woocommerce-product-gallery__trigger { display: none; }
.ff-product-gallery .flex-control-nav { display: none; }

/* ── Product Summary ─────────────────────────────────────────── */
.ff-product-summary { padding-top: 0.5rem; }

/* Category label above title */
.ff-product-category {
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 300;
  font-size: 0.625rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--champagne);
  margin-bottom: 0.75rem;
}
.ff-product-category a { color: inherit; text-decoration: none; }

/* Product title */
.ff-product-summary .product_title,
.woocommerce div.product h1.product_title {
  font-family: 'Playfair Display', serif;
  font-weight: 400;
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--black);
  margin-bottom: 1.25rem;
}

/* Rule under title */
.ff-product-summary .product_title::after {
  content: '';
  display: block;
  width: 40px;
  height: 1px;
  background: var(--champagne);
  margin-top: 1.25rem;
}

/* Price */
.ff-product-summary .woocommerce-Price-amount,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 300;
  font-size: 1.375rem;
  color: var(--black);
  letter-spacing: 0.02em;
  display: block;
  margin-bottom: 1.5rem;
}

/* Short description */
.ff-product-summary .woocommerce-product-details__short-description {
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 200;
  font-size: 0.9375rem;
  line-height: 1.8;
  color: rgba(26, 26, 26, 0.7);
  margin-bottom: 2rem;
}

/* Quantity + Add to Cart row */
.ff-product-summary form.cart {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 2rem;
  flex-wrap: wrap;
}

.ff-product-summary form.cart .quantity .qty {
  width: 64px;
  height: 52px;
  border: 1px solid var(--border);
  background: var(--white);
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 300;
  font-size: 0.9375rem;
  color: var(--black);
  text-align: center;
  border-radius: 0 !important;
  -moz-appearance: textfield;
  -webkit-appearance: none;
  appearance: none;
  transition: border-color var(--dur-std) var(--ease-luxury);
}
.ff-product-summary form.cart .quantity .qty:focus {
  outline: none;
  border-color: var(--champagne);
}
.ff-product-summary form.cart .quantity .qty::-webkit-inner-spin-button,
.ff-product-summary form.cart .quantity .qty::-webkit-outer-spin-button { -webkit-appearance: none; }

/* Add to Cart button */
.ff-product-summary .single_add_to_cart_button,
.woocommerce div.product form.cart .single_add_to_cart_button {
  flex: 1;
  min-width: 200px;
  padding: 1rem 2rem;
  background: var(--champagne);
  color: var(--charcoal);
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 400;
  font-size: 0.6875rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  border: 1px solid var(--champagne);
  cursor: pointer;
  border-radius: 0 !important;
  transition:
    opacity var(--dur-std) var(--ease-luxury),
    letter-spacing var(--dur-std) var(--ease-luxury);
}
.ff-product-summary .single_add_to_cart_button:hover,
.woocommerce div.product form.cart .single_add_to_cart_button:hover {
  opacity: 0.82;
  letter-spacing: 0.23em;
}

/* Product meta (SKU, Category) */
.ff-product-summary .product_meta {
  padding-top: 1.5rem;
  border-top: 1px solid var(--border);
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 300;
  font-size: 0.75rem;
  color: rgba(26, 26, 26, 0.5);
  letter-spacing: 0.05em;
  line-height: 2;
}
.ff-product-summary .product_meta span { display: block; }
.ff-product-summary .product_meta .sku { font-weight: 400; color: var(--black); }
.ff-product-summary .product_meta a { color: inherit; text-decoration: none; }
.ff-product-summary .product_meta a:hover { color: var(--black); }

/* ── Related Products ────────────────────────────────────────── */
.ff-product-related { padding-top: 4rem; border-top: 1px solid var(--border); }

.ff-product-related .related.products > h2,
.woocommerce .related.products > h2 {
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 300;
  font-size: 0.625rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--champagne);
  margin-bottom: 2rem;
}

.ff-product-related ul.products,
.woocommerce ul.products {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
  list-style: none;
  padding: 0;
}

.ff-product-related ul.products li.product,
.woocommerce ul.products li.product {
  position: relative;
}

.ff-product-related ul.products li.product a img,
.woocommerce ul.products li.product a img {
  width: 100%;
  aspect-ratio: 3/4;
  object-fit: cover;
  display: block;
  transition: transform var(--dur-ken-burns) var(--ease-luxury);
}
.ff-product-related ul.products li.product:hover a img,
.woocommerce ul.products li.product:hover a img {
  transform: scale(1.03);
}

.ff-product-related ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 300;
  font-size: 0.8125rem;
  color: var(--black);
  margin: 0.75rem 0 0.25rem;
  letter-spacing: 0.02em;
}

.ff-product-related ul.products li.product .price,
.woocommerce ul.products li.product .price {
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 300;
  font-size: 0.875rem;
  color: rgba(26, 26, 26, 0.65);
}

.ff-product-related ul.products li.product .button,
.woocommerce ul.products li.product .button {
  display: none; /* Hide "Add to cart" on related grid — user clicks through */
}

/* ── Tabs (Description / Reviews) — hide reviews tab ────────── */
.woocommerce div.product .woocommerce-tabs ul.tabs { display: none; }
.woocommerce div.product .woocommerce-tabs .panel { display: none !important; }
#tab-reviews, .woocommerce-Reviews { display: none !important; }

/* Hide WooCommerce default sidebar widget if it appears */
.woocommerce-sidebar,
.widget_shopping_cart,
aside.widget-area { display: none; }

/* ── Responsive ──────────────────────────────────────────────── */
@media (max-width: 900px) {
  .ff-product-layout {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
  .ff-product-gallery .woocommerce-product-gallery { position: static; }
  .ff-product-related ul.products,
  .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 540px) {
  .ff-product-summary form.cart { flex-direction: column; align-items: stretch; }
  .ff-product-summary .single_add_to_cart_button { text-align: center; }
  .ff-product-related ul.products,
  .woocommerce ul.products { grid-template-columns: 1fr 1fr; gap: 1rem; }
}

/* ─── SHARED PAGE SHELL ──────────────────────────────────────── */
.ff-wc-page {
  background: var(--white);
  padding-top: calc(var(--nav-h) + 80px);
  padding-bottom: 120px;
  min-height: 70vh;
}

.ff-wc-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 2rem;
}

.ff-wc-inner--narrow {
  max-width: 760px;
}

/* ─── PAGE HEADER ────────────────────────────────────────────── */
.ff-wc-page-header {
  margin-bottom: 3.5rem;
}

.ff-wc-eyebrow {
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 300;
  font-size: 0.6875rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--champagne);
  margin-bottom: 0.75rem;
}

.ff-wc-page-title {
  font-family: 'Playfair Display', serif;
  font-weight: 400;
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--black);
  margin-bottom: 1.25rem;
}

.ff-wc-rule {
  width: 48px;
  height: 1px;
  background: var(--champagne);
}

.ff-wc-rule-sm {
  width: 32px;
  height: 1px;
  background: var(--champagne);
  margin: 1rem 0 1.5rem;
}

/* ─── NOTICES ────────────────────────────────────────────────── */
.ff-wc-notices {
  list-style: none;
  margin: 0 0 2rem;
  padding: 1.25rem 1.5rem;
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 300;
  font-size: 0.875rem;
  letter-spacing: 0.02em;
  border-left: 3px solid;
}

.ff-wc-notices--error   { border-color: #b33; background: #fff5f5; color: #8b0000; }
.ff-wc-notices--success { border-color: var(--champagne); background: #fdfbf5; color: var(--black); }
.ff-wc-notices--info    { border-color: var(--border); background: var(--ivory); color: var(--black); }

.ff-wc-notices li { margin-bottom: 0.25rem; }
.ff-wc-notices li:last-child { margin-bottom: 0; }
.ff-wc-notices a { color: inherit; text-decoration: underline; }

/* ─── EMPTY CART ─────────────────────────────────────────────── */
.ff-cart-empty {
  text-align: center;
  padding: 5rem 0;
}

.ff-cart-empty-msg {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  font-size: 1.25rem;
  color: rgba(26, 26, 26, 0.55);
  margin-bottom: 2.5rem;
}

/* ─── CART LAYOUT ────────────────────────────────────────────── */
.ff-cart-layout {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 4rem;
  align-items: start;
}

/* ─── CART TABLE ─────────────────────────────────────────────── */
.ff-cart-table {
  width: 100%;
  border-collapse: collapse;
}

.ff-cart-th {
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 300;
  font-size: 0.625rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(26, 26, 26, 0.55);
  padding: 0 0 1rem;
  border-bottom: 1px solid var(--border);
  text-align: left;
}

.ff-cart-th--price,
.ff-cart-th--qty,
.ff-cart-th--subtotal {
  text-align: right;
}

.ff-cart-row {
  border-bottom: 1px solid var(--border);
}

.ff-cart-cell {
  padding: 1.5rem 0.5rem;
  vertical-align: middle;
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 300;
  font-size: 0.9375rem;
  color: var(--black);
}

.ff-cart-cell--remove { width: 32px; padding-left: 0; }
.ff-cart-cell--img    { width: 80px; }
.ff-cart-cell--price,
.ff-cart-cell--subtotal { text-align: right; }
.ff-cart-cell--qty    { text-align: right; }

/* Remove button */
.ff-cart-remove {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  font-size: 1.1rem;
  color: rgba(26, 26, 26, 0.4);
  text-decoration: none;
  transition: color var(--dur-std) var(--ease-luxury);
  line-height: 1;
}
.ff-cart-remove:hover { color: var(--black); }

/* Product image in cart */
.ff-cart-cell--img img {
  width: 72px;
  height: 72px;
  object-fit: cover;
  display: block;
}

/* Product name link */
.ff-cart-product-link {
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 300;
  font-size: 0.9375rem;
  color: var(--black);
  text-decoration: none;
  letter-spacing: 0.01em;
  transition: opacity var(--dur-std) var(--ease-luxury);
}
.ff-cart-product-link:hover { opacity: 0.6; }

/* Quantity input */
.ff-cart-cell--qty .quantity {
  display: flex;
  justify-content: flex-end;
}

.ff-cart-cell--qty .qty,
.woocommerce .quantity .qty {
  width: 60px;
  height: 40px;
  border: 1px solid var(--border);
  background: var(--white);
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 300;
  font-size: 0.875rem;
  color: var(--black);
  text-align: center;
  padding: 0 0.5rem;
  transition: border-color var(--dur-std) var(--ease-luxury);
  -moz-appearance: textfield;
}
.ff-cart-cell--qty .qty:focus,
.woocommerce .quantity .qty:focus {
  outline: none;
  border-color: var(--champagne);
}
.ff-cart-cell--qty .qty::-webkit-inner-spin-button,
.ff-cart-cell--qty .qty::-webkit-outer-spin-button { -webkit-appearance: none; }

/* Cart actions row */
.ff-cart-actions {
  padding: 1.5rem 0.5rem 0;
}

.ff-cart-actions-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.ff-cart-continue {
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 300;
  font-size: 0.75rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(26, 26, 26, 0.55);
  text-decoration: none;
  transition: color var(--dur-std) var(--ease-luxury);
}
.ff-cart-continue:hover { color: var(--black); }

.ff-cart-update {
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 300;
  font-size: 0.625rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--black);
  background: transparent;
  border: 1px solid var(--border);
  padding: 0.625rem 1.5rem;
  cursor: pointer;
  transition:
    border-color var(--dur-std) var(--ease-luxury),
    color var(--dur-std) var(--ease-luxury);
}
.ff-cart-update:hover {
  border-color: var(--black);
  color: var(--black);
}

/* ─── CART SUMMARY SIDEBAR ───────────────────────────────────── */
.ff-cart-summary-inner {
  background: var(--ivory);
  padding: 2.5rem;
  position: sticky;
  top: calc(var(--nav-h) + 24px);
}

.ff-cart-summary-title {
  font-family: 'Playfair Display', serif;
  font-weight: 400;
  font-size: 1.25rem;
  letter-spacing: -0.01em;
  color: var(--black);
  margin-bottom: 0.5rem;
}

/* WooCommerce cart totals table */
.cart_totals h2,
.woocommerce-shipping-calculator h2 { display: none; }

.cart_totals table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 1.5rem;
}

.cart_totals table th,
.cart_totals table td {
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 300;
  font-size: 0.875rem;
  color: var(--black);
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--border);
  vertical-align: top;
}

.cart_totals table th {
  font-size: 0.625rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(26, 26, 26, 0.55);
  width: 40%;
}

.cart_totals .order-total th,
.cart_totals .order-total td {
  border-bottom: none;
  padding-top: 1.25rem;
  font-weight: 400;
}

.cart_totals .order-total td { font-size: 1.0625rem; }

/* Proceed to checkout button */
.wc-proceed-to-checkout .checkout-button,
.wc-proceed-to-checkout a.checkout-button,
a.checkout-button,
.woocommerce a.button.checkout-button,
.woocommerce .cart .button,
.woocommerce-cart .wc-proceed-to-checkout a,
.ff-cart-summary-inner a,
.ff-cart-summary-inner .button {
  display: block !important;
  width: 100% !important;
  text-align: center !important;
  padding: 1rem 2rem !important;
  background: var(--champagne) !important;
  color: var(--charcoal) !important;
  font-family: 'Libre Franklin', sans-serif !important;
  font-weight: 400 !important;
  font-size: 0.6875rem !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  border: 1px solid var(--champagne) !important;
  border-radius: 0 !important;
  cursor: pointer !important;
  transition:
    opacity var(--dur-std) var(--ease-luxury),
    letter-spacing var(--dur-std) var(--ease-luxury);
  margin-top: 1.25rem !important;
}
.wc-proceed-to-checkout .checkout-button:hover,
.wc-proceed-to-checkout a.checkout-button:hover,
a.checkout-button:hover,
.woocommerce a.button.checkout-button:hover {
  opacity: 0.82 !important;
  letter-spacing: 0.23em !important;
  background: var(--champagne) !important;
  color: var(--charcoal) !important;
}

/* Coupon form */
.woocommerce-shipping-calculator,
.coupon {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--border);
}

.coupon label {
  display: block;
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 300;
  font-size: 0.625rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(26, 26, 26, 0.55);
  margin-bottom: 0.5rem;
}

.coupon .input-text,
.coupon #coupon_code {
  width: 100%;
  border: 1px solid var(--border);
  background: var(--white);
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 300;
  font-size: 0.875rem;
  color: var(--black);
  padding: 0.625rem 0.875rem;
  margin-bottom: 0.75rem;
  transition: border-color var(--dur-std) var(--ease-luxury);
}
.coupon .input-text:focus,
.coupon #coupon_code:focus {
  outline: none;
  border-color: var(--champagne);
}

.coupon .button,
button[name="apply_coupon"] {
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 300;
  font-size: 0.625rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--black);
  background: transparent;
  border: 1px solid var(--border);
  padding: 0.625rem 1.25rem;
  cursor: pointer;
  transition: border-color var(--dur-std) var(--ease-luxury);
}
.coupon .button:hover,
button[name="apply_coupon"]:hover { border-color: var(--black); }

/* ─── CHECKOUT LAYOUT ────────────────────────────────────────── */
.ff-checkout-layout {
  display: grid;
  grid-template-columns: 1fr 400px;
  gap: 4rem;
  align-items: start;
}

/* ─── CHECKOUT SECTIONS ──────────────────────────────────────── */
.ff-checkout-section {
  margin-bottom: 3rem;
}

.ff-checkout-section-title {
  font-family: 'Playfair Display', serif;
  font-weight: 400;
  font-size: 1.125rem;
  letter-spacing: -0.01em;
  color: var(--black);
  margin-bottom: 0.5rem;
}

/* WooCommerce billing/shipping headings */
.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3,
.woocommerce-additional-fields h3 {
  font-family: 'Playfair Display', serif;
  font-weight: 400;
  font-size: 1.125rem;
  letter-spacing: -0.01em;
  color: var(--black);
  margin-bottom: 0.5rem;
}

/* ─── CHECKOUT FORM FIELDS ───────────────────────────────────── */
.woocommerce-checkout .form-row,
.ff-checkout-field {
  margin-bottom: 1.25rem;
}

.woocommerce-checkout .form-row label,
.ff-checkout-field label {
  display: block;
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 300;
  font-size: 0.625rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(26, 26, 26, 0.7);
  margin-bottom: 0.5rem;
}

.woocommerce-checkout .form-row .required,
.ff-checkout-field .required {
  color: #b33;
  text-decoration: none;
}

.ff-checkout-optional {
  font-size: 0.5625rem;
  color: rgba(26, 26, 26, 0.4);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-style: normal;
}

.ff-wc-input,
.ff-wc-textarea,
.woocommerce-checkout .form-row input[type="text"],
.woocommerce-checkout .form-row input[type="email"],
.woocommerce-checkout .form-row input[type="tel"],
.woocommerce-checkout .form-row input[type="number"],
.woocommerce-checkout .form-row input[type="date"],
.woocommerce-checkout .form-row input[type="password"],
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea,
.woocommerce #payment .form-row input[type="text"] {
  width: 100%;
  border: 1px solid var(--border);
  background: var(--white);
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 300;
  font-size: 0.9375rem;
  color: var(--black);
  padding: 0.875rem 1rem;
  transition: border-color var(--dur-std) var(--ease-luxury);
  border-radius: 0 !important;
  -webkit-appearance: none;
  appearance: none;
}

.ff-wc-input:focus,
.ff-wc-textarea:focus,
.woocommerce-checkout .form-row input:focus,
.woocommerce-checkout .form-row select:focus,
.woocommerce-checkout .form-row textarea:focus {
  outline: none;
  border-color: var(--champagne);
}

.ff-wc-textarea,
.woocommerce-checkout .form-row textarea {
  resize: vertical;
  min-height: 100px;
}

.ff-checkout-hint {
  display: block;
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 300;
  font-size: 0.6875rem;
  color: rgba(26, 26, 26, 0.45);
  letter-spacing: 0.05em;
  margin-top: 0.375rem;
}

.ff-checkout-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

@media (max-width: 480px) {
  .ff-checkout-row {
    grid-template-columns: 1fr;
  }
}

.ff-char-count {
  display: block;
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 300;
  font-size: 0.6875rem;
  color: rgba(26, 26, 26, 0.45);
  letter-spacing: 0.05em;
  margin-top: 0.375rem;
  text-align: right;
}

/* Select2 dropdowns */
.woocommerce-checkout .select2-container .select2-selection--single {
  border: 1px solid var(--border) !important;
  border-radius: 0 !important;
  height: auto !important;
  padding: 0.875rem 1rem !important;
}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 300;
  font-size: 0.9375rem;
  color: var(--black) !important;
  padding: 0 !important;
  line-height: 1.4 !important;
}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
  top: 50% !important;
  transform: translateY(-50%) !important;
}

/* Inline form rows */
.woocommerce-checkout .form-row-first,
.woocommerce-checkout .form-row-last {
  float: left;
  width: calc(50% - 0.5rem);
}
.woocommerce-checkout .form-row-first { margin-right: 1rem; }
.woocommerce-checkout .form-row-wide  { clear: both; }
.woocommerce-checkout::after          { content: ''; display: table; clear: both; }

/* ─── CHECKOUT ORDER SUMMARY SIDEBAR ─────────────────────────── */
.ff-checkout-summary-inner {
  background: var(--ivory);
  padding: 2.5rem;
  position: sticky;
  top: calc(var(--nav-h) + 24px);
}

.ff-checkout-summary-title {
  font-family: 'Playfair Display', serif;
  font-weight: 400;
  font-size: 1.25rem;
  letter-spacing: -0.01em;
  color: var(--black);
  margin-bottom: 0.5rem;
}

/* Order review table */
.woocommerce-checkout-review-order-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 1.5rem;
}

.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td {
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 300;
  font-size: 0.875rem;
  color: var(--black);
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--border);
  vertical-align: top;
}

.woocommerce-checkout-review-order-table thead th {
  font-size: 0.5625rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(26, 26, 26, 0.45);
}

.woocommerce-checkout-review-order-table .order-total th,
.woocommerce-checkout-review-order-table .order-total td {
  border-bottom: none;
  font-weight: 400;
  padding-top: 1.25rem;
  font-size: 1rem;
}

/* ─── PAYMENT SECTION ────────────────────────────────────────── */
#payment {
  background: var(--ivory);
  padding: 2rem;
  margin-top: 1.5rem;
  border-top: 1px solid var(--border);
}

#payment h3,
#payment .wc_payment_methods .wc_payment_method > label {
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 300;
  font-size: 0.8125rem;
  letter-spacing: 0.06em;
  color: var(--black);
}

#payment .wc_payment_methods {
  list-style: none;
  margin-bottom: 1.5rem;
}

#payment .wc_payment_methods .wc_payment_method {
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--border);
}

#payment .payment_box {
  background: var(--white);
  padding: 1rem;
  margin-top: 0.75rem;
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 300;
  font-size: 0.875rem;
  color: rgba(26, 26, 26, 0.7);
}

#payment .place-order {
  margin-top: 1.5rem;
}

#payment #place_order,
.woocommerce #payment #place_order {
  display: block;
  width: 100%;
  padding: 1.125rem 2rem;
  background: var(--champagne);
  color: var(--charcoal);
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 400;
  font-size: 0.6875rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  border: 1px solid var(--champagne);
  cursor: pointer;
  transition:
    opacity var(--dur-std) var(--ease-luxury),
    letter-spacing var(--dur-std) var(--ease-luxury);
  border-radius: 0 !important;
}
#payment #place_order:hover,
.woocommerce #payment #place_order:hover {
  opacity: 0.82;
  letter-spacing: 0.23em;
}

/* Privacy policy text */
.woocommerce-privacy-policy-text {
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 300;
  font-size: 0.75rem;
  color: rgba(26, 26, 26, 0.45);
  line-height: 1.6;
  margin-top: 1rem;
}
.woocommerce-privacy-policy-text a { color: inherit; text-decoration: underline; }

/* ─── THANK YOU PAGE ─────────────────────────────────────────── */
.ff-thankyou-header {
  text-align: center;
}

.ff-thankyou-header .ff-wc-rule {
  margin: 0 auto 1.5rem;
}

.ff-thankyou-msg {
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 300;
  font-size: 1rem;
  color: rgba(26, 26, 26, 0.7);
  line-height: 1.8;
  max-width: 500px;
  margin: 0 auto 2rem;
}

.ff-thankyou-notice {
  background: var(--ivory);
  padding: 1.25rem 1.75rem;
  margin-bottom: 2.5rem;
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 300;
  font-size: 0.875rem;
  color: var(--black);
  border-left: 3px solid var(--champagne);
  text-align: left;
}

.ff-thankyou-meta {
  list-style: none;
  background: var(--ivory);
  padding: 2rem;
  margin-bottom: 3rem;
}

.ff-thankyou-meta-item {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--border);
  gap: 1rem;
}

.ff-thankyou-meta-item:last-child { border-bottom: none; }

.ff-thankyou-meta-label {
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 300;
  font-size: 0.625rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(26, 26, 26, 0.5);
}

.ff-thankyou-meta-item strong {
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 400;
  font-size: 0.9375rem;
  color: var(--black);
  text-align: right;
}

.ff-thankyou-actions {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 2rem;
  flex-wrap: wrap;
  margin-top: 3rem;
}

.ff-thankyou-call {
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 300;
  font-size: 0.875rem;
  color: rgba(26, 26, 26, 0.55);
  text-decoration: none;
  transition: color var(--dur-std) var(--ease-luxury);
}
.ff-thankyou-call:hover { color: var(--black); }

/* ─── HEADER CART ICON — LIVE COUNT ──────────────────────────── */
.cart-badge {
  position: absolute;
  top: -7px;
  right: -9px;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  background: var(--champagne);
  color: #fff;
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 500;
  font-size: 0.625rem;
  line-height: 18px;
  text-align: center;
  letter-spacing: 0;
  border-radius: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  z-index: 10;
}

.cart-badge:empty,
.cart-badge.count-zero { display: none; }

/* ─── PROCEED TO CHECKOUT — OUR OWN BUTTON ──────────────────── */
.ff-checkout-proceed-btn {
  display: block;
  width: 100%;
  text-align: center;
  padding: 1rem 2rem;
  margin-top: 1.25rem;
  background: var(--champagne);
  color: var(--charcoal);
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 400;
  font-size: 0.6875rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  text-decoration: none;
  border: 1px solid var(--champagne);
  transition: opacity 300ms ease, letter-spacing 300ms ease;
}
.ff-checkout-proceed-btn:hover {
  opacity: 0.82;
  letter-spacing: 0.23em;
  color: var(--charcoal);
  text-decoration: none;
}

/* ─── PROCEED TO CHECKOUT BUTTON — NUCLEAR OVERRIDE ─────────── */
/* WooCommerce changes button markup often — catch every variant  */
a.checkout-button,
a.checkout-button.button,
a.checkout-button.alt,
.wc-proceed-to-checkout a,
.wc-proceed-to-checkout a.button,
.cart_totals .wc-proceed-to-checkout a,
.ff-cart-summary-inner .wc-proceed-to-checkout a {
  display: block !important;
  width: 100% !important;
  text-align: center !important;
  padding: 1rem 2rem !important;
  background-color: var(--champagne) !important;
  color: #2A2A2E !important;
  font-family: 'Libre Franklin', sans-serif !important;
  font-weight: 400 !important;
  font-size: 0.6875rem !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  border: 1px solid var(--champagne) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  margin-top: 1.25rem !important;
  cursor: pointer !important;
  transition: opacity 300ms ease, letter-spacing 300ms ease !important;
}
a.checkout-button:hover,
.wc-proceed-to-checkout a:hover {
  opacity: 0.82 !important;
  letter-spacing: 0.23em !important;
  color: #2A2A2E !important;
  background-color: var(--champagne) !important;
  text-decoration: none !important;
}

/* ─── MINI-CART DROPDOWN ─────────────────────────────────────── */
.ff-mini-cart {
  position: absolute;
  top: calc(100% + 12px);
  right: 0;
  width: 320px;
  background: var(--white);
  border: 1px solid var(--border);
  padding: 1.5rem;
  z-index: 1000;
  opacity: 0;
  pointer-events: none;
  transform: translateY(8px);
  transition:
    opacity var(--dur-std) var(--ease-luxury),
    transform var(--dur-std) var(--ease-luxury);
}

.ff-header-icon:hover .ff-mini-cart,
.ff-mini-cart.is-open {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.widget_shopping_cart_content .woocommerce-mini-cart {
  list-style: none;
  margin-bottom: 1rem;
}

.widget_shopping_cart_content .woocommerce-mini-cart-item {
  display: flex;
  gap: 1rem;
  padding: 1rem 0;
  border-bottom: 1px solid var(--border);
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 300;
  font-size: 0.875rem;
}

.widget_shopping_cart_content .woocommerce-mini-cart-item img {
  width: 56px;
  height: 56px;
  object-fit: cover;
  flex-shrink: 0;
}

.widget_shopping_cart_content .woocommerce-mini-cart__total {
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 400;
  font-size: 0.875rem;
  color: var(--black);
  display: flex;
  justify-content: space-between;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--border);
  margin-bottom: 1rem;
}

.widget_shopping_cart_content .woocommerce-mini-cart__buttons a {
  display: block;
  width: 100%;
  text-align: center;
  padding: 0.75rem;
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 400;
  font-size: 0.625rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  text-decoration: none;
  margin-bottom: 0.5rem;
  transition: opacity var(--dur-std) var(--ease-luxury);
}
.widget_shopping_cart_content .woocommerce-mini-cart__buttons a:hover { opacity: 0.75; }

.widget_shopping_cart_content .woocommerce-mini-cart__buttons .button {
  background: var(--ivory);
  color: var(--black);
  border: 1px solid var(--border);
}

.widget_shopping_cart_content .woocommerce-mini-cart__buttons .checkout {
  background: var(--champagne);
  color: var(--charcoal);
  border: 1px solid var(--champagne);
}

/* ─── WOOCOMMERCE GLOBAL OVERRIDES ───────────────────────────── */

/* Remove WooCommerce default star ratings if not needed */
.woocommerce .star-rating { display: none; }

/* Breadcrumbs — hide (we have the header nav) */
.woocommerce-breadcrumb { display: none; }

/* Result count on shop page */
.woocommerce-result-count {
  font-family: 'Libre Franklin', sans-serif;
  font-weight: 300;
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  color: rgba(26, 26, 26, 0.5);
}

/* Loading spinner */
.blockUI.blockOverlay::before {
  background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48Y2lyY2xlIGN4PSIyMCIgY3k9IjIwIiByPSIxNSIgc3Ryb2tlPSIjQzQ5QTBDIiBzdHJva2Utd2lkdGg9IjIiIGZpbGw9Im5vbmUiIHN0cm9rZS1kYXNoYXJyYXk9IjYwIDMwIj48YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InJvdGF0ZSIgZnJvbT0iMCAyMCAyMCIgdG89IjM2MCAyMCAyMCIgZHVyPSIwLjhzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPjwvY2lyY2xlPjwvc3ZnPg==) no-repeat center;
}

/* ─── RESPONSIVE ─────────────────────────────────────────────── */
@media (max-width: 1024px) {
  .ff-cart-layout,
  .ff-checkout-layout {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }

  .ff-cart-summary-inner,
  .ff-checkout-summary-inner {
    position: static;
  }
}

@media (max-width: 767px) {
  .ff-wc-page {
    padding-top: calc(var(--nav-h) + 48px);
    padding-bottom: 80px;
  }

  .ff-wc-inner { padding: 0 1.25rem; }

  .ff-cart-table thead { display: none; }

  .ff-cart-row { display: block; position: relative; padding: 1.25rem 0; border-bottom: 1px solid var(--border); }
  .ff-cart-cell { display: block; padding: 0.25rem 0; border: none !important; text-align: left !important; }

  .ff-cart-cell--remove {
    position: absolute;
    top: 1.25rem;
    right: 0;
  }

  .ff-cart-cell--img { padding-bottom: 0.5rem; }
  .ff-cart-cell--img img { width: 80px; height: 80px; }

  .ff-cart-cell[data-title]::before {
    content: attr(data-title) ': ';
    font-size: 0.5625rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(26, 26, 26, 0.45);
    font-weight: 300;
    margin-right: 0.25rem;
  }

  .ff-cart-cell--img::before { display: none; }

  .ff-cart-cell--qty .quantity { justify-content: flex-start; }

  .ff-cart-actions-inner { flex-direction: column; align-items: flex-start; gap: 1rem; }

  .ff-cart-summary-inner,
  .ff-checkout-summary-inner { padding: 1.75rem; }

  .woocommerce-checkout .form-row-first,
  .woocommerce-checkout .form-row-last {
    float: none;
    width: 100%;
    margin-right: 0;
  }

  .ff-thankyou-meta-item { flex-direction: column; gap: 0.25rem; }
  .ff-thankyou-meta-item strong { text-align: left; }

  #payment { padding: 1.5rem; }
}

@media (prefers-reduced-motion: reduce) {
  .ff-wc-input,
  .ff-wc-textarea,
  .woocommerce-checkout .form-row input,
  .woocommerce-checkout .form-row select,
  .woocommerce-checkout .form-row textarea,
  .ff-cart-remove,
  .ff-cart-product-link,
  .ff-cart-continue,
  .ff-cart-update,
  .wc-proceed-to-checkout .checkout-button,
  #payment #place_order {
    transition: none !important;
  }
}

/* ── Checkout order summary product image ─────────────────── */
.ff-checkout-product-img {
  display: block;
  width: 100%;
  max-width: 120px;
  height: 120px;
  object-fit: cover;
  margin-bottom: 0.5rem;
}
