/* Hapi single product: native WooCommerce elements in the Hapi look. */

/* Breadcrumbs */
.single-product .hp-pdp-crumbs .woocommerce-breadcrumb { margin: 0; font-size: var(--hp-text-s); color: var(--hp-text); }
.single-product .hp-pdp-crumbs .woocommerce-breadcrumb a { color: var(--hp-green); text-decoration: none; }
.single-product .hp-pdp-crumbs .woocommerce-breadcrumb a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* Gallery */
.single-product .hp-pdp__media { position: sticky; top: calc(var(--hp-header-h, 72px) + var(--hp-space-m)); }
.single-product .hp-pdp__media .woocommerce-product-gallery { opacity: 1 !important; margin: 0; width: 100% !important; float: none !important; }
.single-product .hp-pdp__media .flex-viewport,
.single-product .hp-pdp__media .woocommerce-product-gallery__wrapper { border-radius: var(--hp-radius-xl, 28px); overflow: hidden; background: #fff; }
.single-product .hp-pdp__media .flex-viewport { border: 1px solid var(--hp-line); }
.single-product .hp-pdp__media .flex-viewport .woocommerce-product-gallery__wrapper { border-radius: 0; }
.single-product .hp-pdp__media .woocommerce-product-gallery__image a { display: block; }
.single-product .hp-pdp__media .woocommerce-product-gallery__image img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; background: #fff; }
.single-product .hp-pdp__media .flex-control-thumbs { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--hp-space-2xs); margin: var(--hp-space-xs) 0 0 !important; padding: 0; list-style: none; }
.single-product .hp-pdp__media .flex-control-thumbs li { width: auto !important; float: none !important; margin: 0 !important; }
.single-product .hp-pdp__media .flex-control-thumbs img { aspect-ratio: 1; object-fit: cover; border-radius: var(--hp-radius-s); border: 2px solid var(--hp-line); background: #fff; object-fit: cover; opacity: 0.75; cursor: pointer; transition: opacity var(--hp-dur-fast) var(--hp-ease), border-color var(--hp-dur-fast) var(--hp-ease); }
.single-product .hp-pdp__media .flex-control-thumbs img:hover { opacity: 1; }
.single-product .hp-pdp__media .flex-control-thumbs img.flex-active { opacity: 1; border-color: var(--hp-green); }
.single-product .hp-pdp__media .woocommerce-product-gallery__trigger { top: var(--hp-space-s); right: var(--hp-space-s); background: var(--hp-paper); border-radius: var(--hp-radius-pill); box-shadow: var(--hp-shadow-s); }

/* Summary */
.single-product .hp-pdp__summary .woocommerce-product-rating { display: flex; align-items: center; gap: var(--hp-space-2xs); margin: 0; font-size: var(--hp-text-s); }
.single-product .hp-pdp__summary .star-rating { color: var(--hp-orange, #f59e0b); }
.single-product .hp-pdp__summary .woocommerce-review-link { color: var(--hp-text); }
.single-product .hp-pdp__summary > .brxe-hapi-buy-box { align-self: stretch; width: 100%; }
.single-product .hp-pdp__excerpt p { margin: 0 0 0.5em; }
.single-product .hp-pdp__excerpt p:last-child { margin-bottom: 0; }
.single-product .hp-pdp__meta { display: flex; flex-wrap: wrap; gap: var(--hp-space-3xs) var(--hp-space-m); font-size: var(--hp-text-s); color: var(--hp-text); }
.single-product .hp-pdp__meta a { color: var(--hp-green); }

/* Details: the product description keeps its own styled blocks. */
.single-product .hp-pdp__content > :first-child { margin-top: 0; }
.single-product .hp-pdp__content img { max-width: 100%; height: auto; border-radius: var(--hp-radius-m); }
.single-product .hp-pdp__aside { position: sticky; top: calc(var(--hp-header-h, 72px) + var(--hp-space-m)); }
.single-product .hp-pdp__aside table.woocommerce-product-attributes { width: 100%; margin: 0; border: 0; border-collapse: collapse; font-size: var(--hp-text-s); }
.single-product .hp-pdp__aside .woocommerce-product-attributes th,
.single-product .hp-pdp__aside .woocommerce-product-attributes td { padding: 0.7rem 0; border: 0; border-bottom: 1px solid var(--hp-line); background: none; text-align: left; vertical-align: top; }
.single-product .hp-pdp__aside .woocommerce-product-attributes th { width: 42%; font-weight: 600; color: var(--hp-green); }
.single-product .hp-pdp__aside .woocommerce-product-attributes td p { margin: 0; }

/* Reviews */
.single-product .hp-pdp__reviews-head { position: sticky; top: calc(var(--hp-header-h, 72px) + var(--hp-space-m)); }
.single-product .hp-pdp-reviews .woocommerce-noreviews { padding: var(--hp-space-s) var(--hp-space-m); border-radius: var(--hp-radius-m); background: var(--hp-gold-soft); color: var(--hp-brown) !important; }
.single-product .hp-pdp-reviews #reviews { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: var(--hp-space-xl); }
.single-product .hp-pdp-reviews .woocommerce-Reviews-title { margin: 0 0 var(--hp-space-s); font-size: var(--hp-text-xl); }
.single-product .hp-pdp-reviews .commentlist { margin: 0; padding: 0; list-style: none; display: grid; gap: var(--hp-space-s); }
.single-product .hp-pdp-reviews .commentlist .comment_container { padding: var(--hp-space-m); background: var(--hp-paper); border: 1px solid var(--hp-line); border-radius: var(--hp-radius-m); }
.single-product .hp-pdp-reviews .commentlist img.avatar { border-radius: 50%; }
.single-product .hp-pdp-reviews .star-rating, .single-product .hp-pdp-reviews .stars a { color: var(--hp-orange); }
.single-product .hp-pdp-reviews #review_form_wrapper { padding: var(--hp-space-l); background: var(--hp-paper); border: 1px solid var(--hp-line); border-radius: var(--hp-radius-l); }
.single-product .hp-pdp-reviews .comment-reply-title { display: block; margin-bottom: var(--hp-space-xs); font-size: var(--hp-text-l); font-weight: 600; color: var(--hp-green); }
.single-product .hp-pdp-reviews #review_form input:not([type="checkbox"]):not([type="submit"]),
.single-product .hp-pdp-reviews #review_form textarea { width: 100%; padding: 0.75rem 1rem; border: 1px solid var(--hp-line); border-radius: var(--hp-radius-s); background: #fff; font: inherit; }
.single-product .hp-pdp-reviews #review_form .form-submit input[type="submit"] { min-height: 48px; padding: 0 1.5rem; border: 0; border-radius: var(--hp-radius-pill); background: var(--hp-green); color: #fff; font: inherit; font-weight: 600; cursor: pointer; }
.single-product .hp-pdp-reviews #review_form .form-submit input[type="submit"]:hover { background: var(--hp-green-dark); }
.single-product .hp-pdp-reviews .woocommerce-noreviews { margin: 0; color: var(--hp-text); }
.single-product .hp-pdp-reviews #reviews:has(.woocommerce-noreviews) { grid-template-columns: minmax(0, 1fr); gap: var(--hp-space-s); }
.single-product .hp-pdp-reviews #reviews:has(.woocommerce-noreviews) .woocommerce-Reviews-title { display: none; }
.single-product .hp-pdp-reviews #review_form .comment-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--hp-space-s); }
.single-product .hp-pdp-reviews #review_form .comment-form > p,
.single-product .hp-pdp-reviews #review_form .comment-form > div { grid-column: 1 / -1; margin: 0 0 var(--hp-space-s); }
.single-product .hp-pdp-reviews #review_form .comment-form > .comment-form-author { grid-column: 1; }
.single-product .hp-pdp-reviews #review_form .comment-form > .comment-form-email { grid-column: 2; }
.single-product .hp-pdp-reviews #review_form label { display: block; margin-bottom: 0.35rem; font-size: var(--hp-text-s); font-weight: 600; color: var(--hp-ink); }

@media (max-width: 991px) {
  .single-product .hp-pdp__media, .single-product .hp-pdp__aside, .single-product .hp-pdp__reviews-head { position: static; }
  .single-product .hp-pdp-reviews #reviews { grid-template-columns: 1fr; }
}
@media (max-width: 478px) {
  .single-product .hp-pdp-reviews #review_form .comment-form { grid-template-columns: minmax(0, 1fr); }
  .single-product .hp-pdp-reviews #review_form .comment-form > .comment-form-email { grid-column: 1; }
}
@media (max-width: 767px) {
  .single-product .hp-pdp__media .woocommerce-product-gallery__wrapper { border-radius: var(--hp-radius-l); }
  .single-product .hp-pdp__media .flex-control-thumbs { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* Related products: equal-height cards in each row. */
.single-product #brxe-psgrid > .brxe-block { display: flex; }
.single-product #brxe-psgrid .hapi-pcard { height: 100%; width: 100%; }
