/*
 * Tabletop product presentation.
 * Loaded only for a single product owned by the Tabletop division.
 * WooCommerce markup, gallery controls and product data remain unchanged.
 */

/* Layout: a quiet white canvas, with space instead of decorative panels. */
.stt-product-storefront {
  --stt-product-ink: #27343f;
  --stt-product-muted: #657078;
  --stt-product-line: #e7e9e7;
  --stt-product-surface: #f6f6f3;
}
.stt-product-storefront .stt-product-page { padding: 0 0 80px; background: #fff; }
.stt-product-storefront .stt-product-content,
.stt-product-storefront .stt-product-page > .stt-container { width: min(100% - 64px, 1280px); margin-inline: auto; }
.stt-product-storefront .stt-product-content > .container,
.stt-product-storefront .product-footer > .container { width: 100%; max-width: none; margin: 0; padding: 0; }
.stt-product-storefront .stt-product-breadcrumb {
  display: flex; align-items: center; gap: 12px; min-width: 0;
  margin: 0; padding: 26px 0 32px; color: var(--stt-product-muted);
  font-size: 11px; line-height: 1.6; letter-spacing: .015em;
}
.stt-product-storefront .stt-product-breadcrumb a { flex-shrink: 0; color: inherit; font-weight: 500; text-decoration: none; }
.stt-product-storefront .stt-product-breadcrumb > span:last-child { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.stt-product-storefront .product-main { padding: 0; }
.stt-product-storefront .product-main > .row {
  display: grid; grid-template-columns: minmax(0, 1.06fr) minmax(0, 1fr);
  gap: clamp(32px, 5vw, 72px); align-items: start;
  width: 100%; max-width: none; margin: 0; overflow: visible;
  border: 0; border-radius: 0; background: transparent; box-shadow: none;
}
.stt-product-storefront .product-main > .row > .col { width: 100%; max-width: 100%; min-width: 0; margin: 0; padding: 0; }
/* Theme clearfix pseudo-elements must not become empty CSS grid rows. */
.stt-product-storefront .product-main > .row::after,
.stt-product-storefront .woocommerce-tabs #reviews::after { content: none; }
.stt-product-storefront .product-sidebar-small { grid-column: 1 / -1; }
.stt-product-storefront .product-sidebar-small:has(.next-prev-thumbs:empty) { display: none; }
.stt-product-storefront .product-main .woocommerce-breadcrumb { display: none; }

/* Gallery: native Flickity positioning and transforms must remain intact. */
.stt-product-storefront .product-gallery { display: block; border: 0; background: transparent; }
.stt-product-storefront .product-images { width: 100%; margin: 0; }
.stt-product-storefront .product-gallery-slider { margin-bottom: 0; }
.stt-product-storefront .woocommerce-product-gallery__image > a { display: block; overflow: hidden; border-radius: 3px; background: var(--stt-product-surface); }
.stt-product-storefront .woocommerce-product-gallery__image img {
  display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; mix-blend-mode: normal;
}
.stt-product-storefront .product-gallery .product-thumbnails { width: calc(100% + 12px); max-width: none; margin: 14px -6px 0; }
/* The existing storefront reset uses !important on every .col padding. */
.stt-product-storefront .product-gallery .product-thumbnails .col { width: 20%; max-width: 20%; flex-basis: 20%; padding: 0 6px !important; }
.stt-product-storefront .product-thumbnails a { display: block; margin: 0; border: 0; }
.stt-product-storefront .product-thumbnails img {
  display: block; width: 100%; height: auto; margin: 0; aspect-ratio: 1; object-fit: contain;
  border: 0; border-radius: 2px; opacity: .68; transition: opacity .18s ease;
}
.stt-product-storefront .product-thumbnails .is-nav-selected a { box-shadow: 0 2px 0 var(--stt-product-ink); }
.stt-product-storefront .product-thumbnails .is-nav-selected img,
.stt-product-storefront .product-thumbnails a:hover img { opacity: 1; }
.stt-product-storefront .product-gallery .flickity-prev-next-button { width: 42px; height: 42px; min-height: 42px; margin: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.94); color: var(--stt-product-ink); box-shadow: 0 2px 12px #27343f0d; }
.stt-product-storefront .product-gallery .flickity-prev-next-button svg { padding: 12px; }
.stt-product-storefront .product-gallery .image-tools .button { min-width: 42px; min-height: 42px; border: 0; background: rgba(255,255,255,.92); color: var(--stt-product-ink); }

/* Product hierarchy: a restrained serif title and readable supporting text. */
.stt-product-storefront .product-info { background: transparent; text-align: left; }
.stt-product-storefront .product-info .product-title {
  max-width: 100%; margin: 0 0 22px; color: var(--stt-product-ink);
  font-family: Georgia, "Times New Roman", serif; font-size: clamp(28px, 2.55vw, 37px);
  font-weight: 400; letter-spacing: -.025em; line-height: 1.23; overflow-wrap: anywhere;
}
.stt-product-storefront .product-info > .is-divider { display: none; }
.stt-product-storefront .price-wrapper { margin-bottom: 24px; }
.stt-product-storefront .product-info .price { margin: 0; color: var(--stt-product-ink); font-size: 24px; font-weight: 600; letter-spacing: -.02em; line-height: 1.5; }
.stt-product-storefront .product-info .price del { margin-right: 8px; color: var(--stt-product-muted); font-size: .75em; font-weight: 400; }
.stt-product-storefront .product-info .price ins { text-decoration: none; }
.stt-product-storefront .product-short-description { margin-bottom: 24px; color: var(--stt-product-muted); font-size: 15px; line-height: 1.75; overflow-wrap: anywhere; }
.stt-product-storefront .product-info .stock { margin-bottom: 18px; color: #426650; font-size: 13px; font-weight: 500; }
.stt-product-storefront .product-info .out-of-stock { color: #795d43; }

/* Purchase controls keep WooCommerce behavior, including variations and groups. */
.stt-product-storefront form.cart,
.stt-product-storefront .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 12px; margin: 0 0 28px; padding: 0; border: 0; }
.stt-product-storefront form.variations_form,
.stt-product-storefront form.grouped_form { display: block; }
.stt-product-storefront .variations select { min-height: 46px; border: 1px solid var(--stt-product-line); border-radius: 3px; background-color: #fff; box-shadow: none; }
.stt-product-storefront .quantity {
  display: inline-flex; flex: 0 0 auto; align-items: stretch; margin: 0;
  border: 1px solid #dce1df; border-radius: 3px; background: #fff;
}
.stt-product-storefront .quantity input,
.stt-product-storefront .quantity .button { width: 36px; height: 46px; min-height: 46px; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--stt-product-ink); font-size: 15px; box-shadow: none; text-align: center; }
.stt-product-storefront .quantity input.qty { width: 42px; font-size: 14px; }
.stt-product-storefront .quantity .button:hover { background: var(--stt-product-surface); }
.stt-product-storefront .product-info .single_add_to_cart_button,
.stt-product-storefront .comment-form .submit {
  min-height: 48px; margin: 0; padding: 0 24px; border: 0; border-radius: 3px;
  background: var(--stt-product-ink); color: #fff; box-shadow: none;
  font-size: 12px; font-weight: 600; letter-spacing: .035em; line-height: 1.4;
  white-space: normal; text-transform: uppercase; transition: background-color .18s ease;
}
.stt-product-storefront .single_add_to_cart_button { flex: 1 1 190px; }
.stt-product-storefront .product-info .single_add_to_cart_button:hover,
.stt-product-storefront .comment-form .submit:hover { background: #41505a; box-shadow: none; }
.stt-product-storefront .single_add_to_cart_button.disabled,
.stt-product-storefront .single_add_to_cart_button:disabled { opacity: .5; cursor: not-allowed; }

/* Content tables: no outer frame, one subtle separator per row. */
.stt-product-storefront .stt-product-summary-description { margin: 30px 0 0; padding: 0; border: 0; color: var(--stt-product-muted); font-size: 14px; line-height: 1.75; overflow-wrap: anywhere; }
.stt-product-storefront .stt-product-summary-description > :last-child { margin-bottom: 0; }
.stt-product-storefront :is(.stt-product-summary-description, .woocommerce-tabs) table { width: 100%; margin: 0 0 20px; border: 0; border-collapse: collapse; table-layout: fixed; background: transparent; }
.stt-product-storefront :is(.stt-product-summary-description, .woocommerce-tabs) :is(td, th) { padding: 10px 0; border: 0; border-bottom: 1px solid #edf0ed; background: transparent; color: inherit; font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; }
.stt-product-storefront :is(.stt-product-summary-description, .woocommerce-tabs) :is(td, th) + :is(td, th) { padding-left: 20px; }
.stt-product-storefront :is(.stt-product-summary-description, .woocommerce-tabs) tr:last-child > :is(td, th) { border-bottom: 0; }
.stt-product-storefront .product_meta { margin-top: 24px; padding: 0; border: 0; color: var(--stt-product-muted); font-size: 12px; line-height: 1.8; }
.stt-product-storefront .product_meta > span { padding: 0; border: 0; }
.stt-product-storefront .product_meta a { color: var(--stt-product-ink); font-weight: 500; text-decoration: none; }
.stt-product-storefront .product-info .social-icons { margin-top: 18px; color: var(--stt-product-muted); }
.stt-product-storefront .product-info .social-icons .button { min-width: 38px; min-height: 38px; margin: 0 2px 0 0; border: 0; background: transparent; color: inherit; font-size: 15px; }

/* Lower content and reviews remain available, without oversized outlined cards. */
.stt-product-storefront .product-footer { margin-top: 64px; }
.stt-product-storefront .woocommerce-tabs,
.stt-product-storefront .related-products-wrapper { width: 100%; max-width: none; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.stt-product-storefront .woocommerce-tabs .tabs { gap: 28px; margin: 0 0 30px; border-bottom: 1px solid var(--stt-product-line); }
.stt-product-storefront .woocommerce-tabs .tabs li { margin: 0; }
.stt-product-storefront .woocommerce-tabs .tabs a { min-height: 48px; padding: 12px 0; color: var(--stt-product-muted); font-size: 13px; font-weight: 500; letter-spacing: .025em; text-transform: none; }
.stt-product-storefront .woocommerce-tabs .tabs a::before { display: none; }
.stt-product-storefront .woocommerce-tabs .tabs .active a { color: var(--stt-product-ink); box-shadow: 0 1px 0 var(--stt-product-ink); }
.stt-product-storefront .woocommerce-tabs .tab-panels { padding: 0; }
.stt-product-storefront .woocommerce-tabs .panel { color: var(--stt-product-muted); font-size: 15px; line-height: 1.75; }
.stt-product-storefront .woocommerce-tabs #reviews { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 64px; width: 100%; max-width: none; margin: 0; }
.stt-product-storefront #reviews > .col { width: 100%; max-width: none; min-width: 0; padding: 0; }
.stt-product-storefront #reviews h3 { margin-top: 0; color: var(--stt-product-ink); font-size: 20px; font-weight: 500; line-height: 1.5; overflow-wrap: anywhere; }
.stt-product-storefront #reviews .review-form-inner { margin: 0; padding: 28px; border: 0; border-radius: 3px; background: var(--stt-product-surface); }
.stt-product-storefront #reviews .comment-reply-title { margin-bottom: 20px; font-size: 17px; line-height: 1.6; }
.stt-product-storefront #reviews form { margin-bottom: 0; }
.stt-product-storefront #reviews label { margin-bottom: 8px; color: var(--stt-product-ink); font-size: 13px; font-weight: 500; }
/* Reuse the theme's star glyph, with one accessible rating control per star. */
.stt-product-storefront #reviews .stars > span[role="group"] { display: flex; flex-wrap: nowrap; gap: 4px; }
.stt-product-storefront #reviews .stars a { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; margin: 0; border: 0; }
.stt-product-storefront #reviews .stars a::after { content: "\e005" / ""; margin: 0; color: #b6bfbc; font-size: 20px; line-height: 1; }
.stt-product-storefront #reviews .stars a.active::after,
.stt-product-storefront #reviews .stars a:has(~ a.active)::after,
.stt-product-storefront #reviews .stars a:hover::after,
.stt-product-storefront #reviews .stars a:has(~ a:hover)::after { color: var(--stt-product-ink); }
.stt-product-storefront #reviews textarea,
.stt-product-storefront #reviews input:is([type="text"], [type="email"]) { width: 100%; border: 1px solid #dce1df; border-radius: 3px; background: #fff; color: var(--stt-product-ink); font-size: 15px; box-shadow: none; }
.stt-product-storefront #reviews textarea { min-height: 120px; height: 120px; padding: 12px; resize: vertical; }
.stt-product-storefront #reviews input:is([type="text"], [type="email"]) { min-height: 46px; }
.stt-product-storefront #reviews .form-submit { margin-bottom: 0; }
.stt-product-storefront .related-products-wrapper { margin-top: 54px; }
.stt-product-storefront .related-products-wrapper > h3 { margin-bottom: 28px; color: var(--stt-product-ink); font-family: Georgia, "Times New Roman", serif; font-size: 28px; font-weight: 400; letter-spacing: -.02em; text-transform: none; }
.stt-product-storefront .related-products-wrapper .product-small { border: 0; border-radius: 0; background: transparent; box-shadow: none; }

/* Visible keyboard focus; do not replace native disabled/validation behavior. */
.stt-product-storefront .stt-product-page :is(a, button, input, select, textarea, [tabindex]):focus-visible { outline: 2px solid #687c89; outline-offset: 3px; }

@media (max-width: 849px) {
  .stt-product-storefront .product-main > .row { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .stt-product-storefront .stt-product-content,
  .stt-product-storefront .stt-product-page > .stt-container { width: calc(100% - 40px); }
  .stt-product-storefront .product-gallery { width: 100%; max-width: 620px; margin-inline: auto; }
  .stt-product-storefront .product-info .product-title { font-size: 30px; }
  .stt-product-storefront .woocommerce-tabs #reviews { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .stt-product-storefront .product-footer { margin-top: 44px; }
}
@media (max-width: 480px) {
  .stt-product-storefront .stt-product-page { padding-bottom: 48px; }
  .stt-product-storefront .stt-product-breadcrumb { gap: 9px; padding: 18px 0 24px; font-size: 10px; }
  .stt-product-storefront .product-info .product-title { margin-bottom: 18px; font-size: 28px; line-height: 1.25; }
  .stt-product-storefront .product-gallery .product-thumbnails .col { width: 25%; max-width: 25%; flex-basis: 25%; }
  .stt-product-storefront .product-info .price { font-size: 23px; }
  .stt-product-storefront .single_add_to_cart_button { flex-basis: 165px; padding: 12px; font-size: 11px; }
  .stt-product-storefront .stt-product-summary-description { margin-top: 26px; }
  .stt-product-storefront #reviews .review-form-inner { padding: 20px; }
  .stt-product-storefront #reviews textarea,
  .stt-product-storefront #reviews input:is([type="text"], [type="email"]),
  .stt-product-storefront .variations select,
  .stt-product-storefront .quantity input.qty { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .stt-product-storefront .stt-product-page :is(a, button, img, input) { transition: none; }
}
