/* KreateMind product page. Loaded on single product pages only. */

.single-product .product .product_title { font-size: var(--text-2xl); margin-bottom: var(--space-3); }
@media (max-width: 767px) { .single-product .product .product_title { font-size: var(--text-xl); } }

.km-product__proposition { margin: 0 0 var(--space-4); font-size: var(--text-md); color: var(--text-body); }

.single-product .summary .price {
  font-family: var(--font-display);
  font-weight: var(--weight-extrabold);
  font-size: var(--text-xl);
  color: var(--text-heading);
}
.km-product__test-price { margin: 0 0 var(--space-4); }

.km-product__gallery .km-media-tile { width: 100%; }

/* ---- Pack selector: selection = 2px violet border + violet tint, never colour alone ---- */
.km-pack-selector {
  display: grid;
  gap: var(--space-3);
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  margin: 0 0 var(--space-5);
}
.km-pack-option {
  box-sizing: border-box;
  min-height: 44px;
  padding: var(--space-4);
  text-align: left;
  cursor: pointer;
  background: var(--surface-card);
  border: 2px solid var(--border-soft);
  border-radius: var(--radius-lg);
  color: var(--text-body);
  transition: background var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}
.km-pack-option:hover { background: var(--km-violet-soft); color: var(--text-body); }
.km-pack-option:active { transform: var(--press-scale); }
.km-pack-option[aria-checked="true"] { background: var(--km-violet-soft); border-color: var(--km-violet); box-shadow: var(--shadow-soft); }
.km-pack-option__name {
  display: block;
  font-family: var(--font-display);
  font-weight: var(--weight-extrabold);
  font-size: var(--text-lg);
  line-height: 1.1;
  color: var(--text-heading);
}
.km-pack-option__pieces { display: block; margin-top: 4px; font-size: var(--text-sm); color: var(--text-muted); }

/* WooCommerce's own variation table stays for no-JS; hidden once the selector drives it. */
.km-pack-ready .variations_form table.variations,
.km-pack-ready .variations_form .reset_variations { display: none; }

/* ---- Add to cart ---- */
.single-product .single_add_to_cart_button.button {
  box-sizing: border-box;
  min-height: 52px;
  padding: 16px 32px;
  border: 0;
  border-radius: var(--radius-pill);
  background: var(--km-violet);
  color: var(--text-on-brand);
  font-family: var(--font-display);
  font-weight: var(--weight-bold);
  font-size: 1.125rem;
  line-height: 1;
  transition: background var(--dur-base) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}
.single-product .single_add_to_cart_button.button:hover { background: var(--state-hover-brand); color: var(--text-on-brand); }
.single-product .single_add_to_cart_button.button:active { background: var(--state-active-brand); transform: var(--press-scale); }
.single-product .single_add_to_cart_button.button.disabled { background: var(--surface-sunken); color: var(--text-muted); }
.single-product .quantity .qty {
  min-height: 52px;
  border: 2px solid var(--border-soft);
  border-radius: var(--radius-md);
  font-family: var(--font-display);
  font-weight: var(--weight-bold);
  font-size: var(--text-md);
}

/* ---- Trust line ---- */
.km-product__trust {
  display: grid;
  gap: var(--space-2);
  margin: var(--space-5) 0 0;
  padding: var(--space-4) 0 0;
  border-top: 1px solid var(--border-soft);
  list-style: none;
  font-size: var(--text-sm);
}
.km-product__trust-label {
  display: inline-block;
  min-width: 80px;
  font-size: var(--text-eyebrow);
  font-weight: var(--weight-bold);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--text-muted);
}

/* ---- Facts + reviews below the fold ---- */
.km-product-details, .km-product-reviews { clear: both; max-width: 760px; padding-top: var(--space-8); }
.km-product-details .km-step-flow { margin-top: var(--space-4); }

/* ---- Sticky buy bar: phones only, one CTA, safe-area padded ---- */
.km-buy-bar { display: none; }
@media (max-width: 767px) {
  .km-buy-bar:not([hidden]) {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 60;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    padding: var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom));
    background: var(--surface-card);
    border-top: 1px solid var(--border-soft);
    box-shadow: var(--shadow-lift);
  }
  .km-buy-bar__info { display: flex; flex-direction: column; min-width: 0; }
  .km-buy-bar__pack { font-family: var(--font-display); font-weight: var(--weight-extrabold); color: var(--text-heading); }
  .km-buy-bar__price { font-size: var(--text-sm); color: var(--text-body); }
  .km-buy-bar__cta { min-height: 52px; flex: 0 0 auto; }
}

/* Muted grey is 4.48:1 on the selected violet tint; the selected option carries body ink instead. */
.km-pack-option[aria-checked="true"] .km-pack-option__pieces { color: var(--text-body); }

/* Phones: a square photo slot keeps the title, price and Add to cart close to the first screen. */
@media (max-width: 767px) {
  .km-product__gallery .km-media-tile { aspect-ratio: 1 / 1; }
}

.single-product .km-product-details__title {
  margin: 0 0 var(--space-4);
  font-size: var(--text-lg);
  text-transform: none;
}

/* ---- Reviews (form shows to verified buyers only) ---- */
.single-product #reviews #comments .woocommerce-noreviews,
.single-product #reviews .woocommerce-verification-required { font-size: var(--text-sm); color: var(--text-body); }
.single-product #review_form_wrapper #respond {
  padding: var(--space-5);
  border: 1px solid var(--border-soft);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
}
.single-product #review_form .comment-form-rating .stars a {
  width: 44px;
  height: 44px;
  color: var(--km-violet);
}
.single-product #review_form .form-submit input[type="submit"] {
  min-height: 48px;
  padding: 14px 26px;
  border: 0;
  border-radius: var(--radius-pill);
  background: var(--km-violet);
  color: var(--text-on-brand);
  font-family: var(--font-display);
  font-weight: var(--weight-bold);
}
.single-product #review_form .form-submit input[type="submit"]:hover { background: var(--state-hover-brand); }
.single-product #review_form .form-submit input[type="submit"]:active { background: var(--state-active-brand); transform: var(--press-scale); }

@media (max-width: 767px) {
  /* Breathing room under the sticky header; the gallery tile was flush against it. */
  .single-product .site-main > .product { padding-top: var(--space-4); }
  /* Quantity keeps a fixed width; Add to cart takes the rest of the row. */
  .single-product .woocommerce-variation-add-to-cart,
  .single-product form.cart:not(.variations_form) { display: flex; align-items: stretch; gap: var(--space-3); }
  .single-product .woocommerce-variation-add-to-cart .quantity,
  .single-product form.cart:not(.variations_form) .quantity { flex: 0 0 72px; margin: 0; }
  .single-product .woocommerce-variation-add-to-cart .quantity .qty,
  .single-product form.cart:not(.variations_form) .quantity .qty { width: 100%; }
  .single-product .woocommerce-variation-add-to-cart .single_add_to_cart_button.button,
  .single-product form.cart:not(.variations_form) .single_add_to_cart_button.button { flex: 1; margin: 0; }
}
