/* =========================================================
   Iqdaar Framework — Product Page
   Consolidated product stylesheet
   ========================================================= */

/* ---------------------------------------------------------
   Product page layout
--------------------------------------------------------- */

.single-product div.product {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: clamp(2rem, 5vw, 5rem);
    align-items: start;
}

.single-product div.product::before,
.single-product div.product::after {
    display: none;
}

.single-product div.product .summary {
    float: none;
    width: auto;
    margin: 0;
}

.single-product div.product .woocommerce-tabs,
.single-product div.product .up-sells,
.single-product div.product .related {
    grid-column: 1 / -1;
}

.iq-product-summary,
.iq-product-summary-layout,
.iq-product-summary-layout__information,
.iq-product-summary-layout__purchase {
    min-width: 0;
}

.iq-product-summary {
    display: flex;
    flex-direction: column;
    gap: 1.75rem;
}

.iq-product-summary-layout {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

/* ---------------------------------------------------------
   Product information
--------------------------------------------------------- */

.iq-product-information {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

.single-product .iq-product-information .iq-product-title {
    margin: 0;
    font-family: var(--font-body);
    font-size: clamp(1.55rem, 3.2vw, 2.7rem);
    font-weight: 750;
    line-height: 1.18;
    letter-spacing: -0.035em;
    text-wrap: balance;
}

.single-product .iq-product-information .iq-product-price .price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.55rem;
    margin: 0;
    color: var(--foreground);
    font-family: var(--font-body);
    font-size: clamp(1.4rem, 5.5vw, 1.9rem);
    font-weight: 700;
    line-height: 1.2;
}

.single-product .iq-product-information .iq-product-price ins {
    order: -1;
    color: var(--primary);
    text-decoration: none;
}

.single-product .iq-product-information .iq-product-price del {
    color: var(--muted-foreground);
    font-size: 0.72em;
    font-weight: 500;
    opacity: 0.72;
}

.iq-product-rating {
    font-size: 0.9rem;
}

.iq-product-rating .woocommerce-product-rating {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin: 0;
}

.single-product .iq-product-short-description {
    margin-top: 0.25rem;
    color: var(--muted-foreground);
    font-family: var(--font-body);
    font-size: 0.96rem;
    line-height: 1.8;
}

.single-product .iq-product-short-description p {
    margin-block: 0 0.55rem;
}

.single-product .iq-product-short-description > :first-child {
    margin-top: 0;
}

.single-product .iq-product-short-description > :last-child {
    margin-bottom: 0;
}

/* ---------------------------------------------------------
   Product gallery
--------------------------------------------------------- */

.iq-product-gallery {
    width: 100%;
    min-width: 0;
}

.iq-product-gallery__stage {
    position: relative;
    overflow: hidden;
    width: 100%;
    border-radius: var(--radius-xl);
    background: var(--surface-muted);
    box-shadow: 0 0.8rem 2.2rem rgb(20 48 44 / 7%);
    cursor: zoom-in;
    aspect-ratio: 4 / 5;
}

.iq-product-gallery__main-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 320ms ease, opacity 180ms ease;
    transform-origin: var(--iq-zoom-x, 50%) var(--iq-zoom-y, 50%);
}

.iq-product-gallery__badges {
    position: absolute;
    z-index: 2;
    top: 1rem;
    left: 1rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.iq-product-gallery__arrow {
    position: absolute;
    top: 50%;
    z-index: 3;
    display: grid;
    place-items: center;
    width: 2.75rem;
    height: 2.75rem;
    padding: 0;
    border: 1px solid rgb(0 0 0 / 12%);
    border-radius: 50%;
    background: rgb(255 255 255 / 90%);
    box-shadow: 0 0.25rem 1rem rgb(0 0 0 / 8%);
    font-size: 1.75rem;
    line-height: 1;
    cursor: pointer;
    transform: translateY(-50%);
    backdrop-filter: blur(0.35rem);
}

.iq-product-gallery__arrow--previous { left: 0.75rem; }
.iq-product-gallery__arrow--next { right: 0.75rem; }

.iq-product-gallery__navigation {
    display: grid;
    grid-template-columns: 2.75rem 1fr 2.75rem;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.iq-product-gallery__navigation-button {
    display: grid;
    place-items: center;
    min-width: 2.75rem;
    min-height: 2.75rem;
    padding: 0;
    border: 1px solid rgb(0 0 0 / 15%);
    border-radius: 0;
    background: transparent;
    font-size: 1.1rem;
    cursor: pointer;
}

.iq-product-gallery__counter {
    margin: 0;
    text-align: center;
    font-size: 0.88rem;
    font-weight: 600;
    letter-spacing: 0.08em;
}

.iq-product-gallery__hint {
    margin: 0.5rem 0 0;
    text-align: center;
    font-size: 0.76rem;
    opacity: 0.62;
}

.iq-product-gallery__thumbnails { display: none; }
.iq-product-gallery__thumbnail-item { min-width: 0; }

.iq-product-gallery__thumbnail {
    display: block;
    width: 100%;
    padding: 0;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--border) 88%, transparent);
    border-radius: 0.625rem;
    background: transparent;
    cursor: pointer;
    aspect-ratio: 1;
    transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.iq-product-gallery__thumbnail img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.iq-product-gallery__thumbnail:hover {
    border-color: color-mix(in srgb, var(--primary) 55%, var(--border));
    transform: translateY(-1px);
}

.iq-product-gallery__thumbnail.is-active {
    border-color: var(--primary);
    box-shadow: 0 0 0 0.18rem color-mix(in srgb, var(--primary) 12%, transparent);
}

.iq-product-gallery__thumbnail:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: 3px;
}

@media (hover: hover) and (pointer: fine) {
    .iq-product-gallery__stage:hover .iq-product-gallery__main-image {
        transform: scale(1.075);
    }
}

/* ---------------------------------------------------------
   Purchase card
--------------------------------------------------------- */

.iq-product-purchase {
    display: flex;
    flex-direction: column;
    gap: 1.3rem;
    padding: clamp(1.25rem, 4.5vw, 1.85rem);
    border: 1px solid color-mix(in srgb, var(--border) 82%, transparent);
    border-radius: clamp(1rem, 3vw, 1.4rem);
    background: var(--surface);
    box-shadow: 0 0.75rem 2rem rgb(20 48 44 / 7%);
}

.iq-product-stock {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    width: fit-content;
    margin: 0;
    color: var(--foreground);
    font-size: 0.9rem;
    font-weight: 650;
}

.iq-product-stock::before {
    width: 0.48rem;
    height: 0.48rem;
    border-radius: 50%;
    background: #5cae9f;
    content: "";
    box-shadow: 0 0 0 0.22rem rgb(92 174 159 / 13%);
}

.iq-product-stock.out-of-stock::before {
    background: #b42318;
    box-shadow: 0 0 0 0.2rem rgb(180 35 24 / 10%);
}

.iq-product-stock[hidden],
.iq-product-meta__row[hidden] {
    display: none !important;
}

/*
 * Iqdaar renders the visible stock through .iq-product-stock.
 * Hide every native WooCommerce stock element inside the purchase
 * card, regardless of whether the product is simple or variable.
 */
.single-product
.iq-product-purchase
.stock:not(.iq-product-stock) {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
    visibility: hidden !important;
}

/* ---------------------------------------------------------
   WooCommerce purchase form
--------------------------------------------------------- */

.iq-product-purchase__form form.cart,
.iq-product-purchase__form form.variations_form {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    margin: 0;
    gap: 0;
}

.iq-product-purchase__form .single_variation_wrap {
    display: flex !important;
    flex-direction: column;
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    gap: 0 !important;
}

.iq-product-purchase__form .single_variation,
.iq-product-purchase__form .woocommerce-variation,
.iq-product-purchase__form .woocommerce-variation-price,
.iq-product-purchase__form .woocommerce-variation-availability,
.iq-product-purchase__form .woocommerce-variation-description {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

/* ---------------------------------------------------------
   Variable product attributes
--------------------------------------------------------- */

.iq-product-purchase__form .variations {
    display: block;
    width: 100%;
    margin: 0 !important;
    border: 0;
}

.iq-product-purchase__form .variations tbody {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.iq-product-purchase__form .variations tr {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.7rem;
    margin: 0;
}

.iq-product-purchase__form .variations th,
.iq-product-purchase__form .variations td {
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    text-align: left;
}

.iq-product-purchase__form .variations label,
.iq-product-quantity__label {
    display: block;
    margin: 0;
    color: var(--foreground);
    font-size: 0.78rem;
    font-weight: 750;
    letter-spacing: 0.055em;
    line-height: 1.25;
    text-transform: uppercase;
}

.iq-product-option-select {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.iq-product-purchase__form .iq-product-option-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    width: 100%;
}

.iq-product-purchase__form button.iq-product-option {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 3.7rem;
    min-height: 2.8rem;
    margin: 0;
    padding: 0.72rem 1rem;
    border: 1px solid var(--border) !important;
    border-radius: 0.72rem;
    background: transparent !important;
    background-image: none !important;
    color: var(--foreground) !important;
    box-shadow: none !important;
    font-family: var(--font-body);
    font-size: 0.88rem;
    font-weight: 650;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.iq-product-purchase__form button.iq-product-option:hover:not(:disabled) {
    border-color: var(--primary) !important;
    background: color-mix(in srgb, var(--primary) 6%, transparent) !important;
    color: var(--primary) !important;
}

.iq-product-purchase__form button.iq-product-option.is-selected {
    border: 1.5px solid var(--primary) !important;
    background: transparent !important;
    color: var(--primary) !important;
    box-shadow: 0 0 0 0.18rem color-mix(in srgb, var(--primary) 10%, transparent) !important;
}

.iq-product-purchase__form button.iq-product-option.is-selected:hover:not(:disabled) {
    border-color: var(--primary-dark) !important;
    background: color-mix(in srgb, var(--primary) 5%, transparent) !important;
    color: var(--primary-dark) !important;
}

.iq-product-purchase__form button.iq-product-option:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--primary) 28%, transparent);
    outline-offset: 3px;
}

.iq-product-purchase__form button.iq-product-option.is-disabled,
.iq-product-purchase__form button.iq-product-option:disabled {
    border: 1px dashed var(--border) !important;
    background: transparent !important;
    color: var(--muted-foreground) !important;
    box-shadow: none !important;
    cursor: not-allowed;
    opacity: 0.45;
    text-decoration: line-through;
}

.iq-product-purchase__form .reset_variations {
    display: inline-flex !important;
    align-items: center;
    gap: 0.42rem;
    width: max-content;
    min-height: 1.5rem;
    margin: 0.35rem 0 0 !important;
    padding: 0.2rem 0;
    color: var(--muted-foreground);
    font-size: 0.76rem;
    font-weight: 650;
    line-height: 1.35;
    text-decoration: none;
}

.iq-product-purchase__form .reset_variations::before {
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    width: 1rem;
    height: 1rem;
    color: var(--primary);
    font-size: 0.95rem;
    line-height: 1;
    content: "↺";
}

.iq-product-purchase__form .reset_variations:hover { color: var(--primary); }

/* ---------------------------------------------------------
   Quantity and stable variation layout
--------------------------------------------------------- */

.iq-product-purchase__form .woocommerce-variation-add-to-cart,
.iq-product-purchase__form .simple_add_to_cart {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 0.75rem;
    row-gap: 1rem;
    align-items: stretch;
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
}

.iq-product-purchase__form .quantity.iq-product-quantity,
.iq-product-purchase__form form.cart > .quantity {
    grid-column: 1 / -1;
    display: flex !important;
    flex-direction: column;
    align-items: flex-start;
    justify-self: start;
    gap: 0.7rem;
    width: 100%;
    min-height: 4.7rem;
    margin: 1rem 0 0 !important;
    padding: 0 !important;
    visibility: visible !important;
    opacity: 1;
    transition: opacity 180ms ease;
}

/*
 * Simple products do not use the variation wrapper. Keep a clear,
 * consistent gap between the quantity stepper and purchase buttons.
 */
.single-product
.iq-product-purchase__form
form.cart:not(.variations_form)
.quantity.iq-product-quantity {
    margin: 0 0 1rem !important;
}

.iq-product-purchase__form .woocommerce-variation-add-to-cart-disabled .quantity.iq-product-quantity {
    visibility: visible !important;
    opacity: 0.5;
    pointer-events: none;
}

.iq-product-purchase__form .woocommerce-variation-add-to-cart-enabled .quantity.iq-product-quantity {
    visibility: visible !important;
    opacity: 1;
    pointer-events: auto;
}

.iq-product-quantity__controls {
    display: inline-grid;
    grid-template-columns: 2.85rem 3.8rem 2.85rem;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--border) 92%, transparent);
    border-radius: 0.8rem;
    background: var(--surface);
    box-shadow: 0 0.2rem 0.7rem rgb(20 48 44 / 4%);
}

.iq-product-purchase__form button.iq-product-quantity__button {
    appearance: none;
    display: grid;
    place-items: center;
    width: 2.85rem;
    min-width: 2.85rem;
    height: 2.9rem;
    min-height: 2.9rem;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--foreground);
    box-shadow: none;
    font-family: var(--font-body);
    font-size: 1.15rem;
    font-weight: 500;
    line-height: 1;
    cursor: pointer;
    transition: color 180ms ease, background-color 180ms ease;
}

.iq-product-purchase__form button.iq-product-quantity__button:hover:not(:disabled) {
    background: color-mix(in srgb, var(--primary) 7%, transparent);
    color: var(--primary);
}

.iq-product-purchase__form button.iq-product-quantity__button:focus-visible {
    position: relative;
    z-index: 2;
    outline: 2px solid var(--primary);
    outline-offset: -2px;
}

.iq-product-purchase__form button.iq-product-quantity__button:disabled {
    color: var(--muted-foreground);
    cursor: not-allowed;
    opacity: 0.38;
}

.iq-product-purchase__form .iq-product-quantity__input.qty {
    appearance: textfield;
    width: 3.8rem;
    min-width: 0;
    height: 2.9rem;
    min-height: 2.9rem;
    margin: 0;
    padding: 0.4rem;
    border: 0;
    border-right: 1px solid var(--border);
    border-left: 1px solid var(--border);
    border-radius: 0;
    background: transparent;
    color: var(--foreground);
    box-shadow: none;
    font-family: var(--font-body);
    font-size: 0.98rem;
    font-weight: 700;
    line-height: 1;
    text-align: center;
}

.iq-product-purchase__form .iq-product-quantity__input.qty::-webkit-inner-spin-button,
.iq-product-purchase__form .iq-product-quantity__input.qty::-webkit-outer-spin-button {
    margin: 0;
    appearance: none;
}

.iq-product-purchase__form .iq-product-quantity__input.qty:focus {
    position: relative;
    z-index: 2;
    outline: 2px solid var(--primary);
    outline-offset: -2px;
}

/* ---------------------------------------------------------
   Purchase actions
--------------------------------------------------------- */

.iq-product-purchase__actions {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0.75rem;
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
}

.iq-product-purchase__actions .single_add_to_cart_button,
.iq-product-purchase__buy-now {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-width: 0;
    min-height: 3.15rem;
    margin: 0 !important;
    padding: 0.75rem 0.65rem;
    border: 1px solid var(--primary);
    border-radius: 0.82rem;
    font-family: var(--font-body);
    font-size: 0.86rem;
    font-weight: 750;
    line-height: 1.15;
    letter-spacing: 0.01em;
    text-align: center;
    text-transform: none;
    cursor: pointer;
    transform: none !important;
    transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, box-shadow 180ms ease, opacity 180ms ease !important;
}

.iq-product-purchase__actions .iq-product-purchase__add-to-cart {
    border-width: 1.25px;
    background: transparent;
    color: var(--primary);
}

.iq-product-purchase__actions .iq-product-purchase__add-to-cart:hover:not(:disabled):not(.disabled) {
    border-color: var(--primary-dark);
    background: color-mix(in srgb, var(--primary) 7%, transparent);
    color: var(--primary-dark);
    box-shadow: none;
}

.iq-product-purchase__buy-now {
    background: var(--primary);
    color: var(--primary-foreground);
}

.iq-product-purchase__buy-now:hover:not(:disabled):not(.disabled) {
    border-color: var(--primary-dark);
    background: var(--primary-dark);
    color: var(--primary-foreground);
    box-shadow: var(--shadow-primary);
}

.iq-product-purchase__actions .single_add_to_cart_button:focus-visible,
.iq-product-purchase__buy-now:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--primary) 28%, transparent);
    outline-offset: 3px;
}

.iq-product-purchase__actions .single_add_to_cart_button.disabled,
.iq-product-purchase__actions .single_add_to_cart_button:disabled,
.iq-product-purchase__buy-now.disabled,
.iq-product-purchase__buy-now:disabled {
    min-height: 3.15rem;
    border-color: color-mix(in srgb, var(--border) 80%, transparent);
    background: color-mix(in srgb, var(--secondary) 82%, var(--surface));
    color: var(--muted-foreground);
    box-shadow: none;
    cursor: not-allowed;
    opacity: 0.58;
    transform: none !important;
}

/* ---------------------------------------------------------
   Product meta
--------------------------------------------------------- */

.iq-product-meta {
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    padding-top: 1.15rem;
    border-top: 1px solid var(--border);
    color: var(--muted-foreground);
    font-size: 0.84rem;
}

.iq-product-meta__row {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem;
}

.iq-product-meta__label {
    color: var(--foreground);
    font-size: 0.76rem;
    font-weight: 750;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.iq-product-meta a {
    color: var(--primary);
    font-weight: 600;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.18em;
}

.iq-product-meta a:hover { color: var(--primary-dark); }

/* ---------------------------------------------------------
   Product lightbox
--------------------------------------------------------- */

.iq-product-lightbox {
    position: fixed;
    z-index: 99999;
    inset: 0;
    display: grid;
    place-items: center;
    padding: clamp(1rem, 4vw, 3rem);
    background: rgb(7 24 22 / 92%);
    opacity: 0;
    visibility: hidden;
    transition: opacity 180ms ease, visibility 180ms ease;
}

.iq-product-lightbox.is-open {
    opacity: 1;
    visibility: visible;
}

.iq-product-lightbox__image {
    display: block;
    max-width: min(100%, 78rem);
    max-height: calc(100vh - 4rem);
    object-fit: contain;
    border-radius: var(--radius-lg);
    box-shadow: 0 1.2rem 4rem rgb(0 0 0 / 35%);
}

.iq-product-lightbox__close {
    position: absolute;
    top: max(1rem, env(safe-area-inset-top));
    right: 1rem;
    display: grid;
    place-items: center;
    width: 2.8rem;
    height: 2.8rem;
    padding: 0;
    border: 1px solid rgb(255 255 255 / 28%);
    border-radius: 999px;
    background: rgb(255 255 255 / 10%);
    color: #fff;
    font-size: 1.55rem;
    cursor: pointer;
}

body.iq-product-lightbox-open { overflow: hidden; }

/* ---------------------------------------------------------
   Mobile sticky purchase bar
--------------------------------------------------------- */

.iq-mobile-purchase-bar {
    position: fixed;
    z-index: 9990;
    right: 0;
    bottom: 0;
    left: 0;
    display: none;
    grid-template-columns: minmax(3.8rem, 0.65fr) minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
    gap: 0.45rem;
    min-height: 3.75rem;
    padding: 0.45rem max(0.55rem, env(safe-area-inset-right)) calc(0.45rem + env(safe-area-inset-bottom)) max(0.55rem, env(safe-area-inset-left));
    border-top: 1px solid color-mix(in srgb, var(--border) 85%, transparent);
    background: color-mix(in srgb, var(--surface) 94%, transparent);
    box-shadow: 0 -0.75rem 2rem rgb(20 48 44 / 10%);
    backdrop-filter: blur(14px);
    transform: translateY(110%);
    transition: transform 220ms ease;
}

.iq-mobile-purchase-bar.is-visible { transform: translateY(0); }

.iq-mobile-purchase-bar__price {
    min-width: 0;
    overflow: hidden;
    color: var(--foreground);
    font-size: 0.82rem;
    font-weight: 750;
    line-height: 1.05;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.iq-mobile-purchase-bar__price del { display: none; }
.iq-mobile-purchase-bar__price ins { text-decoration: none; }

.iq-mobile-purchase-bar__button {
    min-width: 0;
    min-height: 2.45rem;
    padding: 0.42rem 0.45rem;
    border: 1px solid var(--primary);
    border-radius: 0.68rem;
    font-family: var(--font-body);
    font-size: 0.68rem;
    font-weight: 750;
    line-height: 1;
    cursor: pointer;
}

.iq-mobile-purchase-bar__button--cart {
    background: var(--surface);
    color: var(--primary);
}

.iq-mobile-purchase-bar__button--buy {
    background: var(--primary);
    color: var(--primary-foreground);
}

.iq-mobile-purchase-bar__button:disabled {
    border-color: var(--border);
    background: var(--secondary);
    color: var(--muted-foreground);
    cursor: not-allowed;
    opacity: 0.62;
}

/* ---------------------------------------------------------
   Responsive behaviour
--------------------------------------------------------- */

@media (min-width: 768px) {
    .iq-product-gallery__stage { aspect-ratio: auto; }

    .iq-product-gallery__main-image {
        height: auto;
        aspect-ratio: auto;
    }

    .iq-product-gallery__navigation,
    .iq-product-gallery__hint {
        display: none;
    }

    .iq-product-gallery__thumbnails {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 0.75rem;
        margin-top: 1rem;
    }

    .iq-product-purchase__actions { gap: 0.85rem; }

    .iq-product-purchase__actions .single_add_to_cart_button,
    .iq-product-purchase__buy-now {
        min-height: 3.5rem;
        padding-inline: 1rem;
        font-size: 0.92rem;
    }
}

@media (max-width: 767px) {
    .single-product div.product {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .single-product .iq-product-information .iq-product-title {
        font-size: clamp(1.35rem, 6.2vw, 1.8rem);
    }

    .iq-mobile-purchase-bar { display: grid; }

    body.single-product {
        padding-bottom: calc(4.15rem + env(safe-area-inset-bottom));
    }
}

@media (max-width: 420px) {
    .iq-product-purchase { padding: 1.2rem; }

    .iq-product-purchase__form .woocommerce-variation-add-to-cart,
    .iq-product-purchase__form .simple_add_to_cart {
        column-gap: 0.6rem;
        row-gap: 0.9rem;
    }

    .iq-product-purchase__actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.6rem;
    }

    .iq-product-purchase__actions .single_add_to_cart_button,
    .iq-product-purchase__buy-now {
        min-height: 3rem;
        padding-inline: 0.65rem;
        font-size: 0.8rem;
    }
}

/* =========================================================
   Product add-to-cart feedback toast
   ========================================================= */

.iq-commerce-toast {
    position: fixed;
    z-index: 9999;
    right: clamp(1rem, 3vw, 2rem);
    bottom: clamp(1rem, 3vw, 2rem);
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.8rem;
    width: min(430px, calc(100% - 2rem));
    padding: 0.9rem 1rem;
    border: 1px solid rgba(23, 63, 58, 0.16);
    border-radius: 1rem;
    background: #fff;
    color: var(--iq-color-heading, #173f3a);
    box-shadow: 0 18px 50px rgba(18, 50, 45, 0.2);
    opacity: 0;
    visibility: hidden;
    transform: translateY(14px);
    transition: opacity 180ms ease, visibility 180ms ease,
        transform 180ms ease;
}

.iq-commerce-toast.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.iq-commerce-toast__icon {
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border-radius: 999px;
    background: #eaf5ef;
    color: #17633d;
    font-weight: 800;
}

.iq-commerce-toast__message {
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.35;
}

.iq-commerce-toast__link {
    color: var(--iq-color-heading, #173f3a);
    font-size: 0.82rem;
    font-weight: 800;
    white-space: nowrap;
}

.iq-product-purchase__add-to-cart.is-loading {
    position: relative;
    opacity: 0.72;
    cursor: wait;
}

@media (max-width: 600px) {
    .iq-commerce-toast {
        right: 1rem;
        bottom: 1rem;
        grid-template-columns: auto minmax(0, 1fr);
    }

    .iq-commerce-toast__link {
        grid-column: 2;
    }
}
