/* Rumantio: inner pages + WooCommerce. Uses tokens from main.css. */

.page-main,
.woo-main {
    padding-block: clamp(2rem, 5vw, 4rem)
}

.page-title,
.woocommerce-products-header__title {
    margin-bottom: 1.5rem;
    font-size: clamp(1.75rem, 6vw, 3rem);
    overflow-wrap: anywhere
}

.entry>*+* {
    margin-top: 1rem
}

.entry a {
    color: var(--link);
    text-decoration: underline
}

.entry-wrap+.entry-wrap {
    margin-top: 2.5rem
}

.woocommerce-breadcrumb {
    font-size: .9rem;
    color: var(--muted);
    margin-bottom: 1.5rem
}

.woocommerce-breadcrumb a {
    color: var(--link)
}

/* ---------- shop grid ---------- */
.woocommerce ul.products {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.25rem;
    margin: 0 0 2rem;
    padding: 0;
    list-style: none
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
    display: none
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
    float: none !important;
    width: auto !important;
    min-width: 0;
    margin: 0 !important;
    --card-pad: 1rem;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    background: var(--card);
    border-radius: var(--radius);
    padding: var(--card-pad);
    transition: transform .3s var(--ease), box-shadow .3s var(--ease)
}

@media (hover:hover) {
    .woocommerce ul.products li.product:hover {
        transform: translateY(-4px);
        box-shadow: var(--shadow)
    }
}

.woocommerce ul.products li.product a img {
    border-radius: var(--radius-sm);
    margin: 0 0 1rem;
    aspect-ratio: 1/1;
    object-fit: cover;
    width: 100%
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    overflow: hidden;
    overflow-wrap: anywhere;
    font-family: var(--font-display);
    font-size: 1.05rem;
    font-weight: 600;
    padding: 0;
    margin: 0 0 .5rem;
    line-height: 1.25
}

.woocommerce ul.products li.product .price {
    color: var(--brand);
    font-weight: 700;
    margin-bottom: 1rem;
    overflow-wrap: anywhere
}

.woocommerce ul.products li.product .price del {
    color: var(--muted);
    font-weight: 400
}

.woocommerce ul.products li.product .button {
    margin-top: auto;
    align-self: flex-start
}

.woocommerce ul.products li.product .star-rating {
    margin-bottom: .5rem
}

/* Variation swatches / option buttons injected into cards by plugins: wrap, never widen the card.
   Long labels (e.g. "Black double bowl A and box") used to stretch one grid column and push the page sideways. */
.woocommerce ul.products li.product>:not(a):not(img):not(.price):not(.onsale):not(.stock-badge):not(.star-rating),
.woocommerce ul.products li.product [class*="swatch"],
.woocommerce ul.products li.product [class*="variable-item"] {
    min-width: 0;
    max-width: 100%;
    flex-wrap: wrap
}

.woocommerce ul.products li.product>:not(a):not(img) *,
.woocommerce ul.products li.product [class*="swatch"] *,
.woocommerce ul.products li.product [class*="variable-item"] * {
    min-width: 0;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere
}

.woocommerce span.onsale {
    top: .75rem;
    left: .75rem;
    right: auto;
    min-width: 0;
    min-height: 0;
    padding: .4rem .85rem;
    line-height: 1.2;
    border-radius: 999px;
    background: var(--brand);
    color: #fff;
    font-weight: 700;
    font-size: .8rem
}

.woocommerce-result-count {
    color: var(--muted);
    margin: 0 0 1.5rem
}

.woocommerce-ordering {
    margin: 0 0 1.5rem
}

.woocommerce-ordering select {
    min-height: 44px;
    padding: 0 1rem;
    border: 2px solid var(--oat);
    border-radius: 999px;
    background: var(--card);
    color: var(--ink);
    font: inherit
}

.woocommerce nav.woocommerce-pagination {
    margin-top: 2rem
}

.woocommerce nav.woocommerce-pagination ul {
    border: 0
}

.woocommerce nav.woocommerce-pagination ul li {
    border: 0;
    margin: 0 .15rem
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
    min-width: 44px;
    padding: .65rem .9rem;
    border-radius: 999px;
    color: var(--ink)
}

.woocommerce nav.woocommerce-pagination ul li a:hover {
    background: var(--oat)
}

.woocommerce nav.woocommerce-pagination ul li span.current {
    background: var(--brand);
    color: #fff
}

/* ---------- buttons ---------- */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: .75rem 1.6rem;
    border: 2px solid transparent;
    border-radius: 999px;
    background: var(--brand);
    color: #fff;
    font: 700 1rem var(--font-body);
    box-shadow: 0 8px 20px rgb(var(--brand-rgb)/.30);
    transition: transform .3s var(--ease), background-color .3s var(--ease)
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
    background: var(--brand-dark);
    color: #fff;
    transform: translateY(-3px)
}

.woocommerce a.button.disabled,
.woocommerce button.button:disabled,
.woocommerce button.button.disabled {
    opacity: .5;
    transform: none
}

.woocommerce a.added_to_cart {
    display: inline-block;
    margin-top: .5rem;
    color: var(--link);
    font-weight: 700
}

/* ---------- single product (v1.4) ---------- */
.woocommerce div.product {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    gap: clamp(1.25rem, 3vw, 2.5rem);
    align-items: start
}

.woocommerce div.product::before,
.woocommerce div.product::after {
    display: none
}

.woocommerce div.product>* {
    min-width: 0
}

.woocommerce div.product>.woocommerce-tabs,
.woocommerce div.product>.pd-sections,
.woocommerce div.product>section,
.woocommerce div.product>.related,
.woocommerce div.product>.upsells {
    grid-column: 1/-1
}

.woocommerce div.product>span.onsale {
    position: absolute;
    top: 1.25rem;
    left: 1.25rem;
    z-index: 3;
    font-size: .9rem
}

/* WooCommerce's own layout CSS floats gallery + summary at 48% width with #content-level selectors (they beat ours),
   which leaves narrow cards and a gap in the middle on desktop. Grid sizes them, so these need !important */
.woocommerce div.product>.woocommerce-product-gallery,
.woocommerce div.product>.summary {
    float: none !important;
    clear: none !important;
    width: auto !important;
    margin: 0 !important
}

/* related / upsell blocks are <section>s: drop the big global section padding so spacing comes from their heading margin */
.woocommerce div.product>section {
    padding-block: 0
}

/* gallery card */
.woocommerce div.product div.woocommerce-product-gallery.images {
    float: none;
    width: auto;
    margin: 0;
    padding: clamp(.6rem, 1.5vw, 1rem);
    border-radius: var(--radius);
    background: var(--card);
    box-shadow: var(--shadow)
}

.woocommerce div.product div.images .woocommerce-product-gallery__wrapper {
    border-radius: var(--radius-sm);
    overflow: hidden
}

.woocommerce div.product div.images img {
    border-radius: var(--radius-sm)
}

.woocommerce div.product div.images .woocommerce-product-gallery__trigger {
    z-index: 4;
    box-shadow: 0 2px 10px rgb(var(--brand-rgb)/.18)
}

.woocommerce div.product div.images .flex-control-thumbs {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: .5rem;
    margin: .75rem 0 0;
    padding: 0;
    list-style: none
}

.woocommerce div.product div.images .flex-control-thumbs li {
    float: none;
    width: auto;
    margin: 0
}

.woocommerce div.product div.images .flex-control-thumbs li img {
    border: 2px solid var(--oat);
    border-radius: 12px;
    opacity: .8;
    cursor: pointer;
    transition: opacity .3s var(--ease), border-color .3s var(--ease)
}

.woocommerce div.product div.images .flex-control-thumbs li img:hover,
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active {
    opacity: 1
}

.woocommerce div.product div.images .flex-control-thumbs li img.flex-active {
    border-color: var(--brand)
}

/* square, uncropped main photo so mixed product shots never stretch the card */
.woocommerce div.product div.images .woocommerce-product-gallery__image img:not(.zoomImg) {
    width: 100%;
    aspect-ratio: 1/1;
    object-fit: contain;
    background: var(--card)
}

.woocommerce div.product div.images .flex-control-thumbs li img {
    aspect-ratio: 1/1;
    object-fit: cover;
    width: 100%
}

/* summary card */
.woocommerce div.product div.summary.entry-summary {
    float: none;
    width: auto;
    margin: 0;
    padding: clamp(1.25rem, 3vw, 2rem);
    border-radius: var(--radius);
    background: var(--card);
    box-shadow: var(--shadow)
}

.product-brand.product-brand--single {
    display: inline-block;
    margin: 0 0 .75rem;
    padding: .3rem .85rem;
    border-radius: 999px;
    background: var(--oat);
    font-size: .78rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    transition: background-color .3s var(--ease), color .3s var(--ease)
}

a.product-brand--single:hover {
    background: var(--brand);
    color: #fff
}

.woocommerce div.product .product_title {
    margin-bottom: .75rem;
    font-size: clamp(1.35rem, 2.4vw, 1.9rem);
    font-weight: 700;
    line-height: 1.2;
    overflow-wrap: anywhere
}

.woocommerce div.product div.summary .woocommerce-product-rating {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .25rem .5rem;
    margin: 0 0 .75rem;
    font-size: .9rem;
    color: var(--muted)
}

.woocommerce div.product div.summary .woocommerce-product-rating .star-rating {
    float: none;
    margin: 0
}

.woocommerce div.product div.summary p.price,
.woocommerce div.product div.summary span.price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .15rem .6rem;
    margin: 0 0 1rem;
    color: var(--brand);
    font-size: clamp(1.6rem, 3.5vw, 2rem);
    font-weight: 700;
    line-height: 1.2
}

.woocommerce div.product div.summary .price ins {
    order: -1;
    background: none;
    text-decoration: none
}

.woocommerce div.product div.summary .price del {
    color: var(--muted);
    font-size: .6em;
    font-weight: 500;
    opacity: 1
}

.woocommerce div.product .woocommerce-product-details__short-description {
    margin-bottom: 1.25rem;
    color: var(--muted)
}

.woocommerce div.product .woocommerce-product-details__short-description>*+* {
    margin-top: .6rem
}

.woocommerce div.product .woocommerce-product-details__short-description>:last-child {
    margin-bottom: 0
}

.woocommerce div.product .woocommerce-product-details__short-description ul,
.woocommerce div.product .woocommerce-product-details__short-description ol {
    padding-left: 1.25rem
}

.woocommerce div.product div.summary p.stock {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    margin: 0 0 1rem;
    padding: .35rem .9rem;
    border-radius: 999px;
    font-size: .9rem;
    font-weight: 700;
    line-height: 1.3
}

.woocommerce div.product div.summary p.stock::before {
    content: "";
    flex: none;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: currentColor
}

.woocommerce div.product div.summary p.stock.in-stock {
    background: var(--mint);
    color: #14432b
}

.woocommerce div.product div.summary p.stock.out-of-stock,
.woocommerce div.product div.summary p.stock.available-on-backorder {
    background: var(--oat);
    color: var(--brand-dark)
}

/* add to cart row + quantity stepper */
.woocommerce div.product form.cart {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    align-items: center;
    margin-bottom: 0
}

.woocommerce div.product form.cart .quantity {
    margin: 0
}

.woocommerce div.product form.cart .single_add_to_cart_button {
    flex: 1 1 11rem;
    min-height: 54px;
    font-size: 1.05rem
}

.woocommerce .quantity .qty {
    width: 5rem;
    min-height: 48px;
    padding: 0 .5rem;
    border: 2px solid var(--oat);
    border-radius: 999px;
    background: var(--card);
    color: var(--ink);
    text-align: center;
    font: inherit
}

.woocommerce .quantity.has-stepper {
    display: inline-flex;
    align-items: center;
    border: 2px solid var(--oat);
    border-radius: 999px;
    background: var(--card)
}

.woocommerce .quantity.has-stepper .qty {
    width: 2.75rem;
    min-height: 44px;
    padding: 0;
    border: 0;
    background: transparent;
    -moz-appearance: textfield;
    appearance: textfield
}

.woocommerce .quantity.has-stepper .qty::-webkit-outer-spin-button,
.woocommerce .quantity.has-stepper .qty::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0
}

.qty-btn {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--ink);
    font: 700 1.3rem/1 var(--font-body);
    cursor: pointer;
    transition: background-color .3s var(--ease), transform .3s var(--ease)
}

.qty-btn:hover {
    background: var(--oat)
}

.qty-btn:active {
    transform: scale(.9)
}

.qty-btn:disabled {
    opacity: .35;
    cursor: not-allowed;
    background: transparent;
    transform: none
}

.woocommerce div.product div.summary .product-trust {
    margin-top: 1.25rem
}

.woocommerce div.product div.summary .product_meta {
    display: grid;
    gap: .4rem;
    margin-top: 1.25rem;
    padding-top: 1.1rem;
    border-top: 1px solid var(--oat);
    font-size: .9rem;
    color: var(--muted)
}

.woocommerce div.product div.summary .product_meta>span {
    display: block;
    border: 0;
    padding: 0
}

.woocommerce div.product div.summary .product_meta a {
    color: var(--link);
    font-weight: 700
}

.woocommerce div.product div.summary .product_meta a:hover {
    text-decoration: underline
}

/* product sections: accordion (see woocommerce/single-product/tabs/tabs.php) */
.woocommerce div.product .pd-sections {
    display: grid;
    gap: .75rem;
    margin-top: .5rem
}

.pd-acc {
    border-radius: var(--radius);
    background: var(--card);
    box-shadow: var(--shadow)
}

.pd-acc__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: 60px;
    padding: .75rem clamp(1.1rem, 3vw, 1.75rem);
    border-radius: var(--radius);
    cursor: pointer;
    list-style: none;
    font: 700 1.15rem/1.3 var(--font-display);
    transition: background-color .3s var(--ease)
}

.pd-acc__head::-webkit-details-marker {
    display: none
}

.pd-acc__head:hover {
    background: var(--cream)
}

.pd-acc__head:focus-visible {
    border-radius: var(--radius);
    outline-offset: -3px
}

.pd-acc[open]>.pd-acc__head {
    border-radius: var(--radius) var(--radius) 0 0
}

.pd-acc__icon {
    flex: none;
    width: 24px;
    height: 24px;
    color: var(--brand);
    transition: transform .3s var(--ease)
}

.pd-acc[open]>.pd-acc__head .pd-acc__icon {
    transform: rotate(180deg)
}

.pd-acc__body {
    padding: .25rem clamp(1.1rem, 3vw, 1.75rem) clamp(1.25rem, 3vw, 1.75rem)
}

.pd-acc__body>*+* {
    margin-top: .9rem
}

.pd-acc__body>:is(p, ul, ol, h2, h3, h4) {
    max-width: 75ch
}

.pd-acc__body>h2:first-child {
    display: none
}

.pd-acc__body ul,
.pd-acc__body ol {
    padding-left: 1.25rem
}

.pd-acc__body h2,
.pd-acc__body h3,
.pd-acc__body h4 {
    margin-top: 1.5rem;
    font-size: 1.25rem
}

.pd-acc__body table.woocommerce-product-attributes {
    display: table;
    width: 100%;
    max-width: 60rem;
    margin: 0;
    border-collapse: separate;
    border-spacing: 0;
    overflow: visible
}

.pd-acc__body table.woocommerce-product-attributes th,
.pd-acc__body table.woocommerce-product-attributes td {
    padding: .8rem 1rem;
    border: 0;
    border-bottom: 1px solid var(--oat);
    font-style: normal;
    text-align: left;
    vertical-align: top
}

.pd-acc__body table.woocommerce-product-attributes th {
    width: 34%;
    background: var(--cream);
    color: var(--ink);
    font-weight: 700
}

.pd-acc__body table.woocommerce-product-attributes td p {
    margin: 0;
    padding: 0
}

.pd-acc__body table.woocommerce-product-attributes tr:last-child th,
.pd-acc__body table.woocommerce-product-attributes tr:last-child td {
    border-bottom: 0
}

/* reviews */
#reviews #comments ol.commentlist {
    margin: 0;
    padding: 0;
    list-style: none
}

#reviews #comments ol.commentlist li img.avatar {
    width: 3rem;
    height: 3rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--oat)
}

#reviews #comments ol.commentlist li .comment-text {
    margin: 0 0 0 4rem;
    padding: 1rem 1.1rem;
    border: 0;
    border-radius: var(--radius-sm);
    background: var(--cream)
}

#reviews #comments ol.commentlist li .comment-text p {
    margin: .4rem 0 0
}

#review_form #respond textarea,
#review_form #respond input[type=text],
#review_form #respond input[type=email] {
    width: 100%;
    min-height: 48px;
    padding: .7rem 1rem;
    border: 2px solid var(--oat);
    border-radius: var(--radius-sm);
    background: var(--cream);
    color: var(--ink);
    font: inherit
}

#review_form #respond textarea:focus,
#review_form #respond input[type=text]:focus,
#review_form #respond input[type=email]:focus {
    border-color: var(--brand)
}

.woocommerce .related.products>h2,
.woocommerce .upsells.products>h2 {
    font-size: clamp(1.5rem, 3vw, 2rem);
    margin: 2.5rem 0 1.25rem
}

/* shop + search toolbar */
.shop-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem 1rem;
    margin: 0 0 1.25rem
}

.shop-toolbar .woocommerce-result-count,
.shop-toolbar .woocommerce-ordering {
    float: none;
    margin: 0
}

.shop-toolbar .woocommerce-ordering select {
    width: auto;
    max-width: 100%
}

/* empty search / empty category */
.no-results {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .75rem;
    padding: clamp(2rem, 6vw, 3.5rem) 1.25rem;
    border-radius: var(--radius);
    background: var(--card);
    text-align: center
}

.no-results__icon {
    display: grid;
    place-items: center;
    width: 76px;
    height: 76px;
    border-radius: 50%;
    background: var(--oat);
    color: var(--brand)
}

.no-results__icon svg {
    width: 40px;
    height: 40px
}

.no-results h2 {
    font-size: clamp(1.4rem, 4vw, 2rem)
}

.no-results p {
    max-width: 44ch;
    color: var(--muted)
}

.no-results__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    justify-content: center;
    margin-top: .5rem
}

.no-results__label {
    margin: 2rem 0 .75rem;
    font-weight: 700
}

/* sticky add-to-cart bar (built by main.js): appears once the real form scrolls out of view */
.atc-bar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 40;
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .6rem max(1.25rem, calc((100% - 1180px)/2)) calc(.6rem + env(safe-area-inset-bottom, 0px));
    background: var(--card);
    border-top: 1px solid rgb(var(--brand-rgb)/.12);
    box-shadow: 0 -8px 24px rgb(var(--brand-rgb)/.12);
    transform: translateY(110%);
    visibility: hidden;
    transition: transform .3s var(--ease), visibility 0s .3s
}

.atc-bar.is-on {
    transform: none;
    visibility: visible;
    transition: transform .3s var(--ease)
}

.atc-bar__info {
    flex: 1;
    min-width: 0;
    line-height: 1.25
}

.atc-bar__title {
    display: block;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-size: .85rem;
    color: var(--muted)
}

.atc-bar__price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0 .4rem;
    color: var(--brand);
    font-size: 1.1rem;
    font-weight: 700
}

.atc-bar__price ins {
    order: -1;
    text-decoration: none;
    background: none
}

.atc-bar__price del {
    color: var(--muted);
    font-size: .8em;
    font-weight: 400
}

.atc-bar .btn {
    flex: none;
    min-height: 46px;
    padding: .6rem 1.25rem
}

body.has-atc-bar .site-footer {
    padding-bottom: calc(2rem + 78px)
}

@media (min-width:769px) {
    .atc-bar__info {
        display: flex;
        align-items: center;
        gap: 1.25rem
    }

    .atc-bar__title {
        flex: 1;
        min-width: 0;
        font-size: 1rem;
        font-weight: 700;
        color: var(--ink)
    }

    .atc-bar__price {
        flex: none;
        font-size: 1.25rem
    }

    .atc-bar .btn {
        min-width: 12rem
    }
}

@media (prefers-reduced-motion:reduce) {

    .atc-bar,
    .atc-bar.is-on {
        transition: none
    }
}


@media (max-width:900px) {
    .woocommerce div.product div.images .flex-control-thumbs {
        grid-template-columns: repeat(4, 1fr)
    }
}

@media (max-width:640px) {
    .woocommerce div.product {
        grid-template-columns: minmax(0, 1fr)
    }

    .woocommerce div.product div.images .flex-control-thumbs {
        grid-template-columns: repeat(3, 1fr)
    }
}

@media (max-width:768px) {
    .woocommerce-breadcrumb {
        overflow-x: auto;
        white-space: nowrap;
        scrollbar-width: none
    }

    .woocommerce-breadcrumb::-webkit-scrollbar {
        display: none
    }

    .pd-acc__body table.woocommerce-product-attributes th {
        width: 42%
    }

    #reviews #comments ol.commentlist li .comment-text {
        margin-left: 3.5rem
    }
}

@media (max-width:560px) {
    .shop-toolbar {
        gap: .5rem
    }

    .shop-toolbar .woocommerce-result-count {
        flex: 1 1 100%;
        font-size: .9rem
    }

    .shop-toolbar .woocommerce-ordering {
        flex: 1 1 100%
    }

    .shop-toolbar .woocommerce-ordering select {
        width: 100%
    }

    .woocommerce div.product div.summary.entry-summary {
        padding: 1.25rem 1.1rem
    }
}

/* related + upsells: four across on desktop, one swipe row below 900px so no card is left alone on a row */
@media (min-width:901px) {

    .woocommerce div.product .related.products ul.products,
    .woocommerce div.product .upsells.products ul.products {
        grid-template-columns: repeat(4, minmax(0, 1fr))
    }
}

@media (max-width:900px) {

    .woocommerce div.product .related.products ul.products,
    .woocommerce div.product .upsells.products ul.products {
        grid-template-columns: none;
        grid-auto-flow: column;
        grid-auto-columns: clamp(11rem, 42vw, 16rem);
        gap: 1rem;
        margin: 0 -1.25rem;
        padding: .5rem 1.25rem 1.25rem;
        overflow-x: auto;
        overscroll-behavior-x: contain;
        scroll-snap-type: x proximity;
        scroll-padding-inline: 1.25rem;
        scrollbar-width: none
    }

    .woocommerce div.product .related.products ul.products::-webkit-scrollbar,
    .woocommerce div.product .upsells.products ul.products::-webkit-scrollbar {
        display: none
    }

    .woocommerce div.product .related.products ul.products li.product,
    .woocommerce div.product .upsells.products ul.products li.product {
        scroll-snap-align: start
    }
}

/* ---------- notices ---------- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
    background: var(--oat);
    color: var(--ink);
    border-top-color: var(--brand);
    border-radius: var(--radius-sm)
}

.woocommerce-message::before,
.woocommerce-info::before {
    color: var(--brand)
}

.woocommerce-error::before {
    color: var(--brand-dark)
}

.woocommerce-message a.button,
.woocommerce-info a.button {
    float: right
}

/* ---------- forms (cart, checkout, account) ---------- */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text,
.select2-container--default .select2-selection--single {
    min-height: 46px;
    padding: .6rem 1rem;
    border: 2px solid var(--oat);
    border-radius: var(--radius-sm);
    background: var(--card);
    color: var(--ink);
    font: inherit
}

.woocommerce form .form-row textarea {
    min-height: 110px
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus {
    outline: 2px solid var(--brand);
    outline-offset: 2px;
    border-color: var(--brand)
}

.woocommerce form .form-row label {
    font-weight: 700;
    margin-bottom: .35rem
}

.select2-container--default .select2-selection--single {
    height: 46px;
    padding: 0
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 42px;
    padding-left: 1rem;
    color: var(--ink)
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 42px
}

/* ---------- cart + checkout ---------- */
.woocommerce table.shop_table {
    border: 0;
    border-collapse: separate;
    border-spacing: 0;
    border-radius: var(--radius);
    background: var(--card);
    overflow: hidden
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
    padding: 1rem;
    border-top: 1px solid var(--oat)
}

.woocommerce table.shop_table thead th {
    border-top: 0;
    background: var(--oat);
    color: var(--ink)
}

.woocommerce table.shop_table td.product-name a {
    color: var(--link);
    font-weight: 700
}

.woocommerce a.remove {
    color: var(--brand) !important
}

.woocommerce a.remove:hover {
    background: var(--brand) !important;
    color: #fff !important
}

.woocommerce .cart-collaterals .cart_totals {
    padding: 1.5rem;
    border-radius: var(--radius);
    background: var(--card);
    box-shadow: var(--shadow)
}

.woocommerce .cart-collaterals .cart_totals h2 {
    font-size: 1.5rem;
    margin-bottom: 1rem
}

.woocommerce-checkout #order_review {
    padding: 1.5rem;
    border-radius: var(--radius);
    background: var(--card);
    box-shadow: var(--shadow)
}

.woocommerce-checkout #payment {
    border-radius: var(--radius-sm);
    background: var(--oat)
}

.woocommerce-checkout #payment div.payment_box {
    background: var(--card);
    color: var(--ink)
}

.woocommerce-checkout #payment div.payment_box::before {
    border-bottom-color: var(--card)
}

.woocommerce-checkout #payment ul.payment_methods {
    border-bottom-color: rgb(var(--brand-rgb)/.15)
}

.woocommerce-checkout #payment #place_order {
    width: 100%;
    float: none
}

.woocommerce-checkout h3 {
    font-size: 1.5rem;
    margin-bottom: 1rem
}

/* ---------- my account ---------- */
.woocommerce-MyAccount-navigation ul {
    display: grid;
    gap: .25rem;
    margin: 0 0 1.5rem;
    padding: 0;
    list-style: none
}

.woocommerce-MyAccount-navigation a {
    display: block;
    padding: .7rem 1.1rem;
    border-radius: 999px;
    font-weight: 500;
    transition: background-color .3s var(--ease)
}

.woocommerce-MyAccount-navigation a:hover {
    background: var(--oat)
}

.woocommerce-MyAccount-navigation .is-active a {
    background: var(--brand);
    color: #fff
}

.woocommerce-account .woocommerce-MyAccount-content {
    background: var(--card);
    border-radius: var(--radius);
    padding: 1.5rem
}

.woocommerce form.login,
.woocommerce form.register {
    border: 0;
    border-radius: var(--radius);
    background: var(--card);
    box-shadow: var(--shadow);
    padding: 1.75rem
}

/* shop/search/category/brand grid: 4 cols > 1024px, 3 cols 600-1024px, 2 cols 520-599px, 1 col < 520px. minmax(0,1fr) keeps columns equal whatever is inside a card. */
@media (max-width:1024px) {
    .woocommerce ul.products {
        grid-template-columns: repeat(3, minmax(0, 1fr))
    }
}

@media (max-width:599px) {
    .woocommerce ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }
}

@media (max-width:768px) {
    .woocommerce ul.products {
        gap: .75rem
    }

    .woocommerce ul.products li.product {
        --card-pad: .65rem
    }

    .woocommerce ul.products li.product a img {
        margin-bottom: .7rem
    }

    .woocommerce ul.products li.product .woocommerce-loop-product__title {
        font-size: .95rem
    }

    .woocommerce ul.products li.product .price {
        font-size: .95rem;
        margin-bottom: .75rem
    }

    .woocommerce ul.products li.product .button {
        align-self: stretch;
        min-height: 44px;
        padding: .6rem .5rem;
        font-size: .9rem;
        text-align: center;
        box-shadow: none
    }

    .woocommerce-ordering select {
        width: 100%
    }

    .woocommerce-message a.button,
    .woocommerce-info a.button {
        float: none;
        margin-bottom: .75rem
    }

    .woocommerce .related.products>h2,
    .woocommerce .upsells.products>h2 {
        margin-top: 2rem
    }
}

@media (min-width:600px) and (max-width:768px) {
    .woocommerce ul.products {
        gap: 1rem
    }
}

/* below 520px: one card per row, full-size card type */
@media (max-width:519.98px) {
    .woocommerce ul.products {
        grid-template-columns: minmax(0, 1fr);
        gap: 1rem
    }

    .woocommerce ul.products li.product {
        --card-pad: 1rem
    }

    .woocommerce ul.products li.product a img {
        margin-bottom: 1rem
    }

    .woocommerce ul.products li.product .woocommerce-loop-product__title {
        font-size: 1.1rem
    }

    .woocommerce ul.products li.product .price {
        font-size: 1.05rem;
        margin-bottom: 1rem
    }

    .woocommerce ul.products li.product .button {
        font-size: 1rem
    }
}

/* ---------- category chips (shop, category, brand, search) ---------- */
.cat-chips {
    display: flex;
    gap: .5rem;
    margin: 0 0 1rem;
    padding: 0 0 .35rem;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    position: relative;
    flex-wrap: wrap;
}

.cat-chips::-webkit-scrollbar {
    display: none
}

.chip {
    flex: none;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    min-height: 44px;
    padding: .5rem 1.1rem;
    border-radius: 999px;
    background: var(--card);
    border: 2px solid var(--oat);
    font-weight: 700;
    font-size: .95rem;
    white-space: nowrap;
    scroll-snap-align: start;
    transition: background-color .3s var(--ease), border-color .3s var(--ease), color .3s var(--ease)
}

.chip small {
    font-weight: 500;
    font-size: .8rem;
    color: var(--muted)
}

.chip:hover {
    border-color: var(--brand)
}

.cat-chips--sub .chip {
    min-height: 40px;
    font-size: .9rem;
    background: var(--oat);
    border-color: transparent
}

.chip.is-active {
    background: var(--brand);
    border-color: var(--brand);
    color: #fff
}

.chip.is-active small {
    color: rgb(255 255 255/.85)
}

@media (min-width:821px) {
    .cat-chips {
        flex-wrap: wrap;
        overflow: visible
    }
}

/* ---------- product card extras ---------- */
.stock-badge {
    position: absolute;
    top: .75rem;
    right: .75rem;
    z-index: 2;
    padding: .3rem .7rem;
    border-radius: 999px;
    background: var(--ink);
    color: #fff;
    font-size: .75rem;
    font-weight: 700;
    line-height: 1.2
}

.woocommerce ul.products li.product.outofstock a img:not(.product-card__alt) {
    opacity: .55
}

/* ---------- variation form + description (mobile safe) ---------- */
.woocommerce div.product form.cart .variations {
    width: 100%;
    margin: 0 0 1rem;
    border: 0
}

.woocommerce div.product form.cart .variations th,
.woocommerce div.product form.cart .variations td {
    display: block;
    padding: 0 0 .5rem;
    text-align: left
}

.woocommerce div.product form.cart .variations label {
    font-weight: 700
}

.woocommerce div.product form.cart .variations select {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    min-height: 48px;
    margin: 0;
    padding: 0 1rem;
    border: 2px solid var(--oat);
    border-radius: var(--radius-sm);
    background: var(--card);
    color: var(--ink);
    font: inherit
}

.woocommerce div.product form.cart .reset_variations {
    display: inline-block;
    margin-top: .5rem;
    color: var(--link);
    font-weight: 700
}

.woocommerce div.product form.cart .reset_variations[style*="hidden"] {
    display: none
}

.woocommerce div.product form.cart .single_variation_wrap {
    width: 100%
}

.woocommerce div.product form.cart .woocommerce-variation-add-to-cart {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    align-items: center
}

.pd-acc__body {
    overflow-wrap: anywhere
}

.pd-acc__body img {
    display: block;
    max-width: 100%;
    height: auto;
    margin: .75rem auto;
    border-radius: var(--radius-sm)
}

.pd-acc__body table {
    display: block;
    max-width: 100%;
    overflow-x: auto
}

.pd-acc__body th,
.pd-acc__body td {
    padding: .4rem .75rem;
    border: 1px solid var(--oat)
}

@media (max-width:600px) {
    .woocommerce div.product .woocommerce-product-gallery {
        margin-bottom: 1.5rem
    }

    .woocommerce div.product form.cart .button.single_add_to_cart_button {
        flex: 1 1 auto
    }
}

/* ---------- homepage sections ---------- */
.home-cats {
    padding-bottom: 0
}

.cat-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 1.25rem
}

.cat-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .25rem;
    padding: 1.1rem 1rem 1.25rem;
    border-radius: var(--radius);
    text-align: center;
    transition: transform .3s var(--ease), box-shadow .3s var(--ease)
}

.cat-card:nth-child(4n+1) {
    background: var(--t-cat)
}

.cat-card:nth-child(4n+2) {
    background: var(--t-bird)
}

.cat-card:nth-child(4n+3) {
    background: var(--t-fish)
}

.cat-card:nth-child(4n+4) {
    background: var(--t-small)
}

.cat-card__img {
    display: grid;
    place-items: center;
    width: 100%;
    max-width: 180px;
    aspect-ratio: 1/1;
    margin-bottom: .6rem;
    overflow: hidden;
    border-radius: 50%;
    background: rgb(255 255 255/.6);
    color: var(--brand)
}

.cat-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.cat-card__img svg {
    width: 42%;
    height: 42%
}

.cat-card__name {
    font-family: var(--font-display);
    font-size: 1.2rem;
    font-weight: 600;
    line-height: 1.2
}

.cat-card__count {
    font-size: .9rem;
    color: var(--muted)
}

@media (hover:hover) {
    .cat-card:hover {
        transform: translateY(-4px);
        box-shadow: var(--shadow)
    }
}

@media (max-width:640px) {
    .cat-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: .8rem
    }

    .cat-card {
        padding: .9rem .75rem 1rem
    }

    .cat-card__name {
        font-size: 1.05rem
    }

    .cat-card:last-child:nth-child(odd) {
        grid-column: 1/-1
    }

    .cat-card:last-child:nth-child(odd) .cat-card__img {
        max-width: 140px
    }
}

/* ---------- block cart/checkout fallback (best effort; classic shortcodes are the tested path) ---------- */
.wc-block-components-button:not(.is-link),
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
    min-height: 48px;
    border: 2px solid transparent;
    border-radius: 999px;
    background: var(--brand);
    color: #fff;
    font-weight: 700;
    transition: transform .3s var(--ease), background-color .3s var(--ease)
}

.wc-block-components-button:not(.is-link):hover,
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover {
    background: var(--brand-dark);
    color: #fff;
    transform: translateY(-3px)
}

.wc-block-components-text-input input[type=text],
.wc-block-components-text-input input[type=email],
.wc-block-components-text-input input[type=tel],
.wc-block-components-text-input input[type=password],
.wc-block-components-text-input input[type=number] {
    border: 2px solid var(--oat);
    border-radius: var(--radius-sm);
    background: var(--card);
    color: var(--ink)
}

.wc-block-components-sidebar,
.wp-block-woocommerce-checkout-order-summary-block {
    padding: 1.25rem;
    border-radius: var(--radius);
    background: var(--card);
    box-shadow: var(--shadow)
}

/* ---------- product card: brand label + second photo on hover ---------- */
.product-brand {
    display: block;
    margin-bottom: .25rem;
    font-size: .8rem;
    font-weight: 700;
    color: var(--link)
}

.woocommerce ul.products li.product img.product-card__alt {
    display: none;
    position: absolute;
    top: var(--card-pad);
    left: var(--card-pad);
    width: calc(100% - 2 * var(--card-pad));
    margin: 0;
    opacity: 0;
    pointer-events: none;
    transition: opacity .3s var(--ease)
}

@media (hover:hover) {
    .woocommerce ul.products li.product img.product-card__alt {
        display: block
    }

    .woocommerce ul.products li.product:hover img.product-card__alt {
        opacity: 1
    }
}

/* ---------- add to cart confirm + press states ---------- */
.woocommerce a.button.added {
    background: var(--sage)
}

.woocommerce a.button:active,
.woocommerce button.button:active,
.chip:active,
.cat-card:active {
    transform: scale(.97)
}

.woocommerce a.remove {
    display: grid !important;
    place-items: center;
    width: 44px !important;
    height: 44px !important;
    font-size: 1.6rem !important;
    line-height: 1 !important
}

/* ---------- single product: pickup + trust list ---------- */
.product-trust {
    list-style: none;
    margin: 1.25rem 0 0;
    padding: 1rem 1.1rem;
    display: grid;
    gap: .6rem;
    border-radius: var(--radius-sm);
    background: var(--oat);
    font-size: .95rem
}

.product-trust li {
    display: flex;
    align-items: center;
    gap: .65rem
}

.product-trust svg {
    flex: none;
    width: 20px;
    height: 20px;
    color: var(--brand)
}

/* ---------- empty cart ---------- */
.woocommerce-cart .cart-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .75rem;
    padding: 2.5rem 1.5rem 1.5rem;
    border: 0;
    border-radius: var(--radius);
    background: var(--card);
    text-align: center;
    font-size: 1.15rem
}

.woocommerce-cart .cart-empty::before {
    content: "";
    position: static;
    display: block;
    width: 76px;
    height: 76px;
    margin: 0;
    border-radius: 50%;
    background: var(--oat) url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='%23B3174F'%3E%3Cellipse%20cx='6'%20cy='10'%20rx='2.2'%20ry='3'/%3E%3Cellipse%20cx='10.5'%20cy='5.5'%20rx='2.2'%20ry='3'/%3E%3Cellipse%20cx='16.5'%20cy='5.5'%20rx='2.2'%20ry='3'/%3E%3Cellipse%20cx='20'%20cy='10'%20rx='2'%20ry='2.8'/%3E%3Cpath%20d='M12%2011c-3.5%200-6%203-6%205.5%200%202%201.6%203%203.2%203%201.2%200%201.9-.6%202.8-.6s1.6.6%202.8.6c1.6%200%203.2-1%203.2-3C18%2014%2015.5%2011%2012%2011z'/%3E%3C/svg%3E") center/52% no-repeat
}

.woocommerce-cart .return-to-shop {
    margin-top: 1.25rem;
    text-align: center
}