/* Single-product refinement. WooCommerce hooks remain the source of content and behavior. */
.single-product .sn-page { padding-top: clamp(1.25rem, 3vw, 3rem); }
.single-product .sn-page > .sn-container { padding: clamp(1rem, 2.6vw, 2.5rem); border: 1px solid var(--sn-line); border-radius: 22px; background: rgba(255, 253, 248, .98); box-shadow: var(--sn-shadow); }
.single-product .sn-page > .sn-container > .woocommerce { background: transparent; }
.single-product .woocommerce div.product { display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(340px, .96fr); gap: clamp(1.4rem, 4vw, 4rem); align-items: start; margin: 0; }
.single-product .woocommerce div.product div.images,
.single-product .woocommerce div.product div.summary { width: auto; float: none; }
.single-product .woocommerce div.product div.images { margin: 0; padding: clamp(.65rem, 1.5vw, 1rem); border: 1px solid #eadfce; border-radius: 18px; background: #fff; box-shadow: 0 10px 28px rgba(45, 31, 12, .05); }
.single-product .woocommerce div.product div.images img { margin-inline: auto; border-radius: 13px; }
.single-product .woocommerce div.product div.images .flex-control-thumbs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; margin-top: 10px; }
.single-product .woocommerce div.product div.images .flex-control-thumbs li { width: auto; float: none; }
.single-product .woocommerce div.product div.images .flex-control-thumbs img { border: 1px solid transparent; border-radius: 9px; opacity: .72; }
.single-product .woocommerce div.product div.images .flex-control-thumbs img.flex-active { border-color: #c99b24; opacity: 1; }
.single-product .woocommerce div.product .woocommerce-product-gallery__trigger { top: 1.4rem; right: 1.4rem; }
.single-product .woocommerce div.product .summary { margin: 0; padding: clamp(1.3rem, 2.8vw, 2.4rem); border: 1px solid #eadfce; border-radius: 18px; background: #fffdf8; box-shadow: 0 10px 28px rgba(45, 31, 12, .05); }
.single-product .woocommerce div.product .product_title { margin: 0 0 .8rem; font-size: clamp(2rem, 4vw, 3.6rem); line-height: 1.03; letter-spacing: -.025em; }
.single-product .woocommerce div.product .woocommerce-product-rating { display: flex; align-items: center; gap: .7rem; margin: 0 0 1rem; }
.single-product .woocommerce div.product .woocommerce-product-rating::after { content: none; }
.single-product .woocommerce div.product .woocommerce-review-link { color: var(--sn-muted); font-size: .78rem; font-weight: 700; }
.single-product .woocommerce div.product p.price { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem .85rem; margin: .9rem 0 1.1rem; color: #5f146e; font-size: clamp(1.25rem, 2.3vw, 1.65rem); line-height: 1.35; }
.single-product .woocommerce div.product .sn-jrm-public-price { color: #6f665b; }
.single-product .woocommerce div.product .sn-jrm-member-price { display: inline-flex; align-items: center; gap: .48rem; color: #8c6010; }
.single-product .woocommerce div.product .sn-jrm-badge { padding: .28rem .55rem; border-radius: 999px; background: #fff1c9; color: #79550f; font-size: .64rem; letter-spacing: .04em; text-transform: uppercase; }
.single-product .woocommerce div.product .woocommerce-product-details__short-description { margin: 0 0 1.2rem; color: #5f574f; font-size: .96rem; line-height: 1.75; }
.single-product .woocommerce div.product .stock { display: inline-flex; align-items: center; gap: .42rem; margin: 0 0 1.15rem; padding: .35rem .65rem; border-radius: 999px; background: #edf6ed; color: #357048; font-size: .78rem; font-weight: 800; }
.single-product .woocommerce div.product .stock::before { content: "✓"; }
.single-product .woocommerce div.product .out-of-stock { background: #fff0ee; color: #9d3027; }
.single-product .woocommerce div.product .out-of-stock::before { content: "!"; }
.single-product .woocommerce div.product form.cart { display: flex; align-items: stretch; flex-wrap: wrap; gap: .7rem; margin: .2rem 0 1.3rem; padding: 1rem 0; border-block: 1px solid #eee3d5; }
.single-product .woocommerce div.product form.cart .quantity { margin: 0; }
.single-product .woocommerce .quantity .qty { width: 76px; min-height: 50px; padding: .7rem .5rem; border: 1px solid #d8cbb9; border-radius: 12px; background: #fffdf8; color: #211d19; text-align: center; }
.single-product .woocommerce div.product form.cart .button { min-height: 50px; padding-inline: clamp(1.4rem, 3vw, 2.4rem); }
.single-product .woocommerce div.product .product_meta { display: flex; flex-wrap: wrap; gap: .55rem 1.2rem; margin-top: 1rem; color: #756b62; font-size: .77rem; line-height: 1.55; }
.single-product .woocommerce div.product .product_meta > span { display: inline-flex; flex-wrap: wrap; gap: .25rem; }
.single-product .woocommerce div.product .product_meta a { color: #7b3e83; font-weight: 700; }
.single-product .woocommerce div.product > .woocommerce-tabs,
.single-product .woocommerce div.product > .related,
.single-product .woocommerce div.product > .upsells { grid-column: 1 / -1; min-width: 0; }
.single-product .woocommerce div.product .woocommerce-tabs,
.single-product .woocommerce div.product .related,
.single-product .woocommerce div.product .upsells { margin-top: .25rem; padding: clamp(1.1rem, 2.3vw, 2rem); border: 1px solid #eadfce; border-radius: 18px; background: #fffdf8; }
.single-product .woocommerce div.product .woocommerce-tabs ul.tabs { margin: 0 0 1.2rem; padding: 0; border-bottom: 1px solid #e8dccb; }
.single-product .woocommerce div.product .woocommerce-tabs ul.tabs::before { border: 0; }
.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li { margin: 0 .4rem 0 0; padding: 0; border: 0; border-radius: 0; background: transparent; }
.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li::after { content: none; }
.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: .7rem .85rem; border-bottom: 2px solid transparent; color: #6b6259; }
.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li.active a { border-color: #c99416; color: #211d19; }
.single-product .woocommerce div.product .woocommerce-tabs .panel { margin: 0; padding: 0; background: transparent; }
.single-product .woocommerce div.product .woocommerce-tabs .panel > h2:first-child,
.single-product .woocommerce div.product .related > h2,
.single-product .woocommerce div.product .upsells > h2 { margin: 0 0 1rem; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.5rem, 2.5vw, 2rem); font-weight: 400; }

/* Native WooCommerce review form styling; validation and hooks are unchanged. */
.single-product #reviews #comments { margin-bottom: 1.5rem; }
.single-product #reviews #comments ol.commentlist { padding: 0; }
.single-product #review_form_wrapper { padding: clamp(1rem, 2vw, 1.5rem); border: 1px solid #eadfce; border-radius: 14px; background: #fff; }
.single-product #review_form #respond { margin: 0; padding: 0; }
.single-product #review_form #reply-title { display: block; margin-bottom: .65rem; color: #211d19; font-family: Georgia, "Times New Roman", serif; font-size: 1.35rem; }
.single-product #review_form #commentform { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px 15px; }
.single-product #review_form #commentform > p { min-width: 0; margin: 0; }
.single-product #review_form .comment-notes,
.single-product #review_form .comment-form-rating,
.single-product #review_form .comment-form-comment,
.single-product #review_form .comment-form-cookies-consent,
.single-product #review_form .form-submit { grid-column: 1 / -1; }
.single-product #review_form label { display: block; margin-bottom: 6px; color: #211d19; font-size: .8rem; font-weight: 750; }
.single-product #review_form textarea,
.single-product #review_form input[type="text"],
.single-product #review_form input[type="email"] { width: 100%; min-height: 50px; padding: 13px 15px; border: 1px solid #d8cbb9; border-radius: 12px; background: #fffdf8; color: #211d19; outline: 0; }
.single-product #review_form textarea { min-height: 165px; resize: vertical; }
.single-product #review_form textarea:focus,
.single-product #review_form input[type="text"]:focus,
.single-product #review_form input[type="email"]:focus { border-color: #a98245; box-shadow: 0 0 0 3px rgba(169, 130, 69, .18); }
.single-product #review_form .comment-form-rating .stars { margin: .15rem 0 0; font-size: 1.3rem; }
.single-product #review_form .comment-form-cookies-consent { display: flex; align-items: flex-start; gap: .55rem; color: #6f665b; font-size: .76rem; line-height: 1.5; }
.single-product #review_form .comment-form-cookies-consent input { flex: 0 0 18px; width: 18px; height: 18px; margin-top: 2px; accent-color: #a98245; }
.single-product #review_form .comment-form-cookies-consent label { margin: 0; color: inherit; font-size: inherit; font-weight: 500; }
.single-product #review_form .form-submit input#submit { min-height: 48px; padding: .75rem 1.55rem; border: 1px solid var(--sn-black); border-radius: 999px; background: var(--sn-black); color: #fff; font-weight: 800; }
.single-product #review_form .form-submit input#submit:hover { background: var(--sn-red); color: #fff; }

/* Existing product-card markup is retained; only its alignment is normalized. */
.single-product .related ul.products,
.single-product .upsells ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: stretch; gap: 1rem; }
.single-product .related ul.products > .product,
.single-product .upsells ul.products > .product,
.single-product .related .sn-product-card-inner,
.single-product .upsells .sn-product-card-inner { height: 100%; }
.single-product .related .sn-product-image,
.single-product .upsells .sn-product-image { aspect-ratio: 1 / 1; }
.single-product .related .sn-product-body h3,
.single-product .upsells .sn-product-body h3 { min-height: 2.7em; }
.single-product .related .sn-price,
.single-product .upsells .sn-price { margin-top: auto; }
.single-product .related .sn-card-button,
.single-product .upsells .sn-card-button { min-height: 42px; margin-top: .7rem; }

@media (max-width: 900px) {
  .single-product .woocommerce div.product { grid-template-columns: minmax(0, 1fr) minmax(300px, .9fr); gap: 1.2rem; }
  .single-product .related ul.products,
  .single-product .upsells ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .single-product .sn-page > .sn-container { width: min(calc(100% - 1rem), var(--sn-container)); padding: .75rem; border-radius: 16px; }
  .single-product .woocommerce div.product { grid-template-columns: 1fr; gap: 1rem; }
  .single-product .woocommerce div.product .summary,
  .single-product .woocommerce div.product .woocommerce-tabs,
  .single-product .woocommerce div.product .related,
  .single-product .woocommerce div.product .upsells { padding: 1rem; }
  .single-product .woocommerce div.product form.cart { align-items: stretch; }
  .single-product .woocommerce div.product form.cart .button { flex: 1 1 190px; }
  .single-product #review_form #commentform { grid-template-columns: 1fr; }
  .single-product #review_form #commentform > p { grid-column: 1; }
}
@media (max-width: 480px) {
  .single-product .related ul.products,
  .single-product .upsells ul.products { grid-template-columns: 1fr; }
  .single-product .woocommerce div.product .product_meta { display: grid; gap: .45rem; }
}
