.woocommerce ul.products,
.woocommerce-page ul.products,
ul.products {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after,
ul.products::before,
ul.products::after {
  content: none !important;
  display: none !important;
}

@media (min-width: 768px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  ul.products {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  ul.products {
    grid-template-columns: repeat(3, 1fr);
  }
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
ul.products li.product {
  width: auto !important;
  float: none !important;
  margin: 0 !important;
  padding: 1.5rem;
  position: relative;
}

.fk-product-card {
  display: flex;
  flex-direction: column;
}

.fk-product-card h3 a:hover {
  color: var(--primary);
}

.fk-product-card .program-foot {
  margin-top: auto;
}

.fk-product-card .amount,
.fk-product-card .amount .woocommerce-Price-amount,
.fk-product-card .amount bdi {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--primary);
}

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce-page a.button,
.woocommerce-page button.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--primary) !important;
  color: var(--primary-foreground) !important;
  border-radius: 9999px !important;
  font-weight: 600;
  font-size: 0.75rem;
  padding: 0.5rem 1rem !important;
  border: 0 !important;
  text-decoration: none !important;
  transition: transform 0.3s, box-shadow 0.3s;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
  transform: translateY(-2px);
  box-shadow: var(--gold-shadow);
  background: var(--primary) !important;
  color: var(--primary-foreground) !important;
}

.fk-add-to-cart .cart,
.fk-add-to-cart form.cart {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.fk-add-to-cart table.variations {
  width: 100%;
  border: 0 !important;
  margin: 0;
  background: transparent;
}

.fk-add-to-cart table.variations tbody,
.fk-add-to-cart table.variations tr {
  display: block;
}

.fk-add-to-cart table.variations th.label,
.fk-add-to-cart table.variations td.value {
  display: block;
  width: 100%;
  padding: 0;
  border: 0 !important;
  background: transparent;
  text-align: left;
  vertical-align: top;
}

.fk-add-to-cart table.variations th.label {
  margin-bottom: 0.5rem;
}

.fk-add-to-cart table.variations th.label label {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--foreground);
}

.fk-add-to-cart table.variations select,
.fk-add-to-cart .variations_form select {
  width: 100%;
  max-width: 100%;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  font-family: inherit;
  font-size: 0.9375rem;
  font-weight: 500;
  line-height: 1.4;
  color: var(--foreground) !important;
  background-color: var(--background) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' stroke='%23c9a24a' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  background-size: 1rem;
  border: 1px solid color-mix(in oklab, var(--primary) 40%, var(--border)) !important;
  border-radius: 0.75rem !important;
  padding: 0.85rem 2.75rem 0.85rem 1rem !important;
  min-height: 3rem;
  cursor: pointer;
}

.fk-add-to-cart table.variations select:hover,
.fk-add-to-cart .variations_form select:hover {
  border-color: color-mix(in oklab, var(--primary) 50%, transparent) !important;
}

.fk-add-to-cart table.variations select:focus,
.fk-add-to-cart .variations_form select:focus {
  outline: none;
  border-color: var(--primary) !important;
  box-shadow: 0 0 0 3px color-mix(in oklab, var(--primary) 22%, transparent);
}

.fk-add-to-cart table.variations option {
  background: var(--card);
  color: var(--foreground);
}

.fk-add-to-cart .reset_variations {
  display: inline-block;
  margin-top: 0.65rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--primary) !important;
}

.fk-add-to-cart .woocommerce-variation {
  text-align: center;
}

.fk-add-to-cart .woocommerce-variation-price {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--primary);
  margin-bottom: 0.25rem;
}

.fk-add-to-cart .woocommerce-variation-price .woocommerce-Price-amount,
.fk-add-to-cart .woocommerce-variation-price bdi {
  color: var(--primary);
}

.fk-add-to-cart .single_add_to_cart_button {
  width: 100%;
  padding: 0.75rem 1.5rem !important;
  font-size: 1rem !important;
}

.fk-add-to-cart .quantity {
  display: none;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews {
  background: var(--card) !important;
  color: var(--foreground) !important;
  border-top-color: var(--primary) !important;
  border-radius: 0.75rem;
}

.woocommerce-message a,
.woocommerce-info a {
  color: var(--primary) !important;
}

.woocommerce-page-wrap .woocommerce {
  color: var(--foreground);
}

.woocommerce table.shop_table {
  border: 1px solid var(--border) !important;
  background: var(--card);
  border-radius: 1rem;
  overflow: hidden;
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
  border-color: var(--border) !important;
  color: var(--foreground);
}

.woocommerce-cart-form,
.woocommerce-checkout,
.woocommerce-account {
  color: var(--foreground);
}

body.woocommerce-checkout .wp-content,
body.woocommerce-cart .wp-content {
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
  overflow: visible;
}

body.woocommerce-checkout .wp-content h1,
body.woocommerce-cart .wp-content h1 {
  text-align: center;
  margin-bottom: 2rem;
}

body.woocommerce-cart .cart-collaterals {
  display: flex;
  justify-content: flex-end;
}

body.woocommerce-cart .cart-collaterals .cart_totals {
  width: 100%;
  max-width: 420px;
  float: none;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-checkout input.input-text,
.woocommerce-checkout textarea,
.woocommerce-checkout select:not(.wc-blocks-components-select__select),
#coupon_code {
  background: var(--background) !important;
  border: 1px solid var(--border) !important;
  color: var(--foreground) !important;
  border-radius: 0.75rem !important;
  padding: 0.75rem 1rem !important;
}

.woocommerce-checkout #payment,
.woocommerce-checkout .wc-block-checkout__payment-method,
.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block {
  display: block !important;
  visibility: visible !important;
  overflow: visible !important;
  background: var(--card) !important;
  border-radius: 1rem;
}

.woocommerce-checkout #payment ul.payment_methods,
.woocommerce-checkout #payment .wc_payment_method {
  display: block !important;
  visibility: visible !important;
}

.woocommerce-checkout #payment div.payment_box {
  background: var(--muted) !important;
  color: var(--foreground) !important;
}

/* Cart & checkout blocks */
.wc-block-components-text-input input[type="text"],
.wc-block-components-text-input input[type="email"],
.wc-block-components-text-input input[type="tel"],
.wc-block-components-text-input input[type="number"],
.wc-block-components-textarea,
.wc-block-components-combobox .components-form-token-field__input,
.wc-block-components-address-form input[type="text"],
.wc-block-components-address-form input[type="tel"] {
  background: var(--background) !important;
  border: 1px solid var(--border) !important;
  color: var(--foreground) !important;
  border-radius: 0.75rem !important;
}

.wc-blocks-components-select .wc-blocks-components-select__container {
  background: var(--background) !important;
  border: 1px solid var(--border) !important;
  border-radius: 0.75rem !important;
}

.wc-blocks-components-select .wc-blocks-components-select__select {
  background: var(--background) !important;
  border: 0 !important;
  border-radius: 0.75rem !important;
  color: var(--foreground) !important;
}

.woocommerce select option,
.wc-blocks-components-select option,
.wc-block-components-combobox option {
  background: var(--card) !important;
  color: var(--foreground) !important;
}

.wc-block-components-text-input input:focus,
.wc-block-components-textarea:focus {
  border-color: var(--primary) !important;
  box-shadow: none !important;
  outline: none !important;
}

.wc-blocks-components-select .wc-blocks-components-select__container:focus-within {
  border-color: var(--primary) !important;
}

.wc-block-components-text-input label,
.wc-blocks-components-select__label,
.wc-block-components-checkbox__label,
.wc-block-components-radio-control__label,
.wc-block-components-totals-item__label,
.wc-block-components-order-summary-item__description,
.wc-block-components-product-metadata {
  color: var(--muted-foreground) !important;
}

.wc-block-components-title,
.wc-block-components-checkout-step__title,
.wc-block-components-totals-item__value,
.wc-block-components-product-name,
.wc-block-components-order-summary-item__total-price,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-panel__button {
  color: var(--foreground) !important;
}

.wc-block-components-checkout-step__description,
.wc-block-components-address-card__edit,
.wc-block-components-text-input.is-active label {
  color: var(--muted-foreground) !important;
}

.wc-block-components-button:not(.is-link),
.wc-block-components-checkout-place-order-button {
  background: var(--primary) !important;
  color: var(--primary-foreground) !important;
  border-radius: 9999px !important;
  border: 0 !important;
}

.wc-block-components-button.is-link,
.wc-block-components-address-form .wc-block-components-link,
.wc-block-checkout__add-note a,
.wc-block-components-panel__button:hover {
  color: var(--primary) !important;
}

.wp-block-woocommerce-checkout-order-summary-block,
.wc-block-components-sidebar .wc-block-components-panel,
.wc-block-components-order-summary {
  background: var(--card) !important;
  border-color: var(--border) !important;
}

.wc-block-components-radio-control-accordion-option,
.wc-block-components-radio-control__option,
.wc-block-components-panel {
  border-color: var(--border) !important;
}

.wc-block-components-validation-error {
  color: #f87171 !important;
}

.woocommerce .cart-collaterals .cart_totals,
.woocommerce-checkout-review-order {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 1.5rem;
  padding: 1.5rem;
}

.woocommerce div.product .woocommerce-tabs {
  display: none;
}

.woocommerce-breadcrumb,
.woocommerce-products-header {
  display: none;
}

.fk-single-product .badge-star {
  margin-bottom: 1rem;
}

.fk-single-product .include-box ul {
  list-style: disc;
  padding-left: 1.25rem;
  margin: 1rem 0;
}

.fk-single-product .include-box h2,
.fk-single-product .include-box h3 {
  color: var(--primary);
  font-size: 1.25rem;
  margin: 1.25rem 0 0.75rem;
}

.fk-single-product .include-box p {
  margin-bottom: 1rem;
  line-height: 1.625;
}

.transform-table-wrap {
  overflow-x: auto;
}

.transform-table {
  width: 100%;
  border-collapse: collapse;
}

.transform-table thead {
  display: none;
}

.transform-table,
.transform-table tbody,
.transform-table tr,
.transform-table td {
  display: block;
  width: 100%;
}

.transform-table tr {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 1.25rem;
  margin-bottom: 1rem;
}

.transform-table td {
  border: none;
  padding: 0.35rem 0;
}

.transform-table td p {
  margin: 0.35rem 0 0;
  font-size: 0.875rem;
  color: var(--muted-foreground);
  line-height: 1.5;
}

.transform-price,
.transform-price .amount,
.transform-price .woocommerce-Price-amount,
.transform-price bdi {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--primary);
  white-space: nowrap;
}

.transform-price del,
.purchase-card .invest .big del {
  color: var(--muted-foreground);
  font-weight: 600;
  text-decoration: line-through;
  margin-right: 0.4rem;
}

.transform-price del,
.transform-price del .woocommerce-Price-amount,
.transform-price del bdi {
  font-size: 1rem;
  color: var(--muted-foreground);
}

.purchase-card .invest .big del {
  display: block;
  font-size: 1.25rem;
  margin-right: 0;
  margin-bottom: 0.15rem;
}

.transform-price ins,
.purchase-card .invest .big ins {
  text-decoration: none;
}

.save-badge {
  display: block;
  margin-top: 0.35rem;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--primary);
  white-space: nowrap;
}

.purchase-card .invest .save-badge {
  font-size: 1rem;
  margin-top: 0.5rem;
}

.transform-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: stretch;
  margin-top: 0.75rem;
}

.transform-actions .btn {
  flex: 1;
}

.transform-table tr:last-child {
  margin-bottom: 0;
}

.woocommerce span.onsale {
  background: var(--primary) !important;
  color: var(--primary-foreground) !important;
}

.woocommerce a.remove {
  color: var(--primary) !important;
}

.returned-customer-notice,
.woocommerce-form-login-toggle {
  color: var(--muted-foreground);
}

.fk-next-steps {
  max-width: 720px;
  margin: 2.5rem auto 0;
  padding: 1.75rem;
  border: 1px solid color-mix(in oklab, var(--primary) 40%, transparent);
  border-radius: 16px;
  background: var(--card);
}

.fk-next-steps h2,
.fk-next-steps h3 {
  color: var(--primary);
  margin: 0 0 0.75rem;
}

.fk-next-steps h3 {
  margin-top: 1.5rem;
  font-size: 1.1rem;
}

.fk-next-steps p {
  margin: 0 0 1rem;
  color: var(--muted-foreground);
}

.fk-next-steps-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.intake-done .fk-next-steps-actions {
  margin-top: 1rem;
  justify-content: center;
}

.contest-offer {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.contest-stage-photo {
  margin: 0;
}

.contest-stage-photo img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  border-radius: 1.5rem;
  border: 1px solid var(--border);
}

@media (max-width: 767px) {
  .prep-grid.contest-hub-layout {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
  }

  .contest-hub-layout .prep-copy,
  .contest-hub-layout .contest-offer {
    display: contents;
  }

  .contest-hub-layout .contest-intro {
    order: 1;
  }

  .contest-hub-layout .contest-intro .prep-tagline {
    margin-bottom: 0;
  }

  .contest-hub-layout .contest-stage-photo,
  .contest-hub-layout .hub-photo-switcher {
    order: 2;
  }

  .contest-hub-layout .include-box {
    order: 3;
    margin-bottom: 0;
  }

  .contest-hub-layout .transform-table-wrap {
    order: 4;
  }
}

.hub-photo-switcher {
  position: relative;
}

.hub-photo-switcher-nav {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 0.75rem;
  pointer-events: none;
  z-index: 1;
}

.hub-photo-btn {
  pointer-events: auto;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 9999px;
  border: 1px solid color-mix(in oklab, var(--primary) 55%, transparent);
  background: color-mix(in oklab, var(--card) 82%, transparent);
  color: var(--primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);
}

.hub-photo-btn:hover,
.hub-photo-btn:focus-visible {
  background: var(--primary);
  color: var(--primary-foreground);
  border-color: var(--primary);
}
