/* ── Сторінка товару ────────────────────────────────────────────────────── */
.product-page__crumbs { padding-top: var(--space-5); }
.product-main { padding-top: var(--space-6); }
.product-main__inner { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: var(--space-8); align-items: start; }

/* Галерея */
.product-gallery { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: var(--space-3); min-width: 0; margin: 0; }
.product-gallery__stage { position: relative; grid-column: 2; grid-row: 1; aspect-ratio: 1; overflow: hidden; background: var(--color-bg); border: 1px solid var(--color-border); border-radius: var(--radius); }
.product-gallery__main { display: block; width: 100%; height: 100%; object-fit: contain; }
.product-gallery .product-card__badge { z-index: 1; }
.product-gallery__thumbs { grid-column: 1; grid-row: 1; display: grid; align-content: start; gap: var(--space-3); }
.product-gallery__thumb { display: block; width: 100%; aspect-ratio: 1; overflow: hidden; padding: 0; background: var(--color-bg); border: 1px solid var(--color-border); border-radius: var(--radius-sm); cursor: pointer; transition: border-color var(--transition); }
.product-gallery__thumb:hover { border-color: var(--color-border-strong); }
.product-gallery__thumb.is-active { border-color: var(--color-primary); }
.product-gallery__thumb img { width: 100%; height: 100%; object-fit: contain; }
.product-gallery:not(:has(.product-gallery__thumbs)) { grid-template-columns: minmax(0, 1fr); }
.product-gallery:not(:has(.product-gallery__thumbs)) .product-gallery__stage { grid-column: 1; }

/* Інформація */
.product-summary { display: grid; gap: var(--space-5); min-width: 0; position: sticky; top: calc(var(--header-offset, var(--header-height)) + var(--space-5)); }
.product-summary__title { font-size: var(--fs-h3); font-weight: var(--fw-light); line-height: var(--lh-tight); letter-spacing: var(--ls-heading); color: var(--color-heading); }
.product-summary__price .price { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-3); font-size: var(--fs-h3); font-weight: var(--fw-regular); color: var(--color-heading); }
.product-summary__price .price__old { font-size: var(--fs-base); color: var(--color-muted); }
.product-summary__price .price__current { text-decoration: none; }
.product-summary__excerpt { color: var(--color-text); }

.product-summary__buy form.cart { display: flex; flex-wrap: wrap; align-items: stretch; gap: var(--space-3); }
.product-summary__buy .variations_form { display: grid; gap: var(--space-5); }
.product-summary__buy .variations { display: grid; gap: var(--space-4); width: 100%; border: 0; }
.product-summary__buy .variations tbody,
.product-summary__buy .variations tr { display: grid; gap: var(--space-2); }
.product-summary__buy .variations th { padding: 0; text-align: left; font-size: var(--fs-sm); font-weight: var(--fw-medium); color: var(--color-heading); }
.product-summary__buy .variations td { padding: 0; }
.product-summary__buy .variations select { width: 100%; min-height: 48px; padding: var(--space-2) var(--space-6) var(--space-2) var(--space-4); font: inherit; font-size: var(--fs-sm); color: var(--color-heading); background-color: var(--color-bg); border: 1px solid var(--color-border); border-radius: var(--radius-sm); appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%23212121' stroke-width='1.5'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right var(--space-4) center; cursor: pointer; }
.product-summary__buy .variations select:hover,
.product-summary__buy .variations select:focus { border-color: var(--color-primary); outline: 0; }
.product-summary__buy .reset_variations { display: inline-block; margin-top: var(--space-2); font-size: var(--fs-sm); color: var(--color-text); text-decoration: underline; text-underline-offset: 3px; }
.product-summary__buy .single_variation_wrap { display: grid; gap: var(--space-4); }
.product-summary__buy .woocommerce-variation-price .price { font-size: var(--fs-h3); }
.product-summary__buy .woocommerce-variation-description { color: var(--color-text); }
.product-summary__buy .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.product-summary__buy .stock { font-size: var(--fs-sm); color: var(--color-success); }
.product-summary__buy .out-of-stock { color: var(--color-error); }

.product-summary__buy .single_add_to_cart_button { flex: 1 1 220px; min-height: 52px; }
.single_add_to_cart_button.disabled,
.single_add_to_cart_button:disabled { opacity: .45; cursor: not-allowed; }


.product-summary__meta { display: grid; gap: var(--space-2); padding-top: var(--space-5); border-top: 1px solid var(--color-border-strong); font-size: var(--fs-sm); }
.product-summary__meta-row { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: var(--space-3); }
.product-summary__meta dt { color: var(--color-muted); }
.product-summary__meta a { color: var(--color-heading); transition: color var(--transition); }
.product-summary__meta a:hover { color: var(--color-accent); }

/* Вкладки: опис, характеристики, відгуки — на всю ширину контейнера */
.product-tabs__nav { display: flex; justify-content: center; gap: var(--space-7); margin-bottom: var(--space-6); border-bottom: 1px solid var(--color-border-strong); }
.product-tabs__nav[hidden] { display: none; }
.product-tabs__tab { position: relative; margin-bottom: -1px; padding: var(--space-4) 0; font: inherit; font-size: var(--fs-lg); color: var(--color-muted); background: none; border: 0; border-bottom: 2px solid transparent; cursor: pointer; transition: color var(--transition), border-color var(--transition); }
.product-tabs__tab:hover { color: var(--color-heading); }
.product-tabs__tab[aria-selected="true"] { color: var(--color-heading); border-bottom-color: var(--color-primary); }
.product-tabs__panel[hidden] { display: none; }
.product-tabs__panel + .product-tabs__panel { margin-top: var(--space-8); }
.product-tabs__heading { margin-bottom: var(--space-4); font-size: var(--fs-h3); font-weight: var(--fw-regular); }
.is-tabs-ready .product-tabs__heading { display: none; }
.is-tabs-ready .product-tabs__panel + .product-tabs__panel { margin-top: 0; }
.product-info .woocommerce-Reviews-title { display: none; }
.product-info table.shop_attributes { width: 100%; border-collapse: collapse; }
.product-info table.shop_attributes th,
.product-info table.shop_attributes td { padding: var(--space-3) 0; text-align: left; border-bottom: 1px solid var(--color-border); }
.product-info table.shop_attributes th { width: 30%; font-weight: var(--fw-medium); color: var(--color-heading); }
.product-info table.shop_attributes p { margin: 0; }

/* Відгуки */
.product-info { --star: #c28a2c; --star-off: #d9d4cb; }

.reviews { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); gap: var(--space-9); align-items: start; }
.reviews:not(:has(.reviews__summary)) { grid-template-columns: minmax(0, 1fr); }
.reviews__main { display: grid; gap: var(--space-7); min-width: 0; }

/* Зірки (власні, без шрифту WooCommerce) */
.star-rating { position: relative; display: inline-block; width: 90px; height: 18px; overflow: hidden; font-size: 0; line-height: 0; color: transparent; background: var(--star-off); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l3 6.9 7.5.7-5.7 5 1.7 7.4L12 18.1 5.5 22l1.7-7.4-5.7-5L9 8.9z'/%3E%3C/svg%3E") repeat-x left center / 18px 18px; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l3 6.9 7.5.7-5.7 5 1.7 7.4L12 18.1 5.5 22l1.7-7.4-5.7-5L9 8.9z'/%3E%3C/svg%3E") repeat-x left center / 18px 18px; }
.star-rating > span { position: absolute; top: 0; left: 0; height: 100%; overflow: hidden; background: var(--star); }

/* Зведення */
.reviews__summary { display: grid; gap: var(--space-2); justify-items: start; padding: var(--space-6); background: var(--color-bg); border: 1px solid var(--color-border); border-radius: var(--radius); }
.reviews__score { font-size: 56px; font-weight: var(--fw-light); line-height: 1; letter-spacing: var(--ls-heading); color: var(--color-heading); }
.reviews__score-count { font-size: var(--fs-sm); color: var(--color-muted); }
.reviews .reviews__bars { list-style: none; padding: 0; display: grid; gap: var(--space-2); width: 100%; margin-top: var(--space-4); }
.reviews .reviews__bar { list-style: none; margin: 0; display: grid; grid-template-columns: 28px minmax(0, 1fr) 20px; align-items: center; gap: var(--space-3); font-size: var(--fs-xs); color: var(--color-text); }
.reviews__bar-track { height: 6px; overflow: hidden; background: var(--star-off); border-radius: 999px; }
.reviews__bar-fill { display: block; height: 100%; background: var(--star); border-radius: 999px; }
.reviews__bar-count { text-align: right; color: var(--color-muted); }

/* Список */
.reviews__empty { padding: var(--space-6); text-align: center; font-size: var(--fs-lg); background: var(--color-bg); border: 1px dashed var(--color-border-strong); border-radius: var(--radius); }
.reviews .commentlist { display: grid; gap: var(--space-5); list-style: none; padding: 0; margin: 0; }
.reviews .commentlist > li { list-style: none; margin: 0; }
.review__item { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: var(--space-4); padding: var(--space-5) var(--space-6); background: var(--color-bg); border: 1px solid var(--color-border); border-radius: var(--radius); }
.review__avatar { display: grid; place-items: center; width: 48px; height: 48px; font-size: var(--fs-lg); font-weight: var(--fw-medium); color: var(--color-heading); background: var(--color-bg-warm); border-radius: 50%; }
.review__body { display: grid; gap: var(--space-2); min-width: 0; }
.review__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-1) var(--space-4); }
.review__author { font-weight: var(--fw-medium); color: var(--color-heading); }
.review__verified { position: relative; padding-left: 18px; font-size: var(--fs-xs); color: var(--color-success); }
.review__verified::before { content: ''; position: absolute; left: 0; top: 50%; width: 10px; height: 5px; margin-top: -4px; border: solid currentColor; border-width: 0 0 1.5px 1.5px; transform: rotate(-45deg); }
.review__date { margin-left: auto; font-size: var(--fs-xs); color: var(--color-muted); }
.review__pending { font-size: var(--fs-sm); font-style: italic; color: var(--color-muted); }
.review__text > * + * { margin-top: var(--space-3); }

/* Форма відгуку */
.reviews__form { padding: var(--space-6); background: var(--color-bg); border: 1px solid var(--color-border); border-radius: var(--radius); }
.reviews__form .comment-reply-title { display: block; margin-bottom: var(--space-2); font-size: var(--fs-h3); font-weight: var(--fw-regular); line-height: 1.2; color: var(--color-heading); }
.reviews__form .comment-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4) var(--space-5); }
.reviews__form .comment-form > * { margin: 0; min-width: 0; }
.reviews__form .comment-notes,
.reviews__form .comment-form-rating,
.reviews__form .comment-form-comment,
.reviews__form .comment-form-cookies-consent,
.reviews__form .form-submit,
.reviews__form .must-log-in { grid-column: 1 / -1; }
.reviews__form .comment-notes { font-size: var(--fs-sm); color: var(--color-muted); }
.reviews__form label { display: block; margin-bottom: var(--space-2); font-size: var(--fs-sm); font-weight: var(--fw-medium); color: var(--color-heading); }
.reviews__form .required { color: var(--color-error); }
.reviews__form input[type="text"],
.reviews__form input[type="email"],
.reviews__form textarea,
.reviews__form select { width: 100%; box-sizing: border-box; min-height: 48px; padding: var(--space-3) var(--space-4); font: inherit; font-size: var(--fs-sm); color: var(--color-heading); background: var(--color-bg); border: 1px solid var(--color-border); border-radius: var(--radius-sm); transition: border-color var(--transition); }
.reviews__form textarea { min-height: 150px; resize: vertical; }
.reviews__form input:hover, .reviews__form textarea:hover,
.reviews__form input:focus, .reviews__form textarea:focus { border-color: var(--color-primary); outline: 0; }
.reviews__form .comment-form-cookies-consent { display: flex; align-items: center; gap: var(--space-3); }
.reviews__form .comment-form-cookies-consent label { margin: 0; font-weight: var(--fw-regular); }
.reviews__form .form-submit { display: flex; justify-content: flex-start; }

/* Вибір оцінки: WooCommerce замінює select на p.stars */
.comment-form-rating .stars { display: block; margin: 0; }
.comment-form-rating .stars span { display: inline-flex; gap: 4px; }
.comment-form-rating .stars a { position: relative; width: 32px; height: 32px; overflow: hidden; font-size: 0; text-indent: -999px; }
.comment-form-rating .stars a::before { content: ''; position: absolute; inset: 0; background: var(--star-off); -webkit-mask: var(--star-mask) center / 28px 28px no-repeat; mask: var(--star-mask) center / 28px 28px no-repeat; transition: background-color var(--transition); }
.comment-form-rating { --star-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l3 6.9 7.5.7-5.7 5 1.7 7.4L12 18.1 5.5 22l1.7-7.4-5.7-5L9 8.9z'/%3E%3C/svg%3E"); }
.comment-form-rating .stars:hover a::before { background: var(--star); }
.comment-form-rating .stars a:hover ~ a::before { background: var(--star-off); }
.comment-form-rating .stars.selected a.active::before { background: var(--star); }
.comment-form-rating .stars.selected a.active ~ a::before { background: var(--star-off); }
.comment-form-rating .stars.selected a:not(.active)::before { background: var(--star); }
.comment-form-rating select { max-width: 320px; }

/* Схожі товари */
.related__title { margin-bottom: var(--space-6); font-size: var(--fs-h3); font-weight: var(--fw-regular); line-height: 1.2; letter-spacing: var(--ls-heading); color: var(--color-heading); }
.product-tabs__heading + h2 { display: none; }
.reviews__form .comment-respond { margin: 0; padding: 0; }
.reviews__form .comment-reply-title { margin: 0 0 var(--space-2); padding: 0; }
.reviews__form input[type="checkbox"] { appearance: auto; -webkit-appearance: checkbox; flex: none; width: 18px; height: 18px; min-height: 0; margin: 0; accent-color: var(--color-primary); }

/* Рейтинг під заголовком */
.product-summary__rating { display: inline-flex; align-items: center; gap: var(--space-3); justify-self: start; --star: #c28a2c; --star-off: #d9d4cb; font-size: var(--fs-sm); color: var(--color-text); transition: color var(--transition); }
.product-summary__rating:hover { color: var(--color-accent); }
.product-summary__rating-count { text-decoration: underline; text-underline-offset: 3px; }

/* Збільшення фото */
.product-gallery__zoom { position: absolute; inset: 0; z-index: 0; padding: 0; background: none; border: 0; cursor: zoom-in; }
.product-gallery__zoom:focus-visible { outline: 2px solid var(--color-primary); outline-offset: -4px; }
.lightbox { position: fixed; inset: 0; width: 100vw; height: 100vh; max-width: none; max-height: none; margin: 0; padding: 0; background: rgba(20, 18, 15, .92); border: 0; }
.lightbox:not([open]) { display: none; }
.lightbox[open] { display: grid; place-items: center; }
.lightbox__img { max-width: min(92vw, 1200px); max-height: 86vh; object-fit: contain; background: #fff; border-radius: var(--radius); }
.lightbox__close,
.lightbox__nav { position: absolute; display: grid; place-items: center; width: 48px; height: 48px; padding: 0; font-size: 34px; line-height: 1; color: #fff; background: rgba(255, 255, 255, .12); border: 0; border-radius: 50%; cursor: pointer; transition: background-color var(--transition); }
.lightbox__close:hover,
.lightbox__nav:hover { background: rgba(255, 255, 255, .28); }
.lightbox__close { top: var(--space-5); right: var(--space-5); }
.lightbox__nav { top: 50%; margin-top: -24px; }
.lightbox__nav--prev { left: var(--space-5); }
.lightbox__nav--next { right: var(--space-5); }
.lightbox__nav[hidden] { display: none; }
.lightbox__count { position: absolute; bottom: var(--space-5); left: 0; right: 0; text-align: center; font-size: var(--fs-sm); color: rgba(255, 255, 255, .8); }

/* ── Адаптив ────────────────────────────────────────────────────────────── */
@media (max-width: 1023px) {
    .product-main__inner { gap: var(--space-6); }
    .product-gallery { grid-template-columns: 64px minmax(0, 1fr); }
    .product-gallery__thumb-item { width: auto; }
    .reviews { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
    .reviews__summary { grid-template-columns: auto minmax(0, 1fr); column-gap: var(--space-6); align-items: center; justify-items: start; }
    .reviews__bars { grid-column: 2; grid-row: 1 / span 3; margin-top: 0; }
}

@media (max-width: 767px) {
    .product-main__inner { grid-template-columns: minmax(0, 1fr); }
    .product-gallery { position: static; grid-template-columns: minmax(0, 1fr); max-width: 560px; margin-inline: auto; width: 100%; }
    .product-gallery__stage { grid-column: 1; grid-row: 1; }
    .product-gallery__thumbs { grid-column: 1; grid-row: 2; display: flex; flex-wrap: wrap; gap: var(--space-3); }
    .product-gallery__thumb-item { width: 72px; }
    .product-summary { position: static; }
    .product-main { padding-top: var(--space-4); }
    .product-page__crumbs { padding-top: var(--space-4); }
    .product-summary { gap: var(--space-4); }
    .product-summary__buy .single_add_to_cart_button { flex: 1 1 100%; }
    .product-summary__meta-row { grid-template-columns: 1fr; gap: var(--space-1); }
    .product-tabs__nav { justify-content: flex-start; gap: var(--space-5); margin-bottom: var(--space-5); overflow-x: auto; scrollbar-width: none; white-space: nowrap; }
    .product-tabs__nav::-webkit-scrollbar { display: none; }
    .product-tabs__tab { flex: none; min-width: 44px; font-size: var(--fs-base); }
    .product-info table.shop_attributes th { width: 40%; }
    .reviews__summary { grid-template-columns: minmax(0, 1fr); padding: var(--space-5); }
    .reviews__bars { grid-column: 1; grid-row: auto; margin-top: var(--space-3); }
    .reviews__score { font-size: 44px; }
    .review__item { grid-template-columns: 40px minmax(0, 1fr); gap: var(--space-3); padding: var(--space-4); }
    .review__avatar { width: 40px; height: 40px; }
    .review__date { margin-left: 0; flex-basis: 100%; }
    .reviews__form { padding: var(--space-5); }
    .reviews__form .comment-form { grid-template-columns: minmax(0, 1fr); }
    .reviews__form .form-submit .btn,
    .reviews__form .form-submit input[type="submit"] { width: 100%; }
    .lightbox__close,
    .lightbox__nav { width: 40px; height: 40px; font-size: 28px; }
    .lightbox__nav--prev { left: var(--space-2); }
    .lightbox__nav--next { right: var(--space-2); }
    .lightbox__close { top: var(--space-3); right: var(--space-3); }
    .lightbox__img { max-width: 100vw; max-height: 80vh; border-radius: 0; }
}

@media (max-width: 479px) {
    .product-tabs__nav { gap: var(--space-4); }
    .product-tabs__tab { font-size: var(--fs-sm); }
}

@media (max-width: 767px) {
    .product-summary__rating { min-height: 44px; }
}

/* Варіації кнопками */
.product-summary__buy .variations select.is-swatched { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.product-summary__buy .reset_variations { display: none !important; }
.swatches { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.swatch { min-width: 64px; min-height: 52px; padding: 0 var(--space-5); font: inherit; font-size: var(--fs-base); color: var(--color-heading); background: var(--color-bg); border: 1px solid var(--color-border-strong); border-radius: var(--radius); cursor: pointer; transition: color var(--transition), background-color var(--transition), border-color var(--transition); }
.swatch:hover:not(:disabled):not(.is-active) { border-color: var(--color-primary); }
.swatch.is-active { color: var(--color-on-primary); background: var(--color-primary); border-color: var(--color-primary); }
.swatch:disabled { color: var(--color-muted); text-decoration: line-through; border-style: dashed; cursor: not-allowed; opacity: .6; }
.swatch:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
@media (max-width: 767px) {
    .swatch { min-height: 48px; padding: 0 var(--space-4); }
}
