.turri-product-single--v2 {
    --turri-storefront-primary: var(--turri-color-action-primary-background);
    --turri-storefront-primary-dark: var(--turri-color-action-primary-hover);
    --turri-storefront-primary-light: var(--turri-color-surface-selected);
    --turri-storefront-ink: var(--turri-color-text-primary);
    --turri-storefront-muted: var(--turri-color-text-secondary);
    --turri-storefront-line: var(--turri-color-border-default);
    --turri-storefront-soft: var(--turri-color-surface-subtle);
    --turri-storefront-surface: var(--turri-color-surface-default);
    --turri-storefront-inverse: var(--turri-color-text-inverse);
    --turri-storefront-action-secondary-background: var(--turri-color-action-secondary-background);
    --turri-storefront-action-secondary-foreground: var(--turri-color-action-secondary-foreground);
    --turri-storefront-action-secondary-border: var(--turri-color-action-secondary-border);
    --turri-storefront-disabled-background: var(--turri-color-action-primary-disabled-background);
    --turri-storefront-disabled-foreground: var(--turri-color-action-primary-disabled-foreground);
    --turri-storefront-focus: var(--turri-color-focus-ring);
    --turri-storefront-discount-background: var(--turri-color-commerce-discount-background);
    --turri-storefront-discount-foreground: var(--turri-color-commerce-discount-foreground);
    --turri-storefront-discount-border: var(--turri-color-commerce-discount-border);
    --turri-storefront-favorite-foreground: var(--turri-color-action-favorite-foreground);
    --turri-storefront-favorite-border: var(--turri-color-action-favorite-border);
    --turri-storefront-favorite-selected-background: var(--turri-color-action-favorite-selected-background);
    width: 100%;
    min-width: 0;
    padding-block: clamp(2rem, 5vw, 5rem);
    background: var(--turri-storefront-surface);
    color: var(--turri-storefront-ink);
}

.turri-product-single--v2,
.turri-product-single--v2 * {
    box-sizing: border-box;
}

.turri-product-single__inner {
    display: grid;
    gap: clamp(2.5rem, 6vw, 6rem);
    width: min(calc(100% - 2rem), var(--content-width, 85rem));
    min-width: 0;
    margin-inline: auto;
}

.turri-product-single__notices {
    display: grid;
    gap: 0.75rem;
}

.turri-product-single__notices > :where(.woocommerce-error, .woocommerce-message, .woocommerce-info) {
    margin: 0;
}

.turri-product-single--v2 .product {
    display: grid;
    gap: clamp(2.5rem, 6vw, 6rem);
    min-width: 0;
}

.turri-product-single__decision {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: clamp(2rem, 5vw, 5rem);
    align-items: start;
    min-width: 0;
}

.turri-product-single__media-column > .onsale {
    z-index: 4;
    top: 1rem;
    left: 1rem;
}

.turri-product-single--v2 .woocommerce-product-gallery,
.turri-product-single--v2 .summary {
    float: none;
    width: 100%;
    min-width: 0;
    margin: 0;
}

.turri-product-single--v2 .woocommerce-product-gallery {
    position: relative;
    opacity: 1 !important;
}

.turri-product-single--v2 .woocommerce-product-gallery__wrapper {
    margin: 0;
}

.turri-product-single--v2 .woocommerce-product-gallery__image {
    overflow: hidden;
    background: var(--turri-storefront-soft);
    border: 1px solid var(--turri-storefront-line);
    border-radius: calc(var(--turri-radius) * 2);
}

.turri-product-single--v2 .woocommerce-product-gallery__image > a {
    position: relative;
    display: grid;
    place-items: center;
    aspect-ratio: 1;
    min-height: 0;
    overflow: hidden;
}

.turri-product-single--v2 .woocommerce-product-gallery__image > a > img:not(.zoomImg) {
    position: static;
    grid-area: 1 / 1;
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: contain;
}

.turri-product-single--v2 .flex-control-thumbs {
    display: grid;
    grid-template-columns: repeat(4, minmax(44px, 1fr));
    gap: 0.75rem;
    margin-block-start: 0.75rem;
    padding: 0;
    list-style: none;
}

.turri-product-single--v2 .flex-control-thumbs li {
    width: auto;
    min-width: 0;
}

.turri-product-single--v2 .flex-control-thumbs img {
    min-width: 44px;
    min-height: 44px;
    border: 1px solid var(--turri-storefront-line);
    border-radius: var(--turri-radius);
}

.turri-product-single--v2 .woocommerce-product-gallery__trigger {
    display: inline-grid;
    place-items: center;
    width: 44px;
    height: 44px;
}

.turri-product-single--v2 .summary {
    display: grid;
    gap: 1.25rem;
    align-content: start;
    padding: clamp(1.25rem, 3vw, 2.5rem);
    background: var(--turri-storefront-surface);
    border: 1px solid var(--turri-storefront-line);
    border-radius: calc(var(--turri-radius) * 2);
    box-shadow: var(--turri-shadow-s);
}

.turri-product-single--v2 .summary > * {
    margin-block: 0;
}

.turri-product-single--v2 .product_title {
    color: var(--turri-storefront-ink);
    font-size: clamp(2.5rem, 5vw, 4.8rem);
    line-height: 1.02;
    text-wrap: balance;
}

.turri-product-single__producer-attribution {
    color: var(--turri-storefront-muted);
    font-size: 1.1rem;
}

.turri-product-single__producer-attribution a {
    color: var(--turri-storefront-primary-dark);
    font-weight: 700;
    text-underline-offset: 0.18em;
}

.turri-product-single--v2 .woocommerce-product-rating {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: center;
}

.turri-product-single--v2 .summary .price {
    color: var(--turri-storefront-ink);
    font-size: clamp(1.8rem, 3vw, 2.5rem);
    font-weight: 800;
    line-height: 1.2;
}

.turri-product-single--v2 .woocommerce-product-details__short-description {
    color: var(--turri-storefront-muted);
    line-height: 1.65;
}

.turri-product-single__variation-primary {
    display: grid;
    gap: 0.75rem;
}

.turri-product-single__variation-primary[hidden],
.turri-product-single__variation-primary > [hidden] {
    display: none;
}

.turri-product-single__variation-description {
    color: var(--turri-storefront-muted);
    line-height: 1.65;
}

.turri-product-single__variation-description > :where(:first-child),
.turri-product-single__variation-availability > :where(:first-child) {
    margin-block-start: 0;
}

.turri-product-single__variation-description > :where(:last-child),
.turri-product-single__variation-availability > :where(:last-child) {
    margin-block-end: 0;
}

.turri-product-single__variation-availability .stock {
    margin: 0;
    font-weight: 700;
}

.turri-product-single--v2 form.variations_form.turri-product-single__variation-form--enhanced .single_variation
    > :is(.woocommerce-variation-description, .woocommerce-variation-price, .woocommerce-variation-availability) {
    display: none !important;
}

.turri-product-single--v2 form.variations_form.turri-product-single__variation-form--enhanced .single_variation {
    margin-block-end: 0;
}

.turri-product-single__favorite {
    min-height: 44px;
}

.turri-product-single__favorite .turri-favorite-form {
    margin: 0;
}

.turri-product-single__favorite .turri-favorite-button {
    position: relative;
    display: inline-grid;
    place-items: center;
    width: 44px;
    min-width: 44px;
    height: 44px;
    margin: 0;
    padding: 0;
    background: var(--turri-storefront-surface);
    border: 1px solid var(--turri-storefront-favorite-border);
    border-radius: 999px;
    color: var(--turri-storefront-favorite-foreground);
}

.turri-product-single__favorite .turri-favorite-button > svg {
    width: 2rem;
    height: 2rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
}

.turri-product-single__favorite .turri-favorite-button--active > svg {
    fill: currentColor;
}

.turri-product-single--v2 form.cart {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: stretch;
    margin: 0;
}

.turri-product-single--v2 form.variations_form {
    display: grid;
    gap: var(--turri-form-field-gap);
}

.turri-product-single--v2 .variations {
    width: 100%;
    margin: 0;
    border: 0;
    border-collapse: collapse;
}

.turri-product-single--v2 .variations tr + tr {
    border-block-start: var(--turri-form-control-border-width) solid var(--turri-form-border);
}

.turri-product-single--v2 .variations :where(th, td) {
    padding-block: var(--turri-form-field-internal-gap);
}

.turri-product-single--v2 .variations th.label {
    width: min(9rem, 30%);
    padding-inline-end: var(--turri-form-control-padding-inline);
    color: var(--turri-form-foreground);
    font-size: var(--turri-form-label-font-size);
    font-weight: var(--turri-form-label-font-weight);
    line-height: var(--turri-label-line-height);
    text-align: start;
    vertical-align: middle;
}

.turri-product-single--v2 .variations td.value {
    min-width: 0;
    vertical-align: middle;
}

.turri-product-single--v2 .variations .reset_variations {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--turri-form-control-min-block-size);
    padding-inline: var(--turri-control-padding-inline-compact);
    color: var(--turri-color-action-secondary-foreground);
    font-size: var(--turri-form-label-font-size);
    font-weight: var(--turri-form-label-font-weight);
    line-height: var(--turri-label-line-height);
    text-underline-offset: 0.15em;
}

.turri-product-single--v2 .single_variation_wrap {
    display: grid;
    gap: var(--turri-form-field-gap);
}

.turri-product-single--v2 form.variations_form.turri-product-single__variation-form--enhanced .single_variation_wrap {
    gap: 0;
}

.turri-product-single--v2 .single_add_to_cart_button {
    flex: 1 1 14rem;
}

.turri-product-single--v2 .product_meta {
    display: grid;
    gap: 0.35rem;
    padding-block-start: 1rem;
    border-block-start: 1px solid var(--turri-storefront-line);
    color: var(--turri-storefront-muted);
}

.turri-product-single--v2 .woocommerce-tabs {
    min-width: 0;
}

.turri-product-single--v2 .woocommerce-Tabs-panel {
    max-width: 72ch;
    color: var(--turri-storefront-ink);
    line-height: 1.7;
}

.turri-product-single__producer,
.turri-product-single__collection {
    display: grid;
    gap: clamp(1.25rem, 3vw, 2.25rem);
    min-width: 0;
    padding-block-start: clamp(2rem, 4vw, 4rem);
    border-block-start: 1px solid var(--turri-storefront-line);
}

.turri-product-single__producer > h2,
.turri-product-single__collection > h2 {
    margin: 0;
    color: var(--turri-storefront-ink);
    font-size: clamp(2rem, 4vw, 3.4rem);
    line-height: 1.08;
    text-wrap: balance;
}

.turri-product-single__producer-list {
    display: grid;
    gap: 1rem;
}

.turri-product-single__producer-entry,
.turri-product-single__product-grid {
    --turri-product-single-grid-gap: clamp(1rem, 2vw, 1.5rem);
}

.turri-product-single__producer-entry {
    display: grid;
    grid-template-columns: minmax(0, calc((100% - var(--turri-product-single-grid-gap) - var(--turri-product-single-grid-gap) - var(--turri-product-single-grid-gap)) / 4)) minmax(0, 1fr);
    column-gap: var(--turri-space-l);
    row-gap: var(--turri-space-l);
    align-items: center;
    padding: clamp(1.25rem, 3vw, 2.5rem);
    background: var(--turri-storefront-soft);
    border: 1px solid var(--turri-storefront-line);
    border-radius: calc(var(--turri-radius) * 2);
}

.turri-product-single__producer-entry:not(:has(.turri-product-single__producer-media)) {
    grid-template-columns: minmax(0, 1fr);
}

.turri-product-single__producer-media {
    position: relative;
    display: grid;
    place-items: center;
    grid-column: 1;
    width: 100%;
    aspect-ratio: 1;
    min-width: 0;
    padding: var(--turri-space-s);
    border: 1px solid var(--turri-color-border-default);
    border-radius: var(--turri-radius-circle);
    background: var(--turri-color-surface-default);
    overflow: hidden;
}

.turri-product-single__producer-image {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    padding: inherit;
    object-fit: contain;
}

.turri-product-single__producer-copy {
    display: grid;
    grid-column: 2;
    gap: 0.85rem;
    min-width: 0;
}

.turri-product-single__producer-entry:not(:has(.turri-product-single__producer-media)) .turri-product-single__producer-copy {
    grid-column: 1;
}

.turri-product-single__producer-copy :where(h3, p) {
    margin: 0;
}

.turri-product-single__producer-copy p {
    max-width: 62ch;
    color: var(--turri-storefront-muted);
    line-height: 1.6;
}

.turri-product-single__producer-cta {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    min-height: 44px;
    padding: 0.7rem 1rem;
    background: var(--turri-color-action-secondary-background);
    border: 1px solid var(--turri-color-action-secondary-border);
    border-radius: var(--turri-radius);
    color: var(--turri-color-action-secondary-foreground);
    font-weight: 700;
    text-decoration: none;
}

.turri-product-single__product-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--turri-product-single-grid-gap);
    width: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
}

.turri-product-single--v2 :where(a, button, input, select, textarea):focus-visible {
    outline: var(--turri-focus-width) solid var(--turri-storefront-focus);
    outline-offset: var(--turri-focus-offset);
}

@media (max-width: 1023px) {
    .turri-product-single__decision {
        grid-template-columns: minmax(0, 1fr);
    }

    .turri-product-single__producer-entry {
        grid-template-columns: minmax(0, calc((100% - var(--turri-product-single-grid-gap)) / 2)) minmax(0, 1fr);
    }

    .turri-product-single__product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .turri-product-single__producer-entry {
        grid-template-columns: minmax(0, 1fr);
    }

    .turri-product-single__producer-copy {
        grid-column: 1;
    }
}

@media (min-width: 640px) and (max-width: 767px) {
    .turri-product-single__producer-media {
        width: calc((100% - var(--turri-product-single-grid-gap)) / 2);
    }
}

@media (max-width: 639px) {
    .turri-product-single--v2 {
        padding-block: 1.5rem 3rem;
    }

    .turri-product-single__inner {
        width: min(calc(100% - 1.5rem), var(--content-width, 85rem));
    }

    .turri-product-single--v2 .summary {
        padding: 1.15rem;
    }

    .turri-product-single__product-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (prefers-reduced-motion: reduce) {
    .turri-product-single--v2 *,
    .turri-product-single--v2 *::before,
    .turri-product-single--v2 *::after {
        scroll-behavior: auto;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* Main purchase layout: native controls stay together at narrow widths. */
.turri-product-single--v2 .summary form.cart .woocommerce-variation-add-to-cart,
.turri-product-single--v2 .summary form.cart:not(.variations_form) {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 0.75rem;
}

.turri-product-single--v2 .summary form.cart .quantity {
    display: flex;
    flex: 0 0 132px;
    width: 132px;
    min-width: 0;
    margin: 0;
}

.turri-product-single--v2 .summary form.cart .quantity :is(.minus, .plus, input.qty) {
    flex: 1 1 44px;
    width: 44px;
    min-width: 44px;
    min-height: 44px;
    padding-inline: 0;
}

.turri-product-single--v2 .summary form.cart .single_add_to_cart_button {
    flex: 1 1 0;
    min-width: 0;
    min-height: 44px;
    width: auto;
    margin: 0;
    padding-inline: 0.75rem;
    white-space: normal;
    overflow-wrap: normal;
}

.turri-product-single--v2 .summary .variations th.label,
.turri-product-single--v2 .summary .variations label {
    font-size: max(16px, var(--turri-form-control-font-size));
    line-height: 1.5;
    font-weight: 700;
}

.turri-product-single--v2 .summary .variations select {
    font-size: max(16px, var(--turri-form-control-font-size));
}

.turri-product-single__media-column > .product_meta {
    display: grid;
    gap: 0.35rem;
    width: 100%;
    font-size: var(--text-xs);
    line-height: 1.5;
    overflow-wrap: anywhere;
    padding-block: 1rem;
}

.turri-product-single__producer {
    padding: clamp(1.25rem, 3vw, 2.5rem);
    border: 1px solid var(--turri-storefront-line);
    border-radius: calc(var(--turri-radius) * 2);
    background: var(--turri-storefront-soft);
}

.turri-product-single__producer .turri-product-single__producer-entry {
    padding: 0;
    border: 0;
    background: transparent;
}

.turri-product-single__producer > .turri-product-single__collection {
    padding-block-start: 1.5rem;
}

.turri-product-single--v2 form.variations_form.turri-product-single__variation-form--enhanced .reset_variations[style*="visibility: hidden"] {
    display: none;
}

.turri-product-single__media-column {
    position: relative;
    display: grid;
    gap: 1rem;
    min-width: 0;
    align-content: start;
}

.turri-product-single__media-column > .turri-product-single__favorite {
    position: absolute;
    top: 1rem;
    right: 1rem;
    z-index: 6;
}

.turri-product-single__media-column .woocommerce-product-gallery__trigger {
    top: calc(1rem + 52px);
    right: 1rem;
    bottom: auto;
}

.turri-product-single--v2 .summary > .price {
    display: block;
    white-space: nowrap;
}

.turri-product-single--v2 .summary > .price > .woocommerce-Price-amount {
    display: inline;
}

.turri-product-single--v2 .summary .variations tbody {
    display: block;
}

.turri-product-single--v2 .summary .variations tr {
    display: grid;
    grid-template-columns: minmax(5rem, 25%) minmax(0, 1fr);
    gap: 0.75rem;
    align-items: start;
}

.turri-product-single--v2 .summary .variations :is(th.label, td.value) {
    display: block;
    width: 100%;
    min-width: 0;
    padding-inline: 0;
}

.turri-product-single--v2 .summary .variations th.label {
    padding-block-start: calc(var(--turri-form-field-internal-gap) + 10px);
}

.turri-product-single--v2 .summary .variations select {
    width: 100%;
    min-width: 0;
}

.turri-product-single--v2 .summary > .price .turri-price--single {
    display: inline;
    white-space: nowrap;
}
