/* =================================================================
   TEXT - Utility Classes
   ================================================================= */

.font-family-primary *    { font-family: var(--font-primary);   }
.font-family-text *       { font-family: var(--font-text);      }
.font-family-secondary *  { font-family: var(--font-secondary); }
.font-family-accent *     { font-family: var(--font-accent);    }

.font-size-1 *    { font-size: var(--font-size-1);    }
.font-size-2 *    { font-size: var(--font-size-2); }
.font-size-3 *    { font-size: var(--font-size-3); }
.font-size-4 *    { font-size: var(--font-size-4); }
.font-size-5 *    { font-size: var(--font-size-5); }
.font-size-6 *    { font-size: var(--font-size-6); }
.font-size-7 *    { font-size: var(--font-size-7); }
.font-size-s *    { font-size: var(--font-size-s); }
.font-size-xs *   { font-size: var(--font-size-xs); }

.font-uppercase *    { text-transform: uppercase; }
.font-lowercase *    { text-transform: lowercase; }
.font-capitalize *   { text-transform: capitalize; }
.font-straight *     { text-transform: normal; }
.font-underline *    { text-decoration-line: underline; }
.font-line-through * { text-decoration-line: line-through; }
.font-italic *       { font-style: italic; }
.font-normal *       { font-style: normal; }
.font-reset *        { font-style: normal; text-transform: normal; text-decoration: none; }

.font-weight-100 * { font-weight: 100 !important; }
.font-weight-200 * { font-weight: 200 !important; }
.font-weight-300 * { font-weight: 300 !important; }
.font-weight-400 * { font-weight: 400 !important; }
.font-weight-500 * { font-weight: 500 !important; }
.font-weight-600 * { font-weight: 600 !important; }
.font-weight-700 * { font-weight: 700 !important; }
.font-weight-800 * { font-weight: 800 !important; }
.font-weight-900 * { font-weight: 900 !important; }

.font-spacing-2xs { letter-spacing: -0.032em; }
.font-spacing-xs  { letter-spacing: -0.027em; }
.font-spacing-s   { letter-spacing: -0.022em; }
.font-spacing-m   { letter-spacing: 0; }
.font-spacing-l   { letter-spacing: 0.022em; }
.font-spacing-xl  { letter-spacing: 0.027em; }
.font-spacing-2xl { letter-spacing: 0.032em; }

/* =================================================================
   SVG - Utility Classes
   ================================================================= */
  
.svg-white svg, .svg-white path { fill: var(--colour-white); }
.svg-black svg, .svg-black path { fill: var(--colour-black); }
.svg-grey-050 svg, .svg-grey-050 path { fill: var(--colour-grey-050); }
.svg-grey-200 svg, .svg-grey-200 path { fill: var(--colour-grey-200); }
.svg-grey-950 svg, .svg-grey-950 path { fill: var(--colour-grey-950); }

/* =================================================================
   CONTAINERS - Utility Classes
   ================================================================= */ 

.width-auto { width: auto !important; }

.height-100 { height: 100%; } }

/* =================================================================
   CROCOBLOCK - Widget Enhancements
   ================================================================= */

/*
 * Testimonial - Widget has no wrapper padding controls
 */
.jet-testimonials__content {
    padding: var(--space-xl); /* Main content padding */
    gap: var(--space-3xs); /* Element spacing within testimonial */
}

/*
 * JetFilters - Removes the focus effect when its selected 
 */
.jet-select__control:focus, .jet-select__control:focus-visible,
.jet-select__control:focus-within, .jet-sorting-select:focus,
.jet-sorting-select:focus-visible, .jet-sorting-select:focus-within {
  outline: none !important;
  box-shadow: none !important;
  border: none !important;
}

/*
 * Inline SVG - There was a min-width set that didn't allow to use small sized icons
 */
.jet-inline-svg svg {
    min-width: unset !important;
}

/*
 * JetMenu - Align dropdown to the right 
 */

.jet-nav__sub {
    left: unset !important;
    right: 0 !important;
}

/*
 * Pagination - Mobile - Shows only previous/next to have visual control and simplicity
 */
@media (max-width: 768px) {
    .archive-pagination .jet-smart-filters-pagination .jet-filters-pagination__item:not(.prev-next) {
        display: none;
    }
}

/* ================================================================
   WOOCOMMERCE CORE
   ================================================================ */

/* Sale price - Removes underline to improve readability */
.product-item .product-price ins { text-decoration: none; }

/* Regular price - Sets a neutral colour, reduces size and improves readability */
.product-item .product-price del {
    color: var(--colour-grey-500);
    font-weight: normal;
    font-size: 0.74em;
    text-decoration: none;

}

/* WooCommerce - Breadcrumb widget */
.woocommerce .woocommerce-breadcrumb {
    margin-bottom: 0px;
}

/* Inverts regular and sale price order */
 .product-item .jet-woo-product-price:has(ins):has(del) {
    display: flex;
    flex-direction: row-reverse;
    column-gap: 0.4em;
}

/* Hides "in stock" label */
.product-item .product-stock:has(.in-stock) { display: none; }

/* Stock label bottom margin */
.product-item .product-stock p { margin-bottom: 0; }

/*
 * WooCommerce - Notices - Several optimizations
 */ 

.wrapper-notices { /* Hide outer wrapper by default - It has some height that breaks design*/
    display: none;
}

.wrapper-notices:has(.woocommerce-message),
.wrapper-notices:has(.woocommerce-error),
.wrapper-notices:has(.woocommerce-info) { /* Show wrapper when it contains a notice */
    display: flex; 
}

.woocommerce-message { /* Breaking design */
    margin-top: 0px;
    margin-bottom: 0px;
}


/* =================================================================
   TYPOGRAPHY
   ================================================================= */

/*
 * Vertical Heading
 * Reverts to horizontal on mobile for readability 
 */
.responsive-vertical-heading { writing-mode: vertical-rl; }

/*
 * Mobile Override - Horizontal Text Below 768px
 * Improves mobile UX and prevents layout issues 
 */
@media (max-width: 768px) {
    .responsive-vertical-heading { writing-mode: horizontal-tb; } 
}

/* 
 * Vertical Text - 180° Rotation
 * White-space and overflow prevent text wrapping issues 
 */
.vertical-heading {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    white-space: nowrap;
    display: inline-block;
    overflow: visible;
}