/* Hozy Vintage 2026 — Shop, category and product-card foundation
 * HV26 SHOP BUILD: 17.71
 * Modern gallery, honest vintage.
 * Monochrome UI with warm neutral product-photo stage only.
 */

/* ---------------------------------------------------------
   Archive layout
   --------------------------------------------------------- */

.woocommerce-shop .site-content,
.tax-product_cat .site-content,
.tax-product_tag .site-content {
    background: var(--color-page);
}

.woocommerce-shop .site-content > .ast-container,
.tax-product_cat .site-content > .ast-container,
.tax-product_tag .site-content > .ast-container {
    width: 100%;
    max-width: var(--width-retail);
    margin-inline: auto;
    padding-inline: var(--hozy-page-padding);
}

.woocommerce-shop .site-main,
.tax-product_cat .site-main,
.tax-product_tag .site-main {
    width: 100%;
    max-width: none;
    margin-inline: 0;
}

.woocommerce .woocommerce-breadcrumb {
    margin: 0 0 var(--space-4);
    color: var(--color-text-muted);
    font-family: var(--font-body);
    font-size: 13px;
    line-height: 1.5;
}

.woocommerce .woocommerce-breadcrumb a {
    color: var(--color-text-muted);
}

.woocommerce .woocommerce-breadcrumb a:hover {
    color: var(--color-text);
}

.woocommerce-products-header,
.hozy-shop-intro {
    max-width: var(--width-text);
    margin: 0 0 var(--space-7);
}

.woocommerce-products-header__title,
.woocommerce-shop h1,
.tax-product_cat h1 {
    margin-bottom: var(--space-4);
}

.hozy-shop-intro > :last-child {
    margin-bottom: 0;
}

/* ---------------------------------------------------------
   Shop page heading / introduction
   --------------------------------------------------------- */

/* Keep the upper Shop content fully visible and crawlable.
   The centred editorial treatment improves hierarchy and reading width
   without hiding, duplicating or visually reordering SEO content. */
.woocommerce-shop .woocommerce-breadcrumb {
    margin-bottom: 18px;
    text-align: center;
}

.woocommerce-shop .woocommerce-products-header {
    width: 100%;
    max-width: 900px;
    margin: 0 auto 16px;
    text-align: center;
}

.woocommerce-shop .woocommerce-products-header__title,
.woocommerce-shop .woocommerce-products-header h1,
.woocommerce-shop h1.page-title {
    margin: 0 !important;
    font-size: clamp(42px, 4vw, 52px);
    line-height: 1.08;
    text-align: center;
}

.woocommerce-shop .hozy-shop-intro {
    width: 100%;
    max-width: 820px;
    margin: 0 auto 48px;
    text-align: center;
}

.woocommerce-shop .hozy-shop-intro > h2 {
    max-width: 900px;
    margin: 0 auto 18px;
    font-family: var(--font-heading);
    font-size: clamp(30px, 3vw, 38px);
    font-weight: var(--weight-semibold);
    line-height: 1.18;
    text-align: center;
}

.woocommerce-shop .hozy-shop-intro > p {
    max-width: 760px;
    margin: 0 auto 18px;
    font-family: var(--font-body);
    font-size: 17px;
    line-height: 1.7;
    text-align: center;
}

.woocommerce-shop .hozy-shop-intro > :last-child {
    margin-bottom: 0;
}

/* ---------------------------------------------------------
   Product category heading / description
   --------------------------------------------------------- */

/* Category archives use a centred editorial heading block while the
   product grid and catalogue controls remain full retail width. */
.tax-product_cat .woocommerce-breadcrumb {
    margin-bottom: 18px;
    text-align: center;
}

.tax-product_cat .woocommerce-products-header {
    width: 100%;
    max-width: 900px;
    margin: 0 auto 48px;
    text-align: center;
}

.tax-product_cat .woocommerce-products-header__title,
.tax-product_cat .woocommerce-products-header h1,
.tax-product_cat h1.page-title {
    margin: 0 0 18px !important;
    font-size: clamp(42px, 4vw, 52px);
    line-height: 1.08;
    text-align: center;
}

.tax-product_cat .term-description {
    max-width: 860px;
    margin: 0 auto;
    text-align: center;
}

.tax-product_cat .term-description > p {
    max-width: 820px;
    margin: 0 auto 18px;
    font-family: var(--font-body);
    font-size: 17px;
    line-height: 1.7;
    text-align: center;
}

.tax-product_cat .term-description > h2 {
    max-width: 900px;
    margin: 30px auto 16px;
    font-family: var(--font-heading);
    font-size: clamp(30px, 3vw, 38px);
    font-weight: var(--weight-semibold);
    line-height: 1.18;
    text-align: center;
}

.tax-product_cat .term-description > :last-child {
    margin-bottom: 0;
}

/* ---------------------------------------------------------
   Result count and sorting
   --------------------------------------------------------- */

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
    margin-bottom: var(--space-5);
}

.woocommerce .woocommerce-result-count {
    color: var(--color-text-muted);
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 44px;
}

.woocommerce .woocommerce-ordering select {
    min-width: 220px;
    width: auto;
    min-height: 44px;
    padding-right: 36px;
    background: var(--color-page);
    color: var(--color-text);
}

/* ---------------------------------------------------------
   Product grid
   --------------------------------------------------------- */

.woocommerce ul.products {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 40px 24px;
    margin: 0;
    padding: 0;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
    display: none !important;
}

.woocommerce ul.products li.product {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    text-align: left !important;
}

.woocommerce ul.products li.product:hover {
    transform: none;
    box-shadow: none;
}

/* ---------------------------------------------------------
   Product image stage
   --------------------------------------------------------- */

.woocommerce ul.products li.product .astra-shop-thumbnail-wrap {
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border-radius: var(--radius-image);
    background: var(--color-photo-stage);
}

.woocommerce ul.products li.product .astra-shop-thumbnail-wrap > a.woocommerce-LoopProduct-link,
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap > a.woocommerce-loop-product__link {
    width: 100%;
    height: 100%;
    display: block;
}

.woocommerce ul.products li.product .astra-shop-thumbnail-wrap img {
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    object-fit: contain;
    object-position: center;
    border-radius: var(--radius-image);
    transition: transform var(--transition-standard);
}

/* Fallback for WooCommerce markup without Astra's thumbnail wrapper. */
.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link > img,
.woocommerce ul.products li.product a.woocommerce-loop-product__link > img {
    width: 100% !important;
    aspect-ratio: 1 / 1;
    margin: 0 0 var(--space-4) !important;
    object-fit: contain;
    object-position: center;
    border-radius: var(--radius-image);
    background: var(--color-photo-stage);
    transition: transform var(--transition-standard);
}

@media (hover: hover) and (pointer: fine) {
    .woocommerce ul.products li.product:hover .astra-shop-thumbnail-wrap img,
    .woocommerce ul.products li.product:hover > a.woocommerce-LoopProduct-link > img,
    .woocommerce ul.products li.product:hover a.woocommerce-loop-product__link > img {
        transform: scale(1.02);
    }
}

/* Astra can inject a quick Add to basket control over the product image.
   Hozy archive cards deliberately keep the image as a pure product-page link. */
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap .ast-on-card-button {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}


/* ---------------------------------------------------------
   Product-card content
   --------------------------------------------------------- */

.woocommerce ul.products li.product .astra-shop-summary-wrap {
    padding: var(--space-4) 0 0 !important;
}

.woocommerce ul.products li.product .ast-woo-product-category,
.woocommerce ul.products li.product .product-category {
    display: block;
    margin: 0 0 6px;
    color: var(--color-text-muted) !important;
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: var(--weight-medium);
    line-height: 1.4;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2,
.woocommerce ul.products li.product h3 {
    margin: 0 0 8px !important;
    padding: 0 !important;
    color: var(--color-text) !important;
    font-family: var(--font-body) !important;
    font-size: 17px !important;
    font-weight: var(--weight-medium) !important;
    line-height: 1.35 !important;
    text-align: left !important;
}

.woocommerce ul.products li.product .woocommerce-loop-product__link {
    color: var(--color-text);
    text-decoration: none;
}

.woocommerce ul.products li.product .woocommerce-loop-product__link:hover .woocommerce-loop-product__title {
    color: var(--color-accent-hover) !important;
}

.woocommerce ul.products li.product .price {
    display: block;
    margin: 0 !important;
    color: var(--color-text) !important;
    font-family: var(--font-body);
    font-size: 18px !important;
    font-weight: var(--weight-semibold) !important;
    line-height: 1.3;
    text-align: left;
}

.woocommerce ul.products li.product .price del {
    color: var(--color-text-muted);
    opacity: 0.75;
    font-weight: var(--weight-regular);
}

.woocommerce ul.products li.product .price ins {
    color: var(--color-text);
    font-weight: var(--weight-semibold);
    text-decoration: none;
}

/* Normal archive cards stay deliberately uncluttered. */
.woocommerce ul.products li.product .star-rating,
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart {
    display: none !important;
}

/* ---------------------------------------------------------
   Sale / stock badges
   --------------------------------------------------------- */

.woocommerce span.onsale,
.woocommerce ul.products li.product .onsale {
    min-width: 0;
    min-height: 0;
    margin: 10px !important;
    padding: 6px 10px !important;
    border-radius: var(--radius-pill);
    background: var(--color-text) !important;
    color: var(--color-page) !important;
    font-family: var(--font-body);
    font-size: 12px !important;
    font-weight: var(--weight-semibold);
    line-height: 1.2 !important;
    text-transform: none;
}

/* ---------------------------------------------------------
   Pagination
   --------------------------------------------------------- */

.woocommerce nav.woocommerce-pagination {
    margin-top: var(--space-8);
}

.woocommerce nav.woocommerce-pagination ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin: 0;
    border: 0;
}

.woocommerce nav.woocommerce-pagination ul li {
    border: 0;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
    min-width: 44px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 12px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-field);
    background: var(--color-page);
    color: var(--color-text);
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: var(--weight-medium);
    line-height: 1;
}

.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current {
    border-color: var(--color-text);
    background: var(--color-text);
    color: var(--color-page);
}

/* ---------------------------------------------------------
   Lower Shop SEO content
   --------------------------------------------------------- */

.hozy-shop-seo-content {
    max-width: var(--width-product-description);
    margin: var(--space-9) auto 0;
    padding-top: var(--space-8);
    border-top: 1px solid var(--color-border);
}

.hozy-shop-seo-content > :last-child {
    margin-bottom: 0;
}


/* Text links in the lower Shop content remain visibly identifiable. */
.woocommerce-shop .hozy-shop-seo-content p a[href],
.woocommerce-shop .hozy-shop-seo-content p a[href]:visited {
    color: #171717 !important;
    text-decoration: underline !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 3px;
}

.woocommerce-shop .hozy-shop-seo-content p a[href]:hover {
    text-decoration-thickness: 2px !important;
}

.woocommerce-shop .hozy-shop-seo-content p a[href]:focus-visible {
    outline: 2px solid #171717;
    outline-offset: 3px;
}

/* ---------------------------------------------------------
   Empty states
   --------------------------------------------------------- */

.woocommerce-info,
.woocommerce-message,
.woocommerce-error {
    padding: var(--space-4) var(--space-5);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-panel);
    background: var(--color-surface-soft);
    color: var(--color-text);
}

.woocommerce-info::before,
.woocommerce-message::before {
    color: var(--color-text);
}

.woocommerce-error::before {
    color: var(--color-error);
}

/* ---------------------------------------------------------
   Responsive grid
   --------------------------------------------------------- */

@media (max-width: 1024px) {
    .woocommerce ul.products {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 32px 20px;
    }

    .hozy-shop-seo-content {
        margin-top: var(--space-8);
        padding-top: var(--space-7);
    }
}

@media (max-width: 767px) {
    .woocommerce-products-header,
    .hozy-shop-intro {
        margin-bottom: var(--space-6);
    }

    .woocommerce-shop .woocommerce-breadcrumb {
        margin-bottom: 14px;
    }

    .woocommerce-shop .woocommerce-products-header {
        max-width: 100%;
        margin-bottom: 14px;
        padding-inline: 4px;
    }

    .woocommerce-shop .woocommerce-products-header__title,
    .woocommerce-shop .woocommerce-products-header h1,
    .woocommerce-shop h1.page-title {
        font-size: clamp(34px, 10vw, 40px);
    }

    .woocommerce-shop .hozy-shop-intro {
        max-width: 100%;
        margin-bottom: 36px;
        padding-inline: 4px;
    }

    .woocommerce-shop .hozy-shop-intro > h2 {
        margin-bottom: 16px;
        font-size: clamp(28px, 8vw, 32px);
    }

    .woocommerce-shop .hozy-shop-intro > p {
        max-width: 100%;
        font-size: 16px;
        line-height: 1.65;
    }

    .tax-product_cat .woocommerce-breadcrumb {
        margin-bottom: 14px;
    }

    .tax-product_cat .woocommerce-products-header {
        max-width: 100%;
        margin-bottom: 36px;
        padding-inline: 4px;
    }

    .tax-product_cat .woocommerce-products-header__title,
    .tax-product_cat .woocommerce-products-header h1,
    .tax-product_cat h1.page-title {
        margin-bottom: 16px !important;
        font-size: clamp(34px, 10vw, 40px);
    }

    .tax-product_cat .term-description > p {
        font-size: 16px;
        line-height: 1.65;
    }

    .tax-product_cat .term-description > h2 {
        margin-top: 26px;
        font-size: clamp(28px, 8vw, 32px);
    }

    .woocommerce .woocommerce-result-count,
    .woocommerce .woocommerce-ordering {
        float: none;
        width: 100%;
        margin-bottom: var(--space-4);
    }

    .woocommerce .woocommerce-result-count {
        line-height: 1.5;
    }

    .woocommerce .woocommerce-ordering select {
        width: 100%;
    }

    .woocommerce ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 28px 16px;
    }

    .woocommerce ul.products li.product .woocommerce-loop-product__title,
    .woocommerce ul.products li.product h2,
    .woocommerce ul.products li.product h3 {
        font-size: 15px !important;
    }

    .woocommerce ul.products li.product .price {
        font-size: 16px !important;
    }

    .woocommerce ul.products li.product .ast-woo-product-category,
    .woocommerce ul.products li.product .product-category {
        font-size: 12px;
    }

    .hozy-shop-seo-content {
        margin-top: var(--space-7);
        padding-top: var(--space-6);
    }
}

@media (max-width: 360px) {
    .woocommerce ul.products {
        gap: 24px 12px;
    }
}
