.public-product-grid { display: grid; gap: 18px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.public-product-card { background: var(--brand-surface); border: 1px solid var(--brand-border); border-radius: var(--radius-md); display: flex; flex-direction: column; min-width: 0; overflow: hidden; transition: box-shadow .2s ease, transform .2s ease; }
.public-product-card:hover { box-shadow: var(--shadow-card); transform: translateY(-3px); }
.public-product-card__media { align-items: center; aspect-ratio: 4 / 3; background: var(--brand-surface-soft); display: flex; justify-content: center; overflow: hidden; padding: clamp(12px, 1.6vw, 22px); }
.public-product-card__media img { height: 100%; object-fit: contain; transition: transform .25s ease; width: 100%; }
.public-product-card:hover .public-product-card__media img { transform: scale(1.025); }
.public-product-card__placeholder { align-items: center; color: var(--brand-muted); display: flex; flex-direction: column; font-size: .76rem; gap: 8px; justify-content: center; }
.public-product-card__placeholder i { color: var(--brand-border); font-size: 2.6rem; }
.public-product-card__body { border-top: 1px solid var(--brand-border); display: flex; flex: 1; flex-direction: column; padding: 20px; }
.public-product-card__category { color: var(--brand-muted); font-size: .7rem; font-weight: 720; letter-spacing: .08em; min-height: 1.1em; text-transform: uppercase; }
.public-product-card h3 { display: -webkit-box; font-size: 1rem; font-weight: 680; line-height: 1.4; margin: 7px 0 12px; min-height: 2.8em; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; }
.public-product-card h3 a { color: var(--brand-text); text-decoration: none; }
.public-product-card h3 a:hover { color: var(--brand-primary); }
.public-product-card__price { font-size: 1.08rem; font-weight: 760; margin-bottom: 18px; }
.public-product-card__actions { display: grid; gap: 8px; grid-template-columns: minmax(0, 1fr) max-content; margin-top: auto; min-height: 42px; }
.public-product-card__actions a { align-items: center; border: 1px solid var(--brand-border); border-radius: 999px; color: var(--brand-text); display: inline-flex; font-size: .76rem; font-weight: 700; gap: 5px; justify-content: center; min-height: 42px; padding: 0 10px; text-decoration: none; white-space: nowrap; }
.public-product-card__actions a:hover { border-color: var(--brand-primary); color: var(--brand-primary); }
.public-product-card__actions .public-product-card__primary { background: var(--brand-primary); border-color: var(--brand-primary); color: #fff; }
.public-product-card__actions .public-product-card__primary:hover { background: var(--brand-primary-hover); color: #fff; }
.public-product-card__actions .public-product-card__primary:active { background: var(--brand-primary-dark); }

.product-category-strip { display: flex; gap: 9px; margin: -8px 0 34px; overflow-x: auto; padding: 8px 3px 12px; scrollbar-width: thin; }
.product-category-strip a { border: 1px solid var(--brand-border); border-radius: 999px; color: var(--brand-text); flex: 0 0 auto; font-size: .8rem; font-weight: 650; padding: 9px 15px; text-decoration: none; }
.product-category-strip a:hover { border-color: var(--brand-primary); color: var(--brand-primary); }
.product-category-strip a[aria-current="true"] { background: var(--brand-primary); border-color: var(--brand-primary); color: #fff; font-weight: 750; }

.product-detail-page { background: var(--brand-surface-soft); padding: clamp(26px, 4vw, 54px) 0 clamp(64px, 8vw, 110px); }
.product-breadcrumb { margin-bottom: 24px; }
.product-breadcrumb ol { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.product-breadcrumb li { color: var(--brand-muted); font-size: .76rem; }
.product-breadcrumb li + li::before { color: var(--brand-border); content: "/"; margin-right: 8px; }
.product-breadcrumb a { color: var(--brand-muted); text-decoration: none; }
.product-breadcrumb a:hover { color: var(--brand-primary); }

.product-detail-layout { align-items: start; display: grid; gap: clamp(32px, 4.5vw, 64px); grid-template-columns: minmax(0, 1.18fr) minmax(340px, .82fr); }
.product-gallery { min-width: 0; }
.product-gallery__stage { background: #fff; border: 1px solid var(--brand-border); border-radius: var(--radius-lg); box-shadow: var(--shadow-card); overflow: hidden; position: relative; }
.product-gallery__main { align-items: center; aspect-ratio: 16 / 10; display: flex; justify-content: center; padding: clamp(16px, 2.4vw, 32px); }
.product-gallery__main img { height: 100%; object-fit: contain; width: 100%; }
.product-gallery__hint { align-items: center; background: rgba(255,255,255,.9); border: 1px solid var(--brand-border); border-radius: 999px; bottom: 16px; color: var(--brand-muted); display: flex; font-size: .7rem; gap: 6px; left: 16px; padding: 8px 12px; position: absolute; pointer-events: none; }
.product-gallery__nav { align-items: center; background: rgba(255,255,255,.94); border: 1px solid var(--brand-border); border-radius: 50%; box-shadow: var(--shadow-card); color: var(--brand-text); display: flex; height: 46px; justify-content: center; position: absolute; top: 50%; transform: translateY(-50%); width: 46px; }
.product-gallery__nav:hover { background: var(--brand-primary); border-color: var(--brand-primary); color: #fff; }
.product-gallery__nav--previous { left: 16px; }
.product-gallery__nav--next { right: 16px; }
.product-gallery__thumbnails { display: flex; gap: 10px; overflow-x: auto; padding: 10px 2px 6px; scroll-snap-type: x proximity; scrollbar-color: var(--brand-border) transparent; scrollbar-width: thin; }
.product-gallery__thumbnails button { background: #fff; border: 2px solid transparent; border-radius: var(--radius-sm); flex: 0 0 92px; height: 76px; overflow: hidden; padding: 5px; scroll-snap-align: start; }
.product-gallery__thumbnails button:hover { border-color: var(--brand-border); }
.product-gallery__thumbnails button[aria-current="true"] { border-color: var(--brand-primary); box-shadow: var(--focus-ring); }
.product-gallery__thumbnails img { height: 100%; object-fit: contain; width: 100%; }
.product-gallery__empty { align-items: center; aspect-ratio: 1 / .78; background: #fff; border: 1px solid var(--brand-border); border-radius: var(--radius-lg); color: var(--brand-muted); display: flex; flex-direction: column; gap: 10px; justify-content: center; }
.product-gallery__empty i { color: var(--brand-border); font-size: 3.5rem; }

.product-summary { min-width: 0; position: sticky; top: 190px; }
.product-summary__category { color: var(--brand-primary); display: inline-block; font-size: .74rem; font-weight: 750; letter-spacing: .1em; margin-bottom: 12px; text-decoration: none; text-transform: uppercase; }
.product-summary h1 { font-size: clamp(2rem, 3.4vw, 3.35rem); font-weight: 650; letter-spacing: -.045em; line-height: 1.04; margin: 0 0 18px; overflow-wrap: anywhere; }
.product-rating { align-items: center; display: flex; gap: 12px; margin-bottom: 22px; }
.product-rating span { color: #b27a00; display: flex; gap: 3px; }
.product-rating a { color: var(--brand-muted); font-size: .78rem; }
.product-summary__price { border-bottom: 1px solid var(--brand-border); font-size: clamp(1.5rem, 2.5vw, 2rem); font-weight: 760; margin: 0 0 24px; padding-bottom: 24px; }
.product-summary__description h2 { font-size: .95rem; font-weight: 720; margin-bottom: 10px; }
.product-summary__description p { color: var(--brand-muted); line-height: 1.72; margin-bottom: 22px; white-space: pre-line; }
.product-consultation { background: var(--brand-surface-warm); border: 1px solid var(--brand-border); border-radius: var(--radius-md); display: grid; gap: 14px; grid-template-columns: auto 1fr; padding: 22px; }
.product-consultation__icon { align-items: center; background: #fff; border-radius: 50%; color: var(--brand-primary); display: flex; font-size: 1.15rem; height: 44px; justify-content: center; width: 44px; }
.product-consultation h2 { font-size: 1rem; margin: 3px 0 7px; }
.product-consultation p { color: var(--brand-muted); font-size: .8rem; margin: 0; }
.product-consultation__actions { display: grid; gap: 8px; grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.product-action { align-items: center; border: 1px solid var(--brand-border); border-radius: 999px; color: var(--brand-text); display: inline-flex; font-size: .76rem; font-weight: 700; gap: 6px; justify-content: center; min-height: 44px; padding: 0 10px; text-decoration: none; white-space: nowrap; }
.product-action:hover { border-color: var(--brand-primary); color: var(--brand-primary); }
.product-action--primary { background: var(--brand-primary); border-color: var(--brand-primary); color: #fff; }
.product-action--primary:hover { background: var(--brand-primary-hover); color: #fff; }
.product-action--primary:active { background: var(--brand-primary-dark); }
.product-related, .product-reviews { border-top: 1px solid var(--brand-border); margin-top: clamp(60px, 8vw, 104px); padding-top: clamp(46px, 6vw, 76px); }
.product-section-heading { align-items: end; display: flex; justify-content: space-between; margin-bottom: 30px; }
.product-section-heading span { color: var(--brand-primary); font-size: .7rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.product-section-heading h2 { font-size: clamp(1.5rem, 2.5vw, 2.1rem); margin: 6px 0 0; }
.product-section-heading > a { color: var(--brand-text); font-size: .8rem; font-weight: 700; }
.product-reviews { display: grid; gap: clamp(30px, 5vw, 64px); grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr); }
.product-review-list { display: grid; gap: 12px; }
.product-review, .product-reviews__empty { background: #fff; border: 1px solid var(--brand-border); border-radius: var(--radius-md); padding: 22px; }
.product-review__head { align-items: center; display: flex; gap: 18px; justify-content: space-between; }
.product-review h3 { font-size: .95rem; margin: 0; }
.product-review__head span { color: #b27a00; font-size: .8rem; }
.product-review p { color: var(--brand-muted); font-size: .86rem; margin: 14px 0; }
.product-review time { color: var(--brand-muted); font-size: .7rem; }
.product-review-form { align-self: start; background: #fff; border: 1px solid var(--brand-border); border-radius: var(--radius-md); box-shadow: var(--shadow-card); padding: clamp(22px, 3vw, 32px); }
.product-review-form h2 { font-size: 1.2rem; margin-bottom: 22px; }
.product-review-form form, .product-review-form form > div { display: grid; gap: 8px; }
.product-review-form form { gap: 16px; }
.product-review-form label { font-size: .78rem; font-weight: 700; }
.product-review-form input, .product-review-form select, .product-review-form textarea { background: var(--brand-surface-soft); border: 1px solid var(--brand-border); border-radius: var(--radius-sm); color: var(--brand-text); min-height: 44px; padding: 10px 12px; width: 100%; }
.product-review-form textarea { resize: vertical; }
.product-review-form button { background: var(--brand-primary); border: 0; border-radius: 999px; color: #fff; font-size: .82rem; font-weight: 720; min-height: 46px; padding: 0 18px; }
.product-review-form button:hover { background: var(--brand-primary-hover); }
.product-review-form button:active { background: var(--brand-primary-dark); }

.product-lightbox { background: #111; border: 0; color: #fff; height: 100dvh; margin: auto; max-height: none; max-width: none; padding: 0; width: 100vw; }
.product-lightbox::backdrop { background: rgba(0,0,0,.9); }
.product-lightbox__header { align-items: center; background: rgba(17,17,17,.96); display: flex; justify-content: space-between; min-height: 66px; padding: 10px 18px; position: relative; z-index: 2; }
.product-lightbox__header h2 { font-size: .92rem; margin: 0; }
.product-lightbox__header button, .product-lightbox__stage button { align-items: center; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.25); border-radius: 50%; color: #fff; display: flex; height: 46px; justify-content: center; width: 46px; }
.product-lightbox__stage { align-items: center; display: grid; gap: 16px; grid-template-columns: auto minmax(0, 1fr) auto; height: calc(100dvh - 66px); padding: 18px; }
.product-lightbox__stage img { height: 100%; max-height: calc(100dvh - 102px); object-fit: contain; width: 100%; }

@media (max-width: 1199.98px) {
    .public-product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .product-summary { position: static; }
    .product-consultation__actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .product-consultation__actions .product-action--primary { grid-column: 1 / -1; }
}

@media (max-width: 991.98px) {
    .product-detail-layout { grid-template-columns: 1fr; }
    .product-summary { max-width: 760px; }
    .product-reviews { grid-template-columns: 1fr; }
    .public-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 639.98px) {
    .public-product-card__actions { grid-template-columns: 1fr; min-height: 92px; }
}

@media (max-width: 575.98px) {
    .public-product-grid { grid-template-columns: 1fr; }
    .product-consultation__actions { grid-template-columns: 1fr; }
    .product-consultation__actions .product-action--primary { grid-column: auto; }
    .product-gallery__main { aspect-ratio: 4 / 3; padding: 14px; }
    .product-gallery__hint { display: none; }
    .product-gallery__nav { height: 44px; width: 44px; }
    .product-gallery__nav--previous { left: 8px; }
    .product-gallery__nav--next { right: 8px; }
    .product-section-heading { align-items: flex-start; flex-direction: column; gap: 14px; }
    .product-lightbox__stage { gap: 6px; grid-template-columns: 44px minmax(0, 1fr) 44px; padding: 8px; }
    .product-lightbox__header h2 { max-width: calc(100% - 60px); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}

@media (prefers-reduced-motion: reduce) {
    .public-product-card, .public-product-card__media img { transform: none !important; transition: none !important; }
}
