/* Common */

html {
    scroll-behavior: smooth;
}

p,
li,
h1,
h2,
h3,
h4,
h5,
h6 {
    text-wrap: pretty;
    word-break: keep-all;
}

.hide-text {
    background-color: transparent;
    border: 0;
    color: transparent !important;
    display: block;
    font-size: 0 !important;
    height: 0;
    left: 0;
    overflow: hidden;
    position: absolute;
    text-decoration: none;
    text-shadow: none;
    top: 0;
    width: 0;
}

/* Header */

@media screen {
    .header--fixed.header--fixed {
        position: fixed;
        top: 0;
        width: 100%;
        z-index: 1001;
    }

    .header--transparent #header {
        transition: background-color 0.5s ease-out;
    }

    body:not(.js--scrolled) .header--transparent #header {
        background-color: transparent !important;
    }

    .wp-block-group.is-position-sticky {
        z-index: 22;
    }
}

/* Buttons */

.wp-element-button--has-icon {
    align-items: center;
    display: flex;
    gap: 0.25em;
}

.wp-block-button__icon {
    height: auto;
    max-width: 1.5em;
    width: auto;
}

/* Details */

.wp-block-details > summary {
    display: flex;
    font-weight: 500;
    justify-content: space-between;
    padding-block-end: 0.5em;
}

.wp-block-details > summary::after {
    content: '+';
}

.wp-block-details[open] > summary::after {
    content: '-';
}

/* Details block - animated */

.wp-block-details.is-style-animated > summary {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.wp-block-details.is-style-animated {
    height: 1.25rem;
    overflow: hidden;
    transition: height 0.25s ease-out;
}

.wp-block-details.is-style-animated[open] {
    height: calc-size(max-content, size); /* stylelint-disable-line */
}

/* Navigation */

.wp-block-navigation__responsive-dialog {
    padding-block-end: var(--wp--style--root--padding-bottom);
    padding-block-start: var(--wp--style--root--padding-top);
    padding-inline-end: var(--wp--style--root--padding-right);
    padding-inline-start: var(--wp--style--root--padding-left);
}

.wp-block-navigation__responsive-container-close {
    right: var(--wp--style--root--padding-right);
    top: var(--wp--style--root--padding-right);
}

.wp-block-navigation__responsive-dialog .wp-block-navigation__container {
    gap: 1em;
}

/* Slider */

.wp-block-splide-carousel__container.alignfull .splide__arrow--prev {
    left: 1rem;
}

.wp-block-splide-carousel__container.alignfull .splide__arrow--next {
    right: 1rem;
}

.splide__pagination {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.25rem;
}

.splide__pagination .splide__pagination__page {
    background-color: var(--wp--preset--color--primary);
    border-radius: 12px;
    height: 12px;
    margin: 0;
    opacity: 0.3;
    transition: all 0.3s ease;
    transition-property: width, opacity;
    width: 12px;
}

.splide__pagination .splide__pagination__page.is-active {
    opacity: 1;
    transform: none;
    width: 40px;
}

.splide:not(.is-overflow) .splide__pagination {
    display: none;
}

/* Search */

.wp-block-search__button {
    align-items: center;
    display: flex;
    flex-direction: row;
}

.wp-block-search__input {
    background-color: transparent;
}

.wp-block-search__inside-wrapper {
    padding: 0;
}

.wp-block-search__button > .search-icon {
    transform: rotateY(180deg);
}

.wp-block-search .wp-block-search__inside-wrapper .wp-block-search__input::placeholder {
    color: rgba(255, 255, 255, 0.75);
}

/* Shop */

.wc-block-mini-cart__items {
    max-height: 67.5vh;
}

.woocommerce-store-notice.woocommerce-store-notice {
    background-color: var(--wp--preset--color--cream);
    box-shadow: none;
    color: var(--wp--preset--color--primary);
    font-weight: 500;
    position: sticky;
}

.woocommerce-store-notice a {
    color: inherit;
}

.woocommerce-store-notice .woocommerce-store-notice__dismiss-link {
    color: var(--wp--preset--color--dark-green, inherit);
}

.wc-block-grid__product {
    display: flex;
    flex-direction: column;
}

.wc-block-grid__product-image {
    background-color: var(--wp--preset--color--neutral-500);
    border-radius: 2rem;
    padding: 2rem;
}

.wc-block-grid__product-link {
    text-decoration: none;
}

.wc-block-grid__product-title {
    font-size: 1rem;
    font-weight: 600;
}

.wc-block-grid__product-price ins {
    color: var(--wp--preset--color--red);
    font-weight: 600;
    text-decoration: none;
}

.wc-block-grid__product-price del {
    font-weight: 300;
}

.wc-block-grid__product-price .woocommerce-Price-amount {
    font-weight: inherit;
    letter-spacing: 0.5px;
}

.wc-block-grid__product-price del,
.wc-block-grid__product-price ins {
    text-decoration-color: currentcolor;
}

.wc-block-grid__product-title,
.wc-block-grid__product-price {
    letter-spacing: 0.5px;
}

.wc-block-grid__product .wc-block-grid__product-add-to-cart {
    margin: 0;
}

.wc-block-grid__product-image img {
    background-color: inherit;
    mix-blend-mode: multiply;
}

.woocommerce .products-block-post-template li.product.type-product {
    position: relative;
}

.woocommerce .wc-block-components-product-sale-badge,
.wc-block-grid .wc-block-grid__product-onsale {
    border-radius: 2rem;
    border-width: 0;
    font-weight: 600;
    margin: 0.5rem;
    padding: 0.75em 1rem;
    right: 0.5rem;
    text-transform: uppercase;
    top: 0.5rem;
}

.woocommerce .wp-block-woocommerce-product-image-gallery .onsale,
.woocommerce .product .onsale {
    align-items: center;
    background: var(--wp--preset--color--base);
    border-radius: 50vw;
    color: var(--wp--preset--color--contrast);
    display: flex;
    font-size: 1rem;
    font-weight: 600;
    justify-content: center;
    left: 0.25rem;
    letter-spacing: 0.8px;
    line-height: 1.25;
    margin: 0.5rem;
    min-height: fit-content;
    min-width: fit-content;
    padding: 0.75rem 1rem;
    position: absolute;
    text-transform: uppercase;
    top: 0.25rem;
}

/* Product Add to Cart Button */
.add_to_cart_button {
    background-color: var(--wp--preset--color--primary);
    display: flex;
    gap: 0.5em;
    transition: background-color 0.25s ease-out;
    width: 100%;
}

.single_add_to_cart_button,
.add_to_cart_button {
    border-radius: 2rem;
    text-transform: none;
}

.single_add_to_cart_button {
    background-color: var(--wp--preset--color--primary);
    font-size: 0.875rem;
    padding: 1em 2.5em;
    text-transform: uppercase;
    transition: all 0.25s ease-out;
    transition-property: background-color;
}

.add_to_cart_button::before {
    background-image: url('../assets/icons/cart-white.svg');
    background-repeat: no-repeat;
    background-size: contain;
    content: '';
    height: 1.25em;
    width: 1.25em;
}

.add_to_cart_button:hover,
.add_to_cart_button:focus {
    background-color: var(--wp--preset--color--dark-green) !important;
}

.single_add_to_cart_button:focus,
.single_add_to_cart_button:hover {
    background-color: var(--wp--preset--color--dark-green);
}

/* Product Quantity Input */

.quantity .qty {
    border-color: var(--wp--preset--color--neutral-600);
    border-radius: 2rem;
    border-style: solid;
    font-size: 0.875rem;
}

/* Mini Cart */

.wc-block-components-drawer {
    pointer-events: none;
}

.wc-block-components-drawer,
.wp-block-woocommerce-mini-cart-contents {
    background-color: transparent;
}

.wp-block-woocommerce-filled-mini-cart-contents-block,
.wp-block-woocommerce-empty-mini-cart-contents-block,
.wc-block-components-drawer__close-wrapper {
    pointer-events: auto;
}

.wp-block-woocommerce-filled-mini-cart-contents-block,
.wp-block-woocommerce-empty-mini-cart-contents-block {
    background-color: var(--wp--preset--color--base);
    height: auto;
}

.wc-block-components-drawer::after {
    border-left-width: 0;
}

.wp-block-woocommerce-mini-cart-cart-button-block,
.wp-block-woocommerce-mini-cart-checkout-button-block,
.wp-block-woocommerce-mini-cart-shopping-button-block {
    border-radius: 2em;
}

.wc-block-cart-item__wrap {
    max-width: 16rem;
}

.wc-block-components-product-name {
    font-size: var(--wp--preset--font-size--medium);
    font-weight: bold;
    letter-spacing: 0.4px;
    line-height: 1;
    text-decoration: none;
}

.wc-block-cart-item__quantity {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5em;
}

.wc-block-components-quantity-selector {
    border-radius: 2rem;
}

.wc-block-components-quantity-selector::after {
    border: 1px solid var(--wp--preset--color--neutral-600);
    border-radius: inherit;
}

.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button {
    color: var(--wp--preset--color--contrast);
    font-weight: bold;
    margin: 1px;
}

.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:not([disabled]) {
    background-color: var(--wp--preset--color--neutral-500);
}

.wc-block-components-quantity-selector > .wc-block-components-quantity-selector__button--plus {
    border-radius: 0 2rem 2rem 0;
}

.wc-block-components-quantity-selector > .wc-block-components-quantity-selector__button--minus {
    border-radius: 2rem 0 0 2rem;
}

.wc-block-mini-cart-items .wc-block-cart-item__product .wc-block-cart-item__quantity .wc-block-components-quantity-selector {
    margin-block-end: 0;
}

.wc-block-cart-item__prices .wc-block-components-product-price {
    color: var(--wp--preset--color--neutral-700);
    font-weight: 400;
    letter-spacing: 0.8px;
}

.wc-block-cart-item__total-price-and-sale-badge-wrapper .wc-block-components-product-price {
    color: var(--wp--preset--color--primary);
    font-size: var(--wp--preset--font-size--medium);
    font-weight: bold;
    letter-spacing: 0.4px;
}

/* Shop Order */

.woocommerce .woocommerce-ordering select {
    padding: 0.75rem 0.5rem;
    width: 100%;
}

/* Filter & Sort */
.custom-wc-filter-sort .wp-block-details summary + div {
    padding-inline: 0.25rem;
}

.custom-wc-filter-sort .wp-block-details summary {
    align-items: center;
    display: flex;
    font-weight: 500;
    justify-content: space-between;
    letter-spacing: 0.32px;
    line-height: 1.25;
    padding-block: 1.25rem;
    text-transform: uppercase;
}

.custom-wc-filter-sort .wp-block-woocommerce-filter-wrapper {
    padding-inline: 0.25rem;
}

.custom-wc-filter-sort .wp-block-details {
    height: fit-content;
    overflow: hidden;
    transition: height 0.25s ease-out;
}

.custom-wc-filter-sort .wp-block-details[open] {
    height: calc-size(max-content, size); /* stylelint-disable-line */
    transition: height 0.25s ease-out;
}

.custom-wc-filter-sort .wp-block-details[open] summary {
    padding-block: 1.25rem 0.5rem;
}

.custom-wc-filter-sort .wp-block-details > summary::after {
    background-color: currentcolor;
    bottom: 0.125em;
    content: '';
    height: 1.25rem;
    mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 12 7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L6 6L11 1' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
    mask-position: center;
    mask-repeat: no-repeat;
    transform: rotate(0deg);
    transition: transform 0.25s ease-in-out;
    width: 0.75em;
}

.custom-wc-filter-sort .wp-block-details[open] > summary::after {
    transform: rotate(-180deg);
    transition: transform 0.25s ease-in-out;
}

.custom-wc-filter-sort #clear-filter {
    text-underline-offset: 2px;
}

.custom-wc-filter-sort .custom-active-filters-layout .wc-block-active-filters {
    display: flex;
    flex-direction: column;
    margin-bottom: -1.5rem;
    position: relative;
    top: -2.6rem;
}

.custom-wc-filter-sort .custom-active-filters-layout .wc-block-active-filters .wc-block-active-filters__list {
    order: 2;
    padding-top: 1.5rem;
    position: relative;
}

.custom-wc-filter-sort .custom-active-filters-layout .wc-block-active-filters .wc-block-active-filters__clear-all {
    order: 1;
    text-align: right;
}

.custom-wc-filter-sort details {
    margin-block: 0;
    padding-block: 0;
}

.custom-wc-filter-sort .radio-label {
    font-size: 0.875em;
}

/* Miscellaneous styles */

.wp-block-column {
    box-sizing: border-box;
}

.blend-background img {
    mix-blend-mode: multiply;
}

.ajax_add_to_cart + span,
.ajax_add_to_cart ~ span .added_to_cart {
    display: none !important;
}

.wp-block-query.is-style-side-scroll .wp-block-post-template.is-layout-grid {
    display: flex !important;
    gap: unset !important;
}
